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.
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).
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.
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.
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 :-).
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.
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.)
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:
Fonts used for xmobar:
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
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
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
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
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 colordiffemacs.el
for GNU Emacsgitconfig
andgitignore
for Gitlintianrc
for lintianscreenrc
for GNU Screen
I’ll probably split them off into their separate repository somewhen in the future, maybe using vcsh.
The project’s subdirectory abe-desktop
resembles a Debian source
package which generates several .deb
metapackages.
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.
All those metapackages are usually also available from my APT repository.