Любой способ открыть окна от панели окон с помощью ярлыка

Какой-либо способ открыть окна от панели окон с помощью ярлыка? например, открыть первое окно слева Ctrl+1, открыть второе окно слева Ctrl+2.

Я использую xfce4 в данный момент, но если под xfce4 не возможно, там какая-либо другая настольная среда, которая разрешает это?

Так как у меня есть несколько окон, открытых для того же приложения, я, не ища sortcuts связанный с приложением, но как я говорю ниже с окном.

5
задан 22 April 2016 в 13:22

2 ответа

С небольшим сценарием и маленькой хирургией в Вашей системе, это может быть расположено точно, как Вы описываете.

Компоненты

  1. wmctrl; это возможно должно быть установлено.
  2. Сценарий ниже
  3. xprop, получить свойства окна. Это уже установлено в Вашей системе.
  4. Настройки изменяются в xfce настройках панели
  5. Дополнительные сочетания клавиш

Как настроить

  • Установка wmctrl:

    sudo apt-get install wmctrl
    
  • Создайте каталог ~/bin (/home/<yourname>/bin). Скопируйте сценарий ниже в пустой файл, сохраните его как panel_navigate (никакое расширение) в ~/bin и сделайте это исполняемым файлом.

  • Измените настройки панели:
    Перейдите к менеджеру по Настройкам> "Панель"> "Объекты" (вкладка)> "Кнопки Окна">

    • "Порядок сортировки"> Выбирает: Метка времени
    • "Группировка окна"> Выбирает: "Никогда"
    • Удостоверьтесь, что "Витрины из всех рабочих областей или областей просмотра" не отмечены галочкой

    enter image description here

  • Добавьте Горячие клавиши:
    перейдите к менеджеру по Настройкам> "Клавиатура"> "Ярлыки Приложения", выберите "Add". Добавьте команду:

    panel_navigate 1
    

    Установите его на сочетание клавиш Ctrl+1

    enter image description here

  • Теперь можно выбрать:

    • повторить эту процедуру для добавления panel_navigate 2 под Ctrl+2 и так далее (до 9)

    (сохраните опцию), или (если Вы не боитесь отредактировать файлы конфигурации вручную):

    • можно отредактировать файл:

      ~/.config/xfce4/xfconf/xfce-perchanel-xml/xfce4-keyboard-shortcuts.xml
      

      в котором сочетания клавиш (в xfce) хранятся. Откройте файл с mousepad и ищите строку как:

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      

      Скопируйте строку, вставьте, она на следующей строке (вставляет) и изменяет оба случаев 1 в 2, таким образом, Вы доберетесь:

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      <property name="&lt;Primary&gt;2" type="string" value="panel_navigate 2"/>
      

    и так далее..

    Удостоверьтесь, что отступ является точно тем же. Повторите процедуру до 9.

Выйдите из системы и въезжайте задним ходом, и это должно работать:

Ctrl+1

enter image description here

Ctrl+3

enter image description here

И так далее...

Сценарий

#!/usr/bin/env python3

import subprocess
import sys

def get_value(command):
    return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()

def run_command(command):
    subprocess.Popen(["/bin/bash", "-c", command])

current_workspace = [l for l in get_value("wmctrl -d").splitlines() if l.split(" ")[2] == "*"][0][0]
wlist_ids = [item.split()[0:4] for item in get_value("wmctrl -l").splitlines()]
relevant = [item for item in wlist_ids if item[1] == current_workspace]
panel = []
for item in relevant:
    data = get_value("xprop -id "+item[0])
    if ("_TYPE_NORMAL" in data, "TYPE_DIALOG" in data).count(True) == 1:
        panel.append(item)
try:
    window = panel[int(sys.argv[1])-1][0]
    run_command("wmctrl -ia "+window)
except IndexError:
    pass

Объяснение

Решением является оппортунистическое. Мне что windowlist, названный командой пришло в голову wmcrl -l, заказан возрастом окон. Заставляя xfce панель сделать тот же (настройки), оба заказов являются соответствующими отлично. То, что делает сценарий, создает список окна, отфильтровывая "реальные", видимые окна (с xprop) и переключитесь на выбранное окно командой panel_navigate, с количеством окна (слева направо) как agrument.

Проблемы

Я заметил одно исключение: НЕАКТИВНОЕ (интерпретатор Python), окна имеют pid 0 и их свойства, не может быть "исследовано" xprop. Окна не появляются в windowlist и пропускаются сценарием.

Примечание:

Хотя Сочетание клавиш Ctrl +<number> не повысил ошибок при тестировании, это могло бы конфликтовать с некоторыми приложениями. Могло бы быть более безопасно выбрать (например). Ctrl+Alt+1

5
ответ дан 23 November 2019 в 09:06

Не уверенный для того же приложения , но в Unity можно переключить приложения с super+number, что касается примера, super + 1 = первый объект на средстве запуска, super + 2 = второй объект средства запуска, super + n = энный объект средства запуска. Это также помогает открыть любой объект, помещенный в средство запуска, как то, если наутилус будет первым объектом средства запуска, [то 115] откроет файловый менеджер наутилуса.

2
ответ дан 23 November 2019 в 09:06

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

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