--- awesome 3 configuration file
-
--- Include awesome library, with lots of useful function!
+-- Include awesome libraries, with lots of useful function!
require("awful")
-require("tabulous")
require("beautiful")
-- {{{ Variable definitions
--- This is a file path to a theme file which will defines colors.
-theme_path = "/home/madduck/code/awesome/share/awesome/themes/default"
+-- Themes define colours, icons, and wallpapers
+-- The default is a dark theme
+theme_path = "/home/madduck/code/awesome/share/awesome/themes/default/theme"
+-- Uncommment this for a lighter theme
+-- theme_path = "/home/madduck/code/awesome/share/awesome/themes/sky/theme"
+
+-- Actually load theme
+beautiful.init(theme_path)
-- This is used later as the default terminal and editor to run.
terminal = "x-terminal-emulator"
"fairv",
"magnifier",
"max",
+ "fullscreen",
-- "spiral",
-- "dwindle",
"floating"
["GIMP"] = true,
["twinkle"] = true,
["Add-ons"] = true,
- ["Play stream"] = true
+ ["Play stream"] = true,
}
-- Applications that should never float, assuming everything else floats
-- (by instance)
tiledapps =
{
- ["urxvt"] = true
+ ["urxvt"] = true,
}
-- Applications that should be maximised
use_titlebar = false
-- }}}
--- {{{ Initialization
--- Initialize theme (colors).
-beautiful.init(theme_path)
-
--- Register theme in awful.
--- This allows to not pass plenty of arguments to each function
--- to inform it about colors we want it to draw.
-awful.beautiful.register(beautiful)
-
--- Uncomment this to activate autotabbing
--- tabulous.autotab_start()
--- }}}
-
-- {{{ Tags
-- Define tags table.
tags = {}
-- {{{ Wibox
-- Create a textbox widget
-mytextbox = widget({ type = "textbox", name = "mytextbox", align = "right" })
+mytextbox = widget({ type = "textbox", 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 }
+ { "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 }
-}
+mymainmenu = awful.menu.new({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
+ { "open terminal", terminal }
+ }
+ })
-mylauncher = awful.widget.launcher({ name = "mylauncher",
- image = "/home/madduck/code/awesome/share/awesome/icons/awesome16.png",
- menu = { id="mymainmenu", items=mymainmenu } })
+mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
+ menu = mymainmenu })
-- Create a systray
-mysystray = widget({ type = "systray", name = "mysystray", align = "right" })
+mysystray = widget({ type = "systray", align = "right" })
-- Create textbox widgets
mytimebox = widget({ type = "textbox", name = "mytimebox", align = "right" })
button({ }, 5, function () awful.client.focus.byidx(-1) end) }
for s = 1, screen.count() do
- mylayoutbox[s] = widget({ type = "imagebox", name = "mylayoutbox", align = "right" })
+ -- Create a promptbox for each screen
+ mypromptbox[s] = widget({ type = "textbox", align = "left" })
+ -- Create an imagebox widget which will contains an icon indicating which layout we're using.
+ -- We need one layoutbox per screen.
+ mylayoutbox[s] = widget({ type = "imagebox", 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),
-- {{{ Mouse bindings
awesome.buttons({
- button({ }, 3, function () awful.menu.new({ id="mymainmenu", items=mymainmenu }) end),
+ button({ }, 3, function () mymainmenu:toggle() end),
button({ }, 4, awful.tag.viewnext),
button({ }, 5, awful.tag.viewprev)
})
keybinding({ modkey, "Shift" }, "c", function () client.focus:kill() end):add()
keybinding({ modkey }, "j", function () awful.client.focus.byidx(1); client.focus:raise() end):add()
keybinding({ modkey }, "k", function () awful.client.focus.byidx(-1); client.focus:raise() end):add()
-keybinding({ modkey, "Shift" }, "j", function () awful.client.swap(1) end):add()
+keybinding({ modkey, "Shift" }, "j", function () awful.client.swap.byidx(1) end):add()
keybinding({ modkey, "Shift" }, "k", function () awful.client.swap(-1) end):add()
keybinding({ modkey, "Control" }, "j", function () awful.screen.focus(1) end):add()
keybinding({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end):add()
keybinding({ modkey, "Control" }, "space", awful.client.togglefloating):add()
-keybinding({ modkey, "Control" }, "Return", function () client.focus:swap(awful.client.master()) end):add()
+keybinding({ modkey, "Control" }, "Return", function () client.focus:swap(awful.client.getmaster()) end):add()
keybinding({ modkey }, "o", awful.client.movetoscreen):add()
keybinding({ modkey }, "Tab", awful.client.focus.history.previous):add()
keybinding({ modkey }, "u", awful.client.urgent.jumpto):add()
end):add()
--- Tabulous, tab manipulation
+require("tabulous")
keybinding({ modkey, "Control" }, "y", function ()
local tabbedview = tabulous.tabindex_get()
local nextclient = awful.client.next(1)
-- if they're not focusable, so set border anyway.
c.border_width = beautiful.border_width
c.border_color = beautiful.border_normal
- client.focus = c
-- Check if the application should be floating.
-- OVERRIDDEN, SEE tiledapps BELOW
awful.client.movetotag(tags[target.screen][target.tag], c)
end
+ -- Do this after tag mapping, so you don't see it on the wrong tag for a split second.
+ client.focus = c
+
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- awful.client.setslave(c)
awful.hooks.arrange.register(function (screen)
local layout = awful.layout.get(screen)
if layout then
- mylayoutbox[screen].image = image("/home/madduck/code/awesome/share/awesome/icons/layouts/" .. layout .. "w.png")
+ mylayoutbox[screen].image = image(beautiful["layout_" .. layout])
else
mylayoutbox[screen].image = nil
end
-- Uncomment if you want mouse warping
--[[
if client.focus then
- local c_c = client.focus:geometry()
+ local c_c = client.focus:fullgeometry()
local m_c = mouse.coords()
if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or