ratpoison-desktop
ratpoison-desktop copied to clipboard
On most of my desktop and laptop systems I run a tiling window manager, either i3 (previously awesome) or ratpoison, and the a text status bar (i3bar or xmobar), filled with data by i3status. These fi...
Axel’s Tiling Window Manager Setup
History, Background and Reasoning
The Early Days: FVWM
While having been a heavy FVWM user for nearly 15 years, I now run tiling window managers on all my “desktops” and laptops, ranging from a first generation 7" ASUS EeePC 701 4G netbook (unfortunately died in early 2014, has been replaced by a 9" ASUS EeePC 900A) and Raspberry Pis over a Sun UltraSparc 10 to a full-fledged multihead workstation from Tuxedo Computers at home (and a similar one from a different brand at work) and several generations of Thinkpads ranging from a 760XD over an A31 and T61 to an X250.
Tasting Blood with Ratpoison
My ASUS EeePC 701 running Debian GNU/Linux Sid was the first box where I did not use FVWM anymore, because with a resolution of 800×480 on a 7 inch screen, you a) want to waste as few pixels as possible by title bars, borders, … and b) most of the time anything else than fullscreen windows doesn’t make sense, moving windows around with the mouse makes even less sense.
So I’ve chosen ratpoison for the EeePC (and would still use it on that box) since it makes windows fullscreen by default and the keybindings are nearly identical to GNU Screen and therefore easy to learn respectively I didn’t have to learn anything to use it.
After more and more fine tuning involving the xmobar text status bar, filled with data by i3status, I started this git repository to track my own changes, to share the setup with some other of my boxes (like the UltraSparc or my bed-side terminal, an older ThinkPad A31).
Advancing to Awesome
Getting used with a fullscreen and tiling setup on the EeePC I more and more wanted something for my everyday ThinkPad back then (a T61), too. But while ratpoison is really perfect for the small EeePC screen, it proved too clumsy for more complex window arrangements and multiple virtual desktops.
So I looked through the other tiling window managers in Debian, trying out i3 (3.x versions), scrotwm (nowadays called spectrwm), wmii, awesome and some ion successors (tritium and anion3 the latter now being superseeded by notion). I eventually stuck with awesome, first the 2.x version from Debian 5.0 Lenny, then the 3.x version from Debian 6.0 Squeeze and later.
In general I liked the idea of using the—on Linux mostly
unused—Windows key as window manager meta key. I even configured
ratpoison to use that in addition to the original Ctrl-T
prefix.
Dropping Awesome in Favour of i3
A few years later I got annoyed by awesome (≥ 3.5) and the awesome-extra widget libraries package diverging (by the latter not being updated to awesome 3.5 and hence becoming unusable unless you put the awesome package on hold with a 3.4.x version), so I looked again at i3 (now the 4.x versions) and eventually started migrating to it.
Nowadays I mostly only use i3, except for some Raspberry Pis with tiny screen resolutions. I haven't used awesome for quite some years now and the awesome setup files in here likely no more work properly.
Repository Name and URLs
So this repository is no more a ratpoison-only setup. But since I neither want to change the repository name nor any URL I decided that I stick with having “ratpoison” in the name. The amount of “rodent” usage you need with this setup hasn’t changed anyway, so without the relation to the window manager of this name, the name is still fitting (as it fits to the window manager of that name :-).
Installation
These files are needed to get the setup running. The setup currently runs on Debian Sid, Debian 8 Jessie and Debian 7 Wheezy as well as Ubuntu 14.04 Trusty, and 16.04 Xenial. It probably also still runs on older releases.
Since most of the configuration files included are not expected to
reside in .ratpoison
, some symlinks are necessary where config file
paths cannot be set via command line options or where it would be to
tedious to always type them:
~/.gitconfig → gitconfig
~/.gitignore → gitignore
~/.xsession → xsession
~/.screenrc → screenrc
~/.colordiffrc → colordiffrc
~/.lintianrc → lintianrc
~/.emacs → emacs.el
These symbolic links can also be automatically set up by calling
bin/setup-symlinks.sh
from this repository.
Source Code
Sources available on my own Git server, on GitHub, and on GitLab. (An ancient, read-only and no more updated version could also be found on Gitorious.)
Requirements
Required Software Packages
Needs at least the following Debian packages (besides essential packages) to be installed:
- conkeror or some other web browser
-
emacs (or any other
emacsen, for
emacs
andemacsclient
) - gnome-keyring
- hsetroot
- i3status ≥ 2.2
- libfile-slurp-perl
- libfile-temp-perl
- lsb-release
- ratmenu ≥ 2.3.20
- ratpoison or awesome < 3.5 + awesome-extra
-
dnsutils |
wget (needed by
iplet
) -
x11-utils (for
xmessage
) | gxmessage -
x11-xserver-utils
(for
xmodmap
,xrdb
,xrandr
andxsetroot
) - xmobar
- xscreensaver or xtrlock
- xterm and/or rxvt-unicode
- For Focus-Follows-Mouse:
Used Fonts
Fonts used for xmobar:
Optional Software Packages
Used if available but except the system tray stuff recommended anyway:
- autocutsel
-
emacs-goodies-el
(for
markdown-mode
and others) - inotail (Linux only)
- keynav ≥ 0.20101014.3067
-
magit (used in
emacs.el
) - redshift
- udev-notify (RFP)
- unclutter
-
x11-xkb-utils
(for
setxkbmap
) -
xserver-xorg-input-synaptics
(for
synclient
) - xsettingsd (with fallback to other common settings-daemons)
- yeahconsole
- System tray applets for use with awesome or i3:
- For use with ratpoison only so far:
Unfortunately necessary for using ETH's new printing system:
-
system-config-printer-applet
from the package system-config-printer
Kernel Modules
Linux kernel modules which may be used by some features of xmobar, but
do not seem to be loaded automatically (write them into /etc/modules
):
-
acpi_cpufreq
-
coretemp
Software Packages used by Scripts or Keybindings
Only used in non-necessary scripts or keybindings:
-
busybox-syslogd
(for
logread
) -
dwm-tools ≥ 31-1 or
suckless-tools
(for
dmenu
,tabbed
andwmname
) -
openssh-client
(for
ssh-add
andssh-agent
) - screen or tmux
- scrot
- xclip
- colordiff
- git
Software Packages used in Commented Code
Only in commented code (i.e. currently not used):
- Alternative window and session managers:
- loco (no more in Debian) | ccze | lwatch | colortail
- root-tail
- gnome-settings-daemon
Other Configuration Files
The repository also contains some configuration files which I usually want on every desktop, but which are more or less independent of the desktop setup respectively could also be used on non-desktop machines.
-
colordiffrc
for colordiff -
emacs.el
for GNU Emacs -
gitconfig
andgitignore
for Git -
lintianrc
for lintian -
screenrc
for GNU Screen
I’ll probably split them off into their separate repository somewhen in the future, maybe using vcsh.
Debian Metapackages
The project’s subdirectory abe-desktop
resembles a Debian source
package which generates several .deb
metapackages.
Metapackages for my Desktop Setup
The following metapackages provide all the dependencies mentioned above:
- abe-desktop-ratpoison: Contains dependencies for the ratpoison-based desktop
- abe-desktop-awesome: Contains dependencies for the awesome-based desktop
- abe-desktop-common: Contains dependencies common to both, the ratpoison-based and the awesome-based desktop.
- abe-desktop: Contains dependencies on all of the above plus optional dependencies on other common metapackages I maintain.
Some of these packages recommend or suggest other metapackages which previously were part of this repository but have been split off into their own git repository.
APT Repository
All those metapackages are usually also available from my APT repository.