일부 프로그램, 예를 들어. firefox
, 여러 인스턴스를 허용합니다. 이는 일부 경우(예: 새 인스턴스)에 유용하지만 xterm
일반적으로 많은 데이터를 얻게 됩니다.
인스턴스가 하나만 있어야 하는 프로그램을 구성할 수 있습니까?
답변1
나는 주로 키보드 단축키를 사용하여 GUI 애플리케이션을 시작하고, 단일 인스턴스만 필요한 애플리케이션의 경우 마지막 실행 인스턴스를 제공하거나 해당 창을 앞에 배치하는 래퍼에 대한 단축키를 지정하거나 새 인스턴스를 생성합니다. 하나도 없다면.
나는 가지고있다:
로네프:
#!/bin/sh -e
#lastof or new -- try lastof and give me a new instance if it failed
cmd=$1; shift
lastof "$cmd" || exec "$cmd" "$@"
라스토프:
#!/bin/sh -e
#give me the last used instance of the GUI app matching $@
results=$(xdotool search "$@")
result=$(echo "$results" |
while read -r id; do echo "$(xprop -id $id '_NET_WM_USER_TIME')" "$id"; done |
sed -n 's/.*= //p' |sort -n |
tail -1| cut -d\ -f2
)
[ -n "$result" ] || result=$(echo "$results" | tail -1)
exec xdotool windowactivate "$result"
예를 들어 터미널 에뮬레이터를 시작하는 바로 가기 설정은 다음과 같습니다.
Ctrl+Alt+K : lonew konsole
Ctrl+Shift+Alt+K : konsole #force a new instance
일부 애플리케이션(예: Banshee 또는 Thunderbird)은 이 단일 인스턴스를 자체적으로 효과적으로 관리할 수 있지만 원하는 모든 애플리케이션에 포함할 수 있는 독립형 "한 가지 작업을 잘 수행하는" 솔루션을 갖는 것이 편리하다는 것을 알았습니다. 생각하다.
종속성: xprop, xdotool