{{template>project:infobox|
name=i<3wm|
image=i3wmfans.png|
sw=-|
hw=-|
founder=[[:user:ruza]]|
interested=[[:user:lexik]]\\ [[:user:malanius]]|
status=active }}
~~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