X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/7b424d353216fb6ed7eda3a0653c12de1003679a..e89f594db976b082f6970f96fb79c36bc014ea05:/.config/awesome/rc.lua?ds=inline diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 99cc970..3322df2 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -113,8 +113,8 @@ tags.settings = { { name = "2", layout = layouts[1] }, { name = "3", layout = layouts[1] }, { name = "4", layout = layouts[1] }, - { name = "5", layout = layouts[5] }, - { name = "6", layout = layouts[3] }, + { name = "5", layout = layouts[1] }, + { name = "6", layout = layouts[1] }, { name = "7", layout = layouts[3] }, { name = "8", layout = layouts[3] }, { name = "9", layout = layouts[3] }, @@ -319,10 +319,8 @@ globalkeys = awful.util.table.join( awful.key({ modkey, }, "Left", awful.tag.viewprev ), awful.key({ modkey, }, "Right", awful.tag.viewnext ), awful.key({ modkey, }, "Escape", awful.tag.history.restore), - awful.key({ modkey, "Shift" }, "Right", function () awful.screen.focus( 1) end), - awful.key({ modkey, "Shift" }, "Left", function () awful.screen.focus(-1) end), - awful.key({ modkey, "Shift" }, "h", awful.tag.viewprev ), - awful.key({ modkey, "Shift" }, "l", awful.tag.viewnext ), + awful.key({ modkey, "Shift" }, "Right", function () awful.screen.focus_relative( 1) end), + awful.key({ modkey, "Shift" }, "Left", function () awful.screen.focus_relative(-1) end), awful.key({ modkey, }, "k", function () @@ -373,7 +371,13 @@ globalkeys = awful.util.table.join( mypromptbox[mouse.screen].widget, awful.util.eval, nil, awful.util.getdir("cache") .. "/history_eval") - end) + end), + awful.key({ modkey }, "F1", function () awful.screen.focus(1) end), + awful.key({ modkey }, "F2", function () awful.screen.focus(2) end), + awful.key({ modkey }, "F3", function () awful.screen.focus(3) end), + awful.key({ modkey, "Shift" }, "F1", function () awful.client.movetoscreen(c, 1) end), + awful.key({ modkey, "Shift" }, "F2", function () awful.client.movetoscreen(c, 2) end), + awful.key({ modkey, "Shift" }, "F3", function () awful.client.movetoscreen(c, 3) end) ) clientkeys = awful.util.table.join( @@ -381,14 +385,27 @@ clientkeys = awful.util.table.join( awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end), awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ), awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), - awful.key({ modkey, }, "o", awful.client.movetoscreen ), + awful.key({ modkey, }, "o", function (c) awful.client.movetoscreen(c, c.screen-1) end), + awful.key({ modkey, }, "p", function (c) awful.client.movetoscreen(c, c.screen+1) end), awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end), awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end), awful.key({ modkey, }, "n", function (c) c.minimized = not c.minimized end), awful.key({ modkey, }, "m", function (c) - c.maximized_horizontal = not c.maximized_horizontal - c.maximized_vertical = not c.maximized_vertical + -- silly lua can't do bitwise operations + if not c.maximized_horizontal and not c.maximized_vertical then + c.maximized_horizontal = true + c.maximized_vertical = true + elseif c.maximized_horizontal and c.maximized_vertical then + c.maximized_horizontal = false + c.maximized_vertical = true + elseif not c.maximized_horizontal and c.maximized_vertical then + c.maximized_horizontal = true + c.maximized_vertical = false + elseif c.maximized_horizontal and not c.maximized_vertical then + c.maximized_horizontal = false + c.maximized_vertical = false + end end) ) @@ -440,18 +457,18 @@ cmdmodkey = "Mod3" -- xmms2 & sound globalkeys = awful.util.table.join(globalkeys, - awful.key({ cmdmodkey }, "Prior", function () awful.util.spawn("amixer set Master 2+") end), - awful.key({ cmdmodkey }, "Next", function () awful.util.spawn("amixer set Master 2-") end), - awful.key({ cmdmodkey }, "Up", function () awful.util.spawn("amixer set PCM 2+") end), - awful.key({ cmdmodkey }, "Down", function () awful.util.spawn("amixer set PCM 2-") end), - awful.key({ cmdmodkey }, "Home", function () awful.util.spawn("amixer set Mic toggle") end), - awful.key({ cmdmodkey }, "End", function () awful.util.spawn("amixer set Master toggle") end), + awful.key({ cmdmodkey }, "Prior", function () awful.util.spawn("pactl set-sink-volume 0 +2%") end), + awful.key({ cmdmodkey }, "Next", function () awful.util.spawn("pactl set-sink-volume 0 -2%") end), + awful.key({ cmdmodkey }, "Home", function () awful.util.spawn("pactl set-source-mute 1 toggle") end), + awful.key({ cmdmodkey }, "End", function () awful.util.spawn("pactl set-sink-mute 0 toggle") end), awful.key({ cmdmodkey }, "Left", function () awful.util.spawn("nyxmms2 prev") end), awful.key({ cmdmodkey }, "Right", function () awful.util.spawn("nyxmms2 next") end), awful.key({ cmdmodkey }, "space", function () awful.util.spawn("nyxmms2 toggle") end), awful.key({ cmdmodkey }, "backslash", function () local f = io.popen('nyxmms2 current', 'r') - naughty.notify({ title = "Now playing", text = string.sub(f:read(), 10), timeout = 5 }) + for s, t in string.gmatch(f:read(), '(%w+):%s+([^:]+)') do + naughty.notify({ title = s, text = t, timeout = 5 }) + end f:close() end), awful.key({ cmdmodkey, "Shift" }, "backslash", function () @@ -467,13 +484,14 @@ globalkeys = awful.util.table.join(globalkeys, awful.key({ cmdmodkey }, "m", function () awful.util.spawn(terminal .. " -e mutt -f =store") end), awful.key({ cmdmodkey }, "t", function () awful.util.spawn(terminal) end), awful.key({ cmdmodkey }, "y", function () awful.util.spawn(terminal .. " -e python") end), - awful.key({ cmdmodkey }, "c", function () awful.util.spawn(terminal .. " -e wyrd") end), + awful.key({ cmdmodkey }, "c", function () awful.util.spawn("icedove") end), awful.key({ cmdmodkey }, "r", function () mypromptbox[mouse.screen]:run() end), awful.key({ cmdmodkey }, "g", function () awful.util.spawn("gscan2pdf") end), + awful.key({ cmdmodkey }, "v", function () awful.util.spawn("virt-manager") end), awful.key({ cmdmodkey }, "o", function () awful.util.spawn("okular") end), awful.key({ cmdmodkey }, "l", function () awful.util.spawn("libreoffice") end), - awful.key({ cmdmodkey }, "i", function () awful.util.spawn(terminal .. " -title irc -name irc -e mosh --ssh='ssh -t' irc -- screen -dr irc") end), - awful.key({ cmdmodkey }, "x", function () awful.util.spawn_with_shell("/sbin/start-stop-daemon --start --background --exec /usr/bin/xscreensaver; xscreensaver-command -lock") end), + awful.key({ cmdmodkey }, "i", function () awful.util.spawn(terminal .. " -title irc -name irc -e env MOSH_TITLE_NOPREFIX=true mosh -- irc-host screen -dr irc") end), + awful.key({ cmdmodkey }, "x", function () awful.util.spawn_with_shell("/sbin/start-stop-daemon --start --background --exec /usr/bin/xscreensaver -- -no-capture-stderr -log ~/.tmp/xscreensaver.log; xscreensaver-command -lock") end), awful.key({ cmdmodkey, "Shift" }, "x", function () awful.util.spawn("xscreensaver-command -exit") end), awful.key(nil, "XF86ScreenSaver", function () awful.util.spawn("xset dpms force off") end) ) @@ -492,21 +510,18 @@ awful.rules.rules = { floating = true, keys = clientkeys, buttons = clientbuttons }, - callback = awful.placement.centered }, + callback = awful.placement.centered + }, { rule = { class = "URxvt" }, properties = { floating = false } }, { rule = { class = "URxvt", instance = "irc" }, properties = { floating = false, tag = tags[screen.count()][screen.count() == 1 and 2 or 1], switchtotag = true } }, - { rule = { class = "Iceweasel", instance = "Navigator" }, + { rule = { class = "Firefox", instance = "Navigator" }, + properties = { tag = tags[screen.count() == 3 and 1 or screen.count()][9], switchtotag = false, floating = false } }, + { rule = { class = "Icedove", instance = "Mail" }, + properties = { tag = tags[screen.count() == 3 and 1 or screen.count()][8], switchtotag = false, floating = false } }, + { rule = { class = "chromium" }, properties = { tag = tags[screen.count() == 3 and 1 or screen.count()][9], switchtotag = false, floating = false } }, --- { rule = { class = "Iceweasel", instance = "Dialog" }, --- properties = { floating = true } }, - { rule = { class = "Jpilot", instance = "jpilot" }, - properties = { tag = tags[screen.count() == 3 and 1 or screen.count()][8], switchtotag = true, floating = false } }, - -- { rule = { name = "OpenOffice.org" }, - -- properties = { switchtotag = true, floating = true, maximized_vertical = true, maximized_horizontal = true, callback = awful.placement.no_offscreen } }, - -- { rule = { name = "Okular" }, --- properties = { switchtotag = true, floating = true, maximized_vertical = true, maximized_horizontal = true, callback = awful.placement.no_offscreen } }, } -- }}} @@ -561,6 +576,27 @@ function hook_battery() end -- }}} +-- from https://blog.mister-muffin.de/2014/11/07/automatically-suspending-cpu-hungry-applications/ +client.add_signal("focus", function(c) + if c.class == "Firefox" or c.class == "chromium" or c.class == "Icedove" then + awful.util.spawn("kill -CONT " .. c.pid) + end +end) +local capi = { timer = timer } +client.add_signal("unfocus", function(c) + local timer_stop = capi.timer { timeout = 120 } + if c.class == "Firefox" or c.class == "chromium" or c.class == "Icedove" then + local send_sigstop = function () + timer_stop:stop() + if client.focus.pid ~= c.pid then + awful.util.spawn("kill -STOP " .. c.pid) + end + end + timer_stop:add_signal("timeout", send_sigstop) + timer_stop:start() + end +end) + -- {{{ Statusbar battery -- function get_acpibatt()