i3
GNOME 3 finally pushed me over the edge. After I brief stint with cinnamon, I decided the only thing left was to configure a tiling window manager and some tweaks to make it more usable. For no reason at all, I settled on i3, which seems really nice and simple to configure.
But how to use i3 comfortable? i3 is a tiling window manager, which makes it ubercool, but with it you loose things like automount, brightness keys, etc.; all the things you expect from a Linux desktop nowadays. This blog item deals with getting the goodies from i3, without giving up on all the other things you like. I basically use a lot of GNOME tools, but let them run in the background.
See http://i3wm.org/docs/user-contributed/lzap-config.html, and the Arch Wiki for some good documentation too https://wiki.archlinux.org/index.php/I3 to get this going.
I took the following steps to get it going, this is still rough around the edges, because I’m lazy. See this screenshot:
-
gnome-session-daemon
- Start this daemon, it makes stuff much easier, like default keys for brightness, etc.
- Also makes your gtk-apps look nice, because they are themed.
-
Keys
- Volume - works with gnome-session-daemon.
- Keyboard - idem.
- Screen - idem.
-
Locking
gnome-screensaver
- Create a keycombo in your config to lock your screen:
bindsym $mod+Control+l exec --no-startup-id gnome-screensaver-command -l
-
Network manager
- Start
nm-applet
.
- Start
-
Bluetooth
- apt-get install blueman, it gives you
blueman-applet
.
- apt-get install blueman, it gives you
-
Sane cut&paste
- apt-get install parcellite.
-
Notification
- There is dunst, but this was also fixed by running gnome-settings-daemon, but needs some extra configuration for automounting notifications.
-
Mounting external disks with notifications.
-
Install the debian package of udisks-glue (64 bit) from: https://packages.debian.org/sid/amd64/udisks-glue/download
-
Add some config for notifications: start with:
udisks-glue -c <file>
and in that config file add or set:match disks { post_insertion_command = "udisks --mount %device_file --mount-options sync" post_mount_command = "notify-send %device_file 'mounted %device_file %mount_point'" post_unmount_command = "notify-send %device_file 'unmounted %device_file %mount_point'" }
-
-
puvacontrol for sound stuff other than volume control
- Add a shortcut that starts pavucontrol.
-
Solarized colors: https://github.com/lkraav/dotfiles/tree/master/.i3, which you can then tweak, to make them even better.
Config file⌗
~/.i3/config
Add the following lines, to implement some of the above.
exec --no-startup-id /usr/bin/gnome-settings-daemon
exec --no-startup-id nm-applet
exec --no-startup-id blueman-applet
exec --no-startup-id udisks-glue -c ~/.udisk-glue.conf
exec --no-startup-id parcellite
Dmenu⌗
I had some truetype font problems with demnu, this was fix by:
~/.i3/dmenu_run -b -fn 'Source Code Pro-9'
, basically use dmenu.xft instead of dmenu, fix dmenu_run for this:
#!/bin/sh
cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
if [ -d "$cachedir" ]; then
cache=$cachedir/dmenu_run
else
cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~
fi
(
IFS=:
if stest -dqr -n "$cache" $PATH; then
stest -flx $PATH | sort -u | tee "$cache" | dmenu.xft "$@"
else
dmenu.xft "$@" < "$cache"
fi
) | ${SHELL:-"/bin/sh"} &