使うデル・インスピロン15 7580。良い点はバージョン4.3です。
私は私のキーの名前を解決するために使用しますxev
。ボリュームキーを押すと、一般的な結果が返されます。
KeyPress event, serial 36, synthetic NO, window 0x1200001,
root 0x169, subw 0x1200002, time 13968342, (38,56), root:(841,97),
state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 36, synthetic NO, window 0x1200001,
root 0x169, subw 0x1200002, time 13968484, (38,56), root:(841,97),
state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
だからキーをAwesomeWMにバインドします...
awful.key({ }, "XF86AudioLowerVolume",
awful.spawn("amixer set Master 5%-"), {})
しかし、Awesomeを更新すると、バインディングは機能せず、xev
他の結果が返されます。
FocusOut event, serial 36, synthetic NO, window 0x1800001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 36, synthetic NO, window 0x1800001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
バインディングを解除した後、ファンクションキーを再利用できます。しかし、なぜこれが起こるのですか?一度バインドすると、私のボリュームキーでもありません。
ベストアンサー1
私はそれについて考えた。何らかの理由でawful.spawn
匿名関数内で使用する必要がありました。awful.spawn
関数なのであえてこうする必要はないと思いました。しかし、残念ながらあなたはそうです。
awful.key({ }, "XF86AudioLowerVolume", function()
awful.spawn("amixer set Master 5%-")
end,
{description = "lower audio", group = "audio"}),
編集する説明しなければならないと思いました。
したがって、press
(に対するメタテーブル)のパラメータには仮パラメータとして必要です。key.new
__call
awful.key
function
awful.spawn
はいtypefunction
が返される内容いいえ機能。したがって、この場合、関数をパラメータとして渡すことができ、関数を呼び出すことはできません。
良い例
-- Notice I passed awful.spawn without calling it
awful.key({ }, "t", awful.spawn, {})
悪い例
-- awful.spawn is called here, so whats returned by it is passed as an argument
awful.key({ }, "t", awful.spawn(), {})
を呼び出すと、いつでもLuaでタイプを確認できることに注意してくださいtype
。
type(awful.spawn)
function