Я не думаю, что это встроено в систему, но возможно ли это сделать без особых хлопот?
Скажем, я открываю определенную программу с помощью горячей клавиши, и когда я снова нажимаю эту горячую клавишу, окно программы переносится на передний план.
Я хочу сделать это на Ubuntu 9.04.
Может быть, с D-Bus? Есть эксперты?
Обновление : вот что я получил в случае, если это кому-нибудь поможет:
#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
WID=`cat /tmp/myterm.pid`
xdotool windowactivate $WID
if [ "$?" != "0" ]; then
WID=""
fi
else
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi
if [ "$WID" == "" ]; then
/usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
echo $WID > /tmp/myterm.pid
else
xdotool windowactivate $WID
fi
Конечно, это можно упростить, но я не bash
мудрец. Также, чтобы мой пример работал, я создал собственный профиль в Терминале, который применяет уникальный заголовок к окну, чтобы его можно было найти позже. Возможности безграничны!
Ответы:
wmctrl
Программа только то , что вы ищете (sudo apt-get install wmctrl
). Вы можете использоватьwmctrl -a "AppTitle"
команду, чтобы вывести приложение на передний план.wmctrl -l
отобразит список всех доступных окон, поэтому должно быть легко написать сценарий оболочки, который проверяет, работает ли ваша программа, и запускает ее или выводит на передний план. Тогда вы можете просто привязать это к сочетанию клавиш.Сначала сохраните где-нибудь следующий скрипт, я буду использовать
/home/jtb/code/bringToFront
. Он принимает два аргумента: первый - это то, что вы наберете в терминале для запуска программы, второй - подстрока заголовка окна программы. Если в заголовке нет постоянной уникальной строки, вам нужно будет проделать немного больше работы, чтобы найти окно программы.Запустив скрипт в вашем текущем каталоге,
chmod +x bringToFront
сделайте его исполняемым. Затем убедитесь, что это работает; запустить / сфокусировать Firefox вы можете запустить./bringToFront firefox "Mozilla Firefox"
.Теперь нам нужно привязать сочетание клавиш. Запустите
gconf-editor
и перейдите к структуре папок слева/apps/metacity/keybinding_commands
.Двойной щелчок по первому
command
с пустым значением, вероятноcommand_1
. Введите полный путь к сценарию и укажите два параметра, например/home/jtb/code/bringToFront firefox Firefox
.На левой панели выберите
global_keybindings
следующую папку вверх.run
Вероятно, найдите запись, соответствующую только что определенной вами командеrun_command_1
. Дважды щелкните по нему и введите сочетание клавиш, которое вы хотите использовать. Поместите модификаторы в угловые скобки, например<Ctrl><Alt>F
.Теперь Control+ Alt+ Fвыведет ваше окно Firefox вперед или запустит его, если оно еще не запущено.
источник
Вот еще один способ сделать это с
xdotools
. Всплывающий процесс распознается из командной строки, выданной для его запуска (файл pid или уникальный заголовок окна не требуются).источник
Спасибо за это. Я использую его модифицированную версию для создания сценария ярлыка окна, который также поддерживает циклический просмотр нескольких экземпляров. Если ты заинтересован:
http://somanov.wordpress.com/2009/12/02/window-shortcuts-for-linux-desktops/
ура :)
источник
Ответ, опубликованный jtb ранее, превосходен, но иногда вам может потребоваться сопоставить точные заголовки (например, вы хотите открыть «GitKraken», но заголовок вашего браузера «GitKraken vs CLI» также соответствует запросу).
Так что теперь вы можете вызывать свой сценарий принесения:
источник
Это решение не параметризовано, но я использовал его для фокусировки или запуска гном-калькулятора.
Опция -R находит окно или дает сбой, если оно найдено, оно перемещается на текущий рабочий стол, поднимается и получает фокус. Гном-калькулятор называет это окно именем Калькулятор , его можно легко параметризовать, но я никогда не находил в этом необходимости. У меня есть это сопоставлено
Ctrl-Alt-c
.источник
У меня была такая же проблема, и так как я не нашел подходящего решения, я сделал одно:
https://hyperkeys.xureilab.com
https://github.com/xurei/hyperkeys
Вы можете прикрепить окно с помощью определенного вами ярлыка. Я лично использую SHIFT + ALT + [QWER], чтобы закрепить, и ALT + [QWER], чтобы вывести на передний план. Вы не можете открыть приложение, если оно не открыто.
Это инструмент с открытым исходным кодом, linux-first. Версия для Windows также доступна.
Надеюсь, поможет ! Я жду обратной связи, поэтому, если у вас есть какие-либо вопросы, создайте проблему ;-)
источник