import
96
themes/powerarrow/binclock.lua
Normal file
@@ -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
|
||||
BIN
themes/powerarrow/icons/ac.png
Executable file
|
After Width: | Height: | Size: 333 B |
BIN
themes/powerarrow/icons/awesome.png
Executable file
|
After Width: | Height: | Size: 129 B |
BIN
themes/powerarrow/icons/battery.png
Executable file
|
After Width: | Height: | Size: 334 B |
BIN
themes/powerarrow/icons/battery_empty.png
Executable file
|
After Width: | Height: | Size: 327 B |
BIN
themes/powerarrow/icons/battery_low.png
Executable file
|
After Width: | Height: | Size: 332 B |
BIN
themes/powerarrow/icons/brightness.png
Executable file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
themes/powerarrow/icons/cpu.png
Executable file
|
After Width: | Height: | Size: 333 B |
BIN
themes/powerarrow/icons/floating.png
Executable file
|
After Width: | Height: | Size: 173 B |
BIN
themes/powerarrow/icons/fwd.png
Executable file
|
After Width: | Height: | Size: 326 B |
BIN
themes/powerarrow/icons/hdd.png
Executable file
|
After Width: | Height: | Size: 342 B |
BIN
themes/powerarrow/icons/mail.png
Executable file
|
After Width: | Height: | Size: 183 B |
BIN
themes/powerarrow/icons/mail_on.png
Executable file
|
After Width: | Height: | Size: 183 B |
BIN
themes/powerarrow/icons/mem.png
Executable file
|
After Width: | Height: | Size: 325 B |
BIN
themes/powerarrow/icons/net.png
Executable file
|
After Width: | Height: | Size: 162 B |
BIN
themes/powerarrow/icons/next.png
Executable file
|
After Width: | Height: | Size: 328 B |
BIN
themes/powerarrow/icons/note.png
Executable file
|
After Width: | Height: | Size: 153 B |
BIN
themes/powerarrow/icons/note_on.png
Executable file
|
After Width: | Height: | Size: 164 B |
BIN
themes/powerarrow/icons/pacman.png
Executable file
|
After Width: | Height: | Size: 345 B |
BIN
themes/powerarrow/icons/pause.png
Executable file
|
After Width: | Height: | Size: 316 B |
BIN
themes/powerarrow/icons/phones.png
Executable file
|
After Width: | Height: | Size: 337 B |
BIN
themes/powerarrow/icons/play.png
Executable file
|
After Width: | Height: | Size: 329 B |
BIN
themes/powerarrow/icons/prev.png
Executable file
|
After Width: | Height: | Size: 325 B |
BIN
themes/powerarrow/icons/rwd.png
Executable file
|
After Width: | Height: | Size: 331 B |
BIN
themes/powerarrow/icons/scissors.png
Executable file
|
After Width: | Height: | Size: 160 B |
BIN
themes/powerarrow/icons/square_sel.png
Executable file
|
After Width: | Height: | Size: 139 B |
BIN
themes/powerarrow/icons/square_unsel.png
Executable file
|
After Width: | Height: | Size: 209 B |
BIN
themes/powerarrow/icons/stop.png
Executable file
|
After Width: | Height: | Size: 322 B |
BIN
themes/powerarrow/icons/submenu.png
Executable file
|
After Width: | Height: | Size: 142 B |
BIN
themes/powerarrow/icons/task.png
Executable file
|
After Width: | Height: | Size: 169 B |
BIN
themes/powerarrow/icons/temp.png
Executable file
|
After Width: | Height: | Size: 338 B |
BIN
themes/powerarrow/icons/tile.png
Executable file
|
After Width: | Height: | Size: 163 B |
BIN
themes/powerarrow/icons/tilebottom.png
Executable file
|
After Width: | Height: | Size: 166 B |
BIN
themes/powerarrow/icons/tileleft.png
Executable file
|
After Width: | Height: | Size: 165 B |
BIN
themes/powerarrow/icons/tiletop.png
Executable file
|
After Width: | Height: | Size: 166 B |
BIN
themes/powerarrow/icons/titlebar/close_focus.png
Executable file
|
After Width: | Height: | Size: 187 B |
BIN
themes/powerarrow/icons/titlebar/close_normal.png
Executable file
|
After Width: | Height: | Size: 324 B |
BIN
themes/powerarrow/icons/titlebar/floating_focus_active.png
Executable file
|
After Width: | Height: | Size: 187 B |
BIN
themes/powerarrow/icons/titlebar/floating_focus_inactive.png
Executable file
|
After Width: | Height: | Size: 250 B |
BIN
themes/powerarrow/icons/titlebar/floating_normal_active.png
Executable file
|
After Width: | Height: | Size: 324 B |
BIN
themes/powerarrow/icons/titlebar/floating_normal_inactive.png
Executable file
|
After Width: | Height: | Size: 250 B |
BIN
themes/powerarrow/icons/titlebar/maximized_focus_active.png
Executable file
|
After Width: | Height: | Size: 196 B |
BIN
themes/powerarrow/icons/titlebar/maximized_focus_inactive.png
Executable file
|
After Width: | Height: | Size: 263 B |
BIN
themes/powerarrow/icons/titlebar/maximized_normal_active.png
Executable file
|
After Width: | Height: | Size: 333 B |
BIN
themes/powerarrow/icons/titlebar/maximized_normal_inactive.png
Executable file
|
After Width: | Height: | Size: 269 B |
BIN
themes/powerarrow/icons/titlebar/ontop_focus_active.png
Executable file
|
After Width: | Height: | Size: 191 B |
BIN
themes/powerarrow/icons/titlebar/ontop_focus_inactive.png
Executable file
|
After Width: | Height: | Size: 255 B |
BIN
themes/powerarrow/icons/titlebar/ontop_normal_active.png
Executable file
|
After Width: | Height: | Size: 326 B |
BIN
themes/powerarrow/icons/titlebar/ontop_normal_inactive.png
Executable file
|
After Width: | Height: | Size: 256 B |
BIN
themes/powerarrow/icons/titlebar/sticky_focus_active.png
Executable file
|
After Width: | Height: | Size: 187 B |
BIN
themes/powerarrow/icons/titlebar/sticky_focus_inactive.png
Executable file
|
After Width: | Height: | Size: 252 B |
BIN
themes/powerarrow/icons/titlebar/sticky_normal_active.png
Executable file
|
After Width: | Height: | Size: 324 B |
BIN
themes/powerarrow/icons/titlebar/sticky_normal_inactive.png
Executable file
|
After Width: | Height: | Size: 249 B |
474
themes/powerarrow/theme.lua
Normal file
@@ -0,0 +1,474 @@
|
||||
--[[
|
||||
|
||||
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
|
||||
BIN
themes/powerarrow/wall.png
Executable file
|
After Width: | Height: | Size: 1.3 MiB |