Saturday, May 26, 2012

my new linux desktop environment

this post is mainly for people who want a fast stable usable desktop environment using GTK, which is easy to setup and maintain. the end result is very nice, but comes at a cost of extra (quite big) dependencies. so it's NOT that lightweight, if you're trying to save hdd space or RAM. i limited my choice to native-only applications, so things written in python or perl have been avoided.

i tried many things, and most of them are bullshit, or very crippled, so here's a

list of things to avoid, because they don't (or didn't) work

pcmanfm in any incarnation: can't mount flash drives (this probably can be resolved, but i was looking for simple-to-setup stuff), can't rearrange icons on desktop, some versions are completely broken, e.g. a folder created on desktop via right click menu doesn't show up without restart (pcmanfm-0.9.x), or desktop support simply cut (pcmanfm-mod)

spacefm: it's a fork of pcmanfm. works slightly better, can even mount flash drives, but still the desktop is a joke, and the FM design is weird, for example -- flash drives are not shown in the left pane, there's a special button which opens special panel with the list, and when an item is clicked - it opens a new tab. most pcmanfm issues apply too.

rox-filer: way too basic.

fbpanel: i wasn't able to even start it up, "/dev/mixer not found, quit"

lxpanel: quicklaunch is crippled - no drag'n'drop editing, no custom launchers. can be used if you don't need it

xfwm4: very slow window resize

pekwm: looks good, but default config is weird, and i failed to reconfigure it to fit my needs. configuration was text-file only at the moment when i last tried, maybe it's better now -- it's worth another try.

thunar: very crippled desktop, e.g. files and folders created via right click menu show up in random places instead of mouse position, also quite slow.

gnome-panel: was crippled too much after transition to gtk3/gnome3.

now, we can see the list of

things that work

openbox: simple to setup, very lightweight, very fast. the only problem is it's limited theme engine, which doesn't support rounder corners

xfce4-panel: works very well, unlike most of other xfce components. i couldn't find anything better in the panel realm. it's important to install plugins, like datetime, notificationarea, and so on.

update from 6.11.2012:

the big thing that is missing is support for launcher buttons which point to specific file pathes -- specifying the path manually doesn't work. i've been using this panel for some time after writing this post, but because of this problem i started looking for another alternative again, and switched to lxpanelx. read below.

xsettingsd: it's good to have. allows configuring fonts, default apps, etc, for the apps that use xsettings protocol (like google chrome).

nautilus: everything works out of the box, except gtk3 theme (which is a fault of gtk3 itself)

this combination gives the excellent desktop environment, which, i believe, is the most usable and fast that you can achieve on linux at the moment.

update from 6.11.2012:

lxpanelx: i was not able to compile it when i originally wrote this post, but then i tried again recently.
it worked very well, but there were 2 quite annoying bugs. now they are both fixed in svn, and it works perfectly for all my needs. setting up is not very user friendly, lacks drag-n-drop, and custom launcher buttons feel like a dirty hack, but once it's setup -- it gets the job done. switched over to it from xfce4-panel.

setting up gtk themes

the most difficult thing in modern linux... setting gtk3 theme.

you need to find a theme which you like, and download or install it from the repositories. i chose to use Zukitwo, it's very good, and has many variations.

now, when you have the theme installed, copy its gtk-3.0 folder to ~/.config, like this:

cp -r /usr/share/themes/Zukitwo/gtk-3.0 ~/.config/

this is not enough to get the theme selected. the trick here is to generate settings.ini, which we don't want to write manually. that can be done using lxappearance. fire lxappearance, and select Zukitwo.

now, you should have working gtk3 theme, and you can uninstall lxappearance. later on, ~/.config/gtk-3.0/settings.ini can be edited manually.

but this also breaks gtk2 theme, if you don't have gtk2 theme with the same name.

to fix it, install and run gtkchtheme, and select the gtk2 theme that you want. simple.


put this into ~/.config/openbox/

xsettingsd &
nautilus -n &
xfce4-panel &

the end result

i don't have a screenshot right now (writing this from work), but this combination, after tweaking few options here and there, will give you gnome2 look-alike environment, which works much faster.

hope that saves someone some time.


Anonymous said...

The Ignorant Guru is receptive to comments and ideas for SpaceFM.

Sweet Fairy said...
This comment has been removed by a blog administrator.