답변:
오늘 나는이 질문에 대한 공감대를 얻었으므로 1 년 이상 항상 사용 해왔으며 매우 만족스러운 솔루션을 게시하고 있습니다.
1 단계 : bash 스크립트를 작성하여 (예 : 스크립트 작성 ~/swap.sh
및 실행 가능) 다른 디스플레이의 중간에있는 창에 초점을 설정하십시오.
#!/bin/bash
getwindowat() {
# move mouse to coordinates provided, get window id beneath it, move mouse back
eval `xdotool mousemove $1 $2 getmouselocation --shell mousemove restore`
echo $WINDOW
}
# get active app
active=`xdotool getactivewindow`
# get coordinates of an active app
eval `xdotool getwindowgeometry --shell $active`
# if left border of an app is less than display width
# (e.g. one display is 1920px wide, app has x = 200 - means it's 200px to the right from the left border of left monitor
# if it has x = 1920 or more, it's on the right window), it's on screen 0, and we need to focus to screen 1, otherwise to screen 0
(( $X >= $WIDTH )) && focustoscreen=0 || focustoscreen=1;
# get coordinates of the middle of the screen we want to switch
searchx=$[ ($WIDTH / 2) + $focustoscreen * $WIDTH ]
searchy=$[ $HEIGHT / 2 ]
# get window in that position
window=`getwindowat $searchx $searchy`
# activate it
xdotool windowactivate $window
2 단계 :이 스크립트를 호출하기 위해 키보드 단축키를 추가합니다. Super-Tab
3 단계 : 바로 가기를 사용하여 보스처럼 디스플레이 전환
mousemove restore
"eval`xdotool mousemove $ 1 $ 2 getmouselocation --shell`"이되도록 eval에서 e를 제거함으로써이를 달성 할 수 있습니다.
sh swap.sh
오류 메시지가 표시됩니다. swap.sh : 17 : swap.sh : 288 : 찾을 수 없음 swap.sh : 20 : swap.sh : 구문 오류 : "("예기치 않은 , 텍스트 작성 파일 제목 = 없음, 아무 생각 없나요? 감사합니다!
bash swap.sh
xrandr --rotate
) 회전 했지만 xdotool은 회전을 사용하지 않으며 감지 방법을 모릅니다. 초점이 회전 된 디스플레이에있는 경우 키 스트로크를 한 번이 아니라 두 번 사용해야합니다.
이 저장소는 당신을 도울 수 있습니다
https://github.com/Eitol/screen_focus_changer
focus_changer.py 왼쪽 스크립트를 고정 된 위치에 놓고 (예 : / opt) 설정에 키 바인딩 / 바로 가기 / 핫키를 추가하십시오.
python3 /opt/focus_changer.py left # 초점을 왼쪽으로
python3 /opt/focus_changer.py right # 오른쪽에 초점