X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/0a2ce2f67bb99ea4dba2283c0d6d62b9071f26e6..01e8bae5bdc4719c23fbd479814c35dddff5fbab:/.config/awesome/rc.lua?ds=sidebyside diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 19572b8..4f9fe01 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -1,3 +1,4 @@ +-- {{{ Imports -- Standard awesome library local gears = require("gears") local awful = require("awful") @@ -10,6 +11,7 @@ local beautiful = require("beautiful") local naughty = require("naughty") local menubar = require("menubar") local hotkeys_popup = require("awful.hotkeys_popup").widget +-- }}} -- {{{ Error handling -- Check if awesome encountered an error during startup and fell back to @@ -91,6 +93,33 @@ local function client_menu_toggle_fn() end end end + +local function sorted_pairs(t, f) + local a = {} + for n in pairs(t) do table.insert(a, n) end + table.sort(a, f) + local i = 0 -- iterator variable + local iter = function () -- iterator function + i = i + 1 + if a[i] == nil then return nil + else return a[i], t[a[i]] + end + end + return iter +end + +local function print_table(tbl, indent) + if not indent then indent = 0 end + for k, v in pairs(tbl) do + formatting = string.rep(" ", indent) .. k .. ": " + if type(v) == "table" then + print(formatting) + print_table(v, indent+1) + else + print(formatting .. tostring(v)) + end + end +end -- }}} -- {{{ Menu @@ -110,17 +139,18 @@ mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesom mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, menu = mymainmenu }) +-- }}} --- Menubar configuration +-- {{{ Menubar configuration menubar.utils.terminal = terminal -- Set the terminal for applications that require it -- }}} --- Keyboard map indicator and switcher -mykeyboardlayout = awful.widget.keyboardlayout() - -- {{{ Wibox -- Create a textclock widget -mytextclock = wibox.widget.textclock() +mytextclock = wibox.widget.textclock("%a %d %b %H:%M:%S", 1) + +-- Keyboard map indicator and switcher +mykeyboardlayout = awful.widget.keyboardlayout() -- Create a wibox for each screen and add it mywibox = {} @@ -169,24 +199,62 @@ mytasklist.buttons = awful.util.table.join( awful.button({ }, 5, function () awful.client.focus.byidx(-1) end)) +-- }}} + +-- {{{ Tags +tags = {} +tags.config = {} +tags.config["main"] = { + t1 = { layout = layout_default, selected = true }, + t2 = { layout = layout_default }, + t3 = { layout = layout_tiled }, + t4 = { layout = layout_tiled }, + t5 = { layout = layout_tiled }, + t6 = { layout = layout_floating }, + t7 = { layout = layout_maximised }, + t8 = { layout = layout_maximised }, + t9 = { layout = layout_maximised }, +} +tags.config["aux"] = { + t1 = { layout = layout_default, selected = true }, + t2 = { layout = layout_default }, + t3 = { layout = layout_tiled }, + t4 = { layout = layout_floating }, + t5 = { layout = layout_floating }, + t6 = { layout = layout_floating }, + t7 = { layout = layout_floating }, + t8 = { layout = layout_floating }, + t9 = { layout = layout_maximised }, +} + +screentags = {} +screentags[1] = tags.config["main"] +if screen.count() == 2 then -- aux screen is on the right + screentags[2] = tags.config["aux"] +elseif screen.count() == 3 then -- main screen is still #1 in the middle + screentags[2] = tags.config["aux"] + screentags[3] = tags.config["aux"] +end awful.screen.connect_for_each_screen(function(s) -- Wallpaper - if beautiful.wallpaper then - local wallpaper = beautiful.wallpaper - -- If wallpaper is a function, call it with the screen - if type(wallpaper) == "function" then - wallpaper = wallpaper(s) - end - gears.wallpaper.maximized(wallpaper, s, true) + --DISABLED--if beautiful.wallpaper then + --DISABLED-- local wallpaper = beautiful.wallpaper + --DISABLED-- -- If wallpaper is a function, call it with the screen + --DISABLED-- if type(wallpaper) == "function" then + --DISABLED-- wallpaper = wallpaper(s) + --DISABLED-- end + --DISABLED-- gears.wallpaper.maximized(wallpaper, s, true) + --DISABLED--end + + if not tags[s.index] then + tags[s.index] = {} + end + for n,p in sorted_pairs(screentags[s.index]) do + p["screen"] = s + n = string.sub(n, 2) -- remove leading 't' needed for syntax in table + table.insert(tags[s.index], awful.tag.add(n, p)) end - - -- Each screen has its own tag table. - tags = awful.tag.new({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, layout_default) - tags[7].layout = layout_maximised - tags[8].layout = layout_maximised - tags[9].layout = layout_maximised - tags[1].selected = true -- Create a promptbox for each screen mypromptbox[s] = awful.widget.prompt() @@ -212,7 +280,7 @@ awful.screen.connect_for_each_screen(function(s) layout = wibox.layout.align.horizontal, { -- Left widgets layout = wibox.layout.fixed.horizontal, - mylauncher, + -- mylauncher, mytaglist[s], mypromptbox[s], }, @@ -434,6 +502,7 @@ awful.rules.rules = { properties = { border_width = beautiful.border_width, border_color = beautiful.border_normal, focus = awful.client.focus.filter, + size_hints_honor = false, raise = true, keys = clientkeys, buttons = clientbuttons, @@ -469,7 +538,7 @@ awful.rules.rules = { -- Add titlebars to normal clients and dialogs { rule_any = {type = { "normal", "dialog" } - }, properties = { titlebars_enabled = true } + }, properties = { titlebars_enabled = false } }, -- Set Firefox to always map on the tag named "2" on screen 1.