Высокий звук -' используется для переключения между окнами приложения в текущую область просмотра в Единице.
Там другое сочетание клавиш состоит в том, чтобы переключиться между окнами приложения во все области просмотра?
Я не хочу изменять поведение по умолчанию Высокого звука - ', который переключается между окнами приложения в текущую область просмотра.
Я использую Ubuntu 14.04 и Единицу.
Вдохновленный ответом Pineau, я нашел, что злая шутка сделала его: сохраните Высокий звук +' для переключения между окнами приложения в одной области просмотра и (например) Alt+1 для переключения между окнами приложения на всех областях просмотра.
Незначительная косметическая оборотная сторона - то, что скорость отклика немного менее точна, так как для настроек нужна часть секунды для изменения. На практике однако Вы едва заметите.
установка xdotool
:
sudo apt-get install xdotool
Скопируйте следующий scipt в пустой файл и сохраните его как switch.sh
#!/bin/bash
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
sleep 0.2
xdotool keydown alt key 0x60
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport true
sleep 1
установите сочетание клавиш для запущения скрипта: System Preferences > Keyboard > Shortcuts > Custom Shortcuts
. Я выбираю Alt+1, так как это близко к другому.
Теперь можно использовать любого Alt+1 для переключения между всеми окнами (например), gedit:
или Высокий звук +' для переключения между gedit окнами только currect рабочей области:
примечание:
В сценарии ключ выше Вкладки устанавливается к key 0x60
. Это могло бы отличаться на другом lauyouts. В случае, если это не будет работать, работать в терминале xev
, затем нажмите Return, затем ключ выше вкладки. В выводе ищите строку как (keysym 0x60, grave)
. Значение keysym является значением, в котором Вы нуждаетесь в (сценарий-) строка:
xdotool keydown alt key 0x60
Значения sleep 0.2
и sleep 1
заставьте сценарий хорошо работать в моей системе, но они могли бы подвергнуться оптимизации для более быстрых систем (уменьшают).
Больше опций
Точно так же можно установить сочетание клавиш для переключения между всеми окнами приложения на всех областях просмотра, которыми затем был бы сценарий:
#!/bin/bash
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
sleep 0.2
xdotool keydown alt key 0xff09
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport true
sleep 1
При установке, например, Alt+Q для этого у Вас есть хороший набор всех опций:
Высокий звук +' Переключатель между окнами текущего приложения на текущей области просмотра
Переключатель Alt+1 между окнами текущего приложения на всех областях просмотра
Переключатель Alt+Tab между всеми окнами приложения на текущей области просмотра
Переключатель Alt+Q между всеми окнами приложения на всех областях просмотра
Alt+Tab: Переключатель между всеми окнами приложения на текущей области просмотра
Alt+Q: Переключатель между всеми окнами приложения на всех областях просмотра
Откройте Terminal и введите следующую команду:
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
, Кроме того, можно установить Инструмент Тонкой настройки Единицы:
sudo apt-get install unity-tweak-tool
unity-tweak-tool
Тогда включают эти Переключатель между окнами на всех рабочих областях опция на Вкладке Переключателя:
wmctrl
Обзор
Следующий сценарий должен быть совместим со всеми EWMH-совместимыми менеджерами окон (например, xfwm4, openbox, kwin, compiz...). Это использует wmctrl
и xprop
, который может быть установлен с:
sudo apt-get install x11-utils wmctrl
Установка
Скопируйте и сохраните следующий отрывок как simple-window-switcher
:
#!/bin/bash
# based on a script by Robert Steiniger
# (http://lars.st0ne.at/blog/switch%20between%20windows%20within%20the%20same%20application)
Usage="
Title: simple-window-switcher 0.1
Description: switch between all windows of active application
Author: Copyright Glutanimate 2014 (https://github.com/Glutanimate)
License: GNU GPLv3
Usage: $(basename "$0") [-g|-l|-h]
-g: global window switching (across all workspaces)
-l: local window switching (current workspace)
-h: display this help message
If no argument is provided window switching will be set to global.
"
while getopts "lgh" OPTIONS; do
case $OPTIONS in
l ) Fields="3-4"
;;
g ) Fields="4"
;;
h ) echo "$Usage"
exit 0
;;
\? ) echo "$Usage"
exit 1
;;
esac
done
ActiveWinID="$(xprop -root | sed -n 's/_NET_ACTIVE_WINDOW(WINDOW): window id # 0x//p')"
# fields 3-4: <desktop number> <window class>
ActiveWinClass="$(wmctrl -xl | grep "$ActiveWinID" | cut -d" " -f${Fields})"
WindowList="$(wmctrl -xl | grep "$ActiveWinClass" | cut -d" " -f1)"
NextWindow="$(echo "$WindowList" | grep -A1 "$ActiveWinID" | sed -n 2p)"
if [[ -z "$NextWindow" ]]; then
NextWindow="$(echo $WindowList | head -n 1)"
fi
wmctrl -i -a "$NextWindow"
Mark сценарий как исполняемый файл и сохраните его где угодно, Вам нравится (предпочтительно в Вашем ПУТИ, например. /usr/local/bin
или ~/bin
).
Использование
Используйте они вводят с клавиатуры меню ярлыков Вашего менеджера окон для присвоения simple-window-switcher
к горячей клавише по Вашему выбору. Можно использовать следующие параметры, чтобы управлять, как сценарий ведет себя:
-g
: глобальное переключение окна (через все рабочие области)-l
: локальное переключение окна (текущая рабочая область); не мог бы работать с Unity/Compiz (см. раздел комментария для получения дополнительной информации),