By default, Ratpoison controls in much the same way as Emacs. Commands begin by pressing
Ctrl t, and are then followed by another combination such as
Ctrl Space to move to the next window.
- 1 Installation
- 2 Configuration
- 3 Using ratpoison
- 4 Tips and tricks
- 5 Useful keybindings
- 6 Focus follows mouse
- 7 Ratpoison and display managers
- 8 See also
Install the package.
To use ratpoison as your window manager, you have to create/edit the file
# The black/white grid as background doesn't suit my taste. xsetroot -solid black & # Ratpoison is compatible with xcompmgr! now you can have real transparency xcompmgr -c -f -D 5 & #fire up ratpoison! exec /usr/bin/ratpoison
After X11 starts up you will see a black screen and a little textbox on the upper right of it that says "Welcome to Ratpoison".
Ctrl+t and then
? to get a list of keybindings. If you are used to GNU screen, you will feel at home very soon.
You are able to define custom keystrokes and even override existing ones in
# Overriding CTRL+t 'c' to start aterm instead of xterm bind c exec aterm bind f exec firefox
So, if you type
Ctrl+t and then
f, ratpoison will fire up Firefox.
Ctrl+t is the default escape key, the key used to trigger ratpoison commands. To change the mapping of the escape key to the Windows key, use the following line in your
# Setting the escape key to the Windows key escape Super_L
Here is another .ratpoisonrc i'm using on my computers:
exec xsetroot -cursor_name left_ptr startup_message off escape C-z # Make a screenshot alias sshot exec import -window root ~/screenshot-$(date +%F).jpg definekey top M-C-Print sshot #virtual desks gnewbg one gnewbg two definekey top M-l exec ratpoison -c "select -" -c "gprev" -c "next" definekey top M-h exec ratpoison -c "select -" -c "gnext" -c "next" #switch between windows definekey top M-j next definekey top M-k prev #apps unbind c bind c exec urxvt -tr #bind c exec aterm bind g exec gftp bind f exec firefox
Tips and tricks
Java Swing Applications
Java Swing GUI applications assume tiling window managers, and don't go to fullscreen properly with the default ratpoison configuration. However, there is a way to "trick" the Java swing window into thinking it's in a tiling window manager and getting it to go to fullscreen correctly.
First, install the wmname package. Then add this line to your .ratpoisonrc:
exec wmname LG3D
Voila! Java Swing applications should properly fullscreen now.
By default, ratpoison only has one workspace, but using a script called rpws (installed by default) you can have more.
Just edit your .ratpoisonrc, and add:
exec /usr/bin/rpws init 6 -k
That creates 6 workspaces. By default, you can access to them by using
Alt+F1 to access the first,
Alt+F2 to access the second, etc.
You can also add binds to them, like this:
bind C-1 exec rpws 1 bind C-2 exec rpws 2 ...
That allows to access them with
Ctrl+t as your escape key)
Urxvt and xterm
Urxvt and xterm, as they are installed by default, send resize hints to the window manager. This works in most tiling window managers, but not in ratpoison. The end result is that URxvt/xterm resizes itself in multiples of the font size, rather than resizing to the whole screen, and chances that there are unfilled gaps are high. There are two solutions to this problem, documented below.
Install a Patched URxvt
If you use URxvt, theAUR package, among other improvements, sends no resize hints to the window manager. If you install this version of URxvt rather than the default, URxvt will resize properly within ratpoison.
Adjust the Border
We can use the xterm/urxvt option internalBorder and set the border of ratpoison to 0.
A trial and error process must be done to find the exact number of internalBorder for each combination of resolution and font size. (the border of ratpoison must be set to 0 before doing the tests) The term command line option -b can be used to test for the correct number and then can be saved on the following files.
urxvt*internalBorder: 8 #change urxvt to xterm if necessary. Using the font terminus in urxvt at 14px size, 8 is the correct number here.
set border 0
If a combination cannot be found, you could try changing the font size and the font family also. (that changes the required border number)
Launch on startup
Examples for launching programs when ratpoison starts. File
~/.ratpoisonrc is executed by ratpoison on startup.
Launch urxvt with a tmux session
exec urxvt -e bash -c "tmux -q has-session && exec tmux attach-session -d || exec tmux new-session -n$USER -s$USER@$HOSTNAME"
Launch optimized chromium
exec bash -c 'pidof chromium &>/dev/null || exec /usr/bin/chromium --disk-cache-dir=~/tmp/cache'
Wallpaper and transparency
Example for setting transparency using xcompmgr and nitrogen.
First start nitrogen and set the desired wallpaper. Then use this in your
Wallpaper and transparency
exec xcompmgr -c -f -D 5 & exec nitrogen --restore
Focus follows mouse
sloppy.c is a build script for and can be found in
/usr/share/ratpoison/. To enable focus follows mouse for
ratpoison, run the following:
# cd /usr/share/ratpoison/ # gcc -o sloppy sloppy.c -lX11 # ./sloppy
To autostart focus follows mouse, add the following to
Ratpoison and display managers
Many display managers (e.g., LightDM) source the available sessions from
/usr/share/xsessions/ and most window managers and desktop environments create .desktop files there. However ratpoison instead creates a
ratpoison.desktop file in
/etc/X11/sessions/. To allow display managers to find ratpoison one may need to copy the ratpoison.desktop file from
/usr/share/xsessions/ratpoison.desktop. If the
/usr/share/xsessions directory does not exist, create it as root.