├── 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 |
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 |
--------------------------------------------------------------------------------
/themes/assets/awm/volumemuted.svg:
--------------------------------------------------------------------------------
1 |
2 |
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 |
--------------------------------------------------------------------------------
/themes/assets/button/maximize.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/themes/assets/button/minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/assets/button/openimage.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/assets/button/record.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/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 |
5 |
--------------------------------------------------------------------------------
/themes/assets/network/wifi2.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/themes/assets/network/wifi3.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/themes/assets/network/wifi4.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/themes/assets/popup/charge.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/themes/assets/popup/keyboards.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/themes/assets/power/darkmode.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/themes/assets/power/lock.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/assets/power/logout.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/assets/power/powermode.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/themes/assets/power/poweroff.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/assets/power/restart.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/assets/power/suspend.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/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 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ag.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/am.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ao.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/at.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/au.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ax.svg:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/az.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ba.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bb.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bd.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/be.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bf.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bg.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bh.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bi.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bj.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bl.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bq.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bs.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bv.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/bw.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ca.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cd.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cefta.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cf.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cg.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ch.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ci.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cl.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cm.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cn.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/co.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cp.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cr.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cu.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cv.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cw.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/cz.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/de.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/dj.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/dk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/dz.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ee.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/eh.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/es-ct.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/es-pv.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/et.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/eu.svg:
--------------------------------------------------------------------------------
1 |
29 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/fi.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/fm.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/fo.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/fr.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ga.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gb-eng.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gb-sct.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gb.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ge.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gf.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gg.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gh.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gl.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gm.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gn.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gp.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gr.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gw.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/gy.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/hk.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/hm.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/hn.svg:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/hu.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ic.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/id.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ie.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/il.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/in.svg:
--------------------------------------------------------------------------------
1 |
26 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/iq.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/is.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/it.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/jm.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/jo.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/jp.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ke.svg:
--------------------------------------------------------------------------------
1 |
24 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/km.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/kn.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/kp.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/kr.svg:
--------------------------------------------------------------------------------
1 |
25 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/kw.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/la.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/lc.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/lr.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ls.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/lt.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/lu.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/lv.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ly.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ma.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mc.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mf.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mg.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mh.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ml.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mm.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mn.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mo.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mq.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mr.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mu.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/mv.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/my.svg:
--------------------------------------------------------------------------------
1 |
27 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/na.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/nc.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ne.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ng.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/nl.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/no.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/np.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/nr.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/nu.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pa.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pe.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pg.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ph.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pk.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pl.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pm.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pr.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ps.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/pw.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/qa.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/re.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ro.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ru.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/rw.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sb.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sc.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sd.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/se.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sg.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sh.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sj.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sk.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sl.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sn.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/so.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sr.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ss.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/st.svg:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/sy.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/td.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tf.svg:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tg.svg:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/th.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tk.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tl.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tn.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/to.svg:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tr.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tt.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tv.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/tz.svg:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ua.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/um.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/us.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/uz.svg:
--------------------------------------------------------------------------------
1 |
31 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/vc.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ve.svg:
--------------------------------------------------------------------------------
1 |
27 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/vn.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/wf.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ws.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/xx.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/ye.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/yt.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/themes/assets/weather/flag/za.svg:
--------------------------------------------------------------------------------
1 |
18 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-clear-night.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-clouds-night.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-clouds.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-few-clouds-night.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-fog.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-freezing-rain.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-overcast-symbolic.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-overcast.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-snow-rain.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-snow-scattered.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-snow.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-storm.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/themes/assets/weather/icons/weather-windy.svg:
--------------------------------------------------------------------------------
1 |
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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------