web-dev-qa-db-fra.com

Redimensionnement des fenêtres dans i3 à l'aide du clavier uniquement

J'essaie de configurer mon ordinateur (exécutant Crunchbang Linux Waldorf et i3) afin qu'il soit toujours, par défaut, configuré de sorte qu'en appuyant sur Ctrl + Maj et sur les touches fléchées, la fenêtre soit redimensionnée selon la direction des flèches.

Le i3 user guide fournit cet exemple qui je pense est très proche de ce que je veux:

mode "resize" {
    # These bindings trigger as soon as you enter the resize mode

    # Pressing left will shrink the window’s width.
    # Pressing right will grow the window’s width.
    # Pressing up will shrink the window’s height.
    # Pressing down will grow the window’s height.
    bindsym j           resize shrink width 10 px or 10 ppt
    bindsym k           resize grow height 10 px or 10 ppt
    bindsym l           resize shrink height 10 px or 10 ppt
    bindsym semicolon   resize grow width 10 px or 10 ppt

    # same bindings, but for the arrow keys
    bindsym Left        resize shrink width 10 px or 10 ppt
    bindsym Down        resize grow height 10 px or 10 ppt
    bindsym Up          resize shrink height 10 px or 10 ppt
    bindsym Right       resize grow width 10 px or 10 ppt

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

# Enter resize mode
bindsym $mod+r mode "resize"

Mais je veux le construire en natif, sans avoir à entrer et sortir des modes de redimensionnement. Je veux juste utiliser les touches fléchées, pas les touches j, k, l et point-virgule.

Des réflexions sur la façon dont je ferais ça?

21
Oposum

Meilleure solution que j'ai trouvée moi-même:

Aller à ~/.i3/config et ouvrez le fichier.

Collez le code suivant à la fin:

bindsym $mod+Ctrl+Right resize shrink width 1 px or 1 ppt
bindsym $mod+Ctrl+Up resize grow height 1 px or 1 ppt
bindsym $mod+Ctrl+Down resize shrink height 1 px or 1 ppt
bindsym $mod+Ctrl+Left resize grow width 1 px or 1 ppt

Enregistrez-le et redémarrez i3.

14
Oposum

Sur la base de la @ Oposum solution , j'ai ajouté un "redimensionnement rapide":

# Resizing windows by 10 in i3 using keyboard only
bindsym $mod+Ctrl+Shift+Right resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Up resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Down resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Left resize grow width 10 px or 10 ppt

Donc dans mon ~/.i3/config J'ai:

# Resizing windows in i3 using keyboard only
# https://unix.stackexchange.com/q/255344/150597

# Resizing by 1
bindsym $mod+Ctrl+Right resize shrink width 1 px or 1 ppt
bindsym $mod+Ctrl+Up resize grow height 1 px or 1 ppt
bindsym $mod+Ctrl+Down resize shrink height 1 px or 1 ppt
bindsym $mod+Ctrl+Left resize grow width 1 px or 1 ppt

# Resizing by 10
bindsym $mod+Ctrl+Shift+Right resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Up resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Down resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Left resize grow width 10 px or 10 ppt

Comme l'a dit @Oposum: enregistrez-le et redémarrez i3 ($ mod + Shift + R).