i3wm: พื้นที่ทำงานมากกว่า 10 ที่มีคีย์ตัวปรับคู่


11

เมื่อเร็ว ๆ นี้ฉันเริ่มใช้i3wmและตกหลุมรักมัน อย่างไรก็ตามมีสิ่งหนึ่งที่รบกวนจิตใจฉัน: ควบคุมพื้นที่ทำงานมากกว่า 10 แห่ง

ในการกำหนดค่าของฉัน$mod+1เพื่อ$mod+9สลับระหว่างพื้นที่ทำงาน 1 ถึง 9 (และ$mod+010) แต่บางครั้ง 10 พื้นที่ทำงานก็ไม่เพียงพอ

ในขณะที่ฉันเอื้อมมือออกไปยังพื้นที่ทำงาน 11-20 ที่มี$mod+mod1+1การตีคือ$mod+mod1+0 mod+alt+numberแน่นอนว่ามันใช้งานได้โดยไม่มีปัญหา แต่มันค่อนข้างยุ่งยากในการสลับพื้นที่ทำงานเช่นนั้นเนื่องจากปุ่มไม่ได้กดได้ง่าย นอกจากนี้การย้ายแอปพลิเคชันระหว่างพื้นที่ทำงาน 11 ถึง 20 จำเป็นต้องmod+shift+alt+number-> น่าเกลียด

ในVimการโยงของฉัน(ฉันมีปลั๊กอินจำนวนมาก) ฉันเริ่มใช้ทางลัดตัวแก้ไขสองครั้งเช่นmodkey + rปลั๊กอิน 1 และmodkey + modkey + rปลั๊กอิน 2 วิธีนี้ฉันสามารถผูกปุ่มทุกปุ่มสองครั้งและกดปุ่ม mod สองครั้งง่ายและรวดเร็ว

ฉันสามารถทำสิ่งที่คล้ายกันได้i3wmหรือไม่

คุณจะใช้ประโยชน์จากพื้นที่ทำงานมากกว่า 10 แห่งได้i3wmอย่างไร ทางออกอื่น ๆ


ฉันไม่ทราบว่าคุณมีรูปแบบแป้นพิมพ์ชนิดใด แต่คุณสามารถใช้ปุ่มบางส่วน / ทั้งหมดด้านล่างและด้านขวาของตัวเลขด้านบนหรือไม่ เช่น $ mod + q คือเวิร์กสเปซ 11 ฯลฯ แน่นอนว่าคุณต้องกำหนดคีย์เหล่านั้นที่ใช้งานใหม่
airhuff

ใช่ แต่จะช่วยลดจำนวนทางลัดที่มีให้สำหรับi3การทำงานได้อย่างมีประสิทธิภาพ โดยเฉพาะอย่างยิ่งฉันต้องการที่จะมีสิ่งที่ต้องการ$mod + $mod + 1สำหรับพื้นที่ทำงาน 11 เพื่อให้กดปุ่มคู่ที่รวดเร็วของปุ่ม Mod โดยตรงทำให้ฉันไปสำหรับพื้นที่ทำงาน 11-20 ด้วยปุ่มหมายเลข 1, 2, ... , 9, 0 ในVimฉันมีพฤติกรรมนี้: leader + rถูกแมปไปยังการกระทำอื่นที่นอกเหนือจากleader + leader + rดังนั้นฉันสามารถเรียกการกระทำที่แตกต่างกันด้วยปุ่มลัดเดียวกันโดยเพียงแค่กดปุ่มผู้นำหนึ่งครั้งหรือสองครั้ง
daniel451

คำตอบ:


14

i3ไม่ได้โดดสนับสนุนลำดับที่สำคัญเช่นที่เป็นกลุ่ม การโยงคีย์ใด ๆ ประกอบด้วยคีย์เดี่ยวนำหน้าด้วยรายการตัวเลือกการShift+Shiftปรับเปลี่ยนที่แตกต่างกัน (ดังนั้นไม่) และตัวดัดแปลงทั้งหมดจะต้องกดลงในเวลาที่กดปุ่มหลัก

ที่ถูกกล่าวว่ามีสองวิธีหลักในการมีพื้นที่ทำงานจำนวนมากโดยไม่ต้องผูกไว้กับรายการตัวปรับเปลี่ยนแบบยาว:

1. สร้างและเข้าถึงพื้นที่ทำงานด้วยโปรแกรมภายนอกแบบไดนามิก

คุณไม่จำเป็นต้องกำหนดทางลัดสำหรับทุก ๆ เวิร์กสเปซเดียวคุณสามารถสร้างมันขึ้นมาได้ทันทีโดยส่ง a workspace NEW_WSไปยังi3ตัวอย่างด้วยi3-msgโปรแกรม:

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

i3ยังมาพร้อมกับi3-inputคำสั่งซึ่งเปิดฟิลด์อินพุตขนาดเล็กจากนั้นรันคำสั่งด้วยอินพุตที่กำหนดเป็นพารามิเตอร์

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

ผูกทั้งสองคำสั่งเหล่านี้ไปยังทางลัดและคุณสามารถเข้าถึงจำนวนพื้นที่ทำงานโดยพลการเพียงแค่กดทางลัดแล้วป้อนชื่อ (หรือหมายเลข) ของพื้นที่ทำงานที่คุณต้องการ (หากคุณทำงานกับพื้นที่ทำงานที่มีหมายเลขคุณอาจต้องการใช้workspace number %sแทนการใช้เพียงworkspace %s)

2. เชื่อมโยงพื้นที่ทำงานกับทางลัดอย่างง่ายภายในโหมดการเชื่อมโยงคีย์

อีกวิธีหนึ่งสำหรับวิธีคงที่มากขึ้นคุณสามารถใช้โหมดในการกำหนดค่าi3ของคุณ คุณสามารถมีโหมดแยกต่างหากสำหรับการโฟกัสและการย้ายไปยังพื้นที่ทำงาน:

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

หรือคุณอาจมีการผูกแยกต่างหากสำหรับการโฟกัสและการเคลื่อนที่ภายในโหมดเดียว:

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

ในตัวอย่างทั้งสองคำสั่งworkspaceหรือmoveคำสั่งถูกโยงด้วยmode "default"ดังนั้นi3จะส่งคืนกลับไปที่แผนผังการโยงคีย์เริ่มต้นโดยอัตโนมัติหลังจากแต่ละคำสั่ง


1

วิธีแก้ปัญหาของฉันคือใช้ปุ่มเพิ่มเติม:

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.