'''Ratpoison''' is a minimalistic [[window manager]] which can be controlled 100% through keyboard. It behaves like the terminal-multiplexer GNU screen. Every window is maximized to fit the whole screen, no pixel is wasted on stuff like borders or other decoration. The user can also "split" the screen into two or more frames in order to display more than one window at the time. For more information check the official homepage at http://www.nongnu.org/ratpoison/.

−

==Installation==

+

From the project [http://www.nongnu.org/ratpoison/ home page]:

+

: ''Ratpoison is a simple [[Window Manager]] with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modelled after [[GNU Screen]] which has done wonders in the virtual terminal market. The screen can be split into non-overlapping frames. All windows are kept maximized inside their frames to take full advantage of your precious screen real estate. All interaction with the window manager is done through keystrokes. ratpoison has a prefix map to minimize the key clobbering that cripples Emacs and other quality pieces of software.''

+

+

== Installation ==

+

Ratpoison can be installed with package {{Pkg|ratpoison}}, available in [[official repositories]].

Ratpoison can be installed with package {{Pkg|ratpoison}}, available in [[official repositories]].

−

==Configuration==

+

== Configuration ==

+

To use ratpoison as your windowmanager, you have to create/edit the file {{Ic|~/.xinitrc}}.

To use ratpoison as your windowmanager, you have to create/edit the file {{Ic|~/.xinitrc}}.

Example .xinitrc:

Example .xinitrc:

−

# the black/white grid as background doesn't suit my taste.

+

{{bc|<nowiki>

−

xsetroot -solid black &

+

# the black/white grid as background doesn't suit my taste.

−

# ratpoison is compatible with xcompmgr! now you can have real transparency

+

xsetroot -solid black &

−

xcompmgr -c -f -D 5 &

+

# ratpoison is compatible with xcompmgr! now you can have real transparency

−

#fire up ratpoison!

+

xcompmgr -c -f -D 5 &

−

exec /usr/bin/ratpoison

+

#fire up ratpoison!

+

exec /usr/bin/ratpoison

+

</nowiki>}}

+

+

== Using ratpoison ==

−

==Using 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".

−

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" :)

+

Now type {{ic|Ctrl+t}} and then {iIc|?}} to get a list of keybindings. If you are used to GNU screen, you will feel at home very soon.

−

Now type {{Keypress|Ctrl+t}} and then {{Ic|?}} 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 {{Ic|~/.ratpoisonrc}}

You are able to define custom keystrokes and even override existing ones in {{Ic|~/.ratpoisonrc}}

Example:

Example:

−

# overriding CTRL+t 'c' to start aterm instead of xterm

+

{{bc|<nowiki>

−

bind c exec aterm

+

# overriding CTRL+t 'c' to start aterm instead of xterm

+

bind c exec aterm

+

+

bind f exec firefox

+

</nowiki>}}

+

+

So, if you type {{ic|Ctrl+t}} and then {{ic|f}}, ratpoison will fire up Firefox.

+

+

Here is another .ratpoisonrc i'm using on my computers:

+

+

{{bc|<nowiki>

+

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"

−

bind f exec firefox

+

#switch between windows

+

definekey top M-j next

+

definekey top M-k prev

−

So, if you type {{Keypress|Ctrl+t}} and then {{Keypress|f}}, ratpoison will fire up firefox.

+

#apps

+

unbind c

+

bind c exec urxvt -tr

+

#bind c exec aterm

−

Here is another .ratpoisonrc i'm using on my Computers:

+

bind g exec gftp

+

bind f exec firefox

+

</nowiki>}}

−

exec xsetroot -cursor_name left_ptr

+

== Tips and tricks ==

−

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 firefox2

−

==Tips and tricks==

+

=== Multiple workspaces ===

−

===Multiple workspaces===

By default, ratpoison only has one workspace, but using a script called rpws (installed by default) you can have more.

By default, ratpoison only has one workspace, but using a script called rpws (installed by default) you can have more.

Line 71:

Line 83:

exec /usr/bin/rpws init 6 -k

exec /usr/bin/rpws init 6 -k

}}

}}

−

That creates 6 workspaces. By default, you can access to them by using {{Keypress|Alt+F1}} to access the first, {{Keypress|Alt+F2}} to access the second, etc.

+

That creates 6 workspaces. By default, you can access to them by using {{ic|Alt+F1}} to access the first, {{ic|Alt+F2}} to access the second, etc.

You can also add binds to them, like this:

You can also add binds to them, like this:

−

+

bind C-1 exec rpws 1

bind C-1 exec rpws 1

bind C-2 exec rpws 2

bind C-2 exec rpws 2

...

...

−

That allows to access them with {{Keypress|Ctrl+t}} {{Keypress|Ctrl+1}} (assuming {{Keypress|Ctrl+t}} as your escape key)

+

That allows to access them with {{ic|Ctrl+t}} {{ic|Ctrl+1}} (assuming {{ic|Ctrl+t}} as your escape key)

+

+

=== urxvt and xterm ===

−

===urxvt and xterm===

Urxvt and xterm would not resize to a fixed number of pixels. Instead, it resize itself to multiples of its font's size, therefore, chances that there are unfilled gaps are high.

Urxvt and xterm would not resize to a fixed number of pixels. Instead, it resize itself to multiples of its font's size, therefore, chances that there are unfilled gaps are high.

To correct this, we can use the xterm/urxvt option internalBorder and set the border of ratpoison to 0.

To correct this, we can use the xterm/urxvt option internalBorder and set the border of ratpoison to 0.

Line 94:

Line 107:

If a combination cannot be found, you could try changing the font size and the font family also. (that changes the required border number)

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 ===

−

===Launch on Startup===

+

Examples for launching programs when ratpoison starts. File {{ic|~/.ratpoisonrc}} is executed by ratpoison on startup.

−

Examples for launching programs when ratpoison starts. File {{ic|~/.ratpoisonrc}} is executed by ratpoison on startup.

Many [[display manager|display managers]] (e.g., [[lightdm]]) source the available sessions from {{ic|/usr/share/xsessions/}} and most window managers and desktop environments create .desktop files there. However ratpoison instead creates a {{ic|ratpoison.desktop}} file in {{ic|/etc/X11/sessions/}}. To allow display managers to find ratpoison one may need to copy the ratpoison.desktop file from {{ic|/etc/X11/sessions/ratpoison.desktop}} to {{ic|/usr/share/xsessions/ratpoison.desktop}}. If the {{ic|/usr/share/xsessions}} directory does not exist, create it as root.

{{Keypress|Ctrl+t}} {{Keypress|Shift+q}} Make the current frame the only one<br />

−

{{Keypress|Ctrl+t}} {{Keypress|:}} Execute a ratpoison command<br />

−

==Ratpoison and display managers==

+

== See also ==

−

Many [[display manager|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 /etc/X11/sessions/ratpoison.desktop to /usr/share/xsessions/ratpoison.desktop. If the /usr/share/xsessions directory does not exist, create it as root.

Revision as of 21:40, 27 June 2013

Ratpoison is a simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modelled after GNU Screen which has done wonders in the virtual terminal market. The screen can be split into non-overlapping frames. All windows are kept maximized inside their frames to take full advantage of your precious screen real estate. All interaction with the window manager is done through keystrokes. ratpoison has a prefix map to minimize the key clobbering that cripples Emacs and other quality pieces of software.

Using 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".
Now type Ctrl+t and then {iIc|?}} 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 ~/.ratpoisonrc

Tips and tricks

Multiple workspaces

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:

~/.ratpoisonrc

exec rpws -i
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+tCtrl+1 (assuming Ctrl+t as your escape key)

urxvt and xterm

Urxvt and xterm would not resize to a fixed number of pixels. Instead, it resize itself to multiples of its font's size, therefore, chances that there are unfilled gaps are high.
To correct this, 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.

~/.Xresources

urxvt*internalBorder: 8 #change urxvt to xterm if necessary. Using the font terminus in urxvt at 14px size, 8 is the correct number here.

~/.ratpoisonrc

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.

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 /etc/X11/sessions/ratpoison.desktop to /usr/share/xsessions/ratpoison.desktop. If the /usr/share/xsessions directory does not exist, create it as root.