GNU/Linux >> LINUX-Kenntnisse >  >> Linux

i3wm:mehr als 10 Arbeitsbereiche mit doppelter Modifikatortaste?

i3 unterstützt Tastenfolgen wie vim nicht wirklich . Jede Tastenbindung besteht aus einem einzelnen Schlüssel, dem eine optionale Liste von eindeutigen Schlüsseln vorangestellt ist (also kein Shift+Shift ) Modifikatoren. Und alle Modifikatoren müssen gedrückt werden, wenn die Haupttaste gedrückt wird.

Abgesehen davon gibt es zwei Möglichkeiten, viele Arbeitsbereiche zu haben, ohne sie an lange Listen von Modifikatoren binden zu müssen:

1. Dynamische Erstellung und Zugriff auf Arbeitsbereiche mit externen Programmen

Sie müssen nicht für jeden einzelnen Arbeitsbereich eine Verknüpfung definieren, Sie können sie einfach spontan erstellen, indem Sie einen workspace NEW_WS senden zu i3 , zum Beispiel mit dem i3-msg Programm:

i3-msg workspace NEW_WS
i3-msg move container to workspace NEW_WS

i3 kommt auch mit i3-input Befehl, der ein kleines Eingabefeld öffnet und dann einen Befehl mit der gegebenen Eingabe als Parameter ausführt

i3-input -F 'workspace %s' -P 'go to workspace: '
i3-input -F 'move container to workspace %s' -P 'move to workspace: '

Binden Sie diese beiden Befehle an Verknüpfungen und Sie können auf eine beliebige Anzahl von Arbeitsbereichen zugreifen, indem Sie einfach auf die Verknüpfung drücken und dann den Namen (oder die Nummer) des gewünschten Arbeitsbereichs eingeben. (Wenn Sie nur mit nummerierten Arbeitsbereichen arbeiten, sollten Sie vielleicht workspace number %s verwenden statt nur workspace %s )

2. Binden Sie Arbeitsbereiche innerhalb von Tastenbindungsmodi statisch an einfache Verknüpfungen

Alternativ können Sie für einen statischeren Ansatz Modi in Ihrem i3 verwenden Aufbau. Sie könnten separate Modi zum Fokussieren und Wechseln zu Arbeitsbereichen haben:

set $mode_workspace "goto_ws"
mode $mode_workspace {
    bindsym 1 workspace 1; mode "default"
    bindsym 2 workspace 2; mode "default"
    # […]
    bindsym a workspace a; mode "default"
    bindsym b workspace b; mode "default"
    # […]
    bindsym Escape mode "default"
}
bindsym $mod+w mode $mode_workspace

set $mode_move_to_workspace "moveto_ws"
mode $mode_move_to_workspace {
    bindsym 1 move container to workspace 1; mode "default"
    bindsym 2 move container to workspace 2; mode "default"
    # […]
    bindsym a move container to workspace a; mode "default"
    bindsym b move container to workspace b; mode "default"
    # […]
    bindsym Escape mode "default"
}
bindsym $mod+shift+w mode $mode_move_to_workspace

Oder Sie könnten separate Bindungen zum Fokussieren und Bewegen innerhalb eines einzigen Modus haben:

set $mode_ws "workspaces"
mode $mode_ws {
    bindsym 1 workspace 1; mode "default"
    bindsym Shift+1 move container to workspace 1; mode "default"
    bindsym 2 workspace 2; mode "default"
    bindsym Shift+2 move container to workspace 2; mode "default"
    # […]
    bindsym a workspace a; mode "default"
    bindsym Shift+a move container to workspace a; mode "default"
    bindsym b workspace b; mode "default"
    bindsym Shift+b move container to workspace b; mode "default"
    # […]
    bindsym Escape mode "default"
}
bindsym $mod+shift+w mode $mode_move_to_workspace

In beiden Beispielen die workspace oder move Befehle werden mit mode "default" verkettet , sodass i3 kehrt nach jedem Befehl automatisch zur Standard-Tastenbelegung zurück.


Meine Lösung dafür ist einfach die Verwendung von mehr Schlüsseln:

set $ws0 "0:`:www"
set $ws1 "1:1"
set $ws2 "2:2"
set $ws3 "3:3:fm"
set $ws4 "4:4"
set $ws5 "5:5"
set $ws6 "6:6:dev"
set $ws7 "7:7"
set $ws8 "8:8"
set $ws9 "9:9"
set $ws10 "10:0:music"
set $ws11 "11:-:jd"
set $ws12 "12:=:comm"
set $ws13 "13:B"
set $ws14 "14:H"
set $ws15 "15:E"
set $ws16 "16:I"
set $ws17 "17:D:upwork"


bindsym $mod+grave workspace $ws0
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
bindsym $mod+minus workspace $ws11
bindsym $mod+equal workspace $ws12
bindsym $mod+BackSpace workspace $ws13
bindsym $mod+Home workspace $ws14
bindsym $mod+End workspace $ws15
bindsym $mod+Insert workspace $ws16
bindsym $mod+Delete workspace $ws17

for_window [class="Upwork"] move container to workspace $ws17
for_window [class="Spotify"] move container to workspace $ws10
for_window [class="Brave-browser"] move container to workspace $ws0
for_window [class="TelegramDesktop"] move container to workspace $ws12
for_window [class="jetbrains-pycharm"] move container to workspace $ws6
for_window [class="Caja"] move container to workspace $ws3
for_window [class="JDownloader"] move container to workspace $ws11

Linux
  1. Sicherheitsüberwachung unter Linux mit Tripwire

  2. SSH – Generieren und Arbeiten mit SSH-Schlüsseln

  3. Alle .sh-Dateien mit einer Größe von mehr als 5 KB anzeigen?

  4. So aktualisieren Sie Homebrew mit Cron unter Mac OS

  5. du -h mit mehr Dezimalstellen

Grafische Verwaltung von SSH-Schlüsseln mit Seahorse

Linux more Befehl mit Beispielen erklärt

So verwenden Sie einen SSH-Schlüssel mit Nicht-Root-Benutzern

Zorin OS 15 schöner und nützlicher denn je

Warum denken manche Leute, dass Linux-Rechnerkonten mit Passwörtern sicherer sind als Konten ohne Passwörter?

Generieren Sie ein SSH-Paar mit AES-256-CBC