awesome/lib/awful/hotkeys_popup/keys/tmux.lua

92 lines
2.7 KiB
Lua

---------------------------------------------------------------------------
--- tmux hotkeys for awful.hotkeys_widget
--
-- @author nahsi nashi@airmail.cc
-- @copyright 2017 nahsi
-- @submodule awful.hotkeys_popup
---------------------------------------------------------------------------
local hotkeys_popup = require("awful.hotkeys_popup.widget")
local tmux = {}
--- Add rules to match tmux session.
--
-- For example:
--
-- tmux.add_rules_for_terminal({ rule = { name = { "tmux" }}})
--
-- will show tmux hotkeys for any window that has 'tmux' in its title.
-- If no rules are provided then tmux hotkeys will be shown always!
-- @function add_rules_for_terminal
-- @see awful.rules.rules
-- @tparam table rule Rules to match a window containing a tmux session.
function tmux.add_rules_for_terminal(rule)
for group_name, group_data in pairs({
["tmux: sessions"] = rule,
["tmux: windows"] = rule,
["tmux: panes"] = rule,
["tmux: misc"] = rule,
}) do
hotkeys_popup.add_group_rules(group_name, group_data)
end
end
local tmux_keys = {
["tmux: sessions"] = {{
modifiers = {},
keys = {
s = "show all sessions",
['$'] = "rename the current session",
['('] = "move to previous session",
[')'] = "move to next session",
d = "detach from current session"
}
}},
["tmux: windows"] = {{
modifiers = {},
keys = {
c = "create window",
f = "find window",
[','] = "rename current window",
--['&'] = "close current window",
p = "previous window",
n = "next window",
['0...9'] = "select window by number"
}
}},
["tmux: panes"] = {{
modifiers = {},
keys = {
[';'] = "toggle last active pane",
['%'] = "split pane vertically",
['"'] = "split pane horizontally",
['{'] = "move the current pane left",
['}'] = "move the current pane right",
['q 0...9'] = "select pane by number",
o = "toggle between panes",
z = "toggle pane zoom",
['space'] = "toggle between layouts",
['!'] = "convert pane into a window",
x = "close current pane"
}
}},
["tmux: misc"] = {{
modifiers = {},
keys = {
[':'] = "enter command mode",
['?'] = "list shortcuts",
t = "show clock"
}
}}
}
hotkeys_popup.add_hotkeys(tmux_keys)
return tmux
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80