Я хотел бы создать ярлык для уменьшения всех окон и доступа к моему - открытый терминал. Я знаю, что команда ctrl+super+D минимизирует каждый окна, но я хочу самый простой путь. (человечность 14.04)
Сценарий ниже может сделать то, что Вы хотите. Использование очень просто: свяжите это с сочетанием клавиш и дайте ему класс окна терминала. Выполните шаги ниже
Предпочтительно, это должно быть сохранено в Вашей домашней папке под ~/bin
каталог. Если у Вас нет того каталога, создайте его.
Удостоверьтесь, что сценарий имеет исполняемые полномочия с chmod +x
как так.
$ chmod +x ~/bin/get_terminal.py
Использовать xprop
команда, чтобы сделать так (это позволит Вам выбрать окно, Вы хотите проверить изменение Вашего курсора в x символ):
$ xprop WM_CLASS
WM_CLASS(STRING) = "gnome-terminal-server", "Gnome-terminal"
Любая из получивших строк сделает.
Под Параметрами настройки системы-> Клавиатура-> Ярлыки-> Пользовательский. Добавьте следующую запись:
Команда, используемая там:
python3 /home/xieerqi/bin/get_terminal.py "Gnome-terminal"
Заметьте, что я дал его, полный путь и WM_CLASS заключаются в кавычки
Сочетанием клавиш, которое я установил, является CtrlSuperG, но Вы свободны использовать другие привязки клавиш также.
#!/usr/bin/env python3
#from __future__ import print_function
import gi
gi.require_version('Gdk', '3.0')
from gi.repository import Gdk
import subprocess
import time
import os
import sys
def run_cmd(cmdlist):
""" Reusable function for running external commands """
new_env = dict(os.environ)
new_env['LC_ALL'] = 'C'
try:
stdout = subprocess.check_output(cmdlist, env=new_env)
except subprocess.CalledProcessError:
print('FAIL:' + repr(cmdline))
else:
if stdout:
return stdout
def main():
if len(sys.argv) < 2:
sys.stderr.write("REQUIRES WM_CLASS\n")
sys.exit(1)
screen = Gdk.Screen.get_default()
for window in screen.get_window_stack():
xid = int(window.get_xid())
wm_class = run_cmd(['xprop','-notype','WM_CLASS','-id',str(xid)])
if sys.argv[1] in wm_class.decode():
window.focus(int(time.time()))
window.process_all_updates()
else:
window.iconify()
window.process_all_updates()
if __name__ == '__main__':
main()