From: martin f. krafft Date: Tue, 23 Sep 2008 13:00:57 +0000 (+0200) Subject: follow config changes X-Git-Url: https://git.madduck.net/etc/awesome.git/commitdiff_plain/45dc7447444a53737344b9a55c92bf9a935594c9 follow config changes --- diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 554ecbb..46f6d57 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -1,8 +1,5 @@ -- awesome 3 configuration file -AWESOME_DATADIR = "/home/madduck/code/awesome" -package.path = AWESOME_DATADIR .. "/lib/?.lua;" .. package.path - -- Include awesome library, with lots of useful function! require("awful") require("tabulous") @@ -10,7 +7,7 @@ require("beautiful") -- {{{ Variable definitions -- This is a file path to a theme file which will defines colors. -theme_path = AWESOME_DATADIR .. "/themes/default" +theme_path = "/home/madduck/code/awesome/share/awesome/themes/default" -- This is used later as the default terminal to run. terminal = "x-terminal-emulator" @@ -29,6 +26,8 @@ layouts = "tileleft", "tilebottom", "tiletop", + "fairh", + "fairv", "magnifier", "max", -- "spiral", @@ -103,7 +102,7 @@ for s = 1, screen.count() do tags[s] = {} -- Create 9 tags per screen. for tagnumber = 1, 9 do - tags[s][tagnumber] = tag({ name = tagnumber, layout = layouts[1] }) + tags[s][tagnumber] = tag({ name = tagnumber, layout = layouts[6] }) -- Add tags to screen one by one -- split at 0.5/50% exactly -- tags[s][tagnumber].mwfact = 0.5 @@ -117,19 +116,23 @@ end -- {{{ Statusbar -- Create a taglist widget mytaglist = widget({ type = "taglist", name = "mytaglist" }) -mytaglist:mouse_add(mouse({}, 1, function (object, tag) awful.tag.viewonly(tag) end)) -mytaglist:mouse_add(mouse({ modkey }, 1, function (object, tag) awful.client.movetotag(tag) end)) -mytaglist:mouse_add(mouse({}, 3, function (object, tag) tag.selected = not tag.selected end)) -mytaglist:mouse_add(mouse({ modkey }, 3, function (object, tag) awful.client.toggletag(tag) end)) -mytaglist:mouse_add(mouse({ }, 4, awful.tag.viewnext)) -mytaglist:mouse_add(mouse({ }, 5, awful.tag.viewprev)) +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:mouse_add(mouse({ }, 1, function (object, c) client.focus = c; c:raise() end)) -mytasklist:mouse_add(mouse({ }, 4, function () awful.client.focusbyidx(1) end)) -mytasklist:mouse_add(mouse({ }, 5, function () awful.client.focusbyidx(-1) end)) +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 @@ -137,9 +140,10 @@ mytimebox = widget({ type = "textbox", name = "mytimebox", align = "right" }) mybatterybox = widget({ type = "textbox", name = "mybatterybox", align = "right" }) mypromptbox = widget({ type = "textbox", name = "mypromptbox", align = "left" }) --- Create an iconbox widget -myiconbox = widget({ type = "textbox", name = "myiconbox", align = "left" }) -myiconbox.text = "" +-- 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"}) -- Create a systray mysystray = widget({ type = "systray", name = "mysystray", align = "right" }) @@ -148,12 +152,14 @@ mysystray = widget({ type = "systray", name = "mysystray", align = "right" }) -- We need one layoutbox per screen. mylayoutbox = {} for s = 1, screen.count() do - mylayoutbox[s] = widget({ type = "textbox", name = "mylayoutbox", align = "right" }) - mylayoutbox[s]:mouse_add(mouse({ }, 1, function () awful.layout.inc(layouts, 1) end)) - mylayoutbox[s]:mouse_add(mouse({ }, 3, function () awful.layout.inc(layouts, -1) end)) - mylayoutbox[s]:mouse_add(mouse({ }, 4, function () awful.layout.inc(layouts, 1) end)) - mylayoutbox[s]:mouse_add(mouse({ }, 5, function () awful.layout.inc(layouts, -1) end)) - mylayoutbox[s].text = "" + 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") end --Battery widget @@ -179,15 +185,15 @@ batterywidget:bar_properties_set('bat', { -- Create a statusbar for each screen and add it mystatusbar = {} for s = 1, screen.count() do - mystatusbar[s] = statusbar({ position = "top", name = "mystatusbar" .. s, - fg = beautiful.fg_normal, bg = beautiful.bg_normal }) + mystatusbar[s] = wibox({ position = "top", name = "mystatusbar" .. s, + fg = beautiful.fg_normal, bg = beautiful.bg_normal }) -- Add widgets to the statusbar - order matters mystatusbar[s]:widgets({ mytaglist, mytasklist, mypromptbox, -- batterywidget, - mybatterybox, +-- mybatterybox, mytimebox, mylayoutbox[s], s == screen.count() and mysystray or nil @@ -197,9 +203,11 @@ end -- }}} -- {{{ Mouse bindings -awesome.mouse_add(mouse({ }, 3, function () awful.spawn(terminal) end)) -awesome.mouse_add(mouse({ }, 4, awful.tag.viewnext)) -awesome.mouse_add(mouse({ }, 5, awful.tag.viewprev)) +awesome.buttons({ + button({ }, 3, function () awful.spawn(terminal) end), + button({ }, 4, awful.tag.viewnext), + button({ }, 5, awful.tag.viewprev) +}) -- }}} -- {{{ Key bindings @@ -228,19 +236,17 @@ for i = 1, keynumber do end):add() keybinding({ modkey, "Shift" }, i, function () - local sel = client.focus - if sel then - if tags[sel.screen][i] then - awful.client.movetotag(tags[sel.screen][i]) + if client.focus then + if tags[client.focus.screen][i] then + awful.client.movetotag(tags[client.focus.screen][i]) end end end):add() keybinding({ modkey, "Control", "Shift" }, i, function () - local sel = client.focus - if sel then - if tags[sel.screen][i] then - awful.client.toggletag(tags[sel.screen][i]) + if client.focus then + if tags[client.focus.screen][i] then + awful.client.toggletag(tags[client.focus.screen][i]) end end end):add() @@ -258,6 +264,7 @@ keybinding({ modkey, "Shift" }, "q", awesome.quit):add() -- Client manipulation keybinding({ modkey }, "m", awful.client.maximize):add() +keybinding({ modkey }, "f", function () client.focus.fullscreen = not client.focus.fullscreen end):add() keybinding({ modkey, "Shift" }, "c", function () client.focus:kill() end):add() keybinding({ modkey }, "j", function () awful.client.focusbyidx(1); client.focus:raise() end):add() keybinding({ modkey }, "k", function () awful.client.focusbyidx(-1); client.focus:raise() end):add() @@ -368,49 +375,50 @@ end -- {{{ Hooks -- Hook function to execute when focusing a client. -function hook_focus(c) +awful.hooks.focus.register(function (c) if not awful.client.ismarked(c) then c.border_color = beautiful.border_focus end -end +end) -- Hook function to execute when unfocusing a client. -function hook_unfocus(c) +awful.hooks.unfocus.register(function (c) if not awful.client.ismarked(c) then c.border_color = beautiful.border_normal end -end +end) -- Hook function to execute when marking a client -function hook_marked(c) +awful.hooks.marked.register(function (c) c.border_color = beautiful.border_marked -end +end) -- Hook function to execute when unmarking a client -function hook_unmarked(c) +awful.hooks.unmarked.register(function (c) c.border_color = beautiful.border_focus -end +end) -- Hook function to execute when the mouse is over a client. -function hook_mouseover(c) +awful.hooks.mouse_over.register(function (c) -- Sloppy focus, but disabled for magnifier layout - if awful.layout.get(c.screen) ~= "magnifier" then + if awful.layout.get(c.screen) ~= "magnifier" + and awful.client.focus.filter(c) then client.focus = c end -end +end) -- Hook function to execute when a new client appears. -function hook_manage(c) - -- Set floating placement to be smart! - c.floating_placement = "smart" +awful.hooks.manage.register(function (c) if use_titlebar then -- Add a titlebar awful.titlebar.add(c, { modkey = modkey }) end -- Add mouse bindings - c:mouse_add(mouse({ }, 1, function (c) client.focus = c; c:raise() end)) - c:mouse_add(mouse({ modkey }, 1, function (c) c:mouse_move() end)) - c:mouse_add(mouse({ modkey }, 3, function (c) c:mouse_resize() end)) + c:buttons({ + button({ }, 1, function (c) client.focus = c; c:raise() end), + button({ modkey }, 1, function (c) c:mouse_move() end), + button({ modkey }, 3, function (c) c:mouse_resize() end) + }) -- New client may not receive focus -- if they're not focusable, so set border anyway. c.border_width = beautiful.border_width @@ -442,27 +450,31 @@ function hook_manage(c) awful.client.movetotag(tags[target.screen][target.tag], c) end - -- Honor size hints + -- Set the windows at the slave, + -- 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 c.honorsizehints = true -- Maximise some if maxapps[inst] or maxapps[cls] then awful.client.maximize(c) end -end +end) -- Hook function to execute when arranging the screen -- (tag switch, new client, etc) -function hook_arrange(screen) +awful.hooks.arrange.register(function (screen) local layout = awful.layout.get(screen) if layout then - mylayoutbox[screen].text = - "" - else - mylayoutbox[screen].text = "No layout." + mylayoutbox[screen].image = image("/home/madduck/code/awesome/share/awesome/icons/layouts/" .. layout .. "w.png") + else + mylayoutbox[screen].image = nil end - -- If no window has focus, give focus to the latest in history + -- Give focus to the latest client in history if no window has focus + -- or if the current window is a desktop or a dock one. if not client.focus then local c = awful.client.focus.history.get(screen, 0) if c then client.focus = c end @@ -470,9 +482,8 @@ function hook_arrange(screen) -- Uncomment if you want mouse warping --[[ - local sel = client.focus - if sel then - local c_c = sel:coords() + if client.focus then + local c_c = client.focus:coords() local m_c = mouse.coords() if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or @@ -483,15 +494,15 @@ function hook_arrange(screen) end end ]] -end +end) -- Hook called every second -function hook_timer() +awful.hooks.timer.register(1, function () -- For unix time_t lovers -- mytextbox.text = " " .. os.time() .. " time_t " -- Otherwise use: mytimebox.text = " " .. os.date() .. " " -end +end) -- Hook called every sixty seconds function hook_battery() @@ -558,14 +569,6 @@ end --}}} -- Set up some hooks -awful.hooks.focus.register(hook_focus) -awful.hooks.unfocus.register(hook_unfocus) -awful.hooks.marked.register(hook_marked) -awful.hooks.unmarked.register(hook_unmarked) -awful.hooks.manage.register(hook_manage) -awful.hooks.mouseover.register(hook_mouseover) -awful.hooks.arrange.register(hook_arrange) -awful.hooks.timer.register(1, hook_timer) awful.hooks.timer.register(120, hook_battery) -- awful.hooks.timer.register(5, get_bat) -- }}}