diff --git a/lain b/lain index 83b96b3..555b872 160000 --- a/lain +++ b/lain @@ -1 +1 @@ -Subproject commit 83b96b3c3ada021e47d6ef1ad48c03710f0dc24a +Subproject commit 555b872d16393774089df3b3453000571a73a3dd diff --git a/rc.lua.template b/rc.lua.template index 9d6ceac..752a125 100644 --- a/rc.lua.template +++ b/rc.lua.template @@ -7,6 +7,9 @@ --]] -- {{{ Required libraries +local awesome, client, screen = awesome, client, screen +local string, os, tostring, tonumber, type = string, os, tostring, tonumber, type + local gears = require("gears") local awful = require("awful") require("awful.autofocus") @@ -40,7 +43,7 @@ do end -- }}} --- {{{ Autostart applications +-- {{{ Autostart windowless processes local function run_once(cmd) findme = cmd firstspace = cmd:find(" ") @@ -58,10 +61,10 @@ run_once("unclutter -root") local chosen_theme = "multicolor" local modkey = "Mod4" local altkey = "Mod1" -local editor = os.getenv("EDITOR") or "nano" or "vi" local terminal = "urxvtc" or "xterm" -local browser = "firefox" +local editor = os.getenv("EDITOR") or "nano" or "vi" local gui_editor = "gvim" +local browser = "firefox" local graphics = "gimp" awful.util.terminal = terminal @@ -83,7 +86,64 @@ awful.layout.layouts = { -- awful.layout.suit.corner.ne, -- awful.layout.suit.corner.sw, -- awful.layout.suit.corner.se, + -- lain.layout.cascade, + -- lain.layout.cascade.tile, + -- lain.layout.centerwork, + -- lain.layout.centerwork.horizontal, + -- lain.layout.termfair, + -- lain.layout.termfair.center, } +awful.util.taglist_buttons = awful.util.table.join( + awful.button({ }, 1, function(t) t:view_only() end), + awful.button({ modkey }, 1, function(t) + if client.focus then + client.focus:move_to_tag(t) + end + end), + awful.button({ }, 3, awful.tag.viewtoggle), + awful.button({ modkey }, 3, function(t) + if client.focus then + client.focus:toggle_tag(t) + end + end), + awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), + awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) + ) +awful.util.tasklist_buttons = awful.util.table.join( + awful.button({ }, 1, function (c) + if c == client.focus then + c.minimized = true + else + -- Without this, the following + -- :isvisible() makes no sense + c.minimized = false + if not c:isvisible() and c.first_tag then + c.first_tag:view_only() + end + -- This will also un-minimize + -- the client, if needed + client.focus = c + c:raise() + end + end), + awful.button({ }, 3, function() + local instance = nil + + return function () + if instance and instance.wibox.visible then + instance:hide() + instance = nil + else + instance = awful.menu.clients({ theme = { width = 250 } }) + end + end + end), + awful.button({ }, 4, function () + awful.client.focus.byidx(1) + end), + awful.button({ }, 5, function () + awful.client.focus.byidx(-1) + end)) lain.layout.termfair.nmaster = 3 lain.layout.termfair.ncol = 1 @@ -114,7 +174,7 @@ local mymainmenu = freedesktop.menu.build({ --menubar.utils.terminal = terminal -- Set the Menubar terminal for applications that require it -- }}} --- {{{ Wibox +-- {{{ Screen -- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) screen.connect_signal("property::geometry", function(s) -- Wallpaper @@ -488,8 +548,7 @@ awful.rules.rules = { properties = { screen = 1, tag = screen[1].tags[1] } }, { rule = { class = "Gimp", role = "gimp-image-window" }, - properties = { maximized_horizontal = true, - maximized_vertical = true } }, + properties = { maximized = true } }, } -- }}} diff --git a/themes/multicolor/theme.lua b/themes/multicolor/theme.lua index 8bdffd2..711541b 100644 --- a/themes/multicolor/theme.lua +++ b/themes/multicolor/theme.lua @@ -11,8 +11,7 @@ local gears = require("gears") local lain = require("lain") local awful = require("awful") local wibox = require("wibox") -local os = { getenv = os.getenv, - setlocale = os.setlocale } +local os = { getenv = os.getenv, setlocale = os.setlocale } local theme = {} theme.confdir = os.getenv("HOME") .. "/.config/awesome/themes/multicolor" @@ -92,8 +91,6 @@ theme.titlebar_maximized_button_focus_inactive = theme.confdir .. "/icons/title theme.titlebar_maximized_button_normal_active = theme.confdir .. "/icons/titlebar/maximized_normal_active.png" theme.titlebar_maximized_button_focus_active = theme.confdir .. "/icons/titlebar/maximized_focus_active.png" ---{{{ Widgets and wibar - local markup = lain.util.markup -- Textclock @@ -251,59 +248,6 @@ theme.mpd = lain.widgets.mpd({ }) -- Create a wibox for each screen and add it -local taglist_buttons = awful.util.table.join( - awful.button({ }, 1, function(t) t:view_only() end), - awful.button({ modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), - awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) - ) - -local tasklist_buttons = awful.util.table.join( - awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - -- Without this, the following - -- :isvisible() makes no sense - c.minimized = false - if not c:isvisible() and c.first_tag then - c.first_tag:view_only() - end - -- This will also un-minimize - -- the client, if needed - client.focus = c - c:raise() - end - end), - awful.button({ }, 3, function() - local instance = nil - - return function () - if instance and instance.wibox.visible then - instance:hide() - instance = nil - else - instance = awful.menu.clients({ theme = { width = 250 } }) - end - end - end), - awful.button({ }, 4, function () - awful.client.focus.byidx(1) - end), - awful.button({ }, 5, function () - awful.client.focus.byidx(-1) - end)) - awful.screen.connect_for_each_screen(function(s) -- Quake application s.quake = lain.util.quake({ app = awful.util.terminal }) @@ -334,7 +278,7 @@ awful.screen.connect_for_each_screen(function(s) s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, tasklist_buttons) -- Create the wibox - s.mywibox = awful.wibar({ position = "top", screen = s, height = 20 }) + s.mywibox = awful.wibar({ position = "top", screen = s, height = 20, bg = theme.bg_normal, fg = theme.fg_normal }) -- Add widgets to the wibox s.mywibox:setup { @@ -378,7 +322,7 @@ awful.screen.connect_for_each_screen(function(s) } -- Create the bottom wibox - s.mybottomwibox = awful.wibar({ position = "bottom", screen = s, border_width = 0, height = 20 }) + s.mybottomwibox = awful.wibar({ position = "bottom", screen = s, border_width = 0, height = 20, bg = theme.bg_normal, fg = theme.fg_normal }) -- Add widgets to the bottom wibox s.mybottomwibox:setup { diff --git a/themes/powerarrow-darker/icons/centerfair.png b/themes/powerarrow-darker/icons/centerfair.png new file mode 100644 index 0000000..c4f64b0 Binary files /dev/null and b/themes/powerarrow-darker/icons/centerfair.png differ diff --git a/themes/powerarrow-darker/icons/centerwork.png b/themes/powerarrow-darker/icons/centerwork.png new file mode 100644 index 0000000..9071516 Binary files /dev/null and b/themes/powerarrow-darker/icons/centerwork.png differ diff --git a/themes/powerarrow-darker/icons/centerworkh.png b/themes/powerarrow-darker/icons/centerworkh.png new file mode 100644 index 0000000..b1d1379 Binary files /dev/null and b/themes/powerarrow-darker/icons/centerworkh.png differ diff --git a/themes/powerarrow-darker/icons/termfair.png b/themes/powerarrow-darker/icons/termfair.png new file mode 100644 index 0000000..3e06023 Binary files /dev/null and b/themes/powerarrow-darker/icons/termfair.png differ diff --git a/themes/powerarrow-darker/theme.lua b/themes/powerarrow-darker/theme.lua index 89cc98b..a9f52bc 100644 --- a/themes/powerarrow-darker/theme.lua +++ b/themes/powerarrow-darker/theme.lua @@ -1,9 +1,9 @@ --[[ - - Powerarrow Darker Awesome WM config 2.0 - github.com/copycat-killer - + + Powerarrow Darker Awesome WM theme 2.0 + github.com/copycat-killer + --]] local gears = require("gears") @@ -11,12 +11,10 @@ local lain = require("lain") local awful = require("awful") local wibox = require("wibox") local os = { getenv = os.getenv } - -local theme = {} +local theme = {} theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/powerarrow-darker" theme.wallpaper = theme.dir .. "/wall.png" - theme.font = "Terminus 9" theme.fg_normal = "#DDDDFF" theme.fg_focus = "#EA6F81" @@ -32,11 +30,9 @@ theme.tasklist_bg_focus = "#1A1A1A" theme.titlebar_bg_focus = theme.bg_focus theme.titlebar_bg_normal = theme.bg_normal theme.titlebar_fg_focus = theme.fg_focus - theme.menu_height = 16 theme.menu_width = 140 theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" - theme.taglist_squares_sel = theme.dir .. "/icons/square_sel.png" theme.taglist_squares_unsel = theme.dir .. "/icons/square_unsel.png" theme.layout_tile = theme.dir .. "/icons/tile.png" @@ -69,12 +65,9 @@ theme.widget_vol_no = theme.dir .. "/icons/vol_no.pn theme.widget_vol_mute = theme.dir .. "/icons/vol_mute.png" theme.widget_mail = theme.dir .. "/icons/mail.png" theme.widget_mail_on = theme.dir .. "/icons/mail_on.png" - theme.tasklist_plain_task_name = true theme.tasklist_disable_icon = true - theme.useless_gap = 0 - theme.titlebar_close_button_focus = theme.dir .. "/icons/titlebar/close_focus.png" theme.titlebar_close_button_normal = theme.dir .. "/icons/titlebar/close_normal.png" theme.titlebar_ontop_button_focus_active = theme.dir .. "/icons/titlebar/ontop_focus_active.png" @@ -94,12 +87,11 @@ theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/ theme.titlebar_maximized_button_focus_inactive = theme.dir .. "/icons/titlebar/maximized_focus_inactive.png" theme.titlebar_maximized_button_normal_inactive = theme.dir .. "/icons/titlebar/maximized_normal_inactive.png" --- {{{ Wibox local markup = lain.util.markup local separators = lain.util.separators +-- Textclock local clockicon = wibox.widget.imagebox(theme.widget_clock) ---local mytextclock = wibox.widget.textclock(" %a %d %b %H:%M") local clock = lain.widgets.abase({ timeout = 60, cmd = " date +'%a %d %b %R'", @@ -108,13 +100,13 @@ local clock = lain.widgets.abase({ end }) --- calendar -lain.widgets.calendar.attach(mytextclock, { +-- Calendar +lain.widgets.calendar.attach(clock.widget, { notification_preset = { font = "Terminus 10", fg = theme.fg_normal, bg = theme.bg_normal - } + } }) -- Mail IMAP check @@ -252,57 +244,18 @@ local arrl_dl = separators.arrow_left(theme.bg_focus, "alpha") local arrl_ld = separators.arrow_left("alpha", theme.bg_focus) -- Create a wibox for each screen and add it -local taglist_buttons = awful.util.table.join( - awful.button({ }, 1, function(t) t:view_only() end), - awful.button({ modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end), - awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end) - ) - -local tasklist_buttons = awful.util.table.join( - awful.button({ }, 1, function (c) - if c == client.focus then - c.minimized = true - else - -- Without this, the following - -- :isvisible() makes no sense - c.minimized = false - if not c:isvisible() and c.first_tag then - c.first_tag:view_only() - end - -- This will also un-minimize - -- the client, if needed - client.focus = c - c:raise() - end - end), - awful.button({ }, 3, client_menu_toggle_fn()), - awful.button({ }, 4, function () - awful.client.focus.byidx(1) - end), - awful.button({ }, 5, function () - awful.client.focus.byidx(-1) - end)) - awful.screen.connect_for_each_screen(function(s) -- Quake application - s.quake = lain.util.quake({ app = terminal }) + s.quake = lain.util.quake({ app = awful.util.terminal }) - -- Wallpaper - set_wallpaper(s) + -- If wallpaper is a function, call it with the screen + if type(wallpaper) == "function" then + theme.wallpaper = theme.wallpaper(s) + end + gears.wallpaper.maximized(theme.wallpaper, s, true) -- Tags - awful.tag(tagnames, s, awful.layout.layouts) + awful.tag(awful.util.tagnames, s, awful.layout.layouts) -- Create a promptbox for each screen s.mypromptbox = awful.widget.prompt() @@ -321,7 +274,7 @@ awful.screen.connect_for_each_screen(function(s) s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, tasklist_buttons) -- Create the wibox - s.mywibox = awful.wibar({ position = "top", screen = s, height = 18 }) + s.mywibox = awful.wibar({ position = "top", screen = s, height = 18, bg = theme.bg_normal, fg = theme.fg_normal }) -- Add widgets to the wibox s.mywibox:setup { @@ -367,7 +320,6 @@ awful.screen.connect_for_each_screen(function(s) wibox.container.background(net.widget, theme.bg_focus), arrl_dl, clock.widget, - --mytextclock, spr, arrl_ld, wibox.container.background(s.mylayoutbox, theme.bg_focus),