-- This is a file path to a theme file which will defines colors.
theme_path = "/home/madduck/code/awesome/share/awesome/themes/default"
--- This is used later as the default terminal to run.
+-- This is used later as the default terminal and editor to run.
terminal = "x-terminal-emulator"
+editor = "sensible-editor"
+editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
["Navigator"] = true,
-- jpilot is -v
["-v"] = true,
- ["Xpdf"] = true
+ ["Xpdf"] = true,
+ ["gscan2pdf"] = true
}
-- Applications to be moved to a pre-defined tag by class or instance.
-- }}}
-- {{{ Wibox
--- Create a taglist widget
-mytaglist = widget({ type = "taglist", name = "mytaglist" })
-mytaglist:buttons({
- button({ }, 1, function (object, tag) awful.tag.viewonly(tag) end),
- button({ modkey }, 1, function (object, tag) awful.client.movetotag(tag) end),
- button({ }, 3, function (object, tag) tag.selected = not tag.selected end),
- button({ modkey }, 3, function (object, tag) awful.client.toggletag(tag) end),
- button({ }, 4, awful.tag.viewnext),
- button({ }, 5, awful.tag.viewprev)
-})
-mytaglist.label = awful.widget.taglist.label.all
-
--- Create a tasklist widget
-mytasklist = widget({ type = "tasklist", name = "mytasklist" })
-mytasklist:buttons({
- button({ }, 1, function (object, c) client.focus = c; c:raise() end),
- button({ }, 4, function () awful.client.focusbyidx(1) end),
- button({ }, 5, function () awful.client.focusbyidx(-1) end)
-})
-mytasklist.label = awful.widget.tasklist.label.currenttags
-
-- Create a textbox widget
-mytimebox = widget({ type = "textbox", name = "mytimebox", align = "right" })
-mybatterybox = widget({ type = "textbox", name = "mybatterybox", align = "right" })
-mypromptbox = widget({ type = "textbox", name = "mypromptbox", align = "left" })
+mytextbox = widget({ type = "textbox", name = "mytextbox", align = "right" })
+-- Set the default text in textbox
+mytextbox.text = "<b><small> " .. AWESOME_RELEASE .. " </small></b>"
+
+-- Create a laucher widget and a main menu
+myawesomemenu = {
+ {"manual", terminal .. " -e man awesome" },
+ {"edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
+ {"restart", awesome.restart },
+ {"quit", awesome.quit }
+}
+
+mymainmenu = {
+ {"awesome", myawesomemenu, "/home/madduck/code/awesome/share/awesome/icons/awesome16.png" },
+ {"open terminal", terminal }
+}
--- Create a laucher widget
mylauncher = awful.widget.launcher({ name = "mylauncher",
image = "/home/madduck/code/awesome/share/awesome/icons/awesome16.png",
- command = terminal .. " -e man awesome"})
+ menu = { id="mymainmenu", items=mymainmenu } })
-- Create a systray
mysystray = widget({ type = "systray", name = "mysystray", align = "right" })
--- Create an iconbox widget which will contains an icon indicating which layout we're using.
--- We need one layoutbox per screen.
+-- Create textbox widgets
+mytimebox = widget({ type = "textbox", name = "mytimebox", align = "right" })
+mybatterybox = widget({ type = "textbox", name = "mybatterybox", align = "right" })
+
+-- Create a wibox for each screen and add it
+mywibox = {}
+mypromptbox = {}
mylayoutbox = {}
+mytaglist = {}
+mytaglist.buttons = { button({ }, 1, awful.tag.viewonly),
+ button({ modkey }, 1, awful.client.movetotag),
+ button({ }, 3, function (tag) tag.selected = not tag.selected end),
+ button({ modkey }, 3, awful.client.toggletag),
+ button({ }, 4, awful.tag.viewnext),
+ button({ }, 5, awful.tag.viewprev) }
+mytasklist = {}
+mytasklist.buttons = { button({ }, 1, function (c) client.focus = c; c:raise() end),
+ button({ }, 3, function () awful.menu.clients({ width=250 }) end),
+ button({ }, 4, function () awful.client.focus.byidx(1) end),
+ button({ }, 5, function () awful.client.focus.byidx(-1) end) }
+
for s = 1, screen.count() do
mylayoutbox[s] = widget({ type = "imagebox", name = "mylayoutbox", align = "right" })
- mylayoutbox[s]:buttons({
- button({ }, 1, function () awful.layout.inc(layouts, 1) end),
- button({ }, 3, function () awful.layout.inc(layouts, -1) end),
- button({ }, 4, function () awful.layout.inc(layouts, 1) end),
- button({ }, 5, function () awful.layout.inc(layouts, -1) end)
- })
- mylayoutbox[s].image = image("/home/madduck/code/awesome/share/awesome/icons/layouts/tilew.png")
+ mylayoutbox[s]:buttons({ button({ }, 1, function () awful.layout.inc(layouts, 1) end),
+ button({ }, 3, function () awful.layout.inc(layouts, -1) end),
+ button({ }, 4, function () awful.layout.inc(layouts, 1) end),
+ button({ }, 5, function () awful.layout.inc(layouts, -1) end) })
+ -- Create a taglist widget
+ mytaglist[s] = awful.widget.taglist.new(s, awful.widget.taglist.label.all, mytaglist.buttons)
+
+ -- Create a tasklist widget
+ mytasklist[s] = awful.widget.tasklist.new(function(c)
+ return awful.widget.tasklist.label.currenttags(c, s)
+ end, mytasklist.buttons)
+
+ -- Create the wibox
+ mywibox[s] = wibox({ position = "top", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
+ -- Add widgets to the wibox - order matters
+ mywibox[s].widgets = { mytaglist[s],
+ mytasklist[s],
+ mypromptbox[s],
+ mybatterybox,
+ mytimebox,
+ mylayoutbox[s],
+ s == screen.count() and mysystray or nil }
+ mywibox[s].screen = s
end
+-- }}}
--Battery widget
batterywidget = widget({ type = 'progressbar', name = 'batterywidget' })
})
-- }}}
--- Create a wibox for each screen and add it
-mywibox = {}
-for s = 1, screen.count() do
- mywibox[s] = wibox({ position = "top", name = "mywibox" .. s,
- fg = beautiful.fg_normal, bg = beautiful.bg_normal })
- -- Add widgets to the wibox - order matters
- mywibox[s]:widgets({
- mytaglist,
- mytasklist,
- mypromptbox,
--- batterywidget,
--- mybatterybox,
- mytimebox,
- mylayoutbox[s],
- s == screen.count() and mysystray or nil
- })
- mywibox[s].screen = s
-end
--- }}}
-- {{{ Mouse bindings
awesome.buttons({
- button({ }, 3, function () awful.util.spawn(terminal) end),
+ button({ }, 3, function () awful.menu.new({ id="mymainmenu", items=mymainmenu }) end),
button({ }, 4, awful.tag.viewnext),
button({ }, 5, awful.tag.viewprev)
})
keybinding({ modkey }, "Return", function () awful.util.spawn(terminal) end):add()
keybinding({ modkey, "Control" }, "r", function ()
- mypromptbox.text =
+ mypromptbox[mouse.screen].text =
awful.util.escape(awful.util.restart())
end):add()
keybinding({ modkey, "Shift" }, "q", awesome.quit):add()
-- Prompt
keybinding({ modkey }, "F1", function ()
- awful.prompt.run({ prompt = "Run: " }, mypromptbox, awful.util.spawn, awful.completion.bash,
-os.getenv("HOME") .. "/.cache/awesome/history") end):add()
+ awful.prompt.run({ prompt = "Run: " }, mypromptbox[mouse.screen], awful.util.spawn, awful.completion.bash,
+ awful.util.getdir("cache") .. "/history")
+ end):add()
keybinding({ modkey }, "F4", function ()
- awful.prompt.run({ prompt = "Run Lua code: " }, mypromptbox, awful.eval, awful.prompt.bash,
-os.getenv("HOME") .. "/.cache/awesome/history_eval") end):add()
+ awful.prompt.run({ prompt = "Run Lua code: " }, mypromptbox[mouse.screen], awful.util.eval, awful.prompt.bash,
+ awful.util.getdir("cache") .. "/history_eval")
+ end):add()
+
keybinding({ modkey, "Ctrl" }, "i", function ()
- if mypromptbox.text then
- mypromptbox.text = nil
+ local s = mouse.screen
+ if mypromptbox[s].text then
+ mypromptbox[s].text = nil
else
- mypromptbox.text = nil
+ mypromptbox[s].text = nil
if client.focus.class then
- mypromptbox.text = "Class: " .. client.focus.class .. " "
+ mypromptbox[s].text = "Class: " .. client.focus.class .. " "
end
if client.focus.instance then
- mypromptbox.text = mypromptbox.text .. "Instance: ".. client.focus.instance .. " "
+ mypromptbox[s].text = mypromptbox[s].text .. "Instance: ".. client.focus.instance .. " "
end
if client.focus.role then
- mypromptbox.text = mypromptbox.text .. "Role: ".. client.focus.role
+ mypromptbox[s].text = mypromptbox[s].text .. "Role: ".. client.focus.role
end
end
end):add()
c.border_color = beautiful.border_marked
end)
--- Hook function to execute when unmarking a client
+-- Hook function to execute when unmarking a client.
awful.hooks.unmarked.register(function (c)
c.border_color = beautiful.border_focus
end)
--- Hook function to execute when the mouse is over a client.
+-- Hook function to execute when the mouse enters a client.
awful.hooks.mouse_enter.register(function (c)
-- Sloppy focus, but disabled for magnifier layout
if awful.layout.get(c.screen) ~= "magnifier"
-- i.e. put it at the end of others instead of setting it master.
-- awful.client.setslave(c)
- -- Honor size hints: if you want to drop the gaps between windows, set this to false. | if maxapps[inst] or maxapps[cls] then
+ -- Honor size hints: if you want to drop the gaps between windows, set this to false.
c.honorsizehints = true
-- Maximise some
end
end)
--- Hook function to execute when arranging the screen
+-- Hook function to execute when arranging the screen.
-- (tag switch, new client, etc)
awful.hooks.arrange.register(function (screen)
local layout = awful.layout.get(screen)
-- Uncomment if you want mouse warping
--[[
if client.focus then
- local c_c = client.focus:coords()
+ local c_c = client.focus:geometry()
local m_c = mouse.coords()
if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
local s = f:read('*l')
f:close()
if not s then
- return laststring;
+ return '-';
end
-- Battery 0: Discharging, 89%, 00:02:14 remaining
elseif status == 'Discarching' then
status = 'd';
else
- status = '';
+ status = '-';
end
return percent; -- .. ' (' .. status .. ')'; -- .. ' ' .. time .. ' left';