Table of Contents
~~META: status = active &relation firstimage = :project:i3wmfans.png ~~
I<3wm
Motivation
There are lot of windows managers and graphical interfaces. Those used in standart Linux distros are quite usable (most of them) and customizable. MacOS X GUI sux, Windows GUI sux a lot. i3wm is one those you will love if you have a need to have it lightweight, customizable and have at least one evening to discover all the posibilities. We are using i3wm for some time and have a tips and reasons why we love it. This page is intended to be a yet another one place to exchange cool tips on i3wm customizations.
Looking for distraction-free desktop environment?
Using one shortcut any window could be made fullscreen.
~/.i3/config
# enter fullscreen mode for the focused container bindsym $mod+f fullscreen
Using dunst as your notification daemon (software that generates notification bubbles to your desktop environment) you can pause/unpause dunst by sending proper signal. Therefore you'll create a time frame free of distracting notifications.
## stop dunst notifications /usr/bin/pkill -u "${USER}" -SIGUSR1 dunst ## stop dunst notifications /usr/bin/pkill -u "${USER}" -SIGUSR1 dunst
Handfull applets
- Bluetooth connectivty: /usr/bin/blueman-applet
- Clipboard history: /usr/bin/glipper
- Volume: /usr/bin/pasystray
- Time tracking: /usr/bin/hamster-indicator
- Simple Notification daemon: /usr/bin/dunst
- remove idle cursor image from screen: /usr/bin/unclutter
- Keyboard layout indicator: /usr/bin/xxkb
- Nagios monitoring: /usr/bin/nagstamon
- Multiple screens: /usr/local/bin/arandr-applet
Switch keyboard layout per window proper Xorg way with a layout flag on each window
- keyboard layouts will be switched on per window basis
- you'll get an applet based visual notification of the current layout used
- each X window will have an layout flag in its corner (doesnt work for Chromium)
- it will behave properly
- switching layouts is made using Alt+Shift toggle
sudo wget https://raw.githubusercontent.com/tampakrap/dotfiles/master/.xxkb/cz.xpm -O /usr/share/xxkb/cz.xpm sudo wget https://raw.githubusercontent.com/tampakrap/dotfiles/master/.xxkb/us.xpm -O /usr/share/xxkb/us.xpm
~/.i3/config
exec_always --no-startup-id xxkb exec_always --no-startup-id /usr/bin/setxkbmap -layout "us,cz" -option "grp:alt_shift_toggle"
~/.xxkbrc
XXkb.image.path: /usr/share/xxkb/ XXkb.mainwindow.type: tray XXkb.group.base: 1 XXkb.group.alt: 2 XXkb.mainwindow.enable: yes XXkb.mainwindow.geometry: 12x12+0+0 XXkb.mainwindow.image.1: us.xpm XXkb.mainwindow.image.2: cz.xpm XXkb.mainwindow.appicon: no XXkb.mainwindow.label.enable: no XXkb.button.enable: yes XXkb.button.image.1: us.xpm XXkb.button.image.2: cz.xpm XXkb.button.geometry: 10x10-1+1 XXkb.controls.add_when_start: yes XXkb.controls.add_when_create: yes XXkb.controls.add_when_change: no XXkb.controls.focusout: no
Never ever use “setxkbmap cz && setxkbmap us” from command line or you will broke the setup. In case it happened re-run the whole setxkbmap command with all options from i3 config (see above). There You fixed it!
Desktop screenshots
- PrintScreen to take a screenshot and open it via gimp for the subsequent editation
- PrintScreen+Shift for silent screenshots
~/.i3/config
# scrot & gimp - root bindsym Print exec scrot 'screen-%Y-%m-%d-%H:%M:%S_$wx$h.png' -e 'mv $f ~/screenshots/ && gimp ~/screenshots/$f' # scrot & gimp - select window or rectangle bindsym Shift+Print exec scrot 'screen-%Y-%m-%H:%M:%S-%d_$wx$h.png' -s -e 'mv $f ~/screenshots/ && gimp ~/screenshots/$f'
Transparent windows
Compton is an compositor for X server. I've choose to use “,” and “.” keys to control transparency of the currently focused window, because on US keyboard there are “<” and “>” characters on the same physical keys.
~/.i3/config
# transparency control bindsym $mod+period exec /usr/bin/compton-trans -w $(xprop -root 32x 't$0' _NET_ACTIVE_WINDOW | cut -f 2) -o +5 bindsym $mod+comma exec /usr/bin/compton-trans -w $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) -o -5 exec --no-startup-id /usr/bin/compton -b -CG