i3 – le window manager minimaliste

Pour mon GPD Pocket 3, vu la taille de l’écran, je voulais un window manager très léger et qui pouvait s’utiliser le plus possible via des raccourcis claviers (sans souris donc). Un peu dans l’esprit de Tmux mais dans un environnement graphique.

Mon choix s’est porté sur i3.

Niveau installation, c’est très simple:

sudo apt install i3

Et pour lancer i3 par défaut:

sudo update-alternatives --install /usr/bin/x-session-manager x-session-manager /usr/bin/i3 60

Quelques touches par défault

ToucheDescription
$mod+Returnpour lancer le terminal integré
$mod+Shift+qpour tuer la fenêtre en cours
$mod+fbascule le mode plein écran
$mod+Shift+spacebascule le mode fenêtré / tile
$mod+chiffreselection du workspace chiffre
$mod+Shift+chiffredéplacement de la fenêtre séléctionnée vers le workspace chiffre
$mod+Shift+crechargement de la config i3
$mod+Shift+rredémarrage du i3

Personnalisation

J’ai modifié la configuration (dans ~/.config/i3/config) pour plus répondre à mes besoins/envies:

Changement de la police par défaut (utilisé dans la barre de menu et les titres)

font pango:monospace 9

Affichage d’un fond d’écran

# set background
exec --no-startup-id nitrogen --set-zoom-fill ~/.local/share/images/background.png --head=0
exec --no-startup-id picom -CGb

Lancement de barrier au démarrage (afin d’utiliser le clavier/souris d’un autre PC)

# start barrier (synergy fork)
exec --no-startup-id barrier

Lancement du gestionnaire de réseau

# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet

Support des touches multimedia

# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status

bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status

Lancement d’un gestionnaire d’application via $mod+d (un peu comme spotlight sur macosx)

bindcode $mod+40 exec "rofi -modi drun,run,ssh -show drun -font 'pango:monospace 28' -theme 'amstrad'"

Lancement d’un émulateur Amstrad via $mod+c (et envoi vers le workspace 4)

# application
bindsym $mod+c exec /home/htmiva/Applications/cpcemu-2.4/cpcemu
for_window [class="cpcemu"] move container to workspace 4, fullscreen toggle, workspace number 4

Envoi de la fenetre dosbox dans le workspace 4 (+ fullscreen) à chaque lancement de cet application

# dosbox
for_window [class="dosbox"] move container to workspace 4, fullscreen toggle, workspace number 4

Menu plus sexy pour le redémarrage via $mod+BackSpace

# shutdown, reboot, lock screen
set $Locker i3lock && sleep 1

set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown

mode "$mode_system" {
     bindsym l exec --no-startup-id $Locker, mode "default"
     bindsym e exec --no-startup-id i3-msg exit, mode "default"
     bindsym s exec --no-startup-id systemctl suspend, mode "default"
     bindsym h exec --no-startup-id systemctl hibernate, mode "default"
     bindsym r exec --no-startup-id systemctl reboot, mode "default"
     bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"

# back to normal: Enter or Escape
     bindsym Return mode "default"
     bindsym Escape mode "default"
 }

bindsym $mod+BackSpace mode "$mode_system"

Redémarrage du serveur X via $mod+shift+BackSpace

bindsym $mod+shift+BackSpace exec killall -9 startx
0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires