awesome wm - 如何将一个键绑定到另一个键

awesome wm - how to bind a key to another key

我是 awesome wm 的新手,我正在尝试将一个键绑定到另一个键。 例如

当我按下 alt+j 时,它就像我刚刚按下键盘上的 down 键一样。

不知道awesome wm有没有这个功能?

有这样的功能吗?

awful.key({ altkey }, "j", function () "down"

正如他们的文档所说,

中有一个配置文件
$XDG_CONFIG_HOME/awesome/rc.lua.

我没有安装 awesome vm 来告诉你里面到底要改变什么,但你会很容易弄明白的。 此外,要完全更改配置文件的路径,请使用:

-c, --config FILE

使用备用配置文件代替 $XDG_CONFIG_HOME/awesome/rc.lua.

我想我可能误解了你的问题。

解读一:

只需复制其他键绑定的代码即可。

在默认配置中,mod+j 是:

awful.key({ modkey,           }, "j",                                                                                                                                                
    function ()
        awful.client.focus.byidx( 1)
        if client.focus then client.focus:raise() end
    end),

复制该部分并更改密钥:

awful.key({ }, "Down",                                                                                                                                                
    function ()
        awful.client.focus.byidx( 1)
        if client.focus then client.focus:raise() end
    end),

解读二:

awful.key({ modkey,           }, "j",                                                                                                                                                
    function ()
        root.fake_input("key_press", "Down")
        root.fake_input("key_release", "Down")
    end),

最后,我找到了一个不完美的解决方案。 首先,安装xdotool,我用的是ArchLinux,所以:

yaourt -S xdotool

并编辑 ~/.config/awesome/rc.lua

awful.key({ altkey }, "j", function() 
    awful.util.spawn("sh -c 'xdotool sleep 0.1 key --clearmodifiers Down'") end),

但是不知为什么它只会输入j,我不知道为什么。

这对我适用于 gtk2 应用程序:

awful.key({ "Control",        }, "n",      function (c) awful.util.spawn_with_shell("xdotool getactivewindow key --window %1 Down")        end)