+clientbuttons = gears.table.join(
+ awful.button({}, 1, function(c)
+ client.focus = c
+ c:raise()
+ end),
+ awful.button({ modkey }, 1, awful.mouse.client.move),
+ awful.button({ modkey }, 3, awful.mouse.client.resize)
+)
+
+-- misc apps
+globalkeys = awful.util.table.join(
+ globalkeys,
+ awful.key({ cmdkey }, "n", function()
+ awful.spawn("firefox")
+ end),
+ awful.key({ cmdkey }, "c", function()
+ awful.spawn("chromium --enable-remote-extensions")
+ end),
+ awful.key({ cmdkey }, "y", function()
+ awful.spawn(terminal .. " -e ipython3")
+ end),
+ awful.key({ cmdkey }, "m", function()
+ awful.spawn(terminal .. " -name mutt -e mutt")
+ end),
+ awful.key({ cmdkey }, "t", function()
+ awful.spawn("thunderbird")
+ end),
+ awful.key({ cmdkey }, "g", function()
+ awful.spawn("gscan2pdf")
+ end),
+ awful.key({ cmdkey, "Shift" }, "v", function()
+ awful.spawn("virt-manager")
+ end),
+ awful.key({ cmdkey, "Shift" }, "r", function()
+ awful.spawn("remmina")
+ end),
+ awful.key({ cmdkey }, "l", function()
+ awful.spawn("libreoffice")
+ end),
+ awful.key({ cmdkey }, "v", function()
+ awful.spawn("virt-viewer")
+ end),
+ awful.key({ cmdkey }, "p", function()
+ awful.spawn("pavucontrol")
+ end),
+ awful.key({ cmdkey }, "i", function()
+ awful.spawn(
+ terminal
+ .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh --family=all -- irc-host tmux new -As irc irssi"
+ )
+ end),
+ awful.key({ cmdkey }, "x", function()
+ run_output_notify(
+ "sh -c '. ~/.xsession.d/10-xautolock; echo \"Locking…\"; sleep 1; xautolock -locknow'",
+ "Enabling xautolock"
+ )
+ end),
+ awful.key({ cmdkey, "Shift" }, "x", function()
+ run_output_notify("pkill -e xautolock", "Disabling xautolock")
+ end),
+
+ awful.key({ cmdkey }, "BackSpace", function()
+ awful.spawn("pkill -USR1 offlineimap")
+ end),
+
+ -- function keys
+ awful.key(nil, "XF86ScreenSaver", function()
+ awful.spawn("xset dpms force off")
+ end),
+ awful.key(nil, "XF86AudioMute", function()
+ awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")
+ end),
+ awful.key({ cmdkey }, "End", function()
+ awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")
+ end),
+ awful.key(nil, "XF86AudioLowerVolume", function()
+ awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%")
+ end),
+ awful.key({ cmdkey }, "Next", function()
+ awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%")
+ end),
+ awful.key(nil, "XF86AudioRaiseVolume", function()
+ awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%")
+ end),
+ awful.key({ cmdkey }, "Prior", function()
+ awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%")
+ end),
+ awful.key(nil, "XF86AudioMicMute", function()
+ awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle")
+ end),
+ awful.key({ cmdkey }, "Home", function()
+ awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle")
+ end),
+ awful.key({ cmdkey }, "Insert", function()
+ awful.spawn("pa_cycle_default source")
+ end),
+ awful.key({ cmdkey }, "Delete", function()
+ awful.spawn("pa_cycle_default sink")
+ end),
+ awful.key(nil, "XF86MonBrightnessDown", function()
+ awful.spawn("light -U 10")
+ end),
+ awful.key(nil, "XF86MonBrightnessUp", function()
+ awful.spawn("light -A 10")
+ end),
+ awful.key(nil, "XF86Display", function()
+ awful.spawn("autorandr --change --force")
+ initialise_to_autorandr_profile()
+ end),
+ awful.key(nil, "XF86AudioStop", function()
+ awful.spawn("autorandr --change --force")
+ initialise_to_autorandr_profile()
+ end),
+ awful.key(nil, "XF86WLAN", function()
+ awful.spawn("")
+ end),
+ awful.key(nil, "XF86Tools", function()
+ awful.spawn("")
+ end),
+ awful.key(nil, "XF86Search", function()
+ awful.spawn("")
+ end),
+ awful.key(nil, "XF86LaunchA", function()
+ awful.spawn("")
+ end),
+ awful.key(nil, "XF86Explorer", function()
+ awful.spawn("")
+ end),
+ awful.key(nil, "XF86Calculator", function()
+ awful.spawn(terminal .. " -e ipython3 --profile=calc")
+ end),
+ awful.key(nil, "XF86Favorites", function()
+ awful.spawn("systemctl suspend")
+ end),
+
+ awful.key({ cmdkey }, "Multi_key", function()
+ run_output_notify("flameshot gui", "Output")
+ end),
+ awful.key({ cmdkey, "Shift" }, "Multi_key", function()
+ run_output_notify("flameshot full --delay 2000 --clipboard", "Output")
+ end),
+
+ awful.key({ cmdkey }, "Up", function()
+ awful.spawn("pap prev")
+ end),
+ awful.key({ cmdkey }, "Left", function()
+ awful.spawn("pap seek -10")
+ end),
+ awful.key({ cmdkey, "Shift" }, "Left", function()
+ awful.spawn("pap seek -60")
+ end),
+ awful.key({ cmdkey }, "Down", function()
+ awful.spawn("pap next")
+ end),
+ awful.key({ cmdkey }, "Right", function()
+ awful.spawn("pap seek +10")
+ end),
+ awful.key({ cmdkey, "Shift" }, "Right", function()
+ awful.spawn("pap seek +60")
+ end),
+ awful.key({ cmdkey }, "space", function()
+ awful.spawn("pap pause")
+ end),
+ awful.key({ cmdkey }, "\\", function()
+ run_output_notify("pap info", "Track info")
+ end),
+ awful.key({ cmdkey }, "]", function()
+ run_output_notify("pap list", "Playlist")
+ end)
+)
+
+function run_output_notify(cmd, title)
+ awful.spawn.easy_async(cmd, function(stdout, stderr, reason, exit_code)
+ if #stdout > 1 then
+ naughty.notify({
+ preset = naughty.config.presets.low,
+ title = title,
+ text = stdout,
+ })
+ end
+ end)