在 awesomewm 的两个屏幕上循环浏览客户端

Ser*_*min 5 multiple-monitors awesome application-switcher lua

我使用awesomewm,有两个显示器,所以Mod4+jMod4+k通过目前唯一的屏幕上的窗口周期。有没有办法循环浏览所有屏幕上的所有窗口/客户端以使其像普通一样工作Alt+Tab

Ser*_*min 3

在浏览了糟糕的模块文档后,我找到了一个解决方案。它很hacky,但它按照我想要的方式工作。

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),
Run Code Online (Sandbox Code Playgroud)

此函数在当前屏幕上的客户端之间循环,对它们进行标记,当它们全部被标记时,跳转到下一个屏幕。以下是逐步发生的情况:

这很有趣,因为我不知道“标记”是什么意思。被标记的客户在视觉上或行为上似乎与未标记的客户没有什么不同。

奇怪的是,我必须编写一个 10 行函数才能获得像多屏幕 alt-tab 这样简单的东西。我可能做了一些过分的事情)


Jos*_*a K 1

我不确定何时添加此功能,但我相信您正在寻找

client.focus.global_bydirection (dir, c)

按照给定的方向集中客户。跨屏幕移动。参数:

  • dir:方向,可以是“上”、“下”、“左”或“右”。
  • c:可选客户端。