BossBattle.net

Blog
Labels
Updates
Guestbook
Links
FAQ


BossBattle.net Index:

Blog/Info
-News, thoughts, updates and information

Music
-Homepage of my music projects

Video Game Reviews
-Reviews of games I've played

RPG Resources
-Campaign information, character sheets etc.

Elcalen's Homepage
-Products of my creative interests: poetry, music etc.

Popful Mail Paradise
-A fansite about the Sega CD game Popful Mail

--

Thursday, 30 July 2009

Swankified in the Summer Sun

Been a while since my last post, mostly because I've been vacationing up in Nilsiä and there hasn't been much to say. I completed my annual ritual of reading Miyazaki's Nausicaä of the Valley of Wind, then read The Return of the King (I'd started re-reading LotR a few years before, but got sidetracked somehow, as is too often the case). The weather's been much nicer than last year, but, as usual, I've done much less creative stuff than I'd like.

But onwards to the main topic: I've written before about using StumpWM. Last night I finally got around to setting it up so that it runs the Swank module, the Lisp-side component of SLIME, Emacs's Lisp editing mode. This makes it possible to connect to the running Lisp process from Emacs and edit the code interactively, while the software is running! This interactive development style is, of course, one of the main features of Lisp.

Now, whether I'll actually use this potential is another matter entirely. At the very least it'll make editing the configuration file easier (since that is just Lisp code same as the rest of the software). It was possible to load new or modified elements before using a simple StumpWM Emacs mode provided, but this was much more limited. But whether I'll have the guts or inspiration (or simply the energy) to delve into the depths of StumpWM is a whole other matter...

Labels: , , , , , , ,

Tuesday, 24 February 2009

The Backgrounds Strike Back

Just a little follow-up to the previous post. One feature I had in Sawfish that I hadn't yet got in StumpWM was a function to periodically change the wallpaper. You might say, hang on, if you're running applications fullscreen, what do you need a wallpaper for? Well, there are those brief moments when there are no apps open in a workspace. But more importantly, I use the terminal a lot (if nothing else, I always have IRC running over an SSH connection), and I generally use a terminal application with a transparency feature, showing my wallpaper in the background (tinted darker, of course, so that text is legible). A man can't live entirely without eye candy, after all. (rxvt-unicode is the current terminal of choice.)

For Sawfish I found a ready script on the website to change backgrounds. No such luck for StumpWM, so I decided to take a look at how hard it would be to implement it myself. It turned out to be very easy, just a few lines of Lisp code, although, again, I had to spend some time brushing up on my Lisp skills. A combination of Common Lisps features and functions built into StumpWM made it actually much simpler that the script for Sawfish, in the Librep dialect of Lisp.

There's a certain satisfaction you get from successfully) coding your own solutions that you can never get from installing ready apps or using graphical tools to configure your system. It's hard to describe in words.

With this hack I'm pretty much set up for regular, everyday use, with some very convenient shortcuts for switching between my favourite apps. Some more configuration might be needed to get the most out of multi-window applications like Gimp, but that can wait until the time I need such applications.

Labels: ,

Monday, 23 February 2009

From Simplifying to Downright Esoteric

Ok, I'd just learned the ropes of Sawfish when I decided to take StumpWM out for a spin. I'm pretty impressed, so far.

StumpWM is a minimalist, tiling window manager with a powerful keyboard interface. It has no window decorations and no mouse control. But what sets it apart from most other window managers is the fact that it's written entirely in Common Lisp. This means almost infinite customisation and scripting possibilities, and, best of all, interactive scripting while the window manager is running! (And yes, this was the main attraction in Sawfish as well, but StumpWM takes it up a notch.)

The Emacs-influenced keyboard interface is indeed powerful, but a little cumbersome for my taste, relying on combinations of several keystrokes. So the first order of business was to set up a few global shortcuts to switch between windows and run my favourite apps. This in itself was almost a trivial matter, but I had a little trouble getting the apple key on my MacBook to function (it's the best key for custom shortcuts as it's not used by any GNU/Linux application by default). After some labour I discovered that using xmodmap to designate it as a hyper key instead of a super key, and binding shortcuts to the hyper key, they suddenly worked.

In Sawfish I spent some time working on a little script in it's Lisp variety to display the track Rhythmbox was currently playing. While it wasn't a difficult task (most of the time was spent on learning things about the language as I'm still not too experienced with Lisp in general, and the particular dialect was entirely new to me), in StumpWM creating a similar feature was almost a trivial matter. As of now, I've pretty much got the same general functionality in StumpWM as I had in Sawfish, but there's still a lot I haven't really delved into, like more powerful use of frames (used for window placement) and groups (aka virtual desktops).

I've used tiling window managers (like wmii) with GNU/Linux before I got my MacBook, so the concept's not new to me. It might take a moment to re-adjust to the paradigm, but on the other hand even on Mac OS X I already mostly kept switching between windows and Spaces with the keyboard. For most of my regular needs (surfing the web, IRC, playing music, writing with Emacs), StumpWM works perfectly. These applications actually work best when they're fullscreen, no unnecessary decorations, title bars or window manager panels to swallow up valuable screen space (particularly as the MacBook's screen isn't incredibly big). I'll have to see what happens when I need to use an app with a very different kind of orientation, like GIMP.

Labels: , ,

Friday, 20 February 2009

Going Home Stage 2

Continuing the story of my transition to Debian.

KDE4, with its eye candy and many features mimicked almost directly from Mac OS X, softened the transition. But after a while I begun to feel how cumbersome and, frankly, buggy, it really was, and remembered that, hey, this is GNU/Linux we're talking about, with an endless selection of different window managers.

So, just for fun, I decided to look at possible alternatives. One light-weight window manager in particular caught my eye: Sawfish. Apart from generally being completely different from KDE, what really caught my attention was the introduction: "Sawfish is an extensible window manager using a Lisp-based scripting language..." Being something of an Emacs enthusiast (a very powerful editor also extensible in a Lisp-based language) and a Lisp fan in general, this looked like a solution with real potential.

So I installed it, and have now spent a day fiddling with it, and I think I'm hooked. There's less eye candy, but that only means that it feels much lighter and everything works faster. Sawfish, at its core, is a very bare bones window manager, the very opposite of what KDE stands for. But the scripting facilities provide endless possibilities. I've set up some very handy keyboard shortcuts, for instance, which launch applications I use often or switch to them if they're already running. Adding a few scripts from the website gave me some features I've gotten used to, like periodically changing wallpapers.

For the first time in a good while I feel I'm in control of the graphical environment and not the other way round. And hacking extensions with Emacs is lots more fun than than any GUI configuration tool will ever be.

Labels: , , , ,