потрясающий:alt+tab просто переключает между двумя приложениями
-
13-12-2019 - |
Вопрос
Я только что установил Awesome, как мой wm.Когда я нажимаю alt+tab с помощью Awesome, два приложения просто переключаются, остальные невозможно активировать... есть идеи?
Решение
По умолчанию клиент устанавливает фокус на предыдущее окно, у которого был фокус.Когда вы нажимаете 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
.(две строки, начинающиеся с --
являются комментариями, поэтому они не влияют на результат.)
Для циклического просмотра каждый client на теге, даже свернутом, эта функция может оказаться вам полезной:
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
Я сделал что-то подобное с моей настройкой, который Крис предоставил в своем решении.Вместо того, чтобы перейти сосредоточиться через все окна, однако он на самом деле цикл их через мастер и ведомый стек.Другими словами, все они все заметно вращаются на экране:
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, который делает его таким легким.:)
Я подумал, что я бы просто звонил с этим текущим решением моего решения, поскольку это входит в число первых ресурсов, которые я расследовал, что рассмотрел мой аналогичный вопрос.Надеюсь, это поможет.
В моде по умолчанию связывает мод + циклы вкладок между используемыми двумя последними Приложения.Я искал мод + j или мод + k (обратный порядок).
Есть библиотека для удивительного называется Awesome-Switcher-Preview.Это реализует поведение Alt-Tab, подобное тому, что вы ожидаете на других операционных системах и оконных менеджерах.Это циклы через окна в порядке, когда они были совсем недавно сосредоточены.Это циклы через все клиенты в выбранном вами теге на экране.Он включает в себя минимизированные клиенты.Он пытается не испортить историю, пока не будет сделан выбор.Это не меняет стопку много.Удерживание Alt Down поддерживает переключатель Preview / Alt-Tab вверх.
Вы можете получить это здесь: https://github.com/berlam/awesome-switcher-preview >
Другой вариант использует автономное приложение 3-го вечеринка: https://github.com/sagb/alttab