X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/70682265eda854a82910047741924aa242b1789d..02e533f0246bf670c8bb5cc14f78df14a53533fe:/.config/awesome/rc.lua?ds=inline diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index f3ce0bd..c6f2149 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -7,7 +7,12 @@ require("beautiful") -- Notification library require("naughty") -require("vicious") +--require("vicious") + +require("obvious.battery") +require("obvious.clock") + +--require("bashets.bashets") -- Load Debian menu entries require("debian.menu") @@ -19,11 +24,13 @@ theme_path = "/usr/share/awesome/themes/default/theme.lua" -- Uncommment this for a lighter theme -- theme_path = "/usr/share/awesome/themes/sky/theme.lua" +wallpaper_cmd = { "awsetbg -t .config/awesome/bgstripes.png" } + -- Actually load theme beautiful.init(theme_path) -- This is used later as the default terminal and editor to run. -terminal = "urxvtc" +terminal = "x-terminal-emulator" editor = os.getenv("EDITOR") or "editor" editor_cmd = terminal .. " -e " .. editor @@ -126,7 +133,7 @@ for s = 1, screen.count() do tags[s][1].selected = true end -if screen.count() > 1 then +if screen.count() == 3 then tags[1][1].selected = false tags[1][9].selected = true end @@ -283,7 +290,8 @@ for s = 1, screen.count() do spacer, mytextclock, spacer, separator, spacer, - mybatterybox, + obvious.battery.widget, +-- mybatterybox, -- batterywidget, -- spacer, separator, spacer, -- cpuwidget.widget, @@ -365,7 +373,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(3) end), + awful.key({ modkey }, "F2", function () awful.screen.focus(1) end), + awful.key({ modkey }, "F3", function () awful.screen.focus(2) end), + awful.key({ modkey }, "F1", function () awful.client.movetoscreen(c, 3) end), + awful.key({ modkey }, "F2", function () awful.client.movetoscreen(c, 1) end), + awful.key({ modkey }, "F3", function () awful.client.movetoscreen(c, 2) end) ) clientkeys = awful.util.table.join( @@ -373,14 +387,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", awful.client.togglemarked ), + 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) ) @@ -432,23 +459,25 @@ 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 }, "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 }, "Left", function () awful.util.spawn("xmms2 prev") end), - awful.key({ cmdmodkey }, "Right", function () awful.util.spawn("xmms2 next") end), - awful.key({ cmdmodkey }, "space", function () awful.util.spawn("xmms2 toggleplay") 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('xmms2 current', 'r') - naughty.notify({ title = "Now playing", text = f:read(), timeout = 5 }) + local f = io.popen('nyxmms2 current', 'r') + 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 () - local f = io.popen('xmms2 list', 'r') - naughty.notify({ title = "Playlist", text = f:read(), timeout = 15 }) + local f = io.popen('nyxmms2 list', 'r') + naughty.notify({ title = "Playlist", text = f:read("*a"), timeout = 15 }) f:close() end) ) @@ -458,11 +487,14 @@ globalkeys = awful.util.table.join(globalkeys, awful.key({ cmdmodkey }, "n", function () awful.util.spawn("sensible-browser") end), 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 }, "c", function () awful.util.spawn(terminal .. " -e python") end), + awful.key({ cmdmodkey }, "y", function () awful.util.spawn(terminal .. " -e python") end), + awful.key({ cmdmodkey }, "c", function () awful.util.spawn("icedove") end), awful.key({ cmdmodkey }, "r", function () mypromptbox[mouse.screen]:run() end), - awful.key({ cmdmodkey }, "j", function () awful.util.spawn("jpilot") end), - awful.key({ cmdmodkey }, "i", function () awful.util.spawn(terminal .. " -name irc -e ssh -t vera 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 }, "g", function () awful.util.spawn("gscan2pdf") 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 -- 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 -- -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) ) @@ -472,39 +504,6 @@ root.keys(globalkeys) -- }}} -- {{{ Rules -awful.rules.rules = { - -- All clients will match this rule. - { rule = { }, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - focus = true, - keys = clientkeys, - buttons = clientbuttons } }, - { rule = { class = "MPlayer" }, - properties = { floating = true } }, - { rule = { class = "pinentry" }, - properties = { floating = true } }, - { rule = { class = "gimp" }, - properties = { floating = true } }, - { rule = { class = "twinkle" }, - properties = { floating = true } }, - { rule = { class = "Play stream" }, - properties = { floating = true } }, - { rule = { class = "gscan2pdf" }, - properties = { floating = true } }, - { rule = { class = "Gxmessage" }, - properties = { floating = true } }, - { rule = { class = "Add-ons" }, - properties = { floating = true } }, - { rule = { class = "Okular" }, - properties = { maximised = true } }, - { rule = { class = "Iceweasel" }, - properties = { tag = tags[1][9], switchtotag = false } }, - { rule = { class = "Iceweasel", role = "Dialog" }, - properties = { floating = true } }, - { rule = { class = "Jpilot" }, - properties = { tag = screen.count()>1 and tags[3][2] or tags[1][8], switchtotag = false } }, -} awful.rules.rules = { -- All clients will match this rule. { rule = { }, @@ -513,25 +512,17 @@ awful.rules.rules = { focus = true, floating = true, keys = clientkeys, - buttons = clientbuttons } }, + buttons = clientbuttons }, + callback = awful.placement.centered + }, { rule = { class = "URxvt" }, properties = { floating = false } }, { rule = { class = "URxvt", instance = "irc" }, - properties = { tag = screen.count()>1 and tags[3][1] or tags[1][4], switchtotag = true, floating = false } }, - { rule = { class = "Okular" }, - properties = { tag = tags[1][7], switchtotag = true, floating = false } }, - { rule = { class = "Evince" }, - properties = { tag = tags[1][7], switchtotag = true, floating = false } }, - { rule = { class = "OpenOffice.org 3.1" }, - properties = { tag = tags[1][7], switchtotag = true, floating = false } }, - { rule = { class = "Vinagre" }, - properties = { tag = tags[1][6], switchtotag = false, floating = false } }, - { rule = { class = "Iceweasel" }, - properties = { tag = tags[1][9], switchtotag = false, floating = false } }, - { rule = { class = "Iceweasel", instance = "Dialog" }, - properties = { floating = true } }, - { rule = { class = "Jpilot" }, - properties = { tag = tags[1][8], switchtotag = false, floating = false } }, + properties = { floating = false, tag = tags[screen.count()][screen.count() == 1 and 2 or 1], switchtotag = true } }, + { rule = { class = "Iceweasel", 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 } }, } -- }}} @@ -562,11 +553,24 @@ client.add_signal("manage", function (c, startup) awful.placement.no_offscreen(c) end end + c.size_hints_honor = false end) client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) +function clear_urgency_flag(c) + print("property::urgent received for client: ", c) + io.flush () +-- if c.urgent then +-- c.urgent = false +-- end +end + +client.add_signal("new", function (c) + c:add_signal("property::urgent", clear_urgency_flag) +end) + -- Hook called every sixty seconds function hook_battery() mybatterybox.text = " " .. get_acpibatt() .. " " @@ -610,26 +614,10 @@ function get_acpibatt() return ''; end end -t = timer({ timeout = 20 }) -t:add_signal('timeout', hook_battery) -t:start() -hook_battery() +--t = timer({ timeout = 20 }) +--t:add_signal('timeout', hook_battery) +--t:start() +--hook_battery() +--bashets.register_lua(mybatterybox, get_acpibatt, '%1', 30) +--bashets.start() -- }}} - ---{{{ batt hook -local function get_bat() - local a = io.open("/sys/class/power_supply/BAT1/charge_full") - for line in a:lines() do - full = line - end - a:close() - local b = io.open("/sys/class/power_supply/BAT1/charge_now") - for line in b:lines() do - now = line - end - b:close() - batt=math.floor(now*100/full) - batterywidget:bar_data_add("bat",batt ) -end --- awful.hooks.timer.register(5, get_bat) ---}}}