다음 아이디어는 사용자가 XFCE 환경의 모든 작업 공간에서 활성 창으로 표시된 창을 이동할 수있는 편리한 방법을 보여줍니다.
MOVABLE_WINDOW_IDX 0 에서 9 까지의 정수 일 수있는 MOVABLE_WINDOW_IDX 라고 표시하려는 창을 클릭하십시오.Super+Shift+Key_MOVABLE_WINDOW_IDX 눌러 해당 활성 창을 표시하고 해당 Movable Window ID를 MOVABLE_WINDOW_IDX 로 할당하십시오.Super+Key_MOVABLE_WINDOW_IDX 를 눌러 해당 창을 현재 활성화 된 작업 공간으로 이동하십시오. Key_MOVABLE_WINDOW_IDX 순전히 사용자의 키보드 키 환경 설정에 따라 다릅니다. 이 개념을 구현하는 한 가지 방법은 다음 지침을 통하는 것입니다. 이 방법은 APT 패키지 xdotool 및 wmctrl 에 의존한다는 점은 주목할 가치가 있습니다.
.window_summoner 로 이름이 지정된 디렉토리를 만듭니다.get_window_id.py 로 명명되며 다음 내용을 포함합니다. import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ] = rm_newline ( subprocess . check_output ([ 'xdotool' , 'getactivewindow' ]). decode ( sys . stdout . encoding ))
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'w' ) as file :
MOVABLE_WINDOWS_ID = file . write ( ' ' . join ( MOVABLE_WINDOWS_ID )) 다른 파일은 내용이있는 summon_window.py 입니다.
import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
os . system ( """wmctrl -ir %s -t $(wmctrl -d | grep "*" | cut -d' ' -f1)""" % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))
os . system ( 'xdotool windowactivate %s' % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))무너지기 위해
wmctrl -ir $MOVABLE_WINDOW_ID -t $(wmctrl -d | grep "*" | cut -d' ' -f1) :
wmctrl : X 창 시스템 Windows와 상호 작용하고 조작 할 수있는 명령 줄 유틸리티.
-ir $MOVABLE_WINDOW_ID : -ir 플래그는 wmctrl "주어진 숫자 ID와 창과 상호 작용"하도록 지시합니다. $MOVABLE_WINDOW_ID 이동하려는 창의 숫자 ID를 포함하는 bash 변수입니다.
-t $(wmctrl -d | grep "*" | cut -d' ' -f1) : -t 플래그는 wmctrl "주어진 색인으로 창을 데스크탑으로 옮기라고"알려줍니다. $(wmctrl -d | grep "*" | cut -d' ' -f1) 현재 활성 데스크탑/작업 공간의 색인을 얻는 명령 대체입니다. 그 명령 대체에서 일어나는 일은 다음과 같습니다.
wmctrl -d : 사용 가능한 모든 데스크톱/작업 공간을 나열합니다.grep "*" : 현재 활성화 된 데스크탑/작업 공간의 필터는 wmctrl -d 의 출력에서 별표 ( * )로 표시됩니다.cut -d' ' -f1 : grep "*" 의 출력에서 첫 번째 필드 (데스크탑/작업 공간의 색인)를 추출합니다. 나머지 두 파일은 movable_window_id_list.txt 및 initial_movable_window_id_list.txt 입니다. 둘 다 포함해야합니다
0 0 0 0 0 0 0 0 0 0
후자의 파일은 읽기 전용이어야하며 다른 txt 파일의 초기 값 프로토 타입으로 만 사용됩니다.
모든 키보드 MOVABLE_WINDOW_IDX 에 대해 다음을 수행하십시오. 바로 가기 : Super+Shift+Key_MOVABLE_WINDOW_IDX → 명령 : python3 /home/$USER/.window_summoner/get_window_id.py MOVABLE_WINDOW_IDX
바로 가기 : Super+Key_MOVABLE_WINDOW_IDX → 명령 : python3 ~/.window_summoner/summon_window.sh MOVABLE_WINDOW_IDX
분명히 Key_MOVABLE_WINDOW_IDX 선택 키로 바꾸십시오.
예는 다음과 같습니다
바로 가기 : Super+Shift+1 → 명령 : source ~/.window_summoner/get_window_id.sh 1
또한 사용자가 표시된 창을 활성 작업 공간으로 이동할 수있는 언급 된 방법을 설정합니다.