Горячая клавиша LXDE для запуска приложения или переключения на него, если он уже запущен

Я привык к Win + (1..9) горячим клавишам в Windows 7+ и хотел бы реализовать что-то подобное в LXDE.

Итак, мне нужно определить горячую клавишу, которая будет:

  • запускать определенное приложение, если оно еще не запущено, ИЛИ

  • переключи меня на это приложение, если оно уже запущено.

Как это можно сделать?

Я могу проверить, работает ли приложение с помощью ps -e | grep appname ps -e | grep appname , но есть ли способы сделать LXDE-переключатель для приложения по его имени или PID с помощью командной строки? Или, может быть, есть другие способы сделать все это?

Я применяю такое поведение в WinXP, используя AutoHotkey. В Win7 / Win8 он является родным. И это очень полезно, поэтому я хотел бы использовать его и в Debian.

One Solution collect form web for “Горячая клавиша LXDE для запуска приложения или переключения на него, если он уже запущен”

Unix не имеет понятия «приложение» . Вместо использования процессов верхние окна станут лучшим индикатором. Их легче определить точно, и вы не будете ошибочно обнаруживать приложения другого пользователя.

Каждое окно имеет класс, который идентифицирует его приложение. Чтобы увидеть имя класса для приложения, выполните следующую команду в терминале и щелкните по окну приложения:

 xprop WM_CLASS 

Это отображает две строки: имя экземпляра и имя класса.

Наиболее полезные инструменты для отображения информации о Windows и выполнения некоторых основных действий на них – 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 & 

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

Используйте механизм установки привязки ключа окна администратора, чтобы связать ключи, которые вы хотите с одной из этих команд.

  • практика linux для практического использования
  • Изменение текущего каталога с помощью скрипта (ksh)
  • Как запустить скрипт на удаленном хосте, когда я потеряю соединение с ним?
  • RHEL 7 как запустить давний скрипт перед выключением / перезагрузкой systemd
  • Выход из конвейера, если первая команда не работает
  • Своеобразное поведение grep / heading трубопроводов
  • Почему при входе в систему не выполняется /etc/rc.local?
  • Получить количество пробелов в строке?
  • Как скопировать / объединить два каталога, и если два файла имеют одинаковое имя, переименуйте более старый, добавив время его модификации
  • Сортировка вывода awk за исключением первой строки?
  • su options - запуск команды в качестве другого пользователя
  • Interesting Posts

    Как использовать grep для поиска текстовой строки в файлах в подпапках родительской папки без ключа -r

    почему команда запускается в приглашении, а не в скрипте?

    Отображение всех страниц за один раз командой man

    Есть ли механизм, который защищает приложения во время обновления библиотеки?

    Как связать только один открытый ключ с ограниченной оболочкой вроде scponly?

    Удаление символов между | трубами |

    Прогулка по файлам в каталоге случайным образом

    Как добавить огромный архив в архив и удалить его параллельно

    Как я могу избежать манипулирования аргументами с пробелами в расширении Ex {$ {run {…}}?

    Доступ к компьютерам локальной сети через соединение VPN

    Bash использовать альтернативный dotfile?

    Как настроить кальмар простейшим способом безопасного прокси?

    Как мы можем изменить пароль root?

    Доступ к Интернету с помощью iptables: выбор соединения для совместного использования

    Как исключить файлы со всеми 4-значными номерами без первых пяти чисел с помощью wild card в команде tree

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