바로 가기를 사용하여 창 표시 줄에서 창을 여는 방법


5

바로 가기를 사용하여 창 표시 줄에서 창을 열 수있는 방법이 있습니까? 예를 들어 왼쪽 Ctrl + 1의 첫 번째 창을 열고 왼쪽 Ctrl + 2의 두 번째 창을 엽니 다.

현재 xfce4를 사용하고 있지만 xfce4에서 사용할 수없는 경우이를 허용하는 다른 데스크탑 환경이 있습니까?

동일한 응용 프로그램에 대해 여러 개의 창이 열려 있기 때문에 응용 프로그램과 관련된 sortcut을 검색하지 않지만 아래에서 말하는 것처럼 창을 검색합니다.


화면상의 위치에 따라 창으로 전환하는 것을 의미합니까? 정확히 4 개의 세그먼트 (왼쪽 위, 왼쪽 아래 등) 또는 2 개의 세그먼트 (왼쪽 / 오른쪽)는 무엇입니까? 다른 옵션 : 서로 상대적인가? 모두 할 수 있습니다. 흥미 롭군
Jacob Vlijm

작업 표시 줄의 위치에 따라 왼쪽에서 오른쪽으로 또는 그 반대로 @JacobVlijm no.
tirengarfio

내가 참조. 할 수 있다고 생각합니다.
Jacob Vlijm

답변:


5

시스템에 작은 스크립트와 작은 수술로 설명대로 정확하게 배치 할 수 있습니다.

성분

  1. wmctrl; 설치해야 할 수도 있습니다.
  2. 아래 스크립트
  3. xprop창 속성을 가져옵니다. 시스템에 이미 설치되어 있습니다.
  4. xfce 패널 설정의 설정 변경
  5. 추가 키보드 단축키

설정 방법

  • 설치 wmctrl:

    sudo apt-get install wmctrl
  • 디렉토리를 만듭니다 ~/bin( /home/<yourname>/bin). 빈 파일에 아래의 스크립트를 복사로 저장 panel_navigate에서 (확장자) ~/bin실행 가능합니다 .

  • 패널 설정 변경 :
    설정 관리자> "패널"> "항목"(탭)> "창 버튼">

    • "주문 정렬"> 선택 : 타임 스탬프
    • "창 그룹화"> 선택 : "없음"
    • 있는지 "모든 작업 공간 또는 뷰포트 창 표시를"확인 되지 않은 쳤다

    여기에 이미지 설명을 입력하십시오

  • 키보드 단축키 추가 :
    설정 관리자> "키보드"> "응용 프로그램 단축키"로 이동하여 "추가"를 선택하십시오. 다음 명령을 추가하십시오 :

    panel_navigate 1

    키 조합으로 설정 Ctrl+1

    여기에 이미지 설명을 입력하십시오

  • 이제 다음을 선택할 수 있습니다 :

    • 이 절차를 반복 panel_navigate 2하여 Ctrl+ 아래 에 추가 2하는 등 (9까지)

    (저장 옵션) 또는 (구성 파일을 수동으로 편집하는 것을 두려워하지 않는 경우) :

    • 파일을 편집 할 수 있습니다 :

      ~/.config/xfce4/xfconf/xfce-perchanel-xml/xfce4-keyboard-shortcuts.xml

      키보드 단축키 (in xfce)가 저장됩니다. 파일을 열고 다음 mousepad과 같은 줄을 찾으십시오.

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>

      줄을 복사하여 다음 줄에 붙여 넣고 (삽입) 1을 2로 변경하면 다음과 같이됩니다.

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      <property name="&lt;Primary&gt;2" type="string" value="panel_navigate 2"/>

    등등..

    들여 쓰기가 정확히 같은지 확인하십시오. 9까지 절차를 반복하십시오.

로그 아웃했다가 다시 로그인하면 작동합니다.

Ctrl+1

여기에 이미지 설명을 입력하십시오

Ctrl+3

여기에 이미지 설명을 입력하십시오

등등...

스크립트

#!/usr/bin/env python3

import subprocess
import sys

def get_value(command):
    return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()

def run_command(command):
    subprocess.Popen(["/bin/bash", "-c", command])

current_workspace = [l for l in get_value("wmctrl -d").splitlines() if l.split(" ")[2] == "*"][0][0]
wlist_ids = [item.split()[0:4] for item in get_value("wmctrl -l").splitlines()]
relevant = [item for item in wlist_ids if item[1] == current_workspace]
panel = []
for item in relevant:
    data = get_value("xprop -id "+item[0])
    if ("_TYPE_NORMAL" in data, "TYPE_DIALOG" in data).count(True) == 1:
        panel.append(item)
try:
    window = panel[int(sys.argv[1])-1][0]
    run_command("wmctrl -ia "+window)
except IndexError:
    pass

설명

솔루션은 기회 주의적 솔루션입니다. 명령에 의해 호출 된 wmcrl -l창 목록은 창 연령에 따라 정렬됩니다. xfce 패널을 동일하게 (설정) 수행하면 두 순서가 완벽하게 일치합니다. 스크립트는 창 목록을 작성하고 "실제"표시 가능한 창 ( xprop)을 필터링하고 창 panel_navigate번호 (왼쪽에서 오른쪽으로)를 agrument로 하여 명령으로 선택한 창으로 전환합니다 .

이슈

IDLE (python 인터프리터) 창에 pid 0이 있고 속성을로 검색 할 수없는 예외가 하나 있습니다 xprop. 창은 창 목록에 나타나지 않으며 스크립트로 건너 뜁니다.

노트

키 조합 Ctrl+ <number>는 테스트 중에 오류를 발생시키지 않았지만 일부 응용 프로그램과 충돌 할 수 있습니다. (예) Ctrl+ Alt+ 를 선택하는 것이 더 안전 할 수 있습니다 1


@tirengarfio, 나는 마지막 업데이트 이후 중요한 개선을했습니다. 이제 스크립트는 현재 작업 공간의 창만 나열하여 창이 작업 공간에 흩어져있는 경우 혼란 / 잘못된 번호 매기기를 방지합니다. "모든 작업 공간 또는 뷰포트에서 창 표시"(패널 설정)가 선택 해제되어 있는지 확인하십시오.
Jacob Vlijm

2

동일한 응용 프로그램에 대한 확실하지 ,하지만에서 Unity당신이 응용 프로그램을 전환 할 수 있습니다 super+number예를 들어로서, super + 1= 런처에서 첫 번째 항목은 super + 2, 실행 프로그램의 두 번째 항목을 = super + n런처의 n 번째 항목을 =. 또한 노틸러스가 실행기의 첫 번째 항목 인 경우 super + 1노틸러스 파일 관리자를 여는 것처럼 실행기에 배치 된 모든 항목을 여는 데 도움이됩니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.