i3 tidak benar-benar mendukung urutan kunci seperti vim . Pengikatan kunci apa pun terdiri dari satu kunci yang didahului oleh daftar opsional yang berbeda (jadi tidak ada Shift+Shift
) pengubah. Dan semua pengubah harus ditekan pada saat tombol utama ditekan.
Karena itu, ada dua cara utama untuk memiliki banyak ruang kerja tanpa harus mengikatnya ke daftar pengubah yang panjang:
1. Buat dan akses ruang kerja secara dinamis dengan program eksternal
Anda tidak perlu menentukan pintasan untuk setiap ruang kerja, Anda dapat membuatnya dengan cepat dengan mengirimkan workspace NEW_WS
ke i3 , misalnya dengan i3-msg
program:
i3-msg workspace NEW_WS
i3-msg move container to workspace NEW_WS
i3 juga dilengkapi dengan i3-input
perintah, yang membuka bidang masukan kecil lalu menjalankan perintah dengan masukan yang diberikan sebagai parameter
i3-input -F 'workspace %s' -P 'go to workspace: '
i3-input -F 'move container to workspace %s' -P 'move to workspace: '
Ikat kedua perintah ini ke pintasan dan Anda dapat mengakses sejumlah ruang kerja yang sewenang-wenang hanya dengan menekan pintasan lalu memasukkan nama (atau nomor) ruang kerja yang Anda inginkan. (Jika Anda hanya bekerja dengan ruang kerja bernomor, Anda mungkin ingin menggunakan workspace number %s
bukan hanya workspace %s
)
2. Ikat ruang kerja secara statis ke Pintasan sederhana dalam mode pengikatan kunci
Sebagai alternatif, untuk pendekatan yang lebih statis, Anda dapat menggunakan mode di i3 Anda konfigurasi. Anda dapat memiliki mode terpisah untuk fokus dan berpindah ke ruang kerja:
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
Atau Anda dapat memiliki binding terpisah untuk memfokuskan dan bergerak dalam satu mode:
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
Dalam kedua contoh workspace
atau move
perintah dirangkai dengan mode "default"
, sehingga i3 secara otomatis kembali ke peta pengikatan kunci default setelah setiap perintah.
Solusi saya untuk ini hanya menggunakan lebih banyak kunci:
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