User Tools

Site Tools


project:i3wm:start
i<3wm
founder: ruza
depends on:
interested: lexik
malanius
software license: -
hardware license: -

~~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
project/i3wm/start.txt · Last modified: 2018/03/06 20:13 by ruza