Как я могу сделать ярлык для повышения окна приложения, если это существует?

Я постоянно переключаюсь между Сублимированным текстом, Терминалом и Chrome. Я хотел бы связать ярлык как "Высокий звук + 1", таким образом, мой текущий Терминальный и текущий Google Chrome открывается.

Прямо сейчас, каждый раз, когда я запускаю Google Chrome или терминал, он открывает новое окно. Какая-либо идея?

Спасибо!

3
задан 17 December 2015 в 21:32

2 ответа

Метод в ответе моросящего дождя будет работать, но имеет несколько оборотных сторон

  • Это имеет задержку; при продвижении Супер ключа необходимо было бы ожидать приблизительно секунда, чтобы заставить числа появиться.
  • Порядок пунктов в средстве запуска мог бы изменяться, в зависимости от приложений, которые Вы запускаете. Количество Chrome могло бы отличаться затем.

    enter image description here

Альтернативная опция

Вы могли просто сделать с командой:

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

Как добавить команду к ярлыку

  1. Установка wmctrl

    sudo apt-get install wmctrl
    
  2. создайте маленький сценарий (откройте пустой файл, вставьте сценарий ниже в нем),

    #!/bin/bash
    wmctrl -ia "$(wmctrl -lp | grep "$(pgrep chrome)" | tail -1 | awk '{ print $1 }')"
    

    Сохраните его как raise_chrome.sh

  3. Добавьте сценарий к ярлыку; выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    /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
2
ответ дан 1 December 2019 в 17:00

Вы могли использовать alt-tab для переключения быстро между программами.

можно также использовать кнопку Super (иначе кнопка Windows) как это: Super+number. например, Super+3 откроет третье приложение в Вашем средстве запуска приложения. Для быстрой идентификации чисел, связанных с приложениями, нажмите и удержите супер кнопку.

0
ответ дан 1 December 2019 в 17:00

Другие вопросы по тегам:

Похожие вопросы: