awesome: Alt + tab просто переключается между двумя приложениями

Я только что установил awesome как мой wm. Когда я делаю Alt + tab с помощью awesome, он просто переключает два приложения, невозможно активировать другие..есть идеи?

6 ответов


по умолчанию клиент устанавливает фокус на предыдущее окно с фокусом. Когда вы alt + tab и он меняет окна, предыдущее окно теперь является исходным окном. Следовательно, он циклически между двумя окнами.

чтобы исправить это, вам нужно будет изменить следующее:

в rc по умолчанию.lua, раздел, который контролирует окно велоспорт выглядит следующим образом:

    awful.key({ modkey,           }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end),

цикл через все окна, а не только предыдущего, изменить над кодом к следующему:

awful.key({ modkey,           }, "Tab",
    function ()
        -- awful.client.focus.history.previous()
        awful.client.focus.byidx(-1)
        if client.focus then
            client.focus:raise()
        end
    end),

awful.key({ modkey, "Shift"   }, "Tab",
    function ()
        -- awful.client.focus.history.previous()
        awful.client.focus.byidx(1)
        if client.focus then
            client.focus:raise()
        end
    end),

это будет цикл через окна, когда вы нажмете Alt+Tab, и в обратном порядке при нажатии Alt+Shift+Tab. (Две строки, начинающиеся с -- - это комментарии, поэтому они не влияют на результат.)

цикл через каждый клиент на теге, даже свернутые, вы можете найти эту функцию полезной:

awful.key({ modkey,           }, "Tab",
    function ()
        for c in awful.client.iterate(function (x) return true end) do
            client.focus = c
            client.focus:raise()
        end
    end),

обратите внимание, что ни одно из этих решений не рассматривает историю вообще, а вместо этого будет переключитесь на окно, которое имело фокус в последнее время (т. е. не учитывает порядок, в котором окна имели фокус).


Я создал модуль для этого: https://github.com/blueyed/awesome-cyclefocus

Он поддерживает различные способы Alt-Tab (см. README) и может быть легко настроен по своему вкусу с помощью фильтров, которые применяются во время езды на велосипеде через окна, например, для фильтрации только окон с тем же классом WM или на том же экране/теге.


Я сделал что-то подобное с моей настройкой, которую Крис предоставил в своем решении. Однако вместо того, чтобы переключать фокус через все окна, он фактически циклирует их через главный и ведомый стек. Другими словами, все они заметно вращаются на экране:

awful.key({ modkey, "Shift"   }, "Tab",
    function ()
        awful.client.cycle(false)
        awful.client.focus.byidx(0,awful.client.getmaster()) -- Added 2013-03-01
    end),

awful.key({ modkey,           }, "Tab",
    function ()
        awful.client.cycle(true)
        awful.client.focus.byidx(0,awful.client.getmaster()) -- Added 2013-03-01
    end),

Мне все еще нужно немного настроить это, так как я хотел бы сосредоточиться (по крайней мере, кажется) на главном окне на протяжении всей операции цикла. Я все еще знакомлюсь с удивительным Lua API, когда я нашел ужасно.клиент.цикл, который делает это так легко. :)

Я решил, что я просто подключусь к этому текущему решению, так как это один из первых ресурсов, которые я исследовал, который обратился к моему аналогичному вопросу. Надеюсь, это поможет.


по умолчанию связывает Mod + Tab циклы между последними двумя используемыми приложения. Я искал Mod + j или Mod + k (обратный порядок).


существует библиотека для awesome под названием awesome-switcher-preview. Это реализует поведение alt-tab аналогично тому, что вы ожидаете от других операционных систем и оконных менеджеров. Он циклически проходит через окна в том порядке, когда они были недавно сфокусированы. Он циклически проходит через всех клиентов в выбранном наборе тегов для экрана. Он включает в себя минимизированный клиент. Я попытки не испортить историю до выбора. Я не сильно изменяю стек. Удержание alt вниз сохраняет предварительный просмотр / Alt-tab switcher up.

вы можете получить его здесь: https://github.com/berlam/awesome-switcher-preview


другой вариант-использование отдельного приложения 3-й участник: https://github.com/sagb/alttab