
특정 애플리케이션으로 전환하기 위해 사용자 정의 키를 바인딩할 수 있습니까?
예:
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)"
기본적으로 오류 가능성을 무시하지만 나에게는 효과적입니다.