-- Awesome Libs local gears = require("gears") local awful = require("awful") local hotkeys_popup = require("awful.hotkeys_popup") -- Resource Configuration local modkey = user_vars.vars.modkey return function() local globalkeys = gears.table.join( awful.key( { modkey }, "s", hotkeys_popup.show_help, {description="Cheat sheet", group="Awesome"} ), -- Tag browsing awful.key( { modkey }, "Left", awful.tag.viewprev, {description = "View previous tag", group = "Tag"} ), awful.key( { modkey }, "Right", awful.tag.viewnext, {description = "View next tag", group = "Tag"} ), awful.key( { modkey }, "Escape", awful.tag.history.restore, {description = "Go back to last tag", group = "Tag"} ), awful.key( { modkey }, "j", function () awful.client.focus.byidx(1) end, {description = "Focus next client by index", group = "Client"} ), awful.key( { modkey }, "k", function () awful.client.focus.byidx(-1) end, {description = "Focus previous client by index", group = "Client"} ), awful.key( { modkey }, "w", function () user_vars.main_menu:show() end, {description = "Show context menu", group = "Awesome"} ), awful.key( { modkey, "Shift" }, "j", function () awful.client.swap.byidx(1) end, {description = "Swap with next client by index", group = "Client"} ), awful.key( { modkey, "Shift" }, "k", function () awful.client.swap.byidx(-1) end, {description = "Swap with previous client by index", group = "Client"} ), awful.key( { modkey, "Control" }, "j", function () awful.screen.focus_relative(1) end, {description = "Focus the next screen", group = "Screen"} ), awful.key( { modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, {description = "Focus the previous screen", group = "Screen"} ), awful.key( { modkey }, "u", awful.client.urgent.jumpto, {description = "Jump to urgent client", group = "Client"} ), awful.key( { modkey }, "Return", function () awful.spawn(user_vars.vars.terminal) end, {description = "Open terminal", group = "Applications"} ), awful.key( { modkey, "Control" }, "r", awesome.restart, {description = "Reload awesome", group = "Awesome"} ), awful.key( { modkey }, "l", function () awful.tag.incmwfact( 0.05) end, {description = "Increase client width", group = "Layout"} ), awful.key( { modkey }, "h", function () awful.tag.incmwfact(-0.05) end, {description = "Decrease client width", group = "Layout"} ), awful.key( { modkey, "Control" }, "h", function () awful.tag.incncol(1, nil, true) end, {description = "Increase the number of columns", group = "Layout"} ), awful.key( { modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, {description = "Decrease the number of columns", group = "Layout"} ), awful.key( { modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, {description = "Select previous layout", group = "Layout"} ), awful.key( { modkey, "Shift" }, "Return", function () awful.layout.inc(1) end, {description = "Select next layout", group = "Layout"} ), awful.key( { modkey }, "d", function () awful.spawn("/home/crylia/.local/bin/rofi -show drun -theme ~/.config/rofi/rofi.rasi") end, { descripton = "Application launcher", group = "Application" } ), awful.key( { modkey }, "Tab", function () awful.spawn("/home/crylia/.local/bin/rofi -show window -theme ~/.config/rofi/window.rasi") end, { descripton = "Client switcher (alt+tab)", group = "Application" } ), awful.key( { "Mod1" }, "Tab", function () awful.spawn("/home/crylia/.local/bin/rofi -show window -theme ~/.config/rofi/window.rasi") end, { descripton = "Client switcher (alt+tab)", group = "Application" } ), awful.key( { modkey }, "e", function () awful.spawn(user_vars.vars.file_manager) end, { descripton = "Open file manager", group = "System" } ), awful.key( { modkey, "Shift" }, "e", function () awesome.emit_signal("module::powermenu:show") end, { descripton = "Session options", group = "System" } ), awful.key( { }, "Print", function () awful.spawn(user_vars.vars.screenshot_program) end, { description = "Screenshot", group = "Applications" } ), awful.key( { }, "XF86AudioLowerVolume", function (c) awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%") awesome.emit_signal("widget::volume") awesome.emit_signal("module::volume_osd:show", true) awesome.emit_signal("module::slider:update") awesome.emit_signal("widget::volume_osd:rerun") end, { description = "Lower volume", group = "System" } ), awful.key( { }, "XF86AudioRaiseVolume", function (c) awful.spawn.easy_async_with_shell( [[ pacmd list-sinks | grep "volume: front" | awk '{print $5}' ]], function (stdout) stdout = stdout:gsub("%%", "") local volume = tonumber(stdout) or 0 if volume <= 98 then awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%") end end) awesome.emit_signal("widget::volume") awesome.emit_signal("module::volume_osd:show", true) awesome.emit_signal("module::slider:update") awesome.emit_signal("widget::volume_osd:rerun") end, { description = "Increase volume", group = "System" } ), awful.key( { }, "XF86AudioMute", function (c) awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle") awesome.emit_signal("widget::volume") 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%+") awesome.emit_signal("module::brightness_osd:show", true) awesome.emit_signal("module::brightness_slider:update") awesome.emit_signal("widget::brightness_osd:rerun") end, { description = "Raise backlight brightness", group = "System" } ), awful.key( { }, "XF86MonBrightnessDown", function (c) awful.spawn("xbacklight -time 100 -dec 10%-") awesome.emit_signal("widget::brightness_osd:rerun") awesome.emit_signal("module::brightness_osd:show", true) awesome.emit_signal("module::brightness_slider:update") end, { description = "Lower backlight brightness", group = "System" } ), awful.key( {modkey}, "space", function () awesome.emit_signal("kblayout::toggle") end, { description = "Toggle keyboard layout", group = "System" } ) ) return globalkeys end