{{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