| « My settings, everywhere | Communication » |
Mon, Jan 23, 2012
![[Icon]](rsc/img/chain_link.gif)
At work, we frequently refer to yaks.
It's a term we picked up from the Perl community. I imagine it's used by other hacker communities as well, but I wouldn't know.
The story goes:
You wake up one morning and think to yourself, "I should mow the lawn this morning!"
Then you realise that you can't, because you don't have a mower: You lent it to your neighbour.
You figure you'll go and get it back from your neighbour, but then remember that you borrowed the neighbour's air compressor at the same time. You'll need to return the compressor if you want to get back your mower.
But the reason you haven't returned the compressor is that the hose ruptured whilst you were using it and you need to fix it before you can return it.
So you'll have to go to a hardware store to get a new hose. But you don't have a car, so you'd need somebody to give you a lift.
Your other neighbour would normally be willing to give you a lift, but he lent you a garden chair a while ago and he'd want that back before he did anything for you. And you haven't returned the chair because the cushion in it ripped and some of the stuffing came out.
So you need to fix the chair first. The chair is stuffed with yak hair. As luck would have it, you have a friend working at the local zoo, which is within walking distance. So you nip down to the zoo, have a word with your friend, and then head off into the yak enclosure.
An hour after you woke up and decided to mow the lawn, and you're at the zoo, shaving a yak. To a casual onlooker, a completely unrelated task; yet at the same time a vital prerequisite.
In programming circles, if somebody says they're shaving a yak, it means they're doing something that's vital if they want to get their main task done, but which doesn't actually get them anywhere towards accomplishing their task. In the same way that shaving a yak doesn't get the lawn mown.
Lately, it seems like a relatively simple goal has been encountering, not so much a succession of yaks, but an entire herd of them.
Here's the problem: Linux doesn't have a single GUI. It has a lot of them. From the simple & lightweight "window managers" to the heavy-hitting windows-like "desktop environments".
The one I've used for many years has been showing its age lately, and with the announcement being made that it was going into maintainence mode, I figured it was probably time to find something new.
Problem is.. I have a very specific setup. The functionality that I want is not the default for anything out there. And part of the reason I stuck with FVWM2 for so long is that nothing else is actually capable of doing what I want.
But I was confident that I could overcome that if I stuck with it. So I started shopping around for a good configurable, light-weight desktop.
Enlightenment is very shiny, but it's not nearly EWMH-compatible enough: A script I use to toggle a window between monitors doesn't work, for example.
I'm currently trying Openbox, but this has two big problems: When I toggle the mouse between monitors, the window it moves to only gets focus about half the time - this intermittent behaviour is infuriating; and there's no detectable way of enabling "warp to window" so when you use alt-tab to switch to a window, your mouse doesn't get moved to that window. Which is stupid. It means, for instance, that if I alt-tab to Firefox, I can't then use my scroll wheel because the mouse pointer is still over an xterm.
Fluxbox has possibilities, but also problems - its menus don't seem to work just by typing a letter, you have to press "return" to make something happen. This is annoying. And there's a weird bug going on where every time I toggle a window between monitors, it resizes it.
In my bid to get all the functionality that I need, I've gone from having a couple of shell scripts to having a rather large Perl program which is gaining more & more features as I try & get everything working the way I want.
It's actually reached the point where somebody at work mentioned that the X11 books by O'Reilly actually contain enough code that you can write your own bare-bones Window manager, and I'm seriously considering it on the grounds that if no other WM will do what I want, maybe my only choice is to roll my own.
But I'm going to have a go at creating a simple Tcl/Tk interface that'll call everything I need via Perl first. Because obviously, that's far easier.
Sigh.
Yaks! Yaks everywhere!!
![[Links]](http://geekblog.oneandoneis2.org/skins/112/rsc/img/chain_link.gif)
Hmm.. new look for twitter? I hope it gets less "Ick! Change! Put it back!" nonsense than Facebook..
08/02/12
Facebook Syndication Error
22/02/12
![]()
I last listened to:
Johann Pachelbel - Canon in D major
Most recent photo:
Submersible houseboat