Какой-либо способ открыть окна от панели окон с помощью ярлыка? например, открыть первое окно слева Ctrl+1, открыть второе окно слева Ctrl+2.
Я использую xfce4 в данный момент, но если под xfce4 не возможно, там какая-либо другая настольная среда, которая разрешает это?
Так как у меня есть несколько окон, открытых для того же приложения, я, не ища sortcuts связанный с приложением, но как я говорю ниже с окном.
С небольшим сценарием и маленькой хирургией в Вашей системе, это может быть расположено точно, как Вы описываете.
wmctrl
; это возможно должно быть установлено.xprop
, получить свойства окна. Это уже установлено в Вашей системе.Установка wmctrl
:
sudo apt-get install wmctrl
Создайте каталог ~/bin
(/home/<yourname>/bin
). Скопируйте сценарий ниже в пустой файл, сохраните его как panel_navigate
(никакое расширение) в ~/bin
и сделайте это исполняемым файлом.
Измените настройки панели:
Перейдите к менеджеру по Настройкам> "Панель"> "Объекты" (вкладка)> "Кнопки Окна">
Добавьте Горячие клавиши:
перейдите к менеджеру по Настройкам> "Клавиатура"> "Ярлыки Приложения", выберите "Add". Добавьте команду:
panel_navigate 1
Установите его на сочетание клавиш Ctrl+1
Теперь можно выбрать:
panel_navigate 2
под Ctrl+2 и так далее (до 9)(сохраните опцию), или (если Вы не боитесь отредактировать файлы конфигурации вручную):
можно отредактировать файл:
~/.config/xfce4/xfconf/xfce-perchanel-xml/xfce4-keyboard-shortcuts.xml
в котором сочетания клавиш (в xfce
) хранятся. Откройте файл с mousepad
и ищите строку как:
<property name="<Primary>1" type="string" value="panel_navigate 1"/>
Скопируйте строку, вставьте, она на следующей строке (вставляет) и изменяет оба случаев 1 в 2, таким образом, Вы доберетесь:
<property name="<Primary>1" type="string" value="panel_navigate 1"/>
<property name="<Primary>2" type="string" value="panel_navigate 2"/>
и так далее..
Удостоверьтесь, что отступ является точно тем же. Повторите процедуру до 9.
Выйдите из системы и въезжайте задним ходом, и это должно работать:
Ctrl+1
Ctrl+3
И так далее...
#!/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
Не уверенный для того же приложения , но в Unity
можно переключить приложения с super+number
, что касается примера, super + 1
= первый объект на средстве запуска, super + 2
= второй объект средства запуска, super + n
= энный объект средства запуска. Это также помогает открыть любой объект, помещенный в средство запуска, как то, если наутилус будет первым объектом средства запуска, [то 115] откроет файловый менеджер наутилуса.