426 lines
11 KiB
Lua
426 lines
11 KiB
Lua
-- Awesome Libs
|
|
local gears = require("gears")
|
|
local awful = require("awful")
|
|
local hotkeys_popup = require("awful.hotkeys_popup")
|
|
local ruled = require("ruled")
|
|
|
|
local modkey = user_vars.modkey
|
|
local switcher = require("src.modules.awesome_switcher")
|
|
local revelation = require("src.modules.revelation")
|
|
revelation.init()
|
|
|
|
return gears.table.join(
|
|
awful.key(
|
|
{ modkey },
|
|
"#39",
|
|
hotkeys_popup.show_help,
|
|
{ description = "Cheat sheet", group = "Awesome" }
|
|
),
|
|
-- Tag browsing
|
|
awful.key(
|
|
{ modkey },
|
|
"#113",
|
|
awful.tag.viewprev,
|
|
{ description = "View previous tag", group = "Tag" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#114",
|
|
awful.tag.viewnext,
|
|
{ description = "View next tag", group = "Tag" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#66",
|
|
awful.tag.history.restore,
|
|
{ description = "Go back to last tag", group = "Tag" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#44",
|
|
function()
|
|
awful.client.focus.byidx(1)
|
|
end,
|
|
{ description = "Focus next client by index", group = "Client" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#45",
|
|
function()
|
|
awful.client.focus.byidx(-1)
|
|
end,
|
|
{ description = "Focus previous client by index", group = "Client" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"w",
|
|
revelation,
|
|
{ description = "Focus previous client by index", group = "Client" }
|
|
),
|
|
--awful.key(
|
|
-- { "Mod1" },
|
|
-- "#23",
|
|
-- function()
|
|
-- awful.client.focus.byidx(1)
|
|
-- end,
|
|
-- { description = "Focus next client by index", group = "Client" }
|
|
--),
|
|
awful.key({ "Mod1" }, "#23",
|
|
function ()
|
|
switcher.switch( 1, "Mod1", "Alt_L", "Shift", "Tab")
|
|
end),
|
|
awful.key(
|
|
{ "Mod1", "Shift" },
|
|
"#23",
|
|
function()
|
|
awful.client.focus.byidx(-1)
|
|
end,
|
|
{ description = "Focus previous client by index", group = "Client" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"#44",
|
|
function()
|
|
awful.client.swap.byidx(1)
|
|
end,
|
|
{ description = "Swap with next client by index", group = "Client" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"#45",
|
|
function()
|
|
awful.client.swap.byidx(-1)
|
|
end,
|
|
{ description = "Swap with previous client by index", group = "Client" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Control" },
|
|
"#44",
|
|
function()
|
|
awful.screen.focus_relative(1)
|
|
end,
|
|
{ description = "Focus the next screen", group = "Screen" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Control" },
|
|
"#45",
|
|
function()
|
|
awful.screen.focus_relative(-1)
|
|
end,
|
|
{ description = "Focus the previous screen", group = "Screen" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#30",
|
|
awful.client.urgent.jumpto,
|
|
{ description = "Jump to urgent client", group = "Client" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#36",
|
|
function()
|
|
awful.spawn(user_vars.terminal)
|
|
end,
|
|
{ description = "Open terminal", group = "Applications" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"#27",
|
|
awesome.restart,
|
|
{ description = "Reload awesome", group = "Awesome" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#46",
|
|
function()
|
|
awful.tag.incmwfact(0.05)
|
|
end,
|
|
{ description = "Increase client width", group = "Layout" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#43",
|
|
function()
|
|
awful.tag.incmwfact(-0.05)
|
|
end,
|
|
{ description = "Decrease client width", group = "Layout" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Control" },
|
|
"#43",
|
|
function()
|
|
awful.tag.incncol(1, nil, true)
|
|
end,
|
|
{ description = "Increase the number of columns", group = "Layout" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Control" },
|
|
"#46",
|
|
function()
|
|
awful.tag.incncol(-1, nil, true)
|
|
end,
|
|
{ description = "Decrease the number of columns", group = "Layout" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"#23",
|
|
function()
|
|
awful.layout.inc(1)
|
|
end,
|
|
{ description = "Select previous layout", group = "Layout" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#23",
|
|
function()
|
|
awful.layout.inc(-1)
|
|
end,
|
|
{ description = "Select next layout", group = "Layout" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#40",
|
|
function()
|
|
awful.spawn("rofi -show drun -theme ~/.config/rofi/rofi.rasi")
|
|
end,
|
|
{ descripton = "Application launcher", group = "Application" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#53",
|
|
function()
|
|
awesome.emit_signal("module::powermenu:show")
|
|
end,
|
|
{ description = "Powermenu", group = "Application"}
|
|
),
|
|
-- awful.key(
|
|
-- { "Mod1" },
|
|
-- "#23",
|
|
-- function()
|
|
-- awful.spawn("rofi -show window -theme ~/.config/rofi/window.rasi")
|
|
-- end,
|
|
-- { descripton = "Client switcher (alt+tab)", group = "Application" }
|
|
-- ),
|
|
-- awful.key(
|
|
-- { modkey },
|
|
-- "#23",
|
|
-- function()
|
|
-- awful.spawn("rofi -show window -theme ~/.config/rofi/window.rasi")
|
|
-- end,
|
|
-- { descripton = "Client switcher (alt+tab)", group = "Application" }
|
|
-- ),
|
|
awful.key(
|
|
{ modkey },
|
|
"#25",
|
|
function()
|
|
awful.spawn("rofi -show window -theme ~/.config/rofi/window.rasi")
|
|
end,
|
|
{ descripton = "Client switcher (alt+tab)", group = "Application" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#25",
|
|
function()
|
|
awful.spawn("rofi -show window -theme ~/.config/rofi/window.rasi")
|
|
end,
|
|
{ descripton = "Client switcher (alt+tab)", group = "Application" }
|
|
),
|
|
awful.key(
|
|
{ modkey },
|
|
"#26",
|
|
function()
|
|
awful.spawn(user_vars.file_manager)
|
|
end,
|
|
{ descripton = "Open file manager", group = "System" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"#26",
|
|
function()
|
|
awesome.emit_signal("module::powermenu:show")
|
|
end,
|
|
{ descripton = "Session options", group = "System" }
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift"},
|
|
"#39",
|
|
function()
|
|
awful.spawn(user_vars.screenshot_program)
|
|
end,
|
|
{ description = "Screenshot", group = "Applications" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86AudioLowerVolume",
|
|
function(c)
|
|
awful.spawn.easy_async_with_shell("pactl set-sink-volume @DEFAULT_SINK@ -2%", function()
|
|
awesome.emit_signal("module::volume_osd:show", true)
|
|
awesome.emit_signal("module::slider:update")
|
|
awesome.emit_signal("widget::volume_osd:rerun")
|
|
end)
|
|
end,
|
|
{ description = "Lower volume", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86AudioRaiseVolume",
|
|
function(c)
|
|
awful.spawn.easy_async_with_shell("pactl set-sink-volume @DEFAULT_SINK@ +2%", function()
|
|
awesome.emit_signal("module::volume_osd:show", true)
|
|
awesome.emit_signal("module::slider:update")
|
|
awesome.emit_signal("widget::volume_osd:rerun")
|
|
end)
|
|
end,
|
|
{ description = "Increase volume", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86AudioMute",
|
|
function(c)
|
|
awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")
|
|
awesome.emit_signal("module::volume_osd:show", true)
|
|
awesome.emit_signal("module::slider:update")
|
|
awesome.emit_signal("widget::volume_osd:rerun")
|
|
end,
|
|
{ description = "Mute volume", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86MonBrightnessUp",
|
|
function(c)
|
|
--awful.spawn("xbacklight -time 100 -inc 10%+")
|
|
awful.spawn.easy_async_with_shell(
|
|
"pkexec xfpm-power-backlight-helper --get-brightness",
|
|
function(stdout)
|
|
awful.spawn.easy_async_with_shell("pkexec xfpm-power-backlight-helper --set-brightness " .. tostring(tonumber(stdout) + BACKLIGHT_SEPS), function(stdou2)
|
|
|
|
end)
|
|
awesome.emit_signal("module::brightness_osd:show", true)
|
|
awesome.emit_signal("module::brightness_slider:update")
|
|
awesome.emit_signal("widget::brightness_osd:rerun")
|
|
end
|
|
)
|
|
end,
|
|
{ description = "Raise backlight brightness", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86MonBrightnessDown",
|
|
function(c)
|
|
awful.spawn.easy_async_with_shell(
|
|
"pkexec xfpm-power-backlight-helper --get-brightness",
|
|
function(stdout)
|
|
awful.spawn.easy_async_with_shell("pkexec xfpm-power-backlight-helper --set-brightness " .. tostring(tonumber(stdout) - BACKLIGHT_SEPS), function(stdout2)
|
|
|
|
end)
|
|
awesome.emit_signal("module::brightness_osd:show", true)
|
|
awesome.emit_signal("module::brightness_slider:update")
|
|
awesome.emit_signal("widget::brightness_osd:rerun")
|
|
end
|
|
)
|
|
end,
|
|
{ description = "Lower backlight brightness", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86AudioPlay",
|
|
function(c)
|
|
awful.spawn("playerctl play-pause")
|
|
end,
|
|
{ description = "Play / Pause audio", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86AudioNext",
|
|
function(c)
|
|
awful.spawn("playerctl next")
|
|
end,
|
|
{ description = "Play / Pause audio", group = "System" }
|
|
),
|
|
awful.key(
|
|
{},
|
|
"XF86AudioPrev",
|
|
function(c)
|
|
awful.spawn("playerctl previous")
|
|
end,
|
|
{ description = "Play / Pause audio", group = "System" }
|
|
),
|
|
-- awful.key(
|
|
-- { "Mod1" },
|
|
-- "#50",
|
|
-- function()
|
|
-- awesome.emit_signal("kblayout::toggle")
|
|
-- end,
|
|
-- { description = "Toggle keyboard layout", group = "System" }
|
|
-- ),
|
|
awful.key(
|
|
{ modkey },
|
|
"#22",
|
|
function()
|
|
awful.spawn.easy_async_with_shell(
|
|
[[xprop | grep WM_CLASS | awk '{gsub(/"/, "", $4); print $4}']],
|
|
function(stdout)
|
|
if stdout then
|
|
ruled.client.append_rule {
|
|
rule = { class = stdout:gsub("\n", "") },
|
|
properties = {
|
|
floating = true
|
|
},
|
|
}
|
|
awful.spawn.easy_async_with_shell(
|
|
"cat ~/.config/awesome/src/assets/rules.txt",
|
|
function(stdout2)
|
|
for class in stdout2:gmatch("%a+") do
|
|
if class:match(stdout:gsub("\n", "")) then
|
|
return
|
|
end
|
|
end
|
|
awful.spawn.with_shell("echo -n '" .. stdout:gsub("\n", "") .. ";' >> ~/.config/awesome/src/assets/rules.txt")
|
|
local c = mouse.screen.selected_tag:clients()
|
|
for j, client in ipairs(c) do
|
|
if client.class:match(stdout:gsub("\n", "")) then
|
|
client.floating = true
|
|
end
|
|
end
|
|
end
|
|
)
|
|
end
|
|
end
|
|
)
|
|
end
|
|
),
|
|
awful.key(
|
|
{ modkey, "Shift" },
|
|
"#22",
|
|
function()
|
|
awful.spawn.easy_async_with_shell(
|
|
[[xprop | grep WM_CLASS | awk '{gsub(/"/, "", $4); print $4}']],
|
|
function(stdout)
|
|
if stdout then
|
|
ruled.client.append_rule {
|
|
rule = { class = stdout:gsub("\n", "") },
|
|
properties = {
|
|
floating = false
|
|
},
|
|
}
|
|
awful.spawn.easy_async_with_shell(
|
|
[[
|
|
REMOVE="]] .. stdout:gsub("\n", "") .. [[;"
|
|
STR=$(cat ~/.config/awesome/src/assets/rules.txt)
|
|
echo -n ${STR//$REMOVE/} > ~/.config/awesome/src/assets/rules.txt
|
|
]],
|
|
function(stdout2)
|
|
local c = mouse.screen.selected_tag:clients()
|
|
for j, client in ipairs(c) do
|
|
if client.class:match(stdout:gsub("\n", "")) then
|
|
client.floating = false
|
|
end
|
|
end
|
|
end
|
|
)
|
|
end
|
|
end
|
|
)
|
|
end
|
|
)
|
|
)
|