i3wm : 이중 수정 자 키가있는 10 개 이상의 작업 공간?


11

최근에 나는 사용하기 시작했고 i3wm그것을 좋아했다. 그러나 10 가지 이상의 작업 공간을 제어하는 ​​것이 한 가지 문제입니다.

내 구성 에서 작업 공간 1 ~ 9 (및 10) 사이 $mod+1$mod+9전환 $mod+0하지만 때로는 10 개의 작업 공간으로 충분하지 않습니다.

현재 나는 작업 공간 11에서 20 $mod+mod1+1까지 $mod+mod1+0에 도달 mod+alt+number합니다. 물론 이것은 아무런 문제없이 작동하지만 키를 누르지 않기 때문에 작업 공간을 전환하는 것은 상당히 번거로운 일입니다. 또한 작업 공간 11에서 20 사이로 응용 프로그램을 이동하려면 mod+shift+alt+number못생긴 것이 필요합니다 .

내에서 Vim바인딩 내가 좋아하는 두 번 수정 단축키를 사용하기 시작했다 (I는 플러그인의 제비가) modkey + r플러그인 (1)과 modkey + modkey + r배 쉽고 빠르게 플러그인 2. 두 번 모든 키를 결합 할 수있는이 방법과 유행의 키를 타격.

비슷한 것을 할 수 있습니까 i3wm?

에서 10 개 이상의 작업 공간을 i3wm어떻게 사용합니까? 다른 솔루션?


어떤 종류의 키보드 레이아웃이 있는지 모르겠지만 맨 아래 숫자의 오른쪽 아래에있는 일부 / 모든 키를 사용할 수 있습니까? 즉, $ mod + q는 작업 공간 11입니다. 물론 사용중인 키를 다시 할당해야합니다.
airhuff

예, 그러나 이는 i3작업에 사용 가능한 바로 가기 수를 효과적으로 줄 입니다. 바람직하게 $mod + $mod + 1는 작업 공간 11 과 같은 것을 원 하므로 mod 키를 빠르게 두 번 누르면 숫자 키 1, 2, ..., 9, 0으로 작업 공간 11-20으로 바로 갈 수 있습니다. Vim이 동작이 있습니다 : leader + r이 (가) 다른 동작에 매핑되어 leader + leader + r있으므로 리더 키를 한 번 또는 두 번 눌러 동일한 핫키로 다른 동작을 트리거 할 수 있습니다.
daniel451

답변:


14

i3 은 실제로 vim 과 같은 키 시퀀스를 지원하지 않습니다 . 모든 키 바인딩은 단일 (선택 사항) 별개의 Shift+Shift수정 자 목록이 앞에 오는 단일 키로 구성됩니다 . 그리고 기본 키를 누를 때 모든 수정자를 눌러야합니다.

즉, 긴 수정 자 목록에 바인딩하지 않고 많은 작업 공간을 갖는 두 가지 주요 방법이 있습니다.

1. 외부 프로그램을 사용하여 작업 공간을 동적으로 생성 및 액세스

당신은 당신이 단지를 전송하여 즉석에서 그들을 만들 수 있습니다, 모든 단일 작업 공간에 대한 바로 가기를 정의 할 필요가 없습니다 수 workspace NEW_WSI3 와 예를 들어, 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

두 예제 모두에서 workspaceor 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.