I3 Window Manager¶
Ou manager de fenêtres I3 pour les francophones.
Vous trouverez ici un certain nombre de "bon plans" pour faciliter votre vie avec I3WM.
Où changer la configuration¶
Le fichier de configuration de I3 se trouve ici:
~/.config/i3/config
Tuer une application¶
Pour quiter une application, la pluspart du temps l'application propose un racourcis pour quitter:
- Ctrl+Q
- Alt+F4
Mais dans certains cas, l'application ne fourni pas de racourcis, comme I3 ne nous donne pas de petite croix cerclée de rouge, il faut alors tuer l'application. Attention à être dans le context de la bonne application!
Dans ce cas, utiliser Super+Shift+A; oui oui, A alors que la doc dit Q...
Et bien oui pauvres frenshies que nous somme, les touches sont celles d'un clavier QWERTY et pas AZERTY (au moins au moment où j'ecris ces lignes au moins). Sinon, vous pouvez aussi faire en sorte de lier le racourcis à la touche A qui donnera bien un kill avec la touche Q: facile non?
Microsoft Teams et ses notifications !¶
Pour résoudre le problèmes des notifications Microsoft Teams (au moins 3 types de notifications différentes quand même, et je ne sais toujours pas pourquoi...), il faut éditer votre fichier de configuration et ajouter les lignes suivantes:
# Teams notification fixup: allow floating windows
for_window [title="Notification Microsoft Teams" class="microsoft teams - preview"] floating enable
for_window [title="Notification Microsoft Teams" class="Microsoft Teams - Preview"] floating enable
for_window [title="Microsoft Teams Notification" class="microsoft teams - preview"] floating enable
for_window [title="Microsoft Teams Notification" class="Microsoft Teams - Preview"] floating enable
Deplacer un workspace sur un autre moniteur¶
Il est possible de deplacer tout un workspace d'un moniteur à l'autre en ajoutant ces bindings:
# move focused workspace between monitors
bindsym $mod+Ctrl+Shift+Right move workspace to output right
bindsym $mod+Ctrl+Shift+Left move workspace to output left
Biensur, il est aussi possible de deplacer vers les moniteurs du haut ou du bas si votre configuration le nécessite, mais aussi d'assigner un deplacement vers un moniteur donné.
Renommer les workspaces¶
Par défaut, les workspaces sont simplement numérotés. Il est possible de les renommer au format qu'on veut. Attention, il faut également utiliser ce nouveau nom dans toute commande appliquée sur un workspace renommé. Par exemple, par habitude, j'ouvre mon mailer dans le workspace 1. Je souhaite donc qu'il soit nommé : "1: Mail".
exec --no-startup-id i3-msg 'rename workspace 1 to "1: Mail"'
Pour accéder à ce workspace à travers le binding habituel Touche Meta + 1, il est important de surcharger ce binding avec le nouveau nom de workspace:
bindsym $mod+1 workspace 1: Mail
$mod a été associé à la touche de votre choix au début de votre fichier de configuration (touche windows dans cet exemple) : set $mod Mod4
Exécuter un programme automatiquement au démarrage¶
Il est possible d'exécuter automatiquement un ou plusieurs programmes, sur un workspace spécifique si on le souhaite, au démarrage du window manager:
# Open firefox in workspace 2: Web (previously renamed)
exec --no-startup-id i3-msg 'workspace 2: Web; exec firefox;'
Assigner un programme à un workspace¶
À défaut d'exécuter automatiquement un programme au démarrage du window manager, il est possible de faire en sorte qu'un programme soit automatiquement associé à un workspace. Par exemple, je souhaite que Skype soit automatiquement toujours sur le workspace 9:
assign [class="Skype"] 9
Un programme peut être défini par class ou title.
Changer la taille d'une fenêtre¶
Il faut activer le mode "Resize" et définir un binding pour agrandir ou rétrécir la fenêtre (hauteur et largeur). S'applique sur la fenêtre active.
# Binding to activate Resize mode
bindsym $mod+r mode "Resize"
# Define Resize mode
mode "Resize" {
# same bindings, but for the arrow keys
bindsym Left resize shrink width 1 px or 1 ppt
bindsym Down resize grow height 1 px or 1 ppt
bindsym Up resize shrink height 1 px or 1 ppt
bindsym Right resize grow width 1 px or 1 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
Styling de l'i3bar¶
À mettre dans :
bar { ... }
Couleurs¶
colors {
# Background color
background #000000
# class border background text
focused_workspace #353434 #e5e5e5 #000000
active_workspace #333333 #5f676a #ffffff
inactive_workspace #333333 #222222 #888888
urgent_workspace #2f343a #900000 #ffffff
}
i3status¶
status_command i3status --config ~/.i3status.conf | i3status-title-on-bar --color '#111'
i3status-title-on-bar permet d'afficher dans l'i3bar le titre de la fenêtre courante (https://github.com/rholder/i3status-title-on-bar)
Exemple de conf i3status :
general {
colors = true
interval = 1
output_format = "i3bar"
color_good = "#00FF00"
color_degraded = "#FFFF00"
color_bad = "#FF0000"
color_separator = "#B3BEFF"
}
order += "volume master"
order += "disk /"
order += "wireless wlp2s0"
order += "ethernet _first_"
order += "battery 0"
order += "time"
wireless wlp2s0 {
format_up = " : %ip (%quality at %essid)"
format_down = " : "
}
ethernet _first_ {
# if you use %speed, i3status requires root privileges
format_up = " : %ip (%speed)"
format_down = " : "
}
battery 0 {
format_down = ""
status_bat = " "
status_chr = " "
status_full = " "
path = "/sys/class/power_supply/BAT%d/uevent"
low_threshold = 15
integer_battery_capacity = true
last_full_capacity = true
format = "%status %percentage %remaining"
}
time {
format = " %d-%m-%Y %H:%M:%S"
}
disk "/" {
format = " %free"
}
volume master {
format = " %volume"
format_muted = ""
device = "default"
mixer = "Master"
mixer_idx = 0
}