i3wm: hơn 10 không gian làm việc với phím bổ trợ kép?


11

Gần đây, tôi bắt đầu sử dụng i3wmvà yêu nó. Tuy nhiên, có một điều làm phiền tôi: kiểm soát hơn 10 không gian làm việc.

Trong cấu hình của tôi $mod+1để $mod+9chuyển đổi giữa các không gian làm việc từ 1 đến 9 (và $mod+0cho 10), nhưng đôi khi 10 không gian làm việc chỉ là không đủ.

Tại thời điểm này tôi tiếp cận với không gian làm việc từ 11 đến 20 với $mod+mod1+1tới $mod+mod1+0, hit tức mod+alt+number. Tất nhiên điều này hoạt động mà không có bất kỳ vấn đề nào, nhưng khá khó khăn để chuyển đổi không gian làm việc như thế, vì các phím không dễ dàng nhấn. Ngoài ra, việc di chuyển các ứng dụng giữa các không gian làm việc từ 11 đến 20 đòi hỏi phải mod+shift+alt+number-> xấu.

Trong Vimcác liên kết của tôi (tôi có rất nhiều plugin) Tôi bắt đầu sử dụng các phím tắt sửa đổi kép, như modkey + rcho Plugin 1 và modkey + modkey + rcho Plugin 2. Cách này tôi có thể liên kết mọi phím hai lần và nhấn phím mod hai lần thật dễ dàng và nhanh chóng.

Tôi có thể làm một cái gì đó tương tự i3wm?

Làm thế nào để bạn sử dụng hơn 10 không gian làm việc trong i3wm? Bất kỳ giải pháp nào khác?


Tôi không biết bạn có kiểu bố trí bàn phím nào, nhưng bạn có thể sử dụng một số / tất cả các phím bên dưới và bên phải các số trên đầu không? tức là $ mod + q là không gian làm việc 11, v.v ... Tất nhiên bạn sẽ phải gán lại bất kỳ khóa nào đang được sử dụng.
airhuff

Có, nhưng điều này có hiệu quả làm giảm số lượng các phím tắt có sẵn cho i3các hành động. Tốt hơn là, tôi muốn có một cái gì đó giống như $mod + $mod + 1không gian làm việc 11, để một phím bấm nhanh gấp đôi phím mod trực tiếp cho phép tôi đi vào không gian làm việc 11-20 với phím số 1, 2, ..., 9, 0. Trong VimTôi có hành vi này: leader + rđược ánh xạ tới một hành động khác hơn leader + leader + r, do đó tôi có thể kích hoạt các hành động khác nhau với cùng một phím nóng bằng cách chỉ cần nhấn phím lãnh đạo một hoặc hai lần.
daniel451

Câu trả lời:


14

i3 không thực sự hỗ trợ các chuỗi chính như vim . Bất kỳ ràng buộc khóa nào cũng bao gồm một khóa duy nhất đứng trước một danh sách tùy chọn gồm các Shift+Shiftbộ sửa đổi riêng biệt (vì vậy không ). Và tất cả các sửa đổi cần phải được nhấn xuống tại thời điểm phím chính được nhấn.

Điều đó đang được nói, có hai cách chính để có nhiều không gian làm việc mà không cần phải liên kết chúng với danh sách dài các sửa đổi:

1. Tự động tạo và truy cập không gian làm việc với các chương trình bên ngoài

Bạn không thể phải xác định một lối tắt cho mỗi không gian làm việc, bạn chỉ có thể tạo chúng một cách nhanh chóng bằng cách gửi a workspace NEW_WSđến i3 , ví dụ như với i3-msgchương trình:

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

i3 cũng đi kèm với i3-inputlệnh, mở ra một trường đầu vào nhỏ sau đó chạy một lệnh với đầu vào đã cho làm tham số

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

Liên kết hai lệnh này với các phím tắt và bạn có thể truy cập một số không gian làm việc tùy ý bằng cách nhấn phím tắt và sau đó nhập tên (hoặc số) của không gian làm việc bạn muốn. (Nếu bạn chỉ làm việc với các không gian làm việc được đánh số, bạn có thể muốn sử dụng workspace number %sthay vì chỉ workspace %s)

2. Liên kết tĩnh các không gian làm việc với các Phím tắt đơn giản trong các chế độ liên kết chính

Ngoài ra, để tiếp cận tĩnh hơn, bạn có thể sử dụng các chế độ trong cấu hình i3 của mình . Bạn có thể có các chế độ riêng biệt để tập trung và di chuyển đến các không gian làm việc:

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

Hoặc bạn có thể có các ràng buộc riêng để lấy nét và di chuyển trong một chế độ:

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

Trong cả hai ví dụ workspace, movecác lệnh hoặc được nối với nhau mode "default", để i3 tự động quay trở lại bản đồ ràng buộc khóa mặc định sau mỗi lệnh.


1

Giải pháp của tôi cho vấn đề này chỉ là sử dụng nhiều phím hơn:

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.