Sunday, July 24, 2011

Rapid fire shell coding :-)

Well, since Friday night, I have been pretty steadily working on my ~/.sh infrastructure. I started by hooking up alice to sal1600's monitor (22"), keyboard, and rat. Since I rather distaste how the GNOME/Ubuntu has been acting late: I also took the libtery of adding my xmonad.hs file to git, then ditching GNOME for a pure XMonad session. As I use programs that need a system tray to really be useful enough to me (e.g. pidgin), I'm using fbpanel: good old staple.

For a little while I experimented with making the inactive windows transparent, this works pretty great, but rather interfers with my custom xterm wrapper script that sets my terminals ocupacy: the propteries set by transset-df get lost :-(. Looked at some other terminal emulators supporting transparency, besides gnome-terminal and rxvt-unicode. Sakura seems to be the best bet, and evilvte almost excellence (better to compile from source then using the .deb). In the end, I just switched off the fancy effects, since most of the time I am using a terminal or reading text anyway.

Next up was figuring out how to use XRandR to manually configure my displays. Better still, I wanted to extend my ~/.sh and X session infrastructure to auto-magically configure itself to Do What I Want when I launch a session when hooked up to an external monitor. For architecture and convience, it can also be run as a shell script, thus supporting a sort of hot plugging. So right now, if I hook up to say my 22" widescreen and let alice do it's magic configuration: after I login, I will be working off the big screen, so I can ignore the 10.1" little one :-). This isn't without a few warts though, namely if I go hotpluggy with it, fbpanel needs to be restarted in order to render on the new primary display (I just switch off the netbooks display), and pidgin becomes confused on where to render notifications (oi) with how it's setup in the default Ubuntux way. Oh, and hardware issue being that the touch pad makes the cursor jiggly should I close the lid lol. The performance is also noticably slower on 1980x1080 but works very snappy. I really am inpressed with this sweet little ASUS.

I then pretty much went about refactoring bits and pieces of my `sh services environment`, going so far as to create a GNUmakefile that I can use to help set things up whenever rigging a clone on a new install. Being lazy, I also finally moved ~/sw/sh from Dropbox to git. Generally I use bin for local binaries, sh for portable scripts, and sh.local for things specific to the system. Usually odds and ends that reflect a very specific setup.

Over a dozen commits later, I like the result pretty well. The only problem is, the difference between the 20" screen at work and this 22" screen, I now have so much screen realestate that I don't know what to do with it LOL. In Windows, most of it just goes to waste for want of XMonad.

No comments:

Post a Comment