evilwm

my wm journey moves on... from various bloatwares to fluxbox to ratpoison to spectrwm to dwm... now to evilwm :-)
i hope to keep this post updated, and accumulate my evilwm experience.

i did a memory profile on some window managers on my radar, and found evilwm to be using the least memory of them. that made me look at it in more detail, and i find i like it better than dwm that i'm currently using.

evilwm install in debian
[code]# apt-get update && apt-get install evilwm[/code]

edit .xinitrc (.xsession if you use any dm). change current wm with evilwm.
[code]exec evilwm -term gmrun -nosoliddrag[/code]

keyboard meta is ctrl-alt
my most used are

1-8 - change virtual desktop
left - prev virtual desktop
right - next virtual desktop
f - (un)fix window

x - maximise current window (toggle)
= - maximise current window vertically (toggle)
HJKL - shift window
hjkl - move window
yubn - move window to screen corner

alt+tab - cycle through windows (don't use meta key)

to maximise window horizontally: use = and x alternatively and repeat to toggle.
to move windows between virtual desktops: fix window, change desktop, unfix window.

manual says "To make evilwm exit, you have to kill the process". i completely agree - providing spurious buttons is bloat - not the job of a wm. and why would you want to exit x? to shutdown?

just shutdown
$ sudo halt

if i do have to quit evilwm
$ killall -9 evilwm

as i have mapped gmrun to evilwm default term, i bring up a command-line with ctrl-alt-enter and enter the above commands.

or you could map the commands to a keyboard shortcut of your choice. if that is how you like it, use xbindkeys.

as this is an extremely efficient wm, for any additional functionality you can use other extremely efficient apps to add features you may need.

gmrun - command-line application launcher
xbindkeys - custom keyboard shortcuts

ref links:
http://www.6809.org.uk/evilwm/ChangeLog-1.1
wiki.archlinux.org/index.php/evilwm
gentoo-wiki.info/evilwm
http://forums.debian.net/viewtopic.php?t=15077

downsizing android

i have been on a continuous quest to reduce resource requirements. i think this is affecting my personal life too - simplifying my own demands is making me live happier :) but, back to the topic on hand - android!

rom downgrade (Android 2.3.5)

have you ever downgraded? was it too painful to switch from more to less?

i believe, less is more! more than what you really need or actually consume is inefficient & wasteful. i keep learning from experience... bloatware (in any way, shape, or form in life) cripples us!!

android app cache

i do quite a bit of fiddling around inside the internals of android. i have noticed that occassionally rebooting helps to stabilise the system. although i could never work out the need, as android is essentially linux. but sensing what google wants to do it, i suspect it might be heading the microsoft windows way.. becoming bloatware (it probably already is)!

the next step is to clean out the cache. though you could do so by manually clearing the filesystems, i find it simpler (and safer perhaps) to do so from the recovery. i used clockworkmod. there are two caches - the dalvik cache and the system cache. both can be wiped from recovery. you might reclaim some diskspace too. android will create the required caches from scratch, on the next reboot. this boot will take a rather long time - be warned! watching the phone doesn't help. find something else to do and come back in good time. patience is of essence here.. :-)

there are some other ways to hack out some more space in /data, which is where all user apps are installed.

we can move some app caches to sdcard. this might make those apps slower, if your sdcard is not that fast. for some apps with huge caches, we might be more concerned about reclaiming disk space and sacrificing some speed. note that caches might not necessarily be a bad thing.

let's identifying the apps with the biggest caches. do this after you have been using the phone regularly for a few days without any reboots/cleanup, for best results.

$ du -s /data/data/*/cache | sort -n

if the above command didn't work for you, enable superuser mode and try again.
$ su

the next step is to move some of these caches to the sdcard. we need to decide on some rules to identify the best candidates. i have focussed on the biggest caches where this process actually makes a noticable difference. for me the two apps are market and browser. you need to consider the security implications, as chmod permissions don't work on sdcard fat filesystems, i.e. your sdcard content is world readable.

now move each of them to sdcard, like so

$ mkdir -p /sdcard/cache/browser
$ cd /data/data/com.android.browser
$ rm -r cache
$ ln -s /sdcard/cache/browser cache


note that the app should not be running, not even in the background. go to settings -> applications -> manage applications and verify whether they are running. force close them if necessary. it might be far simpler to boot into recovery and do everything there!

mbr in linux

fdisk /mbr
ever used the above in dos? but this doesn't work in linux. there are times when i have a need for this. i usually install bootloaders on specific partitions than on the mbr.

dd can be used for such requirements. the following will wipe your mbr clean

# dd if=/dev/zero of=/dev/xxx bs=446 count=1
where xxx is your disk.

how/where do i use this? i have been playing with many different os for a long time. every os wants to install their own bootloader into the mbr. but, we can't really have that, can we? not if we want them to exist simultaneously on the same disk.

i always install the bootloader on the same partition as the os, and wipe the mbr clean. then use fdisk to make a partition active and reboot to load that os. an os could do whatever with its bootloader and not bother me. this method can also be used to play with multiple bootloaders, each on a separate partition. i arrived at this method, after much grief from trashed bootloaders.

caution: just in case, make a backup of your mbr, before you wipe it.
# dd if=/dev/xxx of=xxx-mbr.raw bs=446 count=1

and restore it, like so
# dd if=xxx-mbr.raw of=/dev/xxx

most viewed