Я только что установил awesome как мой wm. Когда я делаю alt + tab, используя awesome, он просто переключает два приложения, невозможно активировать других. Любая идея?
Awesome: alt + tab просто переключается между двумя приложениями
Ответ 1
По умолчанию клиент устанавливает фокус на предыдущее окно с фокусом. Когда вы добавили 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),
Обратите внимание, что ни одно из этих решений не рассматривает историю вообще, а вместо этого переключается на окно, которое было сосредоточено в последнее время (т.е. не учитывает порядок, в котором окна были сосредоточены).
Ответ 2
Я создал для этого модуль: https://github.com/blueyed/awesome-cyclefocus
Он поддерживает различные методы Alt-Tab
(см. README) и может быть легко настроен по своему вкусу с помощью фильтров, которые применяются при циклическом переходе через окна, например. для фильтрации только окон с тем же классом WM или на одном экране/теге.
Ответ 3
Я сделал что-то подобное с моей настройкой, которую Крис предоставил в своем решении. Тем не менее, вместо того, чтобы сфокусировать фокус через все окна, он фактически переводит их через главный и подчиненный стек. Другими словами, все они заметно поворачиваются на экране:
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),
Мне по-прежнему нужно немного подкорректировать это, так как я хочу, чтобы фокус (по крайней мере, по-видимому) оставался в главном окне на протяжении всего цикла. Я все еще знаком с API Awesome Lua, когда нашел aweful.client.cycle, что делает его настолько легким.:)
Я подумал, что просто позвоню этому текущему решению, так как это один из первых ресурсов, которые я исследовал, которые рассматривали мой аналогичный вопрос. Надеюсь, что это поможет.
Ответ 4
В по умолчанию привязка циклов Mod + Tab между двумя последними используемыми Приложения. Я искал Mod + j или Mod + k (обратный порядок).
Ответ 5
Есть библиотека для awesome, которая называется awesome-switcher-preview. Это реализует поведение alt-tab, подобное тому, что вы ожидаете в других операционных системах и оконных менеджерах. Он циклически перебирает окна в том порядке, в котором они были недавно сфокусированы. Он перебирает всех клиентов в выбранном вами теге для экрана. Включает в себя свернутых клиентов. Он пытается не испортить историю, пока не будет сделан выбор. Это не сильно меняет стек. Удерживая нажатой клавишу alt, удерживайте переключатель предварительного просмотра/переключения вкладок вверх.
Вы можете получить его здесь:https://github.com/berlam/awesome-switcher-preview
Ответ 6
Другой вариант - использование автономного стороннего приложения: https://github.com/sagb/alttab