Unity Switcher의 특정 창으로 전환하기 위한 사용자 정의 키보드 단축키

Unity Switcher의 특정 창으로 전환하기 위한 사용자 정의 키보드 단축키

특정 애플리케이션으로 전환하기 위해 사용자 정의 키를 바인딩할 수 있습니까?

예:
super+1은 크롬 창으로 전환합니다(창 목록의 첫 번째 창은 아님).
super+2는 노틸러스 창으로 전환합니다.

또는 적어도:
super+1은 첫 번째 창으로 전환합니다.
super+2는 두 번째 창으로 전환합니다.

답변1

약간의 작업이 필요하지만 스크립트와 키 바인딩을 사용하여 이 작업을 수행할 수 있습니다.

라는 도구가 있습니다.xdotool키보드 누르기를 시뮬레이션할 수 있습니다. 키보드 키를 바인딩하여 이 도구를 활용하는 스크립트를 실행할 수 있습니다.

터미널 명령을 파이프하기 위해 선호하는 언어를 사용하면 다음을 사용하여 특정 프로세스 ID를 찾을 수 있습니다. ps aux | grep "process here"

을 사용하면 xdotool search --pid "process ID here"단일 응용 프로그램에 대해 여러 창 ID를 얻을 수 있습니다. 올바른 것을 찾기 위해 그것들을 정렬하는 방법을 모르므로 당신이 할 수 있는 일은 스크립트를 가지고 발견된 ID를 반복하는 것입니다.

xdotool windowactivate "window ID here"그러면 창이 나타납니다.

예를 들어, 내 1 키는 "filezilla"에 대한 프로세스 ID를 찾는 스크립트를 실행하도록 바인딩됩니다. 그런 다음 xdotool을 사용하여 창 ID를 찾고 해당 ID를 가져온 다음 xdotool을 통해 전달하여 창을 표시합니다. 2번 키는 'google-chrome'일 수 있습니다.

답변2

저는 이씨가 제안한 내용을 모아서 다음 스크립트를 만들었습니다.

#!/bin/bash                                                                     

APP=$1                                                                          
if [ -z "$APP" ]; then                                                          
  echo Usage: $0 EXECUTABLE_NAME                                                
  exit 1                                                                        
fi                                                                              

PID=$(pgrep -f $APP | head -n 1)                                                
if [ -z "$PID" ]; then                                                          
  echo $APP executable not found                                                
  exit 2                                                                        
fi                                                                              

for WINDOW_ID in $(xdotool search --pid $PID); do                               
  xdotool windowactivate $WINDOW_ID                                             
done                                                                            

notify-send "Switched to $APP (PID=$PID)" 

기본적으로 오류 가능성을 무시하지만 나에게는 효과적입니다.

관련 정보