저는 Windows 7+의 Win+(1..9) 단축키에 익숙하며 LXDE에서도 비슷한 기능을 구현하고 싶습니다.
따라서 단축키를 정의해야 합니다.
아직 시작되지 않은 경우 정의된 응용 프로그램을 시작합니다. 또는
응용프로그램이 이미 실행 중이면 해당 응용프로그램으로 전환하십시오.
어떻게 해야 하나요?
를 사용하여 애플리케이션이 실행 중인지 확인할 수 있지만 ps -e | grep appname
, 명령줄을 사용하여 이름이나 PID로 LXDE를 애플리케이션으로 전환할 수 있는 방법이 있습니까? 아니면 이를 수행하는 다른 방법이 있을까요?
나는 WinXP에서 이 동작을 달성하기 위해 AutoHotkey를 사용해 왔습니다. Win7/Win8에서는 기본입니다. 매우 유용하므로 내 데비안에서도 사용하고 싶습니다.
답변1
유닉스"응용 프로그램"에 대한 완전한 개념이 없습니다.. 최상위 창은 프로세스를 사용하는 것보다 더 나은 지표입니다. 정확하게 감지하기가 더 쉽고 실수로 다른 사용자의 앱을 감지하는 일도 없습니다.
각 창에는 해당 응용 프로그램을 식별하는 클래스가 있습니다. 애플리케이션의 클래스 이름을 보려면 터미널에서 다음 명령을 실행하고 애플리케이션 창을 클릭하세요.
xprop WM_CLASS
그러면 인스턴스 이름과 클래스 이름이라는 두 개의 문자열이 표시됩니다.
창에 대한 정보를 표시하고 몇 가지 기본 작업을 수행하는 데 가장 유용한 도구는 다음과 같습니다.xdotool
그리고wmctrl
.
를 사용하면 주어진 인스턴스와 클래스를 사용하여 창 중 하나를 활성화 wmctrl
할 수 있습니다 . wmctrl -F -x -a "$instance.$class"
일치하는 창이 없으면 wmctrl
프로그램 시작을 선택할 수 있도록 오류 상태가 반환됩니다. 예:
wmctrl -F -x -a Navigator.Firefox || firefox &
동등한 xdotool 명령:
xdotool search --class --maxdepth 2 Firefox windowactivate || firefox &
최상위 창이 여러 개 있는 경우 어느 창을 활성화할지 쉽게 결정할 수 없습니다. 최신 버전을 활성화하려면 창 관리자의 협조가 필요합니다. LXDE의 기본값은 Openbox입니다. 저는 Openbox에 익숙하지 않지만 꽤 간소화되어 있기 때문에 최근에 활성화된 창을 보고하는 방법을 제공하지 못할 수도 있습니다. LXDE는 다음과 같은 다른 창 관리자와 함께 사용할 수 있다고 생각합니다.톱상어프로그래밍이 가능하므로 몇 줄의 코드로 창 관리자에서 이 기능을 작성할 수 있습니다.
사용창 관리자의 키 바인딩 설정 메커니즘원하는 키를 다음 명령 중 하나에 바인딩하세요.