summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Smith <kentsmith@gmail.com>2019-06-20 13:51:40 -0600
committerKent Smith <kentsmith@gmail.com>2019-06-20 13:51:40 -0600
commit1df9a28a5f90907aa7fdaeca92018380dec2a07b (patch)
tree2051f53748e3f48a4962ded93481b630203f4236
parentea50f7d3e04c01aea08a31b9acdb6109b5e9a8fd (diff)
downloadcfg-1df9a28a5f90907aa7fdaeca92018380dec2a07b.tar.gz
cfg-1df9a28a5f90907aa7fdaeca92018380dec2a07b.tar.bz2
add custom theme
-rw-r--r--.config/awesome/rc.lua2
-rw-r--r--.config/awesome/themes/copland/theme-personal.lua372
2 files changed, 373 insertions, 1 deletions
diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua
index 9e47a6c..acce6c7 100644
--- a/.config/awesome/rc.lua
+++ b/.config/awesome/rc.lua
@@ -184,7 +184,7 @@ lain.layout.cascade.tile.extra_padding = 5
lain.layout.cascade.tile.nmaster = 5
lain.layout.cascade.tile.ncol = 2
-beautiful.init(string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme))
+beautiful.init(string.format("%s/.config/awesome/themes/%s/theme-personal.lua", os.getenv("HOME"), chosen_theme))
-- }}}
-- {{{ Menu
diff --git a/.config/awesome/themes/copland/theme-personal.lua b/.config/awesome/themes/copland/theme-personal.lua
new file mode 100644
index 0000000..22553a2
--- /dev/null
+++ b/.config/awesome/themes/copland/theme-personal.lua
@@ -0,0 +1,372 @@
+--[[
+
+ 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 = "Iosevka 10"
+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("<span font='Iosevka 10'> </span>%H:%M %a %d")
+mytextclock.font = theme.font
+
+-- Calendar
+theme.cal = lain.widget.cal({
+ attach_to = { mytextclock },
+ notification_preset = {
+ font = "Misc Tamsyn 11",
+ fg = theme.fg_normal,
+ 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 = ""
+ count = ""
+
+ if mailcount > 0 then
+ mail = "<span font='Misc Tamsyn 5'> </span>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", " <span font='Misc Tamsyn 2'> </span>|<span font='Misc Tamsyn 5'> </span>")
+ mpdicon:set_image(theme.play)
+ elseif mpd_now.state == "pause" then
+ title = "mpd "
+ artist = "paused" .. markup("#777777", " |<span font='Misc Tamsyn 5'> </span>")
+ 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 = "Misc Tamsyn 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
+theme.weather = lain.widget.weather({
+ city_id = 2643743, -- placeholder (London)
+})
+
+-- Separators
+local first = wibox.widget.textbox(markup.font("Misc Tamsyn 3", " "))
+local spr = wibox.widget.textbox(' ')
+local small_spr = wibox.widget.textbox(markup.font("Misc Tamsyn 4", " "))
+local bar_spr = wibox.widget.textbox(markup.font("Misc Tamsyn 3", " ") .. markup.fontfg(theme.font, "#777777", "|") .. markup.font("Misc Tamsyn 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)
+
+ -- 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