У меня есть Ubuntu 20
.
Я хочу запустить только один
Thunar Exter для пользователя.
Я попробовал: WMCTRL
- не работает, окно Thunar не в результате
Как это сделать?
Запуск или переключение на
Если приложение само по себе не позволяет подключиться к запущенному экземпляру при повторном запуске, вы можете использовать wmctrl
для переключения на запущенный экземпляр, если он присутствует.
Следующий liner сделает:
wmctrl -x -a Thunar || thunar
Это запустит wmctrl
, который переключит (-a
, активирует) на окно с классом (-x
) "Thunar". Если команда не работает, т.е. такого окна нет, то выполняется команда после -a
, команда для запуска туннеля. В выводе wmctrl -lx
найдите правильный класс окна (не уверен, что "Тюнар" действителен).
Адаптируя пусковой механизм
Теперь вы можете настроить пусковой механизм для ТУНАРа в своем меню. Пусковые установки - это текстовые файлы с расширением .desktop
. Они находятся (среди прочих) в /usr/share/applications
. Скопируйте пусковой механизм Thunar в вашу папку ~/.local/share/applications
:
cp /usr/share/application/thunar.desktop ~/.local/share/applications
Затем отредактируйте копию и измените строку Exec=
на что-то вроде:
Exec=sh -c "wmctrl -x -a Thunar || thunar %U"
Вы вставляете команду (в действительности это две команды) в вызов bash (sh -c
), потому что пусковые механизмы не поддерживают наличие более одной команды в Exec - это строка. тунар %U
должен быть командой, которая изначально появилась в пусковой установке.
**Назначение горячей клавиши для запуска Thunar"
Если вы используете горячую клавишу для запуска Thunar, вы можете вместо нее указать sh -c "wmctrl -x -a Thunar || thunar
в качестве команды. Теперь, при нажатии горячей клавиши, перед командой будет запущен экземпляр, если он есть.
Необязательный совет
Вместо непосредственного использования wmctrl
, я использую бэш-скрипт jumpapp
(https://github.com/mkropat/jumpapp), который делает то же самое, но на стероидах. Последующие вызовы будут циклически проходить через все открытые окна. Скрипт имеет различные опции, чтобы справиться с определенным поведением различных приложений.