Я знаю, что для Windows есть «Aero Shake», и мне нужно что-то подобное для Debian 7.
Я уже проверил все сочетания клавиш, но ничего связанного с этим не нашел.
решение1
В Ubuntu работает следующее:
Ctrl + Super + Up: Развернуть
Ctrl + Super + Down: Восстановить/Свернуть
Ctrl + Super + Left: прикрепить окно влево
Ctrl + Super + Right: прикрепить окно справа
А если удерживать клавишу Super, можно получить список этих и других сочетаний клавиш.
P.S. Супер ключ, он же ключ Windows.
решение2
Легкого способа сделать это нет, но я считаю, что это возможно с помощью Devil's Pie.
Вот полезная статья с простым примером. http://www.cs.bgu.ac.il/~gwiener/linux/minimizing-all-windows-in-gnome/
См. «window_property» здесь: http://www.foosel.org/linux/devilspie#window_role
См. "_NET_WM_STATE" на этой странице. Вы ищете конкретно "_NET_WM_STATE_FOCUSED". http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472615568
У меня нет тестовой среды ATM, но я думаю, что скрипт будет выглядеть примерно так:
(begin
(if (not (is (window_property _NET_WM_STATE_FOCUSED))
(minimize))
(quit))
или (См. раздел _NET_WM_STATE... Не уверен, как их использовать)
(begin
(if (not (is (window_property _NET_WM_STATE, ATOM))
(minimize))
(quit))
решение3
Это решение, которое я придумал для Ubuntu 21.10, которое реализует Wayland по умолчанию. Привяжите скрипт bash к клавише, и вы готовы к работе.
#!/bin/bash
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"global
.get_window_actors()
.filter(w=>w.meta_window.has_focus()===false)
.forEach(w=>w.meta_window.minimize())"