Комбинация клавиш для переключения между окнами приложения во всех видовых экранах

Alt-`используется для переключения между окнами приложения в текущем окне просмотра в Unity.

Есть ли еще одна комбинация клавиш для переключения между окнами приложения во всех видовых экранах?

Я не хочу изменять поведение по умолчанию Alt -`, которое переключается между окнами приложения в текущем окне просмотра.

Я использую Ubuntu 14.04 и Unity.

1
задан 12 March 2015 в 23:39

2 ответа

Откройте терминал и введите следующую команду:

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false

В качестве альтернативы вы можете установить инструмент Unity Tweak Tool:

sudo apt-get install unity-tweak-tool
unity-tweak-tool

Затем включить переключатель между окнами на всех рабочих пространствах в вкладке Switcher:

4
ответ дан 24 May 2018 в 04:13
  • 1
    Я хочу сохранить свойство Alt-`, которое переключается между окнами приложения в текущем окне просмотра. Мне нужен еще один ярлык, например Ctrl-Alt-`, который будет переключаться между окнами приложения во всех видовых экранах. – Kadir 28 August 2014 в 17:46
  • 2
    @Kadir К сожалению, свойство dconf не позволит сосуществующим конфигурациям обоих конфигураций. Это одно поведение или другое. – Sylvain Pineau 28 August 2014 в 18:17

Общее решение, использующее 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"

Отметьте сценарий как исполняемый файл и сохраните его в любом месте (желательно в вашем PATH, например /usr/local/bin или ~/bin).

Использование [!d11 ]

Используйте меню сочетаний клавиш вашего оконного менеджера, чтобы назначить simple-window-switcher на горячую клавишу по вашему выбору. Вы можете использовать следующие параметры для управления тем, как работает скрипт:

-g: глобальное переключение окон (во всех рабочих пространствах) -l: локальное переключение окон (текущее рабочее пространство); может не работать с Unity / Compiz (см. раздел комментариев для дополнительной информации)
4
ответ дан 24 May 2018 в 04:13
  • 1
    Дорогой @Glutanimate, после того как -l также переключится на окна на других рабочих пространствах. – Kadir 30 August 2014 в 08:58
  • 2
    @ Кадир Это странно. Это не в моей системе. Если у вас есть время, вы бы хотели опубликовать вывод wmctrl -xl на сайт, например pastebin.com и связать его здесь? – Glutanimate 30 August 2014 в 09:11
  • 3
    Дорогой @Glutanimate, вот он: pastebin.com/iJBAZ5a7 – Kadir 30 August 2014 в 09:22
  • 4
    @Kadir Спасибо! Похоже, Unity / Compiz не отображает информацию о рабочем пространстве, поэтому wmctrl не может решить проблему (поэтому во втором столбце вы видите только нули, это должны быть номера рабочей области). Не знаю, если это ошибка, или если она была разработана именно так. Я этого не заметил, потому что использовал LXDE. Я добавлю ответ на этот вопрос. – Glutanimate 30 August 2014 в 10:05

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

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