Избегайте запуска нескольких программ

Некоторые программы, например. firefox , позволяет иметь несколько экземпляров. Хотя это полезно в некоторых случаях (например, новый экземпляр xterm ), я обычно получаю огромное количество.

Можно ли настроить, какие программы должны иметь только один экземпляр?

    One Solution collect form web for “Избегайте запуска нескольких программ”

    Я запускаю свои приложения для графического интерфейса в основном с помощью сочетаний клавиш, а для приложений мне нужен только один экземпляр, я указываю эти ярлыки на оболочку, которая либо дает мне последний запущенный экземпляр (и ставит это окно на передний план), либо создает новый экземпляр если их нет.

    У меня есть:

    lonew :

     #!/bin/sh -e #lastof or new -- try lastof and give me a new instance if it failed cmd=$1; shift lastof "$cmd" || exec "$cmd" "$@" 

    lastof :

     #!/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, эффективно управляют этой одноузловой вещью сами по себе, но мне удобно иметь автономное решение do-one-thing-and-do-it-well, которое я могу обернуть вокруг любого приложения I хотеть.


    Зависимости: xprop, xdotool

    Linux и Unix - лучшая ОС в мире.