I decided to see how much work it’ll take to force ion3 to work the way I want it to on my AA1. I’ve used ion before and I love the general concept. What I haven’t liked — hated in fact — is the author’s default set of bindings. Many of these rely on the function keys, which are also used by various applications, as well as other bindings connected to the META/alt1 key. The settings for ion can be customized to suit any user’s needs by editing series of files used for configuration, starting with ~/.ion3/config_ion.lua which overrides the system defaults.
I downloaded the latest zero-install binary tarball and, as recommended for those of us not using zero-install, just unarchived it in /opt. Since /opt/ion3-[version number string]/bin isn’t in, and never will be, added to my $PATH, I’m using the full path string to launch ion3 from my .xinitrc.
Why not use the Ubuntu package? For starters, it would’ve resulted in adding — along with the ion3 package — over 18MB of stuff, quite a bit of it I recognized as stuff I removed already. Second, the package is outdated and possibly in violation of the terms of the author’s license (modified LGPL); Valkonen requires packages be updated within 28 days of his stable releases or be marked as “obsoleted and unsupported,” and that such packages be renamed.
While some have taken exception to the author’s terms, which also includes the renaming of any package which includes patches he doesn’t support (which is fair — why should he answer for or address downstream bugs for things he doesn’t even include?), I find them fair. As I’ve written before, this is no different than issues related to “IceWeasel” due to copyright issues with Mozilla Firefox. But it is markedly different from issues like what happened with MurgaLua and DSL last year: Murga had released his bindings under GPL and complained when the runtime was recompiled so that separate parts could be used independently — which is one of the basic ideals of the GPL’s freedoms: allowing the user to control how something works on his or her system; in the process, he wrongly accused DSL of removing copyright attributions when, in fact, he’d left out anything in his own bindings about his copyright. The tarball DSL made available was his own tarball, unchanged in any form or fashion — complete with the copyright notice he’d included as well as the GPLv2 text in the COPYING file. It’s that file which mentions that anyone is free to use, change, and redistribute the code, including those bindings, so long as the source is made available along with changes. DSL complied in every term of the GPL and the files included with the bloated runtime Murga provided, but still offered to add further lines to provide the author of the bindings a copyright notice everytime they were invoked. If you don’t specify your terms up front, you have nobody else to blame. So boo hoo, you fucktard. Murga chose a license antithetical to his desires and chose to add strings to the GPL in such a way that the user really wouldn’t be free to use the code as he or she sees fit but only as Murga sees fit (which gives him a bloody fucking copyright notice even for things he didn’t write). If you’re upfront and clear about your terms, like Valkonen is, others know what is or isn’t allowed.
Once I untarred and copied the full path into my .xinitrc, I was able to startx into ion3. The first thing I did was unsplit the two empty windows by killing one because 512 pixels (minus borders/padding) isn’t going to work for my browser. That was the first thing I wanted to get up and running.
I remembered from the last time I ran ion3 that F3 (run command) works similarly to dwm — type the first letter or two or more of the application you want to open and a list matching those letters pops up; tab-completion through the list will take care of the rest. I like this approach and the only reason I prefer ratmen(u) is because ratmen(u) allows me to fine tune things a bit more, e. g., customizing how apps open or close or changing them as they run (such as the mocp menu I showed as an example once before). The command menu in ion3 does allow the user to add flags/options so it’s still very flexible.
Finally, one of the things I hope to get out of using it is better handling of applications like GIMP and Skype which use too many windows. As much as I love using ratpoison, it’s clumsy and awkward when it comes to such things. I don’t consider that ratpoison’s flaw, I consider it a shortcoming of those applications which open too many windows rather than operate within one frame or doesn’t give users an option setting to manage things in one box rather than two or three or more.
I’ve just installed ion3 so I still have some editing/reconfiguring to do. I’ll probably give this a shot for a while and decide if it better suits my needs than ratpoison. I should have plenty of time this weekend to mess with it because I can’t put any weight on my ankle yet.