i3wm: 단일 바인딩에서 여러 모니터를 사용하여 작업 공간을 전환하는 방법

i3wm: 단일 바인딩에서 여러 모니터를 사용하여 작업 공간을 전환하는 방법

Unity를 사용하면 두 모니터가 항상 같은 작업 공간에 있습니다. 작업 공간 1에서 시작하고 Ctrl+Alt+오른쪽을 누르면,둘 다내 모니터가 오른쪽의 새 작업 공간으로 이동합니다. 이 동작은 내 작업 흐름에 중요합니다.

i3로 전환하고 싶지만 2개의 모니터가 항상 동일한 작업 공간을 가리킬 필요는 없는 것 같습니다. i3에서 $mod+Shift+num을 누르면 포커스가 있는 화면뿐만 아니라 두 화면 모두 변경되도록 이 동작을 변경할 수 있는 방법이 있습니까?

답변1

이 "기능"을 (어느 정도) 에뮬레이트하는 것이 가능합니다. (나에게는 작업 공간 동작이 i3주요 기능 중 하나이므로 실제로 모든 것을 포괄하지 않는 작업 공간을 가질 수 없다면 권장하지 않습니다. 모니터) 상황을 계속 사용하고 싶은 경우 i3).

여러 명령을 바로가기에 바인딩하여 동시에 두 모니터의 작업 공간을 전환할 수 있습니다. 예를 들어:

# Default modifier key
set $mod Mod4

# variables for left and right monitor 
# (assuming names DP-1 and DP-3 with DP-1 being left of DP-3)
set $monL DP-1
set $monR DP-3

# variables for workpacenames; 
set $ws1L 1:A
set $ws1R 11:A
set $ws2L 2:B
set $ws2R 12:B
set $ws3L 3:C
set $ws3R 13:C

# assign workspaces to specific outputs
workspace $ws1L output $monL
workspace $ws1R output $monR
workspace $ws2L output $monL
workspace $ws2R output $monR
workspace $ws3L output $monL
workspace $ws3R output $monR

# do not toggle automatically between the current and previous 
# workspace on repeated calls to `workspace NAME` (with identical NAME)
workspace_auto_back_and_forth no

# Toggle between both monitors 
# (focus output left wraps from the leftmost to the rightmost output)
bindsym $mod+Tab focus output left

# switch two workspaces at once (the need to be on different outputs)
bindsym $mod+1 workspace $ws1L, workspace $ws1R
bindsym $mod+2 workspace $ws2L, workspace $ws2R
bindsym $mod+3 workspace $ws3L, workspace $ws3R

# move a window to a specific workpace; 
# $mod+Shift for left side, $mod+Control for right side
bindsym $mod+Shift+1 move workspace $ws1L
bindsym $mod+Control+1 move workspace $ws1R
bindsym $mod+Shift+2 move workspace $ws2L
bindsym $mod+Control+2 move workspace $ws2R
bindsym $mod+Shift+3 move workspace $ws3L
bindsym $mod+Control+3 move workspace $ws3R

bar {
    # [...]
    # Do not show workspace numbers (optional)
    strip_workspace_numbers yes
}

이는 변수를 사용하여 작업 공간 및 출력 이름을 일관되게 유지합니다. 왼쪽 모니터와 오른쪽 모니터의 작업 공간 이름은 달라야 합니다. 이 경우 필요한 경우 숨길 수 있으므로 다른 번호를 사용하기로 선택했습니다. 이러한 설정을 사용하면 Super+는 왼쪽 모니터와 오른쪽 모니터 의 작업 공간 1으로 전환됩니다 . 혼란과 원치 않는 동작을 방지하려면 비활성화해야 합니다.1:A11:Aworkspace_auto_back_and_forth

지침:

  • 이는 키보드 단축키로만 작동합니다. i3bar의 작업 공간 버튼을 클릭하면 한 모니터의 작업 공간만 변경되고 동반 항목은 변경되지 않습니다.
  • 현재 보이지 않는 작업 공간( )에 창의 초점을 맞추는 명령은 [criteria] focus다른 출력이 아닌 해당 작업 공간에만 초점을 맞춥니다.
  • 하나의 바인딩을 사용하여 두 작업 공간 사이를 전환할 때 두 번째 작업 공간은 항상 초점이 맞춰진 작업 공간(위 예에서는 오른쪽 작업 공간)이 됩니다.
  • 경우에 따라 디스플레이 경계를 넘어 초점을 맞추고 이동하려면 다른 명령/키 바인딩이 필요할 수 있습니다. (동기화되지 않은 작업 공간의 경우에도 마찬가지지만 큰 작업 공간이 예상되는 경우 더 눈에 띄거나 방해가 될 수 있습니다.)

동반 작업 공간으로 자동 전환하는 등 IPC 인터페이스를 활용하면 경고 중 일부가 해결될 수 있습니다.


개인적으로 저는 적어도 하이브리드 접근 방식을 권장합니다. 작업 흐름이 절대적으로 필요한 경우 동기화된 작업 공간을 사용하고 i3다른 곳에서는 기본(용) 단일 디스플레이 접근 방식을 사용합니다. 그렇지 않고 작업 공간을 항상 동기화해야 하거나 동기화하려는 경우 이는 i3찾고 있는 창 관리자가 아닐 수도 있습니다.

관련 정보