Я только что установил awesome как мой wm. Когда я использую alt+tab с помощью awesome, он просто переключает два приложения, другие невозможно активировать... есть идеи?
круто: Alt+Tab просто переключается между двумя приложениями
Ответы (7)
По умолчанию клиент устанавливает фокус на предыдущее окно, которое имело фокус. Когда вы нажимаете 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),
Обратите внимание, что ни одно из этих решений вообще не учитывает историю, а вместо этого переключается на окно, которое было последним в фокусе (т. Е. Не учитывает порядок, в котором окна были в фокусе).
modkey+j
и modkey+k
.
- person blueyed; 01.03.2014
Для этого я создал модуль: 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),
Мне все еще нужно немного настроить это, так как я хотел бы, чтобы фокус (по крайней мере, казалось) оставался на главном окне на протяжении всей операции цикла. Я все еще знакомлюсь с Awesome Lua API, когда нашел aweful.client.cycle, который делает его таким простым. :)
Я решил, что просто присоединюсь к этому моему текущему решению, поскольку это один из первых ресурсов, которые я исследовал и которые касались моего аналогичного вопроса. Надеюсь, поможет.
В биндах по умолчанию Mod+Tab переключается между двумя последними используемыми приложениями. Я искал Mod+j или Mod+k (обратный порядок).
Существует библиотека для awesome, которая называется awesome-switcher-preview. Это реализует поведение Alt-Tab, аналогичное тому, что вы ожидаете от других операционных систем и оконных менеджеров. Он циклически проходит через окна в том порядке, в котором они были в последний раз сфокусированы. Он циклически перебирает всех клиентов в выбранном вами наборе тегов для экрана. Он включает в себя свернутых клиентов. Он пытается не испортить историю, пока не будет сделан выбор. Это не сильно меняет стек. Удерживая клавишу Alt, переключатель предпросмотра/альт-таба остается в нажатом состоянии.
Вы можете получить его здесь: https://github.com/berlam/awesome-switcher-preview< /а>
Другой вариант — использовать отдельное стороннее приложение: https://github.com/sagb/alttab.
Я должен сказать, что мне потребовалось некоторое время, чтобы установить правильную конфигурацию, чтобы получить поведение, которое я искал: циклическое переключение ВСЕХ окон, включая (особенно!) свернутые, на ВСЕХ тегах, без их поднятия или фокусировки и с предварительным просмотром. или извещение.
- Редактирование потрясающей конфигурации (приведенной выше): будет циклически проходить только неминимизированные окна.
- awesome_alttab устарело
- awesome-switcher для потрясающего 3.5
- цикл-фокус : Наконец-то! У меня это заработало только после того, как закомментировал строку 102, но не путем замены пустым
cycle_filters
в rc.lua
awesome-cyclefocus/init.lua :
cycle_filters = {
--function(c, source_c) return not c.minimized end, --luacheck: no unused args
},
rc.lua
cyclefocus.key({ "Mod1", }, "Tab", {
show_clients = false,
focus_clients = false,
}),