Archive for July 24, 2009

Update 20090724-1811 – ion3 minor reconfiguration (part 1)

Posted in acer aspire one, crunchbang, ion3 on July 24, 2009 by lucky

I’ve taken the easiest way to getting back normal use of the function keys by assigning ALTMETA to Mod4 (Windows key) so that the default bindings for the function keys are now Mod4+F{1..12}. This will work at least temporarily but I think I want to change out the standard META (Mod1) so I don’t have to use the escape key in emacs for various M-commands (e. g., C-u M-! will not work as is — C-u ESC ! works).

Other than that, I’ve spent most of the day off the computer (for a change). The only other thing I’ve done is edit a simple grey theme using the simpleblue one as a guide.

-- look_shadesofgrey.lua - featuring terminus font and shades of grey
-- Fri Jul 24 15:15:56 CDT 2009
-- lucky13

if not gr.select_engine("de") then return end

de.reset()

de.defstyle("*", {
    shadow_colour = "black",
    highlight_colour = "grey5",
    background_colour = "grey22",
    foreground_colour = "grey88",
    padding_pixels = 0,
    highlight_pixels = 0,
    shadow_pixels = 0,
    border_style = "elevated",
    font = "-xos4-terminus-medium-r-*-*-14-*-*-*-*-*-iso8859-*",
    text_align = "center",
})

de.defstyle("frame", {
    shadow_colour = "black",
    highlight_colour = "grey5",
    padding_colour = "black",
    background_colour = "grey22",
    foreground_colour = "grey88",
    padding_pixels = 0,
    highlight_pixels = 0,
    shadow_pixels = 0,
    de.substyle("active", {
        shadow_colour = "black",
        highlight_colour = "grey5",
        background_colour = "black",
        foreground_colour = "grey88",
    }),
})

de.defstyle("tab", {
    font = "-xos4-terminus-medium-r-*-*-14-*-*-*-*-*-iso8859-*",
    de.substyle("active-selected", {
        shadow_colour = "grey53",
        highlight_colour = "black",
        background_colour = "grey13",
        foreground_colour = "grey77",
    }),
    de.substyle("active-unselected", {
        shadow_colour = "black",
        highlight_colour = "black",
        background_colour = "grey22",
        foreground_colour = "grey55",
    }),
    de.substyle("inactive-selected", {
        shadow_colour = "black",
        highlight_colour = "black",
        background_colour = "grey44",
        foreground_colour = "grey22",
    }),
    de.substyle("inactive-unselected", {
        shadow_colour = "black",
        highlight_colour = "black",
        background_colour = "grey22",
        foreground_colour = "grey44",
    }),
    text_align = "center",
})

de.defstyle("input", {
    shadow_colour = "black",
    highlight_colour = "black",
    background_colour = "grey44",
    foreground_colour = "white",
    padding_pixels = 0,
    highlight_pixels = 0,
    shadow_pixels = 0,
    border_style = "elevated",
    de.substyle("*-cursor", {
        background_colour = "white",
        foreground_colour = "grey44",
    }),
    de.substyle("*-selection", {
        background_colour = "black",
        foreground_colour = "white",
    }),
})

de.defstyle("input-menu", {
    padding_pixels=0,
})

dopath("lookcommon_clean")

gr.refresh()

It’s not fancy, but there’s not much you can do with something that doesn’t have “eye candy” as a criterion for development or consider aesthetics a feature (“wobbling windows” is not a feature — it’s a fucking bug which uses too many system resources and offers zero benefits). I only put something together a little bit darker than I found available among the defaults. I didn’t tweak the input style but it looks a bit lighter than intended on my AA1.

So far ion3 fits two criteria I had in mind. First, it has to be light on resources. The “if it’s not used it’s wasted” argument doesn’t work for me because greater resource demands come at the expense of power consumption; that’s an issue on anything that runs on batteries, but especially something with the limitations of a netbook battery.

screenshot-20090724180705

Second, it has to be configurable and stay out of my way as much as possible. I’m pretty sure it’ll be configurable enough for what I want (see previous entry). It certainly stays out of the way by automatically assigning window size to the size of the current frame. Since I quickly got the basic issue of the function keys out of the way quickly, I can look to add more of my own tweaks and preferences.

More soon.

Playing With ion3 on AA1

Posted in GPL, acer aspire one, crunchbang, ion3, ratpoison on July 24, 2009 by lucky

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.