├── README.md ├── config ├── autostart.lua ├── init.lua ├── keys.lua ├── naughty.lua ├── rules.lua ├── swallowing.lua └── tags.lua ├── liblua_pam.so ├── modules ├── animation │ ├── init.lua │ ├── subscribable.lua │ └── tween.lua ├── overflow.lua └── playerctl │ ├── init.lua │ ├── playerctl_cli.lua │ └── playerctl_lib.lua ├── rc.lua ├── scripts ├── colorpicker └── picom │ ├── picom.conf │ └── picom_no_opacity.conf ├── signals ├── airplane.lua ├── battery.lua ├── bluetooth.lua ├── blur.lua ├── brightness.lua ├── dnd.lua ├── init.lua ├── microphone.lua ├── network.lua ├── redshift.lua ├── systems.lua ├── uptime.lua ├── volume.lua ├── wallpaper.lua └── weather.lua ├── themes ├── assets │ ├── awm │ │ ├── awm.png │ │ ├── battery-low.svg │ │ ├── clear.svg │ │ ├── floating.png │ │ ├── micmuted.svg │ │ ├── notification-empty.svg │ │ ├── tile.png │ │ ├── todo.svg │ │ └── volumemuted.svg │ ├── bluetooth │ │ ├── bluetooth-dis-macos.png │ │ ├── bluetooth-discon-macos.png │ │ └── bluetooth-macos.png │ ├── button │ │ ├── close.svg │ │ ├── delete.svg │ │ ├── maximize.svg │ │ ├── minus.svg │ │ ├── openimage.svg │ │ ├── openvideo.svg │ │ ├── record.svg │ │ └── screenshot.svg │ ├── controlcenter │ │ ├── airplane.svg │ │ ├── blur.svg │ │ ├── controlcenter.svg │ │ ├── focus.svg │ │ ├── magnifying.png │ │ └── nightshift.svg │ ├── music │ │ ├── artdefault.jpg │ │ ├── blurdefault.jpg │ │ ├── default.png │ │ ├── loop.svg │ │ ├── loopone.svg │ │ ├── next.svg │ │ ├── pause.svg │ │ ├── play.svg │ │ ├── playing.png │ │ ├── previous.svg │ │ ├── shuffle.svg │ │ └── spotify.png │ ├── network │ │ ├── ethernet-macos.png │ │ ├── nowifi.svg │ │ ├── wifi1.svg │ │ ├── wifi2.svg │ │ ├── wifi3.svg │ │ └── wifi4.svg │ ├── popup │ │ ├── charge.svg │ │ └── keyboards.svg │ ├── power │ │ ├── darkmode.svg │ │ ├── lock.svg │ │ ├── logout.svg │ │ ├── powermode.svg │ │ ├── poweroff.svg │ │ ├── restart.svg │ │ └── suspend.svg │ ├── sownteedev.png │ ├── sownteemerry.png │ └── weather │ │ ├── flag │ │ ├── ad.svg │ │ ├── ae.svg │ │ ├── af.svg │ │ ├── ag.svg │ │ ├── ai.svg │ │ ├── al.svg │ │ ├── am.svg │ │ ├── ao.svg │ │ ├── aq.svg │ │ ├── ar.svg │ │ ├── arab.svg │ │ ├── as.svg │ │ ├── at.svg │ │ ├── au.svg │ │ ├── aw.svg │ │ ├── ax.svg │ │ ├── az.svg │ │ ├── ba.svg │ │ ├── bb.svg │ │ ├── bd.svg │ │ ├── be.svg │ │ ├── bf.svg │ │ ├── bg.svg │ │ ├── bh.svg │ │ ├── bi.svg │ │ ├── bj.svg │ │ ├── bl.svg │ │ ├── bm.svg │ │ ├── bn.svg │ │ ├── bo.svg │ │ ├── bq.svg │ │ ├── br.svg │ │ ├── bs.svg │ │ ├── bt.svg │ │ ├── bv.svg │ │ ├── bw.svg │ │ ├── by.svg │ │ ├── bz.svg │ │ ├── ca.svg │ │ ├── cc.svg │ │ ├── cd.svg │ │ ├── cefta.svg │ │ ├── cf.svg │ │ ├── cg.svg │ │ ├── ch.svg │ │ ├── ci.svg │ │ ├── ck.svg │ │ ├── cl.svg │ │ ├── cm.svg │ │ ├── cn.svg │ │ ├── co.svg │ │ ├── cp.svg │ │ ├── cr.svg │ │ ├── cu.svg │ │ ├── cv.svg │ │ ├── cw.svg │ │ ├── cx.svg │ │ ├── cy.svg │ │ ├── cz.svg │ │ ├── de.svg │ │ ├── dg.svg │ │ ├── dj.svg │ │ ├── dk.svg │ │ ├── dm.svg │ │ ├── do.svg │ │ ├── dz.svg │ │ ├── eac.svg │ │ ├── ec.svg │ │ ├── ee.svg │ │ ├── eg.svg │ │ ├── eh.svg │ │ ├── er.svg │ │ ├── es-ct.svg │ │ ├── es-ga.svg │ │ ├── es-pv.svg │ │ ├── es.svg │ │ ├── et.svg │ │ ├── eu.svg │ │ ├── fi.svg │ │ ├── fj.svg │ │ ├── fk.svg │ │ ├── fm.svg │ │ ├── fo.svg │ │ ├── fr.svg │ │ ├── ga.svg │ │ ├── gb-eng.svg │ │ ├── gb-nir.svg │ │ ├── gb-sct.svg │ │ ├── gb-wls.svg │ │ ├── gb.svg │ │ ├── gd.svg │ │ ├── ge.svg │ │ ├── gf.svg │ │ ├── gg.svg │ │ ├── gh.svg │ │ ├── gi.svg │ │ ├── gl.svg │ │ ├── gm.svg │ │ ├── gn.svg │ │ ├── gp.svg │ │ ├── gq.svg │ │ ├── gr.svg │ │ ├── gs.svg │ │ ├── gt.svg │ │ ├── gu.svg │ │ ├── gw.svg │ │ ├── gy.svg │ │ ├── hk.svg │ │ ├── hm.svg │ │ ├── hn.svg │ │ ├── hr.svg │ │ ├── ht.svg │ │ ├── hu.svg │ │ ├── ic.svg │ │ ├── id.svg │ │ ├── ie.svg │ │ ├── il.svg │ │ ├── im.svg │ │ ├── in.svg │ │ ├── io.svg │ │ ├── iq.svg │ │ ├── ir.svg │ │ ├── is.svg │ │ ├── it.svg │ │ ├── je.svg │ │ ├── jm.svg │ │ ├── jo.svg │ │ ├── jp.svg │ │ ├── ke.svg │ │ ├── kg.svg │ │ ├── kh.svg │ │ ├── ki.svg │ │ ├── km.svg │ │ ├── kn.svg │ │ ├── kp.svg │ │ ├── kr.svg │ │ ├── kw.svg │ │ ├── ky.svg │ │ ├── kz.svg │ │ ├── la.svg │ │ ├── lb.svg │ │ ├── lc.svg │ │ ├── li.svg │ │ ├── lk.svg │ │ ├── lr.svg │ │ ├── ls.svg │ │ ├── lt.svg │ │ ├── lu.svg │ │ ├── lv.svg │ │ ├── ly.svg │ │ ├── ma.svg │ │ ├── mc.svg │ │ ├── md.svg │ │ ├── me.svg │ │ ├── mf.svg │ │ ├── mg.svg │ │ ├── mh.svg │ │ ├── mk.svg │ │ ├── ml.svg │ │ ├── mm.svg │ │ ├── mn.svg │ │ ├── mo.svg │ │ ├── mp.svg │ │ ├── mq.svg │ │ ├── mr.svg │ │ ├── ms.svg │ │ ├── mt.svg │ │ ├── mu.svg │ │ ├── mv.svg │ │ ├── mw.svg │ │ ├── mx.svg │ │ ├── my.svg │ │ ├── mz.svg │ │ ├── na.svg │ │ ├── nc.svg │ │ ├── ne.svg │ │ ├── nf.svg │ │ ├── ng.svg │ │ ├── ni.svg │ │ ├── nl.svg │ │ ├── no.svg │ │ ├── np.svg │ │ ├── nr.svg │ │ ├── nu.svg │ │ ├── nz.svg │ │ ├── om.svg │ │ ├── pa.svg │ │ ├── pc.svg │ │ ├── pe.svg │ │ ├── pf.svg │ │ ├── pg.svg │ │ ├── ph.svg │ │ ├── pk.svg │ │ ├── pl.svg │ │ ├── pm.svg │ │ ├── pn.svg │ │ ├── pr.svg │ │ ├── ps.svg │ │ ├── pt.svg │ │ ├── pw.svg │ │ ├── py.svg │ │ ├── qa.svg │ │ ├── re.svg │ │ ├── ro.svg │ │ ├── rs.svg │ │ ├── ru.svg │ │ ├── rw.svg │ │ ├── sa.svg │ │ ├── sb.svg │ │ ├── sc.svg │ │ ├── sd.svg │ │ ├── se.svg │ │ ├── sg.svg │ │ ├── sh-ac.svg │ │ ├── sh-hl.svg │ │ ├── sh-ta.svg │ │ ├── sh.svg │ │ ├── si.svg │ │ ├── sj.svg │ │ ├── sk.svg │ │ ├── sl.svg │ │ ├── sm.svg │ │ ├── sn.svg │ │ ├── so.svg │ │ ├── sr.svg │ │ ├── ss.svg │ │ ├── st.svg │ │ ├── sv.svg │ │ ├── sx.svg │ │ ├── sy.svg │ │ ├── sz.svg │ │ ├── tc.svg │ │ ├── td.svg │ │ ├── tf.svg │ │ ├── tg.svg │ │ ├── th.svg │ │ ├── tj.svg │ │ ├── tk.svg │ │ ├── tl.svg │ │ ├── tm.svg │ │ ├── tn.svg │ │ ├── to.svg │ │ ├── tr.svg │ │ ├── tt.svg │ │ ├── tv.svg │ │ ├── tw.svg │ │ ├── tz.svg │ │ ├── ua.svg │ │ ├── ug.svg │ │ ├── um.svg │ │ ├── un.svg │ │ ├── us.svg │ │ ├── uy.svg │ │ ├── uz.svg │ │ ├── va.svg │ │ ├── vc.svg │ │ ├── ve.svg │ │ ├── vg.svg │ │ ├── vi.svg │ │ ├── vn.svg │ │ ├── vu.svg │ │ ├── wf.svg │ │ ├── ws.svg │ │ ├── xk.svg │ │ ├── xx.svg │ │ ├── ye.svg │ │ ├── yt.svg │ │ ├── za.svg │ │ ├── zm.svg │ │ └── zw.svg │ │ ├── humidity.svg │ │ ├── icons │ │ ├── weather-clear-night.svg │ │ ├── weather-clear-sky.svg │ │ ├── weather-clouds-night.svg │ │ ├── weather-clouds.svg │ │ ├── weather-few-clouds-night.svg │ │ ├── weather-few-clouds.svg │ │ ├── weather-fog.svg │ │ ├── weather-freezing-rain.svg │ │ ├── weather-overcast-symbolic.svg │ │ ├── weather-overcast.svg │ │ ├── weather-showers-scattered.svg │ │ ├── weather-showers.svg │ │ ├── weather-snow-rain.svg │ │ ├── weather-snow-scattered.svg │ │ ├── weather-snow.svg │ │ ├── weather-storm.svg │ │ └── weather-windy.svg │ │ ├── images │ │ ├── weather-clear-night.jpg │ │ ├── weather-clear-sky.jpg │ │ ├── weather-clouds-night.jpg │ │ ├── weather-fog.jpg │ │ ├── weather-showers-scattered.jpg │ │ ├── weather-showers.jpg │ │ ├── weather-snow.jpg │ │ ├── weather-stroms.jpg │ │ └── weathers-cloud.jpg │ │ ├── location.svg │ │ └── windspeed.svg ├── colors │ ├── dark.lua │ └── light.lua ├── theme.lua └── toggle.lua ├── user.lua ├── utils ├── color.lua ├── file.lua ├── icon.lua ├── image.lua ├── init.lua ├── json.lua ├── keys.lua ├── upower.lua └── widget.lua └── widgets ├── control ├── init.lua └── mods │ ├── bluenetair.lua │ ├── button.lua │ ├── dndblurnight.lua │ ├── music.lua │ ├── powerndark.lua │ └── slider.lua ├── dock └── init.lua ├── exit └── init.lua ├── lock └── init.lua ├── noticenter ├── init.lua └── make.lua ├── notification └── init.lua ├── popup ├── battery │ ├── epic.lua │ └── init.lua ├── brivolmic.lua ├── calendar.lua ├── clock.lua ├── image.lua ├── launcher.lua ├── music.lua ├── preview │ ├── previewclients.lua │ └── previewtags.lua ├── system.lua ├── todo.lua └── weather.lua ├── titlebar ├── gtk.lua └── macos.lua └── topbar ├── init.lua └── mods ├── awmmenu.lua ├── controlcenter.lua ├── systray.lua ├── tags.lua └── time.lua /config/autostart.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | for _, cmd in ipairs(_User.AutoStart) do 5 | awful.spawn.with_shell(cmd) 6 | end 7 | awful.spawn.easy_async_with_shell("cat ~/.cache/awesome/blur", function(stdout) 8 | local status = stdout:match("true") 9 | awful.spawn.with_shell( 10 | not status and "picom --config ~/.config/awesome/scripts/picom/picom_no_opacity -b" or 11 | "picom --config ~/.config/awesome/scripts/picom/picom.conf -b" 12 | ) 13 | end) 14 | 15 | gears.timer.start_new(2, function() 16 | awful.spawn.with_shell("ibus engine Bamboo") 17 | end) 18 | -------------------------------------------------------------------------------- /config/init.lua: -------------------------------------------------------------------------------- 1 | require(... .. ".autostart") 2 | require(... .. ".tags") 3 | require(... .. ".rules") 4 | require(... .. ".naughty") 5 | require(... .. ".keys") 6 | require(... .. ".swallowing") 7 | -------------------------------------------------------------------------------- /config/naughty.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local naughty = require("naughty") 3 | local beautiful = require("beautiful") 4 | 5 | naughty.connect_signal('request::display_error', function(message, startup) 6 | naughty.notification({ 7 | urgency = 'critical', 8 | app_name = "Awesome", 9 | title = _Utils.widget.colorizeText('Oops, an error happened' .. (startup and ' during startup!' or '!'), 10 | beautiful.red), 11 | message = message, 12 | ontop = true, 13 | timeout = 0, 14 | }) 15 | end) 16 | 17 | -- naughty config 18 | naughty.config.defaults.position = "top_right" 19 | naughty.config.defaults.timeout = 10 20 | naughty.config.defaults.title = "Ding!" 21 | naughty.config.defaults.screen = awful.screen.focused() 22 | beautiful.notification_spacing = 20 23 | 24 | -- Timeouts 25 | naughty.config.presets.low.timeout = 10 26 | naughty.config.presets.critical.timeout = 0 27 | 28 | naughty.connect_signal("request::display", function(n) 29 | require("widgets.notification")(n) 30 | end) 31 | -------------------------------------------------------------------------------- /liblua_pam.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/liblua_pam.so -------------------------------------------------------------------------------- /modules/animation/subscribable.lua: -------------------------------------------------------------------------------- 1 | ------------------------------------------- 2 | -- @author https://github.com/Kasper24 3 | -- @copyright 2021-2022 Kasper24 4 | -- Adopted from rubato 5 | ------------------------------------------- 6 | 7 | local gobject = require("gears.object") 8 | 9 | -- Kidna copying awesotre's stores on a surface level for added compatibility 10 | local function subscribable(args) 11 | local ret = gobject({}) 12 | local subscribed = {} 13 | 14 | -- Subscrubes a function to the object so that it's called when `fire` is 15 | -- Calls subscribe_callback if it exists as well 16 | function ret:subscribe(func) 17 | local id = tostring(func):gsub("function: ", "") 18 | subscribed[id] = func 19 | 20 | if self.subscribe_callback then 21 | self.subscribe_callback(func) 22 | end 23 | end 24 | 25 | -- Unsubscribes a function and calls unsubscribe_callback if it exists 26 | function ret:unsubscribe(func) 27 | if not func then 28 | subscribed = {} 29 | else 30 | local id = tostring(func):gsub("function: ", "") 31 | subscribed[id] = nil 32 | end 33 | 34 | if self.unsubscribe_callback then 35 | self.unsubscribe_callback(func) 36 | end 37 | end 38 | 39 | function ret:fire(...) 40 | for _, func in pairs(subscribed) do 41 | func(...) 42 | end 43 | end 44 | 45 | return ret 46 | end 47 | 48 | return subscribable 49 | -------------------------------------------------------------------------------- /modules/playerctl/init.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gtimer = require("gears.timer") 3 | local beautiful = require("beautiful") 4 | local naughty = require("naughty") 5 | 6 | -- Use CLI backend as default as it is supported on most if not all systems 7 | local backend_config = beautiful.playerctl_backend or "playerctl_cli" 8 | local backends = { 9 | playerctl_cli = require(... .. ".playerctl_cli"), 10 | playerctl_lib = require(... .. ".playerctl_lib"), 11 | } 12 | 13 | local backend = nil 14 | 15 | local function enable_wrapper(args) 16 | local open = naughty.action({ name = "Open" }) 17 | 18 | open:connect_signal("invoked", function() 19 | awful.spawn("xdg-open https://blingcorp.github.io/bling/#/signals/pctl") 20 | end) 21 | 22 | gtimer.delayed_call(function() 23 | naughty.notify({ 24 | title = "Bling Error", 25 | text = "Global signals are deprecated! Please take a look at the playerctl documentation.", 26 | app_name = "Bling Error", 27 | app_icon = "system-error", 28 | actions = { open }, 29 | }) 30 | end) 31 | 32 | backend_config = (args and args.backend) or backend_config 33 | backend = backends[backend_config](args) 34 | return backend 35 | end 36 | 37 | local function disable_wrapper() 38 | backend:disable() 39 | end 40 | 41 | return { 42 | lib = backends.playerctl_lib, 43 | cli = backends.playerctl_cli, 44 | enable = enable_wrapper, 45 | disable = disable_wrapper, 46 | } 47 | -------------------------------------------------------------------------------- /rc.lua: -------------------------------------------------------------------------------- 1 | pcall(require, "luarocks.loader") 2 | require("awful.autofocus") 3 | _User = require("user") 4 | _Utils = require("utils") 5 | 6 | ---@diagnostic disable: param-type-mismatch 7 | collectgarbage("setpause", 150) 8 | collectgarbage("setstepmul", 500) 9 | 10 | local memory_last_check_count = collectgarbage("count") 11 | local memory_last_run_time = os.time() 12 | local memory_growth_factor = 1.1 13 | local memory_long_collection_time = 600 14 | 15 | require("gears.timer").start_new(15, function() 16 | local cur_memory = collectgarbage("count") 17 | local elapsed = os.time() - memory_last_run_time 18 | local waited_long = elapsed >= memory_long_collection_time 19 | local grew_enough = cur_memory > memory_last_check_count * memory_growth_factor 20 | if grew_enough or waited_long then 21 | collectgarbage("collect") 22 | collectgarbage("collect") 23 | memory_last_run_time = os.time() 24 | end 25 | memory_last_check_count = math.max(memory_last_check_count, collectgarbage("count")) 26 | return true 27 | end) 28 | 29 | require("beautiful").init(require("gears").filesystem.get_configuration_dir() .. "themes/theme.lua") 30 | require("config") 31 | require("signals") 32 | -------------------------------------------------------------------------------- /scripts/colorpicker: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | hex="$(gpick -pso --no-newline | tr '[:upper:]' '[:lower:]')" 4 | [ "$hex" ] && ( 5 | magick -size 50x50 xc:$hex /tmp/xcolor.png 6 | echo "$hex" | xclip -r -sel clipboard && notify-send -a "gpick" -i "/tmp/xcolor.png" "Color Picker" "$hex" 7 | ) 8 | -------------------------------------------------------------------------------- /signals/airplane.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local AIRPLANE_CACHE = gears.filesystem.get_cache_dir() .. "airplane" 5 | local AIRPLANE_STATUS_CMD = "cat " .. AIRPLANE_CACHE 6 | local RFKILL_STATUS_CMD = "rfkill list | sed -n 5p" 7 | 8 | local function get_toggle_cmd(enable) 9 | return string.format( 10 | "rfkill %s all && echo %s > %s", 11 | enable and "block" or "unblock", 12 | enable and "true" or "false", 13 | AIRPLANE_CACHE 14 | ) 15 | end 16 | 17 | awful.spawn.easy_async_with_shell(AIRPLANE_STATUS_CMD, function(stdout) 18 | awesome.emit_signal("signal::airplane", stdout == "true\n") 19 | end) 20 | 21 | function airplane_toggle() 22 | awful.spawn.easy_async_with_shell(RFKILL_STATUS_CMD, function(stdout) 23 | local is_disabled = stdout:match("no") 24 | awful.spawn.easy_async_with_shell( 25 | get_toggle_cmd(is_disabled), 26 | function() 27 | awesome.emit_signal("signal::airplane", is_disabled) 28 | end 29 | ) 30 | end) 31 | end 32 | -------------------------------------------------------------------------------- /signals/bluetooth.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local last_pid = nil 5 | 6 | local function kill_last_process() 7 | if last_pid then 8 | awful.spawn.easy_async("sh -c 'kill " .. last_pid .. " 2>/dev/null'", function() 9 | last_pid = nil 10 | end) 11 | end 12 | end 13 | 14 | local function emit_bluetooth_status() 15 | kill_last_process() 16 | 17 | awful.spawn.easy_async_with_shell([[ 18 | sh -c ' 19 | echo $$ > /tmp/bluetooth_status_pid 20 | (bluetoothctl show | grep -i powered:) & (bluetoothctl info) & wait 21 | rm -f /tmp/bluetooth_status_pid 22 | ']], function(stdout) 23 | awful.spawn.easy_async("cat /tmp/bluetooth_status_pid", function(pid) 24 | last_pid = pid:gsub("%s+", "") 25 | end) 26 | 27 | local status = stdout:match("yes") 28 | local name = stdout:match("Name: ([^\n]+)") or "" 29 | 30 | awesome.emit_signal("signal::bluetooth", status, name) 31 | end) 32 | end 33 | 34 | local update_timer = gears.timer({ 35 | timeout = 10, 36 | autostart = false, 37 | callback = emit_bluetooth_status 38 | }) 39 | 40 | awesome.connect_signal("exit", function() 41 | kill_last_process() 42 | update_timer:stop() 43 | end) 44 | 45 | function bluetooth_toggle() 46 | awful.spawn.easy_async_with_shell( 47 | "bluetoothctl show | grep -i powered:", 48 | function(stdout) 49 | local is_powered = stdout:match("yes") 50 | awful.spawn.easy_async_with_shell( 51 | is_powered and "bluetoothctl power off" or "bluetoothctl power on", 52 | function() 53 | gears.timer.start_new(1, function() 54 | emit_bluetooth_status() 55 | return false 56 | end) 57 | end 58 | ) 59 | end 60 | ) 61 | end 62 | 63 | update_timer:start() 64 | emit_bluetooth_status() 65 | -------------------------------------------------------------------------------- /signals/blur.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local BLUR_CACHE = gears.filesystem.get_cache_dir() .. "blur" 5 | local PICOM_NORMAL = gears.filesystem.get_configuration_dir() .. "scripts/picom/picom.conf" 6 | local PICOM_NO_OPACITY = gears.filesystem.get_configuration_dir() .. "scripts/picom/picom_no_opacity.conf" 7 | 8 | local function get_picom_cmd(config) 9 | return string.format("picom --config %s -b", config) 10 | end 11 | 12 | local function get_blur_state_cmd(state) 13 | return string.format("echo %s > %s", state and "true" or "false", BLUR_CACHE) 14 | end 15 | 16 | awful.spawn.easy_async_with_shell("cat " .. BLUR_CACHE, function(stdout) 17 | awesome.emit_signal("signal::blur", stdout:match("true")) 18 | end) 19 | 20 | function blur_toggle() 21 | awful.spawn.easy_async_with_shell("cat " .. BLUR_CACHE, function(stdout) 22 | local current_status = stdout:match("true") 23 | local new_status = not current_status 24 | local commands = table.concat({ 25 | "pkill picom", 26 | get_picom_cmd(current_status and PICOM_NO_OPACITY or PICOM_NORMAL), 27 | get_blur_state_cmd(new_status) 28 | }, " && ") 29 | awful.spawn.easy_async_with_shell(commands, function() 30 | awesome.emit_signal("signal::blur", new_status) 31 | end) 32 | end) 33 | end 34 | -------------------------------------------------------------------------------- /signals/brightness.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local BRIGHTNESS_CACHE = gears.filesystem.get_cache_dir() .. "brightness" 5 | local BACKLIGHT_PATH = "/sys/class/backlight/*" 6 | local BRIGHTNESS_CMD = string.format( 7 | "echo $(($(cat %s/brightness) * 100 / $(cat %s/max_brightness)))", 8 | BACKLIGHT_PATH, BACKLIGHT_PATH 9 | ) 10 | 11 | local function get_brightness_cmd(level, state) 12 | return string.format( 13 | "brightnessctl s %d%% && echo %s > %s", 14 | level, 15 | state and "true" or "false", 16 | BRIGHTNESS_CACHE 17 | ) 18 | end 19 | 20 | function brightness_emit() 21 | awful.spawn.easy_async_with_shell(BRIGHTNESS_CMD, function(stdout) 22 | local value = tonumber(stdout) 23 | if value then 24 | awesome.emit_signal("signal::brightness", value) 25 | end 26 | end) 27 | end 28 | 29 | awful.spawn.easy_async_with_shell("cat " .. BRIGHTNESS_CACHE, function(stdout) 30 | awesome.emit_signal("signal::brightnesss", stdout:match("true")) 31 | end) 32 | 33 | function brightness_toggle() 34 | awful.spawn.easy_async_with_shell("brightnessctl i | grep Current", function(stdout) 35 | local is_dim = stdout:match("25") 36 | local new_level = is_dim and 75 or 25 37 | awful.spawn.easy_async_with_shell( 38 | get_brightness_cmd(new_level, not is_dim), 39 | function() 40 | awesome.emit_signal("signal::brightness", new_level) 41 | awesome.emit_signal("signal::brightnesss", not is_dim) 42 | end 43 | ) 44 | end) 45 | end 46 | 47 | brightness_emit() 48 | -------------------------------------------------------------------------------- /signals/dnd.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local DND_CACHE = gears.filesystem.get_cache_dir() .. "dnd" 5 | local NAUGHTY_TOGGLE = "awesome-client 'naughty = require(\"naughty\") naughty.toggle()'" 6 | 7 | local function get_dnd_state_cmd(state) 8 | return string.format("echo %s > %s", state and "true" or "false", DND_CACHE) 9 | end 10 | 11 | awful.spawn.easy_async_with_shell("cat " .. DND_CACHE, function(stdout) 12 | awesome.emit_signal("signal::dnd", stdout:match("true")) 13 | end) 14 | 15 | function dnd_toggle() 16 | awful.spawn.easy_async_with_shell("cat " .. DND_CACHE, function(stdout) 17 | local current_status = stdout:match("true") 18 | local new_status = not current_status 19 | 20 | local commands = table.concat({ 21 | NAUGHTY_TOGGLE, 22 | get_dnd_state_cmd(new_status) 23 | }, " && ") 24 | 25 | awful.spawn.easy_async_with_shell(commands, function() 26 | awesome.emit_signal("signal::dnd", new_status) 27 | end) 28 | end) 29 | end 30 | -------------------------------------------------------------------------------- /signals/init.lua: -------------------------------------------------------------------------------- 1 | require(... .. ".battery") 2 | require(... .. ".brightness") 3 | require(... .. ".volume") 4 | require(... .. ".microphone") 5 | require(... .. ".systems") 6 | require(... .. ".uptime") 7 | require(... .. ".weather") 8 | require(... .. ".redshift") 9 | require(... .. ".blur") 10 | 11 | require(... .. ".network") 12 | require(... .. ".bluetooth") 13 | require(... .. ".airplane") 14 | require(... .. ".dnd") 15 | require(... .. ".wallpaper") 16 | -------------------------------------------------------------------------------- /signals/microphone.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | 3 | local MIC_VOLUME_CMD = "pactl get-source-volume @DEFAULT_SOURCE@ | grep -oP '\\b\\d+(?=%)' | head -n 1" 4 | local MIC_MUTE_CMD = "pactl get-source-mute @DEFAULT_SOURCE@" 5 | local MIC_TOGGLE_CMD = "pactl set-source-mute @DEFAULT_SOURCE@ toggle" 6 | 7 | function mic() 8 | awful.spawn.easy_async_with_shell(MIC_VOLUME_CMD, function(stdout) 9 | local volume = tonumber(stdout) 10 | if volume then 11 | awesome.emit_signal("signal::mic", volume) 12 | end 13 | end) 14 | end 15 | 16 | awful.spawn.easy_async_with_shell(MIC_MUTE_CMD, function(stdout) 17 | awesome.emit_signal("signal::micmute", stdout:match("yes")) 18 | end) 19 | 20 | function mic_toggle() 21 | awful.spawn.easy_async_with_shell(MIC_MUTE_CMD, function(stdout) 22 | local current_status = stdout:match("yes") 23 | awful.spawn.easy_async_with_shell(MIC_TOGGLE_CMD, function() 24 | awesome.emit_signal("signal::micmute", not current_status) 25 | end) 26 | end) 27 | end 28 | 29 | mic() 30 | -------------------------------------------------------------------------------- /signals/redshift.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local REDSHIFT_CACHE = gears.filesystem.get_cache_dir() .. "redshift" 5 | local REDSHIFT_RESET = "redshift -x" 6 | local REDSHIFT_ENABLE = "redshift -O 4000" 7 | 8 | local function get_redshift_state_cmd(state) 9 | return string.format("echo %s > %s", state and "true" or "false", REDSHIFT_CACHE) 10 | end 11 | 12 | local function get_redshift_cmd(enable) 13 | return table.concat({ 14 | enable and REDSHIFT_ENABLE or REDSHIFT_RESET, 15 | get_redshift_state_cmd(enable) 16 | }, " && ") 17 | end 18 | 19 | awful.spawn.easy_async_with_shell("cat " .. REDSHIFT_CACHE, function(stdout) 20 | awesome.emit_signal("signal::redshift", stdout:match("true")) 21 | end) 22 | 23 | function redshift_toggle() 24 | awful.spawn.easy_async_with_shell("cat " .. REDSHIFT_CACHE, function(stdout) 25 | local current_status = stdout:match("true") 26 | local new_status = not current_status 27 | 28 | awful.spawn.easy_async_with_shell( 29 | get_redshift_cmd(new_status), 30 | function() 31 | awesome.emit_signal("signal::redshift", new_status) 32 | end 33 | ) 34 | end) 35 | end 36 | -------------------------------------------------------------------------------- /signals/uptime.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local last_pid = nil 5 | local last_uptime = nil 6 | 7 | local function kill_last_process() 8 | if last_pid then 9 | awful.spawn.easy_async("sh -c 'kill " .. last_pid .. " 2>/dev/null'", function() 10 | last_pid = nil 11 | end) 12 | end 13 | end 14 | 15 | local function emit_uptime_status() 16 | kill_last_process() 17 | 18 | awful.spawn.easy_async_with_shell([[ 19 | sh -c ' 20 | echo $$ > /tmp/uptime_status_pid 21 | uptime --pretty | sed "s/up\s*//g" 22 | rm -f /tmp/uptime_status_pid 23 | ']], function(stdout) 24 | awful.spawn.easy_async("cat /tmp/uptime_status_pid", function(pid) 25 | last_pid = pid:gsub("%s+", "") 26 | end) 27 | 28 | if stdout ~= last_uptime then 29 | awesome.emit_signal("signal::uptime", stdout) 30 | last_uptime = stdout 31 | end 32 | end) 33 | end 34 | 35 | local update_timer = gears.timer({ 36 | timeout = 60, 37 | autostart = false, 38 | callback = emit_uptime_status 39 | }) 40 | 41 | awesome.connect_signal("exit", function() 42 | kill_last_process() 43 | update_timer:stop() 44 | end) 45 | 46 | update_timer:start() 47 | emit_uptime_status() 48 | -------------------------------------------------------------------------------- /signals/volume.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | 3 | local VOLUME_CMD = "pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | tr -d '%'" 4 | local MUTE_CMD = "pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}'" 5 | local TOGGLE_CMD = "pactl set-sink-mute @DEFAULT_SINK@ toggle" 6 | 7 | function volume_emit() 8 | awful.spawn.easy_async_with_shell(VOLUME_CMD, function(stdout) 9 | local volume = tonumber(stdout) 10 | if volume then 11 | awesome.emit_signal("signal::volume", volume) 12 | end 13 | end) 14 | end 15 | 16 | awful.spawn.easy_async_with_shell(MUTE_CMD, function(stdout) 17 | awesome.emit_signal("signal::volumemute", stdout:match("yes")) 18 | end) 19 | 20 | function volume_toggle() 21 | awful.spawn.easy_async_with_shell(MUTE_CMD, function(stdout) 22 | local current_status = stdout:match("yes") 23 | awful.spawn.easy_async_with_shell(TOGGLE_CMD, function() 24 | awesome.emit_signal("signal::volumemute", not current_status) 25 | end) 26 | end) 27 | end 28 | 29 | volume_emit() 30 | -------------------------------------------------------------------------------- /themes/assets/awm/awm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/awm/awm.png -------------------------------------------------------------------------------- /themes/assets/awm/clear.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/assets/awm/floating.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/awm/floating.png -------------------------------------------------------------------------------- /themes/assets/awm/micmuted.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/awm/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/awm/tile.png -------------------------------------------------------------------------------- /themes/assets/awm/todo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | file_type_todo 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/awm/volumemuted.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/bluetooth/bluetooth-dis-macos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/bluetooth/bluetooth-dis-macos.png -------------------------------------------------------------------------------- /themes/assets/bluetooth/bluetooth-discon-macos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/bluetooth/bluetooth-discon-macos.png -------------------------------------------------------------------------------- /themes/assets/bluetooth/bluetooth-macos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/bluetooth/bluetooth-macos.png -------------------------------------------------------------------------------- /themes/assets/button/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/button/maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/button/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/button/openimage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/button/record.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | record [#979] 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /themes/assets/button/screenshot.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/assets/controlcenter/airplane.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/controlcenter/blur.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/controlcenter/controlcenter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/controlcenter/focus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/controlcenter/magnifying.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/controlcenter/magnifying.png -------------------------------------------------------------------------------- /themes/assets/music/artdefault.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/music/artdefault.jpg -------------------------------------------------------------------------------- /themes/assets/music/blurdefault.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/music/blurdefault.jpg -------------------------------------------------------------------------------- /themes/assets/music/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/music/default.png -------------------------------------------------------------------------------- /themes/assets/music/loop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/loopone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/playing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/music/playing.png -------------------------------------------------------------------------------- /themes/assets/music/previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/shuffle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/music/spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/music/spotify.png -------------------------------------------------------------------------------- /themes/assets/network/ethernet-macos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/network/ethernet-macos.png -------------------------------------------------------------------------------- /themes/assets/network/wifi1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/network/wifi2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/network/wifi3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/network/wifi4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/popup/charge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/assets/popup/keyboards.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/power/darkmode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | dark-mode 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/power/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/power/logout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/power/powermode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/power/poweroff.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/power/restart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/power/suspend.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/sownteedev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/sownteedev.png -------------------------------------------------------------------------------- /themes/assets/sownteemerry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/sownteemerry.png -------------------------------------------------------------------------------- /themes/assets/weather/flag/ae.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/am.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ao.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/at.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/au.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ax.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/az.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ba.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/be.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/bw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ca.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cefta.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ci.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/co.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/cz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/de.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/dj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/dk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/dz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/eh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/es-ct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/es-pv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/et.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/eu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/fi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/fm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/fo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/fr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ga.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gb-eng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gb-sct.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/gy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/hk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/hm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/hn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/hu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/id.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ie.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/il.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/iq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/is.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/it.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/jm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/jo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/jp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ke.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/km.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/kn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/kp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/kr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/kw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/la.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/lc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/lr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ls.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/lt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/lu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/lv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ly.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ma.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ml.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mq.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/mv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/my.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/na.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/nc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ne.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/nl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/no.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/np.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/nr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/nu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/pw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/qa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/re.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ru.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/rw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/se.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sj.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/so.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/st.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/sy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/td.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/th.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tl.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/to.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/tz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ua.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/um.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/us.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/uz.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/vc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ve.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/vn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/wf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ws.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/xx.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/ye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/yt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/assets/weather/flag/za.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-clear-night.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-clouds-night.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-clouds.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-few-clouds-night.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-fog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-freezing-rain.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-overcast-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-overcast.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-snow-rain.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-snow-scattered.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-snow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-storm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /themes/assets/weather/icons/weather-windy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-clear-night.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-clear-night.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-clear-sky.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-clear-sky.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-clouds-night.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-clouds-night.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-fog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-fog.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-showers-scattered.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-showers-scattered.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-showers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-showers.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-snow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-snow.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weather-stroms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weather-stroms.jpg -------------------------------------------------------------------------------- /themes/assets/weather/images/weathers-cloud.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sownteedev/dotfiles/691086cb1d3f3890efecf4e90533087f52ec91e6/themes/assets/weather/images/weathers-cloud.jpg -------------------------------------------------------------------------------- /themes/assets/weather/windspeed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /themes/colors/dark.lua: -------------------------------------------------------------------------------- 1 | return { 2 | foreground = "#FFFFFF", 3 | background = "#141414", 4 | 5 | red = "#da5858", 6 | green = "#3fc661", 7 | blue = "#497ee9", 8 | yellow = "#e8ca5e", 9 | } 10 | -------------------------------------------------------------------------------- /themes/colors/light.lua: -------------------------------------------------------------------------------- 1 | return { 2 | foreground = "#000000", 3 | background = "#FFFFFF", 4 | 5 | red = "#CC5733", 6 | green = "#6B8E23", 7 | blue = "#4682B4", 8 | yellow = "#FFD700", 9 | } 10 | -------------------------------------------------------------------------------- /utils/file.lua: -------------------------------------------------------------------------------- 1 | local files = {} 2 | 3 | files.file_exists = function(name) 4 | local f = io.open(name, "r") 5 | if f ~= nil then 6 | io.close(f) 7 | return true 8 | else 9 | return false 10 | end 11 | end 12 | 13 | files.readFile = function(file) 14 | local f = assert(io.open(file, "rb")) 15 | local content = f:read("*all") 16 | f:close() 17 | return content 18 | end 19 | 20 | return files 21 | -------------------------------------------------------------------------------- /utils/init.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | M.color = require("utils.color") 4 | M.file = require("utils.file") 5 | M.icon = require("utils.icon") 6 | M.image = require("utils.image") 7 | M.json = require("utils.json") 8 | M.widget = require("utils.widget") 9 | M.upower = require("utils.upower") 10 | M.keys = require("utils.keys") 11 | 12 | return M 13 | -------------------------------------------------------------------------------- /utils/keys.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | 3 | local keys = {} 4 | keys.open_once = function(client_class, exec_command) 5 | local matcher = function(c) 6 | for _, class_value in pairs(client_class) do 7 | if awful.rules.match(c, { class = class_value }) then 8 | return true 9 | end 10 | end 11 | 12 | return false 13 | end 14 | local isOpened = false 15 | local clients = client.get(mouse.screen) 16 | for _, c in ipairs(clients) do 17 | if matcher(c) then 18 | isOpened = true 19 | c:emit_signal('request::activate', 'key.unminimize', { raise = true }) 20 | end 21 | end 22 | 23 | if not isOpened then 24 | awful.spawn(exec_command) 25 | end 26 | end 27 | 28 | keys.toggle_show_desktop = function() 29 | local screen = awful.screen.focused() 30 | local tag = screen.selected_tag 31 | if tag then 32 | awful.tag.viewonly(tag) 33 | for _, c in ipairs(tag:clients()) do 34 | c.minimized = not c.minimized 35 | end 36 | end 37 | end 38 | 39 | return keys 40 | -------------------------------------------------------------------------------- /utils/upower.lua: -------------------------------------------------------------------------------- 1 | local gears = require("gears") 2 | 3 | local upower = {} 4 | upower.gobject_to_gearsobject = function(object) 5 | local new_gobject = gears.object({}) 6 | 7 | new_gobject._class = object 8 | new_gobject.set_class = function() end 9 | new_gobject.get_class = function(self) 10 | return self._class 11 | end 12 | 13 | new_gobject._class.on_notify = function(self, signal) 14 | return new_gobject:emit_signal("property::" .. signal:get_name(), self[signal:get_name()]) 15 | end 16 | 17 | setmetatable(new_gobject, { 18 | __index = function(_, key) 19 | local method_value 20 | 21 | method_value = gears.object[key] 22 | 23 | if method_value then 24 | return method_value 25 | end 26 | 27 | method_value = new_gobject._class[key] 28 | 29 | if method_value then 30 | if type(method_value) == "userdata" then 31 | return function(self, ...) 32 | if self == new_gobject then 33 | return method_value(new_gobject._class, ...) 34 | else 35 | return method_value(self, ...) 36 | end 37 | end 38 | else 39 | return method_value 40 | end 41 | end 42 | end, 43 | }) 44 | 45 | return new_gobject 46 | end 47 | 48 | local UPowerGlib = require("lgi").require("UPowerGlib", "1.0") 49 | 50 | ---@class upower: GearsObject_GObject, UPowerGlib.Client 51 | upower.upower = upower.gobject_to_gearsobject(UPowerGlib.Client.new()) 52 | 53 | upower.upower._class.on_device_added = function(_, ...) 54 | return upower.upower:emit_signal("device-added", ...) 55 | end 56 | 57 | upower.upower._class.on_device_removed = function(_, ...) 58 | return upower.upower:emit_signal("device-removed", ...) 59 | end 60 | 61 | return upower 62 | -------------------------------------------------------------------------------- /widgets/control/init.lua: -------------------------------------------------------------------------------- 1 | local beautiful = require("beautiful") 2 | local wibox = require("wibox") 3 | 4 | local bluenetair = require(... .. ".mods.bluenetair") 5 | local dndblurnight = require(... .. ".mods.dndblurnight") 6 | local slider = require(... .. ".mods.slider") 7 | local music = require(... .. ".mods.music") 8 | local button = require(... .. ".mods.button") 9 | local powerndark = require(... .. ".mods.powerndark") 10 | 11 | return function(s) 12 | local control = wibox({ 13 | screen = s, 14 | width = 500, 15 | height = 1015, 16 | shape = beautiful.radius, 17 | bg = beautiful.background, 18 | border_width = beautiful.border_width, 19 | border_color = beautiful.lighter, 20 | ontop = true, 21 | visible = false, 22 | }) 23 | 24 | control:setup({ 25 | { 26 | { 27 | bluenetair, 28 | dndblurnight, 29 | spacing = 15, 30 | layout = wibox.layout.fixed.horizontal, 31 | }, 32 | powerndark, 33 | slider, 34 | music, 35 | button, 36 | spacing = 15, 37 | layout = wibox.layout.fixed.vertical, 38 | }, 39 | margins = 15, 40 | widget = wibox.container.margin, 41 | }) 42 | 43 | _Utils.widget.placeWidget(control, "top_right", 3, 0, 0, 2) 44 | 45 | awesome.connect_signal("toggle::control", function() 46 | control.visible = not control.visible 47 | end) 48 | awesome.connect_signal("close::control", function() 49 | if control.visible then 50 | control.visible = false 51 | end 52 | end) 53 | 54 | awesome.connect_signal("signal::blur", function(status) 55 | control.bg = not status and beautiful.background or beautiful.background .. "DD" 56 | end) 57 | 58 | return control 59 | end 60 | -------------------------------------------------------------------------------- /widgets/popup/battery/init.lua: -------------------------------------------------------------------------------- 1 | local beautiful = require("beautiful") 2 | local wibox = require("wibox") 3 | 4 | local charge = require(... .. ".epic") 5 | 6 | local mouse_bat = charge("input-mouse-symbolic") 7 | local keyboard_bat = charge("keyboards") 8 | local headphone_bat = charge("headphones-symbolic") 9 | local laptop_bat = charge("laptop-symbolic") 10 | 11 | return function(s) 12 | local battery = wibox({ 13 | screen = s, 14 | width = 290, 15 | height = 290, 16 | shape = beautiful.radius, 17 | ontop = false, 18 | visible = true, 19 | }) 20 | 21 | battery:setup({ 22 | { 23 | { 24 | { 25 | laptop_bat, 26 | mouse_bat, 27 | spacing = 40, 28 | layout = wibox.layout.fixed.horizontal, 29 | }, 30 | { 31 | keyboard_bat, 32 | headphone_bat, 33 | spacing = 40, 34 | layout = wibox.layout.fixed.horizontal, 35 | }, 36 | layout = wibox.layout.fixed.vertical, 37 | spacing = 20, 38 | }, 39 | valign = "center", 40 | widget = wibox.container.place, 41 | }, 42 | margins = 20, 43 | widget = wibox.container.margin, 44 | }) 45 | _Utils.widget.placeWidget(battery, "top_left", 45, 0, 2, 0) 46 | _Utils.widget.popupOpacity(battery, 0.3) 47 | awesome.connect_signal("signal::blur", function(status) 48 | battery.bg = not status and beautiful.background or beautiful.background .. "88" 49 | end) 50 | 51 | return battery 52 | end 53 | -------------------------------------------------------------------------------- /widgets/popup/image.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local gears = require("gears") 3 | local beautiful = require("beautiful") 4 | 5 | return function(s) 6 | local image = wibox({ 7 | screen = s, 8 | width = 290, 9 | height = 290, 10 | shape = beautiful.radius, 11 | ontop = false, 12 | visible = true, 13 | }) 14 | 15 | image:setup({ 16 | { 17 | image = gears.surface.load_uncached(beautiful.icon_path .. "sownteemerry.png"), 18 | widget = wibox.widget.imagebox, 19 | }, 20 | { 21 | bg = { 22 | type = "linear", 23 | from = { 0, 0 }, 24 | to = { 0, image.height }, 25 | stops = { { 0.7, beautiful.background .. "00" }, { 1, beautiful.background } } 26 | }, 27 | widget = wibox.container.background, 28 | }, 29 | { 30 | { 31 | { 32 | { 33 | markup = _Utils.widget.colorizeText(_User.Name, beautiful.foreground), 34 | font = "azuki_font Bold 15", 35 | widget = wibox.widget.textbox, 36 | }, 37 | { 38 | markup = _Utils.widget.colorizeText(_User.Username, beautiful.foreground), 39 | font = "azuki_font 12", 40 | widget = wibox.widget.textbox, 41 | }, 42 | layout = wibox.layout.fixed.vertical, 43 | }, 44 | margins = 10, 45 | widget = wibox.container.margin, 46 | }, 47 | halign = "left", 48 | valign = "bottom", 49 | layout = wibox.container.place, 50 | }, 51 | layout = wibox.layout.stack, 52 | }) 53 | _Utils.widget.placeWidget(image, "top_left", 45, 0, 33, 0) 54 | _Utils.widget.popupOpacity(image, 0.3) 55 | 56 | return image 57 | end 58 | -------------------------------------------------------------------------------- /widgets/topbar/init.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local wibox = require("wibox") 3 | local beautiful = require("beautiful") 4 | 5 | local time = require(... .. ".mods.time") 6 | local tags = require(... .. ".mods.tags") 7 | local awmmenu = require(... .. ".mods.awmmenu") 8 | local controlcenter = require(... .. ".mods.controlcenter") 9 | local systray = require(... .. ".mods.systray") 10 | 11 | return function(s) 12 | local wibar = awful.wibar { 13 | position = "top", 14 | height = 40, 15 | width = beautiful.width, 16 | bg = beautiful.background, 17 | ontop = false, 18 | screen = s, 19 | widget = { 20 | { 21 | { 22 | awmmenu, 23 | tags(s), 24 | spacing = 30, 25 | layout = wibox.layout.fixed.horizontal, 26 | }, 27 | left = 30, 28 | widget = wibox.container.margin, 29 | }, 30 | nil, 31 | { 32 | { 33 | systray, 34 | controlcenter, 35 | time, 36 | spacing = 30, 37 | layout = wibox.layout.fixed.horizontal, 38 | }, 39 | right = 30, 40 | widget = wibox.container.margin, 41 | }, 42 | layout = wibox.layout.align.horizontal, 43 | } 44 | } 45 | 46 | awesome.connect_signal("signal::blur", function(status) 47 | wibar.bg = not status and beautiful.background .. "CC" or beautiful.background .. "88" 48 | end) 49 | 50 | -- awesome.register_xproperty("WM_NAME", "string"); 51 | -- wibar:set_xproperty("WM_NAME", "topbar") 52 | return wibar 53 | end 54 | -------------------------------------------------------------------------------- /widgets/topbar/mods/awmmenu.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local wibox = require("wibox") 3 | local beautiful = require("beautiful") 4 | local gears = require("gears") 5 | 6 | local awmmenu = wibox.widget({ 7 | widget = wibox.widget.imagebox, 8 | image = gears.color.recolor_image(beautiful.icon_path .. "awm/awm.png", beautiful.foreground), 9 | forced_height = 20, 10 | forced_width = 20, 11 | resize = true, 12 | valign = "center", 13 | buttons = { 14 | awful.button({}, 1, function() 15 | awesome.emit_signal("toggle::exit") 16 | end), 17 | }, 18 | }) 19 | _Utils.widget.hoverCursor(awmmenu) 20 | 21 | return awmmenu 22 | -------------------------------------------------------------------------------- /widgets/topbar/mods/systray.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | 3 | local systray = wibox.widget({ 4 | { 5 | base_size = 25, 6 | widget = wibox.widget.systray, 7 | }, 8 | valign = "center", 9 | widget = wibox.container.place, 10 | }) 11 | 12 | return systray 13 | -------------------------------------------------------------------------------- /widgets/topbar/mods/tags.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local wibox = require("wibox") 3 | 4 | return function(s) 5 | local taglist = awful.widget.taglist({ 6 | layout = { 7 | spacing = 30, 8 | layout = wibox.layout.fixed.horizontal, 9 | }, 10 | screen = s, 11 | filter = awful.widget.taglist.filter.all, 12 | buttons = { 13 | awful.button({}, 1, function(t) 14 | t:view_only() 15 | end), 16 | awful.button({}, 3, function() 17 | awesome.emit_signal("toggle::preview") 18 | end), 19 | }, 20 | widget_template = { 21 | id = 'text_role', 22 | valign = 'center', 23 | widget = wibox.widget.textbox, 24 | }, 25 | }) 26 | 27 | _Utils.widget.hoverCursor(taglist) 28 | 29 | return taglist 30 | end 31 | -------------------------------------------------------------------------------- /widgets/topbar/mods/time.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local beautiful = require("beautiful") 3 | local gears = require("gears") 4 | local awful = require("awful") 5 | 6 | local timedate = wibox.widget({ 7 | { 8 | font = beautiful.sans .. " Medium 12", 9 | format = "%A, %d %B %Y", 10 | align = "center", 11 | widget = wibox.widget.textclock, 12 | }, 13 | { 14 | font = beautiful.sans .. " Medium 12", 15 | format = "%I : %M %p", 16 | align = "center", 17 | widget = wibox.widget.textclock, 18 | }, 19 | layout = wibox.layout.fixed.horizontal, 20 | spacing = 20, 21 | buttons = gears.table.join( 22 | awful.button({}, 1, function() 23 | awesome.emit_signal("toggle::noticenter") 24 | end) 25 | ), 26 | }) 27 | _Utils.widget.hoverCursor(timedate) 28 | 29 | return timedate 30 | --------------------------------------------------------------------------------