-- Notification library
require("naughty")
-require("vicious")
+--require("vicious")
+
+require("obvious.battery")
+require("obvious.clock")
+
+--require("bashets.bashets")
-- Load Debian menu entries
require("debian.menu")
-- 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
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
spacer,
mytextclock,
spacer, separator, spacer,
- mybatterybox,
+ obvious.battery.widget,
+-- mybatterybox,
-- batterywidget,
-- spacer, separator, spacer,
-- cpuwidget.widget,
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(
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)
)
-- 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)
)
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)
)
-- }}}
-- {{{ 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 = { },
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 } },
}
-- }}}
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() .. " "
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)
---}}}