如何在awesome wm中跳转到历史记录中的上一个窗口?

如何在awesome wm中跳转到历史记录中的上一个窗口?

我是很棒的 wm 新手,我想设置一个快捷方式,让我回到上一个窗口(历史上),无论它是在当前标签、另一个标签甚至另一个屏幕上(例如Alt+Tab在 Gnome 或 Windows 中) 。

默认情况下,可以Super+Tab返回,但只能返回相同的标签。

并且可以Super+Esc返回到之前的活动标签。

如果没有(全局)转到上一个窗口的函数,我可以编写自己的函数吗rc.lua(如果我懂Lua)?

答案1

您可以直接通过使用历史列表 awful.client.focus.history.list

表的第一个元素是当前聚焦的客户端,因此 2 是前一个

从客户端获取第一个标签查看此标签

然后抬起客户端使其位于顶部

function ()                                                                                                  
    local c = awful.client.focus.history.list[2]                                                             
    client.focus = c                                                                                         
    local t = client.focus and client.focus.first_tag or nil                                                 
    if t then                                                                                                
        t:view_only()                                                                                        
    end                                                                                                      
    c:raise()                                                                                                
end  

所以你可以从rc.lua更改

    awful.key({ modkey,           }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end,
        {description = "go back", group = "client"}),

    awful.key({ modkey,           }, "Tab",
        function ()
            local c = awful.client.focus.history.list[2]
            client.focus = c
            local t = client.focus and client.focus.first_tag or nil
            if t then
                t:view_only()
            end
            c:raise()
        end,
        {description = "go back", group = "client"}),

相关内容