Я постоянно переключаюсь между Сублимированным текстом, Терминалом и Chrome. Я хотел бы связать ярлык как "Высокий звук + 1", таким образом, мой текущий Терминальный и текущий Google Chrome открывается.
Прямо сейчас, каждый раз, когда я запускаю Google Chrome или терминал, он открывает новое окно. Какая-либо идея?
Спасибо!
Метод в ответе моросящего дождя будет работать, но имеет несколько оборотных сторон
Порядок пунктов в средстве запуска мог бы изменяться, в зависимости от приложений, которые Вы запускаете. Количество Chrome
могло бы отличаться затем.
Вы могли просто сделать с командой:
wmctrl -a chrome
который повысит первое найденное окно с "хромом" на его имя. Это однако также повысило бы окно, в котором я пишу теперь (a firefox
окно, названное: "Ярлык для открытия текущего Google Chrome...")
Использование pid окна предотвратит это. По-моему, это поэтому более изящно для помещения команды:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"
под сочетанием клавиш (Alt+1 будет работать), учитывая тот факт, что Вы должны были бы иметь wmctrl
установленный затем:
sudo apt-get install wmctrl
Установка wmctrl
sudo apt-get install wmctrl
создайте маленький сценарий (откройте пустой файл, вставьте сценарий ниже в нем),
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"
Сохраните его как raise_chrome.sh
Добавьте сценарий к ярлыку; выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:
/bin/bash /path/to/raise_chrome.sh
к (например). ярлык Alt+1.
N.B. Использование полный путь, не, например. ~
Команда является на самом деле "преобразованием" этого, и объяснение подобно:
В разделе:
"$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"
команда:
wmctrl -lp
списки все окна, включая их pid и окно - идентификатор. Результат передается по каналу к
grep "$(pgrep chrome)"
то, которое фильтрует (перечисляет) все случаи Chrome
окна.
Затем
tail -1
даст нам последний объект в списке, который является последним созданным окном (так как wmctrl
окна списков хронологически).
awk '{ print $1 }'
наконец, даст нам первую строку в строке (от вывода wmctrl
), который является окном - идентификатор.
Команда:
wmctrl -ia <window_id>
Затем повысит последнее созданное окно Chrome
Никакая потребность сказать, что можно заменить chrome
в команде любым другим приложением (обрабатывают имя), и размещают их под отдельными сочетаниями клавиш.
Так как Вы упоминаете Sublime Text
, Terminal
и Chrome
, Вы могли бы хотеть использовать несколько ярлыков и запустить скрипт с приложением как аргумент.
Используйте сценарий с незначительными различиями:
#!/bin/bash
app=$1
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$app")" | tail -1 | awk '{ print $1 }')"
и выполненный это впоследствии с командами под сочетаниями клавиш:
sh /home/jacob/Bureaublad/raise.sh sublime_text
sh /home/jacob/Bureaublad/raise.sh gnome-terminal
и
sh /home/jacob/Bureaublad/raise.sh chrome
Вы могли использовать alt-tab для переключения быстро между программами.
можно также использовать кнопку Super (иначе кнопка Windows) как это: Super+number. например, Super+3 откроет третье приложение в Вашем средстве запуска приложения. Для быстрой идентификации чисел, связанных с приложениями, нажмите и удержите супер кнопку.