Productivity rehash: WM Promiscuity - Ratpoison

I wrote this a while back.

Ever since, things have changed a wee bit.

Yes, the last thing I switched to was Awesome. But then, those folks have this terrible tendency of breaking config files every now and then for no apparent freaking reason. I had quite had enough after they broke Vicious in 3.4.10.

I considered switching to something as featured or less, mostly Xmonad before I stopped caring a shit and switched back to Ratpoison.

With the rats banished, I'm now fairly happy with a WM free of every bloody thing I don't want. I also got rid of both GNOME, KDE and Slim altogether and switched to a mingetty with an autologin.

Here's how stuff looks, with a mostly basic Conkyrc. The background is courtesy of xplanet

Occasionally, I get enough trouble with Eclipse (whenever the heck I need it) to tmpwm switch to either Xmonad or awesome, depending on things. But then that's not all that much trouble.

One of these days, I'm thinking of writing a little hack to sync RPWS workspaces to Awesome tags on switching back and forth for seamlessness.

Some stuff along the way:

# -- Ratpoison config by p6
unmanage panel
unmanage conky
unmanage conky-cli
startup_message on

# -- Mod4-t to escape
escape s-t
bind Escape abort

# {{{ rudeness is a bitwise or of the following values:
# 1 Transient windows may raise.
# 2 Normal windows may raise.
# 4 New transient windows end up in the foreground.
# 8 New normal windows end up in the foreground.
rudeness 12
# }}}

warp on

# {{{ Bar
set wingravity center
set transgravity center
set bargravity n
set border 0 0
set barborder 1
set padding 0 16 0 0
set barpadding 1 1
set inputwidth 100
set font -*-fixed-*-*-*-*-9-*-*-*-*-*-*-*
#set bgcolor black
set fgcolor #4ca04c
msgwait 3
# }}}

# -- Printscreen
definekey top Print exec scrot -d 2 ~/Documents/screenshots/ss-%Y-%m-%d.png && ratpoison -c "echo screenshot saved as `%Y-%m-%d`!"

definekey top s-c exec xterm

# --- Use the name of the program rather than the title in the window list
set winname name

# {{{ Storing layouts in three slots
# -- bind Mod4-! to store the current frame layout in slot #1
definekey top s-exclam exec ratpoison -c "setenv fs1 `ratpoison -c 'fdump'`" && exec ratpoison -c "echo layout stored in slot #1"
# -- bind Mod4-1 to restore the frame layout in slot #1
definekey top s-1 exec ratpoison -c "frestore `ratpoison -c 'getenv fs1'`"
# -- Do the same for slot #2 and bind it to Mod4-@ and Mod4-2, respectively.
definekey top s-at exec ratpoison -c "setenv fs2 `ratpoison -c 'fdump'`" && exec ratpoison -c "echo layout stored in slot #2"
definekey top s-2 exec ratpoison -c "frestore `ratpoison -c 'getenv fs2'`"
# -- Give ourselves another slot on Mod4-# and Mod4-3, respectively.
definekey top s-numbersign exec ratpoison -c "setenv fs3 `ratpoison -c 'fdump'`"&& exec ratpoison -c "echo layout stored in slot #3"
definekey top s-3 exec ratpoison -c "frestore `ratpoison -c 'getenv fs3'`"
# }}}

# {{{ Sticky Windows
bind d dedicate
bind s-d dedicate
# }}}

# {{{ Workspaces
definekey top s-1 exec rpws 1
definekey top s-2 exec rpws 2
definekey top s-3 exec rpws 3
definekey top s-4 exec rpws 4
definekey top s-5 exec rpws 5
definekey top s-6 exec rpws 6
definekey top s-7 exec rpws 7
definekey top s-8 exec rpws 8
definekey top s-9 exec rpws 9
# }}}

# {{{ Startup
# -- Init nine workspaces
exec rpws init 9 -k
exec xsetroot -bg black -cursor_name left_ptr &
# }}}

#virtual desks
#gnewbg one
#gnewbg two

exec xmodmap -quiet ~/.Xmodmap
exec nm-applet
exec scim -d

bind c exec xterm

###Set a background, randomly picking from a certain directory.
####exec cd ~/Pictures/OG/ && xsetbg -border black -fork -type jpeg -fit -onroot -fullscreen `w=(*.jpg); n=${#w[@]}; echo "${w[RANDOM%n]}"` && cd ~/
#exec xsetbg -border black -fork -type jpeg -fit -onroot -fullscreen `w=(*.jpg); n=${#w[@]}; echo "~/pics/${w[RANDOM%n]}"`

###Run unclutter so the mouse hangs around no longer than needed.
exec unclutter -idle 1 -jitter 2 -root

###I use xscreensaver as a screensaver. The first line makes sure any running xscreensaver is killed.
###The second starts and backgrounds xscreensaver
exec xscreensaver-command -exit
exec xscreensaver &

exec conky
exec ratpoison -c "echo Welcome to Ratpoison"
#exec ~/scripts/ratcpi.sh

##aliasing keys within ratpoison
###make semicolon invoke ratpoison command, and colon shell command.
bind semicolon colon
bind colon exec

alias term 'exec xterm'

And a basic Conkyrc

alignment top_left
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont DejaVu Sans Mono:size=8
gap_x 5
gap_y 0
minimum_size 5 5
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window no
own_window_class Conky
own_window_type desktop
stippled_borders 0
update_interval 1.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no

TEXT
$nodename - $sysname $kernel $machine :: ${color grey}Uptime:$color $uptime :: ${color grey}RAM:$color $mem/$memmax - $memperc% :: ${color grey}Swap:$color $swap/$swapmax - $swapperc% :: ${color grey}CPU:$color $cpu% :: ${color grey}Ps:$color $processes ${color grey}:: ${color grey}Fs: $color${fs_used /}/${fs_size /} :: ${color grey}Net:Up:$color ${upspeed eth1} ${color grey} - Down:$color ${downspeed eth1} :: ${color grey}Battery:$color ${battery_percent BAT1}

.profile

# if logging into tty6 (which will autologin), run startx
if [ -z "$DISPLAY" ] && [ $(tty) = /dev/tty6 ] ; then
startx ;
fi

.xinitrc (also gets scim up and running)

ratpoison

export GTK_IM_MODULE=scim-bridge
export XMODIFIERS=@im=SCIM
export QT_IM_MODULE=scim-bridge
scim -d

/etc/inittab (probably /etc/init/tty#.conf on Debian, Ubuntu)

respawn
exec /sbin/mingetty --autologin user --noclear tty6

While I'm rather happy with my setup, if you're less performance nazi than I am, you might want to try OpenBox which seems to be very promising.

Post new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.