2018-07-21 20:25:15 +02:00
|
|
|
--DOC_HEADER --DOC_NO_USAGE
|
|
|
|
|
|
|
|
local was_called = {} --DOC_HIDE
|
|
|
|
|
|
|
|
local awful = {keygrabber = require("awful.keygrabber"), --DOC_HIDE
|
|
|
|
client={focus={history={--DOC_HIDE
|
|
|
|
disable_tracking = function() was_called[1] = true end, --DOC_HIDE
|
|
|
|
enable_tracking = function() was_called[2] = true end, --DOC_HIDE
|
|
|
|
select_next = function() was_called[3] = true end, --DOC_HIDE
|
|
|
|
select_previous = function() was_called[4] = true end, --DOC_HIDE
|
|
|
|
}}}}--DOC_HIDE
|
|
|
|
|
|
|
|
awful.keygrabber {
|
|
|
|
keybindings = {
|
|
|
|
{{"Mod1" }, "Tab", awful.client.focus.history.select_previous},
|
|
|
|
{{"Mod1", "Shift"}, "Tab", awful.client.focus.history.select_next },
|
|
|
|
},
|
|
|
|
-- Note that it is using the key name and not the modifier name.
|
2018-10-16 14:42:56 +02:00
|
|
|
stop_key = "Alt_L",
|
|
|
|
stop_event = "release",
|
2018-07-21 20:25:15 +02:00
|
|
|
start_callback = awful.client.focus.history.disable_tracking,
|
|
|
|
stop_callback = awful.client.focus.history.enable_tracking,
|
|
|
|
export_keybindings = true,
|
|
|
|
}
|
|
|
|
|
|
|
|
--DOC_HIDE Trigger the keybinging
|
|
|
|
awesome.emit_signal("refresh") --DOC_HIDE `export_keybindings` is async
|
|
|
|
root.fake_input("key_press", "Alt_L")--DOC_HIDE
|
|
|
|
root.fake_input("key_press", "Tab")--DOC_HIDE
|
|
|
|
root.fake_input("key_release", "Tab")--DOC_HIDE
|
|
|
|
root.fake_input("key_release", "Alt_L")--DOC_HIDE
|
|
|
|
assert(was_called[1] and was_called[1] and was_called[2] and was_called[4])--DOC_HIDE
|
|
|
|
assert(not was_called[3]) --DOC_HIDE
|
|
|
|
|
|
|
|
--DOC_HIDE Now make sure it can be triggered again
|
|
|
|
root.fake_input("key_press", "Alt_L")--DOC_HIDE
|
|
|
|
root.fake_input("key_press", "Shift_L")--DOC_HIDE
|
|
|
|
root.fake_input("key_press", "Tab")--DOC_HIDE
|
|
|
|
root.fake_input("key_release", "Tab")--DOC_HIDE
|
|
|
|
|
|
|
|
assert(was_called[3]) --DOC_HIDE
|