zkk / i3wm - Window Manager



Tasto funzione

Si possono visualizzare i tasti che si possono utilizzare tramite l’esecuzione di xmodmap, e precisamente sono:

Configurazione

File di configurazione: ~/.config/i3/config:

font pango:monospace 12  # cambia il font
focus_follows_mouse no  # non evidenziare la finestra sotto al mouse
workspace_auto_back_and_forth yes  # switch tra 2 workspaces premendo sempre la medesima combinazione di tasti
assign [class="firefox" instance="Navigator"] $ws2  # eseguire all'avvio un programma in un determinato Workspace

Per conoscere class e instance eseguo da teminale il seguente comando:

xprop | grep WM_CLASS

Poi clicco all’interno della finestra del programma che voglio lanciare ottenendo un output del genere:

WM_CLASS(STRING) = "Navigator", "firefox"

Il primo elemento è instance ed il secondo è class.

Lockscreen

Applicazioni necessarie

sudo pacman -S i3lock
sudo pacman -S xss-lock
sudo pacman -S imagemagick
sudo pacman -S scrot

Salvaschermo con immagine

salvaschermo per X

Aggiungere al file ~/.xinitrc la seguente configurazione:

xset s 300
xss-lock -l -- i3lock -n -i image.png &

Scorciatoia per bloccare lo schermo

Aggiungere al file ~/config/i3/config la seguente configurazione:

set $i3lockwall i3lock -n -i image.png
bindsym $mod+x exec --no-startup-id $i3lockwall

Salvaschermo con effetto blur

Script

Scrivere il seguente script al percorso ~/.config/i3/scripts/lock.sh come segue:

#!/bin/sh
img=/tmp/i3lock.png
scrot -o $img
convert $img -scale 10% -scale 1000% $img
i3lock -n -i $img

Salvaschermo per X

Aggiungere al file ~/.xinitrc la seguente configurazione:

xset s 300
xss-lock -l -- sh ~/.config/i3/scripts/lock.sh &

Scorciatoia per bloccare lo schermo

Aggiungere al file ~/config/i3/config la seguente configurazione:

set $i3lockwall sh ~/.config/i3/scripts/lock.sh
bindsym $mod+x exec --no-startup-id $i3lockwall

Wallpaper

sudo pacman -S feh
mkdir -p ~/.config/i3/feh

Inserire la seguente riga di configurazione nel file ~/.config/i3/config:

exec --no-startup-id feh --no-fehbg --bg-fill ~/.config/i3/feh/<my_image>

Floating window

Modificare/aggiungere all’interno del file di configurazione ~/.config/i3/config:

# floating pop up automatically
for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [class="Arandr"] floating enable

Scratchpad

Ad esempio proviamo ad inserire 2 scratchpad (finestre on top), una shell e l’applicaztion htop per monitorare il sistema.

sudo pacman -S htop

Configurazione del file ~/.config/i3/config come segue:

# Terminal scratchpad
for_window [instance="urxvt_scratchpad"] move to scratchpad, border none
bindsym $mod+Shift+t [instance="urxvt_scratchpad"] scratchpad show
exec urxvtc -name urxvt_scratchpad

# htop scratchpad
for_window [instance="htop_scratchpad"] move to scratchpad, border none
bindsym $mod+Shift+p [instance="htop_scratchpad"] scratchpad show
exec urxvtc -name htop_scratchpad -e htop

Attenzione che se si esce dal terminale scratchpad tramite exit non si potrà più utilizzarlo nella stessa sessione di X ma si dovrà fare logout e login. Stesso discorso per htop.

Risoluzione dello schermo

Tramite l’utilizzo di arandr salvo i files di configurazione dei 2 monitor all’interno dei seguenti files:

Nel file di configurazione del ~/.config/i3/config aggiungo le seguenti righe:

set $mode_display Choose monitor: [a]cer [s]amsung
mode "$mode_display" {
    bindsym a exec --no-startup-id sh "$HOME/.config/X11/acer-monitor.sh", mode "default"
    bindsym s exec --no-startup-id sh "$HOME/.config/X11/samsung-monitor.sh", mode "default"
    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym $mod+a mode "$mode_display"

In questo modo con la scorciatoria $mod+a posso cambiare risoluzione dello schermo.