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
Touche | Description |
---|---|
$mod+Return | pour lancer le terminal integré |
$mod+Shift+q | pour tuer la fenêtre en cours |
$mod+f | bascule le mode plein écran |
$mod+Shift+space | bascule le mode fenêtré / tile |
$mod+chiffre | selection du workspace chiffre |
$mod+Shift+chiffre | déplacement de la fenêtre séléctionnée vers le workspace chiffre |
$mod+Shift+c | rechargement de la config i3 |
$mod+Shift+r | redé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