duckland.org

An Update to 'Window Managers?'

Way back, I wrote a quick blurb on Window Managers for running under X.

Well, a while back I switched to Ubuntu for my OS of choice. As you may know, the fine folks at Ubuntu switched to default window manager to something called Unity, which caused a stir. I tried it for a while, but decided that it was too heavy, and too mouse-centric.

So, what to do? Well, I went back to my old standby wmfs, Window Manager From Scratch. This is a modern WM with systray support, full Ximirama and Xrandr support, tiles, and is mainly driven from the keyboard. Life is good.

To install (same steps as for Fedora, RHEL, or Ubuntu), download the source, and install the needed development libraries for: X11, Xft, freetype, Xinerama, Xrandr, and Imlib2. I used the native packages from the OS. Then, simple do a

make
sudo make install

(you do build software as a normal user, right?)

This will install all the needed bits and configs into the correct place. Under Ubuntu 11.10, there was an entry from the login screen to let me chose wmfs.

Config is handled in $HOME/.config/wmfs/wmfsrc which you can copy from /etc/xdg/wmfs/wmfsrc.

EDIT 2016-11-30: It seems the domain is no longer active.

EDIT 2020-04-07: Removed links to dead domain.

The wmfs website (wmfs.info) had very nice documentation as well as likes to some people’s configs with screen shots.

It runs very fast, and very lean:

 Private  +   Shared  =  RAM used       Program
  3.9 MiB + 310.0 KiB =   4.2 MiB       wmfs

Check it out, I am sure you will like what you see.

Making life easy over flaky links

I tend to work over VPN, which we know can be flaky at times, Since I work on server, I spend a lot of time ssh’ed into hosts. I was getting tired of the lost time having to restart what I was working on every time the VPN dropped (which could be as much as every 15 minutes on a bad day). While I already used screen to handle the lack of terminals (Alas, I am forced to use a Windows laptop to VPN in with), I thought there could be an easier way to do this.

The way I tend to work is that I ssh into a jump server, fire up screen, then ssh into the hosts I need to work on, and fire up screen on those hosts.

Now, this is nice, but it can get a bit tiring to do it all over again. So, I found a tool called autossh which will automatically restart your ssh session if it drops for any reason but a graceful disconnect. (Well, there are others, but this is basically it). Combine this with your ssh-agent, and you can re-attach with easy. I also use keychain to help manage my ssh-agent when I log in.

Now that the connection will come back, I need a way to re-attach to my screen session, or if there is not one, to start one for me. To do
that, I have this is my .bashrc file:

test -x $STY && screen -xR

This will check to make sure that we are not already inside a screen session on the local host (test -x $STY), and if we are not, then either attach to an existing screen session or start a new one (screen -xR)

I have define this function in my .bashrc to spawn a new ssh connection in a separate screen window:

function ss ()
{
  screen -t $1 ssh $*
}

Easy stuff