私はAwesome Window Managerを使用しています。mod4 を押してトップバーを表示し、離すと非表示にします。「keyup Mod4」をawed.keyに渡すのにうんざりしましたが、うまくいきません。キーアップでイベントをトリガーしたいことをどのように伝えることができますか?
1534 次
4 に答える
2
同じものが欲しかった!いくつかの調査の後、私は思いつきました:
echo 'mywibox[1].visible = true' | awesome-client
mod4が押されたときと離されたときに実行する外部プログラムを使用しecho 'mywibox[1].visible = false' | awesome-client
ます。- なんらかの理由で、プレス アンド リリース イベントを mod4 に接続できない (または機能しない) ため、Menu (右の Ctrl の近く) など、モディファイアではなく他のキーを使用します。
これが私の解決策です(押されたキーは押されている限りイベントを送信するため、タイマーが必要です):
-- Put it somewhere at the beginning
presswait = { started = false }
-- Put it in key bindings section (globalkeys = within awful.table.join)
awful.key({ }, "Menu", function()
if presswait.started then
presswait:stop()
else
-- One second to tell if key is released
presswait = timer({ timeout = 1 })
presswait:connect_signal("timeout", function()
presswait:stop()
-- Key is released
for i = 1, screen.count() do
mywibox[i].visible = false
end
end)
-- Key is pressed
for i = 1, screen.count() do
mywibox[i].visible = true
end
end
presswait:start()
end)
于 2014-02-17T19:06:40.203 に答える
2
試す
`awful.key({ modkey }, "", nil, function () staff here end)`
3番目のパラメーターは、渡されたときの「リリース」イベントのハンドラーです。
于 2013-09-14T22:05:26.813 に答える
1
信号をキー オブジェクトに接続できます。
key.connect_signal("press", function(k)
-- Analyze k and act accordingly
end)
シグナルの詳細はこちら: http://awesome.naquadah.org/wiki/Signals
于 2013-09-09T04:38:55.797 に答える
0
https://stackoverflow.com/a/21837280/2656413からの最初の提案を使用して、 この python スクリプトを作成しました: https://github.com/grandchild/autohidewibox
バックグラウンドで実行xinput
され、その出力を解析します。Python で直接解析することもできますが/dev/input/event1
、私は怠惰でした。
次に、キーが押されたり離されたりするたびに、次の lua コードを awesome にパイプします。
echo 'for i, box in pairs(mywibox) do box.visible = true end' | awesome-client
と
echo 'for i, box in pairs(mywibox) do box.visible = false end' | awesome-client
それぞれ。
アップデート:
素晴らしい 4+ の使用:
echo "for s in screen do s.mywibox.visible = false end" | awesome-client
またはtrue
。
于 2015-04-23T18:54:28.267 に答える