Window-Manager
i3wm:如何使多個監視器在單個綁定中切換工作區
使用 Unity,我的兩個顯示器始終位於同一個工作區。如果我從工作區 1 開始,然後按 ctrl+alt+right,我的兩個顯示器都會移動到右側的新工作區。這種行為對我的工作流程很重要。
我想切換到 i3,但看起來 2 台顯示器並不總是需要指向同一個工作區。有沒有辦法改變這種行為,以便在 i3 中,當我按下 $mod+Shift+num 時,兩個螢幕都會改變,而不僅僅是具有焦點的螢幕?
(在某種程度上)可以模擬這個“功能”(對我來說,工作區行為
i3
是主要功能之一,所以我真的不建議這樣做,除非你真的無法在沒有跨越所有顯示器的工作區的情況下工作,同時仍然想要使用i3
)。您可以將多個命令綁定到快捷方式,這樣您就可以一次在兩個顯示器上切換工作區。例如:
# Default modifier key set $mod Mod4 # variables for left and right monitor # (assuming names DP-1 and DP-3 with DP-1 being left of DP-3) set $monL DP-1 set $monR DP-3 # variables for workpacenames; set $ws1L 1:A set $ws1R 11:A set $ws2L 2:B set $ws2R 12:B set $ws3L 3:C set $ws3R 13:C # assign workspaces to specific outputs workspace $ws1L output $monL workspace $ws1R output $monR workspace $ws2L output $monL workspace $ws2R output $monR workspace $ws3L output $monL workspace $ws3R output $monR # do not toggle automatically between the current and previous # workspace on repeated calls to `workspace NAME` (with identical NAME) workspace_auto_back_and_forth no # Toggle between both monitors # (focus output left wraps from the leftmost to the rightmost output) bindsym $mod+Tab focus output left # switch two workspaces at once (the need to be on different outputs) bindsym $mod+1 workspace $ws1L, workspace $ws1R bindsym $mod+2 workspace $ws2L, workspace $ws2R bindsym $mod+3 workspace $ws3L, workspace $ws3R # move a window to a specific workpace; # $mod+Shift for left side, $mod+Control for right side bindsym $mod+Shift+1 move workspace $ws1L bindsym $mod+Control+1 move workspace $ws1R bindsym $mod+Shift+2 move workspace $ws2L bindsym $mod+Control+2 move workspace $ws2R bindsym $mod+Shift+3 move workspace $ws3L bindsym $mod+Control+3 move workspace $ws3R bar { # [...] # Do not show workspace numbers (optional) strip_workspace_numbers yes }
這使用變數來保持工作區和輸出名稱一致。左右監視器的工作區名稱需要不同。在這種情況下,我選擇使用不同的數字,因為如果需要,它們可以被隱藏。通過這些設置
Super
+1
將切換到1:A
左顯示器和11:A
右顯示器上的工作區。workspace_auto_back_and_forth
應該禁用以避免可能的混淆和不良行為。注意事項:
- 這僅適用於鍵盤快捷鍵,如果您點擊 i3bar 上的工作區按鈕,則只有一台顯示器上的工作區會改變,而不會改變它的伴侶。
- 任何將視窗聚焦在目前不可見工作區 (
[criteria] focus
) 上的命令都只會聚焦該工作區,而不會將其聚焦在另一個輸出上- 使用一個綁定切換兩個工作區時,第二個工作區將始終是焦點所在的工作區(在上面的範例中為右側)。
- 在某些情況下,跨顯示邊界聚焦和移動可能需要不同的命令/鍵綁定。(雖然這也是非同步工作區的情況,但在期待一個大工作區時可能會更明顯/干擾)
使用 IPC 界面可能會解決一些(如果不是全部)警告,例如也可以自動切換到配套工作區。
就個人而言,我建議至少採用一種混合方法:在您的工作流程絕對需要它們的地方使用同步工作區,但
i3
在其他任何地方使用預設的 (for ) 單一顯示方法。否則,如果您絕對需要/想要一直同步的工作空間,那可能i3
不是您正在尋找的視窗管理器。