diff --git a/.gitmodules b/.gitmodules index 2852cea..5bc7f34 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ -[submodule "awesome/.config/awesome/battery-widget"] - path = awesome/.config/awesome/battery-widget - url = https://github.com/deficient/battery-widget +[submodule "awesome/.config/awesome/lain"] + path = awesome/.config/awesome/lain + url = https://github.com/lcpz/lain +[submodule "awesome/.config/awesome/freedesktop"] + path = awesome/.config/awesome/freedesktop + url = https://github.com/lcpz/awesome-freedesktop diff --git a/awesome/.config/awesome/.gitignore b/awesome/.config/awesome/.gitignore new file mode 100644 index 0000000..1850b3c --- /dev/null +++ b/awesome/.config/awesome/.gitignore @@ -0,0 +1,5 @@ +rc.lua +rc.lua.save +theme-personal.lua +.luacheckrc +wip/ diff --git a/awesome/.config/awesome/.gitmodules b/awesome/.config/awesome/.gitmodules new file mode 100644 index 0000000..1bcc59b --- /dev/null +++ b/awesome/.config/awesome/.gitmodules @@ -0,0 +1,7 @@ +[submodule "lain"] + path = lain + url = https://github.com/lcpz/lain + +[submodule "freedesktop"] + path = freedesktop + url = https://github.com/lcpz/awesome-freedesktop diff --git a/awesome/.config/awesome/battery-widget b/awesome/.config/awesome/battery-widget deleted file mode 160000 index 25b7e94..0000000 --- a/awesome/.config/awesome/battery-widget +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 25b7e94a34ed854697d61e3cbb0a3ebd9745dbd4 diff --git a/awesome/.config/awesome/freedesktop b/awesome/.config/awesome/freedesktop new file mode 160000 index 0000000..c82ad29 --- /dev/null +++ b/awesome/.config/awesome/freedesktop @@ -0,0 +1 @@ +Subproject commit c82ad2960c5f0c84e765df68554c266ea7e9464d diff --git a/awesome/.config/awesome/lain b/awesome/.config/awesome/lain new file mode 160000 index 0000000..438dd74 --- /dev/null +++ b/awesome/.config/awesome/lain @@ -0,0 +1 @@ +Subproject commit 438dd7481026519f1e924a2b3087e7cda559df57 diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua index 73d4290..a86a2e4 100644 --- a/awesome/.config/awesome/rc.lua +++ b/awesome/.config/awesome/rc.lua @@ -1,173 +1,229 @@ +--[[ + + Awesome WM configuration template + github.com/lcpz + +--]] + +-- {{{ Required libraries + -- If LuaRocks is installed, make sure that packages installed through it are -- found (e.g. lgi). If LuaRocks is not installed, do nothing. pcall(require, "luarocks.loader") --- Standard awesome library -local gears = require("gears") -local awful = require("awful") -require("awful.autofocus") --- Widget and layout library -local wibox = require("wibox") --- Theme handling library -local beautiful = require("beautiful") --- Notification library -local naughty = require("naughty") -local menubar = require("menubar") +local gears = require("gears") +local awful = require("awful") + require("awful.autofocus") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local lain = require("lain") +--local menubar = require("menubar") +local freedesktop = require("freedesktop") local hotkeys_popup = require("awful.hotkeys_popup") --- Enable hotkeys help widget for VIM and other apps --- when client with a matching name is opened: -require("awful.hotkeys_popup.keys") + require("awful.hotkeys_popup.keys") +local mytable = awful.util.table or gears.table -- 4.{0,1} compatibility --- Load Debian menu entries -local debian = require("debian.menu") -local has_fdo, freedesktop = pcall(require, "freedesktop") +-- }}} -- {{{ Error handling + -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) if awesome.startup_errors then - naughty.notify({ preset = naughty.config.presets.critical, + naughty.notify { + preset = naughty.config.presets.critical, title = "Oops, there were errors during startup!", - text = awesome.startup_errors }) + text = awesome.startup_errors + } end -- Handle runtime errors after startup do local in_error = false - awesome.connect_signal("debug::error", function(err) - -- Make sure we don't go into an endless error loop + + awesome.connect_signal("debug::error", function (err) if in_error then return end + in_error = true - naughty.notify({ preset = naughty.config.presets.critical, + naughty.notify { + preset = naughty.config.presets.critical, title = "Oops, an error happened!", - text = tostring(err) }) + text = tostring(err) + } + in_error = false end) end + +-- }}} + +-- {{{ Autostart windowless processes + +-- This function will run once every time Awesome is started +local function run_once(cmd_arr) + for _, cmd in ipairs(cmd_arr) do + awful.spawn.with_shell(string.format("pgrep -u $USER -fx '%s' > /dev/null || (%s)", cmd, cmd)) + end +end + +run_once({ "urxvtd", "unclutter -root" }) -- comma-separated entries + +-- This function implements the XDG autostart specification +--[[ +awful.spawn.with_shell( + 'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' .. + 'xrdb -merge <<< "awesome.started:true";' .. + -- list each of your autostart commands, followed by ; inside single quotes, followed by .. + 'dex --environment Awesome --autostart --search-paths "$XDG_CONFIG_DIRS/autostart:$XDG_CONFIG_HOME/autostart"' -- https://github.com/jceb/dex +) +--]] + -- }}} -- {{{ Variable definitions --- Themes define colours, icons, font and wallpapers. -beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") --- This is used later as the default terminal and editor to run. -terminal = "alacritty" -editor = os.getenv("EDITOR") or "editor" -editor_cmd = terminal .. " -e " .. editor +local themes = { + "blackburn", -- 1 + "copland", -- 2 + "dremora", -- 3 + "holo", -- 4 + "multicolor", -- 5 + "powerarrow", -- 6 + "powerarrow-dark", -- 7 + "rainbow", -- 8 + "steamburn", -- 9 + "vertex" -- 10 +} --- Default modkey. --- Usually, Mod4 is the key with a logo between Control and Alt. --- If you do not like this or do not have such a key, --- I suggest you to remap Mod4 to another key using xmodmap or other tools. --- However, you can use another modifier like Mod1, but it may interact with others. -modkey = "Mod4" +local chosen_theme = themes[6] +local modkey = "Mod4" +local altkey = "Mod1" +local terminal = "alacritty" +local vi_focus = false -- vi-like client focus https://github.com/lcpz/awesome-copycats/issues/275 +local cycle_prev = true -- cycle with only the previously focused client or all https://github.com/lcpz/awesome-copycats/issues/274 +local editor = os.getenv("EDITOR") or "nvim" +local browser = "firefox" --- Table of layouts to cover with awful.layout.inc, order matters. +awful.util.terminal = terminal +awful.util.tagnames = { "1", "2", "3", "4", "5" } awful.layout.layouts = { awful.layout.suit.tile, awful.layout.suit.floating, - awful.layout.suit.tile.left, - awful.layout.suit.tile.bottom, - awful.layout.suit.tile.top, - awful.layout.suit.fair, - awful.layout.suit.fair.horizontal, - awful.layout.suit.spiral, - awful.layout.suit.spiral.dwindle, - awful.layout.suit.max, + -- awful.layout.suit.tile.left, + -- awful.layout.suit.tile.bottom, + -- awful.layout.suit.tile.top, + --awful.layout.suit.fair, + --awful.layout.suit.fair.horizontal, + --awful.layout.suit.spiral, + --awful.layout.suit.spiral.dwindle, + --awful.layout.suit.max, awful.layout.suit.max.fullscreen, - awful.layout.suit.magnifier, - awful.layout.suit.corner.nw, - -- awful.layout.suit.corner.ne, - -- awful.layout.suit.corner.sw, - -- awful.layout.suit.corner.se, + --awful.layout.suit.magnifier, + --awful.layout.suit.corner.nw, + --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 } + +lain.layout.termfair.nmaster = 3 +lain.layout.termfair.ncol = 1 +lain.layout.termfair.center.nmaster = 3 +lain.layout.termfair.center.ncol = 1 +lain.layout.cascade.tile.offset_x = 2 +lain.layout.cascade.tile.offset_y = 32 +lain.layout.cascade.tile.extra_padding = 5 +lain.layout.cascade.tile.nmaster = 5 +lain.layout.cascade.tile.ncol = 2 + +awful.util.taglist_buttons = mytable.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 = mytable.join( + awful.button({ }, 1, function(c) + if c == client.focus then + c.minimized = true + else + c:emit_signal("request::activate", "tasklist", { raise = true }) + end + end), + awful.button({ }, 3, function() + awful.menu.client_list({ theme = { width = 250 } }) + end), + awful.button({ }, 4, function() awful.client.focus.byidx(1) end), + awful.button({ }, 5, function() awful.client.focus.byidx(-1) end) +) + +beautiful.init(string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme)) + -- }}} -- {{{ Menu + -- Create a launcher widget and a main menu -myawesomemenu = { - { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, - { "manual", terminal .. " -e man awesome" }, - { "edit config", editor_cmd .. " " .. awesome.conffile }, - { "restart", awesome.restart }, - { "quit", function() awesome.quit() end }, +local myawesomemenu = { + { "Hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, + { "Manual", string.format("%s -e man awesome", terminal) }, + { "Edit config", string.format("%s -e %s %s", terminal, editor, awesome.conffile) }, + { "Restart", awesome.restart }, + { "Quit", function() awesome.quit() end }, } -local menu_awesome = { "awesome", myawesomemenu, beautiful.awesome_icon } -local menu_terminal = { "open terminal", terminal } +awful.util.mymainmenu = freedesktop.menu.build { + before = { + { "Awesome", myawesomemenu, beautiful.awesome_icon }, + -- other triads can be put here + }, + after = { + { "Open terminal", terminal }, + -- other triads can be put here + } +} -if has_fdo then - mymainmenu = freedesktop.menu.build({ - before = { menu_awesome }, - after = { menu_terminal } - }) -else - mymainmenu = awful.menu({ - items = { - menu_awesome, - { "Debian", debian.menu.Debian_menu.Debian }, - menu_terminal, - } - }) -end +-- Hide the menu when the mouse leaves it +--[[ +awful.util.mymainmenu.wibox:connect_signal("mouse::leave", function() + if not awful.util.mymainmenu.active_child or + (awful.util.mymainmenu.wibox ~= mouse.current_wibox and + awful.util.mymainmenu.active_child.wibox ~= mouse.current_wibox) then + awful.util.mymainmenu:hide() + else + awful.util.mymainmenu.active_child.wibox:connect_signal("mouse::leave", + function() + if awful.util.mymainmenu.wibox ~= mouse.current_wibox then + awful.util.mymainmenu:hide() + end + end) + end +end) +--]] +-- Set the Menubar terminal for applications that require it +--menubar.utils.terminal = terminal -mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, - menu = mymainmenu }) - --- Menubar configuration -menubar.utils.terminal = terminal -- Set the terminal for applications that require it -- }}} --- Keyboard map indicator and switcher -mykeyboardlayout = awful.widget.keyboardlayout() +-- {{{ Screen --- {{{ Wibar --- Create a textclock widget -mytextclock = wibox.widget.textclock() - --- Create a wibox for each screen and add it -local taglist_buttons = gears.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 = gears.table.join( - awful.button({}, 1, function(c) - if c == client.focus then - c.minimized = true - else - c:emit_signal( - "request::activate", - "tasklist", - { raise = true } - ) - end - end), - awful.button({}, 3, function() - awful.menu.client_list({ theme = { width = 250 } }) - end), - awful.button({}, 4, function() - awful.client.focus.byidx(1) - end), - awful.button({}, 5, function() - awful.client.focus.byidx(-1) - end)) - -local function set_wallpaper(s) +-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) +screen.connect_signal("property::geometry", function(s) -- Wallpaper if beautiful.wallpaper then local wallpaper = beautiful.wallpaper @@ -177,380 +233,524 @@ local function set_wallpaper(s) end gears.wallpaper.maximized(wallpaper, s, true) end -end - --- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) -screen.connect_signal("property::geometry", set_wallpaper) - -awful.screen.connect_for_each_screen(function(s) - -- Wallpaper - set_wallpaper(s) - - -- Each screen has its own tag table. - awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) - - -- Create a promptbox for each screen - s.mypromptbox = awful.widget.prompt() - -- Create an imagebox widget which will contain an icon indicating which layout we're using. - -- We need one layoutbox per screen. - s.mylayoutbox = awful.widget.layoutbox(s) - s.mylayoutbox:buttons(gears.table.join( - awful.button({}, 1, function() awful.layout.inc(1) end), - awful.button({}, 3, function() awful.layout.inc(-1) end), - awful.button({}, 4, function() awful.layout.inc(1) end), - awful.button({}, 5, function() awful.layout.inc(-1) end))) - -- Create a taglist widget - s.mytaglist = awful.widget.taglist { - screen = s, - filter = awful.widget.taglist.filter.all, - buttons = taglist_buttons - } - - -- Create a tasklist widget - s.mytasklist = awful.widget.tasklist { - screen = s, - filter = awful.widget.tasklist.filter.currenttags, - buttons = tasklist_buttons - } - - -- Create the wibox - s.mywibox = awful.wibar({ position = "top", screen = s }) - - -- Add widgets to the wibox - s.mywibox:setup { - layout = wibox.layout.align.horizontal, - { -- Left widgets - layout = wibox.layout.fixed.horizontal, - mylauncher, - s.mytaglist, - s.mypromptbox, - }, - s.mytasklist, -- Middle widget - { -- Right widgets - layout = wibox.layout.fixed.horizontal, - mykeyboardlayout, - - -- battery widget from https://raw.githubusercontent.com/deficient/battery-widget/master/battery-widget.lua - require("battery-widget") {}, - - wibox.widget.systray(), - mytextclock, - s.mylayoutbox, - }, - } end) + +-- No borders when rearranging only 1 non-floating or maximized client +screen.connect_signal("arrange", function (s) + local only_one = #s.tiled_clients == 1 + for _, c in pairs(s.clients) do + if only_one and not c.floating or c.maximized or c.fullscreen then + c.border_width = 0 + else + c.border_width = beautiful.border_width + end + end +end) + +-- Create a wibox for each screen and add it +awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end) + -- }}} -- {{{ Mouse bindings -root.buttons(gears.table.join( - awful.button({}, 3, function() mymainmenu:toggle() end), - awful.button({}, 4, awful.tag.viewnext), - awful.button({}, 5, awful.tag.viewprev) + +root.buttons(mytable.join( + awful.button({ }, 3, function () awful.util.mymainmenu:toggle() end), + awful.button({ }, 4, awful.tag.viewnext), + awful.button({ }, 5, awful.tag.viewprev) )) + -- }}} -- {{{ Key bindings -globalkeys = gears.table.join( - awful.key({ modkey, }, "s", hotkeys_popup.show_help, - { description = "show help", group = "awesome" }), - awful.key({ modkey, }, "Left", awful.tag.viewprev, - { description = "view previous", group = "tag" }), - awful.key({ modkey, }, "Right", awful.tag.viewnext, - { description = "view next", group = "tag" }), - awful.key({ modkey, }, "Escape", awful.tag.history.restore, - { description = "go back", group = "tag" }), - awful.key({ modkey, }, "j", - function() - awful.client.focus.byidx(1) +globalkeys = mytable.join( + -- Destroy all notifications + awful.key({ "Control", }, "space", function() naughty.destroy_all_notifications() end, + {description = "destroy all notifications", group = "hotkeys"}), + -- Take a screenshot + -- https://github.com/lcpz/dots/blob/master/bin/screenshot + awful.key({ altkey }, "p", function() os.execute("screenshot") end, + {description = "take a screenshot", group = "hotkeys"}), + + -- X screen locker + awful.key({ altkey, "Control" }, "l", function () os.execute(scrlocker) end, + {description = "lock screen", group = "hotkeys"}), + + -- Show help + awful.key({ modkey, }, "s", hotkeys_popup.show_help, + {description="show help", group="awesome"}), + + -- Tag browsing + awful.key({ modkey, }, "Left", awful.tag.viewprev, + {description = "view previous", group = "tag"}), + awful.key({ modkey, }, "Right", awful.tag.viewnext, + {description = "view next", group = "tag"}), + awful.key({ modkey, }, "Escape", awful.tag.history.restore, + {description = "go back", group = "tag"}), + + -- Non-empty tag browsing + awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end, + {description = "view previous nonempty", group = "tag"}), + awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end, + {description = "view previous nonempty", group = "tag"}), + + -- Default client focus + awful.key({ altkey, }, "j", + function () + awful.client.focus.byidx( 1) end, - { description = "focus next by index", group = "client" } + {description = "focus next by index", group = "client"} ), - awful.key({ modkey, }, "k", - function() + awful.key({ altkey, }, "k", + function () awful.client.focus.byidx(-1) end, - { description = "focus previous by index", group = "client" } + {description = "focus previous by index", group = "client"} ), - awful.key({ modkey, }, "w", function() mymainmenu:show() end, - { description = "show main menu", group = "awesome" }), + + -- By-direction client focus + awful.key({ modkey }, "j", + function() + awful.client.focus.global_bydirection("down") + if client.focus then client.focus:raise() end + end, + {description = "focus down", group = "client"}), + awful.key({ modkey }, "k", + function() + awful.client.focus.global_bydirection("up") + if client.focus then client.focus:raise() end + end, + {description = "focus up", group = "client"}), + awful.key({ modkey }, "h", + function() + awful.client.focus.global_bydirection("left") + if client.focus then client.focus:raise() end + end, + {description = "focus left", group = "client"}), + awful.key({ modkey }, "l", + function() + awful.client.focus.global_bydirection("right") + if client.focus then client.focus:raise() end + end, + {description = "focus right", group = "client"}), + + -- Menu + awful.key({ modkey, }, "w", function () awful.util.mymainmenu:show() end, + {description = "show main menu", group = "awesome"}), -- Layout manipulation - awful.key({ modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end, - { description = "swap with next client by index", group = "client" }), - awful.key({ modkey, "Shift" }, "k", function() awful.client.swap.byidx(-1) end, - { description = "swap with previous client by index", group = "client" }), - awful.key({ modkey, "Control" }, "j", function() awful.screen.focus_relative(1) end, - { description = "focus the next screen", group = "screen" }), - awful.key({ modkey, "Control" }, "k", function() awful.screen.focus_relative(-1) end, - { description = "focus the previous screen", group = "screen" }), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, - { description = "jump to urgent client", group = "client" }), - awful.key({ modkey, }, "Tab", - function() - awful.client.focus.history.previous() + awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, + {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, + {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, + {description = "focus the next screen", group = "screen"}), + awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, + {description = "focus the previous screen", group = "screen"}), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto, + {description = "jump to urgent client", group = "client"}), + awful.key({ modkey, }, "Tab", + function () + if cycle_prev then + awful.client.focus.history.previous() + else + awful.client.focus.byidx(-1) + end if client.focus then client.focus:raise() end end, - { description = "go back", group = "client" }), + {description = "cycle with previous/go back", group = "client"}), - -- Standard program - awful.key({ modkey, }, "Return", function() awful.spawn(terminal) end, - { description = "open a terminal", group = "launcher" }), - awful.key({ modkey, "Control" }, "r", awesome.restart, - { description = "reload awesome", group = "awesome" }), - awful.key({ modkey, "Shift" }, "q", awesome.quit, - { description = "quit awesome", group = "awesome" }), - - awful.key({ modkey, }, "l", function() awful.tag.incmwfact(0.05) end, - { description = "increase master width factor", group = "layout" }), - awful.key({ modkey, }, "h", function() awful.tag.incmwfact(-0.05) end, - { description = "decrease master width factor", group = "layout" }), - awful.key({ modkey, "Shift" }, "h", function() awful.tag.incnmaster(1, nil, true) end, - { description = "increase the number of master clients", group = "layout" }), - awful.key({ modkey, "Shift" }, "l", function() awful.tag.incnmaster(-1, nil, true) end, - { description = "decrease the number of master clients", group = "layout" }), - awful.key({ modkey, "Control" }, "h", function() awful.tag.incncol(1, nil, true) end, - { description = "increase the number of columns", group = "layout" }), - awful.key({ modkey, "Control" }, "l", function() awful.tag.incncol(-1, nil, true) end, - { description = "decrease the number of columns", group = "layout" }), - awful.key({ modkey, }, "space", function() awful.layout.inc(1) end, - { description = "select next", group = "layout" }), - awful.key({ modkey, "Shift" }, "space", function() awful.layout.inc(-1) end, - { description = "select previous", group = "layout" }), - - awful.key({ modkey, "Control" }, "n", - function() - local c = awful.client.restore() - -- Focus restored client - if c then - c:emit_signal( - "request::activate", "key.unminimize", { raise = true } - ) + -- Show/hide wibox + --[[ awful.key({ modkey }, "b", function () + for s in screen do + s.mywibox.visible = not s.mywibox.visible + if s.mybottomwibox then + s.mybottomwibox.visible = not s.mybottomwibox.visible + end end end, - { description = "restore minimized", group = "client" }), + {description = "toggle wibox", group = "awesome"}), ]] - -- -- Prompt - -- awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, - -- {description = "run prompt", group = "launcher"}), + -- On-the-fly useless gaps change + awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end, + {description = "increment useless gaps", group = "tag"}), + awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end, + {description = "decrement useless gaps", group = "tag"}), - -- Run dmenu - awful.key({ modkey }, "r", function() - awful.spawn("dmenu_run") - end, - { - description = "dmenu", - group = "launcher", - }), + -- Dynamic tagging + awful.key({ modkey, "Shift" }, "n", function () lain.util.add_tag() end, + {description = "add new tag", group = "tag"}), + awful.key({ modkey, "Shift" }, "r", function () lain.util.rename_tag() end, + {description = "rename tag", group = "tag"}), + awful.key({ modkey, "Shift" }, "Left", function () lain.util.move_tag(-1) end, + {description = "move tag to the left", group = "tag"}), + awful.key({ modkey, "Shift" }, "Right", function () lain.util.move_tag(1) end, + {description = "move tag to the right", group = "tag"}), + awful.key({ modkey, "Shift" }, "d", function () lain.util.delete_tag() end, + {description = "delete tag", group = "tag"}), + -- Standard program + awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, + {description = "open a terminal", group = "launcher"}), + awful.key({ modkey, "Control" }, "r", awesome.restart, + {description = "reload awesome", group = "awesome"}), + awful.key({ modkey, "Shift" }, "q", awesome.quit, + {description = "quit awesome", group = "awesome"}), - -- Run firefox - awful.key({ modkey }, "b", function() - awful.spawn("firefox") - end, - { - description = "firefox", - group = "applications", - }), + awful.key({ modkey, altkey }, "l", function () awful.tag.incmwfact( 0.05) end, + {description = "increase master width factor", group = "layout"}), + awful.key({ modkey, altkey }, "h", function () awful.tag.incmwfact(-0.05) end, + {description = "decrease master width factor", group = "layout"}), + awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, + {description = "increase the number of master clients", group = "layout"}), + awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, + {description = "decrease the number of master clients", group = "layout"}), + awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, + {description = "increase the number of columns", group = "layout"}), + awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, + {description = "decrease the number of columns", group = "layout"}), + awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, + {description = "select next", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, + {description = "select previous", group = "layout"}), - awful.key({ modkey }, "x", - function() - awful.prompt.run { - prompt = "Run Lua code: ", - textbox = awful.screen.focused().mypromptbox.widget, - exe_callback = awful.util.eval, - history_path = awful.util.get_cache_dir() .. "/history_eval" - } + awful.key({ modkey, "Control" }, "n", function () + local c = awful.client.restore() + -- Focus restored client + if c then + c:emit_signal("request::activate", "key.unminimize", {raise = true}) + end + end, {description = "restore minimized", group = "client"}), + + -- Dropdown application + awful.key({ modkey, }, "z", function () awful.screen.focused().quake:toggle() end, + {description = "dropdown application", group = "launcher"}), + + -- Widgets popups + awful.key({ altkey, }, "c", function () if beautiful.cal then beautiful.cal.show(7) end end, + {description = "show calendar", group = "widgets"}), + awful.key({ altkey, }, "h", function () if beautiful.fs then beautiful.fs.show(7) end end, + {description = "show filesystem", group = "widgets"}), + awful.key({ altkey, }, "w", function () if beautiful.weather then beautiful.weather.show(7) end end, + {description = "show weather", group = "widgets"}), + + -- Screen brightness + awful.key({ }, "XF86MonBrightnessUp", function () os.execute("xbacklight -inc 10") end, + {description = "+10%", group = "hotkeys"}), + awful.key({ }, "XF86MonBrightnessDown", function () os.execute("xbacklight -dec 10") end, + {description = "-10%", group = "hotkeys"}), + + -- ALSA volume control + awful.key({ altkey }, "Up", + function () + os.execute(string.format("amixer -q set %s 1%%+", beautiful.volume.channel)) + beautiful.volume.update() end, - { description = "lua execute prompt", group = "awesome" }), - -- Menubar + {description = "volume up", group = "hotkeys"}), + awful.key({ altkey }, "Down", + function () + os.execute(string.format("amixer -q set %s 1%%-", beautiful.volume.channel)) + beautiful.volume.update() + end, + {description = "volume down", group = "hotkeys"}), + awful.key({ altkey }, "m", + function () + os.execute(string.format("amixer -q set %s toggle", beautiful.volume.togglechannel or beautiful.volume.channel)) + beautiful.volume.update() + end, + {description = "toggle mute", group = "hotkeys"}), + awful.key({ altkey, "Control" }, "m", + function () + os.execute(string.format("amixer -q set %s 100%%", beautiful.volume.channel)) + beautiful.volume.update() + end, + {description = "volume 100%", group = "hotkeys"}), + awful.key({ altkey, "Control" }, "0", + function () + os.execute(string.format("amixer -q set %s 0%%", beautiful.volume.channel)) + beautiful.volume.update() + end, + {description = "volume 0%", group = "hotkeys"}), + + -- MPD control + awful.key({ altkey, "Control" }, "Up", + function () + os.execute("mpc toggle") + beautiful.mpd.update() + end, + {description = "mpc toggle", group = "widgets"}), + awful.key({ altkey, "Control" }, "Down", + function () + os.execute("mpc stop") + beautiful.mpd.update() + end, + {description = "mpc stop", group = "widgets"}), + awful.key({ altkey, "Control" }, "Left", + function () + os.execute("mpc prev") + beautiful.mpd.update() + end, + {description = "mpc prev", group = "widgets"}), + awful.key({ altkey, "Control" }, "Right", + function () + os.execute("mpc next") + beautiful.mpd.update() + end, + {description = "mpc next", group = "widgets"}), + awful.key({ altkey }, "0", + function () + local common = { text = "MPD widget ", position = "top_middle", timeout = 2 } + if beautiful.mpd.timer.started then + beautiful.mpd.timer:stop() + common.text = common.text .. lain.util.markup.bold("OFF") + else + beautiful.mpd.timer:start() + common.text = common.text .. lain.util.markup.bold("ON") + end + naughty.notify(common) + end, + {description = "mpc on/off", group = "widgets"}), + + -- Copy primary to clipboard (terminals to gtk) + awful.key({ modkey }, "c", function () awful.spawn.with_shell("xsel | xsel -i -b") end, + {description = "copy terminal to gtk", group = "hotkeys"}), + -- Copy clipboard to primary (gtk to terminals) + awful.key({ modkey }, "v", function () awful.spawn.with_shell("xsel -b | xsel") end, + {description = "copy gtk to terminal", group = "hotkeys"}), + + -- User programs + awful.key({ modkey }, "b", function () awful.spawn(browser) end, + {description = "run browser", group = "launcher"}), + + -- Default + --[[ Menubar awful.key({ modkey }, "p", function() menubar.show() end, - { description = "show the menubar", group = "launcher" }) + {description = "show the menubar", group = "launcher"}), + --]] + -- dmenu + awful.key({ modkey }, "r", function () + os.execute(string.format("dmenu_run -i -fn 'Monospace' -nb '%s' -nf '%s' -sb '%s' -sf '%s'", + beautiful.bg_normal, beautiful.fg_normal, beautiful.bg_focus, beautiful.fg_focus)) + end, + {description = "show dmenu", group = "launcher"}), + -- + -- alternatively use rofi, a dmenu-like application with more features + -- check https://github.com/DaveDavenport/rofi for more details + --[[ rofi + awful.key({ modkey }, "x", function () + os.execute(string.format("rofi -show %s -theme %s", + 'run', 'dmenu')) + end, + {description = "show rofi", group = "launcher"}), + --]] + -- Prompt + --[[ awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, + {description = "run prompt", group = "launcher"}), + ]] + awful.key({ modkey }, "x", + function () + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } + end, + {description = "lua execute prompt", group = "awesome"}) + --]] ) -clientkeys = gears.table.join( - awful.key({ modkey, }, "f", - function(c) +clientkeys = mytable.join( + awful.key({ altkey, "Shift" }, "m", lain.util.magnify_client, + {description = "magnify client", group = "client"}), + awful.key({ modkey, }, "f", + function (c) c.fullscreen = not c.fullscreen c:raise() end, - { description = "toggle fullscreen", group = "client" }), - awful.key({ modkey, "Shift" }, "c", function(c) c:kill() end, - { description = "close", group = "client" }), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle, - { description = "toggle floating", group = "client" }), - awful.key({ modkey, "Control" }, "Return", function(c) c:swap(awful.client.getmaster()) end, - { description = "move to master", group = "client" }), - awful.key({ modkey, }, "o", function(c) c:move_to_screen() end, - { description = "move to screen", group = "client" }), - awful.key({ modkey, }, "t", function(c) c.ontop = not c.ontop end, - { description = "toggle keep on top", group = "client" }), - awful.key({ modkey, }, "n", - function(c) + {description = "toggle fullscreen", group = "client"}), + awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, + {description = "close", group = "client"}), + awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , + {description = "toggle floating", group = "client"}), + awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, + {description = "move to master", group = "client"}), + awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, + {description = "move to screen", group = "client"}), + awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, + {description = "toggle keep on top", group = "client"}), + awful.key({ modkey, }, "n", + function (c) -- The client currently has the input focus, so it cannot be -- minimized, since minimized clients can't have the focus. c.minimized = true - end, - { description = "minimize", group = "client" }), - awful.key({ modkey, }, "m", - function(c) + end , + {description = "minimize", group = "client"}), + awful.key({ modkey, }, "m", + function (c) c.maximized = not c.maximized c:raise() - end, - { description = "(un)maximize", group = "client" }), + end , + {description = "(un)maximize", group = "client"}), awful.key({ modkey, "Control" }, "m", - function(c) + function (c) c.maximized_vertical = not c.maximized_vertical c:raise() - end, - { description = "(un)maximize vertically", group = "client" }), - awful.key({ modkey, "Shift" }, "m", - function(c) + end , + {description = "(un)maximize vertically", group = "client"}), + awful.key({ modkey, "Shift" }, "m", + function (c) c.maximized_horizontal = not c.maximized_horizontal c:raise() - end, - { description = "(un)maximize horizontally", group = "client" }) + end , + {description = "(un)maximize horizontally", group = "client"}) ) -- Bind all key numbers to tags. -- Be careful: we use keycodes to make it work on any keyboard layout. -- This should map on the top row of your keyboard, usually 1 to 9. for i = 1, 9 do - globalkeys = gears.table.join(globalkeys, + globalkeys = mytable.join(globalkeys, -- View tag only. awful.key({ modkey }, "#" .. i + 9, - function() - local screen = awful.screen.focused() - local tag = screen.tags[i] - if tag then - tag:view_only() - end - end, - { description = "view tag #" .. i, group = "tag" }), + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, + {description = "view tag #"..i, group = "tag"}), -- Toggle tag display. awful.key({ modkey, "Control" }, "#" .. i + 9, - function() - local screen = awful.screen.focused() - local tag = screen.tags[i] - if tag then - awful.tag.viewtoggle(tag) - end - end, - { description = "toggle tag #" .. i, group = "tag" }), + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, + {description = "toggle tag #" .. i, group = "tag"}), -- Move client to tag. awful.key({ modkey, "Shift" }, "#" .. i + 9, - function() - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:move_to_tag(tag) - end - end - end, - { description = "move focused client to tag #" .. i, group = "tag" }), + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + {description = "move focused client to tag #"..i, group = "tag"}), -- Toggle tag on focused client. awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, - function() - if client.focus then - local tag = client.focus.screen.tags[i] - if tag then - client.focus:toggle_tag(tag) - end - end - end, - { description = "toggle focused client on tag #" .. i, group = "tag" }) + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, + {description = "toggle focused client on tag #" .. i, group = "tag"}) ) end -clientbuttons = gears.table.join( - awful.button({}, 1, function(c) - c:emit_signal("request::activate", "mouse_click", { raise = true }) +clientbuttons = mytable.join( + awful.button({ }, 1, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) end), - awful.button({ modkey }, 1, function(c) - c:emit_signal("request::activate", "mouse_click", { raise = true }) + awful.button({ modkey }, 1, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) awful.mouse.client.move(c) end), - awful.button({ modkey }, 3, function(c) - c:emit_signal("request::activate", "mouse_click", { raise = true }) + awful.button({ modkey }, 3, function (c) + c:emit_signal("request::activate", "mouse_click", {raise = true}) awful.mouse.client.resize(c) end) ) -- Set keys root.keys(globalkeys) + -- }}} -- {{{ Rules + -- Rules to apply to new clients (through the "manage" signal). awful.rules.rules = { -- All clients will match this rule. - { rule = {}, - properties = { border_width = beautiful.border_width, - border_color = beautiful.border_normal, - focus = awful.client.focus.filter, - raise = true, - keys = clientkeys, - buttons = clientbuttons, - screen = awful.screen.preferred, - placement = awful.placement.no_overlap + awful.placement.no_offscreen - } + { rule = { }, + properties = { border_width = beautiful.border_width, + border_color = beautiful.border_normal, + callback = awful.client.setslave, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen, + size_hints_honor = false + } }, -- Floating clients. { rule_any = { instance = { - "DTA", -- Firefox addon DownThemAll. - "copyq", -- Includes session name in class. - "pinentry", + "DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + "pinentry", }, class = { - "Arandr", - "Blueman-manager", - "Gpick", - "Kruler", - "MessageWin", -- kalarm. - "Sxiv", - "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. - "Wpa_gui", - "veromix", - "xtightvncviewer" - }, + "Arandr", + "Blueman-manager", + "Gpick", + "Kruler", + "MessageWin", -- kalarm. + "Sxiv", + "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. + "Wpa_gui", + "veromix", + "xtightvncviewer"}, -- Note that the name property shown in xprop might be set slightly after creation of the client -- and the name shown there might not match defined rules here. name = { - "Event Tester", -- xev. + "Event Tester", -- xev. }, role = { - "AlarmWindow", -- Thunderbird's calendar. - "ConfigManager", -- Thunderbird's about:config. - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. + "AlarmWindow", -- Thunderbird's calendar. + "ConfigManager", -- Thunderbird's about:config. + "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. } - }, properties = { floating = true } }, + }, properties = { floating = true }}, -- Add titlebars to normal clients and dialogs - { rule_any = { type = { "normal", "dialog" } - }, properties = { titlebars_enabled = false } - }, + { rule_any = {type = { "normal", "dialog" } + }, properties = { titlebars_enabled = false } + } -- Set Firefox to always map on the tag named "2" on screen 1. -- { rule = { class = "Firefox" }, -- properties = { screen = 1, tag = "2" } }, } + -- }}} -- {{{ Signals + -- Signal function to execute when a new client appears. -client.connect_signal("manage", function(c) +client.connect_signal("manage", function (c) -- Set the windows at the slave, -- i.e. put it at the end of others instead of setting it master. -- if not awesome.startup then awful.client.setslave(c) end if awesome.startup - and not c.size_hints.user_position - and not c.size_hints.program_position then + and not c.size_hints.user_position + and not c.size_hints.program_position then -- Prevent clients from being unreachable after screen count changes. awful.placement.no_offscreen(c) end @@ -558,19 +758,26 @@ end) -- Add a titlebar if titlebars_enabled is set to true in the rules. client.connect_signal("request::titlebars", function(c) + -- Custom + if beautiful.titlebar_fun then + beautiful.titlebar_fun(c) + return + end + + -- Default -- buttons for the titlebar - local buttons = gears.table.join( - awful.button({}, 1, function() - c:emit_signal("request::activate", "titlebar", { raise = true }) + local buttons = mytable.join( + awful.button({ }, 1, function() + c:emit_signal("request::activate", "titlebar", {raise = true}) awful.mouse.client.move(c) end), - awful.button({}, 3, function() - c:emit_signal("request::activate", "titlebar", { raise = true }) + awful.button({ }, 3, function() + c:emit_signal("request::activate", "titlebar", {raise = true}) awful.mouse.client.resize(c) end) ) - awful.titlebar(c):setup { + awful.titlebar(c, { size = 16 }) : setup { { -- Left awful.titlebar.widget.iconwidget(c), buttons = buttons, @@ -585,11 +792,11 @@ client.connect_signal("request::titlebars", function(c) layout = wibox.layout.flex.horizontal }, { -- Right - awful.titlebar.widget.floatingbutton(c), + awful.titlebar.widget.floatingbutton (c), awful.titlebar.widget.maximizedbutton(c), - awful.titlebar.widget.stickybutton(c), - awful.titlebar.widget.ontopbutton(c), - awful.titlebar.widget.closebutton(c), + awful.titlebar.widget.stickybutton (c), + awful.titlebar.widget.ontopbutton (c), + awful.titlebar.widget.closebutton (c), layout = wibox.layout.fixed.horizontal() }, layout = wibox.layout.align.horizontal @@ -598,14 +805,10 @@ end) -- Enable sloppy focus, so that focus follows mouse. client.connect_signal("mouse::enter", function(c) - c:emit_signal("request::activate", "mouse_enter", { raise = false }) + c:emit_signal("request::activate", "mouse_enter", {raise = vi_focus}) end) client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) --- }}} --- --- compositor -awful.util.spawn("compton") -awful.util.spawn("nm-applet") +-- }}} diff --git a/awesome/.config/awesome/themes/blackburn/icons/awesome.png b/awesome/.config/awesome/themes/blackburn/icons/awesome.png new file mode 100755 index 0000000..947a06d Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/dwindle.png b/awesome/.config/awesome/themes/blackburn/icons/dwindle.png new file mode 100755 index 0000000..2f4b4ac Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/dwindle.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/fairh.png b/awesome/.config/awesome/themes/blackburn/icons/fairh.png new file mode 100755 index 0000000..b0030e7 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/fairh.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/fairv.png b/awesome/.config/awesome/themes/blackburn/icons/fairv.png new file mode 100755 index 0000000..2c0e157 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/fairv.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/floating.png b/awesome/.config/awesome/themes/blackburn/icons/floating.png new file mode 100755 index 0000000..e0bdd4b Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/magnifier.png b/awesome/.config/awesome/themes/blackburn/icons/magnifier.png new file mode 100755 index 0000000..3713108 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/magnifier.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/max.png b/awesome/.config/awesome/themes/blackburn/icons/max.png new file mode 100755 index 0000000..8828d12 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/max.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/spiral.png b/awesome/.config/awesome/themes/blackburn/icons/spiral.png new file mode 100755 index 0000000..54c2c5e Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/spiral.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/square_sel.png b/awesome/.config/awesome/themes/blackburn/icons/square_sel.png new file mode 100755 index 0000000..6938cca Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/square_unsel.png b/awesome/.config/awesome/themes/blackburn/icons/square_unsel.png new file mode 100755 index 0000000..dd8064d Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/submenu.png b/awesome/.config/awesome/themes/blackburn/icons/submenu.png new file mode 100755 index 0000000..10ca014 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/tile.png b/awesome/.config/awesome/themes/blackburn/icons/tile.png new file mode 100755 index 0000000..409141f Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/tilebottom.png b/awesome/.config/awesome/themes/blackburn/icons/tilebottom.png new file mode 100755 index 0000000..de68e9c Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/tileleft.png b/awesome/.config/awesome/themes/blackburn/icons/tileleft.png new file mode 100755 index 0000000..c47e4ee Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/tiletop.png b/awesome/.config/awesome/themes/blackburn/icons/tiletop.png new file mode 100755 index 0000000..c50abdf Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/close_focus.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/close_focus.png new file mode 100755 index 0000000..d0bc2e8 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/close_focus.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/close_normal.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/close_normal.png new file mode 100755 index 0000000..f99db1a Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/close_normal.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_focus_active.png new file mode 100755 index 0000000..1a0649f Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_focus_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_focus_inactive.png new file mode 100755 index 0000000..47f19f6 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_normal_active.png new file mode 100755 index 0000000..44b8dac Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_normal_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_normal_inactive.png new file mode 100755 index 0000000..98f7f1d Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/floating_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_focus_active.png new file mode 100755 index 0000000..eab9b37 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_focus_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_focus_inactive.png new file mode 100755 index 0000000..bce1d00 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_normal_active.png new file mode 100755 index 0000000..4f03984 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_normal_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_normal_inactive.png new file mode 100755 index 0000000..2e56d32 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/minimize_focus.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/minimize_focus.png new file mode 100755 index 0000000..5a968c3 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/minimize_focus.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/minimize_normal.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/minimize_normal.png new file mode 100755 index 0000000..0574ae5 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/minimize_normal.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_focus_active.png new file mode 100755 index 0000000..42a9770 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_focus_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_focus_inactive.png new file mode 100755 index 0000000..2f3a2be Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_normal_active.png new file mode 100755 index 0000000..499dfbf Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_normal_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_normal_inactive.png new file mode 100755 index 0000000..a9a3206 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_focus_active.png new file mode 100755 index 0000000..72864ac Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_focus_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_focus_inactive.png new file mode 100755 index 0000000..5493d8e Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_normal_active.png new file mode 100755 index 0000000..a150154 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_normal_active.png differ diff --git a/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_normal_inactive.png new file mode 100755 index 0000000..7e6c99b Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/icons/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/blackburn/theme.lua b/awesome/.config/awesome/themes/blackburn/theme.lua new file mode 100644 index 0000000..d777d9b --- /dev/null +++ b/awesome/.config/awesome/themes/blackburn/theme.lua @@ -0,0 +1,280 @@ +--[[ + + Blackburn Awesome WM theme 3.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local os = os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/blackburn" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 10.5" +theme.taglist_font = "Icons 10" +theme.fg_normal = "#D7D7D7" +theme.fg_focus = "#F6784F" +theme.bg_normal = "#060606" +theme.bg_focus = "#060606" +theme.fg_urgent = "#CC9393" +theme.bg_urgent = "#2A1F1E" +theme.border_width = dpi(1) +theme.border_normal = "#0E0E0E" +theme.border_focus = "#F79372" +theme.taglist_fg_focus = "#F6784F" +theme.taglist_bg_focus = "#060606" +theme.tasklist_fg_focus = "#F6784F" +theme.tasklist_bg_focus = "#060606" +theme.menu_height = dpi(16) +theme.menu_width = dpi(130) +theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" +theme.awesome_icon = theme.dir .."/icons/awesome.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" +theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" +theme.layout_fairv = theme.dir .. "/icons/fairv.png" +theme.layout_fairh = theme.dir .. "/icons/fairh.png" +theme.layout_spiral = theme.dir .. "/icons/spiral.png" +theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" +theme.layout_max = theme.dir .. "/icons/max.png" +theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" +theme.layout_floating = theme.dir .. "/icons/floating.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" +theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" +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" +theme.titlebar_minimize_button_focus = theme.dir .. "/icons/titlebar/minimize_focus.png" +theme.titlebar_minimize_button_normal = theme.dir .. "/icons/titlebar/minimize_normal.png" + +awful.util.tagnames = { "ƀ", "Ƅ", "Ɗ", "ƈ", "ƙ" } + +local markup = lain.util.markup +local separators = lain.util.separators +local gray = "#9E9C9A" + +-- Textclock +local mytextclock = wibox.widget.textclock(" %H:%M ") +mytextclock.font = theme.font + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + font = "Terminus 11", + fg = theme.fg_normal, + bg = theme.bg_normal + } +}) + +-- Mail IMAP check +--[[ to be set before use +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + notification_preset = { fg = white } + settings = function() + mail = "" + count = "" + + if mailcount > 0 then + mail = "Mail " + count = mailcount .. " " + end + + widget:set_markup(markup.font(theme.font, markup(gray, mail) .. count)) + end +}) +--]] + +-- MPD +theme.mpd = lain.widget.mpd({ + settings = function() + mpd_notification_preset.fg = white + artist = mpd_now.artist .. " " + title = mpd_now.title .. " " + + if mpd_now.state == "pause" then + artist = "mpd " + title = "paused " + elseif mpd_now.state == "stop" then + artist = "" + title = "" + end + + widget:set_markup(markup.font(theme.font, markup(gray, artist) .. title .. " ")) + end +}) + +-- /home fs +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + notification_preset = { fg = white, bg = theme.bg_normal, font = "Terminus 10.5" }, + settings = function() + fs_header = "" + fs_p = "" + + if fs_now["/home"].percentage >= 90 then + fs_header = " Hdd " + fs_p = fs_now["/home"].percentage + end + + widget:set_markup(markup.font(theme.font, markup(gray, fs_header) .. fs_p)) + end +}) +--]] + +-- Battery +local bat = lain.widget.bat({ + settings = function() + bat_header = " Bat " + bat_p = bat_now.perc .. " " + widget:set_markup(markup.font(theme.font, markup(gray, bat_header) .. bat_p)) + end +}) + +-- ALSA volume +theme.volume = lain.widget.alsa({ + --togglechannel = "IEC958,3", + settings = function() + header = " Vol " + vlevel = volume_now.level + + if volume_now.status == "off" then + vlevel = vlevel .. "M " + else + vlevel = vlevel .. " " + end + + widget:set_markup(markup.font(theme.font, markup(gray, header) .. vlevel)) + end +}) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + --APPID = + city_id = 2643743, -- placeholder (London) + settings = function() + units = math.floor(weather_now["main"]["temp"]) + widget:set_markup(" " .. units .. " ") + end +}) +--]] + +-- Separators +local first = wibox.widget.textbox(' ') +local arrl_pre = separators.arrow_right("alpha", "#1A1A1A") +local arrl_post = separators.arrow_right("#1A1A1A", "alpha") + +local barheight = dpi(18) +local barcolor = gears.color({ + type = "linear", + from = { barheight, 0 }, + to = { barheight, barheight }, + stops = { {0, theme.bg_focus }, {0.8, theme.border_normal}, {1, "#1A1A1A"} } +}) +theme.titlebar_bg = barcolor + +theme.titlebar_bg_focus = gears.color({ + type = "linear", + from = { barheight, 0 }, + to = { barheight, barheight }, + stops = { {0, theme.bg_normal}, {0.5, theme.border_normal}, {1, "#492417"} } +}) + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons, { bg_normal = barcolor, bg_focus = barcolor }) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18), bg = barcolor }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + first, + s.mytaglist, + arrl_pre, + s.mylayoutbox, + arrl_post, + s.mypromptbox, + first, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + first, + theme.mpd.widget, + --theme.mail.widget, + --theme.weather.icon, + --theme.weather.widget, + --theme.fs.widget, + bat, + theme.volume.widget, + mytextclock, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/blackburn/wall.png b/awesome/.config/awesome/themes/blackburn/wall.png new file mode 100755 index 0000000..6774d91 Binary files /dev/null and b/awesome/.config/awesome/themes/blackburn/wall.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/ac.png b/awesome/.config/awesome/themes/copland/icons/ac.png new file mode 100755 index 0000000..4b00cd1 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/ac.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/awesome.png b/awesome/.config/awesome/themes/copland/icons/awesome.png new file mode 100755 index 0000000..b24e00d Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/bat.png b/awesome/.config/awesome/themes/copland/icons/bat.png new file mode 100755 index 0000000..4ea9b2b Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/bat.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/bat_low.png b/awesome/.config/awesome/themes/copland/icons/bat_low.png new file mode 100755 index 0000000..c198675 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/bat_low.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/bat_no.png b/awesome/.config/awesome/themes/copland/icons/bat_no.png new file mode 100755 index 0000000..5cf536f Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/bat_no.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/centerfair.png b/awesome/.config/awesome/themes/copland/icons/centerfair.png new file mode 100755 index 0000000..185d5e1 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/centerfair.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/centerwork.png b/awesome/.config/awesome/themes/copland/icons/centerwork.png new file mode 100755 index 0000000..49d5a11 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/centerwork.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/disk.png b/awesome/.config/awesome/themes/copland/icons/disk.png new file mode 100755 index 0000000..3ccd728 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/disk.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/dwindle.png b/awesome/.config/awesome/themes/copland/icons/dwindle.png new file mode 100755 index 0000000..55b61b0 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/dwindle.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/fairh.png b/awesome/.config/awesome/themes/copland/icons/fairh.png new file mode 100755 index 0000000..848f5a8 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/fairh.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/fairv.png b/awesome/.config/awesome/themes/copland/icons/fairv.png new file mode 100755 index 0000000..610eb7b Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/fairv.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/floating.png b/awesome/.config/awesome/themes/copland/icons/floating.png new file mode 100755 index 0000000..d8ce00a Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/fullscreen.png b/awesome/.config/awesome/themes/copland/icons/fullscreen.png new file mode 100755 index 0000000..feb44d1 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/fullscreen.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/magnifier.png b/awesome/.config/awesome/themes/copland/icons/magnifier.png new file mode 100755 index 0000000..49616bc Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/magnifier.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/max.png b/awesome/.config/awesome/themes/copland/icons/max.png new file mode 100755 index 0000000..3f4bdec Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/max.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/pause.png b/awesome/.config/awesome/themes/copland/icons/pause.png new file mode 100755 index 0000000..381e532 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/pause.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/play.png b/awesome/.config/awesome/themes/copland/icons/play.png new file mode 100755 index 0000000..05ad253 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/play.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/spiral.png b/awesome/.config/awesome/themes/copland/icons/spiral.png new file mode 100755 index 0000000..664afb4 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/spiral.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/square_sel.png b/awesome/.config/awesome/themes/copland/icons/square_sel.png new file mode 100755 index 0000000..58b58f2 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/square_unsel.png b/awesome/.config/awesome/themes/copland/icons/square_unsel.png new file mode 100755 index 0000000..40411f4 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/stop.png b/awesome/.config/awesome/themes/copland/icons/stop.png new file mode 100755 index 0000000..b01b75e Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/stop.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/submenu.png b/awesome/.config/awesome/themes/copland/icons/submenu.png new file mode 100755 index 0000000..10ed739 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/termfair.png b/awesome/.config/awesome/themes/copland/icons/termfair.png new file mode 100755 index 0000000..9cfb636 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/termfair.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/tile.png b/awesome/.config/awesome/themes/copland/icons/tile.png new file mode 100755 index 0000000..890e354 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/tilebottom.png b/awesome/.config/awesome/themes/copland/icons/tilebottom.png new file mode 100755 index 0000000..aac4302 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/tileleft.png b/awesome/.config/awesome/themes/copland/icons/tileleft.png new file mode 100755 index 0000000..c87a32f Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/tiletop.png b/awesome/.config/awesome/themes/copland/icons/tiletop.png new file mode 100755 index 0000000..89f7f8d Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/close_focus.png b/awesome/.config/awesome/themes/copland/icons/titlebar/close_focus.png new file mode 100755 index 0000000..c1fa3ad Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/close_focus.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/close_normal.png b/awesome/.config/awesome/themes/copland/icons/titlebar/close_normal.png new file mode 100755 index 0000000..77cd8eb Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/close_normal.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_focus_active.png new file mode 100755 index 0000000..8fcf336 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_focus_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_focus_inactive.png new file mode 100755 index 0000000..47f19f6 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_normal_active.png new file mode 100755 index 0000000..df17970 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_normal_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_normal_inactive.png new file mode 100755 index 0000000..98f7f1d Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/floating_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_focus_active.png new file mode 100755 index 0000000..96e8937 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_focus_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_focus_inactive.png new file mode 100755 index 0000000..bce1d00 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_normal_active.png new file mode 100755 index 0000000..6ce0b10 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_normal_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_normal_inactive.png new file mode 100755 index 0000000..2e56d32 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_focus_active.png new file mode 100755 index 0000000..d206ea4 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_focus_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_focus_inactive.png new file mode 100755 index 0000000..2f3a2be Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_normal_active.png new file mode 100755 index 0000000..9a26d34 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_normal_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_normal_inactive.png new file mode 100755 index 0000000..a9a3206 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_focus_active.png new file mode 100755 index 0000000..7e360db Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_focus_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_focus_inactive.png new file mode 100755 index 0000000..5493d8e Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_normal_active.png new file mode 100755 index 0000000..a06138d Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_normal_active.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_normal_inactive.png new file mode 100755 index 0000000..7e6c99b Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/vol.png b/awesome/.config/awesome/themes/copland/icons/vol.png new file mode 100755 index 0000000..847d575 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/vol.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/vol_low.png b/awesome/.config/awesome/themes/copland/icons/vol_low.png new file mode 100755 index 0000000..54d653e Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/vol_low.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/vol_mute.png b/awesome/.config/awesome/themes/copland/icons/vol_mute.png new file mode 100755 index 0000000..361412d Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/vol_mute.png differ diff --git a/awesome/.config/awesome/themes/copland/icons/vol_no.png b/awesome/.config/awesome/themes/copland/icons/vol_no.png new file mode 100755 index 0000000..06d1a97 Binary files /dev/null and b/awesome/.config/awesome/themes/copland/icons/vol_no.png differ diff --git a/awesome/.config/awesome/themes/copland/theme.lua b/awesome/.config/awesome/themes/copland/theme.lua new file mode 100644 index 0000000..56a25d6 --- /dev/null +++ b/awesome/.config/awesome/themes/copland/theme.lua @@ -0,0 +1,375 @@ +--[[ + + Copland Awesome WM theme 2.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local awesome, client, os = awesome, client, os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/copland" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 10.5" +theme.fg_normal = "#BBBBBB" +theme.fg_focus = "#78A4FF" +theme.bg_normal = "#111111" +theme.bg_focus = "#111111" +theme.fg_urgent = "#000000" +theme.bg_urgent = "#FFFFFF" +theme.border_width = dpi(1) +theme.border_normal = "#141414" +theme.border_focus = "#93B6FF" +theme.taglist_fg_focus = "#FFFFFF" +theme.taglist_bg_focus = "#111111" +theme.taglist_bg_normal = "#111111" +theme.titlebar_bg_normal = "#191919" +theme.titlebar_bg_focus = "#262626" +theme.menu_height = dpi(16) +theme.menu_width = dpi(130) +theme.tasklist_disable_icon = true +theme.awesome_icon = theme.dir .."/icons/awesome.png" +theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" +theme.taglist_squares_sel = theme.dir .. "/icons/square_unsel.png" +theme.taglist_squares_unsel = theme.dir .. "/icons/square_unsel.png" +theme.vol = theme.dir .. "/icons/vol.png" +theme.vol_low = theme.dir .. "/icons/vol_low.png" +theme.vol_no = theme.dir .. "/icons/vol_no.png" +theme.vol_mute = theme.dir .. "/icons/vol_mute.png" +theme.disk = theme.dir .. "/icons/disk.png" +theme.ac = theme.dir .. "/icons/ac.png" +theme.bat = theme.dir .. "/icons/bat.png" +theme.bat_low = theme.dir .. "/icons/bat_low.png" +theme.bat_no = theme.dir .. "/icons/bat_no.png" +theme.play = theme.dir .. "/icons/play.png" +theme.pause = theme.dir .. "/icons/pause.png" +theme.stop = theme.dir .. "/icons/stop.png" +theme.layout_tile = theme.dir .. "/icons/tile.png" +theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" +theme.layout_fairv = theme.dir .. "/icons/fairv.png" +theme.layout_fairh = theme.dir .. "/icons/fairh.png" +theme.layout_spiral = theme.dir .. "/icons/spiral.png" +theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" +theme.layout_max = theme.dir .. "/icons/max.png" +theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" +theme.layout_floating = theme.dir .. "/icons/floating.png" +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" +theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" +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" + +-- lain related +theme.layout_centerfair = theme.dir .. "/icons/centerfair.png" +theme.layout_termfair = theme.dir .. "/icons/termfair.png" +theme.layout_centerwork = theme.dir .. "/icons/centerwork.png" + +local markup = lain.util.markup +local blue = theme.fg_focus +local red = "#EB8F8F" +local green = "#8FEB8F" + +-- Textclock +--os.setlocale(os.getenv("LANG")) -- to localize the clock +local mytextclock = wibox.widget.textclock(" %H:%M ") +mytextclock.font = theme.font + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + font = "Terminus 11", + fg = theme.fg_normal, + bg = theme.bg_normal + } +}) + +-- Mail IMAP check +--[[ to be set before use +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + mail = "" + count = "" + + if mailcount > 0 then + mail = " Mail " + count = mailcount .. " " + end + + widget:set_markup(markup(blue, mail) .. count) + end +}) +--]] + +-- MPD +local mpdicon = wibox.widget.imagebox() +theme.mpd = lain.widget.mpd({ + settings = function() + if mpd_now.state == "play" then + title = mpd_now.title + artist = " " .. mpd_now.artist .. markup("#777777", " | ") + mpdicon:set_image(theme.play) + elseif mpd_now.state == "pause" then + title = "mpd " + artist = "paused" .. markup("#777777", " | ") + mpdicon:set_image(theme.pause) + else + title = "" + artist = "" + mpdicon._private.image = nil + mpdicon:emit_signal("widget::redraw_needed") + mpdicon:emit_signal("widget::layout_changed") + end + + widget:set_markup(markup.font(theme.font, markup(blue, title) .. artist)) + end +}) + +-- Battery +local baticon = wibox.widget.imagebox(theme.bat) +local batbar = wibox.widget { + forced_height = dpi(1), + forced_width = dpi(59), + color = theme.fg_normal, + background_color = theme.bg_normal, + margins = 1, + paddings = 1, + ticks = true, + ticks_size = dpi(6), + widget = wibox.widget.progressbar, +} +local batupd = lain.widget.bat({ + settings = function() + if (not bat_now.status) or bat_now.status == "N/A" or type(bat_now.perc) ~= "number" then return end + + if bat_now.status == "Charging" then + baticon:set_image(theme.ac) + if bat_now.perc >= 98 then + batbar:set_color(green) + elseif bat_now.perc > 50 then + batbar:set_color(theme.fg_normal) + elseif bat_now.perc > 15 then + batbar:set_color(theme.fg_normal) + else + batbar:set_color(red) + end + else + if bat_now.perc >= 98 then + batbar:set_color(green) + elseif bat_now.perc > 50 then + batbar:set_color(theme.fg_normal) + baticon:set_image(theme.bat) + elseif bat_now.perc > 15 then + batbar:set_color(theme.fg_normal) + baticon:set_image(theme.bat_low) + else + batbar:set_color(red) + baticon:set_image(theme.bat_no) + end + end + batbar:set_value(bat_now.perc / 100) + end +}) +local batbg = wibox.container.background(batbar, "#474747", gears.shape.rectangle) +local batwidget = wibox.container.margin(batbg, dpi(2), dpi(7), dpi(4), dpi(4)) + +-- /home fs +--[[ commented because it needs Gio/Glib >= 2.54 +local fsicon = wibox.widget.imagebox(theme.disk) +local fsbar = wibox.widget { + forced_height = dpi(1), + forced_width = dpi(59), + color = theme.fg_normal, + background_color = theme.bg_normal, + margins = 1, + paddings = 1, + ticks = true, + ticks_size = dpi(6), + widget = wibox.widget.progressbar, +} +theme.fs = lain.widget.fs { + notification_preset = { fg = theme.fg_normal, bg = theme.bg_normal, font = "Terminus 10.5" }, + settings = function() + if fs_now["/home"].percentage < 90 then + fsbar:set_color(theme.fg_normal) + else + fsbar:set_color("#EB8F8F") + end + fsbar:set_value(fs_now["/home"].percentage / 100) + end +} +local fsbg = wibox.container.background(fsbar, "#474747", gears.shape.rectangle) +local fswidget = wibox.container.margin(fsbg, dpi(2), dpi(7), dpi(4), dpi(4)) +--]] + +-- ALSA volume bar +local volicon = wibox.widget.imagebox(theme.vol) +theme.volume = lain.widget.alsabar { + width = dpi(59), border_width = 0, ticks = true, ticks_size = dpi(6), + notification_preset = { font = theme.font }, + --togglechannel = "IEC958,3", + settings = function() + if volume_now.status == "off" then + volicon:set_image(theme.vol_mute) + elseif volume_now.level == 0 then + volicon:set_image(theme.vol_no) + elseif volume_now.level <= 50 then + volicon:set_image(theme.vol_low) + else + volicon:set_image(theme.vol) + end + end, + colors = { + background = theme.bg_normal, + mute = red, + unmute = theme.fg_normal + } +} +theme.volume.tooltip.wibox.fg = theme.fg_focus +theme.volume.bar:buttons(my_table.join ( + awful.button({}, 1, function() + awful.spawn(string.format("%s -e alsamixer", awful.util.terminal)) + end), + awful.button({}, 2, function() + os.execute(string.format("%s set %s 100%%", theme.volume.cmd, theme.volume.channel)) + theme.volume.update() + end), + awful.button({}, 3, function() + os.execute(string.format("%s set %s toggle", theme.volume.cmd, theme.volume.togglechannel or theme.volume.channel)) + theme.volume.update() + end), + awful.button({}, 4, function() + os.execute(string.format("%s set %s 1%%+", theme.volume.cmd, theme.volume.channel)) + theme.volume.update() + end), + awful.button({}, 5, function() + os.execute(string.format("%s set %s 1%%-", theme.volume.cmd, theme.volume.channel)) + theme.volume.update() + end) +)) +local volumebg = wibox.container.background(theme.volume.bar, "#474747", gears.shape.rectangle) +local volumewidget = wibox.container.margin(volumebg, dpi(2), dpi(7), dpi(4), dpi(4)) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + --APPID = + city_id = 2643743, -- placeholder (London) +}) +--]] + +-- Separators +local first = wibox.widget.textbox(markup.font("Terminus 3", " ")) +local spr = wibox.widget.textbox(' ') +local small_spr = wibox.widget.textbox(markup.font("Terminus 4", " ")) +local bar_spr = wibox.widget.textbox(markup.font("Terminus 3", " ") .. markup.fontfg(theme.font, "#777777", "|") .. markup.font("Terminus 5", " ")) + +-- Eminent-like task filtering +local orig_filter = awful.widget.taglist.filter.all + +-- Taglist label functions +awful.widget.taglist.filter.all = function (t, args) + if t.selected or #t:clients() > 0 then + return orig_filter(t, args) + end +end + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + small_spr, + s.mylayoutbox, + first, + bar_spr, + s.mytaglist, + first, + s.mypromptbox, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + small_spr, + --theme.mail.widget, + mpdicon, + theme.mpd.widget, + baticon, + batwidget, + bar_spr, + --fsicon, + --fswidget, + bar_spr, + volicon, + volumewidget, + bar_spr, + mytextclock, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/copland/wall.png b/awesome/.config/awesome/themes/copland/wall.png new file mode 100644 index 0000000..ea9e4cc Binary files /dev/null and b/awesome/.config/awesome/themes/copland/wall.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/awesome.png b/awesome/.config/awesome/themes/dremora/icons/awesome.png new file mode 100755 index 0000000..ffb105e Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/dwindle.png b/awesome/.config/awesome/themes/dremora/icons/dwindle.png new file mode 100755 index 0000000..04f3918 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/dwindle.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/fairh.png b/awesome/.config/awesome/themes/dremora/icons/fairh.png new file mode 100755 index 0000000..0bb6dab Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/fairh.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/fairv.png b/awesome/.config/awesome/themes/dremora/icons/fairv.png new file mode 100755 index 0000000..aff6c26 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/fairv.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/floating.png b/awesome/.config/awesome/themes/dremora/icons/floating.png new file mode 100755 index 0000000..5d021b1 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/magnifier.png b/awesome/.config/awesome/themes/dremora/icons/magnifier.png new file mode 100755 index 0000000..dd4dec3 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/magnifier.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/max.png b/awesome/.config/awesome/themes/dremora/icons/max.png new file mode 100755 index 0000000..7334f8b Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/max.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/spiral.png b/awesome/.config/awesome/themes/dremora/icons/spiral.png new file mode 100755 index 0000000..31cbbd0 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/spiral.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/square_sel.png b/awesome/.config/awesome/themes/dremora/icons/square_sel.png new file mode 100755 index 0000000..85cc605 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/square_unsel.png b/awesome/.config/awesome/themes/dremora/icons/square_unsel.png new file mode 100755 index 0000000..1c58e4b Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/submenu.png b/awesome/.config/awesome/themes/dremora/icons/submenu.png new file mode 100755 index 0000000..988ef9e Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/tile.png b/awesome/.config/awesome/themes/dremora/icons/tile.png new file mode 100755 index 0000000..72cbd6c Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/tilebottom.png b/awesome/.config/awesome/themes/dremora/icons/tilebottom.png new file mode 100755 index 0000000..a927128 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/tileleft.png b/awesome/.config/awesome/themes/dremora/icons/tileleft.png new file mode 100755 index 0000000..c54d1f5 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/tiletop.png b/awesome/.config/awesome/themes/dremora/icons/tiletop.png new file mode 100755 index 0000000..db74cf3 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/close_focus.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/close_focus.png new file mode 100755 index 0000000..221bca0 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/close_focus.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/close_normal.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/close_normal.png new file mode 100755 index 0000000..f923983 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/close_normal.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_focus_active.png new file mode 100755 index 0000000..d83bd00 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_focus_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_focus_inactive.png new file mode 100755 index 0000000..47f19f6 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_normal_active.png new file mode 100755 index 0000000..b788552 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_normal_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_normal_inactive.png new file mode 100755 index 0000000..4adc5e9 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/floating_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_focus_active.png new file mode 100755 index 0000000..2599cd5 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_focus_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_focus_inactive.png new file mode 100755 index 0000000..bce1d00 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_normal_active.png new file mode 100755 index 0000000..a5b1d76 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_normal_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_normal_inactive.png new file mode 100755 index 0000000..2e56d32 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_focus_active.png new file mode 100755 index 0000000..ade12fe Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_focus_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_focus_inactive.png new file mode 100755 index 0000000..2f3a2be Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_normal_active.png new file mode 100755 index 0000000..02facc4 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_normal_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_normal_inactive.png new file mode 100755 index 0000000..a9a3206 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_focus_active.png new file mode 100755 index 0000000..ebd45a1 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_focus_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_focus_inactive.png new file mode 100755 index 0000000..5493d8e Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_normal_active.png new file mode 100755 index 0000000..15f0bc4 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_normal_active.png differ diff --git a/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_normal_inactive.png new file mode 100755 index 0000000..7e6c99b Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/icons/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/dremora/theme.lua b/awesome/.config/awesome/themes/dremora/theme.lua new file mode 100644 index 0000000..5b84554 --- /dev/null +++ b/awesome/.config/awesome/themes/dremora/theme.lua @@ -0,0 +1,256 @@ +--[[ + + Dremora Awesome WM theme 2.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local os = os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/dremora" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 10.5" +theme.taglist_font = "Icons 10" +theme.fg_normal = "#747474" +theme.fg_focus = "#DDDCFF" +theme.bg_normal = "#121212" +theme.bg_focus = "#121212" +theme.fg_urgent = "#CC9393" +theme.bg_urgent = "#2A1F1E" +theme.border_width = dpi(0) +theme.border_normal = "#121212" +theme.border_focus = "#292929" +theme.titlebar_bg_focus = "#292929" +theme.taglist_fg_focus = "#dddcff" +theme.taglist_bg_focus = "#121212" +theme.menu_height = dpi(16) +theme.menu_width = dpi(130) +theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" +theme.awesome_icon = theme.dir .."/icons/awesome.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" +theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" +theme.layout_fairv = theme.dir .. "/icons/fairv.png" +theme.layout_fairh = theme.dir .. "/icons/fairh.png" +theme.layout_spiral = theme.dir .. "/icons/spiral.png" +theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" +theme.layout_max = theme.dir .. "/icons/max.png" +theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" +theme.layout_floating = theme.dir .. "/icons/floating.png" +theme.tasklist_plain_task_name = true +theme.tasklist_disable_icon = true +theme.useless_gap = dpi(10) +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" +theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" +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" + +awful.util.tagnames = { "ƀ", "Ƅ", "Ɗ", "ƈ", "ƙ" } + +local markup = lain.util.markup +local separators = lain.util.separators +local white = theme.fg_focus +local gray = "#858585" + +-- Textclock +local mytextclock = wibox.widget.textclock(markup(gray, " %a") +.. markup(white, " %d ") .. markup(gray, "%b ") .. markup(white, "%H:%M ")) +mytextclock.font = theme.font + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + font = "Terminus 11", + fg = white, + bg = theme.bg_normal +}}) + +-- Mail IMAP check +--[[ to be set before use +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + notification_preset = { fg = white } + settings = function() + mail = "" + count = "" + + if mailcount > 0 then + mail = "Mail " + count = mailcount .. " " + end + + widget:set_markup(markup.font(theme.font, markup(gray, mail) .. markup(white, count))) + end +}) +--]] + +-- MPD +theme.mpd = lain.widget.mpd({ + settings = function() + mpd_notification_preset.fg = white + artist = mpd_now.artist .. " " + title = mpd_now.title .. " " + + if mpd_now.state == "pause" then + artist = "mpd " + title = "paused " + elseif mpd_now.state == "stop" then + artist = "" + title = "" + end + + widget:set_markup(markup.font(theme.font, markup(gray, artist) .. markup(white, title))) + end +}) + +-- /home fs +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + notification_preset = { fg = white, bg = theme.bg_normal, font = "Terminus 10.5" }, + settings = function() + fs_header = "" + fs_p = "" + + if fs_now["/home"].percentage >= 90 then + fs_header = " Hdd " + fs_p = fs_now["/home"].percentage + end + + widget:set_markup(markup.font(theme.font, markup(gray, fs_header) .. markup(white, fs_p))) + end +}) +--]] + +-- Battery +local bat = lain.widget.bat({ + settings = function() + bat_header = " Bat " + bat_p = bat_now.perc .. " " + widget:set_markup(markup.font(theme.font, markup(gray, bat_header) .. markup(white, bat_p))) + end +}) + +-- ALSA volume +theme.volume = lain.widget.alsa({ + --togglechannel = "IEC958,3", + settings = function() + header = " Vol " + vlevel = volume_now.level + + if volume_now.status == "off" then + vlevel = vlevel .. "M " + else + vlevel = vlevel .. " " + end + + widget:set_markup(markup.font(theme.font, markup(gray, header) .. markup(white, vlevel))) + end +}) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + --APPID = + city_id = 2643743, -- placeholder (London) + notification_preset = { fg = white } +}) +--]] + +-- Separators +local first = wibox.widget.textbox(' ') +local arrl_pre = separators.arrow_right("alpha", "#1A1A1A") +local arrl_post = separators.arrow_right("#1A1A1A", "alpha") + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + first, + s.mytaglist, + arrl_pre, + s.mylayoutbox, + arrl_post, + s.mypromptbox, + first, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + first, + theme.mpd.widget, + --theme.mail.widget, + --theme.fs.widget, + bat.widget, + theme.volume.widget, + mytextclock, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/dremora/wall.png b/awesome/.config/awesome/themes/dremora/wall.png new file mode 100755 index 0000000..4501b60 Binary files /dev/null and b/awesome/.config/awesome/themes/dremora/wall.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/awesome_icon.png b/awesome/.config/awesome/themes/holo/icons/awesome_icon.png new file mode 100755 index 0000000..ae13162 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/awesome_icon.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/awesome_icon_white.png b/awesome/.config/awesome/themes/holo/icons/awesome_icon_white.png new file mode 100755 index 0000000..1b0de6e Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/awesome_icon_white.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/bar.png b/awesome/.config/awesome/themes/holo/icons/bar.png new file mode 100755 index 0000000..767885c Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/bar.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/bottom_bar.png b/awesome/.config/awesome/themes/holo/icons/bottom_bar.png new file mode 100755 index 0000000..076ad3b Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/bottom_bar.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/cal.png b/awesome/.config/awesome/themes/holo/icons/cal.png new file mode 100755 index 0000000..1b023ec Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/cal.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/clock.png b/awesome/.config/awesome/themes/holo/icons/clock.png new file mode 100755 index 0000000..6b2c4e5 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/clock.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/cpu.png b/awesome/.config/awesome/themes/holo/icons/cpu.png new file mode 100755 index 0000000..1ce87eb Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/cpu.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/dwindle.png b/awesome/.config/awesome/themes/holo/icons/dwindle.png new file mode 100755 index 0000000..f68b484 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/dwindle.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/fairh.png b/awesome/.config/awesome/themes/holo/icons/fairh.png new file mode 100755 index 0000000..c7e5e6d Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/fairh.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/fairv.png b/awesome/.config/awesome/themes/holo/icons/fairv.png new file mode 100755 index 0000000..d416b9d Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/fairv.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/floating.png b/awesome/.config/awesome/themes/holo/icons/floating.png new file mode 100755 index 0000000..b91cd07 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/magnifier.png b/awesome/.config/awesome/themes/holo/icons/magnifier.png new file mode 100755 index 0000000..e1f744e Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/magnifier.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/max.png b/awesome/.config/awesome/themes/holo/icons/max.png new file mode 100755 index 0000000..50d3994 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/max.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/mpd.png b/awesome/.config/awesome/themes/holo/icons/mpd.png new file mode 100755 index 0000000..efa8ec3 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/mpd.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/net_down.png b/awesome/.config/awesome/themes/holo/icons/net_down.png new file mode 100755 index 0000000..d5075a1 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/net_down.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/net_up.png b/awesome/.config/awesome/themes/holo/icons/net_up.png new file mode 100755 index 0000000..66dfb54 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/net_up.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/next.png b/awesome/.config/awesome/themes/holo/icons/next.png new file mode 100755 index 0000000..148ce90 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/next.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/pause.png b/awesome/.config/awesome/themes/holo/icons/pause.png new file mode 100755 index 0000000..9e9bc3f Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/pause.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/play.png b/awesome/.config/awesome/themes/holo/icons/play.png new file mode 100755 index 0000000..1949983 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/play.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/prev.png b/awesome/.config/awesome/themes/holo/icons/prev.png new file mode 100755 index 0000000..d913bba Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/prev.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/spiral.png b/awesome/.config/awesome/themes/holo/icons/spiral.png new file mode 100755 index 0000000..ebb7bb3 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/spiral.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/spr_bottom_right.png b/awesome/.config/awesome/themes/holo/icons/spr_bottom_right.png new file mode 100755 index 0000000..d702f98 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/spr_bottom_right.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/spr_left.png b/awesome/.config/awesome/themes/holo/icons/spr_left.png new file mode 100755 index 0000000..44822ed Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/spr_left.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/spr_right.png b/awesome/.config/awesome/themes/holo/icons/spr_right.png new file mode 100755 index 0000000..5cca795 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/spr_right.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/spr_small.png b/awesome/.config/awesome/themes/holo/icons/spr_small.png new file mode 100755 index 0000000..16492a8 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/spr_small.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/spr_very_small.png b/awesome/.config/awesome/themes/holo/icons/spr_very_small.png new file mode 100755 index 0000000..8b9a227 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/spr_very_small.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/square_sel.png b/awesome/.config/awesome/themes/holo/icons/square_sel.png new file mode 100755 index 0000000..73fb845 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/square_unsel.png b/awesome/.config/awesome/themes/holo/icons/square_unsel.png new file mode 100755 index 0000000..07dd9f0 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/stop.png b/awesome/.config/awesome/themes/holo/icons/stop.png new file mode 100755 index 0000000..bfc819c Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/stop.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/tile.png b/awesome/.config/awesome/themes/holo/icons/tile.png new file mode 100755 index 0000000..e2e52bb Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/tilebottom.png b/awesome/.config/awesome/themes/holo/icons/tilebottom.png new file mode 100755 index 0000000..439f528 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/tileleft.png b/awesome/.config/awesome/themes/holo/icons/tileleft.png new file mode 100755 index 0000000..827e0d1 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/holo/icons/tiletop.png b/awesome/.config/awesome/themes/holo/icons/tiletop.png new file mode 100755 index 0000000..7139846 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/holo/theme.lua b/awesome/.config/awesome/themes/holo/theme.lua new file mode 100644 index 0000000..75a7b48 --- /dev/null +++ b/awesome/.config/awesome/themes/holo/theme.lua @@ -0,0 +1,393 @@ +--[[ + + Holo Awesome WM theme 3.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local string, os = string, os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.default_dir = require("awful.util").get_themes_dir() .. "default" +theme.icon_dir = os.getenv("HOME") .. "/.config/awesome/themes/holo/icons" +theme.wallpaper = os.getenv("HOME") .. "/.config/awesome/themes/holo/wall.png" +theme.font = "Roboto Bold 10" +theme.taglist_font = "Roboto Condensed Regular 8" +theme.fg_normal = "#FFFFFF" +theme.fg_focus = "#0099CC" +theme.bg_focus = "#303030" +theme.bg_normal = "#242424" +theme.fg_urgent = "#CC9393" +theme.bg_urgent = "#006B8E" +theme.border_width = dpi(3) +theme.border_normal = "#252525" +theme.border_focus = "#0099CC" +theme.taglist_fg_focus = "#FFFFFF" +theme.tasklist_bg_normal = "#222222" +theme.tasklist_fg_focus = "#4CB7DB" +theme.menu_height = dpi(20) +theme.menu_width = dpi(160) +theme.menu_icon_size = dpi(32) +theme.awesome_icon = theme.icon_dir .. "/awesome_icon_white.png" +theme.awesome_icon_launcher = theme.icon_dir .. "/awesome_icon.png" +theme.taglist_squares_sel = theme.icon_dir .. "/square_sel.png" +theme.taglist_squares_unsel = theme.icon_dir .. "/square_unsel.png" +theme.spr_small = theme.icon_dir .. "/spr_small.png" +theme.spr_very_small = theme.icon_dir .. "/spr_very_small.png" +theme.spr_right = theme.icon_dir .. "/spr_right.png" +theme.spr_bottom_right = theme.icon_dir .. "/spr_bottom_right.png" +theme.spr_left = theme.icon_dir .. "/spr_left.png" +theme.bar = theme.icon_dir .. "/bar.png" +theme.bottom_bar = theme.icon_dir .. "/bottom_bar.png" +theme.mpdl = theme.icon_dir .. "/mpd.png" +theme.mpd_on = theme.icon_dir .. "/mpd_on.png" +theme.prev = theme.icon_dir .. "/prev.png" +theme.nex = theme.icon_dir .. "/next.png" +theme.stop = theme.icon_dir .. "/stop.png" +theme.pause = theme.icon_dir .. "/pause.png" +theme.play = theme.icon_dir .. "/play.png" +theme.clock = theme.icon_dir .. "/clock.png" +theme.calendar = theme.icon_dir .. "/cal.png" +theme.cpu = theme.icon_dir .. "/cpu.png" +theme.net_up = theme.icon_dir .. "/net_up.png" +theme.net_down = theme.icon_dir .. "/net_down.png" +theme.layout_tile = theme.icon_dir .. "/tile.png" +theme.layout_tileleft = theme.icon_dir .. "/tileleft.png" +theme.layout_tilebottom = theme.icon_dir .. "/tilebottom.png" +theme.layout_tiletop = theme.icon_dir .. "/tiletop.png" +theme.layout_fairv = theme.icon_dir .. "/fairv.png" +theme.layout_fairh = theme.icon_dir .. "/fairh.png" +theme.layout_spiral = theme.icon_dir .. "/spiral.png" +theme.layout_dwindle = theme.icon_dir .. "/dwindle.png" +theme.layout_max = theme.icon_dir .. "/max.png" +theme.layout_fullscreen = theme.icon_dir .. "/fullscreen.png" +theme.layout_magnifier = theme.icon_dir .. "/magnifier.png" +theme.layout_floating = theme.icon_dir .. "/floating.png" +theme.tasklist_plain_task_name = true +theme.tasklist_disable_icon = true +theme.useless_gap = dpi(4) +theme.titlebar_close_button_normal = theme.default_dir.."/titlebar/close_normal.png" +theme.titlebar_close_button_focus = theme.default_dir.."/titlebar/close_focus.png" +theme.titlebar_minimize_button_normal = theme.default_dir.."/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = theme.default_dir.."/titlebar/minimize_focus.png" +theme.titlebar_ontop_button_normal_inactive = theme.default_dir.."/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = theme.default_dir.."/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = theme.default_dir.."/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = theme.default_dir.."/titlebar/ontop_focus_active.png" +theme.titlebar_sticky_button_normal_inactive = theme.default_dir.."/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = theme.default_dir.."/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = theme.default_dir.."/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = theme.default_dir.."/titlebar/sticky_focus_active.png" +theme.titlebar_floating_button_normal_inactive = theme.default_dir.."/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = theme.default_dir.."/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = theme.default_dir.."/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = theme.default_dir.."/titlebar/floating_focus_active.png" +theme.titlebar_maximized_button_normal_inactive = theme.default_dir.."/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = theme.default_dir.."/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = theme.default_dir.."/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = theme.default_dir.."/titlebar/maximized_focus_active.png" + +theme.musicplr = string.format("%s -e ncmpcpp", awful.util.terminal) + +local markup = lain.util.markup +local blue = "#80CCE6" +local space3 = markup.font("Roboto 3", " ") + +-- Clock +local mytextclock = wibox.widget.textclock(markup("#FFFFFF", space3 .. "%H:%M " .. markup.font("Roboto 4", " "))) +mytextclock.font = theme.font +local clock_icon = wibox.widget.imagebox(theme.clock) +local clockbg = wibox.container.background(mytextclock, theme.bg_focus, gears.shape.rectangle) +local clockwidget = wibox.container.margin(clockbg, dpi(0), dpi(3), dpi(5), dpi(5)) + +-- Calendar +local mytextcalendar = wibox.widget.textclock(markup.fontfg(theme.font, "#FFFFFF", space3 .. "%d %b " .. markup.font("Roboto 5", " "))) +local calendar_icon = wibox.widget.imagebox(theme.calendar) +local calbg = wibox.container.background(mytextcalendar, theme.bg_focus, gears.shape.rectangle) +local calendarwidget = wibox.container.margin(calbg, dpi(0), dpi(0), dpi(5), dpi(5)) +theme.cal = lain.widget.cal({ + attach_to = { mytextclock, mytextcalendar }, + notification_preset = { + fg = "#FFFFFF", + bg = theme.bg_normal, + position = "bottom_right", + font = "Monospace 10" + } +}) + +-- Mail IMAP check +--[[ to be set before use +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + mail_notification_preset.fg = "#FFFFFF" + mail = "" + count = "" + + if mailcount > 0 then + mail = "Mail " + count = mailcount .. " " + end + + widget:set_markup(markup.font(theme.font, markup(blue, mail) .. markup("#FFFFFF", count))) + end +}) +--]] + +-- MPD +local mpd_icon = awful.widget.launcher({ image = theme.mpdl, command = theme.musicplr }) +local prev_icon = wibox.widget.imagebox(theme.prev) +local next_icon = wibox.widget.imagebox(theme.nex) +local stop_icon = wibox.widget.imagebox(theme.stop) +local pause_icon = wibox.widget.imagebox(theme.pause) +local play_pause_icon = wibox.widget.imagebox(theme.play) +theme.mpd = lain.widget.mpd({ + settings = function () + if mpd_now.state == "play" then + mpd_now.artist = mpd_now.artist:upper():gsub("&.-;", string.lower) + mpd_now.title = mpd_now.title:upper():gsub("&.-;", string.lower) + widget:set_markup(markup.font("Roboto 4", " ") + .. markup.font(theme.taglist_font, + " " .. mpd_now.artist + .. " - " .. + mpd_now.title .. " ") .. markup.font("Roboto 5", " ")) + play_pause_icon:set_image(theme.pause) + elseif mpd_now.state == "pause" then + widget:set_markup(markup.font("Roboto 4", " ") .. + markup.font(theme.taglist_font, " MPD PAUSED ") .. + markup.font("Roboto 5", " ")) + play_pause_icon:set_image(theme.play) + else + widget:set_markup("") + play_pause_icon:set_image(theme.play) + end + end +}) +local musicbg = wibox.container.background(theme.mpd.widget, theme.bg_focus, gears.shape.rectangle) +local musicwidget = wibox.container.margin(musicbg, dpi(0), dpi(0), dpi(5), dpi(5)) + +musicwidget:buttons(my_table.join(awful.button({ }, 1, +function () awful.spawn(theme.musicplr) end))) +prev_icon:buttons(my_table.join(awful.button({}, 1, +function () + os.execute("mpc prev") + theme.mpd.update() +end))) +next_icon:buttons(my_table.join(awful.button({}, 1, +function () + os.execute("mpc next") + theme.mpd.update() +end))) +stop_icon:buttons(my_table.join(awful.button({}, 1, +function () + play_pause_icon:set_image(theme.play) + os.execute("mpc stop") + theme.mpd.update() +end))) +play_pause_icon:buttons(my_table.join(awful.button({}, 1, +function () + os.execute("mpc toggle") + theme.mpd.update() +end))) + +-- Battery +local bat = lain.widget.bat({ + settings = function() + bat_header = " Bat " + bat_p = bat_now.perc .. " " + if bat_now.ac_status == 1 then + bat_p = bat_p .. "Plugged " + end + widget:set_markup(markup.font(theme.font, markup(blue, bat_header) .. bat_p)) + end +}) + +-- / fs +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + notification_preset = { bg = theme.bg_normal, font = "Monospace 9" }, +}) +--]] + +-- ALSA volume bar +theme.volume = lain.widget.alsabar({ + notification_preset = { font = "Monospace 9"}, + --togglechannel = "IEC958,3", + width = dpi(80), height = dpi(10), border_width = dpi(0), + colors = { + background = "#383838", + unmute = "#80CCE6", + mute = "#FF9F9F" + }, +}) +theme.volume.bar.paddings = dpi(0) +theme.volume.bar.margins = dpi(5) +local volumewidget = wibox.container.background(theme.volume.bar, theme.bg_focus, gears.shape.rectangle) +volumewidget = wibox.container.margin(volumewidget, dpi(0), dpi(0), dpi(5), dpi(5)) + +-- CPU +local cpu_icon = wibox.widget.imagebox(theme.cpu) +local cpu = lain.widget.cpu({ + settings = function() + widget:set_markup(space3 .. markup.font(theme.font, "CPU " .. cpu_now.usage + .. "% ") .. markup.font("Roboto 5", " ")) + end +}) +local cpubg = wibox.container.background(cpu.widget, theme.bg_focus, gears.shape.rectangle) +local cpuwidget = wibox.container.margin(cpubg, dpi(0), dpi(0), dpi(5), dpi(5)) + +-- Net +local netdown_icon = wibox.widget.imagebox(theme.net_down) +local netup_icon = wibox.widget.imagebox(theme.net_up) +local net = lain.widget.net({ + settings = function() + widget:set_markup(markup.font("Roboto 1", " ") .. markup.font(theme.font, net_now.received .. " - " + .. net_now.sent) .. markup.font("Roboto 2", " ")) + end +}) +local netbg = wibox.container.background(net.widget, theme.bg_focus, gears.shape.rectangle) +local networkwidget = wibox.container.margin(netbg, dpi(0), dpi(0), dpi(5), dpi(5)) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + --APPID = + city_id = 2643743, -- placeholder (London) + notification_preset = { font = "Monospace 9", position = "bottom_right" }, +}) +--]] + +-- Launcher +local mylauncher = awful.widget.button({ image = theme.awesome_icon_launcher }) +mylauncher:connect_signal("button::press", function() awful.util.mymainmenu:toggle() end) + +-- Separators +local first = wibox.widget.textbox(' ') +local spr_small = wibox.widget.imagebox(theme.spr_small) +local spr_very_small = wibox.widget.imagebox(theme.spr_very_small) +local spr_right = wibox.widget.imagebox(theme.spr_right) +local spr_bottom_right = wibox.widget.imagebox(theme.spr_bottom_right) +local spr_left = wibox.widget.imagebox(theme.spr_left) +local bar = wibox.widget.imagebox(theme.bar) +local bottom_bar = wibox.widget.imagebox(theme.bottom_bar) + +local barcolor = gears.color({ + type = "linear", + from = { dpi(32), 0 }, + to = { dpi(32), dpi(32) }, + stops = { {0, theme.bg_focus}, {0.25, "#505050"}, {1, theme.bg_focus} } +}) + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons, { bg_focus = barcolor }) + + mytaglistcont = wibox.container.background(s.mytaglist, theme.bg_focus, gears.shape.rectangle) + s.mytag = wibox.container.margin(mytaglistcont, dpi(0), dpi(0), dpi(5), dpi(5)) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons, { bg_focus = theme.bg_focus, shape = gears.shape.rectangle, shape_border_width = 5, shape_border_color = theme.tasklist_bg_normal, align = "center" }) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(32) }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + first, + s.mytag, + spr_small, + s.mylayoutbox, + spr_small, + s.mypromptbox, + }, + nil, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + --theme.mail.widget, + --bat.widget, + spr_right, + musicwidget, + bar, + prev_icon, + next_icon, + stop_icon, + play_pause_icon, + bar, + mpd_icon, + bar, + spr_very_small, + volumewidget, + spr_left, + }, + } + + -- Create the bottom wibox + s.mybottomwibox = awful.wibar({ position = "bottom", screen = s, border_width = dpi(0), height = dpi(32) }) + s.borderwibox = awful.wibar({ position = "bottom", screen = s, height = dpi(1), bg = theme.fg_focus, x = dpi(0), y = dpi(33)}) + + -- Add widgets to the bottom wibox + s.mybottomwibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + mylauncher, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + spr_bottom_right, + netdown_icon, + networkwidget, + netup_icon, + bottom_bar, + cpu_icon, + cpuwidget, + bottom_bar, + calendar_icon, + calendarwidget, + bottom_bar, + clock_icon, + clockwidget, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/holo/wall.png b/awesome/.config/awesome/themes/holo/wall.png new file mode 100755 index 0000000..7ec8009 Binary files /dev/null and b/awesome/.config/awesome/themes/holo/wall.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/ac.png b/awesome/.config/awesome/themes/multicolor/icons/ac.png new file mode 100755 index 0000000..272b832 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/ac.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/bat.png b/awesome/.config/awesome/themes/multicolor/icons/bat.png new file mode 100755 index 0000000..bd63927 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/bat.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/clock.png b/awesome/.config/awesome/themes/multicolor/icons/clock.png new file mode 100755 index 0000000..22aef71 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/clock.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/cpu.png b/awesome/.config/awesome/themes/multicolor/icons/cpu.png new file mode 100755 index 0000000..e3794ca Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/cpu.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/dish.png b/awesome/.config/awesome/themes/multicolor/icons/dish.png new file mode 100755 index 0000000..c71499b Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/dish.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/dwindle.png b/awesome/.config/awesome/themes/multicolor/icons/dwindle.png new file mode 100755 index 0000000..94d8382 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/dwindle.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/fairh.png b/awesome/.config/awesome/themes/multicolor/icons/fairh.png new file mode 100755 index 0000000..4468efc Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/fairh.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/fairv.png b/awesome/.config/awesome/themes/multicolor/icons/fairv.png new file mode 100755 index 0000000..7c8728e Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/fairv.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/floating.png b/awesome/.config/awesome/themes/multicolor/icons/floating.png new file mode 100755 index 0000000..7593a2a Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/fs.png b/awesome/.config/awesome/themes/multicolor/icons/fs.png new file mode 100755 index 0000000..1c1b13e Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/fs.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/fullscreen.png b/awesome/.config/awesome/themes/multicolor/icons/fullscreen.png new file mode 100755 index 0000000..f63a69c Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/fullscreen.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/magnifier.png b/awesome/.config/awesome/themes/multicolor/icons/magnifier.png new file mode 100755 index 0000000..8819554 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/magnifier.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/mail.png b/awesome/.config/awesome/themes/multicolor/icons/mail.png new file mode 100755 index 0000000..25021f5 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/mail.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/max.png b/awesome/.config/awesome/themes/multicolor/icons/max.png new file mode 100755 index 0000000..4b6a8c3 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/max.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/mem.png b/awesome/.config/awesome/themes/multicolor/icons/mem.png new file mode 100755 index 0000000..d04ee11 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/mem.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/net_down.png b/awesome/.config/awesome/themes/multicolor/icons/net_down.png new file mode 100755 index 0000000..09433b1 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/net_down.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/net_up.png b/awesome/.config/awesome/themes/multicolor/icons/net_up.png new file mode 100755 index 0000000..395d014 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/net_up.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/note.png b/awesome/.config/awesome/themes/multicolor/icons/note.png new file mode 100755 index 0000000..2f41eb3 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/note.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/note_on.png b/awesome/.config/awesome/themes/multicolor/icons/note_on.png new file mode 100755 index 0000000..264d2c8 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/note_on.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/spiral.png b/awesome/.config/awesome/themes/multicolor/icons/spiral.png new file mode 100755 index 0000000..6a1ebf1 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/spiral.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/spkr.png b/awesome/.config/awesome/themes/multicolor/icons/spkr.png new file mode 100755 index 0000000..80c20b0 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/spkr.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/square_a.png b/awesome/.config/awesome/themes/multicolor/icons/square_a.png new file mode 100755 index 0000000..1774d95 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/square_a.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/square_b.png b/awesome/.config/awesome/themes/multicolor/icons/square_b.png new file mode 100755 index 0000000..b47e9f3 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/square_b.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/submenu.png b/awesome/.config/awesome/themes/multicolor/icons/submenu.png new file mode 100755 index 0000000..7c81cab Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/temp.png b/awesome/.config/awesome/themes/multicolor/icons/temp.png new file mode 100755 index 0000000..6c8f8bd Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/temp.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/tile.png b/awesome/.config/awesome/themes/multicolor/icons/tile.png new file mode 100755 index 0000000..64103d9 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/tilebottom.png b/awesome/.config/awesome/themes/multicolor/icons/tilebottom.png new file mode 100755 index 0000000..9363636 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/tileleft.png b/awesome/.config/awesome/themes/multicolor/icons/tileleft.png new file mode 100755 index 0000000..9331898 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/tiletop.png b/awesome/.config/awesome/themes/multicolor/icons/tiletop.png new file mode 100755 index 0000000..1cef886 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/close_focus.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/close_focus.png new file mode 100755 index 0000000..cd297db Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/close_focus.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/close_normal.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/close_normal.png new file mode 100755 index 0000000..5448ed8 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/close_normal.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_focus_active.png new file mode 100755 index 0000000..ae5a8e2 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_focus_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_focus_inactive.png new file mode 100755 index 0000000..c54eb0c Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_normal_active.png new file mode 100755 index 0000000..62342d1 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_normal_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_normal_inactive.png new file mode 100755 index 0000000..e2bbdfa Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/floating_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_focus_active.png new file mode 100755 index 0000000..957298b Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_focus_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_focus_inactive.png new file mode 100755 index 0000000..1187229 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_normal_active.png new file mode 100755 index 0000000..a705f81 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_normal_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_normal_inactive.png new file mode 100755 index 0000000..4c1ab1f Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/minimize_focus.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/minimize_focus.png new file mode 100755 index 0000000..bbe8cff Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/minimize_focus.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/minimize_normal.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/minimize_normal.png new file mode 100755 index 0000000..36621d0 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/minimize_normal.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_focus_active.png new file mode 100755 index 0000000..25a3080 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_focus_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_focus_inactive.png new file mode 100755 index 0000000..d3c077a Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_normal_active.png new file mode 100755 index 0000000..117a203 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_normal_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_normal_inactive.png new file mode 100755 index 0000000..d3a10c8 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_focus_active.png new file mode 100755 index 0000000..147ce6a Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_focus_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_focus_inactive.png new file mode 100755 index 0000000..396628a Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_normal_active.png new file mode 100755 index 0000000..bdb5595 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_normal_active.png differ diff --git a/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_normal_inactive.png new file mode 100755 index 0000000..a96b9b1 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/icons/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/multicolor/theme.lua b/awesome/.config/awesome/themes/multicolor/theme.lua new file mode 100644 index 0000000..e7cbbce --- /dev/null +++ b/awesome/.config/awesome/themes/multicolor/theme.lua @@ -0,0 +1,350 @@ +--[[ + + Multicolor Awesome WM theme 2.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local os = os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.confdir = os.getenv("HOME") .. "/.config/awesome/themes/multicolor" +theme.wallpaper = theme.confdir .. "/wall.png" +theme.font = "Terminus 8" +theme.menu_bg_normal = "#000000" +theme.menu_bg_focus = "#000000" +theme.bg_normal = "#000000" +theme.bg_focus = "#000000" +theme.bg_urgent = "#000000" +theme.fg_normal = "#aaaaaa" +theme.fg_focus = "#ff8c00" +theme.fg_urgent = "#af1d18" +theme.fg_minimize = "#ffffff" +theme.border_width = dpi(1) +theme.border_normal = "#1c2022" +theme.border_focus = "#606060" +theme.border_marked = "#3ca4d8" +theme.menu_border_width = 0 +theme.menu_width = dpi(130) +theme.menu_submenu_icon = theme.confdir .. "/icons/submenu.png" +theme.menu_fg_normal = "#aaaaaa" +theme.menu_fg_focus = "#ff8c00" +theme.menu_bg_normal = "#050505dd" +theme.menu_bg_focus = "#050505dd" +theme.widget_temp = theme.confdir .. "/icons/temp.png" +theme.widget_uptime = theme.confdir .. "/icons/ac.png" +theme.widget_cpu = theme.confdir .. "/icons/cpu.png" +theme.widget_weather = theme.confdir .. "/icons/dish.png" +theme.widget_fs = theme.confdir .. "/icons/fs.png" +theme.widget_mem = theme.confdir .. "/icons/mem.png" +theme.widget_note = theme.confdir .. "/icons/note.png" +theme.widget_note_on = theme.confdir .. "/icons/note_on.png" +theme.widget_netdown = theme.confdir .. "/icons/net_down.png" +theme.widget_netup = theme.confdir .. "/icons/net_up.png" +theme.widget_mail = theme.confdir .. "/icons/mail.png" +theme.widget_batt = theme.confdir .. "/icons/bat.png" +theme.widget_clock = theme.confdir .. "/icons/clock.png" +theme.widget_vol = theme.confdir .. "/icons/spkr.png" +theme.taglist_squares_sel = theme.confdir .. "/icons/square_a.png" +theme.taglist_squares_unsel = theme.confdir .. "/icons/square_b.png" +theme.tasklist_plain_task_name = true +theme.tasklist_disable_icon = true +theme.useless_gap = 0 +theme.layout_tile = theme.confdir .. "/icons/tile.png" +theme.layout_tilegaps = theme.confdir .. "/icons/tilegaps.png" +theme.layout_tileleft = theme.confdir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.confdir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.confdir .. "/icons/tiletop.png" +theme.layout_fairv = theme.confdir .. "/icons/fairv.png" +theme.layout_fairh = theme.confdir .. "/icons/fairh.png" +theme.layout_spiral = theme.confdir .. "/icons/spiral.png" +theme.layout_dwindle = theme.confdir .. "/icons/dwindle.png" +theme.layout_max = theme.confdir .. "/icons/max.png" +theme.layout_fullscreen = theme.confdir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.confdir .. "/icons/magnifier.png" +theme.layout_floating = theme.confdir .. "/icons/floating.png" +theme.titlebar_close_button_normal = theme.confdir .. "/icons/titlebar/close_normal.png" +theme.titlebar_close_button_focus = theme.confdir .. "/icons/titlebar/close_focus.png" +theme.titlebar_minimize_button_normal = theme.confdir .. "/icons/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = theme.confdir .. "/icons/titlebar/minimize_focus.png" +theme.titlebar_ontop_button_normal_inactive = theme.confdir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = theme.confdir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = theme.confdir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = theme.confdir .. "/icons/titlebar/ontop_focus_active.png" +theme.titlebar_sticky_button_normal_inactive = theme.confdir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = theme.confdir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = theme.confdir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = theme.confdir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_floating_button_normal_inactive = theme.confdir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = theme.confdir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = theme.confdir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = theme.confdir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_maximized_button_normal_inactive = theme.confdir .. "/icons/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = theme.confdir .. "/icons/titlebar/maximized_focus_inactive.png" +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" + +local markup = lain.util.markup + +-- Textclock +os.setlocale(os.getenv("LANG")) -- to localize the clock +local clockicon = wibox.widget.imagebox(theme.widget_clock) +local mytextclock = wibox.widget.textclock(markup("#7788af", "%A %d %B ") .. markup("#ab7367", ">") .. markup("#de5e1e", " %H:%M ")) +mytextclock.font = theme.font + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + font = "Terminus 10", + fg = theme.fg_normal, + bg = theme.bg_normal + } +}) + +-- Weather +--[[ to be set before use +local weathericon = wibox.widget.imagebox(theme.widget_weather) +theme.weather = lain.widget.weather({ + city_id = 2643743, -- placeholder (London) + notification_preset = { font = "Terminus 10", fg = theme.fg_normal }, + weather_na_markup = markup.fontfg(theme.font, "#eca4c4", "N/A "), + settings = function() + descr = weather_now["weather"][1]["description"]:lower() + units = math.floor(weather_now["main"]["temp"]) + widget:set_markup(markup.fontfg(theme.font, "#eca4c4", descr .. " @ " .. units .. "°C ")) + end +}) +--]] + +-- / fs +--[[ commented because it needs Gio/Glib >= 2.54 +local fsicon = wibox.widget.imagebox(theme.widget_fs) +theme.fs = lain.widget.fs({ + notification_preset = { font = "Terminus 10", fg = theme.fg_normal }, + settings = function() + widget:set_markup(markup.fontfg(theme.font, "#80d9d8", string.format("%.1f", fs_now["/"].used) .. "% ")) + end +}) +--]] + +-- Mail IMAP check +--[[ to be set before use +local mailicon = wibox.widget.imagebox() +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + if mailcount > 0 then + mailicon:set_image(theme.widget_mail) + widget:set_markup(markup.fontfg(theme.font, "#cccccc", mailcount .. " ")) + else + widget:set_text("") + --mailicon:set_image() -- not working in 4.0 + mailicon._private.image = nil + mailicon:emit_signal("widget::redraw_needed") + mailicon:emit_signal("widget::layout_changed") + end + end +}) +--]] + +-- CPU +local cpuicon = wibox.widget.imagebox(theme.widget_cpu) +local cpu = lain.widget.cpu({ + settings = function() + widget:set_markup(markup.fontfg(theme.font, "#e33a6e", cpu_now.usage .. "% ")) + end +}) + +-- Coretemp +local tempicon = wibox.widget.imagebox(theme.widget_temp) +local temp = lain.widget.temp({ + settings = function() + widget:set_markup(markup.fontfg(theme.font, "#f1af5f", coretemp_now .. "°C ")) + end +}) + +-- Battery +local baticon = wibox.widget.imagebox(theme.widget_batt) +local bat = lain.widget.bat({ + settings = function() + local perc = bat_now.perc ~= "N/A" and bat_now.perc .. "%" or bat_now.perc + + if bat_now.ac_status == 1 then + perc = perc .. " plug" + end + + widget:set_markup(markup.fontfg(theme.font, theme.fg_normal, perc .. " ")) + end +}) + +-- ALSA volume +local volicon = wibox.widget.imagebox(theme.widget_vol) +theme.volume = lain.widget.alsa({ + settings = function() + if volume_now.status == "off" then + volume_now.level = volume_now.level .. "M" + end + + widget:set_markup(markup.fontfg(theme.font, "#7493d2", volume_now.level .. "% ")) + end +}) + +-- Net +local netdownicon = wibox.widget.imagebox(theme.widget_netdown) +local netdowninfo = wibox.widget.textbox() +local netupicon = wibox.widget.imagebox(theme.widget_netup) +local netupinfo = lain.widget.net({ + settings = function() + --[[ uncomment if using the weather widget + if iface ~= "network off" and + string.match(theme.weather.widget.text, "N/A") + then + theme.weather.update() + end + --]] + + widget:set_markup(markup.fontfg(theme.font, "#e54c62", net_now.sent .. " ")) + netdowninfo:set_markup(markup.fontfg(theme.font, "#87af5f", net_now.received .. " ")) + end +}) + +-- MEM +local memicon = wibox.widget.imagebox(theme.widget_mem) +local memory = lain.widget.mem({ + settings = function() + widget:set_markup(markup.fontfg(theme.font, "#e0da37", mem_now.used .. "M ")) + end +}) + +-- MPD +local mpdicon = wibox.widget.imagebox() +theme.mpd = lain.widget.mpd({ + settings = function() + mpd_notification_preset = { + text = string.format("%s [%s] - %s\n%s", mpd_now.artist, + mpd_now.album, mpd_now.date, mpd_now.title) + } + + if mpd_now.state == "play" then + artist = mpd_now.artist .. " > " + title = mpd_now.title .. " " + mpdicon:set_image(theme.widget_note_on) + elseif mpd_now.state == "pause" then + artist = "mpd " + title = "paused " + else + artist = "" + title = "" + --mpdicon:set_image() -- not working in 4.0 + mpdicon._private.image = nil + mpdicon:emit_signal("widget::redraw_needed") + mpdicon:emit_signal("widget::layout_changed") + end + widget:set_markup(markup.fontfg(theme.font, "#e54c62", artist) .. markup.fontfg(theme.font, "#b2b2b2", title)) + end +}) + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(19), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + --s.mylayoutbox, + s.mytaglist, + s.mypromptbox, + mpdicon, + theme.mpd.widget, + }, + --s.mytasklist, -- Middle widget + nil, + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + --mailicon, + --theme.mail.widget, + netdownicon, + netdowninfo, + netupicon, + netupinfo.widget, + volicon, + theme.volume.widget, + memicon, + memory.widget, + cpuicon, + cpu.widget, + --fsicon, + --theme.fs.widget, + --weathericon, + --theme.weather.widget, + tempicon, + temp.widget, + baticon, + bat.widget, + clockicon, + mytextclock, + }, + } + + -- Create the bottom wibox + s.mybottomwibox = awful.wibar({ position = "bottom", screen = s, border_width = 0, height = dpi(20), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the bottom wibox + s.mybottomwibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + s.mylayoutbox, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/multicolor/wall.png b/awesome/.config/awesome/themes/multicolor/wall.png new file mode 100755 index 0000000..a3188d0 Binary files /dev/null and b/awesome/.config/awesome/themes/multicolor/wall.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/ac.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/ac.png new file mode 100755 index 0000000..96efcb4 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/ac.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/battery.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/battery.png new file mode 100755 index 0000000..8c85596 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/battery.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/battery_empty.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/battery_empty.png new file mode 100755 index 0000000..00821c9 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/battery_empty.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/battery_low.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/battery_low.png new file mode 100755 index 0000000..29f3fc5 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/battery_low.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/centerfair.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/centerfair.png new file mode 100755 index 0000000..c4f64b0 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/centerfair.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/centerwork.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/centerwork.png new file mode 100755 index 0000000..9071516 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/centerwork.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/centerworkh.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/centerworkh.png new file mode 100755 index 0000000..b1d1379 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/centerworkh.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/cpu.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/cpu.png new file mode 100755 index 0000000..35af1c3 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/cpu.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/dwindle.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/dwindle.png new file mode 100755 index 0000000..649ea99 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/dwindle.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/fairh.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/fairh.png new file mode 100755 index 0000000..62d3d99 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/fairh.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/fairv.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/fairv.png new file mode 100755 index 0000000..131dd0f Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/fairv.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/floating.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/floating.png new file mode 100755 index 0000000..d25c47b Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/hdd.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/hdd.png new file mode 100755 index 0000000..0fb6833 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/hdd.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/magnifier.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/magnifier.png new file mode 100755 index 0000000..60d3e0d Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/magnifier.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/mail.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/mail.png new file mode 100755 index 0000000..474e602 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/mail.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/mail_on.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/mail_on.png new file mode 100755 index 0000000..19106d7 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/mail_on.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/max.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/max.png new file mode 100755 index 0000000..5b0a5b7 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/max.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/mem.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/mem.png new file mode 100755 index 0000000..7860a1a Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/mem.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/net.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/net.png new file mode 100755 index 0000000..bc42fdc Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/net.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/net_wired.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/net_wired.png new file mode 100755 index 0000000..e8cc2bd Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/net_wired.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/note.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/note.png new file mode 100755 index 0000000..baa29c3 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/note.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/note_on.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/note_on.png new file mode 100755 index 0000000..1a7ab94 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/note_on.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/scissors.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/scissors.png new file mode 100755 index 0000000..f8c700d Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/scissors.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/spiral.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/spiral.png new file mode 100755 index 0000000..d9ee0f6 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/spiral.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/square_sel.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/square_sel.png new file mode 100755 index 0000000..1102a9f Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/square_unsel.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/square_unsel.png new file mode 100755 index 0000000..7386b85 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/submenu.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/submenu.png new file mode 100755 index 0000000..b55ebce Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/task.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/task.png new file mode 100755 index 0000000..9701b68 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/task.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/temp.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/temp.png new file mode 100755 index 0000000..6793a9f Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/temp.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/termfair.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/termfair.png new file mode 100755 index 0000000..3e06023 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/termfair.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/tile.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/tile.png new file mode 100755 index 0000000..922c05c Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/tilebottom.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/tilebottom.png new file mode 100755 index 0000000..6ec9cb8 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/tileleft.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/tileleft.png new file mode 100755 index 0000000..8e3d2d6 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/tiletop.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/tiletop.png new file mode 100755 index 0000000..3da75a1 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/close_focus.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/close_focus.png new file mode 100755 index 0000000..b2051b0 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/close_focus.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/close_normal.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/close_normal.png new file mode 100755 index 0000000..da6028c Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/close_normal.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_focus_active.png new file mode 100755 index 0000000..5fe84c0 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_focus_inactive.png new file mode 100755 index 0000000..47f19f6 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_normal_active.png new file mode 100755 index 0000000..576fa36 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_normal_inactive.png new file mode 100755 index 0000000..4adc5e9 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/floating_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_focus_active.png new file mode 100755 index 0000000..7d9a11a Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_focus_inactive.png new file mode 100755 index 0000000..bce1d00 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_normal_active.png new file mode 100755 index 0000000..9f24945 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_normal_inactive.png new file mode 100755 index 0000000..2e56d32 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_focus_active.png new file mode 100755 index 0000000..41a69e2 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_focus_inactive.png new file mode 100755 index 0000000..2f3a2be Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_normal_active.png new file mode 100755 index 0000000..0f937b7 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_normal_inactive.png new file mode 100755 index 0000000..a9a3206 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_focus_active.png new file mode 100755 index 0000000..a9bc8a2 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_focus_inactive.png new file mode 100755 index 0000000..5493d8e Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_normal_active.png new file mode 100755 index 0000000..1e150f5 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_normal_inactive.png new file mode 100755 index 0000000..7e6c99b Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/vol.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol.png new file mode 100755 index 0000000..bbf33d4 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_low.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_low.png new file mode 100755 index 0000000..aa3ce4d Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_low.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_mute.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_mute.png new file mode 100755 index 0000000..e855fd2 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_mute.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_no.png b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_no.png new file mode 100755 index 0000000..bbe917b Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/icons/vol_no.png differ diff --git a/awesome/.config/awesome/themes/powerarrow-dark/theme.lua b/awesome/.config/awesome/themes/powerarrow-dark/theme.lua new file mode 100644 index 0000000..f72b3c9 --- /dev/null +++ b/awesome/.config/awesome/themes/powerarrow-dark/theme.lua @@ -0,0 +1,359 @@ +--[[ + + Powerarrow Dark Awesome WM theme + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local os = os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/powerarrow-dark" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 9" +theme.fg_normal = "#DDDDFF" +theme.fg_focus = "#EA6F81" +theme.fg_urgent = "#CC9393" +theme.bg_normal = "#1A1A1A" +theme.bg_focus = "#313131" +theme.bg_urgent = "#1A1A1A" +theme.border_width = dpi(1) +theme.border_normal = "#3F3F3F" +theme.border_focus = "#7F7F7F" +theme.border_marked = "#CC9393" +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 = dpi(16) +theme.menu_width = dpi(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" +theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" +theme.layout_fairv = theme.dir .. "/icons/fairv.png" +theme.layout_fairh = theme.dir .. "/icons/fairh.png" +theme.layout_spiral = theme.dir .. "/icons/spiral.png" +theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" +theme.layout_max = theme.dir .. "/icons/max.png" +theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" +theme.layout_floating = theme.dir .. "/icons/floating.png" +theme.widget_ac = theme.dir .. "/icons/ac.png" +theme.widget_battery = theme.dir .. "/icons/battery.png" +theme.widget_battery_low = theme.dir .. "/icons/battery_low.png" +theme.widget_battery_empty = theme.dir .. "/icons/battery_empty.png" +theme.widget_mem = theme.dir .. "/icons/mem.png" +theme.widget_cpu = theme.dir .. "/icons/cpu.png" +theme.widget_temp = theme.dir .. "/icons/temp.png" +theme.widget_net = theme.dir .. "/icons/net.png" +theme.widget_hdd = theme.dir .. "/icons/hdd.png" +theme.widget_music = theme.dir .. "/icons/note.png" +theme.widget_music_on = theme.dir .. "/icons/note_on.png" +theme.widget_vol = theme.dir .. "/icons/vol.png" +theme.widget_vol_low = theme.dir .. "/icons/vol_low.png" +theme.widget_vol_no = theme.dir .. "/icons/vol_no.png" +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 = dpi(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" +theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" +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" + +local markup = lain.util.markup +local separators = lain.util.separators + +local keyboardlayout = awful.widget.keyboardlayout:new() + +-- Textclock +local clockicon = wibox.widget.imagebox(theme.widget_clock) +local clock = awful.widget.watch( + "date +'%a %d %b %R'", 60, + function(widget, stdout) + widget:set_markup(" " .. markup.font(theme.font, stdout)) + end +) + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { clock }, + notification_preset = { + font = "Terminus 10", + fg = theme.fg_normal, + bg = theme.bg_normal + } +}) + +-- Mail IMAP check +local mailicon = wibox.widget.imagebox(theme.widget_mail) +--[[ commented because it needs to be set before use +mailicon:buttons(my_table.join(awful.button({ }, 1, function () awful.spawn(mail) end))) +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + if mailcount > 0 then + widget:set_markup(markup.font(theme.font, " " .. mailcount .. " ")) + mailicon:set_image(theme.widget_mail_on) + else + widget:set_text("") + mailicon:set_image(theme.widget_mail) + end + end +}) +--]] + +-- MPD +local musicplr = awful.util.terminal .. " -title Music -e ncmpcpp" +local mpdicon = wibox.widget.imagebox(theme.widget_music) +mpdicon:buttons(my_table.join( + awful.button({ "Mod4" }, 1, function () awful.spawn(musicplr) end), + awful.button({ }, 1, function () + os.execute("mpc prev") + theme.mpd.update() + end), + awful.button({ }, 2, function () + os.execute("mpc toggle") + theme.mpd.update() + end), + awful.button({ }, 3, function () + os.execute("mpc next") + theme.mpd.update() + end))) +theme.mpd = lain.widget.mpd({ + settings = function() + if mpd_now.state == "play" then + artist = " " .. mpd_now.artist .. " " + title = mpd_now.title .. " " + mpdicon:set_image(theme.widget_music_on) + elseif mpd_now.state == "pause" then + artist = " mpd " + title = "paused " + else + artist = "" + title = "" + mpdicon:set_image(theme.widget_music) + end + + widget:set_markup(markup.font(theme.font, markup("#EA6F81", artist) .. title)) + end +}) + +-- MEM +local memicon = wibox.widget.imagebox(theme.widget_mem) +local mem = lain.widget.mem({ + settings = function() + widget:set_markup(markup.font(theme.font, " " .. mem_now.used .. "MB ")) + end +}) + +-- CPU +local cpuicon = wibox.widget.imagebox(theme.widget_cpu) +local cpu = lain.widget.cpu({ + settings = function() + widget:set_markup(markup.font(theme.font, " " .. cpu_now.usage .. "% ")) + end +}) + +-- Coretemp +local tempicon = wibox.widget.imagebox(theme.widget_temp) +local temp = lain.widget.temp({ + settings = function() + widget:set_markup(markup.font(theme.font, " " .. coretemp_now .. "°C ")) + end +}) + +-- / fs +local fsicon = wibox.widget.imagebox(theme.widget_hdd) +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + notification_preset = { fg = theme.fg_normal, bg = theme.bg_normal, font = "Terminus 10" }, + settings = function() + widget:set_markup(markup.font(theme.font, " " .. fs_now["/"].percentage .. "% ")) + end +}) +--]] + +-- Battery +local baticon = wibox.widget.imagebox(theme.widget_battery) +local bat = lain.widget.bat({ + settings = function() + if bat_now.status and bat_now.status ~= "N/A" then + if bat_now.ac_status == 1 then + baticon:set_image(theme.widget_ac) + elseif not bat_now.perc and tonumber(bat_now.perc) <= 5 then + baticon:set_image(theme.widget_battery_empty) + elseif not bat_now.perc and tonumber(bat_now.perc) <= 15 then + baticon:set_image(theme.widget_battery_low) + else + baticon:set_image(theme.widget_battery) + end + widget:set_markup(markup.font(theme.font, " " .. bat_now.perc .. "% ")) + else + widget:set_markup(markup.font(theme.font, " AC ")) + baticon:set_image(theme.widget_ac) + end + end +}) + +-- ALSA volume +local volicon = wibox.widget.imagebox(theme.widget_vol) +theme.volume = lain.widget.alsa({ + settings = function() + if volume_now.status == "off" then + volicon:set_image(theme.widget_vol_mute) + elseif tonumber(volume_now.level) == 0 then + volicon:set_image(theme.widget_vol_no) + elseif tonumber(volume_now.level) <= 50 then + volicon:set_image(theme.widget_vol_low) + else + volicon:set_image(theme.widget_vol) + end + + widget:set_markup(markup.font(theme.font, " " .. volume_now.level .. "% ")) + end +}) +theme.volume.widget:buttons(awful.util.table.join( + awful.button({}, 4, function () + awful.util.spawn("amixer set Master 1%+") + theme.volume.update() + end), + awful.button({}, 5, function () + awful.util.spawn("amixer set Master 1%-") + theme.volume.update() + end) +)) + +-- Net +local neticon = wibox.widget.imagebox(theme.widget_net) +local net = lain.widget.net({ + settings = function() + widget:set_markup(markup.font(theme.font, + markup("#7AC82E", " " .. string.format("%06.1f", net_now.received)) + .. " " .. + markup("#46A8C3", " " .. string.format("%06.1f", net_now.sent) .. " "))) + end +}) + +-- Separators +local spr = wibox.widget.textbox(' ') +local arrl_dl = separators.arrow_left(theme.bg_focus, "alpha") +local arrl_ld = separators.arrow_left("alpha", theme.bg_focus) + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + --spr, + s.mytaglist, + s.mypromptbox, + spr, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + keyboardlayout, + spr, + arrl_ld, + wibox.container.background(mpdicon, theme.bg_focus), + wibox.container.background(theme.mpd.widget, theme.bg_focus), + arrl_dl, + volicon, + theme.volume.widget, + arrl_ld, + wibox.container.background(mailicon, theme.bg_focus), + --wibox.container.background(theme.mail.widget, theme.bg_focus), + arrl_dl, + memicon, + mem.widget, + arrl_ld, + wibox.container.background(cpuicon, theme.bg_focus), + wibox.container.background(cpu.widget, theme.bg_focus), + arrl_dl, + tempicon, + temp.widget, + arrl_ld, + wibox.container.background(fsicon, theme.bg_focus), + --wibox.container.background(theme.fs.widget, theme.bg_focus), + arrl_dl, + baticon, + bat.widget, + arrl_ld, + wibox.container.background(neticon, theme.bg_focus), + wibox.container.background(net.widget, theme.bg_focus), + arrl_dl, + clock, + spr, + arrl_ld, + wibox.container.background(s.mylayoutbox, theme.bg_focus), + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/powerarrow-dark/wall.png b/awesome/.config/awesome/themes/powerarrow-dark/wall.png new file mode 100755 index 0000000..9d1118b Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow-dark/wall.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/binclock.lua b/awesome/.config/awesome/themes/powerarrow/binclock.lua new file mode 100644 index 0000000..68668ea --- /dev/null +++ b/awesome/.config/awesome/themes/powerarrow/binclock.lua @@ -0,0 +1,96 @@ +--[[ + + Licensed under GNU General Public License v2 + * (c) 2017, Luca CPZ + * (c) 2013, romockee + +--]] + +local gears = require("gears") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi +local date = os.date +local ipairs = ipairs +local math = math +local select = select +local string = string + +local binclock = {} + +function binclock.dec2bin(num, bits) + local bits, t = bits or select(2, math.frexp(num)), {} + for b = bits, 1, -1 do + t[b] = math.fmod(num, 2) + num = (num - t[b]) / 2 + end + return t +end + +function binclock.paintdot(cr, val, shift) + local height = 0 + for _, bit in ipairs(binclock.dec2bin(val, 4)) do + if bit >= 1 then + cr:set_source(gears.color(binclock.color_active)) + else + cr:set_source(gears.color(binclock.color_inactive)) + end + cr:rectangle(shift, height, binclock.dotsize, binclock.dotsize) + cr:fill() + height = height + binclock.dotsize + binclock.step + end +end + +local function factory(args) + local args = args or {} + + binclock.width = args.width or dpi(42) + binclock.height = args.height or dpi(18) + binclock.show_seconds = args.show_seconds or false + binclock.color_active = args.color_active or "#CCCCCC" + binclock.color_inactive = args.color_inactive or "#444444" + binclock.dotsize = math.floor(binclock.height / 5) + binclock.step = math.floor(binclock.dotsize / 3) + + binclock.widget = wibox.widget { + fit = function(self, context, width, height) + return binclock.width, binclock.height + end, + draw = function(self, context, cr, width, height) + local t = date("*t") + + local hour = string.format("%02d", t.hour) + local min = string.format("%02d", t.min) + local sec = string.format("%02d", t.sec) + + local col_count = 4 + if binclock.show_seconds then + col_count = 6 + end + local step = math.floor((binclock.width - col_count * binclock.dotsize) / 8) + + binclock.paintdot(cr, string.sub(hour, 1, 1), step, 2) + binclock.paintdot(cr, string.sub(hour, 2, 2), binclock.dotsize + 2 * step) + + binclock.paintdot(cr, string.sub(min, 1, 1), binclock.dotsize * 2 + 4 * step) + binclock.paintdot(cr, string.sub(min, 2, 2), binclock.dotsize * 3 + 5 * step) + + if binclock.show_seconds then + binclock.paintdot(cr, string.sub(sec, 1, 1), binclock.dotsize * 4 + 7 * step) + binclock.paintdot(cr, string.sub(sec, 2, 2), binclock.dotsize * 5 + 8 * step) + end + end, + layout = wibox.widget.base.make_widget + } + + binclock.timer = gears.timer { + autostart = true, + timeout = binclock.show_seconds and 1 or 60, + callback = function() + binclock.widget:emit_signal("widget::redraw_needed") + end + } + + return binclock +end + +return factory diff --git a/awesome/.config/awesome/themes/powerarrow/icons/ac.png b/awesome/.config/awesome/themes/powerarrow/icons/ac.png new file mode 100755 index 0000000..453af4e Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/ac.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/awesome.png b/awesome/.config/awesome/themes/powerarrow/icons/awesome.png new file mode 100755 index 0000000..4cabb6c Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/battery.png b/awesome/.config/awesome/themes/powerarrow/icons/battery.png new file mode 100755 index 0000000..7dd78a5 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/battery.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/battery_empty.png b/awesome/.config/awesome/themes/powerarrow/icons/battery_empty.png new file mode 100755 index 0000000..763aa93 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/battery_empty.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/battery_low.png b/awesome/.config/awesome/themes/powerarrow/icons/battery_low.png new file mode 100755 index 0000000..626222f Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/battery_low.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/brightness.png b/awesome/.config/awesome/themes/powerarrow/icons/brightness.png new file mode 100755 index 0000000..030d524 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/brightness.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/cpu.png b/awesome/.config/awesome/themes/powerarrow/icons/cpu.png new file mode 100755 index 0000000..c28a787 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/cpu.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/floating.png b/awesome/.config/awesome/themes/powerarrow/icons/floating.png new file mode 100755 index 0000000..079fea4 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/floating.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/fwd.png b/awesome/.config/awesome/themes/powerarrow/icons/fwd.png new file mode 100755 index 0000000..e9b875e Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/fwd.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/hdd.png b/awesome/.config/awesome/themes/powerarrow/icons/hdd.png new file mode 100755 index 0000000..8922eaa Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/hdd.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/mail.png b/awesome/.config/awesome/themes/powerarrow/icons/mail.png new file mode 100755 index 0000000..be656ed Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/mail.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/mail_on.png b/awesome/.config/awesome/themes/powerarrow/icons/mail_on.png new file mode 100755 index 0000000..ce8984f Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/mail_on.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/mem.png b/awesome/.config/awesome/themes/powerarrow/icons/mem.png new file mode 100755 index 0000000..ee6d480 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/mem.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/net.png b/awesome/.config/awesome/themes/powerarrow/icons/net.png new file mode 100755 index 0000000..769bfec Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/net.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/next.png b/awesome/.config/awesome/themes/powerarrow/icons/next.png new file mode 100755 index 0000000..9a62593 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/next.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/note.png b/awesome/.config/awesome/themes/powerarrow/icons/note.png new file mode 100755 index 0000000..19866aa Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/note.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/note_on.png b/awesome/.config/awesome/themes/powerarrow/icons/note_on.png new file mode 100755 index 0000000..aae5ca3 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/note_on.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/pacman.png b/awesome/.config/awesome/themes/powerarrow/icons/pacman.png new file mode 100755 index 0000000..575144a Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/pacman.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/pause.png b/awesome/.config/awesome/themes/powerarrow/icons/pause.png new file mode 100755 index 0000000..d4546e6 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/pause.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/phones.png b/awesome/.config/awesome/themes/powerarrow/icons/phones.png new file mode 100755 index 0000000..bec0e57 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/phones.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/play.png b/awesome/.config/awesome/themes/powerarrow/icons/play.png new file mode 100755 index 0000000..b228f74 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/play.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/prev.png b/awesome/.config/awesome/themes/powerarrow/icons/prev.png new file mode 100755 index 0000000..4c4ca40 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/prev.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/rwd.png b/awesome/.config/awesome/themes/powerarrow/icons/rwd.png new file mode 100755 index 0000000..ac3d6f4 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/rwd.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/scissors.png b/awesome/.config/awesome/themes/powerarrow/icons/scissors.png new file mode 100755 index 0000000..30f867d Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/scissors.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/square_sel.png b/awesome/.config/awesome/themes/powerarrow/icons/square_sel.png new file mode 100755 index 0000000..874a3a5 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/square_unsel.png b/awesome/.config/awesome/themes/powerarrow/icons/square_unsel.png new file mode 100755 index 0000000..979642f Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/stop.png b/awesome/.config/awesome/themes/powerarrow/icons/stop.png new file mode 100755 index 0000000..207915b Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/stop.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/submenu.png b/awesome/.config/awesome/themes/powerarrow/icons/submenu.png new file mode 100755 index 0000000..e9a6b7c Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/task.png b/awesome/.config/awesome/themes/powerarrow/icons/task.png new file mode 100755 index 0000000..962b51a Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/task.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/temp.png b/awesome/.config/awesome/themes/powerarrow/icons/temp.png new file mode 100755 index 0000000..7952de8 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/temp.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/tile.png b/awesome/.config/awesome/themes/powerarrow/icons/tile.png new file mode 100755 index 0000000..01fd1b5 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/tile.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/tilebottom.png b/awesome/.config/awesome/themes/powerarrow/icons/tilebottom.png new file mode 100755 index 0000000..bff1f42 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/tilebottom.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/tileleft.png b/awesome/.config/awesome/themes/powerarrow/icons/tileleft.png new file mode 100755 index 0000000..205140a Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/tileleft.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/tiletop.png b/awesome/.config/awesome/themes/powerarrow/icons/tiletop.png new file mode 100755 index 0000000..148cb9b Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/tiletop.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/close_focus.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/close_focus.png new file mode 100755 index 0000000..cccbadc Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/close_focus.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/close_normal.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/close_normal.png new file mode 100755 index 0000000..cb0c3fa Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/close_normal.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_focus_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_focus_active.png new file mode 100755 index 0000000..77ea127 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_focus_inactive.png new file mode 100755 index 0000000..d254a73 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_normal_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_normal_active.png new file mode 100755 index 0000000..c5ce3de Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_normal_inactive.png new file mode 100755 index 0000000..850b602 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/floating_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_focus_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_focus_active.png new file mode 100755 index 0000000..9fc0483 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_focus_inactive.png new file mode 100755 index 0000000..f684470 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_normal_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_normal_active.png new file mode 100755 index 0000000..4aa4196 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_normal_inactive.png new file mode 100755 index 0000000..bfe01a3 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/maximized_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_focus_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_focus_active.png new file mode 100755 index 0000000..86e61b7 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_focus_inactive.png new file mode 100755 index 0000000..286d439 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_normal_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_normal_active.png new file mode 100755 index 0000000..fcee772 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_normal_inactive.png new file mode 100755 index 0000000..a628626 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/ontop_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_focus_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_focus_active.png new file mode 100755 index 0000000..5af45c1 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_focus_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_focus_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_focus_inactive.png new file mode 100755 index 0000000..22d7453 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_focus_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_normal_active.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_normal_active.png new file mode 100755 index 0000000..aad079e Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_normal_active.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_normal_inactive.png b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_normal_inactive.png new file mode 100755 index 0000000..5f3e655 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/icons/titlebar/sticky_normal_inactive.png differ diff --git a/awesome/.config/awesome/themes/powerarrow/theme.lua b/awesome/.config/awesome/themes/powerarrow/theme.lua new file mode 100644 index 0000000..984c9a8 --- /dev/null +++ b/awesome/.config/awesome/themes/powerarrow/theme.lua @@ -0,0 +1,400 @@ +--[[ + + Powerarrow Awesome WM theme + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local math, string, os = math, string, os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/powerarrow" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 9" +theme.fg_normal = "#FEFEFE" +theme.fg_focus = "#32D6FF" +theme.fg_urgent = "#C83F11" +theme.bg_normal = "#222222" +theme.bg_focus = "#1E2320" +theme.bg_urgent = "#3F3F3F" +theme.taglist_fg_focus = "#00CCFF" +theme.tasklist_bg_focus = "#222222" +theme.tasklist_fg_focus = "#00CCFF" +theme.border_width = dpi(2) +theme.border_normal = "#3F3F3F" +theme.border_focus = "#6F6F6F" +theme.border_marked = "#CC9393" +theme.titlebar_bg_focus = "#3F3F3F" +theme.titlebar_bg_normal = "#3F3F3F" +theme.titlebar_bg_focus = theme.bg_focus +theme.titlebar_bg_normal = theme.bg_normal +theme.titlebar_fg_focus = theme.fg_focus +theme.menu_height = dpi(16) +theme.menu_width = dpi(140) +theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" +theme.awesome_icon = theme.dir .. "/icons/awesome.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" +theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" +theme.layout_fairv = theme.dir .. "/icons/fairv.png" +theme.layout_fairh = theme.dir .. "/icons/fairh.png" +theme.layout_spiral = theme.dir .. "/icons/spiral.png" +theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" +theme.layout_max = theme.dir .. "/icons/max.png" +theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" +theme.layout_floating = theme.dir .. "/icons/floating.png" +theme.widget_ac = theme.dir .. "/icons/ac.png" +theme.widget_battery = theme.dir .. "/icons/battery.png" +theme.widget_battery_low = theme.dir .. "/icons/battery_low.png" +theme.widget_battery_empty = theme.dir .. "/icons/battery_empty.png" +theme.widget_brightness = theme.dir .. "/icons/brightness.png" +theme.widget_mem = theme.dir .. "/icons/mem.png" +theme.widget_cpu = theme.dir .. "/icons/cpu.png" +theme.widget_temp = theme.dir .. "/icons/temp.png" +theme.widget_net = theme.dir .. "/icons/net.png" +theme.widget_hdd = theme.dir .. "/icons/hdd.png" +theme.widget_music = theme.dir .. "/icons/note.png" +theme.widget_music_on = theme.dir .. "/icons/note_on.png" +theme.widget_music_pause = theme.dir .. "/icons/pause.png" +theme.widget_music_stop = theme.dir .. "/icons/stop.png" +theme.widget_vol = theme.dir .. "/icons/vol.png" +theme.widget_vol_low = theme.dir .. "/icons/vol_low.png" +theme.widget_vol_no = theme.dir .. "/icons/vol_no.png" +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.widget_task = theme.dir .. "/icons/task.png" +theme.widget_scissors = theme.dir .. "/icons/scissors.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" +theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" +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" + +local markup = lain.util.markup +local separators = lain.util.separators + +-- Binary clock +local binclock = require("themes.powerarrow.binclock"){ + height = dpi(32), + show_seconds = true, + color_active = theme.fg_normal, + color_inactive = theme.bg_focus +} + +-- Calendar +theme.cal = lain.widget.cal({ + --cal = "cal --color=always", + attach_to = { binclock.widget }, + notification_preset = { + font = "Terminus 10", + fg = theme.fg_normal, + bg = theme.bg_normal + } +}) + +-- Taskwarrior +local task = wibox.widget.imagebox(theme.widget_task) +lain.widget.contrib.task.attach(task, { + -- do not colorize output + show_cmd = "task | sed -r 's/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g'" +}) +task:buttons(my_table.join(awful.button({}, 1, lain.widget.contrib.task.prompt))) + +-- Scissors (xsel copy and paste) +local scissors = wibox.widget.imagebox(theme.widget_scissors) +scissors:buttons(my_table.join(awful.button({}, 1, function() awful.spawn.with_shell("xsel | xsel -i -b") end))) + +-- Mail IMAP check +--[[ commented because it needs to be set before use +local mailicon = wibox.widget.imagebox(theme.widget_mail) +mailicon:buttons(my_table.join(awful.button({ }, 1, function () awful.spawn(mail) end))) +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + if mailcount > 0 then + widget:set_text(" " .. mailcount .. " ") + mailicon:set_image(theme.widget_mail_on) + else + widget:set_text("") + mailicon:set_image(theme.widget_mail) + end + end +}) +--]] + +-- ALSA volume +theme.volume = lain.widget.alsabar({ + --togglechannel = "IEC958,3", + notification_preset = { font = "Terminus 10", fg = theme.fg_normal }, +}) + +-- MPD +local musicplr = awful.util.terminal .. " -title Music -g 130x34-320+16 -e ncmpcpp" +local mpdicon = wibox.widget.imagebox(theme.widget_music) +mpdicon:buttons(my_table.join( + awful.button({ modkey }, 1, function () awful.spawn.with_shell(musicplr) end), + awful.button({ }, 1, function () + os.execute("mpc prev") + theme.mpd.update() + end), + awful.button({ }, 2, function () + os.execute("mpc toggle") + theme.mpd.update() + end), + awful.button({ }, 3, function () + os.execute("mpc next") + theme.mpd.update() + end))) +theme.mpd = lain.widget.mpd({ + settings = function() + if mpd_now.state == "play" then + artist = " " .. mpd_now.artist .. " " + title = mpd_now.title .. " " + mpdicon:set_image(theme.widget_music_on) + widget:set_markup(markup.font(theme.font, markup("#FF8466", artist) .. " " .. title)) + elseif mpd_now.state == "pause" then + widget:set_markup(markup.font(theme.font, " mpd paused ")) + mpdicon:set_image(theme.widget_music_pause) + else + widget:set_text("") + mpdicon:set_image(theme.widget_music) + end + end +}) + +-- MEM +local memicon = wibox.widget.imagebox(theme.widget_mem) +local mem = lain.widget.mem({ + settings = function() + widget:set_markup(markup.font(theme.font, " " .. mem_now.used .. "MB ")) + end +}) + +-- CPU +local cpuicon = wibox.widget.imagebox(theme.widget_cpu) +local cpu = lain.widget.cpu({ + settings = function() + widget:set_markup(markup.font(theme.font, " " .. cpu_now.usage .. "% ")) + end +}) + +--[[ Coretemp (lm_sensors, per core) +local tempwidget = awful.widget.watch({awful.util.shell, '-c', 'sensors | grep Core'}, 30, +function(widget, stdout) + local temps = "" + for line in stdout:gmatch("[^\r\n]+") do + temps = temps .. line:match("+(%d+).*°C") .. "° " -- in Celsius + end + widget:set_markup(markup.font(theme.font, " " .. temps)) +end) +--]] +-- Coretemp (lain, average) +local temp = lain.widget.temp({ + settings = function() + widget:set_markup(markup.font(theme.font, " " .. coretemp_now .. "°C ")) + end +}) +--]] +local tempicon = wibox.widget.imagebox(theme.widget_temp) + +-- / fs +local fsicon = wibox.widget.imagebox(theme.widget_hdd) +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + notification_preset = { fg = theme.fg_normal, bg = theme.bg_normal, font = "Terminus 10" }, + settings = function() + local fsp = string.format(" %3.2f %s ", fs_now["/"].free, fs_now["/"].units) + widget:set_markup(markup.font(theme.font, fsp)) + end +}) +--]] + +-- Battery +local baticon = wibox.widget.imagebox(theme.widget_battery) +local bat = lain.widget.bat({ + settings = function() + if bat_now.status and bat_now.status ~= "N/A" then + if bat_now.ac_status == 1 then + widget:set_markup(markup.font(theme.font, " AC ")) + baticon:set_image(theme.widget_ac) + return + elseif not bat_now.perc and tonumber(bat_now.perc) <= 5 then + baticon:set_image(theme.widget_battery_empty) + elseif not bat_now.perc and tonumber(bat_now.perc) <= 15 then + baticon:set_image(theme.widget_battery_low) + else + baticon:set_image(theme.widget_battery) + end + widget:set_markup(markup.font(theme.font, " " .. bat_now.perc .. "% ")) + else + widget:set_markup() + baticon:set_image(theme.widget_ac) + end + end +}) + +-- Net +local neticon = wibox.widget.imagebox(theme.widget_net) +local net = lain.widget.net({ + settings = function() + widget:set_markup(markup.fontfg(theme.font, "#FEFEFE", " " .. net_now.received .. " ↓↑ " .. net_now.sent .. " ")) + end +}) + +-- Brigtness +local brighticon = wibox.widget.imagebox(theme.widget_brightness) +-- If you use xbacklight, comment the line with "light -G" and uncomment the line bellow +-- local brightwidget = awful.widget.watch('xbacklight -get', 0.1, +local brightwidget = awful.widget.watch('light -G', 0.1, + function(widget, stdout, stderr, exitreason, exitcode) + local brightness_level = tonumber(string.format("%.0f", stdout)) + widget:set_markup(markup.font(theme.font, " " .. brightness_level .. "%")) +end) + +-- Separators +local arrow = separators.arrow_left + +function theme.powerline_rl(cr, width, height) + local arrow_depth, offset = height/2, 0 + + -- Avoid going out of the (potential) clip area + if arrow_depth < 0 then + width = width + 2*arrow_depth + offset = -arrow_depth + end + + cr:move_to(offset + arrow_depth , 0 ) + cr:line_to(offset + width , 0 ) + cr:line_to(offset + width - arrow_depth , height/2 ) + cr:line_to(offset + width , height ) + cr:line_to(offset + arrow_depth , height ) + cr:line_to(offset , height/2 ) + + cr:close_path() +end + +local function pl(widget, bgcolor, padding) + return wibox.container.background(wibox.container.margin(widget, dpi(16), dpi(16)), bgcolor, theme.powerline_rl) +end + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(16), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + --spr, + s.mytaglist, + s.mypromptbox, + spr, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + wibox.container.margin(scissors, dpi(4), dpi(8)), + --[[ using shapes + pl(wibox.widget { mpdicon, theme.mpd.widget, layout = wibox.layout.align.horizontal }, "#343434"), + pl(task, "#343434"), + --pl(wibox.widget { mailicon, mail and theme.mail.widget, layout = wibox.layout.align.horizontal }, "#343434"), + pl(wibox.widget { memicon, mem.widget, layout = wibox.layout.align.horizontal }, "#777E76"), + pl(wibox.widget { cpuicon, cpu.widget, layout = wibox.layout.align.horizontal }, "#4B696D"), + pl(wibox.widget { tempicon, temp.widget, layout = wibox.layout.align.horizontal }, "#4B3B51"), + --pl(wibox.widget { fsicon, theme.fs and theme.fs.widget, layout = wibox.layout.align.horizontal }, "#CB755B"), + pl(wibox.widget { baticon, bat.widget, layout = wibox.layout.align.horizontal }, "#8DAA9A"), + pl(wibox.widget { neticon, net.widget, layout = wibox.layout.align.horizontal }, "#C0C0A2"), + pl(binclock.widget, "#777E76"), + --]] + -- using separators + arrow(theme.bg_normal, "#343434"), + wibox.container.background(wibox.container.margin(wibox.widget { mailicon, theme.mail and theme.mail.widget, layout = wibox.layout.align.horizontal }, dpi(4), dpi(7)), "#343434"), + arrow("#343434", theme.bg_normal), + wibox.container.background(wibox.container.margin(wibox.widget { mpdicon, theme.mpd.widget, layout = wibox.layout.align.horizontal }, dpi(3), dpi(6)), theme.bg_focus), + arrow(theme.bg_normal, "#343434"), + wibox.container.background(wibox.container.margin(task, dpi(3), dpi(7)), "#343434"), + arrow("#343434", "#777E76"), + wibox.container.background(wibox.container.margin(wibox.widget { memicon, mem.widget, layout = wibox.layout.align.horizontal }, dpi(2), dpi(3)), "#777E76"), + arrow("#777E76", "#4B696D"), + wibox.container.background(wibox.container.margin(wibox.widget { cpuicon, cpu.widget, layout = wibox.layout.align.horizontal }, dpi(3), dpi(4)), "#4B696D"), + arrow("#4B696D", "#4B3B51"), + wibox.container.background(wibox.container.margin(wibox.widget { tempicon, temp.widget, layout = wibox.layout.align.horizontal }, dpi(4), dpi(4)), "#4B3B51"), + arrow("#4B3B51", "#CB755B"), + wibox.container.background(wibox.container.margin(wibox.widget { fsicon, theme.fs and theme.fs.widget, layout = wibox.layout.align.horizontal }, dpi(3), dpi(3)), "#CB755B"), + arrow("#CB755B", "#8DAA9A"), + wibox.container.background(wibox.container.margin(wibox.widget { baticon, bat.widget, layout = wibox.layout.align.horizontal }, dpi(3), dpi(3)), "#8DAA9A"), + arrow("#8DAA9A", "#C0C0A2"), + wibox.container.background(wibox.container.margin(wibox.widget { nil, neticon, net.widget, layout = wibox.layout.align.horizontal }, dpi(3), dpi(3)), "#C0C0A2"), + arrow("#C0C0A2", "#777E76"), + wibox.container.background(wibox.container.margin(binclock.widget, dpi(4), dpi(8)), "#777E76"), + arrow("#777E76", "alpha"), + --]] + s.mylayoutbox, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/powerarrow/wall.png b/awesome/.config/awesome/themes/powerarrow/wall.png new file mode 100755 index 0000000..0989db9 Binary files /dev/null and b/awesome/.config/awesome/themes/powerarrow/wall.png differ diff --git a/awesome/.config/awesome/themes/rainbow/icons/awesome.png b/awesome/.config/awesome/themes/rainbow/icons/awesome.png new file mode 100755 index 0000000..d99fd37 Binary files /dev/null and b/awesome/.config/awesome/themes/rainbow/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/rainbow/icons/square_sel.png b/awesome/.config/awesome/themes/rainbow/icons/square_sel.png new file mode 100755 index 0000000..532719f Binary files /dev/null and b/awesome/.config/awesome/themes/rainbow/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/rainbow/icons/square_unsel.png b/awesome/.config/awesome/themes/rainbow/icons/square_unsel.png new file mode 100755 index 0000000..72dea5b Binary files /dev/null and b/awesome/.config/awesome/themes/rainbow/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/rainbow/icons/submenu.png b/awesome/.config/awesome/themes/rainbow/icons/submenu.png new file mode 100755 index 0000000..26ab82a Binary files /dev/null and b/awesome/.config/awesome/themes/rainbow/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/rainbow/theme.lua b/awesome/.config/awesome/themes/rainbow/theme.lua new file mode 100644 index 0000000..7837b93 --- /dev/null +++ b/awesome/.config/awesome/themes/rainbow/theme.lua @@ -0,0 +1,279 @@ +--[[ + + Rainbow Awesome WM theme 2.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local os = os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.default_dir = require("awful.util").get_themes_dir() .. "default" +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/rainbow" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 10.5" +theme.fg_normal = "#9E9E9E" +theme.fg_focus = "#EBEBFF" +theme.bg_normal = "#242424" +theme.bg_focus = "#242424" +theme.fg_urgent = "#000000" +theme.bg_urgent = "#FFFFFF" +theme.border_width = dpi(1) +theme.border_normal = "#242424" +theme.border_focus = "#EBEBFF" +theme.taglist_fg_focus = "#EDEFFF" +theme.taglist_bg_focus = "#242424" +theme.menu_height = dpi(16) +theme.menu_width = dpi(140) +theme.ocol = "" +theme.tasklist_sticky = theme.ocol .. "[S]" +theme.tasklist_ontop = theme.ocol .. "[T]" +theme.tasklist_floating = theme.ocol .. "[F]" +theme.tasklist_maximized_horizontal = theme.ocol .. "[M] " +theme.tasklist_maximized_vertical = "" +theme.tasklist_disable_icon = true +theme.awesome_icon = theme.dir .."/icons/awesome.png" +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.useless_gap = dpi(8) +theme.layout_txt_tile = "[t]" +theme.layout_txt_tileleft = "[l]" +theme.layout_txt_tilebottom = "[b]" +theme.layout_txt_tiletop = "[tt]" +theme.layout_txt_fairv = "[fv]" +theme.layout_txt_fairh = "[fh]" +theme.layout_txt_spiral = "[s]" +theme.layout_txt_dwindle = "[d]" +theme.layout_txt_max = "[m]" +theme.layout_txt_fullscreen = "[F]" +theme.layout_txt_magnifier = "[M]" +theme.layout_txt_floating = "[*]" +theme.titlebar_close_button_normal = theme.default_dir.."/titlebar/close_normal.png" +theme.titlebar_close_button_focus = theme.default_dir.."/titlebar/close_focus.png" +theme.titlebar_minimize_button_normal = theme.default_dir.."/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = theme.default_dir.."/titlebar/minimize_focus.png" +theme.titlebar_ontop_button_normal_inactive = theme.default_dir.."/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = theme.default_dir.."/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = theme.default_dir.."/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = theme.default_dir.."/titlebar/ontop_focus_active.png" +theme.titlebar_sticky_button_normal_inactive = theme.default_dir.."/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = theme.default_dir.."/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = theme.default_dir.."/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = theme.default_dir.."/titlebar/sticky_focus_active.png" +theme.titlebar_floating_button_normal_inactive = theme.default_dir.."/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = theme.default_dir.."/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = theme.default_dir.."/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = theme.default_dir.."/titlebar/floating_focus_active.png" +theme.titlebar_maximized_button_normal_inactive = theme.default_dir.."/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = theme.default_dir.."/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = theme.default_dir.."/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = theme.default_dir.."/titlebar/maximized_focus_active.png" + +-- lain related +theme.layout_txt_cascade = "[cascade]" +theme.layout_txt_cascadetile = "[cascadetile]" +theme.layout_txt_centerwork = "[centerwork]" +theme.layout_txt_termfair = "[termfair]" +theme.layout_txt_centerfair = "[centerfair]" + +local markup = lain.util.markup +local white = theme.fg_focus +local gray = theme.fg_normal + +-- Textclock +local mytextclock = wibox.widget.textclock(markup(white, " %H:%M ")) +mytextclock.font = theme.font + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + font = "Terminus 11", + fg = white, + bg = theme.bg_normal + } +}) + +-- Mail IMAP check +--[[ commented because it needs to be set before use +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + mail_notification_preset.fg = white + + mail = "" + count = "" + + if mailcount > 0 then + mail = "Mail " + count = mailcount .. " " + end + + widget:set_markup(markup.font(theme.font, markup(gray, mail) .. markup(white, count))) + end +}) +--]] + +-- MPD +theme.mpd = lain.widget.mpd({ + settings = function() + mpd_notification_preset.fg = white + + artist = mpd_now.artist .. " " + title = mpd_now.title .. " " + + if mpd_now.state == "pause" then + artist = "mpd " + title = "paused " + elseif mpd_now.state == "stop" then + artist = "" + title = "" + end + + widget:set_markup(markup.font(theme.font, markup(gray, artist) .. markup(white, title))) + end +}) + +-- /home fs +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + notification_preset = { fg = white, bg = theme.bg_normal, font = "Terminus 10.5" }, + settings = function() + local fs_header, fs_p = "", "" + + if fs_now["/home"].percentage >= 90 then + fs_header = " Hdd " + fs_p = fs_now["/home"].percentage + end + + widget:set_markup(markup.font(theme.font, markup(gray, fs_header) .. markup(white, fs_p))) + end +}) +--]] + +-- ALSA volume bar +theme.volume = lain.widget.alsabar({ + ticks = true, width = dpi(67), + notification_preset = { font = theme.font } +}) +theme.volume.tooltip.wibox.fg = theme.fg_focus +theme.volume.tooltip.wibox.font = theme.font +theme.volume.bar:buttons(my_table.join ( + awful.button({}, 1, function() + awful.spawn(string.format("%s -e alsamixer", terminal)) + end), + awful.button({}, 2, function() + os.execute(string.format("%s set %s 100%%", theme.volume.cmd, theme.volume.channel)) + theme.volume.update() + end), + awful.button({}, 3, function() + os.execute(string.format("%s set %s toggle", theme.volume.cmd, theme.volume.togglechannel or theme.volume.channel)) + theme.volume.update() + end), + awful.button({}, 4, function() + os.execute(string.format("%s set %s 1%%+", theme.volume.cmd, theme.volume.channel)) + theme.volume.update() + end), + awful.button({}, 5, function() + os.execute(string.format("%s set %s 1%%-", theme.volume.cmd, theme.volume.channel)) + theme.volume.update() + end) +)) +local volumebg = wibox.container.background(theme.volume.bar, "#585858", gears.shape.rectangle) +local volumewidget = wibox.container.margin(volumebg, dpi(7), dpi(7), dpi(5), dpi(5)) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + --APPID = + city_id = 2643743, -- placeholder (London) + notification_preset = { font = theme.font, fg = white } +}) +--]] + +-- Separators +local first = wibox.widget.textbox(markup.font("Terminus 4", " ")) +local spr = wibox.widget.textbox(' ') + +local function update_txt_layoutbox(s) + -- Writes a string representation of the current layout in a textbox widget + local txt_l = theme["layout_txt_" .. awful.layout.getname(awful.layout.get(s))] or "" + s.mytxtlayoutbox:set_text(txt_l) +end + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + + -- Textual layoutbox + s.mytxtlayoutbox = wibox.widget.textbox(theme["layout_txt_" .. awful.layout.getname(awful.layout.get(s))]) + awful.tag.attached_connect_signal(s, "property::selected", function () update_txt_layoutbox(s) end) + awful.tag.attached_connect_signal(s, "property::layout", function () update_txt_layoutbox(s) end) + s.mytxtlayoutbox:buttons(my_table.join( + awful.button({}, 1, function() awful.layout.inc(1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function() awful.layout.inc(-1) end), + awful.button({}, 4, function() awful.layout.inc(1) end), + awful.button({}, 5, function() awful.layout.inc(-1) end))) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18), bg = theme.bg_normal, fg = theme.fg_normal }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + first, + s.mytaglist, + spr, + s.mytxtlayoutbox, + --spr, + s.mypromptbox, + spr, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + spr, + theme.mpd.widget, + --theme.mail.widget, + --theme.fs.widget, + volumewidget, + mytextclock, + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/rainbow/wall.png b/awesome/.config/awesome/themes/rainbow/wall.png new file mode 100755 index 0000000..6bed238 Binary files /dev/null and b/awesome/.config/awesome/themes/rainbow/wall.png differ diff --git a/awesome/.config/awesome/themes/steamburn/icons/awesome.png b/awesome/.config/awesome/themes/steamburn/icons/awesome.png new file mode 100755 index 0000000..0306bdf Binary files /dev/null and b/awesome/.config/awesome/themes/steamburn/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/steamburn/icons/square_sel.png b/awesome/.config/awesome/themes/steamburn/icons/square_sel.png new file mode 100755 index 0000000..2bcabb8 Binary files /dev/null and b/awesome/.config/awesome/themes/steamburn/icons/square_sel.png differ diff --git a/awesome/.config/awesome/themes/steamburn/icons/square_unsel.png b/awesome/.config/awesome/themes/steamburn/icons/square_unsel.png new file mode 100755 index 0000000..14c4fe4 Binary files /dev/null and b/awesome/.config/awesome/themes/steamburn/icons/square_unsel.png differ diff --git a/awesome/.config/awesome/themes/steamburn/icons/submenu.png b/awesome/.config/awesome/themes/steamburn/icons/submenu.png new file mode 100755 index 0000000..12b97c6 Binary files /dev/null and b/awesome/.config/awesome/themes/steamburn/icons/submenu.png differ diff --git a/awesome/.config/awesome/themes/steamburn/theme.lua b/awesome/.config/awesome/themes/steamburn/theme.lua new file mode 100644 index 0000000..a6631a3 --- /dev/null +++ b/awesome/.config/awesome/themes/steamburn/theme.lua @@ -0,0 +1,278 @@ +--[[ + + Steamburn Awesome WM theme 3.0 + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local os = os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.zenburn_dir = require("awful.util").get_themes_dir() .. "zenburn" +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/steamburn" +theme.wallpaper = theme.dir .. "/wall.png" +theme.font = "Terminus 10.5" +theme.fg_normal = "#e2ccb0" +theme.fg_focus = "#d88166" +theme.fg_urgent = "#CC9393" +theme.bg_normal = "#140c0b" +theme.bg_focus = "#140c0b" +theme.bg_urgent = "#2a1f1e" +theme.border_width = dpi(1) +theme.border_normal = "#302627" +theme.border_focus = "#c2745b" +theme.border_marked = "#CC9393" +theme.taglist_fg_focus = "#d88166" +theme.tasklist_bg_focus = "#140c0b" +theme.tasklist_fg_focus = "#d88166" +theme.taglist_squares_sel = theme.dir .. "/icons/square_sel.png" +theme.taglist_squares_unsel = theme.dir .. "/icons/square_unsel.png" +theme.menu_height = dpi(16) +theme.menu_width = dpi(140) +theme.awesome_icon = theme.dir .."/icons/awesome.png" +theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" +theme.layout_txt_tile = "[t]" +theme.layout_txt_tileleft = "[l]" +theme.layout_txt_tilebottom = "[b]" +theme.layout_txt_tiletop = "[tt]" +theme.layout_txt_fairv = "[fv]" +theme.layout_txt_fairh = "[fh]" +theme.layout_txt_spiral = "[s]" +theme.layout_txt_dwindle = "[d]" +theme.layout_txt_max = "[m]" +theme.layout_txt_fullscreen = "[F]" +theme.layout_txt_magnifier = "[M]" +theme.layout_txt_floating = "[|]" +theme.tasklist_plain_task_name = true +theme.tasklist_disable_icon = true +theme.useless_gap = dpi(0) +theme.titlebar_close_button_normal = theme.zenburn_dir.."/titlebar/close_normal.png" +theme.titlebar_close_button_focus = theme.zenburn_dir.."/titlebar/close_focus.png" +theme.titlebar_minimize_button_normal = theme.zenburn_dir.."/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = theme.zenburn_dir.."/titlebar/minimize_focus.png" +theme.titlebar_ontop_button_normal_inactive = theme.zenburn_dir.."/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = theme.zenburn_dir.."/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = theme.zenburn_dir.."/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = theme.zenburn_dir.."/titlebar/ontop_focus_active.png" +theme.titlebar_sticky_button_normal_inactive = theme.zenburn_dir.."/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = theme.zenburn_dir.."/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = theme.zenburn_dir.."/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = theme.zenburn_dir.."/titlebar/sticky_focus_active.png" +theme.titlebar_floating_button_normal_inactive = theme.zenburn_dir.."/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = theme.zenburn_dir.."/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = theme.zenburn_dir.."/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = theme.zenburn_dir.."/titlebar/floating_focus_active.png" +theme.titlebar_maximized_button_normal_inactive = theme.zenburn_dir.."/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = theme.zenburn_dir.."/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = theme.zenburn_dir.."/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = theme.zenburn_dir.."/titlebar/maximized_focus_active.png" + +-- lain related +theme.layout_txt_termfair = "[termfair]" +theme.layout_txt_centerfair = "[centerfair]" + +local markup = lain.util.markup +local gray = "#94928F" + +-- Textclock +local mytextclock = wibox.widget.textclock(" %H:%M ") +mytextclock.font = theme.font + +-- Calendar +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + font = "Terminus 11", + fg = theme.fg_normal, + bg = theme.bg_normal + } +}) + +-- Mail IMAP check +--[[ to be set before use +theme.mail = lain.widget.imap({ + timeout = 180, + server = "server", + mail = "mail", + password = "keyring get mail", + settings = function() + mail = "" + count = "" + + if mailcount > 0 then + mail = "Mail " + count = mailcount .. " " + end + + widget:set_markup(markup(gray, mail) .. count) + end +}) +--]] + +-- MPD +theme.mpd = lain.widget.mpd({ + settings = function() + artist = mpd_now.artist .. " " + title = mpd_now.title .. " " + + if mpd_now.state == "pause" then + artist = "mpd " + title = "paused " + elseif mpd_now.state == "stop" then + artist = "" + title = "" + end + + widget:set_markup(markup.font(theme.font, markup(gray, artist) .. title)) + end +}) + +-- CPU +local cpu = lain.widget.sysload({ + settings = function() + widget:set_markup(markup.font(theme.font, markup(gray, " Cpu ") .. load_1 .. " ")) + end +}) + +-- MEM +local mem = lain.widget.mem({ + settings = function() + widget:set_markup(markup.font(theme.font, markup(gray, " Mem ") .. mem_now.used .. " ")) + end +}) + +-- /home fs +--[[ commented because it needs Gio/Glib >= 2.54 +theme.fs = lain.widget.fs({ + partition = "/home", + notification_preset = { fg = theme.fg_normal, bg = theme.bg_normal, font = "Terminus 10.5" }, +}) +--]] + +-- Battery +local bat = lain.widget.bat({ + settings = function() + local perc = bat_now.perc + if bat_now.ac_status == 1 then perc = perc .. " Plug" end + widget:set_markup(markup.font(theme.font, markup(gray, " Bat ") .. perc .. " ")) + end +}) + +-- Net checker +local net = lain.widget.net({ + settings = function() + if net_now.state == "up" then net_state = "On" + else net_state = "Off" end + widget:set_markup(markup.font(theme.font, markup(gray, " Net ") .. net_state .. " ")) + end +}) + +-- ALSA volume +theme.volume = lain.widget.alsa({ + settings = function() + header = " Vol " + vlevel = volume_now.level + + if volume_now.status == "off" then + vlevel = vlevel .. "M " + else + vlevel = vlevel .. " " + end + + widget:set_markup(markup.font(theme.font, markup(gray, header) .. vlevel)) + end +}) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + --APPID = + city_id = 2643743, -- placeholder (London) +}) +--]] + +-- Separators +local first = wibox.widget.textbox(markup.font("Terminus 4", " ")) +local spr = wibox.widget.textbox(' ') + +local function update_txt_layoutbox(s) + -- Writes a string representation of the current layout in a textbox widget + local txt_l = theme["layout_txt_" .. awful.layout.getname(awful.layout.get(s))] or "" + s.mytxtlayoutbox:set_text(txt_l) +end + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + + -- Textual layoutbox + s.mytxtlayoutbox = wibox.widget.textbox(theme["layout_txt_" .. awful.layout.getname(awful.layout.get(s))]) + awful.tag.attached_connect_signal(s, "property::selected", function () update_txt_layoutbox(s) end) + awful.tag.attached_connect_signal(s, "property::layout", function () update_txt_layoutbox(s) end) + s.mytxtlayoutbox:buttons(my_table.join( + awful.button({}, 1, function() awful.layout.inc(1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function() awful.layout.inc(-1) end), + awful.button({}, 4, function() awful.layout.inc(1) end), + awful.button({}, 5, function() awful.layout.inc(-1) end))) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18) }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + first, + s.mytaglist, + spr, + s.mytxtlayoutbox, + --spr, + s.mypromptbox, + spr, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget.systray(), + spr, + theme.mpd.widget, + --theme.mail.widget, + cpu.widget, + mem.widget, + bat.widget, + net.widget, + theme.volume.widget, + mytextclock + }, + } +end + +return theme diff --git a/awesome/.config/awesome/themes/steamburn/wall.png b/awesome/.config/awesome/themes/steamburn/wall.png new file mode 100755 index 0000000..57359d1 Binary files /dev/null and b/awesome/.config/awesome/themes/steamburn/wall.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/awesome.png b/awesome/.config/awesome/themes/vertex/icons/awesome.png new file mode 100755 index 0000000..cbded64 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/awesome.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-000-charging.png b/awesome/.config/awesome/themes/vertex/icons/bat-000-charging.png new file mode 100755 index 0000000..cc2abdd Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-000-charging.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-000.png b/awesome/.config/awesome/themes/vertex/icons/bat-000.png new file mode 100755 index 0000000..550d8f0 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-000.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-020-charging.png b/awesome/.config/awesome/themes/vertex/icons/bat-020-charging.png new file mode 100755 index 0000000..bd5e788 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-020-charging.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-020.png b/awesome/.config/awesome/themes/vertex/icons/bat-020.png new file mode 100755 index 0000000..c8525eb Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-020.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-040-charging.png b/awesome/.config/awesome/themes/vertex/icons/bat-040-charging.png new file mode 100755 index 0000000..5d20c11 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-040-charging.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-040.png b/awesome/.config/awesome/themes/vertex/icons/bat-040.png new file mode 100755 index 0000000..ad378bf Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-040.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-060-charging.png b/awesome/.config/awesome/themes/vertex/icons/bat-060-charging.png new file mode 100755 index 0000000..ea7c293 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-060-charging.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-060.png b/awesome/.config/awesome/themes/vertex/icons/bat-060.png new file mode 100755 index 0000000..5883885 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-060.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-080-charging.png b/awesome/.config/awesome/themes/vertex/icons/bat-080-charging.png new file mode 100755 index 0000000..b633044 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-080-charging.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-080.png b/awesome/.config/awesome/themes/vertex/icons/bat-080.png new file mode 100755 index 0000000..d3fb971 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-080.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-100-charging.png b/awesome/.config/awesome/themes/vertex/icons/bat-100-charging.png new file mode 100755 index 0000000..f2d7419 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-100-charging.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-100.png b/awesome/.config/awesome/themes/vertex/icons/bat-100.png new file mode 100755 index 0000000..5852e69 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-100.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/bat-charged.png b/awesome/.config/awesome/themes/vertex/icons/bat-charged.png new file mode 100755 index 0000000..bb6b657 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/bat-charged.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/ethernet-connected.png b/awesome/.config/awesome/themes/vertex/icons/ethernet-connected.png new file mode 100755 index 0000000..6894931 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/ethernet-connected.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/ethernet-disconnected.png b/awesome/.config/awesome/themes/vertex/icons/ethernet-disconnected.png new file mode 100755 index 0000000..cfd73bb Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/ethernet-disconnected.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/panel.png b/awesome/.config/awesome/themes/vertex/icons/panel.png new file mode 100755 index 0000000..2f429e5 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/panel.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/volume-high.png b/awesome/.config/awesome/themes/vertex/icons/volume-high.png new file mode 100755 index 0000000..8fc8279 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/volume-high.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/volume-low.png b/awesome/.config/awesome/themes/vertex/icons/volume-low.png new file mode 100755 index 0000000..7a0682f Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/volume-low.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/volume-medium.png b/awesome/.config/awesome/themes/vertex/icons/volume-medium.png new file mode 100755 index 0000000..2b5c888 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/volume-medium.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/volume-muted-blocked.png b/awesome/.config/awesome/themes/vertex/icons/volume-muted-blocked.png new file mode 100755 index 0000000..6dea15b Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/volume-muted-blocked.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/volume-muted.png b/awesome/.config/awesome/themes/vertex/icons/volume-muted.png new file mode 100755 index 0000000..7d08ac9 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/volume-muted.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/volume-off.png b/awesome/.config/awesome/themes/vertex/icons/volume-off.png new file mode 100755 index 0000000..8a6d8c5 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/volume-off.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/wireless-disconnected.png b/awesome/.config/awesome/themes/vertex/icons/wireless-disconnected.png new file mode 100755 index 0000000..f98d8b4 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/wireless-disconnected.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/wireless-full.png b/awesome/.config/awesome/themes/vertex/icons/wireless-full.png new file mode 100755 index 0000000..3f83dec Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/wireless-full.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/wireless-high.png b/awesome/.config/awesome/themes/vertex/icons/wireless-high.png new file mode 100755 index 0000000..b3622ec Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/wireless-high.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/wireless-low.png b/awesome/.config/awesome/themes/vertex/icons/wireless-low.png new file mode 100755 index 0000000..3f1e740 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/wireless-low.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/wireless-medium.png b/awesome/.config/awesome/themes/vertex/icons/wireless-medium.png new file mode 100755 index 0000000..6bd0ec5 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/wireless-medium.png differ diff --git a/awesome/.config/awesome/themes/vertex/icons/wireless-none.png b/awesome/.config/awesome/themes/vertex/icons/wireless-none.png new file mode 100755 index 0000000..e47b478 Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/icons/wireless-none.png differ diff --git a/awesome/.config/awesome/themes/vertex/theme.lua b/awesome/.config/awesome/themes/vertex/theme.lua new file mode 100644 index 0000000..14190bd --- /dev/null +++ b/awesome/.config/awesome/themes/vertex/theme.lua @@ -0,0 +1,470 @@ +--[[ + + Vertex Awesome WM theme + github.com/lcpz + +--]] + +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") +local dpi = require("beautiful.xresources").apply_dpi + +local math, string, tag, tonumber, type, os = math, string, tag, tonumber, type, os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.default_dir = require("awful.util").get_themes_dir() .. "default" +theme.icon_dir = os.getenv("HOME") .. "/.config/awesome/themes/vertex/icons" +theme.wallpaper = os.getenv("HOME") .. "/.config/awesome/themes/vertex/wall.png" +theme.font = "Roboto Bold 10" +theme.taglist_font = "FontAwesome 17" +theme.fg_normal = "#FFFFFF" +theme.fg_focus = "#6A95EB" +theme.bg_focus = "#303030" +theme.bg_focus2 = "#3762B8" +theme.bg_normal = "#242424" +theme.fg_urgent = "#CC9393" +theme.bg_urgent = "#006B8E" +theme.border_width = dpi(4) +theme.border_normal = "#252525" +theme.border_focus = "#7CA2EE" +theme.tooltip_border_color = theme.fg_focus +theme.tooltip_border_width = theme.border_width +theme.menu_height = dpi(24) +theme.menu_width = dpi(140) +theme.awesome_icon = theme.icon_dir .. "/awesome.png" +theme.taglist_squares_sel = gears.surface.load_from_shape(dpi(3), dpi(30), gears.shape.rectangle, theme.fg_focus) +theme.taglist_squares_unsel = gears.surface.load_from_shape(dpi(3), dpi(30), gears.shape.rectangle, theme.bg_focus2) +theme.panelbg = theme.icon_dir .. "/panel.png" +theme.bat000charging = theme.icon_dir .. "/bat-000-charging.png" +theme.bat000 = theme.icon_dir .. "/bat-000.png" +theme.bat020charging = theme.icon_dir .. "/bat-020-charging.png" +theme.bat020 = theme.icon_dir .. "/bat-020.png" +theme.bat040charging = theme.icon_dir .. "/bat-040-charging.png" +theme.bat040 = theme.icon_dir .. "/bat-040.png" +theme.bat060charging = theme.icon_dir .. "/bat-060-charging.png" +theme.bat060 = theme.icon_dir .. "/bat-060.png" +theme.bat080charging = theme.icon_dir .. "/bat-080-charging.png" +theme.bat080 = theme.icon_dir .. "/bat-080.png" +theme.bat100charging = theme.icon_dir .. "/bat-100-charging.png" +theme.bat100 = theme.icon_dir .. "/bat-100.png" +theme.batcharged = theme.icon_dir .. "/bat-charged.png" +theme.ethon = theme.icon_dir .. "/ethernet-connected.png" +theme.ethoff = theme.icon_dir .. "/ethernet-disconnected.png" +theme.volhigh = theme.icon_dir .. "/volume-high.png" +theme.vollow = theme.icon_dir .. "/volume-low.png" +theme.volmed = theme.icon_dir .. "/volume-medium.png" +theme.volmutedblocked = theme.icon_dir .. "/volume-muted-blocked.png" +theme.volmuted = theme.icon_dir .. "/volume-muted.png" +theme.voloff = theme.icon_dir .. "/volume-off.png" +theme.wifidisc = theme.icon_dir .. "/wireless-disconnected.png" +theme.wififull = theme.icon_dir .. "/wireless-full.png" +theme.wifihigh = theme.icon_dir .. "/wireless-high.png" +theme.wifilow = theme.icon_dir .. "/wireless-low.png" +theme.wifimed = theme.icon_dir .. "/wireless-medium.png" +theme.wifinone = theme.icon_dir .. "/wireless-none.png" +theme.layout_fairh = theme.default_dir.."/layouts/fairhw.png" +theme.layout_fairv = theme.default_dir.."/layouts/fairvw.png" +theme.layout_floating = theme.default_dir.."/layouts/floatingw.png" +theme.layout_magnifier = theme.default_dir.."/layouts/magnifierw.png" +theme.layout_max = theme.default_dir.."/layouts/maxw.png" +theme.layout_fullscreen = theme.default_dir.."/layouts/fullscreenw.png" +theme.layout_tilebottom = theme.default_dir.."/layouts/tilebottomw.png" +theme.layout_tileleft = theme.default_dir.."/layouts/tileleftw.png" +theme.layout_tile = theme.default_dir.."/layouts/tilew.png" +theme.layout_tiletop = theme.default_dir.."/layouts/tiletopw.png" +theme.layout_spiral = theme.default_dir.."/layouts/spiralw.png" +theme.layout_dwindle = theme.default_dir.."/layouts/dwindlew.png" +theme.layout_cornernw = theme.default_dir.."/layouts/cornernww.png" +theme.layout_cornerne = theme.default_dir.."/layouts/cornernew.png" +theme.layout_cornersw = theme.default_dir.."/layouts/cornersww.png" +theme.layout_cornerse = theme.default_dir.."/layouts/cornersew.png" +theme.tasklist_plain_task_name = true +theme.tasklist_disable_icon = true +theme.useless_gap = dpi(10) +theme.titlebar_close_button_normal = theme.default_dir.."/titlebar/close_normal.png" +theme.titlebar_close_button_focus = theme.default_dir.."/titlebar/close_focus.png" +theme.titlebar_minimize_button_normal = theme.default_dir.."/titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = theme.default_dir.."/titlebar/minimize_focus.png" +theme.titlebar_ontop_button_normal_inactive = theme.default_dir.."/titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = theme.default_dir.."/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = theme.default_dir.."/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = theme.default_dir.."/titlebar/ontop_focus_active.png" +theme.titlebar_sticky_button_normal_inactive = theme.default_dir.."/titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = theme.default_dir.."/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = theme.default_dir.."/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = theme.default_dir.."/titlebar/sticky_focus_active.png" +theme.titlebar_floating_button_normal_inactive = theme.default_dir.."/titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = theme.default_dir.."/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = theme.default_dir.."/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = theme.default_dir.."/titlebar/floating_focus_active.png" +theme.titlebar_maximized_button_normal_inactive = theme.default_dir.."/titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = theme.default_dir.."/titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = theme.default_dir.."/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = theme.default_dir.."/titlebar/maximized_focus_active.png" + +-- http://fontawesome.io/cheatsheet +awful.util.tagnames = { "", "", "", "", "", "", "", "" } + +local markup = lain.util.markup + +-- Clock +--os.setlocale(os.getenv("LANG")) -- to localize the clock +local mytextclock = wibox.widget.textclock(markup("#FFFFFF", "%a %d %b, %H:%M")) +mytextclock.font = theme.font +theme.cal = lain.widget.cal({ + attach_to = { mytextclock }, + notification_preset = { + fg = "#FFFFFF", + bg = theme.bg_normal, + position = "top_middle", + font = "Monospace 10" + } +}) + +-- Battery +local baticon = wibox.widget.imagebox(theme.bat000) +local battooltip = awful.tooltip({ + objects = { baticon }, + margin_leftright = dpi(15), + margin_topbottom = dpi(12) +}) +battooltip.wibox.fg = theme.fg_normal +battooltip.textbox.font = theme.font +battooltip.timeout = 0 +battooltip:set_shape(function(cr, width, height) + gears.shape.infobubble(cr, width, height, corner_radius, arrow_size, width - dpi(35)) +end) +local bat = lain.widget.bat({ + settings = function() + local index, perc = "bat", tonumber(bat_now.perc) or 0 + + if perc <= 7 then + index = index .. "000" + elseif perc <= 20 then + index = index .. "020" + elseif perc <= 40 then + index = index .. "040" + elseif perc <= 60 then + index = index .. "060" + elseif perc <= 80 then + index = index .. "080" + elseif perc <= 100 then + index = index .. "100" + end + + if bat_now.ac_status == 1 then + index = index .. "charging" + end + + baticon:set_image(theme[index]) + battooltip:set_markup(string.format("\n%s%%, %s", perc, bat_now.time)) + end +}) + +-- MPD +theme.mpd = lain.widget.mpd({ + music_dir = "/mnt/storage/Downloads/Music", + settings = function() + if mpd_now.state == "play" then + title = mpd_now.title + artist = " " .. mpd_now.artist .. " " + elseif mpd_now.state == "pause" then + title = "mpd " + artist = "paused " + else + title = "" + artist = "" + end + + widget:set_markup(markup.font(theme.font, title .. markup(theme.fg_focus, artist))) + end +}) + +-- ALSA volume +local volicon = wibox.widget.imagebox() +theme.volume = lain.widget.alsabar({ + --togglechannel = "IEC958,3", + notification_preset = { font = "Monospace 12", fg = theme.fg_normal }, + settings = function() + local index, perc = "", tonumber(volume_now.level) or 0 + + if volume_now.status == "off" then + index = "volmutedblocked" + else + if perc <= 5 then + index = "volmuted" + elseif perc <= 25 then + index = "vollow" + elseif perc <= 75 then + index = "volmed" + else + index = "volhigh" + end + end + + volicon:set_image(theme[index]) + end +}) +volicon:buttons(my_table.join ( + awful.button({}, 1, function() + awful.spawn(string.format("%s -e alsamixer", awful.util.terminal)) + end), + awful.button({}, 2, function() + os.execute(string.format("%s set %s 100%%", theme.volume.cmd, theme.volume.channel)) + theme.volume.notify() + end), + awful.button({}, 3, function() + os.execute(string.format("%s set %s toggle", theme.volume.cmd, theme.volume.togglechannel or theme.volume.channel)) + theme.volume.notify() + end), + awful.button({}, 4, function() + os.execute(string.format("%s set %s 1%%+", theme.volume.cmd, theme.volume.channel)) + theme.volume.notify() + end), + awful.button({}, 5, function() + os.execute(string.format("%s set %s 1%%-", theme.volume.cmd, theme.volume.channel)) + theme.volume.notify() + end) +)) + +-- Wifi carrier and signal strength +local wificon = wibox.widget.imagebox(theme.wifidisc) +local wifitooltip = awful.tooltip({ + objects = { wificon }, + margin_leftright = dpi(15), + margin_topbottom = dpi(15) +}) +wifitooltip.wibox.fg = theme.fg_normal +wifitooltip.textbox.font = theme.font +wifitooltip.timeout = 0 +wifitooltip:set_shape(function(cr, width, height) + gears.shape.infobubble(cr, width, height, corner_radius, arrow_size, width - dpi(120)) +end) +local mywifisig = awful.widget.watch( + { awful.util.shell, "-c", "awk 'NR==3 {printf(\"%d-%.0f\\n\",$2, $3*10/7)}' /proc/net/wireless; iw dev wlan0 link" }, + 2, + function(widget, stdout) + local carrier, perc = stdout:match("(%d)-(%d+)") + local tiptext = stdout:gsub("(%d)-(%d+)", ""):gsub("%s+$", "") + perc = tonumber(perc) + + if carrier == "1" or not perc then + wificon:set_image(theme.wifidisc) + wifitooltip:set_markup("No carrier") + else + if perc <= 5 then + wificon:set_image(theme.wifinone) + elseif perc <= 25 then + wificon:set_image(theme.wifilow) + elseif perc <= 50 then + wificon:set_image(theme.wifimed) + elseif perc <= 75 then + wificon:set_image(theme.wifihigh) + else + wificon:set_image(theme.wififull) + end + wifitooltip:set_markup(tiptext) + end + end +) +wificon:connect_signal("button::press", function() awful.spawn(string.format("%s -e wavemon", awful.util.terminal)) end) + +-- Weather +--[[ to be set before use +theme.weather = lain.widget.weather({ + city_id = 2643743, -- placeholder (London) + notification_preset = { font = "Monospace 10" }, + settings = function() + units = math.floor(weather_now["main"]["temp"]) + widget:set_markup(" " .. markup.font(theme.font, units .. "°C") .. " ") + end +}) +--]] + +-- Launcher +local mylauncher = awful.widget.button({image = theme.awesome_icon}) +mylauncher:connect_signal("button::press", function() awful.util.mymainmenu:toggle() end) + +-- Separators +local space = wibox.widget.textbox(" ") +local rspace1 = wibox.widget.textbox() +local rspace0 = wibox.widget.textbox() +local rspace2 = wibox.widget.textbox() +local rspace3 = wibox.widget.textbox() +local tspace1 = wibox.widget.textbox() +tspace1.forced_width = dpi(18) +rspace1.forced_width = dpi(16) +rspace0.forced_width = dpi(18) +rspace2.forced_width = dpi(19) +rspace3.forced_width = dpi(21) + +local lspace1 = wibox.widget.textbox() +local lspace2 = wibox.widget.textbox() +local lspace3 = wibox.widget.textbox() +lspace1.forced_height = dpi(18) +lspace2.forced_height = dpi(10) +lspace3.forced_height = dpi(16) + +local barcolor = gears.color({ + type = "linear", + from = { 0, dpi(46) }, + to = { dpi(46), dpi(46) }, + stops = { {0, theme.bg_focus}, {0.9, theme.bg_focus2} } +}) + +local barcolor2 = gears.color({ + type = "linear", + from = { 0, dpi(46) }, + to = { dpi(46), dpi(46) }, + stops = { {0, "#323232"}, {1, theme.bg_normal} } +}) + +local dockshape = function(cr, width, height) + gears.shape.partially_rounded_rect(cr, width, height, false, true, true, false, 6) +end + +function theme.vertical_wibox(s) + -- Create the vertical wibox + s.dockheight = (35 * s.workarea.height)/100 + + s.myleftwibox = wibox({ screen = s, x=0, y=s.workarea.height/2 - s.dockheight/2, width = dpi(6), height = s.dockheight, fg = theme.fg_normal, bg = barcolor2, ontop = true, visible = true, type = "dock" }) + + if s.index > 1 and s.myleftwibox.y == 0 then + s.myleftwibox.y = screen[1].myleftwibox.y + end + + -- Add widgets to the vertical wibox + s.myleftwibox:setup { + layout = wibox.layout.align.vertical, + { + layout = wibox.layout.fixed.vertical, + lspace1, + s.mytaglist, + lspace2, + s.layoutb, + wibox.container.margin(mylauncher, dpi(5), dpi(8), dpi(13), dpi(0)), + }, + } + + -- Add toggling functionalities + s.docktimer = gears.timer{ timeout = 2 } + s.docktimer:connect_signal("timeout", function() + local s = awful.screen.focused() + s.myleftwibox.width = dpi(9) + s.layoutb.visible = false + mylauncher.visible = false + if s.docktimer.started then + s.docktimer:stop() + end + end) + tag.connect_signal("property::selected", function(t) + local s = t.screen or awful.screen.focused() + s.myleftwibox.width = dpi(38) + s.layoutb.visible = true + mylauncher.visible = true + gears.surface.apply_shape_bounding(s.myleftwibox, dockshape) + if not s.docktimer.started then + s.docktimer:start() + end + end) + + s.myleftwibox:connect_signal("mouse::leave", function() + local s = awful.screen.focused() + s.myleftwibox.width = dpi(9) + s.layoutb.visible = false + mylauncher.visible = false + end) + + s.myleftwibox:connect_signal("mouse::enter", function() + local s = awful.screen.focused() + s.myleftwibox.width = dpi(38) + s.layoutb.visible = true + mylauncher.visible = true + gears.surface.apply_shape_bounding(s.myleftwibox, dockshape) + end) +end + + +function theme.at_screen_connect(s) + -- Quake application + s.quake = lain.util.quake({ app = awful.util.terminal, border = theme.border_width }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- Tags + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + s.mypromptbox.bg = "#00000000" + + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function () awful.layout.inc( 1) end), + awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end), + awful.button({}, 3, function () awful.layout.inc(-1) end), + awful.button({}, 4, function () awful.layout.inc( 1) end), + awful.button({}, 5, function () awful.layout.inc(-1) end))) + s.layoutb = wibox.container.margin(s.mylayoutbox, dpi(8), dpi(11), dpi(3), dpi(3)) + + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons, { + font = theme.taglist_font, + shape = gears.shape.rectangle, + spacing = dpi(10), + square_unsel = theme.square_unsel, + bg_focus = barcolor + }, nil, wibox.layout.fixed.vertical()) + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.focused, awful.util.tasklist_buttons, { bg_focus = "#00000000" }) + + -- Create the wibox + s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(25), bg = gears.color.create_png_pattern(theme.panelbg) }) + + -- Add widgets to the wibox + s.mywibox:setup { + layout = wibox.layout.align.horizontal, + expand = "none", + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + s.mypromptbox, + tspace1, + s.mytasklist, + }, + { -- Middle widgets + layout = wibox.layout.flex.horizontal, + max_widget_size = 1500, + mytextclock + }, + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + wibox.widget { nil, nil, theme.mpd.widget, layout = wibox.layout.align.horizontal }, + rspace0, + --theme.weather.icon, + --theme.weather.widget, + rspace1, + wificon, + rspace0, + volicon, + rspace2, + baticon, + rspace3, + wibox.widget.systray(), + }, + } + + gears.timer.delayed_call(theme.vertical_wibox, s) +end + +return theme diff --git a/awesome/.config/awesome/themes/vertex/wall.png b/awesome/.config/awesome/themes/vertex/wall.png new file mode 100755 index 0000000..863b1bf Binary files /dev/null and b/awesome/.config/awesome/themes/vertex/wall.png differ