Переключатель между приложениями при помощи клавиатуры

Я не доволен текущим состоянием переключения между окнами приложения.

Предположите, что у меня есть древовидные окна терминала с этими заголовками:

  1. локальный
  2. root@localhost
  3. user@remotehost

Переключение между этими тремя терминалами с ALT+TAB не является никакой забавой.

Я - быстрые десять, пальцы касаются печатающего устройства.

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

Пример: Если я хочу переключить на терминал с заголовком user@remotehost, я просто хочу ввести некоторый волшебный ключ и затем "пользователя" и не больше. Как все те хорошие автоматические полные исходные данные мы видим сегодня.

Я хочу сохранить кормушку окна по умолчанию, которая идет с человечностью.

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

4
задан 12 August 2015 в 20:13

5 ответов

Учитывая недавний упадок рабочего стола Единицы, другая опция для рабочих столов неединицы (таких как новый Gnome по умолчанию*) состоит в том, чтобы использовать средство запуска приложения Kupfer, который имеет сменный список Окна, который позволяет переключаться между окнами путем введения их имени. Я просто протестировал с двумя окнами терминала, открытыми в различных папках и работавшем как ожидалось OP.

enter image description here

Учитывая, что Kupfer имеет намного больше функции, чем просто это, если Вы планируете использовать его только для переключения между окнами, я рекомендую выключить все другие нежелательные плагины, так, чтобы результаты списка Окна закончились на вершине и были применимы непосредственно.

*примечание - Gnome имеет некоторую ограниченную функциональность для переключения на открытое окно путем ввода. В обзоре операций (открытый, например, Супер ключ) можно ввести, например, Терминал для переключения на уже открытый терминал. Однако с версии 3.18 (который используется в качестве значения по умолчанию на моих 16.04 полях LTS) Вы не можете дифференцироваться между различными окнами того же приложения.Править: Можно даже переключиться на конкретные окна путем ввода, но это не столь удобно как в Единице, потому что это также показывает все другие результаты выше списка окна, таким образом, необходимо спуститься со стрелками много.

1
ответ дан 1 December 2019 в 08:59

Если Вы не используете Единицу...

При использовании Единицы определенно используйте ответ в январе. Этот мог быть альтернативой для других менеджеров окон.


Сценарий ниже должен сделать в значительной степени точно, как Вы описываете:

  • Нажмите сочетание клавиш
  • Введите один или несколько символов имени окна
  • Нажмите Return

    enter image description here

    и соответствующее окно появляется:

    enter image description here

Сценарий

#!/usr/bin/env python3
import subprocess
import socket

machine_name = socket.gethostname()

get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")

w_list = get("wmctrl -l").splitlines()
w_data = [(w.split()[0], w[w.find(machine_name)+len(machine_name)+1:])for w in w_list]     
windows = [it[1] for it in w_data if "_NET_WM_WINDOW_TYPE_NORMAL" in get("xprop -id "+it[0])]
l = "'"+("' '").join(windows)+"'"
cmd = "zenity --list --title='Window chooser' --column='Type one or more characters' "+l
try:
    window = get(cmd).split("|")[-1].strip()
    w_id = [item[0] for item in w_data if window in item[1]][0]
    subprocess.Popen(["wmctrl", "-ia", w_id])
except:
    pass

Как использовать

  • Потребности сценария wmctrlбыть установленным:

    sudo apt-get install wmctrl
    

Затем:

  • Скопируйте сценарий в пустой файл, сохраните его как window_switcher.py
  • Тестовый прогон это командой:

    python3 /path/to/window_switcher.py
    
  • Если все хорошо работает, добавьте его к сочетанию клавиш: выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    python3 /path/to/window_switcher.py
    
3
ответ дан 1 December 2019 в 08:59

В Единице с тех пор 14.04 можно совершить нападки Super+W (распространение окна) и затем тип к поиску окно, он - имя или название программы.

5
ответ дан 1 December 2019 в 08:59

создайте ярлык с помощью wmctrl и свяжите его с сочетанием клавиш

, например, wmctrl -a 'Chromium', чтобы переключиться в окно с именем хрома

  • Если вы знаете Полное имя окна, вы можете использовать

wmctrl -Fa 'Terminal - 12'

  • для получения списка имен окон

wmctrl -l

1
ответ дан 1 December 2019 в 08:59

Утилита "rofi" позволяет отображать список открытых окон, который можно сузить, набрав части названия приложения и/или заголовка окна.

rofi можно установить командой sudo apt install rofi.

Запустите rofi в "оконном" режиме командой

rofi -show window

Привяжите эту команду к горячей клавише.

0
ответ дан 7 November 2020 в 15:36

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

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