Циклически переключаться между клиентами на обоих экранах в awesomewm

Я использую awesomewm и у меня есть два монитора, поэтому Mod4+j а также Mod4+k переключаться между окнами только на текущем экране. Есть ли способ прокручивать все окна / клиенты на всех экранах, чтобы он работал как обычный Alt+Tab?

3 ответа

После просмотра ужасных документов по модулю я нашел решение. Это хакерство, но это работает так, как я хотел, чтобы это работало.

awful.key({ modkey,           }, "Tab",
    function ()
        awful.client.focus.byidx(1)
        if awful.client.ismarked() then
            awful.screen.focus_relative(-1)
            awful.client.getmarked()
        end
        if client.focus then
            client.focus:raise()
        end
        awful.client.togglemarked()
    end),

Эта функция циклически просматривает клиентов на текущем экране, помечая их, а когда все они отмечены, переходит к следующему экрану. Вот что происходит шаг за шагом:

Это смешно, потому что я не знаю, что означает "помечено". Отмеченные клиенты, похоже, не отличаются от не отмеченных клиентов визуально или по поведению.

Странно, что мне пришлось написать 10-строчную функцию, чтобы получить что-то тривиальное, как многоэкранный alt-tab. Я мог бы сделать что-то чрезмерное)

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

client.focus.global_bydirection (dir, c)

Фокус клиента по заданному направлению. Перемещается по экранам. Параметры:

  • dir: Направление может быть "вверх", "вниз", "влево" или "вправо".
  • c: опциональный клиент

Я использую модуль awesome-cyclefocus

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

Это позволяет легко фильтровать список окон, которые нужно циклически просматривать, например, по экрану, тегам, классу окна, имени / названию и т. Д.

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