i3wm: çift değiştirici tuş ile 10'dan fazla çalışma alanı?


11

Son zamanlarda kullanmaya başladım i3wmve ona aşık oldum. Ancak, bir şey beni rahatsız ediyor: 10'dan fazla çalışma alanını kontrol etmek.

Benim konfigürasyonunda $mod+1için $mod+91 ile 9 (ve çalışma alanları arasındaki anahtarlar $mod+010 için), fakat bazen 10 çalışma alanları yeterli değildir.

Şu anda ile 20 çalışma alanına 11 ulaşmaya $mod+mod1+1için $mod+mod1+0, yani vurma mod+alt+number. Tabii ki bu sorunsuz çalışıyor, ancak tuşlara kolayca vurulmadığı için bu gibi çalışma alanlarını değiştirmek oldukça zor. Ek olarak, 11 ila 20 arasındaki çalışma alanları arasında uygulamaların taşınması mod+shift+alt+number-> çirkin olmasını gerektirir .

Benim içinde Vimbağlamaları ben gibi çift değiştirici kısayolları kullanmaya başladı (Ben eklentileri çok var) modkey + rEklentisi 1 ve modkey + modkey + riki kez kolay ve hızlıdır Eklentisi 2. İki kez her tuşu bağlamak Bu şekilde ve mod anahtarı isabet.

Benzer bir şey yapabilir miyim i3wm?

10'dan fazla çalışma alanını nasıl kullanıyorsunuz i3wm? Başka çözüm var mı?


Ne tür bir klavye düzenine sahip olduğunuzu bilmiyorum, ancak aşağıdaki tuşların bazılarını / tümünü ve üst taraftaki sayıların sağını kullanabilir misiniz? yani $ mod + q, çalışma alanı 11 vb. dir. Tabii ki kullanılan anahtarlardan herhangi birini yeniden atamanız gerekir.
Ocak'ta airhuff

Evet, ancak bu, i3eylemler için kullanılabilir kısayol sayısını etkili bir şekilde azaltır . Tercihen, $mod + $mod + 1çalışma alanı 11 için benzer bir şey istiyorum , böylece mod tuşuna hızlı bir çift tuş basımı doğrudan 1, 2, ..., 9, 0 rakam tuşuyla 11-20 çalışma alanına gitmemi sağlar. VimBen bu davranış var: leader + rdaha başka bir eylem eşlenir leader + leader + r, bu yüzden sadece lider tuşuna bir veya iki kez basarak aynı kısayol tuşu ile farklı eylemleri tetikleyebilir.
daniel451

Yanıtlar:


14

i3 , vim gibi tuş dizilerini gerçekten desteklemez . Herhangi bir anahtar bağlama, isteğe bağlı farklı (yani hayır Shift+Shift) değiştiriciler listesinden önce gelen tek bir anahtardan oluşur . Ve ana tuşa basıldığında tüm değiştiricilerin basılması gerekir.

Bununla birlikte, çok sayıda çalışma alanına sahip olmanın, onları uzun değiştirici listelerine bağlamak zorunda kalmadan iki ana yolu vardır:

1. Harici programlarla çalışma alanlarını dinamik olarak oluşturun ve erişin

Sen sadece bir göndererek anında bunları oluşturabilir, her çalışma alanı için bir kısayol tanımlamak gerekmez olabilir workspace NEW_WSiçin i3 ile örneğin, i3-msgprogramın:

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

i3 ayrıca i3-inputküçük bir giriş alanı açan ve parametre olarak verilen girişle bir komut çalıştıran komutla birlikte gelir

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

Bu iki komutu kısayollara bağlayın ve sadece kısayola basıp istediğiniz çalışma alanının adını (veya numarasını) girerek isteğe bağlı sayıda çalışma alanına erişebilirsiniz. (Yalnızca numaralı çalışma alanlarıyla çalışıyorsanız, workspace number %ssadece kullanmak yerine kullanmak isteyebilirsiniz workspace %s)

2. Çalışma alanlarını tuş bağlama modlarındaki basit Kısayollara statik olarak bağlama

Alternatif olarak, daha statik bir yaklaşım için i3 yapılandırmanızdaki modları kullanabilirsiniz . Odaklanmak ve çalışma alanlarına geçmek için ayrı modlarınız olabilir:

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

Veya tek bir modda odaklanmak ve hareket etmek için ayrı bağlantılarınız olabilir:

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

Her iki örnekte de workspaceveya movekomutları zincirlenir mode "default", böylece i3 her komuttan sonra otomatik olarak varsayılan anahtar bağlama haritasına geri döner.


1

Buna benim çözümüm sadece daha fazla anahtar kullanmak:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.