diff --git a/.luarc.json b/.luarc.json
new file mode 100644
index 000000000..43e8c9f68
--- /dev/null
+++ b/.luarc.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
+ "Lua.diagnostics.disable": [
+ "unused-local"
+ ]
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 3083e1ef3..eff1ac088 100644
--- a/README.md
+++ b/README.md
@@ -11,21 +11,25 @@
-[![maintained](https://img.shields.io/maintenance/yes/2020?label=maintained&style=flat-square)](https://github.com/manilarome/the-glorious-dotfiles/commits/master) [![contributions](https://img.shields.io/badge/contribution-welcome-brightgreen&?style=flat-square)](https://github.com/manilarome/the-glorious-dotfiles/pulls) [![HitCount](http://hits.dwyl.com/manilarome/Glorified-Dotfiles.svg)](http://hits.dwyl.com/manilarome/the-glorified-dotfiles)
+[![maintained](https://shields.io/github/last-commit/frostedpenguin/the-glorious-dotfiles)](https://github.com/manilarome/the-glorious-dotfiles/commits/master)
+[![contributions](https://img.shields.io/badge/contribution-welcome-brightgreen&?style=flat-square)](https://github.com/manilarome/the-glorious-dotfiles/pulls)
+[![HitCount](http://hits.dwyl.com/manilarome/Glorified-Dotfiles.svg)](http://hits.dwyl.com/manilarome/the-glorified-dotfiles)
+![issues](https://shields.io/github/issues/frostedpenguin/the-glorious-dotfiles)
+
-
+
-
+
-
+
-
+
@@ -46,7 +50,7 @@
-## [Wiki here](https://github.com/manilarome/the-glorious-dotfiles/wiki)
+## [Wiki here](https://github.com/frostedpenguin/the-glorious-dotfiles/wiki)
The wiki will guide you to replicate my setups. So read the frickin' manual! If you post an issue that can be solve by reading it, I'll drop kick you.
@@ -80,45 +84,16 @@ If you're too lazy to read the wiki, here's some of the details you need to know
2. Clone this repository.
```bash
- $ git clone --depth 1 https://github.com/manilarome/the-glorious-dotfiles/
+ $ git clone --depth 1 https://github.com/frostedpenguin/the-glorious-dotfiles/
```
3. Make sure to create a backup if you have a current AwesomeWM configuration.
-4. Copy the `the-glorious-dotfiles/config/awesome/SETUPNAME` folder to your `"${HOME}"/.config/`. I'll just assume that you don't have an `awesome` folder in your `~/.config/`:
-
- ```bash
- # Use the Floppy setup
- $ cp -r the-glorious-dotfiles/config/awesome/floppy $HOME/.config/awesome
-
- # Use the GNawesOME setup
- $ cp -r the-glorious-dotfiles/config/awesome/gnawesome $HOME/.config/awesome
-
- # Use the Linear setup
- $ cp -r the-glorious-dotfiles/config/awesome/linear $HOME/.config/awesome
-
- # Use the Surreal setup
- $ cp -r the-glorious-dotfiles/config/awesome/surreal $HOME/.config/awesome
- ```
-
+4. Copy the `the-glorious-dotfiles/config/awesome/` folder to your `"${HOME}"/.config/`. I'll just assume that you don't have an `awesome` folder in your `~/.config/`:
+Unlike the original I have implemented a theme picker that lets you iterate
+through the themes so no worry for copying the wrong folder 😉.
4. Change the global configuration in `$HOME/.config/awesome/configuration/config.lua`.
5. Reload AwesomeWM by pressing
Super + Shift + r.
-## TODOs
-
-My TODOs or roadmap for my awesomewm setups.
-
-- [x] Scrollable Notification Center
needs improvement
-- [x] Lockscreen PAM Integration
-- [x] Multi-monitor support
-- [x] Refactor for cleaner code
WIP
-- [x] Extend the screen recorder widget's functionality
-- [x] Adjust picom's blur strength using a slider
-
-
-## Selling the dotfiles
-
-Why would I want this?
-
### Core features
These are the features included in my AwesomeWM setups!
@@ -137,6 +112,7 @@ These are the features included in my AwesomeWM setups!
+ Hardware Monitor
+ Blue Light Filter Widgets
+ Lockscreen Module with Face Capture and PAM Integration
++ Theme picker
+ Easter eggs!
Mostly bugs
+ Any many more!
diff --git a/config/awesome/__tests__/bluetooth/init.lua b/config/awesome/__tests__/bluetooth/init.lua
new file mode 100644
index 000000000..022a2c370
--- /dev/null
+++ b/config/awesome/__tests__/bluetooth/init.lua
@@ -0,0 +1,65 @@
+local mocks = require("__tests__.mocks.bluetooth")
+local scripts = require("widget.toggles.scripts")
+local utils = require("__tests__.utils")
+local bluetooth_scripts = scripts.bluetooth
+local watch_script = bluetooth_scripts.watch_script[3]
+local luaunit = require("luaunit")
+print(utils.script_path())
+
+TestLogger = {}
+-- 🔧 TODO: make error handler for io.popen
+local command = _
+function TestLogger:tearDown()
+ command:close()
+end
+---@diagnostic disable-next-line: lowercase-global
+function TestLogger:testOneBlockedOneUnblocked()
+ local expected = "true"
+ local DI = utils.DI("cat " .. mocks.one_unblocked_one_blocked, watch_script)
+ command = io.popen(DI)
+ local actual = assert(command):read([[*all]])
+ actual = utils.serialize(actual)
+ luaunit.assertEquals(actual, expected)
+end
+function TestLogger:test_two_unblocked()
+ local expected = "true"
+ local DI = utils.DI("cat " .. mocks.two_unblocked, watch_script)
+ command = io.popen(DI)
+ local actual = assert(command):read([[*all]])
+ actual = utils.serialize(actual)
+ luaunit.assertEquals(actual, expected)
+end
+function TestLogger:test_two_blocked()
+ local expected = "false"
+ local DI = utils.DI("cat " .. mocks.two_blocked, watch_script)
+ command = io.popen(DI)
+ local actual = assert(command):read([[*all]])
+ actual = utils.serialize(actual)
+ luaunit.assertEquals(actual, expected)
+end
+function TestLogger:test_one_blocked_one_unblocked()
+ local expected = "true"
+ local DI = utils.DI("cat " .. mocks.one_blocked_one_unblocked, watch_script)
+ command = io.popen(DI)
+ local actual = assert(command):read([[*all]])
+ actual = utils.serialize(actual)
+ luaunit.assertEquals(actual, expected)
+end
+function TestLogger:test_no_bluetooth_devices()
+ local expected = "false"
+ local DI = utils.DI("cat " .. mocks.no_bluetooth_devices, watch_script)
+ command = io.popen(DI)
+ local actual = assert(command):read([[*all]])
+ actual = utils.serialize(actual)
+ luaunit.assertEquals(actual, expected)
+end
+function TestLogger:test_no_devices()
+ local expected = "false"
+ local DI = utils.DI("cat " .. mocks.no_devices, watch_script)
+ command = io.popen(DI)
+ local actual = assert(command):read([[*all]])
+ actual = utils.serialize(actual)
+ luaunit.assertEquals(actual, expected)
+end
+
+os.exit(luaunit.LuaUnit.run())
diff --git a/config/awesome/__tests__/mocks/bluetooth/init.lua b/config/awesome/__tests__/mocks/bluetooth/init.lua
new file mode 100644
index 000000000..43a721c6e
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/init.lua
@@ -0,0 +1,11 @@
+local utils = require("__tests__.utils")
+local curr_dir = utils.script_path()
+local mocks = {
+ one_unblocked_one_blocked = curr_dir .. "one-unblocked-one-blocked.json",
+ one_blocked_one_unblocked = curr_dir .. "one-blocked-one-unblocked.json",
+ two_blocked = curr_dir .. "two-blocked.json",
+ two_unblocked = curr_dir .. "two-unblocked.json",
+ no_bluetooth_devices = curr_dir .. "no-bluetooth-devices.json",
+ no_devices = curr_dir .. "no-devices.json",
+}
+return mocks
diff --git a/config/awesome/__tests__/mocks/bluetooth/no-bluetooth-devices.json b/config/awesome/__tests__/mocks/bluetooth/no-bluetooth-devices.json
new file mode 100644
index 000000000..04850adf4
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/no-bluetooth-devices.json
@@ -0,0 +1,11 @@
+{
+ "rfkilldevices": [
+ {
+ "id": 2,
+ "type": "wlan",
+ "device": "phy0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ }
+ ]
+}
diff --git a/config/awesome/__tests__/mocks/bluetooth/no-devices.json b/config/awesome/__tests__/mocks/bluetooth/no-devices.json
new file mode 100644
index 000000000..3b6b27801
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/no-devices.json
@@ -0,0 +1,3 @@
+{
+ "rfkilldevices": []
+}
diff --git a/config/awesome/__tests__/mocks/bluetooth/one-blocked-one-unblocked.json b/config/awesome/__tests__/mocks/bluetooth/one-blocked-one-unblocked.json
new file mode 100644
index 000000000..eb3ca383c
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/one-blocked-one-unblocked.json
@@ -0,0 +1,25 @@
+{
+ "rfkilldevices": [
+ {
+ "id": 0,
+ "type": "bluetooth",
+ "device": "tpacpi_bluetooth_sw",
+ "soft": "blocked",
+ "hard": "blocked"
+ },
+ {
+ "id": 2,
+ "type": "wlan",
+ "device": "phy0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ },
+ {
+ "id": 5,
+ "type": "bluetooth",
+ "device": "hci0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ }
+ ]
+}
diff --git a/config/awesome/__tests__/mocks/bluetooth/one-unblocked-one-blocked.json b/config/awesome/__tests__/mocks/bluetooth/one-unblocked-one-blocked.json
new file mode 100644
index 000000000..6664cf291
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/one-unblocked-one-blocked.json
@@ -0,0 +1,25 @@
+{
+ "rfkilldevices": [
+ {
+ "id": 0,
+ "type": "bluetooth",
+ "device": "tpacpi_bluetooth_sw",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ },
+ {
+ "id": 2,
+ "type": "wlan",
+ "device": "phy0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ },
+ {
+ "id": 5,
+ "type": "bluetooth",
+ "device": "hci0",
+ "soft": "blocked",
+ "hard": "blocked"
+ }
+ ]
+}
diff --git a/config/awesome/__tests__/mocks/bluetooth/two-blocked.json b/config/awesome/__tests__/mocks/bluetooth/two-blocked.json
new file mode 100644
index 000000000..e02719a68
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/two-blocked.json
@@ -0,0 +1,25 @@
+{
+ "rfkilldevices": [
+ {
+ "id": 0,
+ "type": "bluetooth",
+ "device": "tpacpi_bluetooth_sw",
+ "soft": "blocked",
+ "hard": "blocked"
+ },
+ {
+ "id": 2,
+ "type": "wlan",
+ "device": "phy0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ },
+ {
+ "id": 5,
+ "type": "bluetooth",
+ "device": "hci0",
+ "soft": "blocked",
+ "hard": "blocked"
+ }
+ ]
+}
diff --git a/config/awesome/__tests__/mocks/bluetooth/two-unblocked.json b/config/awesome/__tests__/mocks/bluetooth/two-unblocked.json
new file mode 100644
index 000000000..6787fc4a1
--- /dev/null
+++ b/config/awesome/__tests__/mocks/bluetooth/two-unblocked.json
@@ -0,0 +1,25 @@
+{
+ "rfkilldevices": [
+ {
+ "id": 0,
+ "type": "bluetooth",
+ "device": "tpacpi_bluetooth_sw",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ },
+ {
+ "id": 2,
+ "type": "wlan",
+ "device": "phy0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ },
+ {
+ "id": 5,
+ "type": "bluetooth",
+ "device": "hci0",
+ "soft": "unblocked",
+ "hard": "unblocked"
+ }
+ ]
+}
diff --git a/config/awesome/__tests__/utils/init.lua b/config/awesome/__tests__/utils/init.lua
new file mode 100644
index 000000000..b361f0972
--- /dev/null
+++ b/config/awesome/__tests__/utils/init.lua
@@ -0,0 +1,16 @@
+local script_path = function()
+ local str = debug.getinfo(2, "S").source:sub(2)
+ return str:match("(.*/)")
+end
+local serialize = function(str)
+ return string.gsub(str, "\n", "")
+end
+local DI = function(source, command)
+ local map = string.match(command, "|(.*)")
+ return source .. "|" .. map
+end
+return {
+ script_path = script_path,
+ serialize = serialize,
+ DI = DI,
+}
diff --git a/config/awesome/configuration/apps.lua b/config/awesome/configuration/apps.lua
new file mode 100644
index 000000000..e1f0c6965
--- /dev/null
+++ b/config/awesome/configuration/apps.lua
@@ -0,0 +1,91 @@
+local filesystem = require("gears.filesystem")
+local config_dir = filesystem.get_configuration_dir()
+local utils_dir = config_dir .. "utilities/"
+
+return {
+ -- The default applications that we will use in keybindings and widgets
+ default = {
+ -- Default terminal emulator
+ terminal = "kitty",
+ -- Default web browser
+ web_browser = "firefox",
+ -- Default text editor
+ text_editor = "subl3",
+ -- Default file manager
+ file_manager = "dolphin",
+ -- Default media player
+ multimedia = "vlc",
+ -- Default game, can be a launcher like steam
+ game = "supertuxkart",
+ -- Default graphics editor
+ graphics = "gimp-2.10",
+ -- Default sandbox
+ sandbox = "virtualbox",
+ -- Default IDE
+ development = "",
+ -- Default network manager
+ network_manager = "kitty iwctl",
+ -- Default bluetooth manager
+ bluetooth_manager = "blueman-manager",
+ -- Default power manager
+ power_manager = "xfce4-power-manager",
+ -- Default GUI package manager
+ package_manager = "pamac-manager",
+ -- Default locker
+ lock = "awesome-client \"awesome.emit_signal('module::lockscreen_show')\"",
+ -- Default quake terminal
+ quake = "kitty --name QuakeTerminal",
+ -- Default rofi global menu
+ rofi_global = "rofi -dpi "
+ .. screen.primary.dpi
+ .. ' -show "Global Search" -modi "Global Search":'
+ .. config_dir
+ .. "/configuration/rofi/global/rofi-spotlight.sh"
+ .. " -theme "
+ .. config_dir
+ .. "/configuration/rofi/global/rofi.rasi",
+ -- Default app menu
+ rofi_appmenu = "rofi -dpi "
+ .. screen.primary.dpi
+ .. " -show drun -theme "
+ .. config_dir
+ .. "/configuration/rofi/appmenu/rofi.rasi",
+
+ -- You can add more default applications here
+ },
+
+ -- List of apps to start once on start-up
+ run_on_start_up = {
+ -- Compositor
+ "picom -b --experimental-backends --dbus --config "
+ .. config_dir
+ .. "/configuration/picom.conf",
+ -- Blueman applet
+ "blueman-applet",
+ -- Music server
+ "mpd",
+ -- Polkit and keyring
+ "/usr/bin/lxqt-policykit-agent &" .. " eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg)",
+ -- Load X colors
+ "xrdb $HOME/.Xresources",
+ -- Audio equalizer
+ "pulseeffects --gapplication-service",
+ -- Lockscreen timer
+ [[
+ xidlehook --not-when-fullscreen --not-when-audio --timer 600 \
+ "awesome-client 'awesome.emit_signal(\"module::lockscreen_show\")'" ""
+ ]] ,
+
+ -- You can add more start-up applications here
+ },
+
+ -- List of binaries/shell scripts that will execute for a certain task
+ utils = {
+ -- Fullscreen screenshot
+ full_screenshot = utils_dir .. "snap full",
+ -- Area screenshot
+ area_screenshot = utils_dir .. "snap area",
+ -- Update profile picture
+ update_profile = utils_dir .. "profile-image",
+ },
+}
diff --git a/config/awesome/floppy/configuration/client/buttons.lua b/config/awesome/configuration/client/buttons.lua
similarity index 100%
rename from config/awesome/floppy/configuration/client/buttons.lua
rename to config/awesome/configuration/client/buttons.lua
diff --git a/config/awesome/floppy/configuration/client/init.lua b/config/awesome/configuration/client/init.lua
similarity index 100%
rename from config/awesome/floppy/configuration/client/init.lua
rename to config/awesome/configuration/client/init.lua
diff --git a/config/awesome/floppy/configuration/client/keys.lua b/config/awesome/configuration/client/keys.lua
similarity index 100%
rename from config/awesome/floppy/configuration/client/keys.lua
rename to config/awesome/configuration/client/keys.lua
diff --git a/config/awesome/floppy/configuration/client/rules.lua b/config/awesome/configuration/client/rules.lua
similarity index 100%
rename from config/awesome/floppy/configuration/client/rules.lua
rename to config/awesome/configuration/client/rules.lua
diff --git a/config/awesome/floppy/configuration/client/signals.lua b/config/awesome/configuration/client/signals.lua
similarity index 100%
rename from config/awesome/floppy/configuration/client/signals.lua
rename to config/awesome/configuration/client/signals.lua
diff --git a/config/awesome/configuration/config.lua b/config/awesome/configuration/config.lua
new file mode 100644
index 000000000..d2482cc93
--- /dev/null
+++ b/config/awesome/configuration/config.lua
@@ -0,0 +1,103 @@
+return {
+ widget = {
+ email = {
+ -- Email address
+ address = "",
+ -- App password
+ app_password = "",
+ -- Imap server
+ imap_server = "imap.gmail.com",
+ -- Port
+ port = "993",
+ },
+
+ weather = {
+ -- API Key
+ key = "",
+ -- City ID
+ city_id = "",
+ -- Units
+ units = "metric",
+ -- Update in N seconds
+ update_interval = 1200,
+ },
+
+ network = {
+ -- Wired interface
+ wired_interface = "enp0s0",
+ -- Wireless interface
+ wireless_interface = "wlan0",
+ },
+
+ clock = {
+ -- Clock widget format
+ military_mode = false,
+ },
+
+ screen_recorder = {
+ -- Default record dimension
+ resolution = "1366x768",
+ -- X,Y coordinate
+ offset = "0,0",
+ -- Enable audio by default
+ audio = false,
+ -- Recordings directory
+ save_directory = "$(xdg-user-dir VIDEOS)/Recordings/",
+ -- Mic level
+ mic_level = "20",
+ -- FPS
+ fps = "30",
+ },
+ },
+
+ module = {
+ auto_start = {
+ -- Will create notification if true
+ debug_mode = false,
+ },
+
+ dynamic_wallpaper = {
+ -- Will look for wallpapers here
+ wall_dir = nil,
+ -- Image formats
+ valid_picture_formats = { "jpg", "png", "jpeg" },
+ -- Leave this table empty for full auto scheduling
+ wallpaper_schedule = {
+ ["00:00:00"] = "midnight-wallpaper.jpg",
+ ["06:22:00"] = "morning-wallpaper.jpg",
+ ["12:00:00"] = "noon-wallpaper.jpg",
+ ["17:58:00"] = "night-wallpaper.jpg",
+ -- Example of just using auto-scheduling with keywords
+ --[[
+ 'midnight',
+ 'morning',
+ 'noon',
+ 'afternoon',
+ 'evening',
+ 'night'
+ --]]
+ },
+ -- Stretch background image across all screens(monitor)
+ stretch = false,
+ },
+
+ lockscreen = {
+ -- Clock format
+ military_clock = true,
+ -- Default password if there's no PAM integration
+ fallback_password = "toor",
+ -- Capture intruder using webcam
+ capture_intruder = true,
+ -- Intruder image save location (Will create directory if it doesn't exist)
+ face_capture_dir = "$(xdg-user-dir PICTURES)/Intruders/",
+ -- Background directory - Defaults to 'awesome/config/theme/wallpapers/' if null
+ bg_dir = nil,
+ -- Will look for this image file under 'bg_dir'
+ bg_image = "locksreen-bg.jpg",
+ -- Blur lockscreen background
+ blur_background = false,
+ -- Blurred/filtered background image path (No reason to change this)
+ tmp_wall_dir = "/tmp/awesomewm/" .. os.getenv("USER") .. "/",
+ },
+ },
+}
diff --git a/config/awesome/floppy/configuration/init.lua b/config/awesome/configuration/init.lua
similarity index 100%
rename from config/awesome/floppy/configuration/init.lua
rename to config/awesome/configuration/init.lua
diff --git a/config/awesome/configuration/keys/global.lua b/config/awesome/configuration/keys/global.lua
new file mode 100644
index 000000000..a4d780788
--- /dev/null
+++ b/config/awesome/configuration/keys/global.lua
@@ -0,0 +1,323 @@
+local awful = require("awful")
+local beautiful = require("beautiful")
+
+require("awful.autofocus")
+
+local hotkeys_popup = require("awful.hotkeys_popup").widget
+
+local modkey = require("configuration.keys.mod").mod_key
+local altkey = require("configuration.keys.mod").alt_key
+local apps = require("configuration.apps")
+
+-- Key bindings
+local global_keys = awful.util.table.join(
+
+ -- Hotkeys
+ awful.key({ modkey }, "F1", hotkeys_popup.show_help, { description = "show help", group = "awesome" }),
+ awful.key({ modkey, "Control" }, "r", awesome.restart, { description = "reload awesome", group = "awesome" }),
+
+ awful.key({ modkey, "Control" }, "q", awesome.quit, { description = "quit awesome", group = "awesome" }),
+ awful.key({ altkey, "Shift" }, "l", function()
+ awful.tag.incmwfact(0.05)
+ end, { description = "increase master width factor", group = "layout" }),
+ awful.key({ altkey, "Shift" }, "h", function()
+ awful.tag.incmwfact(-0.05)
+ end, { description = "decrease master width factor", group = "layout" }),
+ awful.key({ modkey, "Shift" }, "h", function()
+ awful.tag.incnmaster(1, nil, true)
+ end, { description = "increase the number of master clients", group = "layout" }),
+ awful.key({ modkey, "Shift" }, "l", function()
+ awful.tag.incnmaster(-1, nil, true)
+ end, { description = "decrease the number of master clients", group = "layout" }),
+ awful.key({ modkey, "Control" }, "h", function()
+ awful.tag.incncol(1, nil, true)
+ end, { description = "increase the number of columns", group = "layout" }),
+ awful.key({ modkey, "Control" }, "l", function()
+ awful.tag.incncol(-1, nil, true)
+ end, { description = "decrease the number of columns", group = "layout" }),
+ awful.key({ modkey }, "space", function()
+ awful.layout.inc(1)
+ end, { description = "select next layout", group = "layout" }),
+ awful.key({ modkey, "Shift" }, "space", function()
+ awful.layout.inc(-1)
+ end, { description = "select previous layout", group = "layout" }),
+ awful.key({ modkey }, "o", function()
+ awful.tag.incgap(1)
+ end, { description = "increase gap", group = "layout" }),
+ awful.key({ modkey, "Shift" }, "o", function()
+ awful.tag.incgap(-1)
+ end, { description = "decrease gap", group = "layout" }),
+ awful.key({ modkey }, "w", awful.tag.viewprev, { description = "view previous tag", group = "tag" }),
+ awful.key({ modkey }, "s", awful.tag.viewnext, { description = "view next tag", group = "tag" }),
+ awful.key(
+ { modkey },
+ "Escape",
+ awful.tag.history.restore,
+ { description = "alternate between current and previous tag", group = "tag" }
+ ),
+ awful.key({ modkey, "Control" }, "w", function()
+ -- tag_view_nonempty(-1)
+ local focused = awful.screen.focused()
+ for i = 1, #focused.tags do
+ awful.tag.viewidx(-1, focused)
+ if #focused.clients > 0 then
+ return
+ end
+ end
+ end, { description = "view previous non-empty tag", group = "tag" }),
+ awful.key({ modkey, "Control" }, "s", function()
+ -- tag_view_nonempty(1)
+ local focused = awful.screen.focused()
+ for i = 1, #focused.tags do
+ awful.tag.viewidx(1, focused)
+ if #focused.clients > 0 then
+ return
+ end
+ end
+ end, { description = "view next non-empty tag", group = "tag" }),
+ awful.key({ modkey, "Shift" }, "F1", function()
+ awful.screen.focus_relative(-1)
+ end, { description = "focus the previous screen", group = "screen" }),
+ awful.key({ modkey, "Shift" }, "F2", function()
+ awful.screen.focus_relative(1)
+ end, { description = "focus the next screen", group = "screen" }),
+ awful.key({ modkey, "Control" }, "n", function()
+ local c = awful.client.restore()
+ -- Focus restored client
+ if c then
+ c:emit_signal("request::activate")
+ c:raise()
+ end
+ end, { description = "restore minimized", group = "screen" }),
+ awful.key({}, "XF86MonBrightnessUp", function()
+ awful.spawn("light -A 10", false)
+ awesome.emit_signal("widget::brightness")
+ awesome.emit_signal("module::brightness_osd:show", true)
+ end, { description = "increase brightness by 10%", group = "hotkeys" }),
+ awful.key({}, "XF86MonBrightnessDown", function()
+ awful.spawn("light -U 10", false)
+ awesome.emit_signal("widget::brightness")
+ awesome.emit_signal("module::brightness_osd:show", true)
+ end, { description = "decrease brightness by 10%", group = "hotkeys" }),
+ -- ALSA volume control
+ awful.key({}, "XF86AudioRaiseVolume", function()
+ awful.spawn("amixer -D pulse sset Master 5%+", false)
+ awesome.emit_signal("widget::volume")
+ awesome.emit_signal("module::volume_osd:show", true)
+ end, { description = "increase volume up by 5%", group = "hotkeys" }),
+ awful.key({}, "XF86AudioLowerVolume", function()
+ awful.spawn("amixer -D pulse sset Master 5%-", false)
+ awesome.emit_signal("widget::volume")
+ awesome.emit_signal("module::volume_osd:show", true)
+ end, { description = "decrease volume up by 5%", group = "hotkeys" }),
+ awful.key({}, "XF86AudioMute", function()
+ awful.spawn("amixer -D pulse set Master 1+ toggle", false)
+ end, { description = "toggle mute", group = "hotkeys" }),
+ awful.key({}, "XF86AudioNext", function()
+ awful.spawn("mpc next", false)
+ end, { description = "next music", group = "hotkeys" }),
+ awful.key({}, "XF86AudioPrev", function()
+ awful.spawn("mpc prev", false)
+ end, { description = "previous music", group = "hotkeys" }),
+ awful.key({}, "XF86AudioPlay", function()
+ awful.spawn("mpc toggle", false)
+ end, { description = "play/pause music", group = "hotkeys" }
+),
+ awful.key({}, "XF86AudioMicMute", function()
+ awful.spawn("amixer set Capture toggle", false)
+ end, { description = "mute microphone", group = "hotkeys" }),
+ awful.key({}, "XF86PowerDown", function()
+ --
+ end, { description = "shutdown skynet", group = "hotkeys" }),
+ awful.key({}, "XF86PowerOff", function()
+ awesome.emit_signal("module::exit_screen:show")
+ end, { description = "toggle exit screen", group = "hotkeys" }),
+ awful.key({}, "XF86Display", function()
+ awful.spawn.single_instance("arandr", false)
+ end, { description = "arandr", group = "hotkeys" }),
+ awful.key({ modkey, "Shift" }, "q", function()
+ awesome.emit_signal("module::exit_screen:show")
+ end, { description = "toggle exit screen", group = "hotkeys" }),
+ awful.key({ modkey }, "`", function()
+ awesome.emit_signal("module::quake_terminal:toggle")
+ end, { description = "dropdown application", group = "launcher" }),
+ awful.key({ modkey }, "m", function()
+ if awful.screen.focused().musicpop then
+ awesome.emit_signal("widget::music", "keyboard")
+ end
+ end, { description = "toggle music widget", group = "launcher" }),
+ awful.key({}, "Print", function()
+ awful.spawn.easy_async_with_shell(apps.utils.full_screenshot, function() end)
+ end, { description = "fullscreen screenshot", group = "Utility" }),
+ awful.key({ modkey, "Shift" }, "s", function()
+ awful.spawn.easy_async_with_shell(apps.utils.area_screenshot, function() end)
+ end, { description = "area/selected screenshot", group = "Utility" }),
+ awful.key({ modkey }, "x", function()
+ awesome.emit_signal("widget::blur:toggle")
+ end, { description = "toggle blur effects", group = "Utility" }),
+ awful.key({ modkey }, "]", function()
+ awesome.emit_signal("widget::blur:increase")
+ end, { description = "increase blur effect by 10%", group = "Utility" }),
+ awful.key({ modkey }, "[", function()
+ awesome.emit_signal("widget::blur:decrease")
+ end, { description = "decrease blur effect by 10%", group = "Utility" }),
+ awful.key({ modkey }, "t", function()
+ awesome.emit_signal("widget::blue_light:toggle")
+ end, { description = "toggle redshift filter", group = "Utility" }),
+ awful.key({ "Control" }, "Escape", function()
+ if screen.primary.systray then
+ if not screen.primary.tray_toggler then
+ local systray = screen.primary.systray
+ systray.visible = not systray.visible
+ else
+ awesome.emit_signal("widget::systray:toggle")
+ end
+ end
+ end, { description = "toggle systray visibility", group = "Utility" }),
+ awful.key({ modkey }, "l", function()
+ awful.spawn(apps.default.lock, false)
+ end, { description = "lock the screen", group = "Utility" }),
+ awful.key({ modkey }, "Return", function()
+ awful.spawn(apps.default.terminal)
+ end, { description = "open default terminal", group = "launcher" }),
+ awful.key({ modkey, "Shift" }, "e", function()
+ awful.spawn(apps.default.file_manager)
+ end, { description = "open default file manager", group = "launcher" }),
+ awful.key({ modkey, "Shift" }, "f", function()
+ awful.spawn(apps.default.web_browser)
+ end, { description = "open default web browser", group = "launcher" }),
+ awful.key({ "Control", "Shift" }, "Escape", function()
+ awful.spawn(apps.default.terminal .. " " .. "htop")
+ end, { description = "open system monitor", group = "launcher" }),
+ awful.key({ modkey }, "e", function()
+ local focused = awful.screen.focused()
+
+ if focused.left_panel then
+ focused.left_panel:hide_dashboard()
+ focused.left_panel.opened = false
+ end
+ if focused.right_panel then
+ focused.right_panel:hide_dashboard()
+ focused.right_panel.opened = false
+ end
+ awful.spawn(apps.default.rofi_appmenu, false)
+ end, { description = "open application drawer", group = "launcher" }),
+ awful.key({}, "XF86Launch1", function()
+ local focused = awful.screen.focused()
+
+ if focused.left_panel then
+ focused.left_panel:hide_dashboard()
+ focused.left_panel.opened = false
+ end
+ if focused.right_panel then
+ focused.right_panel:hide_dashboard()
+ focused.right_panel.opened = false
+ end
+ awful.spawn(apps.default.rofi_appmenu, false)
+ end, { description = "open application drawer", group = "launcher" }),
+ awful.key({ modkey }, "r", function()
+ local focused = awful.screen.focused()
+
+ if focused.right_panel and focused.right_panel.visible then
+ focused.right_panel.visible = false
+ end
+ screen.primary.left_panel:toggle()
+ end, { description = "open sidebar", group = "launcher" }),
+ awful.key({ modkey, "Shift" }, "r", function()
+ local focused = awful.screen.focused()
+
+ if focused.right_panel and focused.right_panel.visible then
+ focused.right_panel.visible = false
+ end
+ screen.primary.left_panel:toggle(true)
+ end, { description = "open sidebar and global search", group = "launcher" }),
+ awful.key({ modkey }, "F2", function()
+ local focused = awful.screen.focused()
+
+ if focused.left_panel and focused.left_panel.opened then
+ focused.left_panel:toggle()
+ end
+
+ if focused.right_panel then
+ if _G.right_panel_mode == "today_mode" or not focused.right_panel.visible then
+ focused.right_panel:toggle()
+ switch_rdb_pane("today_mode")
+ else
+ switch_rdb_pane("today_mode")
+ end
+
+ _G.right_panel_mode = "today_mode"
+ end
+ end, { description = "open today pane", group = "launcher" }),
+ awful.key({ modkey }, "F3", function()
+ local focused = awful.screen.focused()
+
+ if focused.left_panel and focused.left_panel.opened then
+ focused.left_panel:toggle()
+ end
+
+ if focused.right_panel then
+ if _G.right_panel_mode == "notif_mode" or not focused.right_panel.visible then
+ focused.right_panel:toggle()
+ switch_rdb_pane("notif_mode")
+ else
+ switch_rdb_pane("notif_mode")
+ end
+
+ _G.right_panel_mode = "notif_mode"
+ end
+ end, { description = "open notification center", group = "launcher" })
+)
+
+-- Bind all key numbers to tags.
+-- Be careful: we use keycodes to make it work on any keyboard layout.
+-- This should map on the top row of your keyboard, usually 1 to 9.
+for i = 1, 9 do
+ -- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
+ local descr_view, descr_toggle, descr_move, descr_toggle_focus
+ if i == 1 or i == 9 then
+ descr_view = { description = "view tag #", group = "tag" }
+ descr_toggle = { description = "toggle tag #", group = "tag" }
+ descr_move = { description = "move focused client to tag #", group = "tag" }
+ descr_toggle_focus = { description = "toggle focused client on tag #", group = "tag" }
+ end
+ global_keys = awful.util.table.join(
+ global_keys,
+ -- View tag only.
+ awful.key({ modkey }, "#" .. i + 9, function()
+ local focused = awful.screen.focused()
+ local tag = focused.tags[i]
+ if tag then
+ tag:view_only()
+ end
+ end, descr_view),
+ -- Toggle tag display.
+ awful.key({ modkey, "Control" }, "#" .. i + 9, function()
+ local focused = awful.screen.focused()
+ local tag = focused.tags[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end, descr_toggle),
+ -- Move client to tag.
+ awful.key({ modkey, "Shift" }, "#" .. i + 9, function()
+ if client.focus then
+ local tag = client.focus.screen.tags[i]
+ if tag then
+ client.focus:move_to_tag(tag)
+ end
+ end
+ end, descr_move),
+ -- Toggle tag on focused client.
+ awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function()
+ if client.focus then
+ local tag = client.focus.screen.tags[i]
+ if tag then
+ client.focus:toggle_tag(tag)
+ end
+ end
+ end, descr_toggle_focus)
+ )
+end
+
+return global_keys
diff --git a/config/awesome/floppy/configuration/keys/init.lua b/config/awesome/configuration/keys/init.lua
similarity index 100%
rename from config/awesome/floppy/configuration/keys/init.lua
rename to config/awesome/configuration/keys/init.lua
diff --git a/config/awesome/floppy/configuration/keys/mod.lua b/config/awesome/configuration/keys/mod.lua
similarity index 100%
rename from config/awesome/floppy/configuration/keys/mod.lua
rename to config/awesome/configuration/keys/mod.lua
diff --git a/config/awesome/floppy/configuration/picom.conf b/config/awesome/configuration/picom.conf
similarity index 100%
rename from config/awesome/floppy/configuration/picom.conf
rename to config/awesome/configuration/picom.conf
diff --git a/config/awesome/configuration/rofi/appmenu/rofi.rasi b/config/awesome/configuration/rofi/appmenu/rofi.rasi
new file mode 100644
index 000000000..ba1f26382
--- /dev/null
+++ b/config/awesome/configuration/rofi/appmenu/rofi.rasi
@@ -0,0 +1,159 @@
+configuration {
+ font: "Inter Regular 10";
+ show-icons: true;
+ drun-display-format: "{name}";
+ threads: 0;
+ matching: "fuzzy";
+ scroll-method: 0;
+ disable-history: false;
+ fullscreen: true;
+ window-thumbnail: true;
+ cycle: false;
+ icon-theme: "Papirus";
+ modi: "window,run,ssh,drun";
+}
+
+* {
+ transparent: #00000000;
+ foreground: #F2F2F2EE;
+ background-selected: #F2F2F245;
+ background-active: #F2F2F230;
+ background-white: #F2F2F211;
+ background-black: #00000066;
+ urgent: #E91E6366;
+ urgent-selected: #E91E6377;
+}
+
+window {
+ transparency: "real";
+ background-color: @transparent;
+ text-color: @foreground;
+ width: 100%;
+ height: 100%;
+ /* location: northwest; */
+ /* anchor: northwest; */
+}
+
+prompt {
+ enabled: false;
+}
+
+button {
+ action: "ok";
+ str: " ";
+ font: "FantasqueSansMono Nerd Font 11";
+ expand: false;
+ text-color: @foreground;
+ background-color: @transparent;
+ vertical-align: 0.7;
+ horizontal-align: 0.5;
+}
+
+entry {
+ font: "Inter Regular 11";
+ background-color: @transparent;
+ text-color: @foreground;
+ expand: true;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+ placeholder: "Type to search";
+ placeholder-color: @foreground;
+ blink: true;
+}
+
+case-indicator {
+ background-color: @transparent;
+ text-color: @foreground;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+entry-wrapper {
+ orientation: horizontal;
+ vertical-align: 0.5;
+ spacing: 4px;
+ background-color: @transparent;
+ children: [ button, entry, case-indicator ];
+}
+
+inputbar {
+ background-color: @background-white;
+ text-color: @foreground;
+ expand: false;
+ border-radius: 6px;
+ margin: 0px 25% 0px 25%;
+ padding: 10px 10px 10px 10px;
+ position: north;
+ children: [ entry-wrapper ];
+}
+
+listview {
+ background-color: @transparent;
+ columns: 7;
+ spacing: 5%;
+ cycle: true;
+ dynamic: true;
+ layout: vertical;
+ lines: 1;
+ /* scrollbar : true; */
+}
+
+mainbox {
+ background-color: @background-black;
+ /* lines : 1; */
+ children: [ inputbar, listview];
+ spacing: 25px;
+ padding: 70px 15% 0 15%;
+ /*padding: 70px 135px 0 135px;*/
+}
+
+element {
+ background-color: @transparent;
+ text-color: @foreground;
+ orientation: vertical;
+ border-radius: 12px;
+ /* padding: 4% 0 4% 0; */
+}
+
+element-icon {
+ border: 0;
+ background-color: @transparent;
+ size: 10%;
+}
+
+element-text {
+ background-color: @transparent;
+ text-color: white;
+ expand: true;
+ horizontal-align: 0.5;
+ vertical-align: 0.5;
+ margin: 0 10px 0 10px;
+}
+
+element normal.urgent,
+element alternate.urgent {
+ background-color: @urgent;
+ text-color: @foreground;
+ border-radius: 9px;
+}
+
+element normal.active,
+element alternate.active {
+ background-color: @background-active;
+ text-color: @foreground;
+}
+
+element selected {
+ background-color: @background-selected;
+ text-color: @foreground;
+}
+
+element selected.urgent {
+ background-color: @urgent-selected;
+ text-color: @foreground;
+}
+
+element selected.active {
+ background-color: @background-active;
+ color: @foreground-selected;
+}
diff --git a/config/awesome/configuration/rofi/global/history.txt b/config/awesome/configuration/rofi/global/history.txt
new file mode 100644
index 000000000..6e1e2d97b
--- /dev/null
+++ b/config/awesome/configuration/rofi/global/history.txt
@@ -0,0 +1,6 @@
+brave
+!hello
+rofi.rasi
+cmake
+?cmake
+!brave
diff --git a/config/awesome/floppy/configuration/rofi/global/icons/ddg.svg b/config/awesome/configuration/rofi/global/icons/ddg.svg
similarity index 100%
rename from config/awesome/floppy/configuration/rofi/global/icons/ddg.svg
rename to config/awesome/configuration/rofi/global/icons/ddg.svg
diff --git a/config/awesome/floppy/configuration/rofi/global/icons/google.svg b/config/awesome/configuration/rofi/global/icons/google.svg
similarity index 100%
rename from config/awesome/floppy/configuration/rofi/global/icons/google.svg
rename to config/awesome/configuration/rofi/global/icons/google.svg
diff --git a/config/awesome/floppy/configuration/rofi/global/icons/history.svg b/config/awesome/configuration/rofi/global/icons/history.svg
similarity index 100%
rename from config/awesome/floppy/configuration/rofi/global/icons/history.svg
rename to config/awesome/configuration/rofi/global/icons/history.svg
diff --git a/config/awesome/floppy/configuration/rofi/global/icons/result.svg b/config/awesome/configuration/rofi/global/icons/result.svg
similarity index 100%
rename from config/awesome/floppy/configuration/rofi/global/icons/result.svg
rename to config/awesome/configuration/rofi/global/icons/result.svg
diff --git a/config/awesome/floppy/configuration/rofi/global/icons/suggestion.svg b/config/awesome/configuration/rofi/global/icons/suggestion.svg
similarity index 100%
rename from config/awesome/floppy/configuration/rofi/global/icons/suggestion.svg
rename to config/awesome/configuration/rofi/global/icons/suggestion.svg
diff --git a/config/awesome/configuration/rofi/global/rofi-spotlight.sh b/config/awesome/configuration/rofi/global/rofi-spotlight.sh
new file mode 100755
index 000000000..0ba162db5
--- /dev/null
+++ b/config/awesome/configuration/rofi/global/rofi-spotlight.sh
@@ -0,0 +1,692 @@
+#!/usr/bin/env bash
+
+TMP_DIR="/tmp/rofi/${USER}/"
+
+PREV_LOC_FILE="${TMP_DIR}rofi_fb_prevloc"
+CURRENT_FILE="${TMP_DIR}rofi_fb_current_file"
+
+MY_PATH="$(realpath "$0" | xargs dirname)"
+HIST_FILE="${MY_PATH}/history.txt"
+
+OPENER=xdg-open
+TERM_EMU=kitty
+TEXT_EDITOR=$EDITOR
+FILE_MANAGER=xdg-open
+BLUETOOTH_SEND=blueman-sendto
+
+CUR_DIR=$PWD
+NEXT_DIR=""
+FD_INSTALLED=$(command -v fd)
+
+SHOW_HIDDEN=false
+
+# Setup menu options
+declare -a OPEN_FILE_LOCATION=(
+ "Open file location in ${TERM_EMU}"
+ "Open file location in ${FILE_MANAGER}"
+)
+declare -a RUN_COMMANDS=(
+ "Run"
+ "Execute in ${TERM_EMU}"
+)
+declare -a STANDARD_CONTROLS=(
+ "Move to trash"
+ "Delete"
+ "Back"
+)
+declare -a SHELL_NO_X_OPTIONS=(
+ "Edit"
+ "${OPEN_FILE_LOCATION[@]}"
+ "${STANDARD_CONTROLS[@]}"
+)
+declare -a SHELL_OPTIONS=(
+ "${RUN_COMMANDS[@]}"
+ "${SHELL_NO_X_OPTIONS[@]}"
+)
+declare -a BIN_NO_X_OPTIONS=(
+ "${OPEN_FILE_LOCATION[@]}"
+ "Back"
+)
+declare -a BIN_OPTIONS=(
+ "${RUN_COMMANDS[@]}"
+ "${BIN_NO_X_OPTIONS[@]}"
+)
+declare -a TEXT_OPTIONS=("${SHELL_NO_X_OPTIONS[@]}")
+declare -a HTML_OPTIONS=(
+ "Open"
+ "Edit"
+ "${OPEN_FILE_LOCATION[@]}"
+ "${STANDARD_CONTROLS[@]}"
+)
+declare -a XCF_SVG_OPTIONS=(
+ "Open"
+ "${OPEN_FILE_LOCATION[@]}"
+ "${STANDARD_CONTROLS[@]}"
+)
+declare -a IMAGE_OPTIONS=(
+ "Open"
+ "Send via Bluetooth"
+ "${OPEN_FILE_LOCATION[@]}"
+ "${STANDARD_CONTROLS[@]}"
+)
+
+declare -a ALL_OPTIONS=()
+
+# Combine all context menu
+COMBINED_OPTIONS=(
+ "${SHELL_OPTIONS[@]}"
+ "${IMAGE_OPTIONS[@]}"
+)
+
+# Remove duplicates
+ALL_OPTIONS=("$(printf '%s\n' "${COMBINED_OPTIONS[@]}" | sort -u)")
+
+# Create tmp dir for rofi
+[ ! -d "${TMP_DIR}" ] && mkdir -p "${TMP_DIR}";
+
+# Create hist file if it doesn't exist
+[ ! -f "${HIST_FILE}" ] && touch "${HIST_FILE}"
+
+# Help message
+if [ -n "$*" ] && [[ "$*" = ":help" ]]
+then
+ echo -en "Rofi Spotlight
+A Rofi with file and web searching functionality
+
+Commands:
+:help to print this help message
+:h or :hidden to show hidden files/dirs
+:sh or :show_hist to show search history
+:ch or :clear_hist to clear search history
+:xdg to jump to an xdg directory
+Examples:
+ :xdg DOCUMENTS
+ :xdg DOWNLOADS
+Also supports incomplete path:
+Examples:
+ :xdg doc
+ :xdg down
+For more info about XDG dirs, see:
+\`man xdg-user-dir\`
+
+File search syntaxes:
+!
to search for a file and web suggestions
+? to search parent directories
+Examples:
+ !half-life 3
+ ?portal 3
+
+Web search syntaxes:
+! to gets search suggestions
+:web/:w to also to gets search suggestions
+:webbro/:wb to search directly from your browser
+Examples:
+ !how to install archlinux
+ :web how to install gentoo
+ :w how to make a nuclear fission
+ :webbro how to install wine in windowsxp
+Back\0icon\x1fdraw-arrow-back\n"
+
+ exit
+fi
+
+# Return the icon string
+function icon_file_type(){
+ icon_name=""
+ mime_type=$(file --mime-type -b "${1}")
+
+ case "${mime_type}" in
+ "inode/directory")
+ case "${1}" in
+ "Desktop/" )
+ icon_name='folder-blue-desktop'
+ ;;
+ "Documents/" )
+ icon_name='folder-blue-documents'
+ ;;
+ "Downloads/" )
+ icon_name='folder-blue-downloads'
+ ;;
+ "Music/" )
+ icon_name='folder-blue-music'
+ ;;
+ "Pictures/" )
+ icon_name='folder-blue-pictures'
+ ;;
+ "Public/" )
+ icon_name='folder-blue-public'
+ ;;
+ "Templates/" )
+ icon_name='folder-blue-templates'
+ ;;
+ "Videos/" )
+ icon_name='folder-blue-videos'
+ ;;
+ "root/" )
+ icon_name='folder-root'
+ ;;
+ "home/" | "${USER}/")
+ icon_name='folder-home'
+ ;;
+ *"$" )
+ icon_name='folder-blue'
+ ;;
+ *)
+ icon_name='folder-blue'
+ ;;
+ esac
+ ;;
+ "inode/symlink" )
+ icon_name='inode-symlink'
+ ;;
+ "audio/flac" | "audio/mpeg" )
+ icon_name='music'
+ ;;
+ "video/mp4" )
+ icon_name='video-mp4'
+ ;;
+ "video/x-matroska" )
+ icon_name=video-x-matroska
+ ;;
+ "image/x-xcf" )
+ # notify-send '123'
+ icon_name='image-x-xcf'
+ ;;
+ "image/jpeg" | "image/png" | "image/svg+xml")
+ icon_name="${CUR_DIR}/${1}"
+ ;;
+ "image/gif" )
+ icon_name='gif'
+ ;;
+ "image/vnd.adobe.photoshop" )
+ icon_name='image-vnd.adobe.photoshop'
+ ;;
+ "image/webp" )
+ icon_name='gif'
+ ;;
+ "application/x-pie-executable" )
+ icon_name='binary'
+ ;;
+ "application/pdf" )
+ icon_name='pdf'
+ ;;
+ "application/zip" )
+ icon_name='application-zip'
+ ;;
+ "application/x-xz" )
+ icon_name='application-x-xz-compressed-tar'
+ ;;
+ "application/x-7z-compressed" )
+ icon_name='application-x-7zip'
+ ;;
+ "application/x-rar" )
+ icon_name='application-x-rar'
+ ;;
+ "application/octet-stream" | "application/x-iso9660-image" )
+ icon_name='application-x-iso'
+ ;;
+ "application/x-dosexec" )
+ icon_name='application-x-ms-dos-executable'
+ ;;
+ "text/plain" )
+ icon_name='application-text'
+ ;;
+ "text/x-shellscript" )
+ icon_name='application-x-shellscript'
+ ;;
+ "text/html" )
+ icon_name='text-html'
+ ;;
+ "font/sfnt" | "application/vnd.ms-opentype" )
+ icon_name='application-x-font-ttf'
+ ;;
+ * )
+ case "${1}" in
+ *."docx" | *".doc" )
+ icon_name='application-msword'
+ ;;
+ *."apk" )
+ icon_name='android-package-archive'
+ ;;
+ * )
+ icon_name='unknown'
+ ;;
+ esac
+ ;;
+ esac
+
+ echo -en "$1\0icon\x1f$icon_name\n"
+}
+
+export -f icon_file_type
+
+# Pass the argument to python script
+function web_search() {
+ # Pass the search query to web-search script
+ "${MY_PATH}/web-search.py" "${1}"
+ exit;
+}
+
+# Handles the web search method
+if [ ! -z "$@" ] && ([[ "$@" == ":webbro"* ]] || [[ "$@" == ":wb"* ]])
+then
+ remove=''
+ [[ "$*" = ":webbro"* ]] && remove=":webbro" || remove=":wb"
+
+ # Search directly from your web browser
+ web_search "$(printf '%s\n' "${1//$remove/}")"
+ exit;
+
+elif [ ! -z "$@" ] && ([[ "$@" == ":web"* ]] || [[ "$@" == ":w"* ]])
+then
+ remove=''
+ [[ "$*" = ":web"* ]] && remove=":web" || remove=":w"
+
+ # Get search suggestions
+ web_search "!$(printf '%s\n' "${1//$remove/}")"
+ exit;
+fi
+
+function find_query() {
+ QUERY=${1}
+ if [[ ! "${QUERY}" =~ ( |\') ]]
+ then
+ if [ -z "$FD_INSTALLED" ];
+ then
+ find . -iname *"${QUERY}"* | sed "s/\/home\/$USER/\~/" |
+ awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
+ else
+ fd -H ${QUERY} ${HOME} | sed "s/\/home\/$USER/\~/" |
+ awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
+ fi
+ fi
+}
+
+# File and calls to the web search
+if [ ! -z "$@" ] && ([[ "$@" == ?(\~)/* ]] || [[ "$@" == \?* ]] || [[ "$@" == \!* ]])
+then
+ QUERY=$@
+
+ echo "${QUERY}" >> "${HIST_FILE}"
+
+ if [[ "$@" == ?(\~)/* ]]
+ then
+ [[ "$*" = \~* ]] && QUERY="${QUERY//"~"/"$HOME"}"
+
+ coproc ${OPENER} "${QUERY}" > /dev/null 2>&1
+ exec 1>&-
+ exit
+
+ elif [[ "$@" == \?* ]]
+ then
+ find_query ${QUERY#\?}
+
+ else
+ # Find the file
+ find_query ${QUERY#!}
+
+ # Web search
+ web_search "! ${QUERY#!}"
+ fi
+ exit;
+fi
+
+# Create notification if there's an error
+function create_notification() {
+ case "${1}" in
+ "denied" )
+ notify-send -a "Global Search" "Permission denied!" \
+ 'You have no permission to access '"${CUR_DIR}!"
+ ;;
+ "deleted" )
+ notify-send -a "Global Search" "Success!" \
+ 'File deleted!'
+ ;;
+ "trashed" )
+ notify-send -a "Global Search" "Success!" \
+ 'The file has been moved to trash!'
+ ;;
+ "cleared" )
+ notify-send -a "Global Search" "Success!" \
+ 'Search history has been successfully cleared!'
+ ;;
+ * )
+ notify-send -a "Global Search" "Somethings wrong I can feel it!" \
+ 'This incident will be reported!'
+ ;;
+ esac
+}
+
+# Show the files in the current directory
+function navigate_to() {
+ # process current dir.
+ if [ -n "${CUR_DIR}" ]
+ then
+ CUR_DIR=$(readlink -e "${CUR_DIR}")
+ if [ ! -d "${CUR_DIR}" ] || [ ! -r "${CUR_DIR}" ]
+ then
+ create_notification "denied"
+ CUR_DIR=$(realpath ${CUR_DIR} | xargs dirname)
+ echo "${CUR_DIR}" > "${PREV_LOC_FILE}"
+ else
+ echo "${CUR_DIR}/" > "${PREV_LOC_FILE}"
+ fi
+ pushd "${CUR_DIR}" >/dev/null || exit
+ fi
+
+ printf "..\0icon\x1fup\n"
+
+ if [[ -z "$FD_INSTALLED" ]]
+ then
+ #Group directories
+ if [[ ${SHOW_HIDDEN} == true ]]
+ then
+ for i in .*/
+ do
+ [[ -d "${i}" ]] && ([[ "${i}" != "./" ]] && [[ "${i}" != "../"* ]]) && icon_file_type "${i}"
+ done
+ fi
+ for i in */
+ do
+ [[ -d "${i}" ]] && icon_file_type "${i}"
+ done
+ #Group files
+ if [[ ${SHOW_HIDDEN} = true ]]
+ then
+ for i in .*
+ do
+ [[ -f "${i}" ]] && icon_file_type "${i}"
+ done
+ fi
+ for i in *
+ do
+ [[ -f "${i}" ]] && icon_file_type "${i}"
+ done
+ else
+ THREADS=$(getconf _NPROCESSORS_ONLN)
+ export CUR_DIR
+ if [[ ${SHOW_HIDDEN} == true ]]
+ then
+ fd -Ht d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
+ fd -Ht f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
+ else
+ fd -t d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
+ fd -t f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
+ fi
+ fi
+}
+
+# Set XDG dir
+function return_xdg_dir() {
+ target_dir=${1^^}
+
+ if [[ "HOME" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir)
+
+ elif [[ "DESKTOP" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir DESKTOP)
+
+ elif [[ "DOCUMENTS" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir DOCUMENTS)
+
+ elif [[ "DOWNLOADS" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir DOWNLOAD)
+
+ elif [[ "MUSIC" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir MUSIC)
+
+ elif [[ "PICTURES" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir PICTURES)
+
+ elif [[ "PUBLICSHARE" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir PUBLICSHARE)
+
+ elif [[ "TEMPLATES" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir TEMPLATES)
+
+ elif [[ "VIDEOS" == *"${target_dir}"* ]]
+ then
+ CUR_DIR=$(xdg-user-dir VIDEOS)
+
+ elif [[ "ROOT" == *"${target_dir}"* ]]
+ then
+ CUR_DIR="/"
+
+ else
+ CUR_DIR="${HOME}"
+ fi
+ navigate_to
+ exit;
+}
+
+# Show and Clear History
+if [ ! -z "$@" ] && ([[ "$@" == ":sh" ]] || [[ "$@" == ":show_hist" ]])
+then
+ hist=$(tac "${HIST_FILE}")
+
+ echo -en "Back\0icon\x1fdraw-arrow-back\n"
+ [ -z "${hist}" ] && echo -en "No History Yet\0icon\x1ftext-plain\n"
+
+ while IFS= read -r line;
+ do
+ echo -en "${line}\0icon\x1f${MY_PATH}/icons/history.svg\n";
+ done <<< "${hist}"
+
+ exit;
+elif [ ! -z "$@" ] && ([[ "$@" == ":ch" ]] || [[ "$@" == ":clear_hist" ]])
+then
+ :> "${HIST_FILE}"
+ create_notification "cleared"
+
+ CUR_DIR="${HOME}"
+ navigate_to
+ exit;
+fi
+
+# Accepts XDG command
+if [[ ! -z "$@" ]] && [[ "$@" == ":xdg"* ]]
+then
+ NEXT_DIR=${*//":xdg "/}
+
+ [[ -n "$NEXT_DIR" ]] && return_xdg_dir "${NEXT_DIR}" || return_xdg_dir "${HOME}"
+fi
+
+# Read last location, otherwise we default to PWD.
+[ -f "${PREV_LOC_FILE}" ] && CUR_DIR=$(< "${PREV_LOC_FILE}")
+
+if [[ ! -z "$@" ]] && ([[ "$@" == ":h" ]] || [[ "$@" == ":hidden" ]])
+then
+ SHOW_HIDDEN=true
+ navigate_to
+ exit;
+fi
+
+# Handle argument.
+[ -n "$*" ] && CUR_DIR="${CUR_DIR}/$*"
+
+# Context Menu
+if [ -n "$*" ] && [[ "${ALL_OPTIONS[*]} " = *"$*"* ]]
+then
+ case "${1}" in
+ "Run" )
+ coproc ( eval "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
+ kill -9 $(pgrep rofi)
+ ;;
+ "Execute in ${TERM_EMU}" )
+ coproc ( eval "${TERM_EMU} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
+ kill -9 $(pgrep rofi)
+ ;;
+ "Open" )
+ coproc ( eval "${OPENER} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
+ kill -9 $(pgrep rofi)
+ ;;
+ "Open file location in ${TERM_EMU}" )
+ file_path="$(< ${CURRENT_FILE})"
+ coproc ( ${TERM_EMU} bash -c "cd ${file_path%/*} ; ${SHELL}" & > /dev/null 2>&1 )
+ kill -9 $(pgrep rofi)
+ ;;
+ "Open file location in ${FILE_MANAGER}" )
+ file_path="$(< "${CURRENT_FILE}")"
+ coproc ( eval "${FILE_MANAGER} "${file_path%/*}"" & > /dev/null 2>&1 )
+ kill -9 $(pgrep rofi)
+ ;;
+ "Edit" )
+ coproc ( eval "${TERM_EMU} ${TEXT_EDITOR} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
+ kill -9 $(pgrep rofi)
+ ;;
+ "Move to trash" )
+ coproc( gio trash "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
+ create_notification "trashed"
+ CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
+ navigate_to
+ ;;
+ "Delete" )
+ shred "$(< ${CURRENT_FILE})"
+ rm "$(< ${CURRENT_FILE})"
+ create_notification "deleted"
+ CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
+ navigate_to
+ ;;
+ "Send via Bluetooth" )
+ rfkill unblock bluetooth && bluetoothctl power on
+ sleep 1
+ blueman-sendto "$(< ${CURRENT_FILE})" & > /dev/null 2>&1
+ kill -9 $(pgrep rofi)
+ ;;
+ "Back" )
+ CUR_DIR="$(< ${PREV_LOC_FILE})"
+ navigate_to
+ ;;
+ esac
+ exit;
+fi
+
+function context_menu_icons() {
+
+ if [[ "${1}" == "Run" ]]
+ then
+ echo '\0icon\x1fsystem-run\n'
+
+ elif [[ "${1}" == "Execute in ${TERM_EMU}" ]]
+ then
+ echo "\0icon\x1f${TERM_EMU}\n"
+
+ elif [[ "${1}" == "Open" ]]
+ then
+ echo "\0icon\x1futilities-x-terminal\n"
+
+ elif [[ "${1}" == "Open file location in ${TERM_EMU}" ]]
+ then
+ echo "\0icon\x1f${TERM_EMU}\n"
+
+ elif [[ "${1}" == "Open file location in ${FILE_MANAGER}" ]]
+ then
+ echo "\0icon\x1fblue-folder-open\n"
+
+ elif [[ "${1}" == "Edit" ]]
+ then
+ echo "\0icon\x1faccessories-text-editor\n"
+
+ elif [[ "${1}" == "Move to trash" ]]
+ then
+ echo "\0icon\x1fapplication-x-trash\n"
+
+ elif [[ "${1}" == "Delete" ]]
+ then
+ echo "\0icon\x1findicator-trashindicator\n"
+
+ elif [[ "${1}" == "Send via Bluetooth" ]]
+ then
+ echo "\0icon\x1fbluetooth\n"
+
+ elif [[ "${1}" == "Back" ]]
+ then
+ echo "\0icon\x1fback\n"
+ fi
+}
+
+function print_context_menu() {
+ declare -a arg_arr=("${!1}")
+
+ for menu in "${arg_arr[@]}"
+ do
+ printf "$menu$(context_menu_icons "${menu}")\n"
+ done
+}
+
+function context_menu() {
+
+ type="$(file --mime-type -b "${CUR_DIR}")"
+
+ if [ -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
+ then
+ if [ -x "${CUR_DIR}" ];
+ then
+ print_context_menu SHELL_OPTIONS[@]
+ else
+ print_context_menu SHELL_NO_X_OPTIONS[@]
+ fi
+
+ elif [[ "${type}" == "application/x-executable" ]] || [[ "${type}" == "application/x-pie-executable" ]]
+ then
+ if [ -x "${CUR_DIR}" ]
+ then
+ print_context_menu BIN_OPTIONS[@]
+ else
+ print_context_menu BIN_NO_X_OPTIONS[@]
+ fi
+
+ elif [[ "${type}" == "text/plain" ]]
+ then
+ print_context_menu TEXT_OPTIONS[@]
+
+ elif [[ "${type}" == "text/html" ]]
+ then
+ print_context_menu HTML_OPTIONS[@]
+
+ elif [[ "${type}" == "image/jpeg" ]] || [[ "${type}" == "image/png" ]]
+ then
+ print_context_menu IMAGE_OPTIONS[@]
+
+ elif [[ "${type}" == "image/x-xcf" ]] || [[ "${type}" == "image/svg+xml" ]]
+ then
+ print_context_menu XCF_SVG_OPTIONS[@]
+
+ elif [ ! -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
+ then
+ coproc ( exec "${CUR_DIR}" & > /dev/null 2>&1 )
+
+ else
+ if [ ! -d "${CUR_DIR}" ] && [ ! -f "${CUR_DIR}" ]
+ then
+ QUERY="${CUR_DIR//*\/\//}"
+
+ echo "${QUERY}" >> "${HIST_FILE}"
+
+ find_query "${QUERY#!}"
+
+ web_search "!${QUERY}"
+ else
+ coproc ( ${OPENER} "${CUR_DIR}" & > /dev/null 2>&1 )
+ fi
+ fi
+ exit;
+}
+
+# If argument is not a directory/folder
+if [ ! -d "${CUR_DIR}" ]
+then
+ echo "${CUR_DIR}" > "${CURRENT_FILE}"
+ context_menu
+ exit;
+fi
+
+navigate_to
diff --git a/config/awesome/configuration/rofi/global/rofi.rasi b/config/awesome/configuration/rofi/global/rofi.rasi
new file mode 100644
index 000000000..591481965
--- /dev/null
+++ b/config/awesome/configuration/rofi/global/rofi.rasi
@@ -0,0 +1,162 @@
+configuration {
+ font: "Inter Regular 10";
+ sidebar-mode: true;
+ show-icons: true;
+ fullscreen: false;
+ threads: 0;
+ matching: "fuzzy";
+ scroll-method: 0;
+ /* monitor: "primary"; */
+ icon-theme: "Papirus";
+}
+
+* {
+ transparent: #00000000;
+ foreground: #F2F2F2EE;
+ background-selected: #F2F2F245;
+ background-active: #F2F2F230;
+ background-white: #F2F2F211;
+ background-black: #00000000;
+ urgent: #E91E6366;
+ urgent-selected: #E91E6377;
+}
+
+window {
+ transparency: "real";
+ background-color: @transparent;
+ text-color: @foreground;
+ location: west;
+ anchor: west;
+ x-offset: 0;
+ height: 100%;
+ width: 350px;
+ orientation: vertical;
+}
+
+prompt {
+ enabled: false;
+}
+
+button {
+ action: "ok";
+ str: " ";
+ font: "FantasqueSansMono Nerd Font 16";
+ expand: false;
+ text-color: @foreground;
+ background-color: @transparent;
+ vertical-align: 0.5;
+ horizontal-align: 0.5;
+}
+
+entry {
+ font: "Inter Regular 12";
+ background-color: @transparent;
+ text-color: @foreground;
+ expand: true;
+ vertical-align: 0.5;
+ horizontal-align: 0;
+ placeholder: "Global Search";
+ placeholder-color: @foreground;
+ blink: true;
+}
+
+entry-wrapper {
+ orientation: horizontal;
+ margin: 0 12px 0 12px;
+ spacing: 24px;
+ vertical-align: 0.5;
+ background-color: @transparent;
+ children: [ button, entry ];
+}
+
+inputbar {
+ padding: 14px;
+ margin: 10px 10px 14px 10px;
+ background-color: @background-white;
+ text-color: @foreground;
+ expand: false;
+ border-radius: 9px;
+ position: north;
+ children: [ entry-wrapper ];
+}
+
+listview {
+ background-color: @transparent;
+ spacing: 0;
+ cycle: true;
+ dynamic: true;
+ scrollbar: true;
+ lines :3;
+}
+
+mainbox {
+ width: 200px;
+ expand: true;
+ spacing: 12px;
+ padding: 5px;
+ background-color: @background-black;
+ children: [ inputbar, listview ];
+}
+
+scrollbar {
+ background-color: @background-white;
+ handle-width: 0;
+ margin: 0 0 5px 0;
+ border-radius: 9px;
+}
+
+element {
+ background-color: @transparent;
+ text-color: @foreground;
+ orientation: horizontal;
+ border: 0;
+ border-color: @background-white;
+ border-radius: 6px;
+ spacing: 24px;
+ margin: 0px 12px 0px 12px;
+ padding: 10px 24px 10px 24px;
+}
+
+element-icon {
+ background-color: @transparent;
+ size: 24px;
+ border: 0;
+ border-color: @transparent;
+}
+
+element-text {
+ background-color: @transparent;
+ text-color: white;
+ font: "Inter Regular 11";
+ expand: true;
+ horizontal-align: 0;
+ vertical-align: 0.5;
+}
+
+element normal.urgent,
+element alternate.urgent {
+ background-color: @urgent;
+ text-color: @foreground;
+ border-radius: 9px;
+}
+
+element normal.active,
+element alternate.active {
+ background-color: @background-active;
+ text-color: @foreground;
+}
+
+element selected {
+ background-color: @background-selected;
+ text-color: @foreground;
+}
+
+element selected.urgent {
+ background-color: @urgent-selected;
+ text-color: @foreground;
+}
+
+element selected.active {
+ background-color: @background-active;
+ color: @foreground-selected;
+}
diff --git a/config/awesome/floppy/configuration/rofi/global/web-search.py b/config/awesome/configuration/rofi/global/web-search.py
similarity index 100%
rename from config/awesome/floppy/configuration/rofi/global/web-search.py
rename to config/awesome/configuration/rofi/global/web-search.py
diff --git a/config/awesome/floppy/configuration/root/init.lua b/config/awesome/configuration/root/init.lua
similarity index 100%
rename from config/awesome/floppy/configuration/root/init.lua
rename to config/awesome/configuration/root/init.lua
diff --git a/config/awesome/configuration/tags/init.lua b/config/awesome/configuration/tags/init.lua
new file mode 100644
index 000000000..ef0f043e9
--- /dev/null
+++ b/config/awesome/configuration/tags/init.lua
@@ -0,0 +1,148 @@
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local icons = require("theme." .. THEME .. ".icons")
+local apps = require("configuration.apps")
+
+local tags = {
+ {
+ type = "terminal",
+ icon = icons.terminal,
+ default_app = apps.default.terminal,
+ gap = beautiful.useless_gap,
+ },
+ {
+ type = "internet",
+ icon = icons.web_browser,
+ default_app = apps.default.web_browser,
+ gap = beautiful.useless_gap,
+ },
+ {
+ type = "code",
+ icon = icons.text_editor,
+ default_app = apps.default.text_editor,
+ gap = beautiful.useless_gap,
+ },
+ {
+ type = "files",
+ icon = icons.file_manager,
+ default_app = apps.default.file_manager,
+ gap = beautiful.useless_gap,
+ layout = awful.layout.suit.tile,
+ },
+ {
+ type = "multimedia",
+ icon = icons.multimedia,
+ default_app = apps.default.multimedia,
+ gap = beautiful.useless_gap,
+ layout = awful.layout.suit.floating,
+ },
+ {
+ type = "games",
+ icon = icons.games,
+ default_app = apps.default.game,
+ gap = beautiful.useless_gap,
+ layout = awful.layout.suit.floating,
+ },
+ {
+ type = "graphics",
+ icon = icons.graphics,
+ default_app = apps.default.graphics,
+ gap = beautiful.useless_gap,
+ },
+ {
+ type = "sandbox",
+ icon = icons.sandbox,
+ default_app = apps.default.sandbox,
+ layout = awful.layout.suit.max,
+ gap = 0,
+ },
+ {
+ type = "any",
+ icon = icons.development,
+ default_app = apps.default.development,
+ gap = beautiful.useless_gap,
+ layout = awful.layout.suit.floating,
+ },
+ -- {
+ -- type = 'social',
+ -- icon = icons.social,
+ -- default_app = 'discord',
+ -- gap = beautiful.useless_gap
+ -- }
+}
+
+-- Set tags layout
+tag.connect_signal("request::default_layouts", function()
+ awful.layout.append_default_layouts({
+ awful.layout.suit.spiral.dwindle,
+ awful.layout.suit.tile,
+ awful.layout.suit.floating,
+ awful.layout.suit.max,
+ })
+end)
+
+-- Create tags for each screen
+screen.connect_signal("request::desktop_decoration", function(s)
+ for i, tag in pairs(tags) do
+ awful.tag.add(i, {
+ icon = tag.icon,
+ icon_only = true,
+ layout = tag.layout or awful.layout.suit.spiral.dwindle,
+ gap_single_client = true,
+ gap = tag.gap,
+ screen = s,
+ default_app = tag.default_app,
+ selected = i == 1,
+ })
+ end
+end)
+
+local update_gap_and_shape = function(t)
+ -- Get current tag layout
+ local current_layout = awful.tag.getproperty(t, "layout")
+ -- If the current layout is awful.layout.suit.max
+ if current_layout == awful.layout.suit.max then
+ -- Set clients gap to 0 and shape to rectangle if maximized
+ t.gap = 0
+ for _, c in ipairs(t:clients()) do
+ if not c.floating or not c.round_corners or c.maximized or c.fullscreen then
+ c.shape = beautiful.client_shape_rectangle
+ else
+ c.shape = beautiful.client_shape_rounded
+ end
+ end
+ else
+ t.gap = beautiful.useless_gap
+ for _, c in ipairs(t:clients()) do
+ if not c.round_corners or c.maximized or c.fullscreen then
+ c.shape = beautiful.client_shape_rectangle
+ else
+ c.shape = beautiful.client_shape_rounded
+ end
+ end
+ end
+end
+
+-- Change tag's client's shape and gap on change
+tag.connect_signal("property::layout", function(t)
+ update_gap_and_shape(t)
+end)
+
+-- Change tag's client's shape and gap on move to tag
+tag.connect_signal("tagged", function(t)
+ update_gap_and_shape(t)
+end)
+
+-- Focus on urgent clients
+awful.tag.attached_connect_signal(s, "property::selected", function()
+ local urgent_clients = function(c)
+ return awful.rules.match(c, { urgent = true })
+ end
+ for c in awful.client.iterate(urgent_clients) do
+ if c.first_tag == mouse.screen.selected_tag then
+ c:emit_signal("request::activate")
+ c:raise()
+ end
+ end
+end)
diff --git a/config/awesome/floppy/configuration/user-profile/default.svg b/config/awesome/configuration/user-profile/default.svg
similarity index 100%
rename from config/awesome/floppy/configuration/user-profile/default.svg
rename to config/awesome/configuration/user-profile/default.svg
diff --git a/config/awesome/configuration/user-profile/panos.png b/config/awesome/configuration/user-profile/panos.png
new file mode 100644
index 000000000..a9ce6a65e
Binary files /dev/null and b/config/awesome/configuration/user-profile/panos.png differ
diff --git a/config/awesome/directories.lua b/config/awesome/directories.lua
new file mode 100644
index 000000000..a3ba99514
--- /dev/null
+++ b/config/awesome/directories.lua
@@ -0,0 +1,16 @@
+local filesystem = require("gears.filesystem")
+local Path = require("module.path")
+local gears = require("gears")
+
+local cfg, _ = filesystem.get_configuration_dir():gsub("/$", "")
+local c = Path:new(cfg)
+-- print("PATH", c)
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_dir = config_dir .. "widget/"
+
+--- @type {["config_dir"] : string }
+local dirs = {
+ config_dir = config_dir,
+ widget_dir = widget_dir,
+}
+return dirs
diff --git a/config/awesome/floppy/configuration/apps.lua b/config/awesome/floppy/configuration/apps.lua
deleted file mode 100644
index aa468a75e..000000000
--- a/config/awesome/floppy/configuration/apps.lua
+++ /dev/null
@@ -1,86 +0,0 @@
-local filesystem = require('gears.filesystem')
-local config_dir = filesystem.get_configuration_dir()
-local utils_dir = config_dir .. 'utilities/'
-
-return {
- -- The default applications that we will use in keybindings and widgets
- default = {
- -- Default terminal emulator
- terminal = 'kitty',
- -- Default web browser
- web_browser = 'firefox',
- -- Default text editor
- text_editor = 'subl3',
- -- Default file manager
- file_manager = 'dolphin',
- -- Default media player
- multimedia = 'vlc',
- -- Default game, can be a launcher like steam
- game = 'supertuxkart',
- -- Default graphics editor
- graphics = 'gimp-2.10',
- -- Default sandbox
- sandbox = 'virtualbox',
- -- Default IDE
- development = '',
- -- Default network manager
- network_manager = 'kitty iwctl',
- -- Default bluetooth manager
- bluetooth_manager = 'blueman-manager',
- -- Default power manager
- power_manager = 'xfce4-power-manager',
- -- Default GUI package manager
- package_manager = 'pamac-manager',
- -- Default locker
- lock = 'awesome-client "awesome.emit_signal(\'module::lockscreen_show\')"',
- -- Default quake terminal
- quake = 'kitty --name QuakeTerminal',
- -- Default rofi global menu
- rofi_global = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show "Global Search" -modi "Global Search":' .. config_dir ..
- '/configuration/rofi/global/rofi-spotlight.sh' ..
- ' -theme ' .. config_dir ..
- '/configuration/rofi/global/rofi.rasi',
- -- Default app menu
- rofi_appmenu = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show drun -theme ' .. config_dir ..
- '/configuration/rofi/appmenu/rofi.rasi'
-
- -- You can add more default applications here
- },
-
- -- List of apps to start once on start-up
- run_on_start_up = {
- -- Compositor
- 'picom -b --experimental-backends --dbus --config ' ..
- config_dir .. '/configuration/picom.conf',
- -- Blueman applet
- 'blueman-applet',
- -- Music server
- 'mpd',
- -- Polkit and keyring
- '/usr/bin/lxqt-policykit-agent &' ..
- ' eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg)',
- -- Load X colors
- 'xrdb $HOME/.Xresources',
- -- Audio equalizer
- 'pulseeffects --gapplication-service',
- -- Lockscreen timer
- [[
- xidlehook --not-when-fullscreen --not-when-audio --timer 600 \
- "awesome-client 'awesome.emit_signal(\"module::lockscreen_show\")'" ""
- ]]
-
- -- You can add more start-up applications here
- },
-
- -- List of binaries/shell scripts that will execute for a certain task
- utils = {
- -- Fullscreen screenshot
- full_screenshot = utils_dir .. 'snap full',
- -- Area screenshot
- area_screenshot = utils_dir .. 'snap area',
- -- Update profile picture
- update_profile = utils_dir .. 'profile-image'
- }
-}
diff --git a/config/awesome/floppy/configuration/config.lua b/config/awesome/floppy/configuration/config.lua
deleted file mode 100644
index 991beee66..000000000
--- a/config/awesome/floppy/configuration/config.lua
+++ /dev/null
@@ -1,103 +0,0 @@
-return {
- widget = {
- email = {
- -- Email address
- address = '',
- -- App password
- app_password = '',
- -- Imap server
- imap_server = 'imap.gmail.com',
- -- Port
- port = '993'
- },
-
- weather = {
- -- API Key
- key = '',
- -- City ID
- city_id = '',
- -- Units
- units = 'metric',
- -- Update in N seconds
- update_interval = 1200
- },
-
- network = {
- -- Wired interface
- wired_interface = 'enp0s0',
- -- Wireless interface
- wireless_interface = 'wlan0'
- },
-
- clock = {
- -- Clock widget format
- military_mode = false
- },
-
- screen_recorder = {
- -- Default record dimension
- resolution = '1366x768',
- -- X,Y coordinate
- offset = '0,0',
- -- Enable audio by default
- audio = false,
- -- Recordings directory
- save_directory = '$(xdg-user-dir VIDEOS)/Recordings/',
- -- Mic level
- mic_level = '20',
- -- FPS
- fps = '30'
- }
- },
-
- module = {
- auto_start = {
- -- Will create notification if true
- debug_mode = false
- },
-
- dynamic_wallpaper = {
- -- Will look for wallpapers here
- wall_dir = 'theme/wallpapers/',
- -- Image formats
- valid_picture_formats = {'jpg', 'png', 'jpeg'},
- -- Leave this table empty for full auto scheduling
- wallpaper_schedule = {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- -- Example of just using auto-scheduling with keywords
- --[[
- 'midnight',
- 'morning',
- 'noon',
- 'afternoon',
- 'evening',
- 'night'
- --]]
- },
- -- Stretch background image across all screens(monitor)
- stretch = false
- },
-
- lockscreen = {
- -- Clock format
- military_clock = true,
- -- Default password if there's no PAM integration
- fallback_password = 'toor',
- -- Capture intruder using webcam
- capture_intruder = true,
- -- Intruder image save location (Will create directory if it doesn't exist)
- face_capture_dir = '$(xdg-user-dir PICTURES)/Intruders/',
- -- Background directory - Defaults to 'awesome/config/theme/wallpapers/' if null
- bg_dir = nil,
- -- Will look for this image file under 'bg_dir'
- bg_image = 'locksreen-bg.jpg',
- -- Blur lockscreen background
- blur_background = false,
- -- Blurred/filtered background image path (No reason to change this)
- tmp_wall_dir = '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
- }
- }
-}
diff --git a/config/awesome/floppy/configuration/keys/global.lua b/config/awesome/floppy/configuration/keys/global.lua
deleted file mode 100644
index c26b7a8c0..000000000
--- a/config/awesome/floppy/configuration/keys/global.lua
+++ /dev/null
@@ -1,605 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-
-require('awful.autofocus')
-
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-local apps = require('configuration.apps')
-
--- Key bindings
-local global_keys = awful.util.table.join(
-
- -- Hotkeys
- awful.key(
- {modkey},
- 'F1',
- hotkeys_popup.show_help,
- {description = 'show help', group = 'awesome'}
- ),
- awful.key({modkey, 'Control'},
- 'r',
- awesome.restart,
- {description = 'reload awesome', group = 'awesome'}
- ),
-
- awful.key({modkey, 'Control'},
- 'q',
- awesome.quit,
- {description = 'quit awesome', group = 'awesome'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'l',
- function()
- awful.tag.incmwfact(0.05)
- end,
- {description = 'increase master width factor', group = 'layout'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'h',
- function()
- awful.tag.incmwfact(-0.05)
- end,
- {description = 'decrease master width factor', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'h',
- function()
- awful.tag.incnmaster(1, nil, true)
- end,
- {description = 'increase the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'l',
- function()
- awful.tag.incnmaster(-1, nil, true)
- end,
- {description = 'decrease the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'h',
- function()
- awful.tag.incncol(1, nil, true)
- end,
- {description = 'increase the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'l',
- function()
- awful.tag.incncol(-1, nil, true)
- end,
- {description = 'decrease the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'space',
- function()
- awful.layout.inc(1)
- end,
- {description = 'select next layout', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'space',
- function()
- awful.layout.inc(-1)
- end,
- {description = 'select previous layout', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'o',
- function()
- awful.tag.incgap(1)
- end,
- {description = 'increase gap', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'o',
- function()
- awful.tag.incgap(-1)
- end,
- {description = 'decrease gap', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'w',
- awful.tag.viewprev,
- {description = 'view previous tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 's',
- awful.tag.viewnext,
- {description = 'view next tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 'Escape',
- awful.tag.history.restore,
- {description = 'alternate between current and previous tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 'w',
- function ()
- -- tag_view_nonempty(-1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(-1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view previous non-empty tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 's',
- function ()
- -- tag_view_nonempty(1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view next non-empty tag', group = 'tag'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F1',
- function()
- awful.screen.focus_relative(-1)
- end,
- { description = 'focus the previous screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F2',
- function()
- awful.screen.focus_relative(1)
- end,
- { description = 'focus the next screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'n',
- function()
- local c = awful.client.restore()
- -- Focus restored client
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end,
- {description = 'restore minimized', group = 'screen'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessUp',
- function()
- awful.spawn('light -A 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'increase brightness by 10%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessDown',
- function()
- awful.spawn('light -U 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'decrease brightness by 10%', group = 'hotkeys'}
- ),
- -- ALSA volume control
- awful.key(
- {},
- 'XF86AudioRaiseVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%+', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'increase volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioLowerVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%-', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'decrease volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioMute',
- function()
- awful.spawn('amixer -D pulse set Master 1+ toggle', false)
- end,
- {description = 'toggle mute', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioNext',
- function()
- awful.spawn('mpc next', false)
- end,
- {description = 'next music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPrev',
- function()
- awful.spawn('mpc prev', false)
- end,
- {description = 'previous music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPlay',
- function()
- awful.spawn('mpc toggle', false)
- end,
- {description = 'play/pause music', group = 'hotkeys'}
-
- ),
- awful.key(
- {},
- 'XF86AudioMicMute',
- function()
- awful.spawn('amixer set Capture toggle', false)
- end,
- {description = 'mute microphone', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerDown',
- function()
- --
- end,
- {description = 'shutdown skynet', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerOff',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86Display',
- function()
- awful.spawn.single_instance('arandr', false)
- end,
- {description = 'arandr', group = 'hotkeys'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'q',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {modkey},
- '`',
- function()
- awesome.emit_signal('module::quake_terminal:toggle')
- end,
- {description = 'dropdown application', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'm',
- function()
- if awful.screen.focused().musicpop then
- awesome.emit_signal('widget::music', 'keyboard')
- end
- end,
- {description = 'toggle music widget', group = 'launcher'}
- ),
- awful.key(
- { },
- 'Print',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot,function() end)
- end,
- {description = 'fullscreen screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 's',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot,function() end)
- end,
- {description = 'area/selected screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'x',
- function()
- awesome.emit_signal('widget::blur:toggle')
- end,
- {description = 'toggle blur effects', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- ']',
- function()
- awesome.emit_signal('widget::blur:increase')
- end,
- {description = 'increase blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- '[',
- function()
- awesome.emit_signal('widget::blur:decrease')
- end,
- {description = 'decrease blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 't',
- function()
- awesome.emit_signal('widget::blue_light:toggle')
- end,
- {description = 'toggle redshift filter', group = 'Utility'}
- ),
- awful.key(
- { 'Control' },
- 'Escape',
- function ()
- if screen.primary.systray then
- if not screen.primary.tray_toggler then
- local systray = screen.primary.systray
- systray.visible = not systray.visible
- else
- awesome.emit_signal('widget::systray:toggle')
- end
- end
- end,
- {description = 'toggle systray visibility', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'l',
- function()
- awful.spawn(apps.default.lock, false)
- end,
- {description = 'lock the screen', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'Return',
- function()
- awful.spawn(apps.default.terminal)
- end,
- {description = 'open default terminal', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'e',
- function()
- awful.spawn(apps.default.file_manager)
- end,
- {description = 'open default file manager', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'f',
- function()
- awful.spawn(apps.default.web_browser)
- end,
- {description = 'open default web browser', group = 'launcher'}
- ),
- awful.key(
- {'Control', 'Shift'},
- 'Escape',
- function()
- awful.spawn(apps.default.terminal .. ' ' .. 'htop')
- end,
- {description = 'open system monitor', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'e',
- function()
- local focused = awful.screen.focused()
-
- if focused.left_panel then
- focused.left_panel:hide_dashboard()
- focused.left_panel.opened = false
- end
- if focused.right_panel then
- focused.right_panel:hide_dashboard()
- focused.right_panel.opened = false
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {},
- 'XF86Launch1',
- function()
- local focused = awful.screen.focused()
-
- if focused.left_panel then
- focused.left_panel:hide_dashboard()
- focused.left_panel.opened = false
- end
- if focused.right_panel then
- focused.right_panel:hide_dashboard()
- focused.right_panel.opened = false
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'r',
- function()
- local focused = awful.screen.focused()
-
- if focused.right_panel and focused.right_panel.visible then
- focused.right_panel.visible = false
- end
- screen.primary.left_panel:toggle()
- end,
- {description = 'open sidebar', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'r',
- function()
- local focused = awful.screen.focused()
-
- if focused.right_panel and focused.right_panel.visible then
- focused.right_panel.visible = false
- end
- screen.primary.left_panel:toggle(true)
- end,
- {description = 'open sidebar and global search', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'F2',
- function()
- local focused = awful.screen.focused()
-
- if focused.left_panel and focused.left_panel.opened then
- focused.left_panel:toggle()
- end
-
- if focused.right_panel then
- if _G.right_panel_mode == 'today_mode' or not focused.right_panel.visible then
- focused.right_panel:toggle()
- switch_rdb_pane('today_mode')
- else
- switch_rdb_pane('today_mode')
- end
-
- _G.right_panel_mode = 'today_mode'
- end
- end,
- {description = 'open today pane', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'F3',
- function()
- local focused = awful.screen.focused()
-
- if focused.left_panel and focused.left_panel.opened then
- focused.left_panel:toggle()
- end
-
- if focused.right_panel then
- if _G.right_panel_mode == 'notif_mode' or not focused.right_panel.visible then
- focused.right_panel:toggle()
- switch_rdb_pane('notif_mode')
- else
- switch_rdb_pane('notif_mode')
- end
-
- _G.right_panel_mode = 'notif_mode'
- end
- end,
- {description = 'open notification center', group = 'launcher'}
- )
-)
-
--- Bind all key numbers to tags.
--- Be careful: we use keycodes to make it work on any keyboard layout.
--- This should map on the top row of your keyboard, usually 1 to 9.
-for i = 1, 9 do
- -- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
- local descr_view, descr_toggle, descr_move, descr_toggle_focus
- if i == 1 or i == 9 then
- descr_view = {description = 'view tag #', group = 'tag'}
- descr_toggle = {description = 'toggle tag #', group = 'tag'}
- descr_move = {description = 'move focused client to tag #', group = 'tag'}
- descr_toggle_focus = {description = 'toggle focused client on tag #', group = 'tag'}
- end
- global_keys =
- awful.util.table.join(
- global_keys,
- -- View tag only.
- awful.key(
- {modkey},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- tag:view_only()
- end
- end,
- descr_view
- ),
- -- Toggle tag display.
- awful.key(
- {modkey, 'Control'},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end,
- descr_toggle
- ),
- -- Move client to tag.
- awful.key(
- {modkey, 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:move_to_tag(tag)
- end
- end
- end,
- descr_move
- ),
- -- Toggle tag on focused client.
- awful.key(
- {modkey, 'Control', 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:toggle_tag(tag)
- end
- end
- end,
- descr_toggle_focus
- )
- )
-end
-
-return global_keys
diff --git a/config/awesome/floppy/configuration/rofi/appmenu/rofi.rasi b/config/awesome/floppy/configuration/rofi/appmenu/rofi.rasi
deleted file mode 100644
index 1ab875f13..000000000
--- a/config/awesome/floppy/configuration/rofi/appmenu/rofi.rasi
+++ /dev/null
@@ -1,149 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: true;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- text-color: @foreground;
- location: northwest;
- anchor: northwest;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 6px;
- margin: 0px calc((100% - 640px) / 2) 0px calc((100% - 640px) / 2);
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 6;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 70px 15% 0 15%;
- /*padding: 70px 135px 0 135px;*/
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: vertical;
- border-radius: 12px;
- padding: 25px 0 25px 0;
-}
-
-element-icon {
- size: 72px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0.5;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/floppy/configuration/rofi/global/rofi-spotlight.sh b/config/awesome/floppy/configuration/rofi/global/rofi-spotlight.sh
deleted file mode 100755
index d5c4a23b5..000000000
--- a/config/awesome/floppy/configuration/rofi/global/rofi-spotlight.sh
+++ /dev/null
@@ -1,692 +0,0 @@
-#!/usr/bin/env bash
-
-TMP_DIR="/tmp/rofi/${USER}/"
-
-PREV_LOC_FILE="${TMP_DIR}rofi_fb_prevloc"
-CURRENT_FILE="${TMP_DIR}rofi_fb_current_file"
-
-MY_PATH="$(realpath "$0" | xargs dirname)"
-HIST_FILE="${MY_PATH}/history.txt"
-
-OPENER=xdg-open
-TERM_EMU=kitty
-TEXT_EDITOR=$EDITOR
-FILE_MANAGER=xdg-open
-BLUETOOTH_SEND=blueman-sendto
-
-CUR_DIR=$PWD
-NEXT_DIR=""
-FD_INSTALLED=$(command -v fd)
-
-SHOW_HIDDEN=false
-
-# Setup menu options
-declare -a OPEN_FILE_LOCATION=(
- "Open file location in ${TERM_EMU}"
- "Open file location in ${FILE_MANAGER}"
-)
-declare -a RUN_COMMANDS=(
- "Run"
- "Execute in ${TERM_EMU}"
-)
-declare -a STANDARD_CONTROLS=(
- "Move to trash"
- "Delete"
- "Back"
-)
-declare -a SHELL_NO_X_OPTIONS=(
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a SHELL_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${SHELL_NO_X_OPTIONS[@]}"
-)
-declare -a BIN_NO_X_OPTIONS=(
- "${OPEN_FILE_LOCATION[@]}"
- "Back"
-)
-declare -a BIN_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${BIN_NO_X_OPTIONS[@]}"
-)
-declare -a TEXT_OPTIONS=("${SHELL_NO_X_OPTIONS[@]}")
-declare -a HTML_OPTIONS=(
- "Open"
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a XCF_SVG_OPTIONS=(
- "Open"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a IMAGE_OPTIONS=(
- "Open"
- "Send via Bluetooth"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-
-declare -a ALL_OPTIONS=()
-
-# Combine all context menu
-COMBINED_OPTIONS=(
- "${SHELL_OPTIONS[@]}"
- "${IMAGE_OPTIONS[@]}"
-)
-
-# Remove duplicates
-ALL_OPTIONS=("$(printf '%s\n' "${COMBINED_OPTIONS[@]}" | sort -u)")
-
-# Create tmp dir for rofi
-[ ! -d "${TMP_DIR}" ] && mkdir -p "${TMP_DIR}";
-
-# Create hist file if it doesn't exist
-[ ! -f "${HIST_FILE}" ] && touch "${HIST_FILE}"
-
-# Help message
-if [ -n "$*" ] && [[ "$*" = ":help" ]]
-then
- echo -en "Rofi Spotlight
-A Rofi with file and web searching functionality
-
-Commands:
-:help to print this help message
-:h or :hidden to show hidden files/dirs
-:sh or :show_hist to show search history
-:ch or :clear_hist to clear search history
-:xdg to jump to an xdg directory
-Examples:
- :xdg DOCUMENTS
- :xdg DOWNLOADS
-Also supports incomplete path:
-Examples:
- :xdg doc
- :xdg down
-For more info about XDG dirs, see:
-\`man xdg-user-dir\`
-
-File search syntaxes:
-! to search for a file and web suggestions
-? to search parent directories
-Examples:
- !half-life 3
- ?portal 3
-
-Web search syntaxes:
-! to gets search suggestions
-:web/:w to also to gets search suggestions
-:webbro/:wb to search directly from your browser
-Examples:
- !how to install archlinux
- :web how to install gentoo
- :w how to make a nuclear fission
- :webbro how to install wine in windowsxp
-Back\0icon\x1fdraw-arrow-back\n"
-
- exit
-fi
-
-# Return the icon string
-function icon_file_type(){
- icon_name=""
- mime_type=$(file --mime-type -b "${1}")
-
- case "${mime_type}" in
- "inode/directory")
- case "${1}" in
- "Desktop/" )
- icon_name='folder-blue-desktop'
- ;;
- "Documents/" )
- icon_name='folder-blue-documents'
- ;;
- "Downloads/" )
- icon_name='folder-blue-downloads'
- ;;
- "Music/" )
- icon_name='folder-blue-music'
- ;;
- "Pictures/" )
- icon_name='folder-blue-pictures'
- ;;
- "Public/" )
- icon_name='folder-blue-public'
- ;;
- "Templates/" )
- icon_name='folder-blue-templates'
- ;;
- "Videos/" )
- icon_name='folder-blue-videos'
- ;;
- "root/" )
- icon_name='folder-root'
- ;;
- "home/" | "${USER}/")
- icon_name='folder-home'
- ;;
- *"$" )
- icon_name='folder-blue'
- ;;
- *)
- icon_name='folder-blue'
- ;;
- esac
- ;;
- "inode/symlink" )
- icon_name='inode-symlink'
- ;;
- "audio/flac" | "audio/mpeg" )
- icon_name='music'
- ;;
- "video/mp4" )
- icon_name='video-mp4'
- ;;
- "video/x-matroska" )
- icon_name=video-x-matroska
- ;;
- "image/x-xcf" )
- # notify-send '123'
- icon_name='image-x-xcf'
- ;;
- "image/jpeg" | "image/png" | "image/svg+xml")
- icon_name="${CUR_DIR}/${1}"
- ;;
- "image/gif" )
- icon_name='gif'
- ;;
- "image/vnd.adobe.photoshop" )
- icon_name='image-vnd.adobe.photoshop'
- ;;
- "image/webp" )
- icon_name='gif'
- ;;
- "application/x-pie-executable" )
- icon_name='binary'
- ;;
- "application/pdf" )
- icon_name='pdf'
- ;;
- "application/zip" )
- icon_name='application-zip'
- ;;
- "application/x-xz" )
- icon_name='application-x-xz-compressed-tar'
- ;;
- "application/x-7z-compressed" )
- icon_name='application-x-7zip'
- ;;
- "application/x-rar" )
- icon_name='application-x-rar'
- ;;
- "application/octet-stream" | "application/x-iso9660-image" )
- icon_name='application-x-iso'
- ;;
- "application/x-dosexec" )
- icon_name='application-x-ms-dos-executable'
- ;;
- "text/plain" )
- icon_name='application-text'
- ;;
- "text/x-shellscript" )
- icon_name='application-x-shellscript'
- ;;
- "text/html" )
- icon_name='text-html'
- ;;
- "font/sfnt" | "application/vnd.ms-opentype" )
- icon_name='application-x-font-ttf'
- ;;
- * )
- case "${1}" in
- *."docx" | *".doc" )
- icon_name='application-msword'
- ;;
- *."apk" )
- icon_name='android-package-archive'
- ;;
- * )
- icon_name='unknown'
- ;;
- esac
- ;;
- esac
-
- echo -en "$1\0icon\x1f$icon_name\n"
-}
-
-export -f icon_file_type
-
-# Pass the argument to python script
-function web_search() {
- # Pass the search query to web-search script
- "${MY_PATH}/web-search.py" "${1}"
- exit;
-}
-
-# Handles the web search method
-if [ ! -z "$@" ] && ([[ "$@" == ":webbro"* ]] || [[ "$@" == ":wb"* ]])
-then
- remove=''
- [[ "$*" = ":webbro"* ]] && remove=":webbro" || remove=":wb"
-
- # Search directly from your web browser
- web_search "$(printf '%s\n' "${1//$remove/}")"
- exit;
-
-elif [ ! -z "$@" ] && ([[ "$@" == ":web"* ]] || [[ "$@" == ":w"* ]])
-then
- remove=''
- [[ "$*" = ":web"* ]] && remove=":web" || remove=":w"
-
- # Get search suggestions
- web_search "!$(printf '%s\n' "${1//$remove/}")"
- exit;
-fi
-
-function find_query() {
- QUERY=${1}
- if [[ ! "${QUERY}" =~ ( |\') ]]
- then
- if [ -z "$FD_INSTALLED" ];
- then
- find "${HOME}" -iname *"${QUERY}"* | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- else
- fd -H ${QUERY} ${HOME} | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- fi
- fi
-}
-
-# File and calls to the web search
-if [ ! -z "$@" ] && ([[ "$@" == ?(\~)/* ]] || [[ "$@" == \?* ]] || [[ "$@" == \!* ]])
-then
- QUERY=$@
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- if [[ "$@" == ?(\~)/* ]]
- then
- [[ "$*" = \~* ]] && QUERY="${QUERY//"~"/"$HOME"}"
-
- coproc ${OPENER} "${QUERY}" > /dev/null 2>&1
- exec 1>&-
- exit
-
- elif [[ "$@" == \?* ]]
- then
- find_query ${QUERY#\?}
-
- else
- # Find the file
- find_query ${QUERY#!}
-
- # Web search
- web_search "! ${QUERY#!}"
- fi
- exit;
-fi
-
-# Create notification if there's an error
-function create_notification() {
- case "${1}" in
- "denied" )
- notify-send -a "Global Search" "Permission denied!" \
- 'You have no permission to access '"${CUR_DIR}!"
- ;;
- "deleted" )
- notify-send -a "Global Search" "Success!" \
- 'File deleted!'
- ;;
- "trashed" )
- notify-send -a "Global Search" "Success!" \
- 'The file has been moved to trash!'
- ;;
- "cleared" )
- notify-send -a "Global Search" "Success!" \
- 'Search history has been successfully cleared!'
- ;;
- * )
- notify-send -a "Global Search" "Somethings wrong I can feel it!" \
- 'This incident will be reported!'
- ;;
- esac
-}
-
-# Show the files in the current directory
-function navigate_to() {
- # process current dir.
- if [ -n "${CUR_DIR}" ]
- then
- CUR_DIR=$(readlink -e "${CUR_DIR}")
- if [ ! -d "${CUR_DIR}" ] || [ ! -r "${CUR_DIR}" ]
- then
- create_notification "denied"
- CUR_DIR=$(realpath ${CUR_DIR} | xargs dirname)
- echo "${CUR_DIR}" > "${PREV_LOC_FILE}"
- else
- echo "${CUR_DIR}/" > "${PREV_LOC_FILE}"
- fi
- pushd "${CUR_DIR}" >/dev/null || exit
- fi
-
- printf "..\0icon\x1fup\n"
-
- if [[ -z "$FD_INSTALLED" ]]
- then
- #Group directories
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- for i in .*/
- do
- [[ -d "${i}" ]] && ([[ "${i}" != "./" ]] && [[ "${i}" != "../"* ]]) && icon_file_type "${i}"
- done
- fi
- for i in */
- do
- [[ -d "${i}" ]] && icon_file_type "${i}"
- done
- #Group files
- if [[ ${SHOW_HIDDEN} = true ]]
- then
- for i in .*
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- fi
- for i in *
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- else
- THREADS=$(getconf _NPROCESSORS_ONLN)
- export CUR_DIR
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- fd -Ht d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -Ht f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- else
- fd -t d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -t f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- fi
- fi
-}
-
-# Set XDG dir
-function return_xdg_dir() {
- target_dir=${1^^}
-
- if [[ "HOME" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir)
-
- elif [[ "DESKTOP" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DESKTOP)
-
- elif [[ "DOCUMENTS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOCUMENTS)
-
- elif [[ "DOWNLOADS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOWNLOAD)
-
- elif [[ "MUSIC" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir MUSIC)
-
- elif [[ "PICTURES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PICTURES)
-
- elif [[ "PUBLICSHARE" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PUBLICSHARE)
-
- elif [[ "TEMPLATES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir TEMPLATES)
-
- elif [[ "VIDEOS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir VIDEOS)
-
- elif [[ "ROOT" == *"${target_dir}"* ]]
- then
- CUR_DIR="/"
-
- else
- CUR_DIR="${HOME}"
- fi
- navigate_to
- exit;
-}
-
-# Show and Clear History
-if [ ! -z "$@" ] && ([[ "$@" == ":sh" ]] || [[ "$@" == ":show_hist" ]])
-then
- hist=$(tac "${HIST_FILE}")
-
- echo -en "Back\0icon\x1fdraw-arrow-back\n"
- [ -z "${hist}" ] && echo -en "No History Yet\0icon\x1ftext-plain\n"
-
- while IFS= read -r line;
- do
- echo -en "${line}\0icon\x1f${MY_PATH}/icons/history.svg\n";
- done <<< "${hist}"
-
- exit;
-elif [ ! -z "$@" ] && ([[ "$@" == ":ch" ]] || [[ "$@" == ":clear_hist" ]])
-then
- :> "${HIST_FILE}"
- create_notification "cleared"
-
- CUR_DIR="${HOME}"
- navigate_to
- exit;
-fi
-
-# Accepts XDG command
-if [[ ! -z "$@" ]] && [[ "$@" == ":xdg"* ]]
-then
- NEXT_DIR=${*//":xdg "/}
-
- [[ -n "$NEXT_DIR" ]] && return_xdg_dir "${NEXT_DIR}" || return_xdg_dir "${HOME}"
-fi
-
-# Read last location, otherwise we default to PWD.
-[ -f "${PREV_LOC_FILE}" ] && CUR_DIR=$(< "${PREV_LOC_FILE}")
-
-if [[ ! -z "$@" ]] && ([[ "$@" == ":h" ]] || [[ "$@" == ":hidden" ]])
-then
- SHOW_HIDDEN=true
- navigate_to
- exit;
-fi
-
-# Handle argument.
-[ -n "$*" ] && CUR_DIR="${CUR_DIR}/$*"
-
-# Context Menu
-if [ -n "$*" ] && [[ "${ALL_OPTIONS[*]} " = *"$*"* ]]
-then
- case "${1}" in
- "Run" )
- coproc ( eval "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Execute in ${TERM_EMU}" )
- coproc ( eval "${TERM_EMU} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open" )
- coproc ( eval "${OPENER} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${TERM_EMU}" )
- file_path="$(< ${CURRENT_FILE})"
- coproc ( ${TERM_EMU} bash -c "cd ${file_path%/*} ; ${SHELL}" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${FILE_MANAGER}" )
- file_path="$(< "${CURRENT_FILE}")"
- coproc ( eval "${FILE_MANAGER} "${file_path%/*}"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Edit" )
- coproc ( eval "${TERM_EMU} ${TEXT_EDITOR} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Move to trash" )
- coproc( gio trash "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- create_notification "trashed"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Delete" )
- shred "$(< ${CURRENT_FILE})"
- rm "$(< ${CURRENT_FILE})"
- create_notification "deleted"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Send via Bluetooth" )
- rfkill unblock bluetooth && bluetoothctl power on
- sleep 1
- blueman-sendto "$(< ${CURRENT_FILE})" & > /dev/null 2>&1
- kill -9 $(pgrep rofi)
- ;;
- "Back" )
- CUR_DIR="$(< ${PREV_LOC_FILE})"
- navigate_to
- ;;
- esac
- exit;
-fi
-
-function context_menu_icons() {
-
- if [[ "${1}" == "Run" ]]
- then
- echo '\0icon\x1fsystem-run\n'
-
- elif [[ "${1}" == "Execute in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open" ]]
- then
- echo "\0icon\x1futilities-x-terminal\n"
-
- elif [[ "${1}" == "Open file location in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open file location in ${FILE_MANAGER}" ]]
- then
- echo "\0icon\x1fblue-folder-open\n"
-
- elif [[ "${1}" == "Edit" ]]
- then
- echo "\0icon\x1faccessories-text-editor\n"
-
- elif [[ "${1}" == "Move to trash" ]]
- then
- echo "\0icon\x1fapplication-x-trash\n"
-
- elif [[ "${1}" == "Delete" ]]
- then
- echo "\0icon\x1findicator-trashindicator\n"
-
- elif [[ "${1}" == "Send via Bluetooth" ]]
- then
- echo "\0icon\x1fbluetooth\n"
-
- elif [[ "${1}" == "Back" ]]
- then
- echo "\0icon\x1fback\n"
- fi
-}
-
-function print_context_menu() {
- declare -a arg_arr=("${!1}")
-
- for menu in "${arg_arr[@]}"
- do
- printf "$menu$(context_menu_icons "${menu}")\n"
- done
-}
-
-function context_menu() {
-
- type="$(file --mime-type -b "${CUR_DIR}")"
-
- if [ -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- if [ -x "${CUR_DIR}" ];
- then
- print_context_menu SHELL_OPTIONS[@]
- else
- print_context_menu SHELL_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "application/x-executable" ]] || [[ "${type}" == "application/x-pie-executable" ]]
- then
- if [ -x "${CUR_DIR}" ]
- then
- print_context_menu BIN_OPTIONS[@]
- else
- print_context_menu BIN_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "text/plain" ]]
- then
- print_context_menu TEXT_OPTIONS[@]
-
- elif [[ "${type}" == "text/html" ]]
- then
- print_context_menu HTML_OPTIONS[@]
-
- elif [[ "${type}" == "image/jpeg" ]] || [[ "${type}" == "image/png" ]]
- then
- print_context_menu IMAGE_OPTIONS[@]
-
- elif [[ "${type}" == "image/x-xcf" ]] || [[ "${type}" == "image/svg+xml" ]]
- then
- print_context_menu XCF_SVG_OPTIONS[@]
-
- elif [ ! -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- coproc ( exec "${CUR_DIR}" & > /dev/null 2>&1 )
-
- else
- if [ ! -d "${CUR_DIR}" ] && [ ! -f "${CUR_DIR}" ]
- then
- QUERY="${CUR_DIR//*\/\//}"
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- find_query "${QUERY#!}"
-
- web_search "!${QUERY}"
- else
- coproc ( ${OPENER} "${CUR_DIR}" & > /dev/null 2>&1 )
- fi
- fi
- exit;
-}
-
-# If argument is not a directory/folder
-if [ ! -d "${CUR_DIR}" ]
-then
- echo "${CUR_DIR}" > "${CURRENT_FILE}"
- context_menu
- exit;
-fi
-
-navigate_to
diff --git a/config/awesome/floppy/configuration/rofi/global/rofi.rasi b/config/awesome/floppy/configuration/rofi/global/rofi.rasi
deleted file mode 100644
index d14ecd270..000000000
--- a/config/awesome/floppy/configuration/rofi/global/rofi.rasi
+++ /dev/null
@@ -1,157 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- sidebar-mode: true;
- show-icons: true;
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- monitor: "primary";
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000000;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- text-color: @foreground;
- location: west;
- anchor: west;
- x-offset: 0;
- height: 100%;
- width: 350px;
- orientation: vertical;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 16";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 12";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0;
- placeholder: "Global Search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-entry-wrapper {
- orientation: horizontal;
- margin: 0 12px 0 12px;
- spacing: 24px;
- vertical-align: 0.5;
- background-color: @transparent;
- children: [ button, entry ];
-}
-
-inputbar {
- padding: 14px;
- margin: 10px 10px 14px 10px;
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 9px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- spacing: 0;
- cycle: true;
- dynamic: true;
- scrollbar: true;
-}
-
-mainbox {
- width: 200px;
- expand: true;
- spacing: 12px;
- padding: 5px;
- background-color: @background-black;
- children: [ inputbar, listview ];
-}
-
-scrollbar {
- background-color: @background-white;
- handle-width: 0;
- margin: 0 0 5px 0;
- border-radius: 9px;
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: horizontal;
- border: 0;
- border-color: @background-white;
- border-radius: 6px;
- spacing: 24px;
- margin: 0px 12px 0px 12px;
- padding: 10px 24px 10px 24px;
-}
-
-element-icon {
- size: 24px;
- border: 0;
- border-color: @transparent;
-}
-
-element-text {
- font: "Inter Regular 11";
- expand: true;
- horizontal-align: 0;
- vertical-align: 0.5;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/floppy/configuration/tags/init.lua b/config/awesome/floppy/configuration/tags/init.lua
deleted file mode 100644
index a637fd45c..000000000
--- a/config/awesome/floppy/configuration/tags/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-
-local tags = {
- {
- type = 'terminal',
- icon = icons.terminal,
- default_app = apps.default.terminal,
- gap = beautiful.useless_gap
- },
- {
- type = 'internet',
- icon = icons.web_browser,
- default_app = apps.default.web_browser,
- gap = beautiful.useless_gap
- },
- {
- type = 'code',
- icon = icons.text_editor,
- default_app = apps.default.text_editor,
- gap = beautiful.useless_gap
- },
- {
- type = 'files',
- icon = icons.file_manager,
- default_app = apps.default.file_manager,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.tile
- },
- {
- type = 'multimedia',
- icon = icons.multimedia,
- default_app = apps.default.multimedia,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating,
- gap = 0
- },
- {
- type = 'games',
- icon = icons.games,
- default_app = apps.default.game,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- },
- {
- type = 'graphics',
- icon = icons.graphics,
- default_app = apps.default.graphics,
- gap = beautiful.useless_gap
- },
- {
- type = 'sandbox',
- icon = icons.sandbox,
- default_app = apps.default.sandbox,
- layout = awful.layout.suit.max,
- gap = 0
- },
- {
- type = 'any',
- icon = icons.development,
- default_app = apps.default.development,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- }
- -- {
- -- type = 'social',
- -- icon = icons.social,
- -- default_app = 'discord',
- -- gap = beautiful.useless_gap
- -- }
-}
-
--- Set tags layout
-tag.connect_signal(
- 'request::default_layouts',
- function()
- awful.layout.append_default_layouts({
- awful.layout.suit.spiral.dwindle,
- awful.layout.suit.tile,
- awful.layout.suit.floating,
- awful.layout.suit.max
- })
- end
-)
-
--- Create tags for each screen
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- for i, tag in pairs(tags) do
- awful.tag.add(
- i,
- {
- icon = tag.icon,
- icon_only = true,
- layout = tag.layout or awful.layout.suit.spiral.dwindle,
- gap_single_client = true,
- gap = tag.gap,
- screen = s,
- default_app = tag.default_app,
- selected = i == 1
- }
- )
- end
- end
-)
-
-local update_gap_and_shape = function(t)
- -- Get current tag layout
- local current_layout = awful.tag.getproperty(t, 'layout')
- -- If the current layout is awful.layout.suit.max
- if (current_layout == awful.layout.suit.max) then
- -- Set clients gap to 0 and shape to rectangle if maximized
- t.gap = 0
- for _, c in ipairs(t:clients()) do
- if not c.floating or not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- else
- t.gap = beautiful.useless_gap
- for _, c in ipairs(t:clients()) do
- if not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- end
-end
-
--- Change tag's client's shape and gap on change
-tag.connect_signal(
- 'property::layout',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Change tag's client's shape and gap on move to tag
-tag.connect_signal(
- 'tagged',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Focus on urgent clients
-awful.tag.attached_connect_signal(
- s,
- 'property::selected',
- function()
- local urgent_clients = function (c)
- return awful.rules.match(c, {urgent = true})
- end
- for c in awful.client.iterate(urgent_clients) do
- if c.first_tag == mouse.screen.selected_tag then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- end
-)
diff --git a/config/awesome/floppy/layout/init.lua b/config/awesome/floppy/layout/init.lua
deleted file mode 100644
index 362807c8c..000000000
--- a/config/awesome/floppy/layout/init.lua
+++ /dev/null
@@ -1,70 +0,0 @@
-local awful = require('awful')
-local left_panel = require('layout.left-panel')
-local top_panel = require('layout.top-panel')
-local right_panel = require('layout.right-panel')
-
--- Create a wibox panel for each screen and add it
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- if s.index == 1 then
- s.left_panel = left_panel(s)
- s.top_panel = top_panel(s, true)
- else
- s.top_panel = top_panel(s, false)
- end
- s.right_panel = right_panel(s)
- s.right_panel_show_again = false
- end
-)
-
-
--- Hide bars when app go fullscreen
-function update_bars_visibility()
- for s in screen do
- if s.selected_tag then
- local fullscreen = s.selected_tag.fullscreen_mode
- -- Order matter here for shadow
- s.top_panel.visible = not fullscreen
- if s.left_panel then
- s.left_panel.visible = not fullscreen
- end
- if s.right_panel then
- if fullscreen and s.right_panel.visible then
- s.right_panel:toggle()
- s.right_panel_show_again = true
- elseif not fullscreen and not s.right_panel.visible and s.right_panel_show_again then
- s.right_panel:toggle()
- s.right_panel_show_again = false
- end
- end
- end
- end
-end
-
-tag.connect_signal(
- 'property::selected',
- function(t)
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.first_tag then
- c.first_tag.fullscreen_mode = c.fullscreen
- end
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.fullscreen then
- c.screen.selected_tag.fullscreen_mode = false
- update_bars_visibility()
- end
- end
-)
diff --git a/config/awesome/floppy/layout/left-panel/action-bar.lua b/config/awesome/floppy/layout/left-panel/action-bar.lua
deleted file mode 100755
index 7fd366cd9..000000000
--- a/config/awesome/floppy/layout/left-panel/action-bar.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local tag_list = require('widget.tag-list')
-local clickable_container = require('widget.clickable-container')
-
-return function(s, panel, action_bar_width)
-
- local menu_icon = wibox.widget {
- {
- id = 'menu_btn',
- image = icons.menu,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(10),
- widget = wibox.container.margin
- }
-
- local open_dashboard_button = wibox.widget {
- {
- menu_icon,
- widget = clickable_container
- },
- bg = beautiful.background .. '66',
- widget = wibox.container.background
- }
-
- open_dashboard_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- panel:connect_signal(
- 'opened',
- function()
- menu_icon.menu_btn:set_image(gears.surface(icons.close_small))
- end
- )
-
- panel:connect_signal(
- 'closed',
- function()
- menu_icon.menu_btn:set_image(gears.surface(icons.menu))
- end
- )
-
- return wibox.widget {
- id = 'action_bar',
- layout = wibox.layout.align.vertical,
- forced_width = action_bar_width,
- {
- require('widget.search-apps')(),
- tag_list(s),
- require("widget.xdg-folders")(),
- layout = wibox.layout.fixed.vertical,
- },
- nil,
- open_dashboard_button
- }
-end
diff --git a/config/awesome/floppy/layout/left-panel/dashboard/hardware-monitor.lua b/config/awesome/floppy/layout/left-panel/dashboard/hardware-monitor.lua
deleted file mode 100644
index 819d6e44b..000000000
--- a/config/awesome/floppy/layout/left-panel/dashboard/hardware-monitor.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local hardware_header = wibox.widget {
- text = 'Hardware Monitor',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-
-}
-
-return wibox.widget {
- layout = wibox.layout.fixed.vertical,
- {
- {
- hardware_header,
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
- end,
- forced_height = dpi(35),
- widget = wibox.container.background
-
- },
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.cpu-meter'),
- require('widget.ram-meter'),
- require('widget.temperature-meter'),
- require('widget.harddrive-meter')
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
-}
diff --git a/config/awesome/floppy/layout/left-panel/dashboard/init.lua b/config/awesome/floppy/layout/left-panel/dashboard/init.lua
deleted file mode 100644
index 2acaa7cde..000000000
--- a/config/awesome/floppy/layout/left-panel/dashboard/init.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-return function(_, panel)
-
- local search_widget = wibox.widget {
- {
- {
- {
- image = icons.search,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- {
- text = 'Global Search',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
- }
-
- search_button = wibox.widget {
- {
- search_widget,
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- search_button:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- panel:run_rofi()
- end
- )
- )
- )
-
- return wibox.widget {
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- search_button,
- require('layout.left-panel.dashboard.hardware-monitor'),
- require('layout.left-panel.dashboard.quick-settings'),
-
- },
- nil,
- require('widget.end-session')(),
- layout = wibox.layout.align.vertical
- },
- margins = dpi(16),
- widget = wibox.container.margin
- }
-end
diff --git a/config/awesome/floppy/layout/left-panel/dashboard/quick-settings.lua b/config/awesome/floppy/layout/left-panel/dashboard/quick-settings.lua
deleted file mode 100644
index f5a1c2d02..000000000
--- a/config/awesome/floppy/layout/left-panel/dashboard/quick-settings.lua
+++ /dev/null
@@ -1,67 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local bar_color = beautiful.groups_bg
-local dpi = beautiful.xresources.apply_dpi
-
-local quick_header = wibox.widget {
- text = 'Quick Settings',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-
-}
-
-return wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.vertical,
- {
- {
- quick_header,
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- forced_height = dpi(35),
- bg = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.brightness-slider'),
- require('widget.volume-slider'),
- require('widget.airplane-mode'),
- require('widget.bluetooth-toggle'),
- require('widget.blue-light')
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.blur-slider'),
- require('widget.blur-toggle')
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
- }
- }
-}
diff --git a/config/awesome/floppy/layout/left-panel/init.lua b/config/awesome/floppy/layout/left-panel/init.lua
deleted file mode 100644
index 12171e590..000000000
--- a/config/awesome/floppy/layout/left-panel/init.lua
+++ /dev/null
@@ -1,154 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-
-local left_panel = function(screen)
-
- local action_bar_width = dpi(45)
- local panel_content_width = dpi(350)
-
- local panel = wibox {
- screen = screen,
- width = action_bar_width,
- type = 'dock',
- height = screen.geometry.height,
- x = screen.geometry.x,
- y = screen.geometry.y,
- ontop = true,
- shape = gears.shape.rectangle,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel.opened = false
-
- panel:struts {
- left = action_bar_width
- }
-
- local backdrop = wibox {
- ontop = true,
- screen = screen,
- bg = beautiful.transparent,
- type = 'utility',
- x = screen.geometry.x,
- y = screen.geometry.y,
- width = screen.geometry.width,
- height = screen.geometry.height
- }
-
- function panel:run_rofi()
- awesome.spawn(
- apps.default.rofi_global,
- false,
- false,
- false,
- false,
- function()
- panel:toggle()
- end
- )
-
- -- Hide panel content if rofi global search is opened
- panel:get_children_by_id('panel_content')[1].visible = false
- end
-
- -- "Punch a hole" on backdrop to show the left dashboard
- local update_backdrop = function(wibox_backdrop, wibox_panel)
- local cairo = require('lgi').cairo
- local geo = wibox_panel.screen.geometry
-
- wibox_backdrop.x = geo.x
- wibox_backdrop.y = geo.y
- wibox_backdrop.width = geo.width
- wibox_backdrop.height = geo.height
-
- -- Create an image surface that is as large as the wibox_panel screen
- local shape = cairo.ImageSurface.create(cairo.Format.A1, geo.width, geo.height)
- local cr = cairo.Context(shape)
-
- -- Fill with "completely opaque"
- cr.operator = 'SOURCE'
- cr:set_source_rgba(1, 1, 1, 1)
- cr:paint()
-
- -- Remove the shape of the client
- local c_geo = wibox_panel:geometry()
- local c_shape = gears.surface(wibox_panel.shape_bounding)
- cr:set_source_rgba(0, 0, 0, 0)
- cr:mask_surface(c_shape, c_geo.x + wibox_panel.border_width - geo.x, c_geo.y + wibox_panel.border_width - geo.y)
- c_shape:finish()
-
- wibox_backdrop.shape_bounding = shape._native
- shape:finish()
- wibox_backdrop:draw()
- end
-
- local open_panel = function(should_run_rofi)
- panel.width = action_bar_width + panel_content_width
- backdrop.visible = true
- update_backdrop(backdrop, panel)
- panel:get_children_by_id('panel_content')[1].visible = true
- if should_run_rofi then
- panel:run_rofi()
- end
- panel:emit_signal('opened')
- end
-
- local close_panel = function()
- panel.width = action_bar_width
- panel:get_children_by_id('panel_content')[1].visible = false
- backdrop.visible = false
- update_backdrop(backdrop, panel)
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle(should_run_rofi)
- self.opened = not self.opened
- if self.opened then
- open_panel(should_run_rofi)
- else
- close_panel()
- end
- end
-
- backdrop:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- panel:setup {
- layout = wibox.layout.align.horizontal,
- nil,
- {
- id = 'panel_content',
- bg = beautiful.transparent,
- widget = wibox.container.background,
- visible = false,
- forced_width = panel_content_width,
- {
- require('layout.left-panel.dashboard')(screen, panel),
- layout = wibox.layout.stack
- }
- },
- require('layout.left-panel.action-bar')(screen, panel, action_bar_width)
- }
- return panel
-end
-
-return left_panel
diff --git a/config/awesome/floppy/layout/right-panel/init.lua b/config/awesome/floppy/layout/right-panel/init.lua
deleted file mode 100644
index 92c6f7b78..000000000
--- a/config/awesome/floppy/layout/right-panel/init.lua
+++ /dev/null
@@ -1,166 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-panel_visible = false
-
-local right_panel = function(s)
-
- -- Set right panel geometry
- local panel_width = dpi(350)
- local panel_x = s.geometry.x + s.geometry.width - panel_width
-
- local panel = wibox {
- ontop = true,
- screen = s,
- visible = false,
- type = 'dock',
- width = panel_width,
- height = s.geometry.height,
- x = panel_x,
- y = s.geometry.y,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel.opened = false
-
- s.backdrop_rdb = wibox {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- panel:struts {
- right = 0
- }
-
- open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_rdb.visible = true
- focused.right_panel.visible = true
-
- panel:emit_signal('opened')
- end
-
- close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.right_panel.visible = false
- focused.backdrop_rdb.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
-
- function panel:switch_pane(mode)
- if mode == 'notif_mode' then
- -- Update Content
- panel:get_children_by_id('notif_id')[1].visible = true
- panel:get_children_by_id('pane_id')[1].visible = false
- elseif mode == 'today_mode' then
- -- Update Content
- panel:get_children_by_id('notif_id')[1].visible = false
- panel:get_children_by_id('pane_id')[1].visible = true
- end
- end
-
- s.backdrop_rdb:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- local separator = wibox.widget {
- orientation = 'horizontal',
- opacity = 0.0,
- forced_height = 15,
- widget = wibox.widget.separator,
- }
-
- local line_separator = wibox.widget {
- orientation = 'horizontal',
- forced_height = dpi(1),
- span_ratio = 1.0,
- color = beautiful.groups_title_bg,
- widget = wibox.widget.separator
- }
-
- panel : setup {
- {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- require('widget.info-center-switch'),
- nil
- },
- separator,
- line_separator,
- separator,
- {
- layout = wibox.layout.stack,
- -- Today Pane
- {
- id = 'pane_id',
- visible = true,
- layout = wibox.layout.fixed.vertical,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- require('widget.user-profile'),
- require('widget.weather'),
- require('widget.email'),
- require('widget.social-media'),
- require('widget.calculator')
- },
-
- },
- -- Notification Center
- {
- id = 'notif_id',
- visible = false,
- require('widget.notif-center')(s),
- layout = wibox.layout.fixed.vertical,
- }
- },
- },
- margins = dpi(16),
- widget = wibox.container.margin
- }
-
- return panel
-end
-
-return right_panel
-
diff --git a/config/awesome/floppy/layout/top-panel.lua b/config/awesome/floppy/layout/top-panel.lua
deleted file mode 100755
index 3c529065d..000000000
--- a/config/awesome/floppy/layout/top-panel.lua
+++ /dev/null
@@ -1,99 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local gears = require('gears')
-local icons = require('theme.icons')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local task_list = require('widget.task-list')
-
-local top_panel = function(s, offset)
-
- local offsetx = 0
- if offset == true then
- offsetx = dpi(45)
- end
-
- local panel = wibox
- {
- ontop = true,
- screen = s,
- type = 'dock',
- height = dpi(28),
- width = s.geometry.width - offsetx,
- x = s.geometry.x + offsetx,
- y = s.geometry.y,
- stretch = false,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel:struts
- {
- top = dpi(28)
- }
-
- panel:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- w.cursor = 'left_ptr'
- end
- end
- )
-
- s.systray = wibox.widget {
- visible = false,
- base_size = dpi(20),
- horizontal = true,
- screen = 'primary',
- widget = wibox.widget.systray
- }
-
- local clock = require('widget.clock')(s)
- local layout_box = require('widget.layoutbox')(s)
- local add_button = require('widget.open-default-app')(s)
- s.tray_toggler = require('widget.tray-toggle')
- s.updater = require('widget.package-updater')()
- s.screen_rec = require('widget.screen-recorder')()
- s.mpd = require('widget.mpd')()
- s.bluetooth = require('widget.bluetooth')()
- s.battery = require('widget.battery')()
- s.network = require('widget.network')()
- s.info_center_toggle = require('widget.info-center-toggle')()
-
- panel : setup {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- {
- layout = wibox.layout.fixed.horizontal,
- task_list(s),
- add_button
- },
- clock,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- s.systray,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- s.tray_toggler,
- s.updater,
- s.screen_rec,
- s.mpd,
- s.network,
- s.bluetooth,
- s.battery,
- layout_box,
- s.info_center_toggle
- }
- }
-
- return panel
-end
-
-
-return top_panel
diff --git a/config/awesome/floppy/module/dynamic-wallpaper.lua b/config/awesome/floppy/module/dynamic-wallpaper.lua
deleted file mode 100755
index 72e4406a0..000000000
--- a/config/awesome/floppy/module/dynamic-wallpaper.lua
+++ /dev/null
@@ -1,364 +0,0 @@
-----------------------------------------------------------------------------
---- Wallpaper changer module
---
--- @author Gerome Matilla <gerome.matilla07@gmail.com>
--- @copyright 2019 Gerome Matilla
--- @module wallchange
---
---- Nevermind this. Do what you want.
-----------------------------------------------------------------------------
-
--- This module changes wallpaper based on declared time
--- It checks the difference between the current time and the next scheduled time
--- Then convert it to seconds to set it as a timeout value
-
--- Limitations:
--- Timeout paused when laptop/pc is suspended or in sleep mode, and there's probably some bugs too so whatever
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config = require('configuration.config')
-
-
--- ========================================
--- Configuration
--- Change your preference here
--- ========================================
-
-local wall_config = {
- -- Wallpaper directory. The default is:
- -- local wall_config.wall_dir = os.getenv('HOME') .. 'Pictures/Wallpapers/'
- wall_dir = filesystem.get_configuration_dir() .. (config.module.dynamic_wallpaper.wall_dir or 'theme/wallpapers/'),
-
- -- If there's a picture format that awesome accepts and i missed
- -- (which i probably did) feel free to add it right here
- valid_picture_formats = config.module.dynamic_wallpaper.valid_picture_formats or {"jpg", "png", "jpeg"},
-
- -- Table mapping schedule to wallpaper filename
- wallpaper_schedule = config.module.dynamic_wallpaper.wallpaper_schedule or {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- },
-
- -- Don't stretch wallpaper on multihead setups if true
- stretch = config.module.dynamic_wallpaper.stretch or false
-}
-
--- ========================================
--- Processes
--- Don't touch it if it's working
--- ========================================
-
--- Get current time
-local current_time = function()
- return os.date('%H:%M:%S')
-end
-
--- Countdown variable
--- In seconds
-local the_countdown = nil
-
--- Parse seconds to HH:MM:SS
-local function parse_to_time(seconds)
- -- DST ruined me :(
- --return os.date("%H:%M:%S", seconds)
-
- local function format(str)
- while #str < 2 do
- str = '0' .. str
- end
-
- return str
- end
-
- local function convert(num)
- return format(tostring(num))
- end
-
- local hours = convert(math.floor(seconds / 3600))
- seconds = seconds - (hours * 3600)
-
- local minutes = convert(math.floor(seconds / 60))
- seconds = seconds - (minutes * 60)
-
- local seconds = convert(math.floor(seconds))
-
- return (hours .. ':' .. minutes .. ':' .. seconds)
-
-end
-
--- Parse HH:MM:SS to seconds
-local parse_to_seconds = function(time)
-
- -- Convert HH in HH:MM:SS
- local hour_sec = tonumber(string.sub(time, 1, 2)) * 3600
-
- -- Convert MM in HH:MM:SS
- local min_sec = tonumber(string.sub(time, 4, 5)) * 60
-
- -- Get SS in HH:MM:SS
- local get_sec = tonumber(string.sub(time, 7, 8))
-
- -- Return computed seconds
- return (hour_sec + min_sec + get_sec)
-end
-
--- Get time difference
-local time_diff = function(future, past)
- local diff = parse_to_seconds(future) - parse_to_seconds(past)
- if diff < 0 then
- diff = diff + (24 * 3600) --If time difference is negative, the future is meant for tomorrow
- end
- return diff
-end
-
--- Returns a table containing all file paths in a directory
-local function get_dir_contents(dir)
- -- Command to give list of files in directory
- local dir_explore = 'find ' .. dir .. ' -printf "%f\\n"'
- local lines = io.popen(dir_explore):lines() --Done synchronously because we literally can't continue without files
- local files = {}
- for line in lines do
- table.insert(files, line)
- end
- return files
-end
-
--- Returns a table of all the files that were one of the valid file formats
-local function filter_files_by_format(files, valid_file_formats)
- local valid_files = {}
- for _, file in ipairs(files) do
- for _, format in ipairs(valid_file_formats) do
- if string.match(file, ".+%." .. format) ~= nil then
- table.insert(valid_files, file)
- break --No need to check other formats
- end
- end
- end
-
- return valid_files
-end
-
--- Returns a table of files that contained any of the keywords, in the same order as the words themselves
-local function find_files_containing_keywords(files, keywords)
- local found_files = {}
-
- for _, word in ipairs(keywords) do --Preserves keyword order inherently, conveniently
- for _, file in ipairs(files) do
- -- Check if file is word, contains word at beginning or contains word between 2 non-alphanumeric characters
- if file == word or string.find(file, "^" .. word .. "[^%a]") or string.find(file, "[^%a]" .. word .. "[^%a]") then
- found_files[word] = file
- break --Only return 1 file per word
- end
- end
- end
-
- return found_files
-end
-
--- Turn an ordered list of files into a scheduled list of files
-local function auto_schedule(wall_list)
- local sched = {}
- for index, file in ipairs(wall_list) do
- local auto_time = parse_to_time(parse_to_seconds("24:00:00") * (index - 1) / #wall_list)
- sched[auto_time] = file
- end
-
- return sched
-end
-
--- Reformat whatever schedule was specified into an actual schedule
-if #wall_config.wallpaper_schedule == 0 then
- local count = 0
- -- Determine if empty or if manual schedule
- for k, v in pairs(wall_config.wallpaper_schedule) do
- count = count + 1
- end
-
- if count == 0 then --Schedule is actually empty
- -- Get all pictures
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
-
- --Sort pictures as sanely as possible
- local function order_pictures(a, b) --Attempts to mimic default sort but numbers aren't compared as strings
- if tonumber(a) ~= nil and tonumber(b) ~= nil then
- return tonumber(a) < tonumber(b)
- else
- return a < b
- end
- end
- table.sort(pictures, order_pictures)
-
- wall_config.wallpaper_schedule = auto_schedule(pictures)
-
- else --Schedule is manually timed
- -- Get times as list
- local ordered_times = {}
- for time, _ in pairs(wall_config.wallpaper_schedule) do
- table.insert(ordered_times, time)
- end
-
- -- Sort times using seconds as comparison
- local function order_time_asc(a, b)
- return parse_to_seconds(a) < parse_to_seconds(b)
- end
- table.sort(ordered_times, order_time_asc)
-
- -- Get ordered list of keywords from ordered times
- local keywords = {}
- for index, time in ipairs(ordered_times) do
- keywords[index] = wall_config.wallpaper_schedule[time]
- end
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Replace keywords with files
- for index, time in ipairs(ordered_times) do
- local word = wall_config.wallpaper_schedule[time]
- if pictures[word] ~= nil then
- wall_config.wallpaper_schedule[time] = pictures[word]
- else --To avoid crashes, we'll remove entries with invalid keywords
- wall_config.wallpaper_schedule[time] = nil
- end
- end
- end
-else --Schedule is list of keywords
- local keywords = wall_config.wallpaper_schedule
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Order files by keyword (if a file was found for the keyword)
- local ordered_pictures = {}
- for _, word in ipairs(keywords) do
- local file = pictures[word]
- if file ~= nil then
- table.insert(ordered_pictures, file)
- end
- end
-
- wall_config.wallpaper_schedule = auto_schedule(ordered_pictures)
-end
-
--- Set wallpaper
-local set_wallpaper = function(path)
- if wall_config.stretch then
- for s in screen do
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path, s)
- end
- else
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path)
- end
-end
-
--- Update wallpaper (used by the manage_timer function)
--- I think the gears.wallpaper.maximized is too fast or being ran asynchronously
--- So the wallpaper is not being updated on awesome (re)start without this timer
--- We need some delay.
--- Hey it's working, so whatever
-local update_wallpaper = function(wall_name)
- local wall_dir = wall_config.wall_dir .. wall_name
- set_wallpaper(wall_dir)
-
- -- Overwrite the default wallpaper
- -- This is important in case we add an extra monitor
- beautiful.wallpaper = wall_dir
-end
-
--- Updates variables
-local manage_timer = function()
- -- Get current time
- local time_now = parse_to_seconds(current_time())
-
- local previous_time = '' --Scheduled time that should activate now
- local next_time = '' --Time that should activate next
-
- local first_time = '24:00:00' --First scheduled time registered (to be found)
- local last_time = '00:00:00' --Last scheduled time registered (to be found)
-
- -- Find previous_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if previous_time == '' or parsed_time > parse_to_seconds(previous_time) then
- if parsed_time <= time_now then
- previous_time = time
- end
- end
-
- if parsed_time > parse_to_seconds(last_time) then
- last_time = time
- end
- end
-
- -- Previous time being blank = no scheduled time today. Therefore
- -- the last time was yesterday's latest time
- if previous_time == '' then
- previous_time = last_time
- end
-
- --Find next_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if next_time == '' or parsed_time < parse_to_seconds(next_time) then
- if parsed_time > time_now then
- next_time = time
- end
- end
-
- if parsed_time < parse_to_seconds(first_time) then
- first_time = time
- end
- end
-
- -- Next time being blank means that there is no scheduled times left for
- -- the current day. So next scheduled time is tomorrow's first time
- if next_time == '' then
- next_time = first_time
- end
-
- -- Update Wallpaper
- update_wallpaper(wall_config.wallpaper_schedule[previous_time])
-
- -- Get the time difference to set as timeout for the wall_updater timer below
- the_countdown = time_diff(next_time, current_time())
-
-end
-
--- Update values at startup
-manage_timer()
-
-local wall_updater = gears.timer {
- -- The timeout is the difference of current time and the scheduled time we set above.
- timeout = the_countdown,
- autostart = true,
- call_now = true,
- callback = function()
- -- Emit signal to update wallpaper
- awesome.emit_signal('module::change_wallpaper')
- end
-}
-
--- Update wallpaper here and update the timeout for the next schedule
-awesome.connect_signal(
- 'module::change_wallpaper',
- function()
- --set_wallpaper(wall_dir .. wall_data[2])
-
- -- Update values for the next specified schedule
- manage_timer()
-
- -- Update timer timeout for the next specified schedule
- wall_updater.timeout = the_countdown
-
- -- Restart timer
- wall_updater:again()
- end
-)
diff --git a/config/awesome/floppy/module/exit-screen.lua b/config/awesome/floppy/module/exit-screen.lua
deleted file mode 100644
index ee2684963..000000000
--- a/config/awesome/floppy/module/exit-screen.lua
+++ /dev/null
@@ -1,360 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-
-local msg_table = {
- 'See you later, alligator!',
- 'After a while, crocodile.',
- 'Stay out of trouble.',
- 'I’m out of here.',
- 'Yamete, onii-chan~. UwU',
- 'Okay...bye, fry guy!',
- 'Peace out!',
- 'Peace out, bitch!',
- 'Gotta get going.',
- 'Out to the door, dinosaur.',
- 'Don\'t forget to come back!',
- 'Smell ya later!',
- 'In a while, crocodile.',
- 'Adios, amigo.',
- 'Begone!',
- 'Arrivederci.',
- 'Never look back!',
- 'So long, sucker!',
- 'Au revoir!',
- 'Later, skater!',
- 'That\'ll do pig. That\'ll do.',
- 'Happy trails!',
- 'Smell ya later!',
- 'See you soon, baboon!',
- 'Bye Felicia!',
- 'Sayonara!',
- 'Ciao!',
- 'Well.... bye.',
- 'Delete your browser history!',
- 'See you, Space Cowboy!',
- 'Change da world. My final message. Goodbye.',
- 'Find out on the next episode of Dragonball Z...',
- 'Choose wisely!'
-}
-
-local greeter_message = wibox.widget {
- markup = 'Choose wisely!',
- font = 'Inter UltraLight 48',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_name = wibox.widget {
- markup = 'user@hostname',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(140),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- profile_imagebox:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_profile_pic()
-
-local update_user_name = function()
- awful.spawn.easy_async_with_shell(
- [[
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- local first_name = stdout:match('(.*)@') or stdout:match('(.-)%s')
- first_name = first_name:sub(1, 1):upper() .. first_name:sub(2)
- profile_name:set_markup(stdout)
- profile_name:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_user_name()
-
-local update_greeter_msg = function()
- greeter_message:set_markup(msg_table[math.random(#msg_table)])
- greeter_message:emit_signal('widget::redraw_needed')
-end
-
-update_greeter_msg()
-
-local build_power_button = function(name, icon, callback)
- local power_button_label= wibox.widget {
- text = name,
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-
- local power_button = wibox.widget {
- {
- {
- {
- {
- image = icon,
- widget = wibox.widget.imagebox
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- widget = wibox.container.background
- },
- shape = gears.shape.rounded_rect,
- forced_width = dpi(90),
- forced_height = dpi(90),
- widget = clickable_container
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- }
-
- local exit_screen_item = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- power_button,
- power_button_label
- }
-
- exit_screen_item:connect_signal(
- 'button::release',
- function()
- callback()
- end
- )
- return exit_screen_item
-end
-
-local suspend_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock .. ' & systemctl suspend')
-end
-
-local logout_command = function()
- awesome.quit()
-end
-
-local lock_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock)
-end
-
-local poweroff_command = function()
- awful.spawn.with_shell('poweroff')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local reboot_command = function()
- awful.spawn.with_shell('reboot')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local poweroff = build_power_button('Shutdown', icons.power, poweroff_command)
-local reboot = build_power_button('Restart', icons.restart, reboot_command)
-local suspend = build_power_button('Sleep', icons.sleep, suspend_command)
-local logout = build_power_button('Logout', icons.logout, logout_command)
-local lock = build_power_button('Lock', icons.lock, lock_command)
-
-local create_exit_screen = function(s)
- s.exit_screen = wibox
- {
- screen = s,
- type = 'splash',
- visible = false,
- ontop = true,
- bg = beautiful.background,
- fg = beautiful.fg_normal,
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y
- }
-
- s.exit_screen:buttons(
- gears.table.join(
- awful.button(
- {},
- 2,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- )
- )
- )
-
- s.exit_screen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.vertical,
- {
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil
- },
- profile_name
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- widget = wibox.container.margin,
- margins = dpi(15),
- greeter_message
- },
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- {
- poweroff,
- reboot,
- suspend,
- logout,
- lock,
- layout = wibox.layout.fixed.horizontal
- },
- spacing = dpi(30),
- layout = wibox.layout.fixed.vertical
- },
- widget = wibox.container.margin,
- margins = dpi(15)
- },
- nil
- }
- },
- nil
- }
-end
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_exit_screen(s)
- end
-)
-
-screen.connect_signal(
- 'removed',
- function(s)
- create_exit_screen(s)
- end
-)
-
-local exit_screen_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 's' then
- suspend_command()
-
- elseif key == 'e' then
- logout_command()
-
- elseif key == 'l' then
- lock_command()
-
- elseif key == 'p' then
- poweroff_command()
-
- elseif key == 'r' then
- reboot_command()
-
- elseif key == 'Escape' or key == 'q' or key == 'x' then
- awesome.emit_signal('module::exit_screen:hide')
- end
- end
-}
-
-awesome.connect_signal(
- 'module::exit_screen:show',
- function()
- for s in screen do
- s.exit_screen.visible = false
- end
- awful.screen.focused().exit_screen.visible = true
- exit_screen_grabber:start()
- end
-)
-
-awesome.connect_signal(
- 'module::exit_screen:hide',
- function()
- update_greeter_msg()
- exit_screen_grabber:stop()
- for s in screen do
- s.exit_screen.visible = false
- end
- end
-)
diff --git a/config/awesome/floppy/module/titlebar.lua b/config/awesome/floppy/module/titlebar.lua
deleted file mode 100644
index ebf958d44..000000000
--- a/config/awesome/floppy/module/titlebar.lua
+++ /dev/null
@@ -1,278 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local dpi = beautiful.xresources.apply_dpi
-awful.titlebar.enable_tooltip = true
-awful.titlebar.fallback_name = 'Client'
-
-local double_click_event_handler = function(double_click_event)
- if double_click_timer then
- double_click_timer:stop()
- double_click_timer = nil
- double_click_event()
- return
- end
- double_click_timer = gears.timer.start_new(
- 0.20,
- function()
- double_click_timer = nil
- return false
- end
- )
-end
-
-local create_click_events = function(c)
- -- Titlebar button/click events
- local buttons = gears.table.join(
- awful.button(
- {},
- 1,
- function()
- double_click_event_handler(function()
- if c.floating then
- c.floating = false
- return
- end
- c.maximized = not c.maximized
- c:raise()
- return
- end)
- c:activate {context = 'titlebar', action = 'mouse_move'}
- end
- ),
- awful.button(
- {},
- 3,
- function()
- c:activate {context = 'titlebar', action = 'mouse_resize'}
- end
- )
- )
- return buttons
-end
-
-local create_vertical_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.horizontal
- }
-end
-
-local create_vertical_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.minimizebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- nil,
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- nil,
- layout = wibox.layout.align.horizontal
- }
-end
-
-client.connect_signal(
- 'request::titlebars',
- function(c)
-
- -- Customize here
- if c.type == 'normal' then
-
- if c.class == 'kitty' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
-
- elseif c.class == 'XTerm' or c.class == 'UXTerm' then
- create_horizontal_bar(c, 'top',
- beautiful.xresources.get_current_theme().background, beautiful.titlebar_size)
-
- elseif c.class == 'ark' or c.class == 'dolphin' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.instance == 'transmission-qt' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' or c.class == 'Inkscape' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Com.github.johnfactotum.Foliate' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Ettercap' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'Google-chrome' or c.class == 'Chromium' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'TelegramDesktop' then
- create_vertical_bar(c, 'left', '#17212b', beautiful.titlebar_size)
-
- elseif c.class == 'Kvantum Manager' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'qt5ct' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Nemo' then
- create_horizontal_bar(c, 'top',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
-
- elseif c.type == 'dialog' then
-
- if c.role == 'GtkFileChooserDialog' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar_dialog(c, 'left', '#00000099', beautiful.titlebar_size)
- end
-
- elseif c.type == 'modal' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
- end
-)
diff --git a/config/awesome/floppy/rc.lua b/config/awesome/floppy/rc.lua
deleted file mode 100644
index 2d7a34067..000000000
--- a/config/awesome/floppy/rc.lua
+++ /dev/null
@@ -1,78 +0,0 @@
--- ░█▀▀░█░░░█▀█░█▀█░█▀█░█░█
--- ░█▀▀░█░░░█░█░█▀▀░█▀▀░░█░
--- ░▀░░░▀▀▀░▀▀▀░▀░░░▀░░░░▀░
--- Banner generated using `toilet -f pagga AwesomeWM"
-
-local gears = require('gears')
-local beautiful = require('beautiful')
-local awful = require('awful')
-require('awful.autofocus')
-
--- ░█▀▀░█░█░█▀▀░█░░░█░░
--- ░▀▀█░█▀█░█▀▀░█░░░█░░
--- ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
-
-awful.util.shell = 'sh'
-
--- ░▀█▀░█░█░█▀▀░█▄█░█▀▀
--- ░░█░░█▀█░█▀▀░█░█░█▀▀
--- ░░▀░░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-beautiful.init(require('theme'))
-
--- ░█░░░█▀█░█░█░█▀█░█░█░▀█▀
--- ░█░░░█▀█░░█░░█░█░█░█░░█░
--- ░▀▀▀░▀░▀░░▀░░▀▀▀░▀▀▀░░▀░
-
-require('layout')
-
--- ░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀░█░█░█▀▄░█▀█░▀█▀░▀█▀░█▀█░█▀█░█▀▀
--- ░█░░░█░█░█░█░█▀▀░░█░░█░█░█░█░█▀▄░█▀█░░█░░░█░░█░█░█░█░▀▀█
--- ░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀
-
-require('configuration.client')
-require('configuration.root')
-require('configuration.tags')
-root.keys(require('configuration.keys.global'))
-
--- ░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀
--- ░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█
--- ░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀
-
-require('module.notifications')
-require('module.auto-start')
-require('module.exit-screen')
-require('module.quake-terminal')
-require('module.menu')
-require('module.titlebar')
-require('module.brightness-osd')
-require('module.volume-osd')
-require('module.lockscreen')
-require('module.dynamic-wallpaper')
-
--- ░█░█░█▀█░█░░░█░░░█▀█░█▀█░█▀█░█▀▀░█▀▄
--- ░█▄█░█▀█░█░░░█░░░█▀▀░█▀█░█▀▀░█▀▀░█▀▄
--- ░▀░▀░▀░▀░▀▀▀░▀▀▀░▀░░░▀░▀░▀░░░▀▀▀░▀░▀
-
-screen.connect_signal(
- 'request::wallpaper',
- function(s)
- -- If wallpaper is a function, call it with the screen
- if beautiful.wallpaper then
- if type(beautiful.wallpaper) == 'string' then
-
- -- Check if beautiful.wallpaper is color/image
- if beautiful.wallpaper:sub(1, #'#') == '#' then
- -- If beautiful.wallpaper is color
- gears.wallpaper.set(beautiful.wallpaper)
-
- elseif beautiful.wallpaper:sub(1, #'/') == '/' then
- -- If beautiful.wallpaper is path/image
- gears.wallpaper.maximized(beautiful.wallpaper, s)
- end
- else
- beautiful.wallpaper(s)
- end
- end
- end
-)
diff --git a/config/awesome/floppy/theme/default-theme.lua b/config/awesome/floppy/theme/default-theme.lua
deleted file mode 100644
index 35b34e7b6..000000000
--- a/config/awesome/floppy/theme/default-theme.lua
+++ /dev/null
@@ -1,219 +0,0 @@
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local gtk_variable = beautiful.gtk.get_theme_variables
-
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-local titlebar_theme = 'stoplight'
-local titlebar_icon_path = theme_dir .. '/icons/titlebar/' .. titlebar_theme .. '/'
-local tip = titlebar_icon_path
-
--- Create theme table
-local theme = {}
-
--- Font
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Menu icon theme
-theme.icon_theme = 'Tela-blue-dark'
-
-local awesome_overrides = function(theme)
-
- theme.dir = theme_dir
- theme.icons = theme_dir .. '/icons/'
-
- -- Default wallpaper path
- theme.wallpaper = theme.dir .. '/wallpapers/morning-wallpaper.jpg'
-
- -- Default font
- theme.font = 'Inter Regular 10'
-
- -- Foreground
- theme.fg_normal = '#ffffffde'
- theme.fg_focus = '#e4e4e4'
- theme.fg_urgent = '#CC9393'
-
- theme.bg_normal = theme.background
- theme.bg_focus = '#5a5a5a'
- theme.bg_urgent = '#3F3F3F'
-
- -- System tray
- theme.bg_systray = theme.background
- theme.systray_icon_spacing = dpi(16)
-
- -- Titlebar
- theme.titlebar_size = dpi(34)
- theme.titlebar_bg_focus = gtk_variable().bg_color:sub(1,7) .. '66'
- theme.titlebar_bg_normal = gtk_variable().base_color:sub(1,7) .. '66'
- theme.titlebar_fg_focus = gtk_variable().fg_color
- theme.titlebar_fg_normal = gtk_variable().fg_color
-
- -- Close Button
- theme.titlebar_close_button_normal = tip .. 'close_normal.svg'
- theme.titlebar_close_button_focus = tip .. 'close_focus.svg'
-
- -- Minimize Button
- theme.titlebar_minimize_button_normal = tip .. 'minimize_normal.svg'
- theme.titlebar_minimize_button_focus = tip .. 'minimize_focus.svg'
-
- -- Ontop Button
- theme.titlebar_ontop_button_normal_inactive = tip .. 'ontop_normal_inactive.svg'
- theme.titlebar_ontop_button_focus_inactive = tip .. 'ontop_focus_inactive.svg'
- theme.titlebar_ontop_button_normal_active = tip .. 'ontop_normal_active.svg'
- theme.titlebar_ontop_button_focus_active = tip .. 'ontop_focus_active.svg'
-
- -- Sticky Button
- theme.titlebar_sticky_button_normal_inactive = tip .. 'sticky_normal_inactive.svg'
- theme.titlebar_sticky_button_focus_inactive = tip .. 'sticky_focus_inactive.svg'
- theme.titlebar_sticky_button_normal_active = tip .. 'sticky_normal_active.svg'
- theme.titlebar_sticky_button_focus_active = tip .. 'sticky_focus_active.svg'
-
- -- Floating Button
- theme.titlebar_floating_button_normal_inactive = tip .. 'floating_normal_inactive.svg'
- theme.titlebar_floating_button_focus_inactive = tip .. 'floating_focus_inactive.svg'
- theme.titlebar_floating_button_normal_active = tip .. 'floating_normal_active.svg'
- theme.titlebar_floating_button_focus_active = tip .. 'floating_focus_active.svg'
-
- -- Maximized Button
- theme.titlebar_maximized_button_normal_inactive = tip .. 'maximized_normal_inactive.svg'
- theme.titlebar_maximized_button_focus_inactive = tip .. 'maximized_focus_inactive.svg'
- theme.titlebar_maximized_button_normal_active = tip .. 'maximized_normal_active.svg'
- theme.titlebar_maximized_button_focus_active = tip .. 'maximized_focus_active.svg'
-
- -- Hovered Close Button
- theme.titlebar_close_button_normal_hover = tip .. 'close_normal_hover.svg'
- theme.titlebar_close_button_focus_hover = tip .. 'close_focus_hover.svg'
-
- -- Hovered Minimize Buttin
- theme.titlebar_minimize_button_normal_hover = tip .. 'minimize_normal_hover.svg'
- theme.titlebar_minimize_button_focus_hover = tip .. 'minimize_focus_hover.svg'
-
- -- Hovered Ontop Button
- theme.titlebar_ontop_button_normal_inactive_hover = tip .. 'ontop_normal_inactive_hover.svg'
- theme.titlebar_ontop_button_focus_inactive_hover = tip .. 'ontop_focus_inactive_hover.svg'
- theme.titlebar_ontop_button_normal_active_hover = tip .. 'ontop_normal_active_hover.svg'
- theme.titlebar_ontop_button_focus_active_hover = tip .. 'ontop_focus_active_hover.svg'
-
- -- Hovered Sticky Button
- theme.titlebar_sticky_button_normal_inactive_hover = tip .. 'sticky_normal_inactive_hover.svg'
- theme.titlebar_sticky_button_focus_inactive_hover = tip .. 'sticky_focus_inactive_hover.svg'
- theme.titlebar_sticky_button_normal_active_hover = tip .. 'sticky_normal_active_hover.svg'
- theme.titlebar_sticky_button_focus_active_hover = tip .. 'sticky_focus_active_hover.svg'
-
- -- Hovered Floating Button
- theme.titlebar_floating_button_normal_inactive_hover = tip .. 'floating_normal_inactive_hover.svg'
- theme.titlebar_floating_button_focus_inactive_hover = tip .. 'floating_focus_inactive_hover.svg'
- theme.titlebar_floating_button_normal_active_hover = tip .. 'floating_normal_active_hover.svg'
- theme.titlebar_floating_button_focus_active_hover = tip .. 'floating_focus_active_hover.svg'
-
- -- Hovered Maximized Button
- theme.titlebar_maximized_button_normal_inactive_hover = tip .. 'maximized_normal_inactive_hover.svg'
- theme.titlebar_maximized_button_focus_inactive_hover = tip .. 'maximized_focus_inactive_hover.svg'
- theme.titlebar_maximized_button_normal_active_hover = tip .. 'maximized_normal_active_hover.svg'
- theme.titlebar_maximized_button_focus_active_hover = tip .. 'maximized_focus_active_hover.svg'
-
- -- UI Groups
- theme.groups_title_bg = '#ffffff' .. '15'
- theme.groups_bg = '#ffffff' .. '10'
- theme.groups_radius = dpi(9)
-
- -- UI events
- theme.leave_event = transparent
- theme.enter_event = '#ffffff' .. '10'
- theme.press_event = '#ffffff' .. '15'
- theme.release_event = '#ffffff' .. '10'
-
- -- Client Decorations
-
- -- Borders
- theme.border_focus = gtk_variable().bg_color
- theme.border_normal = gtk_variable().base_color
- theme.border_marked = '#CC9393'
- theme.border_width = dpi(0)
- theme.border_radius = dpi(9)
-
- -- Decorations
- theme.useless_gap = dpi(4)
- theme.client_shape_rectangle = gears.shape.rectangle
- theme.client_shape_rounded = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, dpi(6))
- end
-
- -- Menu
- theme.menu_font = 'Inter Regular 11'
- theme.menu_submenu = '' -- ➤
-
- theme.menu_height = dpi(34)
- theme.menu_width = dpi(200)
- theme.menu_border_width = dpi(20)
- theme.menu_bg_focus = theme.accent .. 'CC'
-
- theme.menu_bg_normal = theme.background:sub(1,7) .. '33'
- theme.menu_fg_normal = '#ffffff'
- theme.menu_fg_focus = '#ffffff'
- theme.menu_border_color = theme.background:sub(1,7) .. '5C'
-
- -- Tooltips
-
- theme.tooltip_bg = theme.background
- theme.tooltip_border_color = theme.transparent
- theme.tooltip_border_width = 0
- theme.tooltip_gaps = dpi(5)
- theme.tooltip_shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
- end
-
- -- Separators
- theme.separator_color = '#f2f2f244'
-
- -- Layoutbox icons
- theme.layout_max = theme.icons .. 'layouts/max.svg'
- theme.layout_tile = theme.icons .. 'layouts/tile.svg'
- theme.layout_dwindle = theme.icons .. 'layouts/dwindle.svg'
- theme.layout_floating = theme.icons .. 'layouts/floating.svg'
-
- -- Taglist
- theme.taglist_bg_empty = theme.background .. '99'
- theme.taglist_bg_occupied = '#ffffff' .. '1A'
- theme.taglist_bg_urgent = '#E91E63' .. '99'
- theme.taglist_bg_focus = theme.background
- theme.taglist_spacing = dpi(0)
-
- -- Tasklist
- theme.tasklist_font = 'Inter Regular 10'
- theme.tasklist_bg_normal = theme.background .. '99'
- theme.tasklist_bg_focus = theme.background
- theme.tasklist_bg_urgent = '#E91E63' .. '99'
- theme.tasklist_fg_focus = '#DDDDDD'
- theme.tasklist_fg_urgent = '#ffffff'
- theme.tasklist_fg_normal = '#AAAAAA'
-
- -- Notification
- theme.notification_position = 'top_right'
- theme.notification_bg = theme.transparent
- theme.notification_margin = dpi(5)
- theme.notification_border_width = dpi(0)
- theme.notification_border_color = theme.transparent
- theme.notification_spacing = dpi(5)
- theme.notification_icon_resize_strategy = 'center'
- theme.notification_icon_size = dpi(32)
-
- -- Client Snap Theme
- theme.snap_bg = theme.background
- theme.snap_shape = gears.shape.rectangle
- theme.snap_border_width = dpi(15)
-
- -- Hotkey popup
- theme.hotkeys_font = 'Inter Bold'
- theme.hotkeys_description_font = 'Inter Regular Regular'
- theme.hotkeys_bg = theme.background
- theme.hotkeys_group_margin = dpi(20)
-end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/floppy/theme/floppy-theme/init.lua b/config/awesome/floppy/theme/floppy-theme/init.lua
deleted file mode 100644
index 7124c9730..000000000
--- a/config/awesome/floppy/theme/floppy-theme/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local filesystem = require('gears.filesystem')
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-
-local theme = {}
-
-theme.icons = theme_dir .. '/icons/'
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Colorscheme
-theme.system_black_dark = '#3D4C5F'
-theme.system_black_light = '#56687E'
-
-theme.system_red_dark = '#EE4F84'
-theme.system_red_light = '#F48FB1'
-
-theme.system_green_dark = '#53E2AE'
-theme.system_green_light = '#A1EFD3'
-
-theme.system_yellow_dark = '#F1FF52'
-theme.system_yellow_light = '#F1FA8C'
-
-theme.system_blue_dark = '#6498EF'
-theme.system_blue_light = '#92B6F4'
-
-theme.system_magenta_dark = '#985EFF'
-theme.system_magenta_light = '#BD99FF'
-
-theme.system_cyan_dark = '#24D1E7'
-theme.system_cyan_light = '#87DFEB'
-
-theme.system_white_dark = '#E5E5E5'
-theme.system_white_light = '#F8F8F2'
-
--- Accent color
-theme.accent = theme.system_blue_dark
-
--- Background color
-theme.background = '#000000' .. '66'
-
--- Transparent
-theme.transparent = '#00000000'
-
--- Awesome icon
-theme.awesome_icon = theme.icons .. 'awesome.svg'
-
-local awesome_overrides = function(theme) end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/floppy/theme/init.lua b/config/awesome/floppy/theme/init.lua
deleted file mode 100644
index 23b0af596..000000000
--- a/config/awesome/floppy/theme/init.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local gtable = require('gears.table')
-local default_theme = require('theme.default-theme')
--- PICK THEME HERE
-local theme = require('theme.floppy-theme')
-
-local final_theme = {}
-gtable.crush(final_theme, default_theme.theme)
-gtable.crush(final_theme, theme.theme)
-default_theme.awesome_overrides(final_theme)
-theme.awesome_overrides(final_theme)
-
-return final_theme
diff --git a/config/awesome/floppy/widget/airplane-mode/clickable-container.lua b/config/awesome/floppy/widget/airplane-mode/clickable-container.lua
deleted file mode 100755
index f53174061..000000000
--- a/config/awesome/floppy/widget/airplane-mode/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/floppy/widget/airplane-mode/init.lua b/config/awesome/floppy/widget/airplane-mode/init.lua
deleted file mode 100755
index 1a15c86c2..000000000
--- a/config/awesome/floppy/widget/airplane-mode/init.lua
+++ /dev/null
@@ -1,169 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.airplane-mode.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/airplane-mode/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local ap_state = false
-
-local action_name = wibox.widget {
- text = 'Airplane Mode',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-local update_imagebox = function()
- if ap_state then
- button_widget.icon:set_image(icons.toggled_on)
- else
- button_widget.icon:set_image(icons.toggled_off)
- end
-end
-
-local check_airplane_mode_state = function()
-
- local cmd = 'cat ' .. widget_dir .. 'airplane_mode'
-
- awful.spawn.easy_async_with_shell(
- cmd,
- function(stdout)
- local status = stdout
-
- if status:match("true") then
- ap_state = true
- elseif status:match("false") then
- ap_state = false
- else
- ap_state = false
- awful.spawn.easy_async_with_shell(
- 'echo "false" > ' .. widget_dir .. 'airplane_mode',
- function(stdout)
- end
- )
- end
-
- update_imagebox()
- end
- )
-end
-
-check_airplane_mode_state()
-
-local ap_off_cmd = [[
-
- rfkill unblock wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode disabled!',
- message = 'Initializing network devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode-off' .. '.svg' .. [['
- })
- "
- ]] .. "echo false > " .. widget_dir .. "airplane_mode" .. [[
-]]
-
-local ap_on_cmd = [[
-
- rfkill block wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode enabled!',
- message = 'Disabling radio devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode' .. '.svg' .. [['
- })
- "
- ]] .. "echo true > " .. widget_dir .. "airplane_mode" .. [[
-]]
-
-
-local toggle_action = function()
- if ap_state then
- awful.spawn.easy_async_with_shell(
- ap_off_cmd,
- function(stdout)
- ap_state = false
- update_imagebox()
- end
- )
- else
- awful.spawn.easy_async_with_shell(
- ap_on_cmd,
- function(stdout)
- ap_state = true
- update_imagebox()
- end
- )
- end
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-gears.timer {
- timeout = 5,
- autostart = true,
- callback = function()
- check_airplane_mode_state()
- end
-}
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return action_widget
diff --git a/config/awesome/floppy/widget/battery/init.lua b/config/awesome/floppy/widget/battery/init.lua
deleted file mode 100644
index ca0c3de91..000000000
--- a/config/awesome/floppy/widget/battery/init.lua
+++ /dev/null
@@ -1,209 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/battery/icons/'
-
-local return_button = function()
-
- local battery_imagebox = wibox.widget {
- nil,
- {
- id = 'icon',
- image = widget_icon_dir .. 'battery' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- }
-
- local battery_percentage_text = wibox.widget {
- id = 'percent_text',
- text = '100%',
- font = 'Inter Bold 11',
- align = 'center',
- valign = 'center',
- visible = false,
- widget = wibox.widget.textbox
- }
-
-
- local battery_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(0),
- battery_imagebox,
- battery_percentage_text
- }
-
-
- local battery_button = wibox.widget {
- {
- battery_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- battery_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.power_manager , false)
- end
- )
- )
- )
-
- local battery_tooltip = awful.tooltip {
- objects = {battery_button},
- text = 'None',
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
-
- local get_battery_info = function()
- awful.spawn.easy_async_with_shell(
- 'upower -i $(upower -e | grep BAT)',
- function(stdout)
- if stdout == nil or stdout == '' then
- battery_tooltip:set_text('No battery detected!')
- return
- end
-
- -- Remove new line from the last line
- battery_tooltip:set_text(stdout:sub(1, -2))
- end
- )
- end
- get_battery_info()
-
- battery_widget:connect_signal(
- 'mouse::enter',
- function()
- get_battery_info()
- end
- )
-
- local last_battery_check = os.time()
- local notify_critcal_battery = true
-
- local show_battery_warning = function()
- naughty.notification ({
- icon = widget_icon_dir .. 'battery-alert.svg',
- app_name = 'System notification',
- title = 'Battery is dying!',
- message = 'Hey, I think we have a problem here. Save your work before reaching the oblivion.',
- urgency = 'critical'
- })
- end
-
- local update_battery = function(status)
-
- awful.spawn.easy_async_with_shell(
- [[sh -c "
- upower -i $(upower -e | grep BAT) | grep percentage | awk '{print \$2}' | tr -d '\n%'
- "]],
- function(stdout)
- local battery_percentage = tonumber(stdout)
-
- -- Stop if null
- if not battery_percentage then
- return
- end
-
- battery_widget.spacing = dpi(5)
- battery_percentage_text.visible = true
- battery_percentage_text:set_text(battery_percentage .. '%')
-
- local icon_name = 'battery'
-
- -- Fully charged
- if (status == 'fully-charged' or status == 'charging') and battery_percentage == 100 then
- icon_name = icon_name .. '-' .. 'fully-charged'
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- return
- end
-
- -- Critical level warning message
- if (battery_percentage > 0 and battery_percentage < 10) and status == 'discharging' then
- icon_name = icon_name .. '-' .. 'alert-red'
-
- if os.difftime(os.time(), last_battery_check) > 300 or notify_critcal_battery then
- last_battery_check = os.time()
- notify_critcal_battery = false
- show_battery_warning()
- end
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- return
- end
-
- -- Discharging
- if battery_percentage > 0 and battery_percentage < 20 then
- icon_name = icon_name .. '-' .. status .. '-' .. '10'
-
- elseif battery_percentage >= 20 and battery_percentage < 30 then
- icon_name = icon_name .. '-' .. status .. '-' .. '20'
-
- elseif battery_percentage >= 30 and battery_percentage < 50 then
- icon_name = icon_name .. '-' .. status .. '-' .. '30'
-
- elseif battery_percentage >= 50 and battery_percentage < 60 then
- icon_name = icon_name .. '-' .. status .. '-' .. '50'
-
- elseif battery_percentage >= 60 and battery_percentage < 80 then
- icon_name = icon_name .. '-' .. status .. '-' .. '60'
-
- elseif battery_percentage >= 80 and battery_percentage < 90 then
- icon_name = icon_name .. '-' .. status .. '-' .. '80'
-
- elseif battery_percentage >= 90 and battery_percentage < 100 then
- icon_name = icon_name .. '-' .. status .. '-' .. '90'
- end
-
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- end
- )
- end
-
- -- Watch status if charging, discharging, fully-charged
- watch(
- [[sh -c "
- upower -i $(upower -e | grep BAT) | grep state | awk '{print \$2}' | tr -d '\n'
- "]],
- 5,
- function(widget, stdout)
- local status = stdout:gsub('%\n', '')
-
- -- If no output or no battery detected
- if status == nil or status == '' then
- battery_widget.spacing = dpi(0)
- battery_percentage_text.visible = false
- battery_tooltip:set_text('No battery detected!')
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'battery-unknown' .. '.svg'))
- return
- end
-
- update_battery(status)
- end
- )
-
- return battery_button
-end
-
-return return_button
diff --git a/config/awesome/floppy/widget/blue-light/clickable-container.lua b/config/awesome/floppy/widget/blue-light/clickable-container.lua
deleted file mode 100755
index f53174061..000000000
--- a/config/awesome/floppy/widget/blue-light/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/floppy/widget/blue-light/init.lua b/config/awesome/floppy/widget/blue-light/init.lua
deleted file mode 100644
index 093fcb0b7..000000000
--- a/config/awesome/floppy/widget/blue-light/init.lua
+++ /dev/null
@@ -1,124 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.blue-light.clickable-container')
-local icons = require('theme.icons')
-local blue_light_state = nil
-
-local action_name = wibox.widget {
- text = 'Blue Light',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-
-local update_imagebox = function()
- local button_icon = button_widget.icon
- if blue_light_state then
- button_icon:set_image(icons.toggled_on)
- else
- button_icon:set_image(icons.toggled_off)
- end
-end
-
-local kill_state = function()
- awful.spawn.easy_async_with_shell(
- [[
- redshift -x
- kill -9 $(pgrep redshift)
- ]],
- function(stdout)
- stdout = tonumber(stdout)
- if stdout then
- blue_light_state = false
- update_imagebox()
- end
- end
- )
-end
-
-kill_state()
-
-local toggle_action = function()
- awful.spawn.easy_async_with_shell(
- [[
- if [ ! -z $(pgrep redshift) ];
- then
- redshift -x && pkill redshift && killall redshift
- echo 'OFF'
- else
- redshift -l 0:0 -t 4500:4500 -r &>/dev/null &
- echo 'ON'
- fi
- ]],
- function(stdout)
- if stdout:match('ON') then
- blue_light_state = true
- else
- blue_light_state = false
- end
- update_imagebox()
- end
- )
-
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-awesome.connect_signal(
- 'widget::blue_light:toggle',
- function()
- toggle_action()
- end
-)
-
-return action_widget
diff --git a/config/awesome/floppy/widget/bluetooth-toggle/clickable-container.lua b/config/awesome/floppy/widget/bluetooth-toggle/clickable-container.lua
deleted file mode 100644
index f53174061..000000000
--- a/config/awesome/floppy/widget/bluetooth-toggle/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/floppy/widget/bluetooth-toggle/init.lua b/config/awesome/floppy/widget/bluetooth-toggle/init.lua
deleted file mode 100644
index a4d7016a9..000000000
--- a/config/awesome/floppy/widget/bluetooth-toggle/init.lua
+++ /dev/null
@@ -1,164 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.bluetooth-toggle.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/bluetooth-toggle/icons/'
-local icons = require('theme.icons')
-local device_state = false
-
-local action_name = wibox.widget {
- text = 'Bluetooth Connection',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-
-local update_imagebox = function()
- if device_state then
- button_widget.icon:set_image(icons.toggled_on)
- else
- button_widget.icon:set_image(icons.toggled_off)
- end
-end
-
-
-local check_device_state = function()
- awful.spawn.easy_async_with_shell(
- 'rfkill list bluetooth',
- function(stdout)
- if stdout:match('Soft blocked: yes') then
- device_state = false
- else
- device_state = true
- end
- update_imagebox()
- end
- )
-end
-
-check_device_state()
-
-
-local power_on_cmd = [[
- rfkill unblock bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'Initializing bluetooth device...',
- icon = ']] .. widget_icon_dir .. 'loading' .. '.svg' .. [['
- })
- "
-
- # Add a delay here so we can enable the bluetooth
- sleep 1
-
- bluetoothctl power on
-]]
-
-local power_off_cmd = [[
- bluetoothctl power off
- rfkill block bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'The bluetooth device has been disabled.',
- icon = ']] .. widget_icon_dir .. 'bluetooth-off' .. '.svg' .. [['
- })
- "
-]]
-
-
-local toggle_action = function()
- if device_state then
- device_state = false
- awful.spawn.easy_async_with_shell(
- power_off_cmd,
- function(stdout)
- update_imagebox()
- end
- )
- else
- device_state = true
- awful.spawn.easy_async_with_shell(
- power_on_cmd,
- function(stdout)
- update_imagebox()
- end
- )
- end
-end
-
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- check_device_state()
- collectgarbage('collect')
- end
-)
-
-
-return action_widget
diff --git a/config/awesome/floppy/widget/blur-slider/clickable-container.lua b/config/awesome/floppy/widget/blur-slider/clickable-container.lua
deleted file mode 100644
index f53174061..000000000
--- a/config/awesome/floppy/widget/blur-slider/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/floppy/widget/blur-slider/init.lua b/config/awesome/floppy/widget/blur-slider/init.lua
deleted file mode 100644
index 4d7275bb6..000000000
--- a/config/awesome/floppy/widget/blur-slider/init.lua
+++ /dev/null
@@ -1,194 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Blur Strength',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.effects,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- icon,
- widget = clickable_container,
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'blur_strength_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local blur_slider = slider.blur_strength_slider
-
-local update_slider_value = function()
-
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
- awk 'NR==1 {print $3}' | tr -d ';'
- "]],
- function(stdout, stderr)
- local strength = stdout:match('%d+')
- blur_strength = tonumber(strength) / 20 * 100
- blur_slider:set_value(tonumber(blur_strength))
- start_up = false
- end
- )
-end
-
--- Update on startup
-update_slider_value()
-
-local action_jump = function()
- local sli_value = blur_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 25 then
- new_value = 25
- elseif sli_value >= 25 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- blur_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
-local adjust_blur = function(power)
-
- awful.spawn.with_shell(
- [[bash -c "
- sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
- $HOME/.config/awesome/configuration/picom.conf
- "]]
- )
-end
-
-blur_slider:connect_signal(
- 'property::value',
- function()
- if not start_up then
- strength = blur_slider:get_value() / 50 * 10
- adjust_blur(strength)
- end
- end
-)
-
--- Adjust slider value to change blur strength
-awesome.connect_signal(
- 'widget::blur:increase',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() + 10
-
- -- No more than 100!
- if blur_value > 100 then
- blur_slider:set_value(100)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
--- Decrease blur
-awesome.connect_signal(
- 'widget::blur:decrease',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() - 10
-
- -- No negatives!
- if blur_value < 0 then
- blur_slider:set_value(0)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
-local volume_setting = wibox.widget {
- {
- {
- action_level,
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return volume_setting
diff --git a/config/awesome/floppy/widget/blur-toggle/clickable-container.lua b/config/awesome/floppy/widget/blur-toggle/clickable-container.lua
deleted file mode 100644
index f53174061..000000000
--- a/config/awesome/floppy/widget/blur-toggle/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/floppy/widget/blur-toggle/init.lua b/config/awesome/floppy/widget/blur-toggle/init.lua
deleted file mode 100644
index fe30b3ff1..000000000
--- a/config/awesome/floppy/widget/blur-toggle/init.lua
+++ /dev/null
@@ -1,139 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local clickable_container = require('widget.blur-toggle.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-local frame_status = nil
-
-local action_name = wibox.widget {
- text = 'Blur Effects',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-local update_imagebox = function()
- if action_status then
- button_widget.icon:set_image(icons.toggled_on)
- else
- button_widget.icon:set_image(icons.toggled_off)
- end
-end
-
-local check_blur_status = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'method = \"none\";' ]] .. config_dir .. [[/configuration/picom.conf | tr -d '[\"\;\=\ ]'
- "]],
- function(stdout, stderr)
- if stdout:match('methodnone') then
- action_status = false
- else
- action_status = true
- end
-
- update_imagebox()
- end
- )
-end
-
-check_blur_status()
-
-local toggle_blur = function(togglemode)
-
- local toggle_blur_script = [[bash -c "
- # Check picom if it's not running then start it
- if [ -z $(pgrep picom) ]; then
- picom -b --experimental-backends --dbus --config ]] .. config_dir .. [[configuration/picom.conf
- fi
-
- case ]] .. togglemode .. [[ in
- 'enable')
- sed -i -e 's/method = \"none\"/method = \"dual_kawase\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- 'disable')
- sed -i -e 's/method = \"dual_kawase\"/method = \"none\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- esac
- "]]
-
- -- Run the script
- awful.spawn.with_shell(toggle_blur_script)
-
-end
-
-local toggle_blur_fx = function()
- local state = nil
- if action_status then
- action_status = false
- state = 'disable'
- else
- action_status = true
- state = 'enable'
- end
- toggle_blur(state)
- update_imagebox()
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_blur_fx()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-awesome.connect_signal(
- 'widget::blur:toggle',
- function()
- toggle_blur_fx()
- end
-)
-
-
-return action_widget
diff --git a/config/awesome/floppy/widget/brightness-slider/init.lua b/config/awesome/floppy/widget/brightness-slider/init.lua
deleted file mode 100644
index aa53692ca..000000000
--- a/config/awesome/floppy/widget/brightness-slider/init.lua
+++ /dev/null
@@ -1,180 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- icon,
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'brightness_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-
-local brightness_slider = slider.brightness_slider
-
-brightness_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = brightness_slider:get_value()
-
- spawn('light -S ' ..
- math.max(brightness_level, 5),
- false
- )
-
- -- Update brightness osd
- awesome.emit_signal(
- 'module::brightness_osd',
- brightness_level
- )
- end
-)
-
-brightness_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if brightness_slider:get_value() > 100 then
- brightness_slider:set_value(100)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if brightness_slider:get_value() < 0 then
- brightness_slider:set_value(0)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- 'light -G',
- function(stdout)
- local brightness = string.match(stdout, '(%d+)')
- brightness_slider:set_value(tonumber(brightness))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = brightness_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- brightness_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::brightness',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::brightness:update',
- function(value)
- brightness_slider:set_value(tonumber(value))
- end
-)
-
-local brightness_setting = wibox.widget {
- {
- {
- action_level,
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return brightness_setting
diff --git a/config/awesome/floppy/widget/clickable-container/init.lua b/config/awesome/floppy/widget/clickable-container/init.lua
deleted file mode 100644
index 6b57aa247..000000000
--- a/config/awesome/floppy/widget/clickable-container/init.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-
-local create_click_events = function(widget)
-
- local container = wibox.widget {
- widget,
- widget = wibox.container.background
- }
-
- -- Old and new widget
- local old_cursor, old_wibox
-
- -- Mouse hovers on the widget
- container:connect_signal(
- 'mouse::enter',
- function()
- container.bg = beautiful.groups_bg
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- -- Mouse leaves the widget
- container:connect_signal(
- 'mouse::leave',
- function()
- container.bg = beautiful.leave_event
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- -- Mouse pressed the widget
- container:connect_signal(
- 'button::press',
- function()
- container.bg = beautiful.press_event
- end
- )
-
- -- Mouse releases the widget
- container:connect_signal(
- 'button::release',
- function()
- container.bg = beautiful.release_event
- end
- )
-
- return container
-end
-
-return create_click_events
diff --git a/config/awesome/floppy/widget/clock/init.lua b/config/awesome/floppy/widget/clock/init.lua
deleted file mode 100644
index 809fb1fb4..000000000
--- a/config/awesome/floppy/widget/clock/init.lua
+++ /dev/null
@@ -1,158 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config = require('configuration.config')
-local military_mode = config.widget.clock.military_mode or false
-
-local create_clock = function(s)
-
- local clock_format = nil
- if not military_mode then
- clock_format = '%I:%M %p'
- else
- clock_format = '%H:%M'
- end
-
- s.clock_widget = wibox.widget.textclock(
- clock_format,
- 1
- )
-
- s.clock_widget = wibox.widget {
- {
- s.clock_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- s.clock_widget:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- s.clock_widget:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- s.clock_tooltip = awful.tooltip
- {
- objects = {s.clock_widget},
- mode = 'outside',
- delay_show = 1,
- preferred_positions = {'right', 'left', 'top', 'bottom'},
- preferred_alignments = {'middle', 'front', 'back'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- local ordinal = nil
-
- local day = os.date('%d')
- local month = os.date('%B')
-
- local first_digit = string.sub(day, 0, 1)
- local last_digit = string.sub(day, -1)
-
- if first_digit == '0' then
- day = last_digit
- end
-
- if last_digit == '1' and day ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and day ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and day ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- local date_str = 'Today is the ' ..
- '' .. day .. ordinal ..
- ' of ' .. month .. '.\n' ..
- 'And it\'s fucking ' .. os.date('%A')
-
- return date_str
- end,
- }
-
- s.clock_widget:connect_signal(
- 'button::press',
- function(self, lx, ly, button)
- -- Hide the tooltip when you press the clock widget
- if s.clock_tooltip.visible and button == 1 then
- s.clock_tooltip.visible = false
- end
- end
- )
-
- s.month_calendar = awful.widget.calendar_popup.month({
- start_sunday = true,
- spacing = dpi(5),
- font = 'Inter Regular 10',
- long_weekdays = true,
- margin = dpi(5),
- screen = s,
- style_month = {
- border_width = dpi(0),
- bg_color = beautiful.background,
- padding = dpi(20),
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, beautiful.groups_radius
- )
- end
- },
- style_header = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_weekday = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_normal = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_focus = {
- border_width = dpi(0),
- border_color = beautiful.fg_normal,
- bg_color = beautiful.accent,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, dpi(4)
- )
- end,
- },
- })
-
- s.month_calendar:attach(
- s.clock_widget,
- 'tc',
- {
- on_pressed = true,
- on_hover = false
- }
- )
-
- return s.clock_widget
-end
-
-return create_clock
diff --git a/config/awesome/floppy/widget/cpu-meter/init.lua b/config/awesome/floppy/widget/cpu-meter/init.lua
deleted file mode 100644
index b68f44bce..000000000
--- a/config/awesome/floppy/widget/cpu-meter/init.lua
+++ /dev/null
@@ -1,74 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = require('awful.widget.watch')
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local total_prev = 0
-local idle_prev = 0
-
-local slider = wibox.widget {
- nil,
- {
- id = 'cpu_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-watch(
- [[bash -c "
- cat /proc/stat | grep '^cpu '
- "]],
- 10,
- function(_, stdout)
- local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
- stdout:match('(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s')
-
- local total = user + nice + system + idle + iowait + irq + softirq + steal
-
- local diff_idle = idle - idle_prev
- local diff_total = total - total_prev
- local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
-
- slider.cpu_usage:set_value(diff_usage)
-
- total_prev = total
- idle_prev = idle
- collectgarbage('collect')
- end
-)
-
-local cpu_meter = wibox.widget {
- {
- {
- {
- image = icons.chart,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return cpu_meter
diff --git a/config/awesome/floppy/widget/email/init.lua b/config/awesome/floppy/widget/email/init.lua
deleted file mode 100644
index 711615832..000000000
--- a/config/awesome/floppy/widget/email/init.lua
+++ /dev/null
@@ -1,410 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/email/icons/'
-
-local config = require('configuration.config')
-local secrets = {
- email_address = config.widget.email.address,
- app_password = config.widget.email.app_password,
- imap_server = config.widget.email.imap_server,
- port = config.widget.email.port
-}
-
-local unread_email_count = 0
-local startup_show = true
-
-local scroll_container = function(widget)
- return wibox.widget {
- widget,
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
- }
-end
-
-local email_icon_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'email.svg',
- resize = true,
- forced_height = dpi(45),
- forced_width = dpi(45),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local email_from_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'From:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_from = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'loading@stdout.sh',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_subject_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Subject:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_subject = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Loading data',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_date_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Local Date:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_date = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Loading date...',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_report = wibox.widget{
- {
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- email_icon_widget,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- {
- email_from_text,
- scroll_container(email_recent_from),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- },
- {
- email_subject_text,
- scroll_container(email_recent_subject),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- },
- {
- email_date_text,
- scroll_container(email_recent_date),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- }
- },
- nil
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(92),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
-end,
-widget = wibox.container.background
-}
-
-local email_details_tooltip = awful.tooltip
-{
- text = 'Loading...',
- objects = {email_icon_widget},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
-}
-
-local fetch_email_command = [[
-python3 - < 1 then
- title = 'You have ' .. unread_counter .. ' unread emails!'
- else
- title = 'You have ' .. unread_counter .. ' unread email!'
- end
-
- naughty.notification ({
- app_name = 'Email',
- title = title,
- message = email_data,
- timeout = 30,
- icon = widget_icon_dir .. 'email-unread.svg'
- })
-end
-
-local notify_new_email = function(count, from, subject)
- if not startup_show and (tonumber(count) > tonumber(unread_email_count)) then
- unread_email_count = tonumber(count)
-
- local message = "From: " .. from ..
- "\nSubject: " .. subject
-
- naughty.notification ({
- app_name = 'Email',
- title = 'You have a new unread email!',
- message = message,
- timeout = 10,
- icon = widget_icon_dir .. 'email-unread.svg'
- })
- else
- unread_email_count = tonumber(count)
- end
-
-end
-
-local set_email_data_tooltip = function(email_data)
- local email_data = email_data:match('(From:.*)')
- local counter = "Unread Count: " .. unread_email_count
- email_details_tooltip:set_markup(counter .. '\n\n' .. email_data)
-end
-
-local set_widget_markup = function(from, subject, date, tooltip)
-
- email_recent_from:set_markup(from:gsub('%\n', ''))
- email_recent_subject:set_markup(subject:gsub('%\n', ''))
- email_recent_date:set_markup(date:gsub('%\n', ''))
-
- if tooltip then
- email_details_tooltip:set_markup(tooltip)
- end
-end
-
-local set_no_connection_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Check network connection!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'No internet connection!'
- )
-end
-
-local set_invalid_credentials_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Invalid Credentials!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'You have an invalid credentials!'
- )
-end
-
-local set_latest_email_data = function(email_data)
-
- local unread_count = email_data:match('Unread Count: (.-)From:'):sub(1, -2)
- local recent_from = email_data:match('From: (.-)Subject:'):sub(1, -2)
- local recent_subject = email_data:match('Subject: (.-)Local Date:'):sub(1, -2)
- local recent_date = email_data:match('Local Date: (.-)\n')
-
- recent_from = recent_from:match('<(.*)>') or recent_from:match('<(.*)>') or recent_from
-
- local count = tonumber(unread_count)
- if count > 0 and count <= 9 then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email-'.. tostring(count) .. '.svg')
- elseif count > 9 then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email-9+.svg')
- end
-
- set_widget_markup(
- recent_from,
- recent_subject,
- recent_date
- )
-
- notify_new_email(unread_count, recent_from, recent_subject)
-end
-
-local set_empty_inbox_msg = function()
- set_widget_markup(
- 'empty@stdout.sh',
- 'Empty inbox',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'Empty inbox.'
- )
-end
-
-local fetch_email_data = function()
- awful.spawn.easy_async_with_shell(
- fetch_email_command,
- function(stdout)
- stdout = gears.string.xml_escape(stdout:sub(1, -2))
-
- if stdout:match('Temporary failure in name resolution') then
- set_no_connection_msg()
- return
- elseif stdout:match('Invalid credentials') then
- set_invalid_credentials_msg()
- return
- elseif stdout:match('Unread Count: 0') then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email.svg')
- set_empty_inbox_msg()
- return
- elseif not stdout:match('Unread Count: (.-)From:') then
- return
- elseif not stdout or stdout == '' then
- return
- end
-
- set_latest_email_data(stdout)
- set_email_data_tooltip(stdout)
-
- if startup_show then
- notify_all_unread_email(stdout)
- startup_show = false
- end
- end
- )
-end
-
-local set_missing_secrets_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Credentials are missing!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'Missing credentials!'
- )
-end
-
-local check_secrets = function()
- if secrets.email_address == '' or secrets.app_password == '' or secrets.imap_server == '' or secrets.port == '' then
- set_missing_secrets_msg()
- return
- else
- fetch_email_data()
- end
-end
-
-check_secrets()
-
-local update_widget_timer = gears.timer {
- timeout = 30,
- autostart = true,
- call_now = true,
- callback = function()
- check_secrets()
- end
-}
-
-email_report:connect_signal(
- 'mouse::enter',
- function()
- check_secrets()
- end
-)
-
-awesome.connect_signal(
- 'system::network_connected',
- function()
- gears.timer.start_new(
- 5,
- function()
- check_secrets()
- end
- )
- end
-)
-
-return email_report
diff --git a/config/awesome/floppy/widget/end-session/init.lua b/config/awesome/floppy/widget/end-session/init.lua
deleted file mode 100644
index 49148486b..000000000
--- a/config/awesome/floppy/widget/end-session/init.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local create_widget = function()
- local exit_widget = {
- {
- {
- {
- image = icons.logout,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- {
- text = 'End work session',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
- }
-
- local exit_button = wibox.widget {
- {
- exit_widget,
- widget = clickable_container
-
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- exit_button:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- screen.primary.left_panel:toggle()
- awesome.emit_signal('module::exit_screen:show')
- end
- )
- )
- )
-
- return exit_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/widget/harddrive-meter/init.lua b/config/awesome/floppy/widget/harddrive-meter/init.lua
deleted file mode 100644
index b3972c323..000000000
--- a/config/awesome/floppy/widget/harddrive-meter/init.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local watch = require('awful.widget.watch')
-local icons = require('theme.icons')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = wibox.widget {
- nil,
- {
- id = 'hdd_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-watch(
- [[bash -c "df -h /home|grep '^/' | awk '{print $5}'"]],
- 10,
- function(_, stdout)
- local space_consumed = stdout:match('(%d+)')
- slider.hdd_usage:set_value(tonumber(space_consumed))
- collectgarbage('collect')
- end
-)
-
-
-local harddrive_meter = wibox.widget {
- {
- {
- {
- image = icons.harddisk,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return harddrive_meter
diff --git a/config/awesome/floppy/widget/info-center-toggle/init.lua b/config/awesome/floppy/widget/info-center-toggle/init.lua
deleted file mode 100644
index cad865610..000000000
--- a/config/awesome/floppy/widget/info-center-toggle/init.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/info-center-toggle/icons/'
-local clickable_container = require('widget.clickable-container')
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'info-center.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.screen.focused().right_panel:toggle()
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/floppy/widget/mpd/content/album-cover.lua b/config/awesome/floppy/widget/mpd/content/album-cover.lua
deleted file mode 100755
index 54bd42b89..000000000
--- a/config/awesome/floppy/widget/mpd/content/album-cover.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-
-local album_cover_img = wibox.widget {
- {
- id = 'cover',
- image = widget_icon_dir .. 'vinyl.svg',
- resize = true,
- clip_shape = gears.shape.rounded_rect,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.vertical
-}
-
-return album_cover_img
diff --git a/config/awesome/floppy/widget/mpd/content/init.lua b/config/awesome/floppy/widget/mpd/content/init.lua
deleted file mode 100644
index 9ab0ffde1..000000000
--- a/config/awesome/floppy/widget/mpd/content/init.lua
+++ /dev/null
@@ -1,9 +0,0 @@
--- Return UI Table
-return {
- album_cover = require('widget.mpd.content.album-cover'),
- progress_bar = require('widget.mpd.content.progress-bar'),
- track_time = require('widget.mpd.content.track-time'),
- song_info = require('widget.mpd.content.song-info'),
- media_buttons = require('widget.mpd.content.media-buttons'),
- volume_slider = require('widget.mpd.content.volume-slider'),
-}
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/mpd/content/media-buttons.lua b/config/awesome/floppy/widget/mpd/content/media-buttons.lua
deleted file mode 100755
index dc460dd28..000000000
--- a/config/awesome/floppy/widget/mpd/content/media-buttons.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local media_buttons = {}
-
-media_buttons.play_button_image = wibox.widget {
- {
- id = 'play',
- image = widget_icon_dir .. 'play.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.next_button_image = wibox.widget {
- {
- id = 'next',
- image = widget_icon_dir .. 'next.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.prev_button_image = wibox.widget {
- {
- id = 'prev',
- image = widget_icon_dir .. 'prev.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.repeat_button_image = wibox.widget {
- {
- id = 'rep',
- image = widget_icon_dir .. 'repeat-on.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.random_button_image = wibox.widget {
- {
- id = 'rand',
- image = widget_icon_dir .. 'random-on.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.play_button = wibox.widget {
- {
- media_buttons.play_button_image,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.next_button = wibox.widget {
- {
- media_buttons.next_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.prev_button = wibox.widget {
- {
- media_buttons.prev_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.repeat_button = wibox.widget {
- {
- media_buttons.repeat_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.random_button = wibox.widget {
- {
- media_buttons.random_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.navigate_buttons = wibox.widget {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- media_buttons.repeat_button,
- {
- layout = wibox.layout.fixed.horizontal,
- media_buttons.prev_button,
- media_buttons.play_button,
- media_buttons.next_button,
- forced_height = dpi(35),
- },
- media_buttons.random_button,
- forced_height = dpi(35),
-}
-
-return media_buttons
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/mpd/content/progress-bar.lua b/config/awesome/floppy/widget/mpd/content/progress-bar.lua
deleted file mode 100755
index a1033400e..000000000
--- a/config/awesome/floppy/widget/mpd/content/progress-bar.lua
+++ /dev/null
@@ -1,21 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local progressbar = wibox.widget {
- {
- id = 'music_bar',
- max_value = 100,
- forced_height = dpi(3),
- forced_width = dpi(100),
- color = '#ffffff',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_bar,
- widget = wibox.widget.progressbar
- },
- layout = wibox.layout.stack
-}
-
-return progressbar
diff --git a/config/awesome/floppy/widget/mpd/content/song-info.lua b/config/awesome/floppy/widget/mpd/content/song-info.lua
deleted file mode 100755
index 526478059..000000000
--- a/config/awesome/floppy/widget/mpd/content/song-info.lua
+++ /dev/null
@@ -1,64 +0,0 @@
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local song_info = {}
-
-song_info.music_title = wibox.widget {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- id = 'title',
- text = 'The song title is here',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- ellipsize = 'end',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 60,
- layout = wibox.container.scroll.horizontal
- },
- nil
-}
-
-song_info.music_artist = wibox.widget {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- id = 'artist',
- text = 'The artist name is here',
- font = 'Inter 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- layout = wibox.container.scroll.horizontal,
- fps = 60
- },
- nil
-}
-
-song_info.music_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- song_info.music_title,
- song_info.music_artist
-}
-
-return song_info
diff --git a/config/awesome/floppy/widget/mpd/content/track-time.lua b/config/awesome/floppy/widget/mpd/content/track-time.lua
deleted file mode 100755
index 6ffb5659e..000000000
--- a/config/awesome/floppy/widget/mpd/content/track-time.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local beautiful = require('beautiful')
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = beautiful.xresources.apply_dpi
-
-local time_info = {}
-
-time_info.time_status = wibox.widget {
- id = 'statustime',
- text = '00:00',
- font = 'Inter 8',
- align = 'center',
- valign = 'center',
- forced_height = dpi(10),
- widget = wibox.widget.textbox
-}
-
-time_info.time_duration = wibox.widget {
- id = 'durationtime',
- text = '00:00',
- font = 'Inter 8',
- align = 'center',
- valign = 'center',
- forced_height = dpi(10),
- widget = wibox.widget.textbox
-}
-
-time_info.time_track = wibox.widget {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- time_info.time_status,
- nil,
- time_info.time_duration
-}
-
-return time_info
diff --git a/config/awesome/floppy/widget/mpd/init.lua b/config/awesome/floppy/widget/mpd/init.lua
deleted file mode 100755
index eb4d25b5a..000000000
--- a/config/awesome/floppy/widget/mpd/init.lua
+++ /dev/null
@@ -1,73 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local clickable_container = require('widget.clickable-container')
-local music_box = require('widget.mpd.music-box')
-local toggle_music_box = music_box.toggle_music_box
-
-local return_button = function()
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'music.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- local music_tooltip = awful.tooltip
- {
- objects = {widget_button},
- text = 'None',
- mode = 'outside',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- align = 'right',
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- music_tooltip.visible = false
- awesome.emit_signal('widget::music', 'mouse')
- end
- )
- )
- )
-
- widget_button:connect_signal(
- "mouse::enter",
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc status',
- function(stdout)
- music_tooltip.text = string.gsub(stdout, '\n$', '')
- end
- )
- end
- )
-
-
- return widget_button
-
-end
-
-return return_button
diff --git a/config/awesome/floppy/widget/mpd/mpd-music-updater.lua b/config/awesome/floppy/widget/mpd/mpd-music-updater.lua
deleted file mode 100755
index c155caf0f..000000000
--- a/config/awesome/floppy/widget/mpd/mpd-music-updater.lua
+++ /dev/null
@@ -1,460 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local ui_content = require('widget.mpd.content')
-
-local album_cover = ui_content.album_cover
-local prog_bar = ui_content.progress_bar
-local track_time = ui_content.track_time
-local song_info = ui_content.song_info
-local vol_slider = ui_content.volume_slider
-local media_buttons = ui_content.media_buttons
-
-local apps = require('configuration.apps')
-
-local update_cover = function()
-
- local extract_script = [=[
- MUSIC_DIR="$(xdg-user-dir MUSIC)"
- TMP_DIR="/tmp/awesomewm/${USER}/"
- TMP_COVER_PATH=${TMP_DIR}"cover.jpg"
- TMP_SONG="${TMP_DIR}current-song"
-
- CHECK_EXIFTOOL=$(command -v exiftool)
-
- if [ ! -d "${TMP_DIR}" ]; then
- mkdir -p "${TMP_DIR}";
- fi
-
- if [ ! -z "$CHECK_EXIFTOOL" ]; then
-
- SONG="$MUSIC_DIR/$(mpc -p 6600 --format "%file%" current)"
- PICTURE_TAG="-Picture"
-
- if [[ "$SONG" == *".m4a" ]]; then
- PICTURE_TAG="-CoverArt"
- fi
-
- # Extract album cover using perl-image-exiftool
- exiftool -b "$PICTURE_TAG" "$SONG" > "$TMP_COVER_PATH"
-
- else
-
- #Extract image using ffmpeg
- cp "$MUSIC_DIR/$(mpc --format %file% current)" "$TMP_SONG"
-
- ffmpeg \
- -hide_banner \
- -loglevel 0 \
- -y \
- -i "$TMP_SONG" \
- -vf scale=300:-1 \
- "$TMP_COVER_PATH" > /dev/null 2>&1
-
- rm "$TMP_SONG"
- fi
-
- img_data=$(identify $TMP_COVER_PATH 2>&1)
-
- # Delete the cover.jpg if it's not a valid image
- if [[ $img_data == *"insufficient"* ]]; then
- rm $TMP_COVER_PATH
- fi
-
- if [ -f $TMP_COVER_PATH ]; then
- echo $TMP_COVER_PATH;
- fi
- ]=]
-
- awful.spawn.easy_async_with_shell(
- extract_script,
- function(stdout)
- local album_icon = widget_icon_dir .. 'vinyl.svg'
-
- if not (stdout == nil or stdout == '') then
- album_icon = stdout:gsub('%\n', '')
- end
-
- album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
-
- album_cover:emit_signal('widget::redraw_needed')
- album_cover:emit_signal('widget::layout_changed')
-
- collectgarbage('collect')
- end
- )
-end
-
-local update_progress_bar = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2 { split($4, a); print a[1]}' | tr -d '[\%\(\)]'
- ]],
- function(stdout)
- local progress_bar = prog_bar.music_bar
- if stdout ~= nil then
- progress_bar:set_value(tonumber(stdout))
- else
- progress_bar:set_value(0)
- end
- end
- )
-end
-
-local update_time_progress = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}' | tr -d '[\%\(\)]'
- ]],
- function(stdout)
- local time_status = track_time.time_status
- if stdout ~= nil then
- time_status:set_text(tostring(stdout))
- else
- time_status:set_text('00:00')
- end
- end
- )
-
-end
-
-local update_time_duration = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc --format %time% current
- ]],
- function(stdout)
- local time_duration = track_time.time_duration
- if stdout ~= nil then
- time_duration:set_text(tostring(stdout))
- else
- time_duration:set_text('99:59')
- end
- end
- )
-end
-
-local update_file = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- file_name = stdout:gsub('%\n','')
- end
- )
- return file_name
-end
-
-local update_title = function()
-
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %title% current
- ]],
- function(stdout)
-
- -- Remove new lines
- local title = stdout:gsub('%\n', '')
-
- local title_widget = song_info.music_title
- local title_text = song_info.music_title:get_children_by_id('title')[1]
-
- -- Make sure it's not null
- if not (title == nil or title == '') then
- title_text:set_text(title)
- else
-
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
-
- if not (stdout == nil or stdout == '') then
-
- file_name = stdout:gsub('%\n','')
-
- file_name = file_name:sub(1, title:len() - 5) .. ''
-
- title_text:set_text(file_name)
-
- else
- -- Set title
- title_text:set_text('Play some music!')
-
- end
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
- end
- )
-
- end
-
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
-
- collectgarbage('collect')
- end
- )
-end
-
-local update_artist = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %artist% current
- ]],
- function(stdout)
-
- -- Remove new lines
- local artist = stdout:gsub('%\n', '')
-
- local artist_widget = song_info.music_artist
-
- local artist_text = artist_widget:get_children_by_id('artist')[1]
-
- if not (artist == nil or artist == '') then
-
- artist_text:set_text(artist)
-
- else
-
-
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- if not (stdout == nil or stdout == '') then
-
- artist_text:set_text('unknown artist')
-
- else
- artist_text:set_text('or play some porn?')
-
- end
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- end
- )
- end
-
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- end
- )
-end
-
-local update_volume_slider = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc volume
- ]],
- function(stdout)
- local volume_slider = vol_slider.vol_slider
- if stdout:match('n/a') then
- return
- end
- volume_slider:set_value(tonumber(stdout:match('%d+')))
- end
- )
-end
-
-local check_if_playing = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2' | grep -o playing
- ]],
- function(stdout)
- local play_button_img = media_buttons.play_button_image.play
- if not (stdout == nil or stdout == '') then
- play_button_img:set_image(widget_icon_dir .. 'pause.svg')
- update_volume_slider()
- else
- play_button_img:set_image(widget_icon_dir .. 'play.svg')
- end
- end
- )
-end
-
-local check_repeat_status = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | sed -n '/random/p' | cut -c23-24 | sed 's/^[ \t]*//'
- ]],
- function(stdout)
- local repeat_button_img = media_buttons.repeat_button_image.rep
- if stdout:match('on') then
- repeat_button_img:set_image(widget_icon_dir .. 'repeat-on.svg')
- else
- repeat_button_img:set_image(widget_icon_dir .. 'repeat-off.svg')
- end
- end
- )
-end
-
-local check_random_status = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | sed -n '/random/p' | cut -c37-38 | sed 's/^[ \t]*//'
- ]],
- function(stdout)
-
- local random_button_image = media_buttons.random_button_image.rand
-
- if stdout:match("on") then
- random_button_image:set_image(widget_icon_dir .. 'random-on.svg')
- else
- random_button_image:set_image(widget_icon_dir .. 'random-off.svg')
- end
- end
- )
-end
-
-vol_slider.vol_slider:connect_signal(
- 'property::value',
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc volume ' .. vol_slider.vol_slider:get_value(),
- function() end
- )
- end
-)
-
-local update_all_content = function()
- update_progress_bar()
- update_time_progress()
- update_time_duration()
- update_title()
- update_artist()
- update_cover()
- check_if_playing()
- check_repeat_status()
- check_random_status()
- update_volume_slider()
-end
-
--- Update progress bar and time every N seconds
-gears.timer.start_new(
- 10,
- function()
- update_progress_bar()
- update_time_progress()
- return true
- end
-)
-
-local mpd_startup = [[
-# Let's make sure that MPD is running.
-if [ -z $(pgrep mpd) ]; then mpd; fi
-]]
-
-local mpd_change_event_listener = [[
-sh -c '
-mpc idleloop player
-'
-]]
-
-local kill_mpd_change_event_listener = [[
-ps x |
-grep "mpc idleloop player" |
-grep -v grep |
-awk '{print $1}' |
-xargs kill
-]]
-
-awful.spawn.easy_async_with_shell(
- mpd_startup,
- function ()
- awful.spawn.easy_async_with_shell(
- kill_mpd_change_event_listener,
- function ()
- update_all_content()
- awful.spawn.with_line_callback(
- mpd_change_event_listener,
- {
- stdout = function(line)
- update_all_content()
- end
- }
- )
- end
- )
- end
-)
-
-media_buttons.play_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc toggle')
- end
- )
- )
-)
-
-media_buttons.next_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc next')
- end
- )
- )
-)
-
-media_buttons.prev_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc prev')
- end
- )
- )
-)
-
-media_buttons.repeat_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc repeat',
- function ()
- check_repeat_status()
- end
- )
- end
- )
- )
-)
-
-media_buttons.random_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc random',
- function ()
- check_random_status()
- end
- )
- end
- )
- )
-)
diff --git a/config/awesome/floppy/widget/mpd/music-box.lua b/config/awesome/floppy/widget/mpd/music-box.lua
deleted file mode 100755
index 150ded879..000000000
--- a/config/awesome/floppy/widget/mpd/music-box.lua
+++ /dev/null
@@ -1,158 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local music_func = {}
-
-screen.connect_signal('request::desktop_decoration', function(s)
-
- -- Set music box geometry
- local music_box_margin = dpi(5)
- local music_box_height = dpi(375)
- local music_box_width = dpi(260)
- local music_box_x = nil
-
-
- s.musicpop = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'dock',
- screen = s,
- width = music_box_width,
- height = music_box_height,
- maximum_width = music_box_width,
- maximum_height = music_box_height,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = {'middle', 'back', 'front'},
- preferred_positions = {'left', 'right', 'top', 'bottom'},
-
- }
-
- local ui_content = require('widget.mpd.content')
-
- s.album = ui_content.album_cover
- s.progress_bar = ui_content.progress_bar
- s.time_track = ui_content.track_time.time_track
- s.song_info = ui_content.song_info.music_info
- s.media_buttons = ui_content.media_buttons.navigate_buttons
- s.volume_slider = ui_content.volume_slider.vol_slider
-
- s.musicpop : setup {
- {
- {
- layout = wibox.layout.fixed.vertical,
- expand = 'none',
- spacing = dpi(8),
- {
- s.album,
- bottom = dpi(5),
- widget = wibox.container.margin,
- },
- {
- layout = wibox.layout.fixed.vertical,
- {
- spacing = dpi(4),
- layout = wibox.layout.fixed.vertical,
- s.progress_bar,
- s.time_track,
- },
- s.song_info,
- s.media_buttons,
- s.volume_slider,
- },
- },
- top = dpi(15),
- left = dpi(15),
- right = dpi(15),
- widget = wibox.container.margin
-
- },
- bg = beautiful.background,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, beautiful.groups_radius
- )
- end,
- widget = wibox.container.background()
- }
-
- s.backdrop_music = wibox {
- ontop = true,
- visible = false,
- screen = s,
- type = 'utility',
- input_passthrough = false,
- bg = beautiful.transparent,
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- local toggle_music_box = function(type)
-
- local focused = awful.screen.focused()
- local music_box = focused.musicpop
- local music_backdrop = focused.backdrop_music
-
- if music_box.visible then
- music_backdrop.visible = not music_backdrop.visible
- music_box.visible = not music_box.visible
-
- else
-
- if type == 'keyboard' then
- music_backdrop.visible = true
- music_box.visible = true
- awful.placement.top_right(
- music_box,
- {
- margins = {
- top = dpi(5),
- right = dpi(music_box_x or 5)
- },
- honor_workarea = true
- })
- else
- local widget_button = mouse.current_widget_geometry
-
- music_backdrop.visible = true
- music_box:move_next_to(widget_button)
- music_box_x = (focused.geometry.width - music_box.x) - music_box_width
- end
- end
- end
-
- awesome.connect_signal(
- 'widget::music',
- function(type)
- toggle_music_box(type)
- end
- )
-
- s.backdrop_music:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_music_box()
- end
- )
- )
- )
-end)
-
-
-music_func.toggle_music_box = toggle_music_box
-
-local mpd_updater = require('widget.mpd.mpd-music-updater')
-
-return music_func
diff --git a/config/awesome/floppy/widget/notif-center/build-notifbox/empty-notifbox.lua b/config/awesome/floppy/widget/notif-center/build-notifbox/empty-notifbox.lua
deleted file mode 100644
index 447f95dd7..000000000
--- a/config/awesome/floppy/widget/notif-center/build-notifbox/empty-notifbox.lua
+++ /dev/null
@@ -1,65 +0,0 @@
--- This returns the "Wow, such empty." message.
-
-local wibox = require('wibox')
-
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = require('gears').filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = wibox.widget {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- nil,
- {
- image = widget_icon_dir .. 'empty-notification' .. '.svg',
- resize = true,
- forced_height = dpi(35),
- forced_width = dpi(35),
- widget = wibox.widget.imagebox,
- },
- nil
- },
- {
- text = 'Wow, such empty.',
- font = 'Inter Bold 14',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- {
- text = 'Come back later.',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- },
- margins = dpi(20),
- widget = wibox.container.margin
-
-}
-
-
-local separator_for_empty_msg = wibox.widget
-{
- orientation = 'vertical',
- opacity = 0.0,
- widget = wibox.widget.separator
-}
-
--- Make empty_notifbox center
-local centered_empty_notifbox = wibox.widget {
- expand = 'none',
- layout = wibox.layout.align.vertical,
- separator_for_empty_msg,
- empty_notifbox,
- separator_for_empty_msg
-}
-
-return centered_empty_notifbox
-
diff --git a/config/awesome/floppy/widget/notif-center/build-notifbox/init.lua b/config/awesome/floppy/widget/notif-center/build-notifbox/init.lua
deleted file mode 100644
index c4aa484b7..000000000
--- a/config/awesome/floppy/widget/notif-center/build-notifbox/init.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = require('widget.notif-center.build-notifbox.empty-notifbox')
-local notifbox_scroller = require('widget.notif-center.build-notifbox.notifbox-scroller')
-
-local notif_core = {}
-
-notif_core.remove_notifbox_empty = true
-
-notif_core.notifbox_layout = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- empty_notifbox
-}
-
-notifbox_scroller(notif_core.notifbox_layout)
-
-notif_core.reset_notifbox_layout = function()
- notif_core.notifbox_layout:reset()
- notif_core.notifbox_layout:insert(1, empty_notifbox)
- notif_core.remove_notifbox_empty = true
-end
-
-local notifbox_add = function(n, notif_icon, notifbox_color)
- if #notif_core.notifbox_layout.children == 1 and notif_core.remove_notifbox_empty then
- notif_core.notifbox_layout:reset(notif_core.notifbox_layout)
- notif_core.remove_notifbox_empty = false
- end
-
- local notifbox_box = require('widget.notif-center.build-notifbox.notifbox-builder')
- notif_core.notifbox_layout:insert(
- 1,
- notifbox_box(
- n,
- notif_icon,
- n.title,
- n.message,
- n.app_name,
- notifbox_color
- )
- )
-end
-
-local notifbox_add_expired = function(n, notif_icon, notifbox_color)
- n:connect_signal(
- 'destroyed',
- function(self, reason, keep_visble)
- if reason == 1 then
- notifbox_add(n, notif_icon, notifbox_color)
- end
- end
- )
-end
-
-naughty.connect_signal(
- 'request::display',
- function(n)
- local notifbox_color = beautiful.groups_bg
- if n.urgency == 'critical' then
- notifbox_color = n.bg .. '66'
- end
-
- local notif_icon = n.icon or n.app_icon
- if not notif_icon then
- notif_icon = widget_icon_dir .. 'new-notif' .. '.svg'
- end
-
- notifbox_add_expired(n, notif_icon, notifbox_color)
- end
-)
-
-return notif_core
diff --git a/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-builder.lua b/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-builder.lua
deleted file mode 100644
index e721232f2..000000000
--- a/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-builder.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local builder = require('widget.notif-center.build-notifbox.notifbox-ui-elements')
-local notifbox_core = require('widget.notif-center.build-notifbox')
-
-local notifbox_layout = notifbox_core.notifbox_layout
-local remove_notifbox_empty = notifbox_core.remove_notifbox_empty
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local return_date_time = function(format)
- return os.date(format)
-end
-
-local parse_to_seconds = function(time)
- local hourInSec = tonumber(string.sub(time, 1, 2)) * 3600
- local minInSec = tonumber(string.sub(time, 4, 5)) * 60
- local getSec = tonumber(string.sub(time, 7, 8))
- return (hourInSec + minInSec + getSec)
-end
-
-notifbox_box = function(notif, icon, title, message, app, bgcolor)
-
- local time_of_pop = return_date_time('%H:%M:%S')
- local exact_time = return_date_time('%I:%M %p')
- local exact_date_time = return_date_time('%b %d, %I:%M %p')
-
- local notifbox_timepop = wibox.widget {
- id = 'time_pop',
- markup = nil,
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- visible = true,
- widget = wibox.widget.textbox
- }
-
- local notifbox_dismiss = builder.notifbox_dismiss()
-
- local time_of_popup = gears.timer {
- timeout = 60,
- call_now = true,
- autostart = true,
- callback = function()
-
- local time_difference = nil
-
- time_difference = parse_to_seconds(return_date_time('%H:%M:%S')) - parse_to_seconds(time_of_pop)
- time_difference = tonumber(time_difference)
-
- if time_difference < 60 then
- notifbox_timepop:set_markup('now')
-
- elseif time_difference >= 60 and time_difference < 3600 then
- local time_in_minutes = math.floor(time_difference / 60)
- notifbox_timepop:set_markup(time_in_minutes .. 'm ago')
-
- elseif time_difference >= 3600 and time_difference < 86400 then
- notifbox_timepop:set_markup(exact_time)
-
- elseif time_difference >= 86400 then
- notifbox_timepop:set_markup(exact_date_time)
- return false
-
- end
-
- collectgarbage('collect')
- end
- }
-
- local notifbox_template = wibox.widget {
- id = 'notifbox_template',
- expand = 'none',
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- builder.notifbox_icon(icon),
- builder.notifbox_appname(app),
- },
- nil,
- {
- notifbox_timepop,
- notifbox_dismiss,
- layout = wibox.layout.fixed.horizontal
- }
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- builder.notifbox_title(title),
- builder.notifbox_message(message),
- layout = wibox.layout.fixed.vertical
- },
- builder.notifbox_actions(notif),
- },
-
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- bg = bgcolor,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background,
- }
-
- -- Put the generated template to a container
- local notifbox = wibox.widget {
- notifbox_template,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- -- Delete notification box
- local notifbox_delete = function()
- notifbox_layout:remove_widgets(notifbox, true)
- end
-
- -- Delete notifbox on LMB
- notifbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- if #notifbox_layout.children == 1 then
- reset_notifbox_layout()
- else
- notifbox_delete()
- end
- collectgarbage('collect')
- end
- )
- )
- )
-
- -- Add hover, and mouse leave events
- notifbox_template:connect_signal(
- 'mouse::enter',
- function()
- notifbox.bg = beautiful.groups_bg
- notifbox_timepop.visible = false
- notifbox_dismiss.visible = true
- end
- )
-
- notifbox_template:connect_signal(
- 'mouse::leave',
- function()
- notifbox.bg = beautiful.tranparent
- notifbox_timepop.visible = true
- notifbox_dismiss.visible = false
- end
- )
-
- collectgarbage('collect')
-
- return notifbox
-end
-
-
-return notifbox_box
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-ui-elements.lua b/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
deleted file mode 100644
index ef5e574c7..000000000
--- a/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
+++ /dev/null
@@ -1,136 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local clickable_container = require('widget.clickable-container')
-
-local ui_noti_builder = {}
-
--- Notification icon container
-ui_noti_builder.notifbox_icon = function(ico_image)
- local noti_icon = wibox.widget {
- {
- id = 'icon',
- resize = true,
- forced_height = dpi(25),
- forced_width = dpi(25),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
- noti_icon.icon:set_image(ico_image)
- return noti_icon
-end
-
--- Notification title container
-ui_noti_builder.notifbox_title = function(title)
- return wibox.widget {
- markup = title,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification message container
-ui_noti_builder.notifbox_message = function(msg)
- return wibox.widget {
- markup = msg,
- font = 'Inter Regular 11',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification app name container
-ui_noti_builder.notifbox_appname = function(app)
- return wibox.widget {
- markup = app,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification actions container
-ui_noti_builder.notifbox_actions = function(n)
- actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = 30,
- widget = wibox.container.background
- },
- margins = 4,
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions,
- }
-
- return actions_template
-end
-
-
--- Notification dismiss button
-ui_noti_builder.notifbox_dismiss = function()
-
- local dismiss_imagebox = wibox.widget {
- {
- id = 'dismiss_icon',
- image = widget_icon_dir .. 'delete.svg',
- resize = true,
- forced_height = dpi(5),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
-
- local dismiss_button = wibox.widget {
- {
- dismiss_imagebox,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- local notifbox_dismiss = wibox.widget {
- dismiss_button,
- visible = false,
- bg = beautiful.groups_title_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- }
-
- return notifbox_dismiss
-end
-
-
-return ui_noti_builder
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/notif-center/clear-all/init.lua b/config/awesome/floppy/widget/notif-center/clear-all/init.lua
deleted file mode 100644
index 7c1465700..000000000
--- a/config/awesome/floppy/widget/notif-center/clear-all/init.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local notifbox_core = require('widget.notif-center.build-notifbox')
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local clear_all_imagebox = wibox.widget {
- {
- image = widget_icon_dir .. 'clear_all.svg',
- resize = true,
- forced_height = dpi(20),
- forced_width = dpi(20),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local clear_all_button = wibox.widget {
- {
- clear_all_imagebox,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-clear_all_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- reset_notifbox_layout()
- end
- )
- )
-)
-
-local clear_all_button_wrapped = wibox.widget {
- nil,
- {
- clear_all_button,
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-return clear_all_button_wrapped
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/notif-center/init.lua b/config/awesome/floppy/widget/notif-center/init.lua
deleted file mode 100644
index bdc544bd7..000000000
--- a/config/awesome/floppy/widget/notif-center/init.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local notif_header = wibox.widget {
- text = 'Notification Center',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'bottom',
- widget = wibox.widget.textbox
-}
-
-local notif_center = function(s)
-
- s.dont_disturb = require('widget.notif-center.dont-disturb')
- s.clear_all = require('widget.notif-center.clear-all')
- s.notifbox_layout = require('widget.notif-center.build-notifbox').notifbox_layout
-
- return wibox.widget {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- notif_header,
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- s.dont_disturb,
- s.clear_all
- },
- },
- s.notifbox_layout
- }
-end
-
-return notif_center
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/ram-meter/init.lua b/config/awesome/floppy/widget/ram-meter/init.lua
deleted file mode 100644
index c630e8153..000000000
--- a/config/awesome/floppy/widget/ram-meter/init.lua
+++ /dev/null
@@ -1,60 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = require('awful.widget.watch')
-local icons = require('theme.icons')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = wibox.widget {
- nil,
- {
- id = 'ram_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-watch(
- 'bash -c "free | grep -z Mem.*Swap.*"',
- 10,
- function(_, stdout)
- local total, used, free, shared, buff_cache, available, total_swap, used_swap, free_swap =
- stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*Swap:%s*(%d+)%s*(%d+)%s*(%d+)')
- slider.ram_usage:set_value(used / total * 100)
- collectgarbage('collect')
- end
-)
-
-local ram_meter = wibox.widget {
- {
- {
- {
- image = icons.memory,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return ram_meter
diff --git a/config/awesome/floppy/widget/ram-meter/temperature/temperature-meter.lua b/config/awesome/floppy/widget/ram-meter/temperature/temperature-meter.lua
deleted file mode 100644
index 5fe2e4b39..000000000
--- a/config/awesome/floppy/widget/ram-meter/temperature/temperature-meter.lua
+++ /dev/null
@@ -1,63 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local watch = require('awful.widget.watch')
-local icons = require('theme.icons')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = wibox.widget {
- nil,
- {
- id = 'temp_status',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local max_temp = 80
-
-watch(
- 'bash -c "cat /sys/class/thermal/thermal_zone0/temp"',
- 5,
- function(_, stdout)
- local temp = stdout:match('(%d+)')
- slider.temp_status:set_value((temp / 1000) / max_temp * 100)
- collectgarbage('collect')
- end
-)
-
-
-local temperature_meter = wibox.widget {
- {
- {
- {
- image = icons.thermometer,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return temperature_meter
diff --git a/config/awesome/floppy/widget/search-apps/init.lua b/config/awesome/floppy/widget/search-apps/init.lua
deleted file mode 100644
index 4839ab89c..000000000
--- a/config/awesome/floppy/widget/search-apps/init.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local widget_icon_dir = config_dir .. '/widget/search-apps/icons/'
-local apps = require('configuration.apps')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'app-launcher.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- if screen.primary.left_panel.opened then
- screen.primary.left_panel:toggle()
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/tag-list/init.lua b/config/awesome/floppy/widget/tag-list/init.lua
deleted file mode 100644
index df5ae642e..000000000
--- a/config/awesome/floppy/widget/tag-list/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, tb, bgb, tbm, ibm, l, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(16),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- ib,
- margins = dpi(10),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- bg_clickable = clickable_container()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- -- l:add(tbm)
- bg_clickable:set_widget(l)
-
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- bgb:buttons(create_buttons(buttons, o))
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = icon
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tag_list = function(s)
- return awful.widget.taglist(
- s,
- awful.widget.taglist.filter.all,
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function(t)
- t:view_only()
- end
- ),
- awful.button(
- {modkey},
- 1,
- function(t)
- if _G.client.focus then
- _G.client.focus:move_to_tag(t)
- t:view_only()
- end
- end
- ),
- awful.button({}, 3, awful.tag.viewtoggle),
- awful.button(
- {modkey},
- 3,
- function(t)
- if _G.client.focus then
- _G.client.focus:toggle_tag(t)
- end
- end
- ),
- awful.button(
- {},
- 4,
- function(t)
- awful.tag.viewprev(t.screen)
- end
- ),
- awful.button(
- {},
- 5,
- function(t)
- awful.tag.viewnext(t.screen)
- end
- )
- ),
- {},
- list_update,
- wibox.layout.fixed.vertical()
- )
-end
-return tag_list
diff --git a/config/awesome/floppy/widget/temperature-meter/init.lua b/config/awesome/floppy/widget/temperature-meter/init.lua
deleted file mode 100644
index ca59e9b99..000000000
--- a/config/awesome/floppy/widget/temperature-meter/init.lua
+++ /dev/null
@@ -1,88 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local slider = wibox.widget {
- nil,
- {
- id = 'temp_status',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local max_temp = 80
-
-awful.spawn.easy_async_with_shell(
- [[
- temp_path=null
- for i in /sys/class/hwmon/hwmon*/temp*_input;
- do
- temp_path="$(echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null ||
- echo $(basename ${i%_*})) $(readlink -f $i)");"
-
- label="$(echo $temp_path | awk '{print $2}')"
-
- if [ "$label" = "Package" ];
- then
- echo ${temp_path} | awk '{print $5}' | tr -d ';\n'
- exit;
- fi
- done
- ]],
- function(stdout)
- local temp_path = stdout:gsub('%\n', '')
- if temp_path == '' or not temp_path then
- temp_path = '/sys/class/thermal/thermal_zone0/temp'
- end
-
- watch(
- [[
- sh -c "cat ]] .. temp_path .. [["
- ]],
- 10,
- function(_, stdout)
- local temp = stdout:match('(%d+)')
- slider.temp_status:set_value((temp / 1000) / max_temp * 100)
- collectgarbage('collect')
- end
- )
- end
-)
-
-local temperature_meter = wibox.widget {
- {
- {
- {
- image = icons.thermometer,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return temperature_meter
diff --git a/config/awesome/floppy/widget/user-profile/init.lua b/config/awesome/floppy/widget/user-profile/init.lua
deleted file mode 100644
index 6151a7609..000000000
--- a/config/awesome/floppy/widget/user-profile/init.lua
+++ /dev/null
@@ -1,239 +0,0 @@
--- User profile widget
--- Optional dependency:
--- mugshot (use to update profile picture and information)
-
-
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local user_icon_dir = '/var/lib/AccountsService/icons/'
-
-title_table = {
- 'Hey, I have a message for you',
- 'Listen here you little shit!',
- 'Le\' me tell you a secret',
- 'I never lie',
- 'Message received from your boss'
-}
-
-message_table = {
- 'Let me rate your face! Oops... It looks like I can\'t compute negative numbers. You\'re ugly af, sorry',
- 'Lookin\' good today, now fuck off!',
- 'The last thing I want to do is hurt you. But it’s still on the list.',
- 'If I agreed with you we’d both be wrong.',
- 'I intend to live forever. So far, so good.',
- 'Jesus loves you, but everyone else thinks you’re an asshole.',
- 'Your baby is so ugly, you should have thrown it away and kept the stork.',
- 'If your brain was dynamite, there wouldn’t be enough to blow your hat off.',
- 'You are more disappointing than an unsalted pretzel.',
- 'Your kid is so ugly, he makes his Happy Meal cry.',
- 'Your secrets are always safe with me. I never even listen when you tell me them.',
- 'I only take you everywhere I go just so I don’t have to kiss you goodbye.',
- 'You look so pretty. Not at all gross, today.',
- 'It’s impossible to underestimate you.',
- 'I’m not insulting you, I’m describing you.',
- 'Keep rolling your eyes, you might eventually find a brain.',
- 'You bring everyone so much joy, when you leave the room.',
- 'I thought of you today. It reminded me to take out the trash.',
- 'You are the human version of period cramps.',
- 'You’re the reason God created the middle finger.'
-}
-
-local profile_imagebox = wibox.widget {
- {
- id = 'icon',
- forced_height = dpi(45),
- forced_width = dpi(45),
- image = widget_icon_dir .. 'default.svg',
- widget = wibox.widget.imagebox,
- resize = true,
- clip_shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end
- },
- layout = wibox.layout.align.horizontal
-}
-
-profile_imagebox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.single_instance('mugshot')
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- naughty.notification({
- app_name = 'FBI\'s ChatBot v69',
- title = title_table[math.random(#title_table)],
- message = message_table[math.random(#message_table)] ..
- '\n\n- xXChatBOT69Xx',
- urgency = 'normal'
- })
- end
- )
- )
-)
-
-local profile_name = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'User',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local distro_name = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'GNU/Linux',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local kernel_version = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Linux',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local uptime_time = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'up 1 minute',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local update_profile_image = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox.icon:set_image(stdout)
- else
- profile_imagebox.icon:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
-end
-
-update_profile_image()
-
-awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- local stdout = stdout:gsub('%\n', '')
- profile_name:set_markup(stdout)
- end
-)
-
-awful.spawn.easy_async_with_shell(
- [[
- cat /etc/os-release | awk 'NR==1'| awk -F '"' '{print $2}'
- ]],
- function(stdout)
- local distroname = stdout:gsub('%\n', '')
- distro_name:set_markup(distroname)
- end
-)
-
-awful.spawn.easy_async_with_shell(
- 'uname -r',
- function(stdout)
- local kname = stdout:gsub('%\n', '')
- kernel_version:set_markup(kname)
- end
-)
-
-local update_uptime = function()
- awful.spawn.easy_async_with_shell(
- 'uptime -p',
- function(stdout)
- local uptime = stdout:gsub('%\n','')
- uptime_time:set_markup(uptime)
- end
- )
-end
-
-local uptime_updater_timer = gears.timer{
- timeout = 60,
- autostart = true,
- call_now = true,
- callback = function()
- update_uptime()
- end
-}
-
-local user_profile = wibox.widget {
- {
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- profile_name,
- distro_name,
- kernel_version,
- uptime_time
- },
- nil
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(92),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-
-}
-
-user_profile:connect_signal(
- 'mouse::enter',
- function()
- update_uptime()
- end
-)
-
-return user_profile
diff --git a/config/awesome/floppy/widget/volume-slider/init.lua b/config/awesome/floppy/widget/volume-slider/init.lua
deleted file mode 100644
index 101772d95..000000000
--- a/config/awesome/floppy/widget/volume-slider/init.lua
+++ /dev/null
@@ -1,180 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- icon,
- widget = clickable_container,
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'volume_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
- },
- nil,
- forced_height = dpi(24),
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-
-local volume_slider = slider.volume_slider
-
-volume_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = volume_slider:get_value()
-
- spawn('amixer -D pulse sset Master ' ..
- volume_level .. '%',
- false
- )
-
- -- Update volume osd
- awesome.emit_signal(
- 'module::volume_osd',
- volume_level
- )
- end
-)
-
-volume_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if volume_slider:get_value() > 100 then
- volume_slider:set_value(100)
- return
- end
- volume_slider:set_value(volume_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if volume_slider:get_value() < 0 then
- volume_slider:set_value(0)
- return
- end
- volume_slider:set_value(volume_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "amixer -D pulse sget Master"]],
- function(stdout)
- local volume = string.match(stdout, '(%d?%d?%d)%%')
- volume_slider:set_value(tonumber(volume))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = volume_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- volume_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::volume',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::volume:update',
- function(value)
- volume_slider:set_value(tonumber(value))
- end
-)
-
-local volume_setting = wibox.widget {
- {
- {
- action_level,
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return volume_setting
diff --git a/config/awesome/floppy/widget/weather/init.lua b/config/awesome/floppy/widget/weather/init.lua
deleted file mode 100644
index 1c1a51612..000000000
--- a/config/awesome/floppy/widget/weather/init.lua
+++ /dev/null
@@ -1,398 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/weather/icons/'
-local clickable_container = require('widget.clickable-container')
-local json = require('library.json')
-
-local config = require('configuration.config')
-local secrets = {
- key = config.widget.weather.key,
- city_id = config.widget.weather.city_id,
- units = config.widget.weather.units,
- update_interval = config.widget.weather.update_interval
-}
-
-local weather_icon_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'weather-error.svg',
- resize = true,
- forced_height = dpi(45),
- forced_width = dpi(45),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local sunrise_icon_widget = wibox.widget {
- {
- id = 'sunrise_icon',
- image = widget_icon_dir .. 'sunrise.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local sunset_icon_widget = wibox.widget {
- {
- id = 'sunset_icon',
- image = widget_icon_dir .. 'sunset.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local refresh_icon_widget = wibox.widget {
- {
- id = 'refresh_icon',
- image = widget_icon_dir .. 'refresh.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local refresh_button = clickable_container(refresh_icon_widget)
-refresh_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
- )
- )
-)
-
-local refresh_widget = wibox.widget {
- refresh_button,
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local weather_desc_temp = wibox.widget {
- {
- id = 'description',
- markup = 'Dust and clouds, -1000°C',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
-}
-
-local weather_location = wibox.widget {
- {
- id = 'location',
- markup = 'Earth, Milky Way',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
-}
-
-local weather_sunrise = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_sunset = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_data_time = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_forecast_tooltip = awful.tooltip {
- text = 'Loading...',
- objects = {weather_icon_widget},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
-}
-
-local weather_report = wibox.widget {
- {
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- weather_icon_widget,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- weather_location,
- weather_desc_temp,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- sunrise_icon_widget,
- weather_sunrise
- },
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- sunset_icon_widget,
- weather_sunset
- },
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- refresh_widget,
- weather_data_time
- }
- }
- },
- nil
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(92),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
--- Return weather symbol
-local get_weather_symbol = function()
- local symbol_tbl = {
- ['metric'] = '°C',
- ['imperial'] = '°F'
- }
- return symbol_tbl[secrets.units]
-end
-
--- Create openweathermap script based on pass mode
--- Mode must be `forecast` or `weather`
-local create_weather_script = function(mode)
- local weather_script = [[
- KEY="]] .. secrets.key .. [["
- CITY="]] .. secrets.city_id .. [["
- UNITS="]] .. secrets.units .. [["
-
- weather=$(curl -sf "http://api.openweathermap.org/data/2.5/]] .. mode ..
- [[?APPID="${KEY}"&id="${CITY}"&units="${UNITS}"")
-
- if [ ! -z "$weather" ]; then
- printf "${weather}"
- else
- printf "error"
- fi
- ]]
-
- return weather_script
-end
-
-awesome.connect_signal(
- 'widget::forecast_fetch',
- function()
- awful.spawn.easy_async_with_shell(
- create_weather_script('forecast'),
- function(stdout)
- if stdout:match('error') then
- weather_forecast_tooltip:set_markup('Can\'t retrieve data!')
- else
- local forecast_data = json.parse(stdout)
- local forecast = ''
-
- for i = 8, 40, 8 do
- local day = os.date('%A @ %H:%M', forecast_data.list[i].dt)
- local temp = math.floor(forecast_data.list[i].main.temp + 0.5)
- local feels_like = math.floor(forecast_data.list[i].main.feels_like + 0.5)
- local weather = forecast_data.list[i].weather[1].description
-
- -- Capitalize weather description
- weather = weather:sub(1, 1):upper() .. weather:sub(2)
-
- forecast = forecast .. '' .. day .. '\n' ..
- 'Weather: ' .. weather .. '\n' ..
- 'Temperature: ' .. temp .. get_weather_symbol() .. '\n' ..
- 'Feels like: ' .. feels_like .. get_weather_symbol() .. '\n\n'
-
- weather_forecast_tooltip:set_markup(forecast:sub(1, -2))
- end
- end
- end
- )
- end
-)
-
-awesome.connect_signal(
- 'widget::weather_fetch',
- function()
- awful.spawn.easy_async_with_shell(
- create_weather_script('weather'),
- function(stdout)
- if stdout:match('error') then
- awesome.emit_signal(
- 'widget::weather_update',
- '...',
- 'Dust and clouds, -1000°C',
- 'Earth, Milky Way',
- '00:00',
- '00:00',
- '00:00'
- )
- else
- -- Parse JSON string
- local weather_data = json.parse(stdout)
-
- -- Process weather data
- local location = weather_data.name
- local country = weather_data.sys.country
- local sunrise = os.date('%H:%M', weather_data.sys.sunrise)
- local sunset = os.date('%H:%M', weather_data.sys.sunset)
- local refresh = os.date('%H:%M', weather_data.dt)
- local temperature = math.floor(weather_data.main.temp + 0.5)
- local weather = weather_data.weather[1].description
- local weather_icon = weather_data.weather[1].icon
-
- -- Capitalize weather description
- local weather = weather:sub(1, 1):upper() .. weather:sub(2)
-
- -- Contantenate weather description and symbol
- local weather_description = weather .. ', ' .. temperature .. get_weather_symbol()
-
- -- Contantenate city and country
- local weather_location = location .. ', ' .. country
-
- awesome.emit_signal(
- 'widget::weather_update',
- weather_icon,
- weather_description,
- weather_location,
- sunrise,
- sunset,
- refresh
- )
- end
- end
- )
- end
-)
-
-local update_widget_timer = gears.timer {
- timeout = secrets.update_interval,
- autostart = true,
- call_now = true,
- single_shot = false,
- callback = function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
-}
-
-awesome.connect_signal(
- 'system::network_connected',
- function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
-)
-
-awesome.connect_signal(
- 'widget::weather_update',
- function(code, desc, location, sunrise, sunset, data_receive)
- local widget_icon_name = 'weather-error'
-
- local icon_tbl = {
- ['01d'] = 'sun_icon.svg',
- ['01n'] = 'moon_icon.svg',
- ['02d'] = 'dfew_clouds.svg',
- ['02n'] = 'nfew_clouds.svg',
- ['03d'] = 'dscattered_clouds.svg',
- ['03n'] = 'nscattered_clouds.svg',
- ['04d'] = 'dbroken_clouds.svg',
- ['04n'] = 'nbroken_clouds.svg',
- ['09d'] = 'dshower_rain.svg',
- ['09n'] = 'nshower_rain.svg',
- ['10d'] = 'd_rain.svg',
- ['10n'] = 'n_rain.svg',
- ['11d'] = 'dthunderstorm.svg',
- ['11n'] = 'nthunderstorm.svg',
- ['13d'] = 'snow.svg',
- ['13n'] = 'snow.svg',
- ['50d'] = 'dmist.svg',
- ['50n'] = 'nmist.svg',
- ['...'] = 'weather-error.svg'
- }
-
- widget_icon_name = icon_tbl[code]
-
- weather_icon_widget.icon:set_image(widget_icon_dir .. widget_icon_name)
- weather_icon_widget.icon:emit_signal('widget::redraw_needed')
-
- weather_desc_temp.description:set_markup(desc)
- weather_location.location:set_markup(location)
- weather_sunrise:set_markup(sunrise)
- weather_sunset:set_markup(sunset)
- weather_data_time:set_markup(data_receive)
- end
-)
-
-return weather_report
diff --git a/config/awesome/floppy/widget/xdg-folders/documents.lua b/config/awesome/floppy/widget/xdg-folders/documents.lua
deleted file mode 100644
index 5906a8b0d..000000000
--- a/config/awesome/floppy/widget/xdg-folders/documents.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local docu_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-documents' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local docu_button = wibox.widget {
- {
- docu_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- docu_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOCUMENTS)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {docu_button},
- mode = 'outside',
- align = 'right',
- text = 'Documents',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return docu_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/widget/xdg-folders/downloads.lua b/config/awesome/floppy/widget/xdg-folders/downloads.lua
deleted file mode 100644
index 02f572ba0..000000000
--- a/config/awesome/floppy/widget/xdg-folders/downloads.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local dl_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-download.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local downloads_button = wibox.widget {
- {
- dl_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- downloads_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOWNLOAD)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {downloads_button},
- mode = 'outside',
- align = 'right',
- text = 'Downloads',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return downloads_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/widget/xdg-folders/home.lua b/config/awesome/floppy/widget/xdg-folders/home.lua
deleted file mode 100644
index 24c38209c..000000000
--- a/config/awesome/floppy/widget/xdg-folders/home.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local home_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'user-home.svg',
- resize = true,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.align.horizontal
- }
-
- local home_button = wibox.widget {
- {
- home_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- home_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {home_button},
- mode = 'outside',
- align = 'right',
- text = 'Home',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return home_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/widget/xdg-folders/init.lua b/config/awesome/floppy/widget/xdg-folders/init.lua
deleted file mode 100644
index f0448ffb4..000000000
--- a/config/awesome/floppy/widget/xdg-folders/init.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local create_xdg_widgets = function()
- local separator = wibox.widget {
- orientation = 'horizontal',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
- }
-
- return wibox.widget {
- layout = wibox.layout.align.vertical,
- {
- separator,
- require('widget.xdg-folders.home')(),
- require('widget.xdg-folders.documents')(),
- require('widget.xdg-folders.downloads')(),
- -- require('widget.xdg-folders.pictures')(),
- -- require('widget.xdg-folders.videos')(),
- separator,
- require('widget.xdg-folders.trash')(),
- layout = wibox.layout.fixed.vertical,
- },
- }
-end
-
-return create_xdg_widgets
diff --git a/config/awesome/floppy/widget/xdg-folders/pictures.lua b/config/awesome/floppy/widget/xdg-folders/pictures.lua
deleted file mode 100644
index 2c591c2e3..000000000
--- a/config/awesome/floppy/widget/xdg-folders/pictures.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local pic_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-pictures.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local pic_button = wibox.widget {
- {
- pic_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- pic_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir PICTURES)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {pic_button},
- mode = 'outside',
- align = 'right',
- text = 'Pictures',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return pic_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/widget/xdg-folders/trash.lua b/config/awesome/floppy/widget/xdg-folders/trash.lua
deleted file mode 100644
index 2625e5a9c..000000000
--- a/config/awesome/floppy/widget/xdg-folders/trash.lua
+++ /dev/null
@@ -1,148 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local trash_widget = wibox.widget {
- {
- id = 'trash_icon',
- image = widget_icon_dir .. 'user-trash-empty.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local trash_menu = awful.menu({
- items = {
- {
- 'Open trash',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio open trash:///',
- function(stdout) end,
- 1
- )
- end,
- widget_icon_dir .. 'open-folder.svg'
- },
- {
- 'Delete forever',
- {
- {
- 'Yes',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio trash --empty',
- function(stdout)
- end,
- 1
- )
- end,
- widget_icon_dir .. 'yes.svg'
- },
- {
- 'No',
- '',
- widget_icon_dir .. 'no.svg'
- }
- },
- widget_icon_dir .. 'user-trash-empty.svg'
- },
- }
- })
-
- local trash_button = wibox.widget {
- {
- trash_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- -- Tooltip for trash_button
- trash_tooltip = awful.tooltip {
- objects = {trash_button},
- mode = 'outside',
- align = 'right',
- markup = 'Trash',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- -- Mouse event for trash_button
- trash_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn({'gio', 'open', 'trash:///'}, false)
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- trash_menu:toggle()
- trash_tooltip.visible = not trash_tooltip.visible
- end
- )
- )
- )
-
- -- Update icon on changes
- local check_trash_list = function()
- awful.spawn.easy_async_with_shell(
- 'gio list trash:/// | wc -l',
- function(stdout)
- if tonumber(stdout) > 0 then
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-full.svg')
-
- awful.spawn.easy_async_with_shell(
- 'gio list trash:///',
- function(stdout)
- trash_tooltip.markup = 'Trash contains:\n' .. stdout:gsub('\n$', '')
- end
- )
- else
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-empty.svg')
- trash_tooltip.markup = 'Trash empty'
- end
- end
- )
- end
-
- -- Check trash on awesome (re)-start
- check_trash_list()
-
- -- Kill the old process of gio monitor trash:///
- awful.spawn.easy_async_with_shell(
- 'ps x | grep \'gio monitor trash:///\' | grep -v grep | awk \'{print $1}\' | xargs kill',
- function()
- awful.spawn.with_line_callback(
- 'gio monitor trash:///',
- {
- stdout = function(_)
- check_trash_list()
- end
- }
- )
- end
- )
-
- return trash_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/widget/xdg-folders/videos.lua b/config/awesome/floppy/widget/xdg-folders/videos.lua
deleted file mode 100644
index 5c5408882..000000000
--- a/config/awesome/floppy/widget/xdg-folders/videos.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local vid_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-videos.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local videos_button = wibox.widget {
- {
- vid_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- videos_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir VIDEOS)')
- end
- )
- )
- )
-
- awful.tooltip
- {
- objects = {videos_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- return 'Videos'
- end,
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- return videos_button
-end
-
-return create_widget
diff --git a/config/awesome/gnawesome/configuration/apps.lua b/config/awesome/gnawesome/configuration/apps.lua
deleted file mode 100644
index aa468a75e..000000000
--- a/config/awesome/gnawesome/configuration/apps.lua
+++ /dev/null
@@ -1,86 +0,0 @@
-local filesystem = require('gears.filesystem')
-local config_dir = filesystem.get_configuration_dir()
-local utils_dir = config_dir .. 'utilities/'
-
-return {
- -- The default applications that we will use in keybindings and widgets
- default = {
- -- Default terminal emulator
- terminal = 'kitty',
- -- Default web browser
- web_browser = 'firefox',
- -- Default text editor
- text_editor = 'subl3',
- -- Default file manager
- file_manager = 'dolphin',
- -- Default media player
- multimedia = 'vlc',
- -- Default game, can be a launcher like steam
- game = 'supertuxkart',
- -- Default graphics editor
- graphics = 'gimp-2.10',
- -- Default sandbox
- sandbox = 'virtualbox',
- -- Default IDE
- development = '',
- -- Default network manager
- network_manager = 'kitty iwctl',
- -- Default bluetooth manager
- bluetooth_manager = 'blueman-manager',
- -- Default power manager
- power_manager = 'xfce4-power-manager',
- -- Default GUI package manager
- package_manager = 'pamac-manager',
- -- Default locker
- lock = 'awesome-client "awesome.emit_signal(\'module::lockscreen_show\')"',
- -- Default quake terminal
- quake = 'kitty --name QuakeTerminal',
- -- Default rofi global menu
- rofi_global = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show "Global Search" -modi "Global Search":' .. config_dir ..
- '/configuration/rofi/global/rofi-spotlight.sh' ..
- ' -theme ' .. config_dir ..
- '/configuration/rofi/global/rofi.rasi',
- -- Default app menu
- rofi_appmenu = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show drun -theme ' .. config_dir ..
- '/configuration/rofi/appmenu/rofi.rasi'
-
- -- You can add more default applications here
- },
-
- -- List of apps to start once on start-up
- run_on_start_up = {
- -- Compositor
- 'picom -b --experimental-backends --dbus --config ' ..
- config_dir .. '/configuration/picom.conf',
- -- Blueman applet
- 'blueman-applet',
- -- Music server
- 'mpd',
- -- Polkit and keyring
- '/usr/bin/lxqt-policykit-agent &' ..
- ' eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg)',
- -- Load X colors
- 'xrdb $HOME/.Xresources',
- -- Audio equalizer
- 'pulseeffects --gapplication-service',
- -- Lockscreen timer
- [[
- xidlehook --not-when-fullscreen --not-when-audio --timer 600 \
- "awesome-client 'awesome.emit_signal(\"module::lockscreen_show\")'" ""
- ]]
-
- -- You can add more start-up applications here
- },
-
- -- List of binaries/shell scripts that will execute for a certain task
- utils = {
- -- Fullscreen screenshot
- full_screenshot = utils_dir .. 'snap full',
- -- Area screenshot
- area_screenshot = utils_dir .. 'snap area',
- -- Update profile picture
- update_profile = utils_dir .. 'profile-image'
- }
-}
diff --git a/config/awesome/gnawesome/configuration/client/buttons.lua b/config/awesome/gnawesome/configuration/client/buttons.lua
deleted file mode 100644
index e744393f2..000000000
--- a/config/awesome/gnawesome/configuration/client/buttons.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local awful = require('awful')
-local modkey = require('configuration.keys.mod').mod_key
-
-return awful.util.table.join(
- awful.button(
- {},
- 1,
- function(c)
- c:emit_signal('request::activate')
- c:raise()
- end
- ),
- awful.button(
- {modkey},
- 1,
- awful.mouse.client.move
- ),
- awful.button(
- {modkey},
- 3,
- awful.mouse.client.resize
- ),
- awful.button(
- {modkey},
- 4,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {modkey},
- 5,
- function()
- awful.layout.inc(-1)
- end
- )
-)
diff --git a/config/awesome/gnawesome/configuration/client/init.lua b/config/awesome/gnawesome/configuration/client/init.lua
deleted file mode 100644
index a5bc87265..000000000
--- a/config/awesome/gnawesome/configuration/client/init.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-require('configuration.client.rules')
-require('configuration.client.signals')
diff --git a/config/awesome/gnawesome/configuration/client/keys.lua b/config/awesome/gnawesome/configuration/client/keys.lua
deleted file mode 100644
index 3182e41bd..000000000
--- a/config/awesome/gnawesome/configuration/client/keys.lua
+++ /dev/null
@@ -1,216 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-require('awful.autofocus')
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-
-local client_keys = awful.util.table.join(
- awful.key(
- {modkey},
- 'f',
- function(c)
- c.fullscreen = not c.fullscreen
- c:raise()
- end,
- {description = 'toggle fullscreen', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'q',
- function(c)
- c:kill()
- end,
- {description = 'close', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'd',
- function()
- awful.client.focus.byidx(1)
- end,
- {description = 'focus next by index', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'a',
- function()
- awful.client.focus.byidx(-1)
- end,
- {description = 'focus previous by index', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'd',
- function ()
- awful.client.swap.byidx(1)
- end,
- {description = 'swap with next client by index', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'a',
- function ()
- awful.client.swap.byidx(-1)
- end,
- {description = 'swap with next client by index', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'u',
- awful.client.urgent.jumpto,
- {description = 'jump to urgent client', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Tab',
- function()
- awful.client.focus.history.previous()
- if client.focus then
- client.focus:raise()
- end
- end,
- {description = 'go back', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'n',
- function(c)
- c.minimized = true
- end,
- {description = 'minimize client', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'c',
- function(c)
- local focused = awful.screen.focused()
-
- awful.placement.centered(c, {
- honor_workarea = true
- })
- end,
- {description = 'align a client to the center of the focused screen', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'c',
- function(c)
- c.fullscreen = false
- c.maximized = false
- c.floating = not c.floating
- c:raise()
- end,
- {description = 'toggle floating', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Up',
- function(c)
- c:relative_move(0, dpi(-10), 0, 0)
- end,
- {description = 'move floating client up by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Down',
- function(c)
- c:relative_move(0, dpi(10), 0, 0)
- end,
- {description = 'move floating client down by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Left',
- function(c)
- c:relative_move(dpi(-10), 0, 0, 0)
- end,
- {description = 'move floating client to the left by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Right',
- function(c)
- c:relative_move(dpi(10), 0, 0, 0)
- end,
- {description = 'move floating client to the right by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Up',
- function(c)
- c:relative_move(0, dpi(-10), 0, dpi(10))
- end,
- {description = 'increase floating client size vertically by 10 px up', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Down',
- function(c)
- c:relative_move(0, 0, 0, dpi(10))
- end,
- {description = 'increase floating client size vertically by 10 px down', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Left',
- function(c)
- c:relative_move(dpi(-10), 0, dpi(10), 0)
- end,
- {description = 'increase floating client size horizontally by 10 px left', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Right',
- function(c)
- c:relative_move(0, 0, dpi(10), 0)
- end,
- {description = 'increase floating client size horizontally by 10 px right', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Up',
- function(c)
- if c.height > 10 then
- c:relative_move(0, 0, 0, dpi(-10))
- end
- end,
- {description = 'decrease floating client size vertically by 10 px up', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Down',
- function(c)
- local c_height = c.height
- c:relative_move(0, 0, 0, dpi(-10))
- if c.height ~= c_height and c.height > 10 then
- c:relative_move(0, dpi(10), 0, 0)
- end
- end,
- {description = 'decrease floating client size vertically by 10 px down', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Left',
- function(c)
- if c.width > 10 then
- c:relative_move(0, 0, dpi(-10), 0)
- end
- end,
- {description = 'decrease floating client size horizontally by 10 px left', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Right',
- function(c)
- local c_width = c.width
- c:relative_move(0, 0, dpi(-10), 0)
- if c.width ~= c_width and c.width > 10 then
- c:relative_move(dpi(10), 0 , 0, 0)
- end
- end,
- {description = 'decrease floating client size horizontally by 10 px right', group = 'client'}
- )
-)
-
-return client_keys
diff --git a/config/awesome/gnawesome/configuration/client/rules.lua b/config/awesome/gnawesome/configuration/client/rules.lua
deleted file mode 100644
index 0ab0b1158..000000000
--- a/config/awesome/gnawesome/configuration/client/rules.lua
+++ /dev/null
@@ -1,393 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local ruled = require('ruled')
-local beautiful = require('beautiful')
-local client_keys = require('configuration.client.keys')
-local client_buttons = require('configuration.client.buttons')
-
-ruled.client.connect_signal(
- 'request::rules',
- function()
- -- All clients will match this rule.
- ruled.client.append_rule {
- id = 'global',
- rule = {},
- properties = {
- focus = awful.client.focus.filter,
- raise = true,
- floating = false,
- maximized = false,
- above = false,
- below = false,
- ontop = false,
- sticky = false,
- maximized_horizontal = false,
- maximized_vertical = false,
- keys = client_keys,
- buttons = client_buttons,
- screen = awful.screen.preferred,
- placement = awful.placement.no_overlap + awful.placement.no_offscreen
- }
- }
-
- ruled.client.append_rule {
- id = 'round_clients',
- rule_any = {
- type = {
- 'normal',
- 'dialog'
- }
- },
- except_any = {
- name = {'Discord Updater'}
- },
- properties = {
- round_corners = true,
- shape = beautiful.client_shape_rounded
- }
- }
-
- -- Titlebar rules
- ruled.client.append_rule {
- id = 'titlebars',
- rule_any = {
- type = {
- 'normal',
- 'dialog',
- 'modal',
- 'utility'
- }
- },
- properties = {
- titlebars_enabled = true
- }
- }
-
- -- Dialogs
- ruled.client.append_rule {
- id = 'dialog',
- rule_any = {
- type = {'dialog'},
- class = {'Wicd-client.py', 'calendar.google.com'}
- },
- properties = {
- titlebars_enabled = true,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Modals
- ruled.client.append_rule {
- id = 'modal',
- rule_any = {
- type = {'modal'}
- },
- properties = {
- titlebars_enabled = true,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Utilities
- ruled.client.append_rule {
- id = 'utility',
- rule_any = {
- type = {'utility'}
- },
- properties = {
- titlebars_enabled = false,
- floating = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Splash
- ruled.client.append_rule {
- id = 'splash',
- rule_any = {
- type = {'splash'},
- name = {'Discord Updater'}
- },
- properties = {
- titlebars_enabled = false,
- round_corners = false,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Terminal emulators
- ruled.client.append_rule {
- id = 'terminals',
- rule_any = {
- class = {
- 'URxvt',
- 'XTerm',
- 'UXTerm',
- 'kitty',
- 'K3rmit'
- }
- },
- properties = {
- tag = '1',
- switch_to_tags = true,
- size_hints_honor = false,
- titlebars_enabled = true
- }
- }
-
- -- Browsers and chats
- ruled.client.append_rule {
- id = 'internet',
- rule_any = {
- class = {
- 'firefox',
- 'Tor Browser',
- 'discord',
- 'Chromium',
- 'Google-chrome',
- 'TelegramDesktop'
- }
- },
- properties = {
- tag = '2'
- }
- }
-
- -- Text editors and word processing
- ruled.client.append_rule {
- id = 'text',
- rule_any = {
- class = {
- 'Geany',
- 'Atom',
- 'Subl3',
- 'code-oss'
- },
- name = {
- 'LibreOffice',
- 'libreoffice'
- }
- },
- properties = {
- tag = '3'
- }
- }
-
- -- File managers
- ruled.client.append_rule {
- id = 'files',
- rule_any = {
- class = {
- 'dolphin',
- 'ark',
- 'Nemo',
- 'File-roller'
- }
- },
- properties = {
- tag = '4',
- switch_to_tags = true
- }
- }
-
- -- Multimedia
- ruled.client.append_rule {
- id = 'multimedia',
- rule_any = {
- class = {
- 'vlc',
- 'Spotify'
- }
- },
- properties = {
- tag = '5',
- switch_to_tags = true,
- placement = awful.placement.centered
- }
- }
-
- -- Gaming
- ruled.client.append_rule {
- id = 'gaming',
- rule_any = {
- class = {
- 'Wine',
- 'dolphin-emu',
- 'Steam',
- 'Citra',
- 'supertuxkart'
- },
- name = {'Steam'}
- },
- properties = {
- tag = '6',
- skip_decoration = true,
- switch_to_tags = true,
- placement = awful.placement.centered
- }
- }
-
- -- Multimedia Editing
- ruled.client.append_rule {
- id = 'graphics',
- rule_any = {
- class = {
- 'Gimp-2.10',
- 'Inkscape',
- 'Flowblade'
- }
- },
- properties = {
- tag = '7'
- }
- }
-
- -- Sandboxes and VMs
- ruled.client.append_rule {
- id = 'sandbox',
- rule_any = {
- class = {
- 'VirtualBox Manage',
- 'VirtualBox Machine',
- 'Gnome-boxes',
- 'Virt-manager'
- }
- },
- properties = {
- tag = '8'
- }
- }
-
- -- IDEs and Tools
- ruled.client.append_rule {
- id = 'development',
- rule_any = {
- class = {
- 'Oomox',
- 'Unity',
- 'UnityHub',
- 'jetbrains-studio',
- 'Ettercap',
- 'scrcpy'
- }
- },
- properties = {
- tag = '9',
- skip_decoration = true
- }
- }
-
- -- Image viewers
- ruled.client.append_rule {
- id = 'image_viewers',
- rule_any = {
- class = {
- 'feh',
- 'Pqiv',
- 'Sxiv'
- },
- },
- properties = {
- titlebars_enabled = true,
- skip_decoration = true,
- floating = true,
- ontop = true,
- placement = awful.placement.centered
- }
- }
-
- -- Floating
- ruled.client.append_rule {
- id = 'floating',
- rule_any = {
- instance = {
- 'file_progress',
- 'Popup',
- 'nm-connection-editor',
- },
- class = {
- 'scrcpy',
- 'Mugshot',
- 'Pulseeffects'
- },
- role = {
- 'AlarmWindow',
- 'ConfigManager',
- 'pop-up'
- }
- },
- properties = {
- titlebars_enabled = true,
- skip_decoration = true,
- ontop = true,
- floating = true,
- focus = awful.client.focus.filter,
- raise = true,
- keys = client_keys,
- buttons = client_buttons,
- placement = awful.placement.centered
- }
- }
- end
-)
-
--- Normally we'd do this with a rule, but some program like spotify doesn't set its class or name
--- until after it starts up, so we need to catch that signal.
-client.connect_signal(
- 'property::class',
- function(c)
- if c.class == 'Spotify' then
- local window_mode = false
-
- -- Check if fullscreen or window mode
- if c.fullscreen then
- window_mode = false
- c.fullscreen = false
- else
- window_mode = true
- end
-
- -- Check if Spotify is already open
- local app = function (c)
- return ruled.client.match(c, {class = 'Spotify'})
- end
-
- local app_count = 0
- for c in awful.client.iterate(app) do
- app_count = app_count + 1
- end
-
- -- If Spotify is already open, don't open a new instance
- if app_count > 1 then
- c:kill()
- -- Switch to previous instance
- for c in awful.client.iterate(app) do
- c:jump_to(false)
- end
- else
- -- Move the instance to specified tag on this screen
- local t = awful.tag.find_by_name(awful.screen.focused(), '5')
- c:move_to_tag(t)
- t:view_only()
-
- -- Fullscreen mode if not window mode
- if not window_mode then
- c.fullscreen = true
- else
- c.floating = true
- awful.placement.centered(c, {honor_workarea = true})
- end
- end
- end
- end
-)
diff --git a/config/awesome/gnawesome/configuration/client/signals.lua b/config/awesome/gnawesome/configuration/client/signals.lua
deleted file mode 100644
index a13a4aa44..000000000
--- a/config/awesome/gnawesome/configuration/client/signals.lua
+++ /dev/null
@@ -1,115 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local update_client = function(c)
- -- Set client's shape based on its tag's layout and status (floating, maximized, etc.)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if current_layout == awful.layout.suit.max and (not c.floating) then
- c.shape = beautiful.client_shape_rectangle
- elseif c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- elseif (not c.round_corners) then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
-end
-
--- Signal function to execute when a new client appears.
-client.connect_signal(
- 'manage',
- function(c)
- -- Focus, raise and activate
- c:emit_signal(
- 'request::activate',
- 'mouse_enter',
- {
- raise = true
- }
- )
-
- -- Set the windows at the slave,
- -- i.e. put it at the end of others instead of setting it master.
- if not awesome.startup then
- awful.client.setslave(c)
- end
-
- if awesome.startup and not c.size_hints.user_position and
- not c.size_hints.program_position then
- -- Prevent clients from being unreachable after screen count changes.
- awful.placement.no_offscreen(c)
- end
-
- -- Update client shape
- update_client(c)
- end
-)
-
--- Enable sloppy focus, so that focus follows mouse then raises it.
-client.connect_signal(
- 'mouse::enter',
- function(c)
- c:emit_signal(
- 'request::activate',
- 'mouse_enter',
- {
- raise = true
- }
- )
- end
-)
-
-client.connect_signal(
- 'focus',
- function(c)
- c.border_color = beautiful.border_focus
- end
-)
-
-client.connect_signal(
- 'unfocus',
- function(c)
- c.border_color = beautiful.border_normal
- end
-)
-
--- Manipulate client shape on fullscreen/non-fullscreen
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- update_client(c)
- end
- end
-)
-
--- Manipulate client shape on maximized
-client.connect_signal(
- 'property::maximized',
- function(c)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if c.maximized then
- c.shape = beautiful.client_shape_rectangle
- else
- update_client(c)
- end
- end
-)
-
--- Manipulate client shape on floating
-client.connect_signal(
- 'property::floating',
- function(c)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if c.floating and not c.maximized then
- c.shape = beautiful.client_shape_rounded
- else
- if current_layout == awful.layout.suit.max then
- c.shape = beautiful.client_shape_rectangle
- end
- end
- end
-)
diff --git a/config/awesome/gnawesome/configuration/config.lua b/config/awesome/gnawesome/configuration/config.lua
deleted file mode 100644
index 991beee66..000000000
--- a/config/awesome/gnawesome/configuration/config.lua
+++ /dev/null
@@ -1,103 +0,0 @@
-return {
- widget = {
- email = {
- -- Email address
- address = '',
- -- App password
- app_password = '',
- -- Imap server
- imap_server = 'imap.gmail.com',
- -- Port
- port = '993'
- },
-
- weather = {
- -- API Key
- key = '',
- -- City ID
- city_id = '',
- -- Units
- units = 'metric',
- -- Update in N seconds
- update_interval = 1200
- },
-
- network = {
- -- Wired interface
- wired_interface = 'enp0s0',
- -- Wireless interface
- wireless_interface = 'wlan0'
- },
-
- clock = {
- -- Clock widget format
- military_mode = false
- },
-
- screen_recorder = {
- -- Default record dimension
- resolution = '1366x768',
- -- X,Y coordinate
- offset = '0,0',
- -- Enable audio by default
- audio = false,
- -- Recordings directory
- save_directory = '$(xdg-user-dir VIDEOS)/Recordings/',
- -- Mic level
- mic_level = '20',
- -- FPS
- fps = '30'
- }
- },
-
- module = {
- auto_start = {
- -- Will create notification if true
- debug_mode = false
- },
-
- dynamic_wallpaper = {
- -- Will look for wallpapers here
- wall_dir = 'theme/wallpapers/',
- -- Image formats
- valid_picture_formats = {'jpg', 'png', 'jpeg'},
- -- Leave this table empty for full auto scheduling
- wallpaper_schedule = {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- -- Example of just using auto-scheduling with keywords
- --[[
- 'midnight',
- 'morning',
- 'noon',
- 'afternoon',
- 'evening',
- 'night'
- --]]
- },
- -- Stretch background image across all screens(monitor)
- stretch = false
- },
-
- lockscreen = {
- -- Clock format
- military_clock = true,
- -- Default password if there's no PAM integration
- fallback_password = 'toor',
- -- Capture intruder using webcam
- capture_intruder = true,
- -- Intruder image save location (Will create directory if it doesn't exist)
- face_capture_dir = '$(xdg-user-dir PICTURES)/Intruders/',
- -- Background directory - Defaults to 'awesome/config/theme/wallpapers/' if null
- bg_dir = nil,
- -- Will look for this image file under 'bg_dir'
- bg_image = 'locksreen-bg.jpg',
- -- Blur lockscreen background
- blur_background = false,
- -- Blurred/filtered background image path (No reason to change this)
- tmp_wall_dir = '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
- }
- }
-}
diff --git a/config/awesome/gnawesome/configuration/init.lua b/config/awesome/gnawesome/configuration/init.lua
deleted file mode 100644
index f93e86bb2..000000000
--- a/config/awesome/gnawesome/configuration/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- keys = require('configuration.keys'),
- apps = require('configuration.apps')
-}
diff --git a/config/awesome/gnawesome/configuration/keys/global.lua b/config/awesome/gnawesome/configuration/keys/global.lua
deleted file mode 100644
index a3b8224b2..000000000
--- a/config/awesome/gnawesome/configuration/keys/global.lua
+++ /dev/null
@@ -1,572 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-
-require('awful.autofocus')
-
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-local apps = require('configuration.apps')
-
--- Key bindings
-local global_keys = awful.util.table.join(
-
- -- Hotkeys
- awful.key(
- {modkey},
- 'F1',
- hotkeys_popup.show_help,
- {description = 'show help', group = 'awesome'}
- ),
- awful.key({modkey, 'Control'},
- 'r',
- awesome.restart,
- {description = 'reload awesome', group = 'awesome'}
- ),
-
- awful.key({modkey, 'Control'},
- 'q',
- awesome.quit,
- {description = 'quit awesome', group = 'awesome'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'l',
- function()
- awful.tag.incmwfact(0.05)
- end,
- {description = 'increase master width factor', group = 'layout'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'h',
- function()
- awful.tag.incmwfact(-0.05)
- end,
- {description = 'decrease master width factor', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'h',
- function()
- awful.tag.incnmaster(1, nil, true)
- end,
- {description = 'increase the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'l',
- function()
- awful.tag.incnmaster(-1, nil, true)
- end,
- {description = 'decrease the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'h',
- function()
- awful.tag.incncol(1, nil, true)
- end,
- {description = 'increase the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'l',
- function()
- awful.tag.incncol(-1, nil, true)
- end,
- {description = 'decrease the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'space',
- function()
- awful.layout.inc(1)
- end,
- {description = 'select next layout', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'space',
- function()
- awful.layout.inc(-1)
- end,
- {description = 'select previous layout', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'o',
- function()
- awful.tag.incgap(1)
- end,
- {description = 'increase gap', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'o',
- function()
- awful.tag.incgap(-1)
- end,
- {description = 'decrease gap', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'w',
- awful.tag.viewprev,
- {description = 'view previous tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 's',
- awful.tag.viewnext,
- {description = 'view next tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 'Escape',
- awful.tag.history.restore,
- {description = 'alternate between current and previous tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 'w',
- function ()
- -- tag_view_nonempty(-1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(-1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view previous non-empty tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 's',
- function ()
- -- tag_view_nonempty(1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view next non-empty tag', group = 'tag'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F1',
- function()
- awful.screen.focus_relative(-1)
- end,
- { description = 'focus the previous screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F2',
- function()
- awful.screen.focus_relative(1)
- end,
- { description = 'focus the next screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'n',
- function()
- local c = awful.client.restore()
- -- Focus restored client
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end,
- {description = 'restore minimized', group = 'screen'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessUp',
- function()
- awful.spawn('light -A 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'increase brightness by 10%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessDown',
- function()
- awful.spawn('light -U 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'decrease brightness by 10%', group = 'hotkeys'}
- ),
- -- ALSA volume control
- awful.key(
- {},
- 'XF86AudioRaiseVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%+', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'increase volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioLowerVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%-', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'decrease volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioMute',
- function()
- awful.spawn('amixer -D pulse set Master 1+ toggle', false)
- end,
- {description = 'toggle mute', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioNext',
- function()
- awful.spawn('mpc next', false)
- end,
- {description = 'next music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPrev',
- function()
- awful.spawn('mpc prev', false)
- end,
- {description = 'previous music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPlay',
- function()
- awful.spawn('mpc toggle', false)
- end,
- {description = 'play/pause music', group = 'hotkeys'}
-
- ),
- awful.key(
- {},
- 'XF86AudioMicMute',
- function()
- awful.spawn('amixer set Capture toggle', false)
- end,
- {description = 'mute microphone', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerDown',
- function()
- --
- end,
- {description = 'shutdown skynet', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerOff',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86Display',
- function()
- awful.spawn.single_instance('arandr', false)
- end,
- {description = 'arandr', group = 'hotkeys'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'q',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {modkey},
- '`',
- function()
- awesome.emit_signal('module::quake_terminal:toggle')
- end,
- {description = 'dropdown application', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'm',
- function()
- if awful.screen.focused().musicpop then
- awesome.emit_signal('widget::music', 'keyboard')
- end
- end,
- {description = 'toggle music widget', group = 'launcher'}
- ),
- awful.key(
- { },
- 'Print',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot,function() end)
- end,
- {description = 'fullscreen screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 's',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot,function() end)
- end,
- {description = 'area/selected screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'x',
- function()
- awesome.emit_signal('widget::blur:toggle')
- end,
- {description = 'toggle blur effects', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- ']',
- function()
- awesome.emit_signal('widget::blur:increase')
- end,
- {description = 'increase blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- '[',
- function()
- awesome.emit_signal('widget::blur:decrease')
- end,
- {description = 'decrease blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 't',
- function()
- awesome.emit_signal('widget::blue_light:toggle')
- end,
- {description = 'toggle redshift filter', group = 'Utility'}
- ),
- awful.key(
- { 'Control' },
- 'Escape',
- function ()
- if screen.primary.systray then
- if not screen.primary.tray_toggler then
- local systray = screen.primary.systray
- systray.visible = not systray.visible
- else
- awesome.emit_signal('widget::systray:toggle')
- end
- end
- end,
- {description = 'toggle systray visibility', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'l',
- function()
- awful.spawn(apps.default.lock, false)
- end,
- {description = 'lock the screen', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'Return',
- function()
- awful.spawn(apps.default.terminal)
- end,
- {description = 'open default terminal', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'e',
- function()
- awful.spawn(apps.default.file_manager)
- end,
- {description = 'open default file manager', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'f',
- function()
- awful.spawn(apps.default.web_browser)
- end,
- {description = 'open default web browser', group = 'launcher'}
- ),
- awful.key(
- {'Control', 'Shift'},
- 'Escape',
- function()
- awful.spawn(apps.default.terminal .. ' ' .. 'htop')
- end,
- {description = 'open system monitor', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'e',
- function()
- local focused = awful.screen.focused()
-
- if focused.central_panel then
- focused.central_panel:hide_dashboard()
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {},
- 'XF86Launch1',
- function()
- local focused = awful.screen.focused()
-
- if focused.central_panel then
- focused.central_panel:hide_dashboard()
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'r',
- function()
- if awful.screen.focused().central_panel.visible then
- awful.screen.focused().central_panel:toggle()
- end
- awful.spawn(apps.default.rofi_global, false)
- end,
- {description = 'open sidebar and global search', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'F2',
- function()
- local focused = awful.screen.focused()
-
- if focused.central_panel then
- if _G.central_panel_mode == 'today_mode' or not focused.central_panel.visible then
- focused.central_panel:toggle()
- switch_rdb_pane('today_mode')
- else
- switch_rdb_pane('today_mode')
- end
-
- _G.central_panel_mode = 'today_mode'
- end
- end,
- {description = 'open today panel', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'F3',
- function()
- local focused = awful.screen.focused()
-
- if focused.central_panel then
- if _G.central_panel_mode == 'settings_mode' or not focused.central_panel.visible then
- focused.central_panel:toggle()
- switch_rdb_pane('settings_mode')
- else
- switch_rdb_pane('settings_mode')
- end
-
- _G.central_panel_mode = 'settings_mode'
- end
- end,
- {description = 'open settings panel', group = 'launcher'}
- )
-)
-
--- Bind all key numbers to tags.
--- Be careful: we use keycodes to make it work on any keyboard layout.
--- This should map on the top row of your keyboard, usually 1 to 9.
-for i = 1, 9 do
- -- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
- local descr_view, descr_toggle, descr_move, descr_toggle_focus
- if i == 1 or i == 9 then
- descr_view = {description = 'view tag #', group = 'tag'}
- descr_toggle = {description = 'toggle tag #', group = 'tag'}
- descr_move = {description = 'move focused client to tag #', group = 'tag'}
- descr_toggle_focus = {description = 'toggle focused client on tag #', group = 'tag'}
- end
- global_keys =
- awful.util.table.join(
- global_keys,
- -- View tag only.
- awful.key(
- {modkey},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- tag:view_only()
- end
- end,
- descr_view
- ),
- -- Toggle tag display.
- awful.key(
- {modkey, 'Control'},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end,
- descr_toggle
- ),
- -- Move client to tag.
- awful.key(
- {modkey, 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:move_to_tag(tag)
- end
- end
- end,
- descr_move
- ),
- -- Toggle tag on focused client.
- awful.key(
- {modkey, 'Control', 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:toggle_tag(tag)
- end
- end
- end,
- descr_toggle_focus
- )
- )
-end
-
-return global_keys
diff --git a/config/awesome/gnawesome/configuration/keys/init.lua b/config/awesome/gnawesome/configuration/keys/init.lua
deleted file mode 100644
index 959166741..000000000
--- a/config/awesome/gnawesome/configuration/keys/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- mod = require('configuration.keys.mod'),
- global = require('configuration.keys.global')
-}
diff --git a/config/awesome/gnawesome/configuration/keys/mod.lua b/config/awesome/gnawesome/configuration/keys/mod.lua
deleted file mode 100644
index d7791de22..000000000
--- a/config/awesome/gnawesome/configuration/keys/mod.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- mod_key = 'Mod4',
- alt_key = 'Mod1'
-}
diff --git a/config/awesome/gnawesome/configuration/picom.conf b/config/awesome/gnawesome/configuration/picom.conf
deleted file mode 100644
index 47d62723b..000000000
--- a/config/awesome/gnawesome/configuration/picom.conf
+++ /dev/null
@@ -1,155 +0,0 @@
-# ░█▀█░▀█▀░█▀▀░█▀█░█▄█░░░░█▀▀░█▀█░█▀█░█▀▀
-# ░█▀▀░░█░░█░░░█░█░█░█░░░░█░░░█░█░█░█░█▀▀
-# ░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░░▀▀▀░▀▀▀░▀░▀░▀░░
-#
-# X compositor configuration
-
-# ░█▀▀░█░█░█▀█░█▀▄░█▀█░█░█
-# ░▀▀█░█▀█░█▀█░█░█░█░█░█▄█
-# ░▀▀▀░▀░▀░▀░▀░▀▀░░▀▀▀░▀░▀
-
-shadow = false;
-shadow-radius = 12;
-shadow-opacity = 0.75;
-shadow-offset-x = -12;
-shadow-offset-y = -12;
-
-# shadow-red = 0
-# shadow-green = 0
-# shadow-blue = 0
-shadow-color = "#000000";
-
-shadow-exclude = [
- "name = 'Notification'",
- "class_g = 'Conky'",
- "class_g ?= 'Notify-osd'",
- "class_g = 'Cairo-clock'",
- "class_g = 'slop'",
- "class_g = 'Firefox' && argb",
- "class_g = 'Rofi'",
- "_GTK_FRAME_EXTENTS@:c",
- "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
-];
-
-# shadow-exclude-reg = "x10+0+0";
-# xinerama-shadow-crop = true;
-
-# ░█▀▀░█▀█░█▀▄░▀█▀░█▀█░█▀▀
-# ░█▀▀░█▀█░█░█░░█░░█░█░█░█
-# ░▀░░░▀░▀░▀▀░░▀▀▀░▀░▀░▀▀▀
-
-fading = true;
-fade-in-step = 0.03;
-fade-out-step = 0.03;
-fade-delta = 3;
-
-fade-exclude = [];
-
-no-fading-openclose = false;
-no-fading-destroyed-argb = true;
-
-# ░█▀█░█▀█░█▀█░█▀▀░▀█▀░▀█▀░█░█
-# ░█░█░█▀▀░█▀█░█░░░░█░░░█░░░█░
-# ░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀░░▀░░░▀░
-
-inactive-opacity = 1;
-frame-opacity = 1;
-inactive-opacity-override = false;
-active-opacity = 1.0;
-inactive-dim = 0.0;
-
-focus-exclude = [
- "class_g = 'Cairo-clock'",
- "class_g ?= 'rofi'",
- "class_g ?= 'slop'",
- "class_g ?= 'Steam'"
-];
-
-# inactive-dim-fixed = 1.0;
-
-opacity-rule = [
- "80:class_g = 'URxvt'",
- "80:class_g = 'UXTerm'",
- "80:class_g = 'XTerm'"
-]
-
-# ░█▀▄░█░░░█░█░█▀▄░█▀▄░▀█▀░█▀█░█▀▀
-# ░█▀▄░█░░░█░█░█▀▄░█▀▄░░█░░█░█░█░█
-# ░▀▀░░▀▀▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-blur: {
- method = "dual_kawase";
- strength = 5.0;
- deviation = 1.0;
- kernel = "11x11gaussian";
-}
-
-blur-background = false;
-blur-background-frame = true;
-blur-background-fixed = true;
-# blur-kern = "3x3box";
-
-blur-background-exclude = [
- "class_g = 'slop'",
- "class_g = 'Firefox' && argb",
- "_GTK_FRAME_EXTENTS@:c"
-];
-
-# ░█▀▀░█▀▀░█▀█░█▀▀░█▀▄░█▀█░█░░░░░█▀▀░█▀▀░▀█▀░▀█▀░▀█▀░█▀█░█▀▀░█▀▀
-# ░█░█░█▀▀░█░█░█▀▀░█▀▄░█▀█░█░░░░░▀▀█░█▀▀░░█░░░█░░░█░░█░█░█░█░▀▀█
-# ░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀
-
-daemon = false;
-backend = "glx";
-vsync = true;
-dbus = false;
-mark-wmwin-focused = true;
-mark-ovredir-focused = true;
-detect-rounded-corners = true;
-detect-client-opacity = true;
-refresh-rate = 0;
-# use-ewmh-active-win = true;
-# unredir-if-possible = false;
-# unredir-if-possible-delay = 0;
-
-unredir-if-possible-exclude = [];
-
-detect-transient = true;
-detect-client-leader = true;
-resize-damage = 1;
-
-invert-color-include = [];
-
-glx-no-stencil = true;
-# glx-no-rebind-pixmap = false;
-use-damage = true;
-# xrender-sync-fence = true;
-
-# glx-fshader-win = "";
-# force-win-blend = false;
-
-# no-ewmh-fullscreen = false;
-# max-brightness = 1.0;
-
-transparent-clipping = false;
-
-log-level = "warn";
-log-file = "~/.cache/picom-log.log";
-show-all-xerrors = true;
-# write-pid-path = '/path/to/your/mom';
-
-wintypes: {
- tooltip = { fade = true; shadow = false; focus = false; };
- normal = { shadow = false; };
- dock = { shadow = false; };
- dnd = { shadow = false; };
- popup_menu = { shadow = true; focus = false; opacity = 0.90; };
- dropdown_menu = { shadow = false; focus = false; };
- above = { shadow = true; };
- splash = { shadow = false; };
- utility = { focus = false; shadow = false; blur-background = false; };
- notification = { shadow = false; };
- desktop = { shadow = false; blur-background = false; };
- menu = { focus = false; };
- dialog = { shadow = true; };
-};
diff --git a/config/awesome/gnawesome/configuration/rofi/appmenu/rofi.rasi b/config/awesome/gnawesome/configuration/rofi/appmenu/rofi.rasi
deleted file mode 100644
index 1ab875f13..000000000
--- a/config/awesome/gnawesome/configuration/rofi/appmenu/rofi.rasi
+++ /dev/null
@@ -1,149 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: true;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- text-color: @foreground;
- location: northwest;
- anchor: northwest;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 6px;
- margin: 0px calc((100% - 640px) / 2) 0px calc((100% - 640px) / 2);
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 6;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 70px 15% 0 15%;
- /*padding: 70px 135px 0 135px;*/
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: vertical;
- border-radius: 12px;
- padding: 25px 0 25px 0;
-}
-
-element-icon {
- size: 72px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0.5;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/gnawesome/configuration/rofi/global/icons/ddg.svg b/config/awesome/gnawesome/configuration/rofi/global/icons/ddg.svg
deleted file mode 100644
index 20ea387ba..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/icons/ddg.svg
+++ /dev/null
@@ -1,615 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/configuration/rofi/global/icons/google.svg b/config/awesome/gnawesome/configuration/rofi/global/icons/google.svg
deleted file mode 100644
index 21e5bf37a..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/icons/google.svg
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/configuration/rofi/global/icons/history.svg b/config/awesome/gnawesome/configuration/rofi/global/icons/history.svg
deleted file mode 100644
index 872bac835..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/icons/history.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/configuration/rofi/global/icons/result.svg b/config/awesome/gnawesome/configuration/rofi/global/icons/result.svg
deleted file mode 100644
index 0f4d883ea..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/icons/result.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/configuration/rofi/global/icons/suggestion.svg b/config/awesome/gnawesome/configuration/rofi/global/icons/suggestion.svg
deleted file mode 100644
index bf673469c..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/icons/suggestion.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/configuration/rofi/global/rofi-spotlight.sh b/config/awesome/gnawesome/configuration/rofi/global/rofi-spotlight.sh
deleted file mode 100755
index d5c4a23b5..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/rofi-spotlight.sh
+++ /dev/null
@@ -1,692 +0,0 @@
-#!/usr/bin/env bash
-
-TMP_DIR="/tmp/rofi/${USER}/"
-
-PREV_LOC_FILE="${TMP_DIR}rofi_fb_prevloc"
-CURRENT_FILE="${TMP_DIR}rofi_fb_current_file"
-
-MY_PATH="$(realpath "$0" | xargs dirname)"
-HIST_FILE="${MY_PATH}/history.txt"
-
-OPENER=xdg-open
-TERM_EMU=kitty
-TEXT_EDITOR=$EDITOR
-FILE_MANAGER=xdg-open
-BLUETOOTH_SEND=blueman-sendto
-
-CUR_DIR=$PWD
-NEXT_DIR=""
-FD_INSTALLED=$(command -v fd)
-
-SHOW_HIDDEN=false
-
-# Setup menu options
-declare -a OPEN_FILE_LOCATION=(
- "Open file location in ${TERM_EMU}"
- "Open file location in ${FILE_MANAGER}"
-)
-declare -a RUN_COMMANDS=(
- "Run"
- "Execute in ${TERM_EMU}"
-)
-declare -a STANDARD_CONTROLS=(
- "Move to trash"
- "Delete"
- "Back"
-)
-declare -a SHELL_NO_X_OPTIONS=(
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a SHELL_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${SHELL_NO_X_OPTIONS[@]}"
-)
-declare -a BIN_NO_X_OPTIONS=(
- "${OPEN_FILE_LOCATION[@]}"
- "Back"
-)
-declare -a BIN_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${BIN_NO_X_OPTIONS[@]}"
-)
-declare -a TEXT_OPTIONS=("${SHELL_NO_X_OPTIONS[@]}")
-declare -a HTML_OPTIONS=(
- "Open"
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a XCF_SVG_OPTIONS=(
- "Open"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a IMAGE_OPTIONS=(
- "Open"
- "Send via Bluetooth"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-
-declare -a ALL_OPTIONS=()
-
-# Combine all context menu
-COMBINED_OPTIONS=(
- "${SHELL_OPTIONS[@]}"
- "${IMAGE_OPTIONS[@]}"
-)
-
-# Remove duplicates
-ALL_OPTIONS=("$(printf '%s\n' "${COMBINED_OPTIONS[@]}" | sort -u)")
-
-# Create tmp dir for rofi
-[ ! -d "${TMP_DIR}" ] && mkdir -p "${TMP_DIR}";
-
-# Create hist file if it doesn't exist
-[ ! -f "${HIST_FILE}" ] && touch "${HIST_FILE}"
-
-# Help message
-if [ -n "$*" ] && [[ "$*" = ":help" ]]
-then
- echo -en "Rofi Spotlight
-A Rofi with file and web searching functionality
-
-Commands:
-:help to print this help message
-:h or :hidden to show hidden files/dirs
-:sh or :show_hist to show search history
-:ch or :clear_hist to clear search history
-:xdg to jump to an xdg directory
-Examples:
- :xdg DOCUMENTS
- :xdg DOWNLOADS
-Also supports incomplete path:
-Examples:
- :xdg doc
- :xdg down
-For more info about XDG dirs, see:
-\`man xdg-user-dir\`
-
-File search syntaxes:
-! to search for a file and web suggestions
-? to search parent directories
-Examples:
- !half-life 3
- ?portal 3
-
-Web search syntaxes:
-! to gets search suggestions
-:web/:w to also to gets search suggestions
-:webbro/:wb to search directly from your browser
-Examples:
- !how to install archlinux
- :web how to install gentoo
- :w how to make a nuclear fission
- :webbro how to install wine in windowsxp
-Back\0icon\x1fdraw-arrow-back\n"
-
- exit
-fi
-
-# Return the icon string
-function icon_file_type(){
- icon_name=""
- mime_type=$(file --mime-type -b "${1}")
-
- case "${mime_type}" in
- "inode/directory")
- case "${1}" in
- "Desktop/" )
- icon_name='folder-blue-desktop'
- ;;
- "Documents/" )
- icon_name='folder-blue-documents'
- ;;
- "Downloads/" )
- icon_name='folder-blue-downloads'
- ;;
- "Music/" )
- icon_name='folder-blue-music'
- ;;
- "Pictures/" )
- icon_name='folder-blue-pictures'
- ;;
- "Public/" )
- icon_name='folder-blue-public'
- ;;
- "Templates/" )
- icon_name='folder-blue-templates'
- ;;
- "Videos/" )
- icon_name='folder-blue-videos'
- ;;
- "root/" )
- icon_name='folder-root'
- ;;
- "home/" | "${USER}/")
- icon_name='folder-home'
- ;;
- *"$" )
- icon_name='folder-blue'
- ;;
- *)
- icon_name='folder-blue'
- ;;
- esac
- ;;
- "inode/symlink" )
- icon_name='inode-symlink'
- ;;
- "audio/flac" | "audio/mpeg" )
- icon_name='music'
- ;;
- "video/mp4" )
- icon_name='video-mp4'
- ;;
- "video/x-matroska" )
- icon_name=video-x-matroska
- ;;
- "image/x-xcf" )
- # notify-send '123'
- icon_name='image-x-xcf'
- ;;
- "image/jpeg" | "image/png" | "image/svg+xml")
- icon_name="${CUR_DIR}/${1}"
- ;;
- "image/gif" )
- icon_name='gif'
- ;;
- "image/vnd.adobe.photoshop" )
- icon_name='image-vnd.adobe.photoshop'
- ;;
- "image/webp" )
- icon_name='gif'
- ;;
- "application/x-pie-executable" )
- icon_name='binary'
- ;;
- "application/pdf" )
- icon_name='pdf'
- ;;
- "application/zip" )
- icon_name='application-zip'
- ;;
- "application/x-xz" )
- icon_name='application-x-xz-compressed-tar'
- ;;
- "application/x-7z-compressed" )
- icon_name='application-x-7zip'
- ;;
- "application/x-rar" )
- icon_name='application-x-rar'
- ;;
- "application/octet-stream" | "application/x-iso9660-image" )
- icon_name='application-x-iso'
- ;;
- "application/x-dosexec" )
- icon_name='application-x-ms-dos-executable'
- ;;
- "text/plain" )
- icon_name='application-text'
- ;;
- "text/x-shellscript" )
- icon_name='application-x-shellscript'
- ;;
- "text/html" )
- icon_name='text-html'
- ;;
- "font/sfnt" | "application/vnd.ms-opentype" )
- icon_name='application-x-font-ttf'
- ;;
- * )
- case "${1}" in
- *."docx" | *".doc" )
- icon_name='application-msword'
- ;;
- *."apk" )
- icon_name='android-package-archive'
- ;;
- * )
- icon_name='unknown'
- ;;
- esac
- ;;
- esac
-
- echo -en "$1\0icon\x1f$icon_name\n"
-}
-
-export -f icon_file_type
-
-# Pass the argument to python script
-function web_search() {
- # Pass the search query to web-search script
- "${MY_PATH}/web-search.py" "${1}"
- exit;
-}
-
-# Handles the web search method
-if [ ! -z "$@" ] && ([[ "$@" == ":webbro"* ]] || [[ "$@" == ":wb"* ]])
-then
- remove=''
- [[ "$*" = ":webbro"* ]] && remove=":webbro" || remove=":wb"
-
- # Search directly from your web browser
- web_search "$(printf '%s\n' "${1//$remove/}")"
- exit;
-
-elif [ ! -z "$@" ] && ([[ "$@" == ":web"* ]] || [[ "$@" == ":w"* ]])
-then
- remove=''
- [[ "$*" = ":web"* ]] && remove=":web" || remove=":w"
-
- # Get search suggestions
- web_search "!$(printf '%s\n' "${1//$remove/}")"
- exit;
-fi
-
-function find_query() {
- QUERY=${1}
- if [[ ! "${QUERY}" =~ ( |\') ]]
- then
- if [ -z "$FD_INSTALLED" ];
- then
- find "${HOME}" -iname *"${QUERY}"* | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- else
- fd -H ${QUERY} ${HOME} | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- fi
- fi
-}
-
-# File and calls to the web search
-if [ ! -z "$@" ] && ([[ "$@" == ?(\~)/* ]] || [[ "$@" == \?* ]] || [[ "$@" == \!* ]])
-then
- QUERY=$@
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- if [[ "$@" == ?(\~)/* ]]
- then
- [[ "$*" = \~* ]] && QUERY="${QUERY//"~"/"$HOME"}"
-
- coproc ${OPENER} "${QUERY}" > /dev/null 2>&1
- exec 1>&-
- exit
-
- elif [[ "$@" == \?* ]]
- then
- find_query ${QUERY#\?}
-
- else
- # Find the file
- find_query ${QUERY#!}
-
- # Web search
- web_search "! ${QUERY#!}"
- fi
- exit;
-fi
-
-# Create notification if there's an error
-function create_notification() {
- case "${1}" in
- "denied" )
- notify-send -a "Global Search" "Permission denied!" \
- 'You have no permission to access '"${CUR_DIR}!"
- ;;
- "deleted" )
- notify-send -a "Global Search" "Success!" \
- 'File deleted!'
- ;;
- "trashed" )
- notify-send -a "Global Search" "Success!" \
- 'The file has been moved to trash!'
- ;;
- "cleared" )
- notify-send -a "Global Search" "Success!" \
- 'Search history has been successfully cleared!'
- ;;
- * )
- notify-send -a "Global Search" "Somethings wrong I can feel it!" \
- 'This incident will be reported!'
- ;;
- esac
-}
-
-# Show the files in the current directory
-function navigate_to() {
- # process current dir.
- if [ -n "${CUR_DIR}" ]
- then
- CUR_DIR=$(readlink -e "${CUR_DIR}")
- if [ ! -d "${CUR_DIR}" ] || [ ! -r "${CUR_DIR}" ]
- then
- create_notification "denied"
- CUR_DIR=$(realpath ${CUR_DIR} | xargs dirname)
- echo "${CUR_DIR}" > "${PREV_LOC_FILE}"
- else
- echo "${CUR_DIR}/" > "${PREV_LOC_FILE}"
- fi
- pushd "${CUR_DIR}" >/dev/null || exit
- fi
-
- printf "..\0icon\x1fup\n"
-
- if [[ -z "$FD_INSTALLED" ]]
- then
- #Group directories
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- for i in .*/
- do
- [[ -d "${i}" ]] && ([[ "${i}" != "./" ]] && [[ "${i}" != "../"* ]]) && icon_file_type "${i}"
- done
- fi
- for i in */
- do
- [[ -d "${i}" ]] && icon_file_type "${i}"
- done
- #Group files
- if [[ ${SHOW_HIDDEN} = true ]]
- then
- for i in .*
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- fi
- for i in *
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- else
- THREADS=$(getconf _NPROCESSORS_ONLN)
- export CUR_DIR
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- fd -Ht d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -Ht f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- else
- fd -t d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -t f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- fi
- fi
-}
-
-# Set XDG dir
-function return_xdg_dir() {
- target_dir=${1^^}
-
- if [[ "HOME" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir)
-
- elif [[ "DESKTOP" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DESKTOP)
-
- elif [[ "DOCUMENTS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOCUMENTS)
-
- elif [[ "DOWNLOADS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOWNLOAD)
-
- elif [[ "MUSIC" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir MUSIC)
-
- elif [[ "PICTURES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PICTURES)
-
- elif [[ "PUBLICSHARE" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PUBLICSHARE)
-
- elif [[ "TEMPLATES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir TEMPLATES)
-
- elif [[ "VIDEOS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir VIDEOS)
-
- elif [[ "ROOT" == *"${target_dir}"* ]]
- then
- CUR_DIR="/"
-
- else
- CUR_DIR="${HOME}"
- fi
- navigate_to
- exit;
-}
-
-# Show and Clear History
-if [ ! -z "$@" ] && ([[ "$@" == ":sh" ]] || [[ "$@" == ":show_hist" ]])
-then
- hist=$(tac "${HIST_FILE}")
-
- echo -en "Back\0icon\x1fdraw-arrow-back\n"
- [ -z "${hist}" ] && echo -en "No History Yet\0icon\x1ftext-plain\n"
-
- while IFS= read -r line;
- do
- echo -en "${line}\0icon\x1f${MY_PATH}/icons/history.svg\n";
- done <<< "${hist}"
-
- exit;
-elif [ ! -z "$@" ] && ([[ "$@" == ":ch" ]] || [[ "$@" == ":clear_hist" ]])
-then
- :> "${HIST_FILE}"
- create_notification "cleared"
-
- CUR_DIR="${HOME}"
- navigate_to
- exit;
-fi
-
-# Accepts XDG command
-if [[ ! -z "$@" ]] && [[ "$@" == ":xdg"* ]]
-then
- NEXT_DIR=${*//":xdg "/}
-
- [[ -n "$NEXT_DIR" ]] && return_xdg_dir "${NEXT_DIR}" || return_xdg_dir "${HOME}"
-fi
-
-# Read last location, otherwise we default to PWD.
-[ -f "${PREV_LOC_FILE}" ] && CUR_DIR=$(< "${PREV_LOC_FILE}")
-
-if [[ ! -z "$@" ]] && ([[ "$@" == ":h" ]] || [[ "$@" == ":hidden" ]])
-then
- SHOW_HIDDEN=true
- navigate_to
- exit;
-fi
-
-# Handle argument.
-[ -n "$*" ] && CUR_DIR="${CUR_DIR}/$*"
-
-# Context Menu
-if [ -n "$*" ] && [[ "${ALL_OPTIONS[*]} " = *"$*"* ]]
-then
- case "${1}" in
- "Run" )
- coproc ( eval "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Execute in ${TERM_EMU}" )
- coproc ( eval "${TERM_EMU} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open" )
- coproc ( eval "${OPENER} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${TERM_EMU}" )
- file_path="$(< ${CURRENT_FILE})"
- coproc ( ${TERM_EMU} bash -c "cd ${file_path%/*} ; ${SHELL}" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${FILE_MANAGER}" )
- file_path="$(< "${CURRENT_FILE}")"
- coproc ( eval "${FILE_MANAGER} "${file_path%/*}"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Edit" )
- coproc ( eval "${TERM_EMU} ${TEXT_EDITOR} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Move to trash" )
- coproc( gio trash "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- create_notification "trashed"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Delete" )
- shred "$(< ${CURRENT_FILE})"
- rm "$(< ${CURRENT_FILE})"
- create_notification "deleted"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Send via Bluetooth" )
- rfkill unblock bluetooth && bluetoothctl power on
- sleep 1
- blueman-sendto "$(< ${CURRENT_FILE})" & > /dev/null 2>&1
- kill -9 $(pgrep rofi)
- ;;
- "Back" )
- CUR_DIR="$(< ${PREV_LOC_FILE})"
- navigate_to
- ;;
- esac
- exit;
-fi
-
-function context_menu_icons() {
-
- if [[ "${1}" == "Run" ]]
- then
- echo '\0icon\x1fsystem-run\n'
-
- elif [[ "${1}" == "Execute in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open" ]]
- then
- echo "\0icon\x1futilities-x-terminal\n"
-
- elif [[ "${1}" == "Open file location in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open file location in ${FILE_MANAGER}" ]]
- then
- echo "\0icon\x1fblue-folder-open\n"
-
- elif [[ "${1}" == "Edit" ]]
- then
- echo "\0icon\x1faccessories-text-editor\n"
-
- elif [[ "${1}" == "Move to trash" ]]
- then
- echo "\0icon\x1fapplication-x-trash\n"
-
- elif [[ "${1}" == "Delete" ]]
- then
- echo "\0icon\x1findicator-trashindicator\n"
-
- elif [[ "${1}" == "Send via Bluetooth" ]]
- then
- echo "\0icon\x1fbluetooth\n"
-
- elif [[ "${1}" == "Back" ]]
- then
- echo "\0icon\x1fback\n"
- fi
-}
-
-function print_context_menu() {
- declare -a arg_arr=("${!1}")
-
- for menu in "${arg_arr[@]}"
- do
- printf "$menu$(context_menu_icons "${menu}")\n"
- done
-}
-
-function context_menu() {
-
- type="$(file --mime-type -b "${CUR_DIR}")"
-
- if [ -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- if [ -x "${CUR_DIR}" ];
- then
- print_context_menu SHELL_OPTIONS[@]
- else
- print_context_menu SHELL_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "application/x-executable" ]] || [[ "${type}" == "application/x-pie-executable" ]]
- then
- if [ -x "${CUR_DIR}" ]
- then
- print_context_menu BIN_OPTIONS[@]
- else
- print_context_menu BIN_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "text/plain" ]]
- then
- print_context_menu TEXT_OPTIONS[@]
-
- elif [[ "${type}" == "text/html" ]]
- then
- print_context_menu HTML_OPTIONS[@]
-
- elif [[ "${type}" == "image/jpeg" ]] || [[ "${type}" == "image/png" ]]
- then
- print_context_menu IMAGE_OPTIONS[@]
-
- elif [[ "${type}" == "image/x-xcf" ]] || [[ "${type}" == "image/svg+xml" ]]
- then
- print_context_menu XCF_SVG_OPTIONS[@]
-
- elif [ ! -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- coproc ( exec "${CUR_DIR}" & > /dev/null 2>&1 )
-
- else
- if [ ! -d "${CUR_DIR}" ] && [ ! -f "${CUR_DIR}" ]
- then
- QUERY="${CUR_DIR//*\/\//}"
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- find_query "${QUERY#!}"
-
- web_search "!${QUERY}"
- else
- coproc ( ${OPENER} "${CUR_DIR}" & > /dev/null 2>&1 )
- fi
- fi
- exit;
-}
-
-# If argument is not a directory/folder
-if [ ! -d "${CUR_DIR}" ]
-then
- echo "${CUR_DIR}" > "${CURRENT_FILE}"
- context_menu
- exit;
-fi
-
-navigate_to
diff --git a/config/awesome/gnawesome/configuration/rofi/global/rofi.rasi b/config/awesome/gnawesome/configuration/rofi/global/rofi.rasi
deleted file mode 100644
index 1c154bff0..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/rofi.rasi
+++ /dev/null
@@ -1,152 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: false;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- location: center;
- anchor: center;
- x-offset: 0px;
- height: 500px;
- width: 750px;
- orientation: vertical;
- border-radius: 12px;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 24px;
- margin: 0px 225px 0px 225px;
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 2;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 40px 25px 25px 25px;
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: horizontal;
- border-radius: 6px;
- padding: 5px 10px 5px 10px;
-}
-
-element-icon {
- size: 36px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/gnawesome/configuration/rofi/global/web-search.py b/config/awesome/gnawesome/configuration/rofi/global/web-search.py
deleted file mode 100755
index ba314d592..000000000
--- a/config/awesome/gnawesome/configuration/rofi/global/web-search.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env python3
-
-# MIT License
-
-# Copyright (c) 2019 Paolo Donadeo
-
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-
-import json
-import re
-import urllib.parse
-import urllib.request
-import sys
-import os
-import datetime
-import gzip
-
-import subprocess as sp
-
-import html
-
-
-################################################################################
-##### C O N F I G U R A T I O N ######
-################################################################################
-SEARCH_ENGINE = 'google' # or 'duckduckgo'
-BROWSER = 'firefox' # or 'firefox', 'chromium', 'brave', 'lynx'
-TERMINAL = ['kitty', '--'] # or ['st', '-e'] or something like that
-################################################################################
-
-CONFIG = {
- 'BROWSER_PATH' : {
- 'chrome' : ['google-chrome-stable'],
- 'firefox' : ['firefox'],
- 'chromium' : ['chromium-browser'],
- 'brave' : ['brave-browser'],
- 'lynx' : TERMINAL + ['lynx']
- },
- 'USER_AGENT' : {
- 'chrome' : 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
- 'firefox' : 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0',
- 'chromium' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/76.0.3809.100 Chrome/76.0.3809.100 Safari/537.36',
- 'brave' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36',
- 'lynx' : 'Lynx/2.8.9rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.1.1d'
- },
- 'SEARCH_ENGINE_NAME' : {
- 'google' : 'Google',
- 'duckduckgo' : 'DuckDuckGo'
- },
- 'SEARCH_URL' : {
- 'google' : 'https://www.google.com/search?q=',
- 'duckduckgo' : 'https://duckduckgo.com/?q='
- },
- 'SUGGESTION_URL' : {
- 'google' : 'https://www.google.com/complete/search?',
- 'duckduckgo' : 'https://duckduckgo.com/ac/?'
- }
-}
-
-def cleanhtml(txt):
- return re.sub(r'<.*?>', '', txt)
-
-def fetch_suggestions(search_string):
- if SEARCH_ENGINE == 'google':
- r = {
- 'q' : search_string,
- 'cp' : '11',
- 'client' : 'psy-ab',
- 'xssi' : 't',
- 'gs_ri' : 'gws-wiz',
- 'hl' : 'en-IT',
- 'authuser' : '0'
- }
- url = CONFIG['SUGGESTION_URL'][SEARCH_ENGINE] + urllib.parse.urlencode(r)
- headers = {
- 'sec-fetch-mode' : 'cors',
- 'dnt' : '1',
- 'accept-encoding' : 'gzip',
- 'accept-language' : 'en-US;q=0.9,en;q=0.8',
- 'pragma' : 'no-cache',
- 'user-agent' : CONFIG['USER_AGENT'][BROWSER],
- 'accept' : '*/*',
- 'cache-control' : 'no-cache',
- 'authority' : 'www.google.com',
- 'referer' : 'https://www.google.com/',
- 'sec-fetch-site' : 'same-origin'
- }
- req = urllib.request.Request(url, headers=headers, method='GET')
-
- reply_data = gzip.decompress(urllib.request.urlopen(req).read()).split(b'\n')[1]
- reply_data = json.loads(reply_data)
- return [ cleanhtml(res[0]).strip() for res in reply_data[0] ]
- else: # 'duckduckgo'
- if search_string.startswith('!'):
- bang_search = True
- search_string = search_string.lstrip('!')
- else:
- bang_search = False
- r = {
- 'q' : search_string,
- 'callback' : 'autocompleteCallback',
- 'kl' : 'wt-wt',
- '_' : str(int((datetime.datetime.now().timestamp())*1000))
- }
- url = CONFIG['SUGGESTION_URL'][SEARCH_ENGINE] + urllib.parse.urlencode(r)
- if bang_search:
- url = url.replace('?q=', '?q=!')
- headers = {
- 'pragma' : 'no-cache',
- 'dnt' : '1',
- 'accept-encoding' : 'gzip',
- 'accept-language' : 'en-US;q=0.9,en;q=0.8',
- 'user-agent' : CONFIG['USER_AGENT'][BROWSER],
- 'sec-fetch-mode' : 'no-cors',
- 'accept' : '*/*',
- 'cache-control' : 'no-cache',
- 'authority' : 'duckduckgo.com',
- 'referer' : 'https://duckduckgo.com/',
- 'sec-fetch-site' : 'same-origin',
- }
- req = urllib.request.Request(url, headers=headers, method='GET')
- reply_data = gzip.decompress(urllib.request.urlopen(req).read()).decode('utf8')
- reply_data = json.loads(re.match(r'autocompleteCallback\((.*)\);', reply_data).group(1))
- return [ cleanhtml(res['phrase']).strip() for res in reply_data ]
-
-def main():
- search_string = html.unescape((' '.join(sys.argv[1:])).strip())
-
- path_str = os.path.dirname(os.path.realpath(__file__)) + '/'
- icon_path_str = path_str + 'icons/'
- icon_name = icon_path_str
-
- if SEARCH_ENGINE == 'google':
- icon_name += 'google.svg'
- else:
- icon_name += 'ddg.svg'
-
- if search_string.startswith('!'):
- search_string = search_string.rstrip('!').strip()
- results = fetch_suggestions(search_string)
- for r in results:
- print(":wb " + html.unescape(r) + "\0icon\x1f"+icon_name+"\n")
- else:
- url = CONFIG['SEARCH_URL'][SEARCH_ENGINE] + urllib.parse.quote_plus(search_string)
- sp.Popen(CONFIG['BROWSER_PATH'][BROWSER] + [url], stdout=sp.DEVNULL, stderr=sp.DEVNULL, shell=False)
-
-if __name__ == "__main__":
- try:
- main()
- except Exception as e:
- if e:
- sys.exit(1)
diff --git a/config/awesome/gnawesome/configuration/root/init.lua b/config/awesome/gnawesome/configuration/root/init.lua
deleted file mode 100644
index 803b46916..000000000
--- a/config/awesome/gnawesome/configuration/root/init.lua
+++ /dev/null
@@ -1,84 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-
-local apps = require('configuration.apps')
-
-root.buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- function()
- if mymainmenu then
- mymainmenu:hide()
- end
- end
- ),
- awful.button(
- {},
- 3,
- function ()
- if mymainmenu then
- mymainmenu:toggle()
- end
- end
- ),
- awful.button(
- {},
- 2,
- function ()
- awful.util.spawn(apps.default.rofi_appmenu)
- end
- ),
- awful.button(
- {'Control'},
- 2,
- function ()
- awesome.emit_signal('module::exit_screen:show')
- end
- ),
- awful.button(
- {'Shift'},
- 2,
- function ()
- awesome.emit_signal("widget::blue_light:toggle")
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.spawn('light -A 10',false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show',true)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.spawn('light -U 10',false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show',true)
- end
- ),
- awful.button(
- {'Control'},
- 4,
- function()
- awful.spawn('amixer -D pulse sset Master 5%+',false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show',true)
- end
- ),
- awful.button(
- {'Control'},
- 5,
- function()
- awful.spawn('amixer -D pulse sset Master 5%-',false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show',true)
- end
- )
- )
-)
\ No newline at end of file
diff --git a/config/awesome/gnawesome/configuration/tags/init.lua b/config/awesome/gnawesome/configuration/tags/init.lua
deleted file mode 100644
index a637fd45c..000000000
--- a/config/awesome/gnawesome/configuration/tags/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-
-local tags = {
- {
- type = 'terminal',
- icon = icons.terminal,
- default_app = apps.default.terminal,
- gap = beautiful.useless_gap
- },
- {
- type = 'internet',
- icon = icons.web_browser,
- default_app = apps.default.web_browser,
- gap = beautiful.useless_gap
- },
- {
- type = 'code',
- icon = icons.text_editor,
- default_app = apps.default.text_editor,
- gap = beautiful.useless_gap
- },
- {
- type = 'files',
- icon = icons.file_manager,
- default_app = apps.default.file_manager,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.tile
- },
- {
- type = 'multimedia',
- icon = icons.multimedia,
- default_app = apps.default.multimedia,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating,
- gap = 0
- },
- {
- type = 'games',
- icon = icons.games,
- default_app = apps.default.game,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- },
- {
- type = 'graphics',
- icon = icons.graphics,
- default_app = apps.default.graphics,
- gap = beautiful.useless_gap
- },
- {
- type = 'sandbox',
- icon = icons.sandbox,
- default_app = apps.default.sandbox,
- layout = awful.layout.suit.max,
- gap = 0
- },
- {
- type = 'any',
- icon = icons.development,
- default_app = apps.default.development,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- }
- -- {
- -- type = 'social',
- -- icon = icons.social,
- -- default_app = 'discord',
- -- gap = beautiful.useless_gap
- -- }
-}
-
--- Set tags layout
-tag.connect_signal(
- 'request::default_layouts',
- function()
- awful.layout.append_default_layouts({
- awful.layout.suit.spiral.dwindle,
- awful.layout.suit.tile,
- awful.layout.suit.floating,
- awful.layout.suit.max
- })
- end
-)
-
--- Create tags for each screen
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- for i, tag in pairs(tags) do
- awful.tag.add(
- i,
- {
- icon = tag.icon,
- icon_only = true,
- layout = tag.layout or awful.layout.suit.spiral.dwindle,
- gap_single_client = true,
- gap = tag.gap,
- screen = s,
- default_app = tag.default_app,
- selected = i == 1
- }
- )
- end
- end
-)
-
-local update_gap_and_shape = function(t)
- -- Get current tag layout
- local current_layout = awful.tag.getproperty(t, 'layout')
- -- If the current layout is awful.layout.suit.max
- if (current_layout == awful.layout.suit.max) then
- -- Set clients gap to 0 and shape to rectangle if maximized
- t.gap = 0
- for _, c in ipairs(t:clients()) do
- if not c.floating or not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- else
- t.gap = beautiful.useless_gap
- for _, c in ipairs(t:clients()) do
- if not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- end
-end
-
--- Change tag's client's shape and gap on change
-tag.connect_signal(
- 'property::layout',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Change tag's client's shape and gap on move to tag
-tag.connect_signal(
- 'tagged',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Focus on urgent clients
-awful.tag.attached_connect_signal(
- s,
- 'property::selected',
- function()
- local urgent_clients = function (c)
- return awful.rules.match(c, {urgent = true})
- end
- for c in awful.client.iterate(urgent_clients) do
- if c.first_tag == mouse.screen.selected_tag then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- end
-)
diff --git a/config/awesome/gnawesome/configuration/user-profile/default.svg b/config/awesome/gnawesome/configuration/user-profile/default.svg
deleted file mode 100644
index 14f800698..000000000
--- a/config/awesome/gnawesome/configuration/user-profile/default.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/layout/bottom-panel.lua b/config/awesome/gnawesome/layout/bottom-panel.lua
deleted file mode 100644
index f5a49741f..000000000
--- a/config/awesome/gnawesome/layout/bottom-panel.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local tag_list = require('widget.tag-list')
-
-local build_widget = function(widget)
- return wibox.widget {
- {
- widget,
- bg = beautiful.groups_title_bg,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
- end,
- widget = wibox.container.background
- },
- top = dpi(10),
- bottom = dpi(10),
- widget = wibox.container.margin
- }
-end
-
-local bottom_panel = function(s)
-
-
- s.systray = wibox.widget {
- {
- base_size = dpi(20),
- horizontal = true,
- screen = 'primary',
- widget = wibox.widget.systray
- },
- visible = false,
- top = dpi(14),
- widget = wibox.container.margin
- }
-
- s.search = require('widget.search-apps')()
- s.tray_toggler = build_widget(require('widget.tray-toggle'))
- s.bluetooth = build_widget(require('widget.bluetooth')())
- s.network = build_widget(require('widget.network')())
- s.battery = build_widget(require('widget.battery')())
- local layout_box = build_widget(require('widget.layoutbox')(s))
-
- local separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
- }
-
- local bottom_panel_height = dpi(48)
- local bottom_panel_margins = dpi(5)
-
- local panel = awful.popup {
- widget = {
- {
- layout = wibox.layout.fixed.horizontal,
- s.search,
- separator,
- tag_list(s),
- require('widget.xdg-folders')(),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- s.systray,
- s.tray_toggler,
- s.network,
- s.bluetooth,
- s.battery,
- layout_box,
- separator
- },
- require('widget.xdg-folders.trash')(),
- },
- bg = beautiful.background,
- shape = function(cr, w, h)
- gears.shape.partially_rounded_rect(cr, w, h, true, true, false, false, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- type = 'dock',
- screen = s,
- ontop = true,
- visible = true,
- height = bottom_panel_height,
- maximum_height = bottom_panel_height,
- placement = awful.placement.bottom,
- shape = gears.shape.rectangle,
- bg = beautiful.transparent
- }
-
- panel:struts {
- bottom = bottom_panel_height
- }
-
- return panel
-end
-
-return bottom_panel
diff --git a/config/awesome/gnawesome/layout/central-panel/init.lua b/config/awesome/gnawesome/layout/central-panel/init.lua
deleted file mode 100644
index 903f2e13c..000000000
--- a/config/awesome/gnawesome/layout/central-panel/init.lua
+++ /dev/null
@@ -1,180 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local panel_visible = false
-
-local central_panel = function(s)
-
- -- Set right panel geometry
- local panel_width = dpi(700)
- local panel_height = s.geometry.height - dpi(38)
- local panel_margins = dpi(5)
-
- local separator = wibox.widget {
- orientation = 'horizontal',
- opacity = 0.0,
- forced_height = 15,
- widget = wibox.widget.separator,
- }
-
- local panel = awful.popup {
- widget = {
- {
- {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- require('widget.central-panel-switch'),
- nil
- },
- separator,
- {
- layout = wibox.layout.stack,
- -- Today Pane
- {
- id = 'pane_id',
- visible = true,
- layout = wibox.layout.fixed.vertical,
- {
- layout = wibox.layout.flex.horizontal,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- require('widget.user-profile'),
- require('widget.weather'),
- require('widget.email'),
- require('widget.calendar')
- },
- require('widget.notif-center')(s)
- },
-
- },
- {
- id = 'settings_id',
- visible = false,
- layout = wibox.layout.fixed.vertical,
- require('layout.central-panel.settings')()
- }
-
- },
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape =function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- screen = s,
- type = 'dock',
- visible = false,
- ontop = true,
- width = panel_width,
- maximum_height = panel_height,
- maximum_width = panel_width,
- height = s.geometry.height,
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- shape = gears.shape.rectangle
- }
-
- awful.placement.centered(
- panel,
- {
- margins = {
- -- right = panel_margins,
- top = s.geometry.y + dpi(65)
- },
- parent = s
- }
- )
-
- panel.opened = false
-
- s.backdrop_central = wibox
- {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- panel:struts {
- top = 0
- }
-
- open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_central.visible = true
- focused.central_panel.visible = true
-
- panel:emit_signal('opened')
- end
-
- close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.central_panel.visible = false
- focused.backdrop_central.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
- function panel:switch_pane(mode)
- if mode == 'today_mode' then
- -- Update Content
- panel.widget:get_children_by_id('settings_id')[1].visible = false
- panel.widget:get_children_by_id('pane_id')[1].visible = true
- elseif mode == 'settings_mode' then
- -- Update Content
- panel.widget:get_children_by_id('pane_id')[1].visible = false
- panel.widget:get_children_by_id('settings_id')[1].visible = true
- end
- end
-
- s.backdrop_central:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- panel:toggle()
- end
- )
- )
- )
- return panel
-end
-
-return central_panel
\ No newline at end of file
diff --git a/config/awesome/gnawesome/layout/central-panel/settings/hardware-monitor.lua b/config/awesome/gnawesome/layout/central-panel/settings/hardware-monitor.lua
deleted file mode 100644
index 819d6e44b..000000000
--- a/config/awesome/gnawesome/layout/central-panel/settings/hardware-monitor.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local hardware_header = wibox.widget {
- text = 'Hardware Monitor',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-
-}
-
-return wibox.widget {
- layout = wibox.layout.fixed.vertical,
- {
- {
- hardware_header,
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
- end,
- forced_height = dpi(35),
- widget = wibox.container.background
-
- },
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.cpu-meter'),
- require('widget.ram-meter'),
- require('widget.temperature-meter'),
- require('widget.harddrive-meter')
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
-}
diff --git a/config/awesome/gnawesome/layout/central-panel/settings/init.lua b/config/awesome/gnawesome/layout/central-panel/settings/init.lua
deleted file mode 100644
index 05bf138cf..000000000
--- a/config/awesome/gnawesome/layout/central-panel/settings/init.lua
+++ /dev/null
@@ -1,18 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-return function()
-
- return wibox.widget {
- layout = wibox.layout.flex.horizontal,
- spacing = dpi(7),
- require('layout.central-panel.settings.quick-settings'),
- require('layout.central-panel.settings.hardware-monitor')
- }
-end
-
diff --git a/config/awesome/gnawesome/layout/central-panel/settings/quick-settings.lua b/config/awesome/gnawesome/layout/central-panel/settings/quick-settings.lua
deleted file mode 100644
index b3930d6d4..000000000
--- a/config/awesome/gnawesome/layout/central-panel/settings/quick-settings.lua
+++ /dev/null
@@ -1,66 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local bar_color = beautiful.groups_bg
-local dpi = beautiful.xresources.apply_dpi
-
-local quick_header = wibox.widget {
- text = 'Quick Settings',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-return wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.vertical,
- {
- {
- quick_header,
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- forced_height = dpi(35),
- bg = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.brightness-slider'),
- require('widget.volume-slider'),
- require('widget.airplane-mode'),
- require('widget.bluetooth-toggle'),
- require('widget.blue-light')
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.blur-slider'),
- require('widget.blur-toggle')
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
- }
- }
-}
diff --git a/config/awesome/gnawesome/layout/init.lua b/config/awesome/gnawesome/layout/init.lua
deleted file mode 100644
index b63a279b3..000000000
--- a/config/awesome/gnawesome/layout/init.lua
+++ /dev/null
@@ -1,62 +0,0 @@
-local awful = require('awful')
-local top_panel = require('layout.top-panel')
-local bottom_panel = require('layout.bottom-panel')
-local central_panel = require('layout.central-panel')
-
--- Create a wibox panel for each screen and add it
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- s.top_panel = top_panel(s)
- s.bottom_panel = bottom_panel(s)
- s.central_panel = central_panel(s)
- end
-)
-
--- Hide bars when app go fullscreen
-function update_bars_visibility()
- for s in screen do
- if s.selected_tag then
- local fullscreen = s.selected_tag.fullscreen_mode
- -- Order matter here for shadow
- s.top_panel.visible = not fullscreen
- s.bottom_panel.visible = not fullscreen
- if s.central_panel then
- if fullscreen and s.central_panel.visible then
- s.central_panel:toggle()
- s.central_panel_show_again = true
- elseif not fullscreen and not s.central_panel.visible and s.central_panel_show_again then
- s.central_panel:toggle()
- s.central_panel_show_again = false
- end
- end
- end
- end
-end
-
-tag.connect_signal(
- 'property::selected',
- function(t)
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.first_tag then
- c.first_tag.fullscreen_mode = c.fullscreen
- end
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.fullscreen then
- c.screen.selected_tag.fullscreen_mode = false
- update_bars_visibility()
- end
- end
-)
diff --git a/config/awesome/gnawesome/layout/top-panel.lua b/config/awesome/gnawesome/layout/top-panel.lua
deleted file mode 100755
index 0882b247e..000000000
--- a/config/awesome/gnawesome/layout/top-panel.lua
+++ /dev/null
@@ -1,71 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-local task_list = require('widget.task-list')
-
-local top_panel = function(s)
-
- local panel = wibox {
- ontop = true,
- screen = s,
- type = 'dock',
- height = dpi(28),
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y,
- stretch = false,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel:struts {
- top = dpi(28)
- }
-
- panel:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- w.cursor = 'left_ptr'
- end
- end
- )
-
- local add_button = require('widget.open-default-app')(s)
- local clock = require('widget.clock')(s)
- s.updater = require('widget.package-updater')()
- s.screen_rec = require('widget.screen-recorder')()
- s.mpd = require('widget.mpd')()
- s.end_session = require('widget.end-session')()
- s.global_search = require('widget.global-search')()
-
- panel : setup {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- {
- layout = wibox.layout.fixed.horizontal,
- task_list(s),
- add_button
- },
- clock,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- s.updater,
- s.screen_rec,
- s.global_search,
- s.mpd,
- s.end_session
- }
- }
-
- return panel
-end
-
-
-return top_panel
diff --git a/config/awesome/gnawesome/library/json.lua b/config/awesome/gnawesome/library/json.lua
deleted file mode 100644
index 3fbaea741..000000000
--- a/config/awesome/gnawesome/library/json.lua
+++ /dev/null
@@ -1,201 +0,0 @@
--- ░▀▀█░█▀▀░█▀█░█▀█░░
--- ░░░█░▀▀█░█░█░█░█░░
--- ░▀▀░░▀▀▀░▀▀▀░▀░▀░░
-
--- This script is from https://gist.github.com/tylerneylon/59f4bcf316be525b30ab
--- License: None. Public Domain
-
---[[ json.lua
-
-A compact pure-Lua JSON library.
-The main functions are: json.stringify, json.parse.
-
-## json.stringify:
-
-This expects the following to be true of any tables being encoded:
- * They only have string or number keys. Number keys must be represented as
- strings in json; this is part of the json spec.
- * They are not recursive. Such a structure cannot be specified in json.
-
-A Lua table is considered to be an array if and only if its set of keys is a
-consecutive sequence of positive integers starting at 1. Arrays are encoded like
-so: `[2, 3, false, "hi"]`. Any other type of Lua table is encoded as a json
-object, encoded like so: `{"key1": 2, "key2": false}`.
-
-Because the Lua nil value cannot be a key, and as a table value is considerd
-equivalent to a missing key, there is no way to express the json "null" value in
-a Lua table. The only way this will output "null" is if your entire input obj is
-nil itself.
-
-An empty Lua table, {}, could be considered either a json object or array -
-it's an ambiguous edge case. We choose to treat this as an object as it is the
-more general type.
-
-To be clear, none of the above considerations is a limitation of this code.
-Rather, it is what we get when we completely observe the json specification for
-as arbitrary a Lua object as json is capable of expressing.
-
-## json.parse:
-
-This function parses json, with the exception that it does not pay attention to
-\u-escaped unicode code points in strings.
-
-It is difficult for Lua to return null as a value. In order to prevent the loss
-of keys with a null value in a json string, this function uses the one-off
-table value json.null (which is just an empty table) to indicate null values.
-This way you can check if a value is null with the conditional
-`val == json.null`.
-
-If you have control over the data and are using Lua, I would recommend just
-avoiding null values in your data to begin with.
-
---]]
-
-
-local json = {}
-
-
--- Internal functions.
-
-local function kind_of(obj)
- if type(obj) ~= 'table' then return type(obj) end
- local i = 1
- for _ in pairs(obj) do
- if obj[i] ~= nil then i = i + 1 else return 'table' end
- end
- if i == 1 then return 'table' else return 'array' end
-end
-
-local function escape_str(s)
- local in_char = {'\\', '"', '/', '\b', '\f', '\n', '\r', '\t'}
- local out_char = {'\\', '"', '/', 'b', 'f', 'n', 'r', 't'}
- for i, c in ipairs(in_char) do
- s = s:gsub(c, '\\' .. out_char[i])
- end
- return s
-end
-
--- Returns pos, did_find; there are two cases:
--- 1. Delimiter found: pos = pos after leading space + delim; did_find = true.
--- 2. Delimiter not found: pos = pos after leading space; did_find = false.
--- This throws an error if err_if_missing is true and the delim is not found.
-local function skip_delim(str, pos, delim, err_if_missing)
- pos = pos + #str:match('^%s*', pos)
- if str:sub(pos, pos) ~= delim then
- if err_if_missing then
- error('Expected ' .. delim .. ' near position ' .. pos)
- end
- return pos, false
- end
- return pos + 1, true
-end
-
--- Expects the given pos to be the first character after the opening quote.
--- Returns val, pos; the returned pos is after the closing quote character.
-local function parse_str_val(str, pos, val)
- val = val or ''
- local early_end_error = 'End of input found while parsing string.'
- if pos > #str then error(early_end_error) end
- local c = str:sub(pos, pos)
- if c == '"' then return val, pos + 1 end
- if c ~= '\\' then return parse_str_val(str, pos + 1, val .. c) end
- -- We must have a \ character.
- local esc_map = {b = '\b', f = '\f', n = '\n', r = '\r', t = '\t'}
- local nextc = str:sub(pos + 1, pos + 1)
- if not nextc then error(early_end_error) end
- return parse_str_val(str, pos + 2, val .. (esc_map[nextc] or nextc))
-end
-
--- Returns val, pos; the returned pos is after the number's final character.
-local function parse_num_val(str, pos)
- local num_str = str:match('^-?%d+%.?%d*[eE]?[+-]?%d*', pos)
- local val = tonumber(num_str)
- if not val then error('Error parsing number at position ' .. pos .. '.') end
- return val, pos + #num_str
-end
-
-
--- Public values and functions.
-
-function json.stringify(obj, as_key)
- local s = {} -- We'll build the string as an array of strings to be concatenated.
- local kind = kind_of(obj) -- This is 'array' if it's an array or type(obj) otherwise.
- if kind == 'array' then
- if as_key then error('Can\'t encode array as key.') end
- s[#s + 1] = '['
- for i, val in ipairs(obj) do
- if i > 1 then s[#s + 1] = ', ' end
- s[#s + 1] = json.stringify(val)
- end
- s[#s + 1] = ']'
- elseif kind == 'table' then
- if as_key then error('Can\'t encode table as key.') end
- s[#s + 1] = '{'
- for k, v in pairs(obj) do
- if #s > 1 then s[#s + 1] = ', ' end
- s[#s + 1] = json.stringify(k, true)
- s[#s + 1] = ':'
- s[#s + 1] = json.stringify(v)
- end
- s[#s + 1] = '}'
- elseif kind == 'string' then
- return '"' .. escape_str(obj) .. '"'
- elseif kind == 'number' then
- if as_key then return '"' .. tostring(obj) .. '"' end
- return tostring(obj)
- elseif kind == 'boolean' then
- return tostring(obj)
- elseif kind == 'nil' then
- return 'null'
- else
- error('Unjsonifiable type: ' .. kind .. '.')
- end
- return table.concat(s)
-end
-
-json.null = {} -- This is a one-off table to represent the null value.
-
-function json.parse(str, pos, end_delim)
- pos = pos or 1
- if pos > #str then error('Reached unexpected end of input.') end
- local pos = pos + #str:match('^%s*', pos) -- Skip whitespace.
- local first = str:sub(pos, pos)
- if first == '{' then -- Parse an object.
- local obj, key, delim_found = {}, true, true
- pos = pos + 1
- while true do
- key, pos = json.parse(str, pos, '}')
- if key == nil then return obj, pos end
- if not delim_found then error('Comma missing between object items.') end
- pos = skip_delim(str, pos, ':', true) -- true -> error if missing.
- obj[key], pos = json.parse(str, pos)
- pos, delim_found = skip_delim(str, pos, ',')
- end
- elseif first == '[' then -- Parse an array.
- local arr, val, delim_found = {}, true, true
- pos = pos + 1
- while true do
- val, pos = json.parse(str, pos, ']')
- if val == nil then return arr, pos end
- if not delim_found then error('Comma missing between array items.') end
- arr[#arr + 1] = val
- pos, delim_found = skip_delim(str, pos, ',')
- end
- elseif first == '"' then -- Parse a string.
- return parse_str_val(str, pos + 1)
- elseif first == '-' or first:match('%d') then -- Parse a number.
- return parse_num_val(str, pos)
- elseif first == end_delim then -- End of an object or array.
- return nil, pos + 1
- else -- Parse true, false, or null.
- local literals = {['true'] = true, ['false'] = false, ['null'] = json.null}
- for lit_str, lit_val in pairs(literals) do
- local lit_end = pos + #lit_str - 1
- if str:sub(pos, lit_end) == lit_str then return lit_val, lit_end + 1 end
- end
- local pos_info_str = 'position ' .. pos .. ': ' .. str:sub(pos, pos + 10)
- error('Invalid json syntax starting at ' .. pos_info_str)
- end
-end
-
-return json
diff --git a/config/awesome/gnawesome/module/auto-start.lua b/config/awesome/gnawesome/module/auto-start.lua
deleted file mode 100644
index 601bd399c..000000000
--- a/config/awesome/gnawesome/module/auto-start.lua
+++ /dev/null
@@ -1,36 +0,0 @@
--- MODULE AUTO-START
--- Run all the apps listed in configuration/apps.lua as run_on_start_up only once when awesome start
-
-local awful = require('awful')
-local naughty = require('naughty')
-local apps = require('configuration.apps')
-local config = require('configuration.config')
-local debug_mode = config.module.auto_start.debug_mode or false
-
-local run_once = function(cmd)
- local findme = cmd
- local firstspace = cmd:find(' ')
- if firstspace then
- findme = cmd:sub(0, firstspace - 1)
- end
- awful.spawn.easy_async_with_shell(
- string.format('pgrep -u $USER -x %s > /dev/null || (%s)', findme, cmd),
- function(stdout, stderr)
- -- Debugger
- if not stderr or stderr == '' or not debug_mode then
- return
- end
- naughty.notification({
- app_name = 'Start-up Applications',
- title = 'Oof! Error detected when starting an application!',
- message = stderr:gsub('%\n', ''),
- timeout = 20,
- icon = require('beautiful').awesome_icon
- })
- end
- )
-end
-
-for _, app in ipairs(apps.run_on_start_up) do
- run_once(app)
-end
diff --git a/config/awesome/gnawesome/module/brightness-osd.lua b/config/awesome/gnawesome/module/brightness-osd.lua
deleted file mode 100644
index b44e2fe25..000000000
--- a/config/awesome/gnawesome/module/brightness-osd.lua
+++ /dev/null
@@ -1,229 +0,0 @@
-local awful = require("awful")
-local gears = require("gears")
-local wibox = require("wibox")
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local osd_header = wibox.widget {
- text = 'Brightness',
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local osd_value = wibox.widget {
- text = '0%',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local slider_osd = wibox.widget {
- nil,
- {
- id = 'bri_osd_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local bri_osd_slider = slider_osd.bri_osd_slider
-
-bri_osd_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = bri_osd_slider:get_value()
-
- awful.spawn('light -S ' .. math.max(brightness_level, 5), false)
-
- -- Update textbox widget text
- osd_value.text = brightness_level .. '%'
-
- -- Update the brightness slider if values here change
- awesome.emit_signal('widget::brightness:update', brightness_level)
-
- if awful.screen.focused().show_bri_osd then
- awesome.emit_signal(
- 'module::brightness_osd:show',
- true
- )
- end
- end
-)
-
-bri_osd_slider:connect_signal(
- 'button::press',
- function()
- awful.screen.focused().show_bri_osd = true
- end
-)
-
-bri_osd_slider:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_bri_osd = true
- end
-)
-
--- The emit will come from brightness slider
-awesome.connect_signal(
- 'module::brightness_osd',
- function(brightness)
- bri_osd_slider:set_value(brightness)
- end
-)
-
-local icon = wibox.widget {
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
-}
-
-local brightness_slider_osd = wibox.widget {
- icon,
- slider_osd,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-}
-
-local osd_height = dpi(100)
-local osd_width = dpi(300)
-local osd_margin = dpi(10)
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- local s = s or {}
- s.show_bri_osd = false
-
- s.brightness_osd_overlay = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'notification',
- screen = s,
- height = osd_height,
- width = osd_width,
- maximum_height = osd_height,
- maximum_width = osd_width,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = 'middle',
- preferred_positions = {'left', 'right', 'top', 'bottom'}
- }
-
- s.brightness_osd_overlay : setup {
- {
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- forced_height = dpi(48),
- osd_header,
- nil,
- osd_value
- },
- brightness_slider_osd,
- layout = wibox.layout.fixed.vertical
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background()
- }
-
- -- Reset timer on mouse hover
- s.brightness_osd_overlay:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_bri_osd = true
- awesome.emit_signal('module::brightness_osd:rerun')
- end
- )
- end
-)
-
-local hide_osd = gears.timer {
- timeout = 2,
- autostart = true,
- callback = function()
- local focused = awful.screen.focused()
- focused.brightness_osd_overlay.visible = false
- focused.show_bri_osd = false
- end
-}
-
-awesome.connect_signal(
- 'module::brightness_osd:rerun',
- function()
- if hide_osd.started then
- hide_osd:again()
- else
- hide_osd:start()
- end
- end
-)
-
-local placement_placer = function()
- local focused = awful.screen.focused()
- local brightness_osd = focused.brightness_osd_overlay
-
- awful.placement.bottom_right(
- brightness_osd,
- {
- margins = {
- left = 0,
- right = osd_margin,
- top = 0,
- bottom = osd_margin,
- },
- honor_workarea = true
- }
- )
-end
-
-awesome.connect_signal(
- 'module::brightness_osd:show',
- function(bool)
- placement_placer()
- awful.screen.focused().brightness_osd_overlay.visible = bool
- if bool then
- awesome.emit_signal('module::brightness_osd:rerun')
- awesome.emit_signal(
- 'module::volume_osd:show',
- false
- )
- else
- if hide_osd.started then
- hide_osd:stop()
- end
- end
- end
-)
diff --git a/config/awesome/gnawesome/module/dynamic-wallpaper.lua b/config/awesome/gnawesome/module/dynamic-wallpaper.lua
deleted file mode 100755
index 72e4406a0..000000000
--- a/config/awesome/gnawesome/module/dynamic-wallpaper.lua
+++ /dev/null
@@ -1,364 +0,0 @@
-----------------------------------------------------------------------------
---- Wallpaper changer module
---
--- @author Gerome Matilla <gerome.matilla07@gmail.com>
--- @copyright 2019 Gerome Matilla
--- @module wallchange
---
---- Nevermind this. Do what you want.
-----------------------------------------------------------------------------
-
--- This module changes wallpaper based on declared time
--- It checks the difference between the current time and the next scheduled time
--- Then convert it to seconds to set it as a timeout value
-
--- Limitations:
--- Timeout paused when laptop/pc is suspended or in sleep mode, and there's probably some bugs too so whatever
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config = require('configuration.config')
-
-
--- ========================================
--- Configuration
--- Change your preference here
--- ========================================
-
-local wall_config = {
- -- Wallpaper directory. The default is:
- -- local wall_config.wall_dir = os.getenv('HOME') .. 'Pictures/Wallpapers/'
- wall_dir = filesystem.get_configuration_dir() .. (config.module.dynamic_wallpaper.wall_dir or 'theme/wallpapers/'),
-
- -- If there's a picture format that awesome accepts and i missed
- -- (which i probably did) feel free to add it right here
- valid_picture_formats = config.module.dynamic_wallpaper.valid_picture_formats or {"jpg", "png", "jpeg"},
-
- -- Table mapping schedule to wallpaper filename
- wallpaper_schedule = config.module.dynamic_wallpaper.wallpaper_schedule or {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- },
-
- -- Don't stretch wallpaper on multihead setups if true
- stretch = config.module.dynamic_wallpaper.stretch or false
-}
-
--- ========================================
--- Processes
--- Don't touch it if it's working
--- ========================================
-
--- Get current time
-local current_time = function()
- return os.date('%H:%M:%S')
-end
-
--- Countdown variable
--- In seconds
-local the_countdown = nil
-
--- Parse seconds to HH:MM:SS
-local function parse_to_time(seconds)
- -- DST ruined me :(
- --return os.date("%H:%M:%S", seconds)
-
- local function format(str)
- while #str < 2 do
- str = '0' .. str
- end
-
- return str
- end
-
- local function convert(num)
- return format(tostring(num))
- end
-
- local hours = convert(math.floor(seconds / 3600))
- seconds = seconds - (hours * 3600)
-
- local minutes = convert(math.floor(seconds / 60))
- seconds = seconds - (minutes * 60)
-
- local seconds = convert(math.floor(seconds))
-
- return (hours .. ':' .. minutes .. ':' .. seconds)
-
-end
-
--- Parse HH:MM:SS to seconds
-local parse_to_seconds = function(time)
-
- -- Convert HH in HH:MM:SS
- local hour_sec = tonumber(string.sub(time, 1, 2)) * 3600
-
- -- Convert MM in HH:MM:SS
- local min_sec = tonumber(string.sub(time, 4, 5)) * 60
-
- -- Get SS in HH:MM:SS
- local get_sec = tonumber(string.sub(time, 7, 8))
-
- -- Return computed seconds
- return (hour_sec + min_sec + get_sec)
-end
-
--- Get time difference
-local time_diff = function(future, past)
- local diff = parse_to_seconds(future) - parse_to_seconds(past)
- if diff < 0 then
- diff = diff + (24 * 3600) --If time difference is negative, the future is meant for tomorrow
- end
- return diff
-end
-
--- Returns a table containing all file paths in a directory
-local function get_dir_contents(dir)
- -- Command to give list of files in directory
- local dir_explore = 'find ' .. dir .. ' -printf "%f\\n"'
- local lines = io.popen(dir_explore):lines() --Done synchronously because we literally can't continue without files
- local files = {}
- for line in lines do
- table.insert(files, line)
- end
- return files
-end
-
--- Returns a table of all the files that were one of the valid file formats
-local function filter_files_by_format(files, valid_file_formats)
- local valid_files = {}
- for _, file in ipairs(files) do
- for _, format in ipairs(valid_file_formats) do
- if string.match(file, ".+%." .. format) ~= nil then
- table.insert(valid_files, file)
- break --No need to check other formats
- end
- end
- end
-
- return valid_files
-end
-
--- Returns a table of files that contained any of the keywords, in the same order as the words themselves
-local function find_files_containing_keywords(files, keywords)
- local found_files = {}
-
- for _, word in ipairs(keywords) do --Preserves keyword order inherently, conveniently
- for _, file in ipairs(files) do
- -- Check if file is word, contains word at beginning or contains word between 2 non-alphanumeric characters
- if file == word or string.find(file, "^" .. word .. "[^%a]") or string.find(file, "[^%a]" .. word .. "[^%a]") then
- found_files[word] = file
- break --Only return 1 file per word
- end
- end
- end
-
- return found_files
-end
-
--- Turn an ordered list of files into a scheduled list of files
-local function auto_schedule(wall_list)
- local sched = {}
- for index, file in ipairs(wall_list) do
- local auto_time = parse_to_time(parse_to_seconds("24:00:00") * (index - 1) / #wall_list)
- sched[auto_time] = file
- end
-
- return sched
-end
-
--- Reformat whatever schedule was specified into an actual schedule
-if #wall_config.wallpaper_schedule == 0 then
- local count = 0
- -- Determine if empty or if manual schedule
- for k, v in pairs(wall_config.wallpaper_schedule) do
- count = count + 1
- end
-
- if count == 0 then --Schedule is actually empty
- -- Get all pictures
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
-
- --Sort pictures as sanely as possible
- local function order_pictures(a, b) --Attempts to mimic default sort but numbers aren't compared as strings
- if tonumber(a) ~= nil and tonumber(b) ~= nil then
- return tonumber(a) < tonumber(b)
- else
- return a < b
- end
- end
- table.sort(pictures, order_pictures)
-
- wall_config.wallpaper_schedule = auto_schedule(pictures)
-
- else --Schedule is manually timed
- -- Get times as list
- local ordered_times = {}
- for time, _ in pairs(wall_config.wallpaper_schedule) do
- table.insert(ordered_times, time)
- end
-
- -- Sort times using seconds as comparison
- local function order_time_asc(a, b)
- return parse_to_seconds(a) < parse_to_seconds(b)
- end
- table.sort(ordered_times, order_time_asc)
-
- -- Get ordered list of keywords from ordered times
- local keywords = {}
- for index, time in ipairs(ordered_times) do
- keywords[index] = wall_config.wallpaper_schedule[time]
- end
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Replace keywords with files
- for index, time in ipairs(ordered_times) do
- local word = wall_config.wallpaper_schedule[time]
- if pictures[word] ~= nil then
- wall_config.wallpaper_schedule[time] = pictures[word]
- else --To avoid crashes, we'll remove entries with invalid keywords
- wall_config.wallpaper_schedule[time] = nil
- end
- end
- end
-else --Schedule is list of keywords
- local keywords = wall_config.wallpaper_schedule
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Order files by keyword (if a file was found for the keyword)
- local ordered_pictures = {}
- for _, word in ipairs(keywords) do
- local file = pictures[word]
- if file ~= nil then
- table.insert(ordered_pictures, file)
- end
- end
-
- wall_config.wallpaper_schedule = auto_schedule(ordered_pictures)
-end
-
--- Set wallpaper
-local set_wallpaper = function(path)
- if wall_config.stretch then
- for s in screen do
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path, s)
- end
- else
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path)
- end
-end
-
--- Update wallpaper (used by the manage_timer function)
--- I think the gears.wallpaper.maximized is too fast or being ran asynchronously
--- So the wallpaper is not being updated on awesome (re)start without this timer
--- We need some delay.
--- Hey it's working, so whatever
-local update_wallpaper = function(wall_name)
- local wall_dir = wall_config.wall_dir .. wall_name
- set_wallpaper(wall_dir)
-
- -- Overwrite the default wallpaper
- -- This is important in case we add an extra monitor
- beautiful.wallpaper = wall_dir
-end
-
--- Updates variables
-local manage_timer = function()
- -- Get current time
- local time_now = parse_to_seconds(current_time())
-
- local previous_time = '' --Scheduled time that should activate now
- local next_time = '' --Time that should activate next
-
- local first_time = '24:00:00' --First scheduled time registered (to be found)
- local last_time = '00:00:00' --Last scheduled time registered (to be found)
-
- -- Find previous_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if previous_time == '' or parsed_time > parse_to_seconds(previous_time) then
- if parsed_time <= time_now then
- previous_time = time
- end
- end
-
- if parsed_time > parse_to_seconds(last_time) then
- last_time = time
- end
- end
-
- -- Previous time being blank = no scheduled time today. Therefore
- -- the last time was yesterday's latest time
- if previous_time == '' then
- previous_time = last_time
- end
-
- --Find next_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if next_time == '' or parsed_time < parse_to_seconds(next_time) then
- if parsed_time > time_now then
- next_time = time
- end
- end
-
- if parsed_time < parse_to_seconds(first_time) then
- first_time = time
- end
- end
-
- -- Next time being blank means that there is no scheduled times left for
- -- the current day. So next scheduled time is tomorrow's first time
- if next_time == '' then
- next_time = first_time
- end
-
- -- Update Wallpaper
- update_wallpaper(wall_config.wallpaper_schedule[previous_time])
-
- -- Get the time difference to set as timeout for the wall_updater timer below
- the_countdown = time_diff(next_time, current_time())
-
-end
-
--- Update values at startup
-manage_timer()
-
-local wall_updater = gears.timer {
- -- The timeout is the difference of current time and the scheduled time we set above.
- timeout = the_countdown,
- autostart = true,
- call_now = true,
- callback = function()
- -- Emit signal to update wallpaper
- awesome.emit_signal('module::change_wallpaper')
- end
-}
-
--- Update wallpaper here and update the timeout for the next schedule
-awesome.connect_signal(
- 'module::change_wallpaper',
- function()
- --set_wallpaper(wall_dir .. wall_data[2])
-
- -- Update values for the next specified schedule
- manage_timer()
-
- -- Update timer timeout for the next specified schedule
- wall_updater.timeout = the_countdown
-
- -- Restart timer
- wall_updater:again()
- end
-)
diff --git a/config/awesome/gnawesome/module/exit-screen.lua b/config/awesome/gnawesome/module/exit-screen.lua
deleted file mode 100644
index ee2684963..000000000
--- a/config/awesome/gnawesome/module/exit-screen.lua
+++ /dev/null
@@ -1,360 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-
-local msg_table = {
- 'See you later, alligator!',
- 'After a while, crocodile.',
- 'Stay out of trouble.',
- 'I’m out of here.',
- 'Yamete, onii-chan~. UwU',
- 'Okay...bye, fry guy!',
- 'Peace out!',
- 'Peace out, bitch!',
- 'Gotta get going.',
- 'Out to the door, dinosaur.',
- 'Don\'t forget to come back!',
- 'Smell ya later!',
- 'In a while, crocodile.',
- 'Adios, amigo.',
- 'Begone!',
- 'Arrivederci.',
- 'Never look back!',
- 'So long, sucker!',
- 'Au revoir!',
- 'Later, skater!',
- 'That\'ll do pig. That\'ll do.',
- 'Happy trails!',
- 'Smell ya later!',
- 'See you soon, baboon!',
- 'Bye Felicia!',
- 'Sayonara!',
- 'Ciao!',
- 'Well.... bye.',
- 'Delete your browser history!',
- 'See you, Space Cowboy!',
- 'Change da world. My final message. Goodbye.',
- 'Find out on the next episode of Dragonball Z...',
- 'Choose wisely!'
-}
-
-local greeter_message = wibox.widget {
- markup = 'Choose wisely!',
- font = 'Inter UltraLight 48',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_name = wibox.widget {
- markup = 'user@hostname',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(140),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- profile_imagebox:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_profile_pic()
-
-local update_user_name = function()
- awful.spawn.easy_async_with_shell(
- [[
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- local first_name = stdout:match('(.*)@') or stdout:match('(.-)%s')
- first_name = first_name:sub(1, 1):upper() .. first_name:sub(2)
- profile_name:set_markup(stdout)
- profile_name:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_user_name()
-
-local update_greeter_msg = function()
- greeter_message:set_markup(msg_table[math.random(#msg_table)])
- greeter_message:emit_signal('widget::redraw_needed')
-end
-
-update_greeter_msg()
-
-local build_power_button = function(name, icon, callback)
- local power_button_label= wibox.widget {
- text = name,
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-
- local power_button = wibox.widget {
- {
- {
- {
- {
- image = icon,
- widget = wibox.widget.imagebox
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- widget = wibox.container.background
- },
- shape = gears.shape.rounded_rect,
- forced_width = dpi(90),
- forced_height = dpi(90),
- widget = clickable_container
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- }
-
- local exit_screen_item = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- power_button,
- power_button_label
- }
-
- exit_screen_item:connect_signal(
- 'button::release',
- function()
- callback()
- end
- )
- return exit_screen_item
-end
-
-local suspend_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock .. ' & systemctl suspend')
-end
-
-local logout_command = function()
- awesome.quit()
-end
-
-local lock_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock)
-end
-
-local poweroff_command = function()
- awful.spawn.with_shell('poweroff')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local reboot_command = function()
- awful.spawn.with_shell('reboot')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local poweroff = build_power_button('Shutdown', icons.power, poweroff_command)
-local reboot = build_power_button('Restart', icons.restart, reboot_command)
-local suspend = build_power_button('Sleep', icons.sleep, suspend_command)
-local logout = build_power_button('Logout', icons.logout, logout_command)
-local lock = build_power_button('Lock', icons.lock, lock_command)
-
-local create_exit_screen = function(s)
- s.exit_screen = wibox
- {
- screen = s,
- type = 'splash',
- visible = false,
- ontop = true,
- bg = beautiful.background,
- fg = beautiful.fg_normal,
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y
- }
-
- s.exit_screen:buttons(
- gears.table.join(
- awful.button(
- {},
- 2,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- )
- )
- )
-
- s.exit_screen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.vertical,
- {
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil
- },
- profile_name
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- widget = wibox.container.margin,
- margins = dpi(15),
- greeter_message
- },
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- {
- poweroff,
- reboot,
- suspend,
- logout,
- lock,
- layout = wibox.layout.fixed.horizontal
- },
- spacing = dpi(30),
- layout = wibox.layout.fixed.vertical
- },
- widget = wibox.container.margin,
- margins = dpi(15)
- },
- nil
- }
- },
- nil
- }
-end
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_exit_screen(s)
- end
-)
-
-screen.connect_signal(
- 'removed',
- function(s)
- create_exit_screen(s)
- end
-)
-
-local exit_screen_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 's' then
- suspend_command()
-
- elseif key == 'e' then
- logout_command()
-
- elseif key == 'l' then
- lock_command()
-
- elseif key == 'p' then
- poweroff_command()
-
- elseif key == 'r' then
- reboot_command()
-
- elseif key == 'Escape' or key == 'q' or key == 'x' then
- awesome.emit_signal('module::exit_screen:hide')
- end
- end
-}
-
-awesome.connect_signal(
- 'module::exit_screen:show',
- function()
- for s in screen do
- s.exit_screen.visible = false
- end
- awful.screen.focused().exit_screen.visible = true
- exit_screen_grabber:start()
- end
-)
-
-awesome.connect_signal(
- 'module::exit_screen:hide',
- function()
- update_greeter_msg()
- exit_screen_grabber:stop()
- for s in screen do
- s.exit_screen.visible = false
- end
- end
-)
diff --git a/config/awesome/gnawesome/module/lockscreen.lua b/config/awesome/gnawesome/module/lockscreen.lua
deleted file mode 100755
index ed46bbed0..000000000
--- a/config/awesome/gnawesome/module/lockscreen.lua
+++ /dev/null
@@ -1,849 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local config = require('configuration.config')
-
--- Add paths to package.cpath
-package.cpath = package.cpath .. ';' .. config_dir .. '/library/?.so;' .. '/usr/lib/lua-pam/?.so;'
-
--- Configuration table
-local locker_config = {
- -- Clock mode
- military_clock = config.module.lockscreen.military_clock or false,
- -- Fallback password
- fallback_password = function()
- return config.module.lockscreen.fallback_password or 'toor'
- end,
- -- Capture a picture using webcam
- capture_intruder = config.module.lockscreen.capture_intruder or false,
- -- Save location, auto creates
- face_capture_dir = config.module.lockscreen.face_capture_dir or '$(xdg-user-dir PICTURES)/Intruders/',
- -- Blur background
- blur_background = config.module.lockscreen.blur_background or false,
- -- Background directory
- bg_dir = config.module.lockscreen.bg_dir or (config_dir .. 'theme/wallpapers/'),
- -- Default background
- bg_image = config.module.lockscreen.bg_image or 'morning-wallpaper.jpg',
- -- /tmp directory
- tmp_wall_dir = config.module.lockscreen.tmp_wall_dir or '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
-}
-
--- Useful variables (DO NOT TOUCH THESE)
-local input_password = nil
-local lock_again = nil
-local type_again = true
-local capture_now = locker_config.capture_intruder
-local locked_tag = nil
-
-local uname_text = wibox.widget {
- id = 'uname_text',
- markup = '$USER',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local caps_text = wibox.widget {
- id = 'uname_text',
- markup = 'Caps Lock is on',
- font = 'Inter Italic 10',
- align = 'center',
- valign = 'center',
- opacity = 0.0,
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- id = 'user_icon',
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(130),
- forced_width = dpi(130),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local clock_format = '%H:%M'
-if not locker_config.military_clock then
- clock_format = '%I:%M %p'
-end
-
--- Create clock widget
-local time = wibox.widget.textclock(clock_format, 1)
-
-local wanted_text = wibox.widget {
- markup = 'INTRUDER ALERT!',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local msg_table = {
- 'This incident will be reported.',
- 'We are watching you.',
- 'We know where you live.',
- 'RUN!',
- 'Yamete, Oniichan~ uwu',
- 'This will self-destruct in 5 seconds!',
- 'Image successfully sent!',
- 'You\'re doomed!',
- 'Authentication failed!',
- 'I am watching you.',
- 'I know where you live.',
- 'RUN!',
- 'Your parents must be proud of you.'
-}
-
-local wanted_msg = wibox.widget {
- markup = 'This incident will be reported!',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local wanted_image = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(120),
- clip_shape = gears.shape.rounded_rect,
- widget = wibox.widget.imagebox
-}
-
-local date_value = function()
- local ordinal = nil
- local date = os.date('%d')
- local day = os.date('%A')
- local month = os.date('%B')
-
- local first_digit = string.sub(date, 0, 1)
- local last_digit = string.sub(date, -1)
- if first_digit == '0' then
- date = last_digit
- end
-
- if last_digit == '1' and date ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and date ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and date ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- return date .. ordinal .. ' of ' .. month .. ', ' .. day
-end
-
-local date = wibox.widget {
- markup = date_value(),
- font = 'Inter Bold 20',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local circle_container = wibox.widget {
- bg = beautiful.transparent,
- forced_width = dpi(140),
- forced_height = dpi(140),
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local locker_arc = wibox.widget {
- bg = beautiful.transparent,
- forced_width = dpi(140),
- forced_height = dpi(140),
- shape = function(cr, width, height)
- gears.shape.arc(cr, width, height, dpi(5), 0, (math.pi / 2), false, false)
- end,
- widget = wibox.container.background
-}
-
-local rotate_container = wibox.container.rotate()
-local locker_widget = wibox.widget {
- {
- locker_arc,
- widget = rotate_container
- },
- layout = wibox.layout.fixed.vertical
-}
-
--- Rotation direction table
-local rotation_direction = {'north', 'west', 'south', 'east'}
-
--- Red, Green, Yellow, Blue
-local red = beautiful.system_red_dark
-local green = beautiful.system_green_dark
-local yellow = beautiful.system_yellow_dark
-local blue = beautiful.system_blue_dark
-
--- Color table
-local arc_color = {red, green, yellow, blue}
-
--- Processes
-local locker = function(s)
-
- local lockscreen = wibox {
- screen = s,
- visible = false,
- ontop = true,
- type = 'splash',
- width = s.geometry.width,
- height = s.geometry.height,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- -- Update username textbox
- awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- uname_text:set_markup(stdout)
- end
- )
-
- local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
- end
-
- -- Update image
- gears.timer.start_new(
- 2,
- function()
- update_profile_pic()
- end
- )
-
- local wanted_poster = awful.popup {
- widget = {
- {
- {
- wanted_text,
- {
- nil,
- wanted_image,
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- wanted_msg,
- spacing = dpi(5),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(20),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background
- },
- bg = beautiful.transparent,
- type = 'utility',
- ontop = true,
- shape = gears.shape.rectangle,
- maximum_width = dpi(250),
- maximum_height = dpi(250),
- hide_on_right_click = false,
- preferred_anchors = {'middle'},
- visible = false
- }
-
- -- Place wanted poster at the bottom of primary screen
- awful.placement.top(
- wanted_poster,
- {
- margins = {
- top = dpi(10)
- }
- }
- )
-
- -- Check Capslock state
- local check_caps = function()
- awful.spawn.easy_async_with_shell(
- 'xset q | grep Caps | cut -d: -f3 | cut -d0 -f1 | tr -d \' \'',
- function(stdout)
- if stdout:match('on') then
- caps_text.opacity = 1.0
- else
- caps_text.opacity = 0.0
- end
- caps_text:emit_signal('widget::redraw_needed')
- end
- )
- end
-
- -- Rotate the color arc on random direction
- local locker_arc_rotate = function()
-
- local direction = rotation_direction[math.random(#rotation_direction)]
- local color = arc_color[math.random(#arc_color)]
-
- rotate_container.direction = direction
- locker_arc.bg = color
-
- rotate_container:emit_signal('widget::redraw_needed')
- locker_arc:emit_signal('widget::redraw_needed')
- locker_widget:emit_signal('widget::redraw_needed')
- end
-
- -- Check webcam
- local check_webcam = function()
- awful.spawn.easy_async_with_shell(
- 'ls -l /dev/video* | grep /dev/video0',
- function(stdout)
- if not locker_config.capture_intruder then
- capture_now = false
- return
- end
-
- if not stdout:match('/dev/video0') then
- capture_now = false
- else
- capture_now = true
- end
- end
- )
- end
-
- check_webcam()
-
- -- Snap an image of the intruder
- local intruder_capture = function()
- local capture_image = [[
- save_dir="]] .. locker_config.face_capture_dir .. [["
- date="$(date +%Y%m%d_%H%M%S)"
- file_loc="${save_dir}SUSPECT-${date}.png"
-
- if [ ! -d "$save_dir" ]; then
- mkdir -p "$save_dir";
- fi
-
- ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -ss 0:0:2 -frames 1 "${file_loc}"
-
- canberra-gtk-play -i camera-shutter &
- echo "${file_loc}"
- ]]
-
- -- Capture the filthy intruder face
- awful.spawn.easy_async_with_shell(
- capture_image,
- function(stdout)
- circle_container.bg = beautiful.transparent
-
- -- Humiliate the intruder by showing his/her hideous face
- wanted_image:set_image(stdout:gsub('%\n',''))
- wanted_msg:set_markup(msg_table[math.random(#msg_table)])
- wanted_poster.visible= true
-
- awful.placement.top(
- wanted_poster,
- {
- margins = {
- top = dpi(10)
- }
- }
- )
-
- wanted_image:emit_signal('widget::redraw_needed')
- type_again = true
- end
- )
- end
-
- -- Login failed
- local stoprightthereyoucriminalscum = function()
- circle_container.bg = red .. 'AA'
- if capture_now then
- intruder_capture()
- else
- gears.timer.start_new(
- 1,
- function()
- circle_container.bg = beautiful.transparent
- type_again = true
- end
- )
- end
- end
-
- -- Login successful
- local generalkenobi_ohhellothere = function()
- circle_container.bg = green .. 'AA'
-
- -- Add a little delay before unlocking completely
- gears.timer.start_new(
- 1,
- function()
- if capture_now then
- -- Hide wanted poster
- wanted_poster.visible = false
- end
-
- -- Hide all the lockscreen on all screen
- for s in screen do
- if s.index == 1 then
- s.lockscreen.visible = false
- else
- s.lockscreen_extended.visible = false
- end
- end
-
- circle_container.bg = beautiful.transparent
- lock_again = true
- type_again = true
-
- -- Select old tag
- -- And restore minimized focused client if there's any
- if locked_tag then
- locked_tag.selected = true
- locked_tag = nil
- end
- local c = awful.client.restore()
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- )
- end
- -- A backdoor.
- -- Sometimes I'm too lazy to type so I decided to create this.
- -- Sometimes my genius is... it's almost frightening.
- local back_door = function()
- generalkenobi_ohhellothere()
- end
-
- -- Check module if valid
- local module_check = function(name)
- if package.loaded[name] then
- return true
- else
- for _, searcher in ipairs(package.searchers or package.loaders) do
- local loader = searcher(name)
- if type(loader) == 'function' then
- package.preload[name] = loader
- return true
- end
- end
- return false
- end
- end
-
- -- Password/key grabber
- local password_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- mask_event_callback = true,
- keybindings = {
- awful.key {
- modifiers = {'Control'},
- key = 'u',
- on_press = function()
- input_password = nil
- end
- },
- awful.key {
- modifiers = {'Mod1', 'Mod4', 'Shift', 'Control'},
- key = 'Return',
- on_press = function(self)
- if not type_again then
- return
- end
- self:stop()
-
- -- Call backdoor
- back_door()
- end
- }
- },
- keypressed_callback = function(self, mod, key, command)
- if not type_again then
- return
- end
-
- -- Clear input string
- if key == 'Escape' then
- -- Clear input threshold
- input_password = nil
- return
- end
-
- -- Accept only the single charactered key
- -- Ignore 'Shift', 'Control', 'Return', 'F1', 'F2', etc., etc.
- if #key == 1 then
- locker_arc_rotate()
-
- if input_password == nil then
- input_password = key
- return
- end
- input_password = input_password .. key
- end
-
- end,
- keyreleased_callback = function(self, mod, key, command)
- locker_arc.bg = beautiful.transparent
- locker_arc:emit_signal('widget::redraw_needed')
-
- if key == 'Caps_Lock' then
- check_caps()
- return
- end
-
- if not type_again then
- return
- end
-
- -- Validation
- if key == 'Return' then
- -- Validate password
- local authenticated = false
- if input_password ~= nil then
- -- If lua-pam library is 'okay'
- if module_check('liblua_pam') then
- local pam = require('liblua_pam')
- authenticated = pam:auth_current_user(input_password)
- else
- -- Library doesn't exist or returns an error due to some reasons (read the manual)
- -- Use fallback password data
- authenticated = input_password == locker_config.fallback_password()
-
- local rtfm = naughty.action {
- name = 'Read Wiki',
- icon_only = false
- }
-
- local dismiss = naughty.action {
- name = 'Dismiss',
- icon_only = false
- }
-
- rtfm:connect_signal(
- 'invoked',
- function()
- awful.spawn(
- [[sh -c "
- xdg-open 'https://github.com/manilarome/the-glorious-dotfiles/wiki'
- "]],
- false
- )
- end
- )
-
- naughty.notification({
- app_name = 'Security',
- title = 'WARNING',
- message = 'You\'re using the fallback password! It\'s recommended to use the PAM Integration!',
- urgency = 'critical',
- actions = { rtfm, dismiss }
- })
- end
- end
-
- if authenticated then
- -- Come in!
- self:stop()
- generalkenobi_ohhellothere()
- else
- -- F*ck off, you [REDACTED]!
- stoprightthereyoucriminalscum()
- end
-
- -- Allow typing again and empty password container
- type_again = false
- input_password = nil
- end
- end
- }
-
- lockscreen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- expand = 'none',
- spacing = dpi(20),
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- time,
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- date,
- nil
- },
- expand = 'none',
- layout = wibox.layout.fixed.vertical
- },
- {
- layout = wibox.layout.fixed.vertical,
- {
- circle_container,
- locker_widget,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil,
- },
- layout = wibox.layout.stack
- },
- uname_text,
- caps_text
- },
- },
- nil
- },
- nil
- }
-
- local show_lockscreen = function()
- -- Why is there a lock_again variable?
- -- It prevents the user to spam locking while in a process of authentication
- -- Prevents a potential bug/problem
- if lock_again == true or lock_again == nil then
- -- Force update clock widget
- time:emit_signal('widget::redraw_needed')
-
- -- Check capslock status
- check_caps()
-
- -- Check webcam status
- check_webcam()
-
- -- Show all the lockscreen on each screen
- for s in screen do
- if s.index == 1 then
- s.lockscreen.visible = true
- else
- s.lockscreen_extended.visible = true
- end
- end
-
- -- Start keygrabbing, but with a little delay to
- -- give some extra time for the free_keygrab function
- gears.timer.start_new(
- 0.5,
- function()
- -- Start key grabbing for password
- password_grabber:start()
- end
- )
-
- -- Dont lock again
- lock_again = false
- end
- end
-
- local free_keygrab = function()
- -- Kill rofi instance.
- awful.spawn.with_shell('kill -9 $(pgrep rofi)')
-
- -- Check if there's a keygrabbing instance.
- -- If yes, stop it.
- local keygrabbing_instance = awful.keygrabber.current_instance
- if keygrabbing_instance then
- keygrabbing_instance:stop()
- end
-
- -- Unselect all tags and minimize the focused client
- -- These will fix the problem with virtualbox or
- -- any other program that has keygrabbing enabled
- if client.focus then
- client.focus.minimized = true
- end
- for _, t in ipairs(mouse.screen.selected_tags) do
- locked_tag = t
- t.selected = false
- end
- end
-
- awesome.connect_signal(
- 'module::lockscreen_show',
- function()
- if lock_again == true or lock_again == nil then
- free_keygrab()
- show_lockscreen()
- end
- end
- )
- return lockscreen
-end
-
--- This lockscreen is for the extra/multi monitor
-local locker_ext = function(s)
- local extended_lockscreen = wibox {
- screen = s,
- visible = false,
- ontop = true,
- ontype = 'true',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
- return extended_lockscreen
-end
-
--- Create lockscreen for each screen
-local create_lock_screens = function(s)
- if s.index == 1 then
- s.lockscreen = locker(s)
- else
- s.lockscreen_extended = locker_ext(s)
- end
-end
-
--- Don't show notification popups if the screen is locked
-local check_lockscreen_visibility = function()
- focused = awful.screen.focused()
- if focused.lockscreen and focused.lockscreen.visible then
- return true
- end
- if focused.lockscreen_extended and focused.lockscreen_extended.visible then
- return true
- end
- return false
-end
-
--- Notifications signal
-naughty.connect_signal(
- 'request::display',
- function(_)
- if check_lockscreen_visibility() then
- naughty.destroy_all_notifications(nil, 1)
- end
- end
-)
-
--- Filter background image
-local filter_bg_image = function(wall_name, index, ap, width, height)
- -- Checks if the blur has to be blurred
- local blur_filter_param = ''
- if locker_config.blur_background then
- blur_filter_param = '-filter Gaussian -blur 0x10'
- end
-
- -- Create imagemagick command
- local magic = [[
- sh -c "
- if [ ! -d ]] .. locker_config.tmp_wall_dir ..[[ ];
- then
- mkdir -p ]] .. locker_config.tmp_wall_dir .. [[;
- fi
- convert -quality 100 -brightness-contrast -20x0 ]] .. ' ' .. blur_filter_param .. ' '.. locker_config.bg_dir .. wall_name ..
- [[ -gravity center -crop ]] .. ap .. [[:1 +repage -resize ]] .. width .. 'x' .. height ..
- [[! ]] .. locker_config.tmp_wall_dir .. index .. wall_name .. [[
- "]]
- return magic
-end
-
--- Apply lockscreen background image
-local apply_ls_bg_image = function(wall_name)
- -- Iterate through all the screens and create a lockscreen for each of it
- for s in screen do
- local index = s.index .. '-'
-
- -- Get screen geometry
- local screen_width = s.geometry.width
- local screen_height = s.geometry.height
-
- -- Get the right resolution/aspect ratio that will be use as the background
- local aspect_ratio = screen_width / screen_height
- aspect_ratio = math.floor(aspect_ratio * 100) / 100
-
- -- Create image filter command
- local cmd = nil
- cmd = filter_bg_image(wall_name, index, aspect_ratio, screen_width, screen_height)
-
- -- Asign lockscreen to each screen
- if s.index == 1 then
- -- Primary screen
- awful.spawn.easy_async_with_shell(
- cmd,
- function()
- s.lockscreen.bgimage = locker_config.tmp_wall_dir .. index .. wall_name
- end
- )
- else
- -- Multihead screen/s
- awful.spawn.easy_async_with_shell(
- cmd,
- function()
- s.lockscreen_extended.bgimage = locker_config.tmp_wall_dir .. index .. wall_name
- end
- )
- end
- end
-end
-
--- Create a lockscreen and its background for each screen on start-up
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_lock_screens(s)
- apply_ls_bg_image(locker_config.bg_image)
- end
-)
-
--- Regenerate lockscreens and its background if a screen was removed to avoid errors
-screen.connect_signal(
- 'removed',
- function(s)
- create_lock_screens(s)
- apply_ls_bg_image(locker_config.bg_image)
- end
-)
diff --git a/config/awesome/gnawesome/module/menu.lua b/config/awesome/gnawesome/module/menu.lua
deleted file mode 100644
index 7843dc228..000000000
--- a/config/awesome/gnawesome/module/menu.lua
+++ /dev/null
@@ -1,246 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local apps = require('configuration.apps')
-local menubar = require('menubar')
-local awful_menu = awful.menu
-local menu_gen = menubar.menu_gen
-local menu_utils = menubar.utils
-local icon_theme = require('menubar.icon_theme')
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local terminal = apps.default.terminal
-local web_browser = apps.default.web_browser
-local file_manager = apps.default.file_manager
-local text_editor = apps.default.text_editor
-local editor_cmd = terminal .. ' -e ' .. (os.getenv('EDITOR') or 'nano')
-
---[[
-
- Awesome-Freedesktop
- Freedesktop.org compliant desktop entries and menu
-
- Menu section
-
- Licensed under GNU General Public License v2
- * (c) 2016, Luke Bonham
- * (c) 2014, Harvey Mittens
-
---]]
-
-local io, pairs, string, table, os = io, pairs, string, table, os
-
--- Expecting a wm_name of awesome omits too many applications and tools
-menu_utils.wm_name = ''
-
--- Menu table
-local menu = {}
-
--- Determines if a path points to a directory, by checking if it can be read
--- (which is `nil` also for empty files) and if its size is not 0.
--- @author blueyed
--- @param path the path to check
-menu.is_dir = function(path)
- local f = io.open(path)
- return f and not f:read(0) and f:seek('end') ~= 0 and f:close()
-end
-
--- Remove non existent paths in order to avoid issues
-local existent_paths = {}
-for k,v in pairs(menu_gen.all_menu_dirs) do
- if menu.is_dir(v) then
- table.insert(existent_paths, v)
- end
-end
-menu_gen.all_menu_dirs = existent_paths
-
--- Determines whether an table includes a certain element
--- @param tab a given table
--- @param val the element to search for
--- @return true if the given string is found within the search table; otherwise, false if not
-menu.has_value = function(tab, val)
- for index, value in pairs(tab) do
- if val:find(value) then
- return true
- end
- end
- return false
-end
-
--- Use MenuBar parsing utils to build a menu for Awesome
--- @return awful.menu
-menu.build = function(args)
- local args = args or {}
- local icon_size = args.icon_size
- local before = args.before or {}
- local after = args.after or {}
- local skip_items = args.skip_items or {}
- local sub_menu = args.sub_menu or false
-
- local result = {}
- local _menu = awful_menu({ items = before })
-
- menu_gen.generate(function(entries)
- -- Add category icons
- for k, v in pairs(menu_gen.all_categories) do
- table.insert(result, { k, {}, v.icon })
- end
-
- -- Get items table
- for k, v in pairs(entries) do
- for _, cat in pairs(result) do
- if cat[1] == v.category then
- if not menu.has_value(skip_items, v.name) then
- table.insert(cat[2], { v.name, v.cmdline, v.icon })
- end
- break
- end
- end
- end
-
- -- Cleanup things a bit
- for i = #result, 1, -1 do
- local v = result[i]
- if #v[2] == 0 then
- -- Remove unused categories
- table.remove(result, i)
- else
- --Sort entries alphabetically (by name)
- table.sort(v[2], function (a, b) return string.byte(a[1]) < string.byte(b[1]) end)
- -- Replace category name with nice name
- v[1] = menu_gen.all_categories[v[1]].name
- end
- end
-
- -- Sort categories alphabetically also
- table.sort(result, function(a, b) return string.byte(a[1]) < string.byte(b[1]) end)
-
- -- Add menu item to hold the generated menu
- if sub_menu then
- result = {{sub_menu, result}}
- end
-
- -- Add items to menu
- for _, v in pairs(result) do _menu:add(v) end
- for _, v in pairs(after) do _menu:add(v) end
- end)
-
- -- Set icon size
- if icon_size then
- for _,v in pairs(menu_gen.all_categories) do
- v.icon = icon_theme():find_icon_path(v.icon_name, icon_size)
- end
- end
-
- -- Hold the menu in the module
- menu.menu = _menu
-
- return _menu
-end
-
--- Create a launcher widget and a main menu
-awesome_menu = {
- {
- 'Hotkeys',
- function()
- hotkeys_popup.show_help(nil, awful.screen.focused())
- end,
- menubar.utils.lookup_icon('keyboard')
- },
- {
- 'Edit config',
- editor_cmd .. ' ' .. awesome.conffile,
- menubar.utils.lookup_icon('accessories-text-editor')
- },
- {
- 'Restart',
- awesome.restart,
- menubar.utils.lookup_icon('system-restart')
- },
- {
- 'Quit',
- function() awesome.quit() end,
- menubar.utils.lookup_icon('system-log-out')
- }
-}
-
-local default_app_menu = {
- {
- 'Terminal',
- terminal,
- menubar.utils.lookup_icon('utilities-terminal')
- },
- {
- 'Web browser',
- web_browser,
- menubar.utils.lookup_icon('webbrowser-app')
- },
- {
- 'File Manager',
- file_manager,
- menubar.utils.lookup_icon('system-file-manager')
- },
- {
- 'Text Editor',
- text_editor,
- menubar.utils.lookup_icon('accessories-text-editor')
- }
-}
-
--- Screenshot menu
-local screenshot_menu = {
- {
- 'Full',
- function()
- gears.timer.start_new(
- 0.1,
- function()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot)
- end
- )
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- },
- {
- 'Area',
- function()
- gears.timer.start_new(
- 0.1,
- function()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot)
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- )
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- }
-}
-
-local tools_menu = {
- {
- 'Awesome',
- awesome_menu,
- beautiful.awesome_icon
- },
- {
- 'Take a Screenshot',
- screenshot_menu,
- menubar.utils.lookup_icon('accessories-screenshot')
- },
- {
- 'End Session',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- menubar.utils.lookup_icon('system-shutdown')
- }
-}
-
-mymainmenu = menu.build({
- -- Not actually the size, but the quality of the icon
- icon_size = 48,
- before = default_app_menu,
- after = tools_menu
-})
-
-mylauncher = awful.widget.launcher({image = beautiful.awesome_icon, menu = mymainmenu})
diff --git a/config/awesome/gnawesome/module/notifications.lua b/config/awesome/gnawesome/module/notifications.lua
deleted file mode 100644
index 4c264b52f..000000000
--- a/config/awesome/gnawesome/module/notifications.lua
+++ /dev/null
@@ -1,257 +0,0 @@
-local gears = require('gears')
-local wibox = require('wibox')
-local awful = require('awful')
-local ruled = require('ruled')
-local naughty = require('naughty')
-local menubar = require('menubar')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
--- Defaults
-naughty.config.defaults.ontop = true
-naughty.config.defaults.icon_size = dpi(32)
-naughty.config.defaults.timeout = 5
-naughty.config.defaults.title = 'System Notification'
-naughty.config.defaults.margin = dpi(16)
-naughty.config.defaults.border_width = 0
-naughty.config.defaults.position = 'top_right'
-naughty.config.defaults.shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
-end
-
--- Apply theme variables
-naughty.config.padding = dpi(8)
-naughty.config.spacing = dpi(8)
-naughty.config.icon_dirs = {
- '/usr/share/icons/Tela',
- '/usr/share/icons/Tela-blue-dark',
- '/usr/share/icons/Papirus/',
- '/usr/share/icons/la-capitaine-icon-theme/',
- '/usr/share/icons/gnome/',
- '/usr/share/icons/hicolor/',
- '/usr/share/pixmaps/'
-}
-naughty.config.icon_formats = { 'svg', 'png', 'jpg', 'gif' }
-
-
--- Presets / rules
-
-ruled.notification.connect_signal(
- 'request::rules',
- function()
-
- -- Critical notifs
- ruled.notification.append_rule {
- rule = { urgency = 'critical' },
- properties = {
- font = 'Inter Bold 10',
- bg = '#ff0000',
- fg = '#ffffff',
- margin = dpi(16),
- position = 'top_right',
- implicit_timeout = 0
- }
- }
-
- -- Normal notifs
- ruled.notification.append_rule {
- rule = { urgency = 'normal' },
- properties = {
- font = 'Inter Regular 10',
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- margin = dpi(16),
- position = 'top_right',
- implicit_timeout = 5
- }
- }
-
- -- Low notifs
- ruled.notification.append_rule {
- rule = { urgency = 'low' },
- properties = {
- font = 'Inter Regular 10',
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- margin = dpi(16),
- position = 'top_right',
- implicit_timeout = 5
- }
- }
- end
- )
-
--- Error handling
-naughty.connect_signal(
- 'request::display_error',
- function(message, startup)
- naughty.notification {
- urgency = 'critical',
- title = 'Oops, an error happened'..(startup and ' during startup!' or '!'),
- message = message,
- app_name = 'System Notification',
- icon = beautiful.awesome_icon
- }
- end
-)
-
--- XDG icon lookup
-naughty.connect_signal(
- 'request::icon',
- function(n, context, hints)
- if context ~= 'app_icon' then return end
-
- local path = menubar.utils.lookup_icon(hints.app_icon) or
- menubar.utils.lookup_icon(hints.app_icon:lower())
-
- if path then
- n.icon = path
- end
- end
-)
-
--- Connect to naughty on display signal
-naughty.connect_signal(
- 'request::display',
- function(n)
-
- -- Actions Blueprint
- local actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = dpi(30),
- widget = wibox.container.background
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions
- }
-
- -- Notifbox Blueprint
- naughty.layout.box {
- notification = n,
- type = 'notification',
- screen = awful.screen.preferred(),
- shape = gears.shape.rectangle,
- widget_template = {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- markup = n.app_name or 'System Notification',
- font = 'Inter Bold 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- bg = beautiful.background,
- widget = wibox.container.background,
- },
- {
- {
- {
- resize_strategy = 'center',
- widget = naughty.widget.icon,
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- {
- align = 'left',
- widget = naughty.widget.title
- },
- {
- align = 'left',
- widget = naughty.widget.message,
- },
- layout = wibox.layout.fixed.vertical
- },
- nil
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- layout = wibox.layout.fixed.horizontal,
- },
- fill_space = true,
- spacing = beautiful.notification_margin,
- layout = wibox.layout.fixed.vertical,
- },
- -- Margin between the fake background
- -- Set to 0 to preserve the 'titlebar' effect
- margins = dpi(0),
- widget = wibox.container.margin,
- },
- bg = beautiful.transparent,
- widget = wibox.container.background,
- },
- -- Actions
- actions_template,
- spacing = dpi(4),
- layout = wibox.layout.fixed.vertical,
- },
- bg = beautiful.transparent,
- id = 'background_role',
- widget = naughty.container.background,
- },
- strategy = 'min',
- width = dpi(160),
- widget = wibox.container.constraint,
- },
- strategy = 'max',
- width = beautiful.notification_max_width or dpi(500),
- widget = wibox.container.constraint
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background
- }
- }
-
- -- Destroy popups if dont_disturb mode is on
- -- Or if the central_panel is visible
- local focused = awful.screen.focused()
- if _G.dont_disturb or
- (focused.central_panel and focused.central_panel.visible) then
- naughty.destroy_all_notifications(nil, 1)
- end
-
- end
-)
diff --git a/config/awesome/gnawesome/module/quake-terminal.lua b/config/awesome/gnawesome/module/quake-terminal.lua
deleted file mode 100644
index 4bd2ce77a..000000000
--- a/config/awesome/gnawesome/module/quake-terminal.lua
+++ /dev/null
@@ -1,112 +0,0 @@
-local awful = require('awful')
-local ruled = require('ruled')
-local beautiful = require('beautiful')
-local app = require('configuration.apps').default.quake
-local client_keys = require('configuration.client.keys')
-local client_buttons = require('configuration.client.buttons')
-local quake_id = nil
-local quake_client = nil
-local quake_opened = false
-
-local quake_properties = function()
- return {
- skip_decoration = true,
- titlebars_enabled = false,
- switch_to_tags = false,
- opacity = 0.95,
- floating = true,
- skip_taskbar = true,
- ontop = true,
- above = true,
- sticky = true,
- hidden = not quake_opened,
- maximized_horizontal = true,
- skip_center = true,
- round_corners = false,
- keys = client_keys,
- buttons = client_buttons,
- placement = awful.placement.top,
- shape = beautiful.client_shape_rectangle
- }
-end
-
-ruled.client.connect_signal(
- 'request::rules',
- function()
- ruled.client.append_rule {
- id = 'quake_terminal',
- rule_any = {
- instance = {
- 'QuakeTerminal'
- }
- },
- properties = quake_properties()
- }
- end
-)
-
-local create_quake = function()
- -- Check if there's already an instance of 'QuakeTerminal'.
- -- If yes, recover it - use it again.
- local quake_term = function (c)
- return ruled.client.match(c, {instance = 'QuakeTerminal'})
- end
- for c in awful.client.iterate(quake_term) do
- -- 'QuakeTerminal' instance detected
- -- Re-apply its properties
- ruled.client.execute(c, quake_properties())
- quake_id = c.pid
- c:emit_signal('request::activate')
- return
- end
- -- No 'QuakeTerminal' instance, spawn one
- quake_id = awful.spawn(app, quake_properties())
-end
-
-local quake_open = function()
- quake_client.hidden = false
- quake_client:emit_signal('request::activate')
-end
-
-local quake_close = function()
- quake_client.hidden = true
-end
-
-local quake_toggle = function()
- quake_opened = not quake_opened
- if not quake_client then
- create_quake()
- else
- if quake_opened then
- quake_open()
- else
- quake_close()
- end
- end
-end
-
-awesome.connect_signal(
- 'module::quake_terminal:toggle',
- function()
- quake_toggle();
- end
-)
-
-client.connect_signal(
- 'manage',
- function(c)
- if c.pid == quake_id then
- quake_client = c
- end
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.pid == quake_id then
- quake_opened = false
- quake_client = nil
- end
- end
-)
diff --git a/config/awesome/gnawesome/module/titlebar.lua b/config/awesome/gnawesome/module/titlebar.lua
deleted file mode 100644
index ebf958d44..000000000
--- a/config/awesome/gnawesome/module/titlebar.lua
+++ /dev/null
@@ -1,278 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local dpi = beautiful.xresources.apply_dpi
-awful.titlebar.enable_tooltip = true
-awful.titlebar.fallback_name = 'Client'
-
-local double_click_event_handler = function(double_click_event)
- if double_click_timer then
- double_click_timer:stop()
- double_click_timer = nil
- double_click_event()
- return
- end
- double_click_timer = gears.timer.start_new(
- 0.20,
- function()
- double_click_timer = nil
- return false
- end
- )
-end
-
-local create_click_events = function(c)
- -- Titlebar button/click events
- local buttons = gears.table.join(
- awful.button(
- {},
- 1,
- function()
- double_click_event_handler(function()
- if c.floating then
- c.floating = false
- return
- end
- c.maximized = not c.maximized
- c:raise()
- return
- end)
- c:activate {context = 'titlebar', action = 'mouse_move'}
- end
- ),
- awful.button(
- {},
- 3,
- function()
- c:activate {context = 'titlebar', action = 'mouse_resize'}
- end
- )
- )
- return buttons
-end
-
-local create_vertical_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.horizontal
- }
-end
-
-local create_vertical_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.minimizebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- nil,
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- nil,
- layout = wibox.layout.align.horizontal
- }
-end
-
-client.connect_signal(
- 'request::titlebars',
- function(c)
-
- -- Customize here
- if c.type == 'normal' then
-
- if c.class == 'kitty' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
-
- elseif c.class == 'XTerm' or c.class == 'UXTerm' then
- create_horizontal_bar(c, 'top',
- beautiful.xresources.get_current_theme().background, beautiful.titlebar_size)
-
- elseif c.class == 'ark' or c.class == 'dolphin' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.instance == 'transmission-qt' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' or c.class == 'Inkscape' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Com.github.johnfactotum.Foliate' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Ettercap' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'Google-chrome' or c.class == 'Chromium' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'TelegramDesktop' then
- create_vertical_bar(c, 'left', '#17212b', beautiful.titlebar_size)
-
- elseif c.class == 'Kvantum Manager' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'qt5ct' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Nemo' then
- create_horizontal_bar(c, 'top',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
-
- elseif c.type == 'dialog' then
-
- if c.role == 'GtkFileChooserDialog' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar_dialog(c, 'left', '#00000099', beautiful.titlebar_size)
- end
-
- elseif c.type == 'modal' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
- end
-)
diff --git a/config/awesome/gnawesome/module/volume-osd.lua b/config/awesome/gnawesome/module/volume-osd.lua
deleted file mode 100644
index 7a50e2717..000000000
--- a/config/awesome/gnawesome/module/volume-osd.lua
+++ /dev/null
@@ -1,229 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local osd_header = wibox.widget {
- text = 'Volume',
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local osd_value = wibox.widget {
- text = '0%',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local slider_osd = wibox.widget {
- nil,
- {
- id = 'vol_osd_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local vol_osd_slider = slider_osd.vol_osd_slider
-
-vol_osd_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = vol_osd_slider:get_value()
- awful.spawn('amixer -D pulse sset Master ' .. volume_level .. '%', false)
-
- -- Update textbox widget text
- osd_value.text = volume_level .. '%'
-
- -- Update the volume slider if values here change
- awesome.emit_signal('widget::volume:update', volume_level)
-
- if awful.screen.focused().show_vol_osd then
- awesome.emit_signal(
- 'module::volume_osd:show',
- true
- )
- end
- end
-)
-
-vol_osd_slider:connect_signal(
- 'button::press',
- function()
- awful.screen.focused().show_vol_osd = true
- end
-)
-
-vol_osd_slider:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_vol_osd = true
- end
-)
-
--- The emit will come from the volume-slider
-awesome.connect_signal(
- 'module::volume_osd',
- function(volume)
- vol_osd_slider:set_value(volume)
- end
-)
-
-local icon = wibox.widget {
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
-}
-
-local volume_slider_osd = wibox.widget {
- icon,
- slider_osd,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-}
-
-local osd_height = dpi(100)
-local osd_width = dpi(300)
-local osd_margin = dpi(10)
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- local s = s or {}
- s.show_vol_osd = false
-
- -- Create the box
- s.volume_osd_overlay = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'notification',
- screen = s,
- height = osd_height,
- width = osd_width,
- maximum_height = osd_height,
- maximum_width = osd_width,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = 'middle',
- preferred_positions = {'left', 'right', 'top', 'bottom'}
- }
-
- s.volume_osd_overlay : setup {
- {
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- forced_height = dpi(48),
- osd_header,
- nil,
- osd_value
- },
- volume_slider_osd,
- layout = wibox.layout.fixed.vertical
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background()
- }
-
- -- Reset timer on mouse hover
- s.volume_osd_overlay:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_vol_osd = true
- awesome.emit_signal('module::volume_osd:rerun')
- end
- )
- end
-)
-
-local hide_osd = gears.timer {
- timeout = 2,
- autostart = true,
- callback = function()
- local focused = awful.screen.focused()
- focused.volume_osd_overlay.visible = false
- focused.show_vol_osd = false
- end
-}
-
-awesome.connect_signal(
- 'module::volume_osd:rerun',
- function()
- if hide_osd.started then
- hide_osd:again()
- else
- hide_osd:start()
- end
- end
-)
-
-local placement_placer = function()
- local focused = awful.screen.focused()
- local volume_osd = focused.volume_osd_overlay
-
- awful.placement.bottom_right(
- volume_osd,
- {
- margins = {
- left = 0,
- right = osd_margin,
- top = 0,
- bottom = osd_margin,
- },
- honor_workarea = true
- }
- )
-end
-
-awesome.connect_signal(
- 'module::volume_osd:show',
- function(bool)
- placement_placer()
- awful.screen.focused().volume_osd_overlay.visible = bool
- if bool then
- awesome.emit_signal('module::volume_osd:rerun')
- awesome.emit_signal(
- 'module::brightness_osd:show',
- false
- )
- else
- if hide_osd.started then
- hide_osd:stop()
- end
- end
- end
-)
diff --git a/config/awesome/gnawesome/rc.lua b/config/awesome/gnawesome/rc.lua
deleted file mode 100644
index 4b2e8fdc0..000000000
--- a/config/awesome/gnawesome/rc.lua
+++ /dev/null
@@ -1,78 +0,0 @@
--- ░█▀▀░█▀█░█▀█░█░█░█▀▀░█▀▀░█▀█░█▄█░█▀▀
--- ░█░█░█░█░█▀█░█▄█░█▀▀░▀▀█░█░█░█░█░█▀▀
--- ░▀▀▀░▀░▀░▀░▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀
--- Banner generated using `toilet -f pagga AwesomeWM"
-
-local gears = require('gears')
-local beautiful = require('beautiful')
-local awful = require('awful')
-require('awful.autofocus')
-
--- ░█▀▀░█░█░█▀▀░█░░░█░░
--- ░▀▀█░█▀█░█▀▀░█░░░█░░
--- ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
-
-awful.util.shell = 'sh'
-
--- ░▀█▀░█░█░█▀▀░█▄█░█▀▀
--- ░░█░░█▀█░█▀▀░█░█░█▀▀
--- ░░▀░░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-beautiful.init(require('theme'))
-
--- ░█░░░█▀█░█░█░█▀█░█░█░▀█▀
--- ░█░░░█▀█░░█░░█░█░█░█░░█░
--- ░▀▀▀░▀░▀░░▀░░▀▀▀░▀▀▀░░▀░
-
-require('layout')
-
--- ░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀░█░█░█▀▄░█▀█░▀█▀░▀█▀░█▀█░█▀█░█▀▀
--- ░█░░░█░█░█░█░█▀▀░░█░░█░█░█░█░█▀▄░█▀█░░█░░░█░░█░█░█░█░▀▀█
--- ░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀
-
-require('configuration.client')
-require('configuration.root')
-require('configuration.tags')
-root.keys(require('configuration.keys.global'))
-
--- ░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀
--- ░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█
--- ░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀
-
-require('module.notifications')
-require('module.auto-start')
-require('module.exit-screen')
-require('module.quake-terminal')
-require('module.menu')
-require('module.titlebar')
-require('module.brightness-osd')
-require('module.volume-osd')
-require('module.lockscreen')
-require('module.dynamic-wallpaper')
-
--- ░█░█░█▀█░█░░░█░░░█▀█░█▀█░█▀█░█▀▀░█▀▄
--- ░█▄█░█▀█░█░░░█░░░█▀▀░█▀█░█▀▀░█▀▀░█▀▄
--- ░▀░▀░▀░▀░▀▀▀░▀▀▀░▀░░░▀░▀░▀░░░▀▀▀░▀░▀
-
-screen.connect_signal(
- 'request::wallpaper',
- function(s)
- -- If wallpaper is a function, call it with the screen
- if beautiful.wallpaper then
- if type(beautiful.wallpaper) == 'string' then
-
- -- Check if beautiful.wallpaper is color/image
- if beautiful.wallpaper:sub(1, #'#') == '#' then
- -- If beautiful.wallpaper is color
- gears.wallpaper.set(beautiful.wallpaper)
-
- elseif beautiful.wallpaper:sub(1, #'/') == '/' then
- -- If beautiful.wallpaper is path/image
- gears.wallpaper.maximized(beautiful.wallpaper, s)
- end
- else
- beautiful.wallpaper(s)
- end
- end
- end
-)
diff --git a/config/awesome/gnawesome/theme/default-theme.lua b/config/awesome/gnawesome/theme/default-theme.lua
deleted file mode 100644
index 68a045c11..000000000
--- a/config/awesome/gnawesome/theme/default-theme.lua
+++ /dev/null
@@ -1,219 +0,0 @@
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local gtk_variable = beautiful.gtk.get_theme_variables
-
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-local titlebar_theme = 'stoplight'
-local titlebar_icon_path = theme_dir .. '/icons/titlebar/' .. titlebar_theme .. '/'
-local tip = titlebar_icon_path
-
--- Create theme table
-local theme = {}
-
--- Font
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Menu icon theme
-theme.icon_theme = 'Tela-blue-dark'
-
-local awesome_overrides = function(theme)
-
- theme.dir = theme_dir
- theme.icons = theme_dir .. '/icons/'
-
- -- Default wallpaper path
- theme.wallpaper = theme.dir .. '/wallpapers/morning-wallpaper.jpg'
-
- -- Default font
- theme.font = 'Inter Regular 10'
-
- -- Foreground
- theme.fg_normal = '#ffffffde'
- theme.fg_focus = '#e4e4e4'
- theme.fg_urgent = '#CC9393'
-
- theme.bg_normal = theme.background
- theme.bg_focus = '#5a5a5a'
- theme.bg_urgent = '#3F3F3F'
-
- -- System tray
- theme.bg_systray = theme.background
- theme.systray_icon_spacing = dpi(16)
-
- -- Titlebar
- theme.titlebar_size = dpi(34)
- theme.titlebar_bg_focus = gtk_variable().bg_color:sub(1,7) .. '66'
- theme.titlebar_bg_normal = gtk_variable().base_color:sub(1,7) .. '66'
- theme.titlebar_fg_focus = gtk_variable().fg_color
- theme.titlebar_fg_normal = gtk_variable().fg_color
-
- -- Close Button
- theme.titlebar_close_button_normal = tip .. 'close_normal.svg'
- theme.titlebar_close_button_focus = tip .. 'close_focus.svg'
-
- -- Minimize Button
- theme.titlebar_minimize_button_normal = tip .. 'minimize_normal.svg'
- theme.titlebar_minimize_button_focus = tip .. 'minimize_focus.svg'
-
- -- Ontop Button
- theme.titlebar_ontop_button_normal_inactive = tip .. 'ontop_normal_inactive.svg'
- theme.titlebar_ontop_button_focus_inactive = tip .. 'ontop_focus_inactive.svg'
- theme.titlebar_ontop_button_normal_active = tip .. 'ontop_normal_active.svg'
- theme.titlebar_ontop_button_focus_active = tip .. 'ontop_focus_active.svg'
-
- -- Sticky Button
- theme.titlebar_sticky_button_normal_inactive = tip .. 'sticky_normal_inactive.svg'
- theme.titlebar_sticky_button_focus_inactive = tip .. 'sticky_focus_inactive.svg'
- theme.titlebar_sticky_button_normal_active = tip .. 'sticky_normal_active.svg'
- theme.titlebar_sticky_button_focus_active = tip .. 'sticky_focus_active.svg'
-
- -- Floating Button
- theme.titlebar_floating_button_normal_inactive = tip .. 'floating_normal_inactive.svg'
- theme.titlebar_floating_button_focus_inactive = tip .. 'floating_focus_inactive.svg'
- theme.titlebar_floating_button_normal_active = tip .. 'floating_normal_active.svg'
- theme.titlebar_floating_button_focus_active = tip .. 'floating_focus_active.svg'
-
- -- Maximized Button
- theme.titlebar_maximized_button_normal_inactive = tip .. 'maximized_normal_inactive.svg'
- theme.titlebar_maximized_button_focus_inactive = tip .. 'maximized_focus_inactive.svg'
- theme.titlebar_maximized_button_normal_active = tip .. 'maximized_normal_active.svg'
- theme.titlebar_maximized_button_focus_active = tip .. 'maximized_focus_active.svg'
-
- -- Hovered Close Button
- theme.titlebar_close_button_normal_hover = tip .. 'close_normal_hover.svg'
- theme.titlebar_close_button_focus_hover = tip .. 'close_focus_hover.svg'
-
- -- Hovered Minimize Buttin
- theme.titlebar_minimize_button_normal_hover = tip .. 'minimize_normal_hover.svg'
- theme.titlebar_minimize_button_focus_hover = tip .. 'minimize_focus_hover.svg'
-
- -- Hovered Ontop Button
- theme.titlebar_ontop_button_normal_inactive_hover = tip .. 'ontop_normal_inactive_hover.svg'
- theme.titlebar_ontop_button_focus_inactive_hover = tip .. 'ontop_focus_inactive_hover.svg'
- theme.titlebar_ontop_button_normal_active_hover = tip .. 'ontop_normal_active_hover.svg'
- theme.titlebar_ontop_button_focus_active_hover = tip .. 'ontop_focus_active_hover.svg'
-
- -- Hovered Sticky Button
- theme.titlebar_sticky_button_normal_inactive_hover = tip .. 'sticky_normal_inactive_hover.svg'
- theme.titlebar_sticky_button_focus_inactive_hover = tip .. 'sticky_focus_inactive_hover.svg'
- theme.titlebar_sticky_button_normal_active_hover = tip .. 'sticky_normal_active_hover.svg'
- theme.titlebar_sticky_button_focus_active_hover = tip .. 'sticky_focus_active_hover.svg'
-
- -- Hovered Floating Button
- theme.titlebar_floating_button_normal_inactive_hover = tip .. 'floating_normal_inactive_hover.svg'
- theme.titlebar_floating_button_focus_inactive_hover = tip .. 'floating_focus_inactive_hover.svg'
- theme.titlebar_floating_button_normal_active_hover = tip .. 'floating_normal_active_hover.svg'
- theme.titlebar_floating_button_focus_active_hover = tip .. 'floating_focus_active_hover.svg'
-
- -- Hovered Maximized Button
- theme.titlebar_maximized_button_normal_inactive_hover = tip .. 'maximized_normal_inactive_hover.svg'
- theme.titlebar_maximized_button_focus_inactive_hover = tip .. 'maximized_focus_inactive_hover.svg'
- theme.titlebar_maximized_button_normal_active_hover = tip .. 'maximized_normal_active_hover.svg'
- theme.titlebar_maximized_button_focus_active_hover = tip .. 'maximized_focus_active_hover.svg'
-
- -- UI Groups
- theme.groups_title_bg = '#ffffff' .. '15'
- theme.groups_bg = '#ffffff' .. '10'
- theme.groups_radius = dpi(9)
-
- -- UI events
- theme.leave_event = transparent
- theme.enter_event = '#ffffff' .. '10'
- theme.press_event = '#ffffff' .. '15'
- theme.release_event = '#ffffff' .. '10'
-
- -- Client Decorations
-
- -- Borders
- theme.border_focus = gtk_variable().bg_color
- theme.border_normal = gtk_variable().base_color
- theme.border_marked = '#CC9393'
- theme.border_width = dpi(0)
- theme.border_radius = dpi(9)
-
- -- Decorations
- theme.useless_gap = dpi(4)
- theme.client_shape_rectangle = gears.shape.rectangle
- theme.client_shape_rounded = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, dpi(9))
- end
-
- -- Menu
- theme.menu_font = 'Inter Regular 11'
- theme.menu_submenu = '' -- ➤
-
- theme.menu_height = dpi(34)
- theme.menu_width = dpi(200)
- theme.menu_border_width = dpi(20)
- theme.menu_bg_focus = theme.accent .. 'CC'
-
- theme.menu_bg_normal = theme.background:sub(1,7) .. '33'
- theme.menu_fg_normal = '#ffffff'
- theme.menu_fg_focus = '#ffffff'
- theme.menu_border_color = theme.background:sub(1,7) .. '5C'
-
- -- Tooltips
-
- theme.tooltip_bg = theme.background
- theme.tooltip_border_color = theme.transparent
- theme.tooltip_border_width = 0
- theme.tooltip_gaps = dpi(5)
- theme.tooltip_shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
- end
-
- -- Separators
- theme.separator_color = '#f2f2f244'
-
- -- Layoutbox icons
- theme.layout_max = theme.icons .. 'layouts/max.svg'
- theme.layout_tile = theme.icons .. 'layouts/tile.svg'
- theme.layout_dwindle = theme.icons .. 'layouts/dwindle.svg'
- theme.layout_floating = theme.icons .. 'layouts/floating.svg'
-
- -- Taglist
- theme.taglist_bg_empty = theme.background .. '99'
- theme.taglist_bg_occupied = '#ffffff' .. '1A'
- theme.taglist_bg_urgent = '#E91E63' .. '99'
- theme.taglist_bg_focus = theme.background
- theme.taglist_spacing = dpi(0)
-
- -- Tasklist
- theme.tasklist_font = 'Inter Regular 10'
- theme.tasklist_bg_normal = theme.background .. '99'
- theme.tasklist_bg_focus = theme.background
- theme.tasklist_bg_urgent = '#E91E63' .. '99'
- theme.tasklist_fg_focus = '#DDDDDD'
- theme.tasklist_fg_urgent = '#ffffff'
- theme.tasklist_fg_normal = '#AAAAAA'
-
- -- Notification
- theme.notification_position = 'top_right'
- theme.notification_bg = theme.transparent
- theme.notification_margin = dpi(5)
- theme.notification_border_width = dpi(0)
- theme.notification_border_color = theme.transparent
- theme.notification_spacing = dpi(5)
- theme.notification_icon_resize_strategy = 'center'
- theme.notification_icon_size = dpi(32)
-
- -- Client Snap Theme
- theme.snap_bg = theme.background
- theme.snap_shape = gears.shape.rectangle
- theme.snap_border_width = dpi(15)
-
- -- Hotkey popup
- theme.hotkeys_font = 'Inter Bold'
- theme.hotkeys_description_font = 'Inter Regular Regular'
- theme.hotkeys_bg = theme.background
- theme.hotkeys_group_margin = dpi(20)
-end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/gnawesome/theme/gnawesome-theme/init.lua b/config/awesome/gnawesome/theme/gnawesome-theme/init.lua
deleted file mode 100644
index 7124c9730..000000000
--- a/config/awesome/gnawesome/theme/gnawesome-theme/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local filesystem = require('gears.filesystem')
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-
-local theme = {}
-
-theme.icons = theme_dir .. '/icons/'
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Colorscheme
-theme.system_black_dark = '#3D4C5F'
-theme.system_black_light = '#56687E'
-
-theme.system_red_dark = '#EE4F84'
-theme.system_red_light = '#F48FB1'
-
-theme.system_green_dark = '#53E2AE'
-theme.system_green_light = '#A1EFD3'
-
-theme.system_yellow_dark = '#F1FF52'
-theme.system_yellow_light = '#F1FA8C'
-
-theme.system_blue_dark = '#6498EF'
-theme.system_blue_light = '#92B6F4'
-
-theme.system_magenta_dark = '#985EFF'
-theme.system_magenta_light = '#BD99FF'
-
-theme.system_cyan_dark = '#24D1E7'
-theme.system_cyan_light = '#87DFEB'
-
-theme.system_white_dark = '#E5E5E5'
-theme.system_white_light = '#F8F8F2'
-
--- Accent color
-theme.accent = theme.system_blue_dark
-
--- Background color
-theme.background = '#000000' .. '66'
-
--- Transparent
-theme.transparent = '#00000000'
-
--- Awesome icon
-theme.awesome_icon = theme.icons .. 'awesome.svg'
-
-local awesome_overrides = function(theme) end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/gnawesome/theme/icons/awesome.svg b/config/awesome/gnawesome/theme/icons/awesome.svg
deleted file mode 100644
index 31d715c1b..000000000
--- a/config/awesome/gnawesome/theme/icons/awesome.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/battery-charge.svg b/config/awesome/gnawesome/theme/icons/battery-charge.svg
deleted file mode 100644
index f8efe9cb4..000000000
--- a/config/awesome/gnawesome/theme/icons/battery-charge.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/theme/icons/battery-discharge.svg b/config/awesome/gnawesome/theme/icons/battery-discharge.svg
deleted file mode 100644
index 908ce1573..000000000
--- a/config/awesome/gnawesome/theme/icons/battery-discharge.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/brightness-7.svg b/config/awesome/gnawesome/theme/icons/brightness-7.svg
deleted file mode 100644
index 862549ea8..000000000
--- a/config/awesome/gnawesome/theme/icons/brightness-7.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/chart-areaspline.svg b/config/awesome/gnawesome/theme/icons/chart-areaspline.svg
deleted file mode 100644
index 58bf0d311..000000000
--- a/config/awesome/gnawesome/theme/icons/chart-areaspline.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/close.svg b/config/awesome/gnawesome/theme/icons/close.svg
deleted file mode 100644
index bd89d7902..000000000
--- a/config/awesome/gnawesome/theme/icons/close.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/effects.svg b/config/awesome/gnawesome/theme/icons/effects.svg
deleted file mode 100644
index e6c514ba5..000000000
--- a/config/awesome/gnawesome/theme/icons/effects.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/harddisk.svg b/config/awesome/gnawesome/theme/icons/harddisk.svg
deleted file mode 100644
index 4c23f54e1..000000000
--- a/config/awesome/gnawesome/theme/icons/harddisk.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/layouts/dwindle.svg b/config/awesome/gnawesome/theme/icons/layouts/dwindle.svg
deleted file mode 100644
index 9e5905810..000000000
--- a/config/awesome/gnawesome/theme/icons/layouts/dwindle.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/layouts/floating.svg b/config/awesome/gnawesome/theme/icons/layouts/floating.svg
deleted file mode 100644
index 5dcd846e7..000000000
--- a/config/awesome/gnawesome/theme/icons/layouts/floating.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/layouts/fullscreen.svg b/config/awesome/gnawesome/theme/icons/layouts/fullscreen.svg
deleted file mode 100644
index 6ba320b8c..000000000
--- a/config/awesome/gnawesome/theme/icons/layouts/fullscreen.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/layouts/max.svg b/config/awesome/gnawesome/theme/icons/layouts/max.svg
deleted file mode 100644
index f1b2b2d70..000000000
--- a/config/awesome/gnawesome/theme/icons/layouts/max.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/layouts/tile.svg b/config/awesome/gnawesome/theme/icons/layouts/tile.svg
deleted file mode 100644
index ea62c5d34..000000000
--- a/config/awesome/gnawesome/theme/icons/layouts/tile.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/lock.svg b/config/awesome/gnawesome/theme/icons/lock.svg
deleted file mode 100644
index ac383ed63..000000000
--- a/config/awesome/gnawesome/theme/icons/lock.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/logout.svg b/config/awesome/gnawesome/theme/icons/logout.svg
deleted file mode 100644
index 4689c49f0..000000000
--- a/config/awesome/gnawesome/theme/icons/logout.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/magnify.svg b/config/awesome/gnawesome/theme/icons/magnify.svg
deleted file mode 100644
index 40d9c1a18..000000000
--- a/config/awesome/gnawesome/theme/icons/magnify.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/memory.svg b/config/awesome/gnawesome/theme/icons/memory.svg
deleted file mode 100644
index 0cf4b104c..000000000
--- a/config/awesome/gnawesome/theme/icons/memory.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/plus.svg b/config/awesome/gnawesome/theme/icons/plus.svg
deleted file mode 100644
index 737cad466..000000000
--- a/config/awesome/gnawesome/theme/icons/plus.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/power-sleep.svg b/config/awesome/gnawesome/theme/icons/power-sleep.svg
deleted file mode 100644
index a4dbfc0af..000000000
--- a/config/awesome/gnawesome/theme/icons/power-sleep.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/power.svg b/config/awesome/gnawesome/theme/icons/power.svg
deleted file mode 100644
index 770943b06..000000000
--- a/config/awesome/gnawesome/theme/icons/power.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/restart.svg b/config/awesome/gnawesome/theme/icons/restart.svg
deleted file mode 100644
index f0c33676c..000000000
--- a/config/awesome/gnawesome/theme/icons/restart.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/ship-wheel.svg b/config/awesome/gnawesome/theme/icons/ship-wheel.svg
deleted file mode 100644
index 5237ed379..000000000
--- a/config/awesome/gnawesome/theme/icons/ship-wheel.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/development.svg b/config/awesome/gnawesome/theme/icons/tag-list/development.svg
deleted file mode 100644
index 773a53883..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/development.svg
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/file-manager.svg b/config/awesome/gnawesome/theme/icons/tag-list/file-manager.svg
deleted file mode 100644
index ba047479c..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/file-manager.svg
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/games.svg b/config/awesome/gnawesome/theme/icons/tag-list/games.svg
deleted file mode 100644
index 631438745..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/games.svg
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/graphics.svg b/config/awesome/gnawesome/theme/icons/tag-list/graphics.svg
deleted file mode 100644
index caefefb8a..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/graphics.svg
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/menu.svg b/config/awesome/gnawesome/theme/icons/tag-list/menu.svg
deleted file mode 100644
index 616879f78..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/menu.svg
+++ /dev/null
@@ -1,257 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/menu2.svg b/config/awesome/gnawesome/theme/icons/tag-list/menu2.svg
deleted file mode 100644
index 3e82e3d9e..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/menu2.svg
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/multimedia.svg b/config/awesome/gnawesome/theme/icons/tag-list/multimedia.svg
deleted file mode 100644
index ff5f5b047..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/multimedia.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/sandbox.svg b/config/awesome/gnawesome/theme/icons/tag-list/sandbox.svg
deleted file mode 100644
index 67c192159..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/sandbox.svg
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/social.svg b/config/awesome/gnawesome/theme/icons/tag-list/social.svg
deleted file mode 100644
index 721770971..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/social.svg
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/terminal.svg b/config/awesome/gnawesome/theme/icons/tag-list/terminal.svg
deleted file mode 100644
index 3c4fc1fec..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/terminal.svg
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/text-editor.svg b/config/awesome/gnawesome/theme/icons/tag-list/text-editor.svg
deleted file mode 100644
index 4aa63b88e..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/text-editor.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/tag-list/web-browser.svg b/config/awesome/gnawesome/theme/icons/tag-list/web-browser.svg
deleted file mode 100644
index 4b975145f..000000000
--- a/config/awesome/gnawesome/theme/icons/tag-list/web-browser.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/thermometer.svg b/config/awesome/gnawesome/theme/icons/thermometer.svg
deleted file mode 100644
index 5c25a1e5a..000000000
--- a/config/awesome/gnawesome/theme/icons/thermometer.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_focus.svg
deleted file mode 100644
index a245e7de5..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_focus.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_focus_hover.svg
deleted file mode 100644
index fa1eddd94..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_focus_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_normal.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_normal.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_normal_hover.svg
deleted file mode 100644
index fa1eddd94..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/close_normal_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_active.svg
deleted file mode 100644
index 262337ee8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_inactive.svg
deleted file mode 100644
index 262337ee8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_active.svg
deleted file mode 100644
index 8d22f5600..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
deleted file mode 100644
index 8d22f5600..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_focus.svg
deleted file mode 100644
index 0e5bebcfa..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_focus.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_focus_hover.svg
deleted file mode 100644
index 1414c2b1f..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_focus_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_normal.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_normal.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_normal_hover.svg
deleted file mode 100644
index 1414c2b1f..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/minimize_normal_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_active.svg
deleted file mode 100644
index 749324906..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
deleted file mode 100644
index 749324906..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_active.svg
deleted file mode 100644
index 321d316a9..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
deleted file mode 100644
index 321d316a9..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/close_focus.svg
deleted file mode 100644
index 85b31ec88..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_focus.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/close_focus_hover.svg
deleted file mode 100644
index 40aa9e1bd..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_focus_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/close_normal.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_normal.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/close_normal_hover.svg
deleted file mode 100644
index 40aa9e1bd..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/close_normal_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_active.svg
deleted file mode 100644
index 11b9bac0f..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_active_hover.svg
deleted file mode 100644
index 325c24a50..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_inactive.svg
deleted file mode 100644
index 11b9bac0f..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
deleted file mode 100644
index 779539e62..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_active_hover.svg
deleted file mode 100644
index 7286450b3..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
deleted file mode 100644
index 1441ea467..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_active.svg
deleted file mode 100644
index 6891963a2..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_inactive.svg
deleted file mode 100644
index 6891963a2..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_focus.svg
deleted file mode 100644
index abe6ebb69..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_focus.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_focus_hover.svg
deleted file mode 100644
index 49619d8b3..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_focus_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_normal.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_normal.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_normal_hover.svg
deleted file mode 100644
index 49619d8b3..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/minimize_normal_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_active.svg
deleted file mode 100644
index ed4ecfd58..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_inactive.svg
deleted file mode 100644
index ed4ecfd58..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_active.svg
deleted file mode 100644
index 2945c0fb7..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_inactive.svg
deleted file mode 100644
index 2945c0fb7..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_focus.svg
deleted file mode 100644
index 8b63331d3..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_focus.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_focus_hover.svg
deleted file mode 100644
index 2d77a2f42..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_focus_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_normal.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_normal.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_normal_hover.svg
deleted file mode 100644
index 2d77a2f42..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/close_normal_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_active.svg
deleted file mode 100644
index ae9727f26..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
deleted file mode 100644
index ae9727f26..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_active.svg
deleted file mode 100644
index e522d74fd..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
deleted file mode 100644
index e522d74fd..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_focus.svg
deleted file mode 100644
index 215d91c82..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_focus.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
deleted file mode 100644
index 282d8b092..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_normal.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_normal.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
deleted file mode 100644
index 282d8b092..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_active.svg
deleted file mode 100644
index 432f74f8a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
deleted file mode 100644
index 432f74f8a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_active.svg
deleted file mode 100644
index 47248cbca..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
deleted file mode 100644
index 47248cbca..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/close_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/close_focus.svg
deleted file mode 100644
index d1bc232a3..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/close_focus.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/close_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/close_normal.svg
deleted file mode 100644
index d013ac809..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/close_normal.svg
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/close_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/close_normal_hover.svg
deleted file mode 100644
index d1bc232a3..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/close_normal_hover.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_active.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_active.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_active_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_inactive.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_inactive.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_active.svg
deleted file mode 100644
index 6f0faf1cd..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_active.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_active_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_inactive.svg
deleted file mode 100644
index 6f0faf1cd..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_inactive.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_active.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_active.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_inactive.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_active.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_active.svg
deleted file mode 100644
index d9dea80c7..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_active.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_active_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_inactive.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_inactive.svg
deleted file mode 100644
index d9dea80c7..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_focus.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_focus.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_focus.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_focus_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_focus_hover.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_focus_hover.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_normal.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_normal.svg
deleted file mode 100644
index a3efb9b8a..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_normal.svg
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_normal_hover.svg b/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_normal_hover.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/gnawesome/theme/icons/titlebar/win10/minimize_normal_hover.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/toggled-off.svg b/config/awesome/gnawesome/theme/icons/toggled-off.svg
deleted file mode 100644
index a73de492b..000000000
--- a/config/awesome/gnawesome/theme/icons/toggled-off.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/toggled-on.svg b/config/awesome/gnawesome/theme/icons/toggled-on.svg
deleted file mode 100644
index a75ef1c6d..000000000
--- a/config/awesome/gnawesome/theme/icons/toggled-on.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/theme/icons/volume-high.svg b/config/awesome/gnawesome/theme/icons/volume-high.svg
deleted file mode 100644
index 7a59aa1ae..000000000
--- a/config/awesome/gnawesome/theme/icons/volume-high.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/theme/init.lua b/config/awesome/gnawesome/theme/init.lua
deleted file mode 100644
index f0ff7ca98..000000000
--- a/config/awesome/gnawesome/theme/init.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local gtable = require('gears.table')
-local default_theme = require('theme.default-theme')
--- PICK THEME HERE
-local theme = require('theme.gnawesome-theme')
-
-local final_theme = {}
-gtable.crush(final_theme, default_theme.theme)
-gtable.crush(final_theme, theme.theme)
-default_theme.awesome_overrides(final_theme)
-theme.awesome_overrides(final_theme)
-
-return final_theme
diff --git a/config/awesome/gnawesome/utilities/profile-image b/config/awesome/gnawesome/utilities/profile-image
deleted file mode 100755
index 350c9ea5d..000000000
--- a/config/awesome/gnawesome/utilities/profile-image
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-
-# Depends: Mugshot
-# Written by manilarome
-
-awesome_dir="${HOME}/.config/awesome/"
-user_profile_dir="${awesome_dir}/configuration/user-profile/"
-
-accountsservice_user_icons="/var/lib/AccountsService/icons/${USER}"
-
-# Check if user image exists
-if [ -f "${user_profile_dir}${USER}.png" ];
-then
- if [ -f "${accountsservice_user_icons}" ];
- then
- if ! cmp --silent "${user_profile_dir}${USER}.png" "${accountsservice_user_icons}";
- then
- cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png"
- fi
- printf "${user_profile_dir}${USER}.png"
- else
- printf "${user_profile_dir}${USER}.png"
- fi
- exit;
-else
- if [ -f "${accountsservice_user_icons}" ];
- then
- cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png"
- printf "${user_profile_dir}${USER}.png"
- exit;
- else
- printf "default"
- exit;
- fi
-fi
\ No newline at end of file
diff --git a/config/awesome/gnawesome/utilities/snap b/config/awesome/gnawesome/utilities/snap
deleted file mode 100755
index 970cee2ee..000000000
--- a/config/awesome/gnawesome/utilities/snap
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env bash
-
-# ----------------------------------------------------------------------------
-# --- Simple screenshot script using maim and AwesomeWM API
-# --
-# -- Accepts `area` and `full` string args
-# --
-# -- For more details check `man maim`
-# --
-# -- @author manilarome <gerome.matilla07@gmail.com>
-# -- @copyright 2020 manilarome
-# -- @script snap
-# ----------------------------------------------------------------------------
-
-screenshot_dir=$(xdg-user-dir PICTURES)/Screenshots/
-
-# Check save directory
-# Create it if it doesn't exist
-function check_dir() {
- if [ ! -d "$screenshot_dir" ];
- then
- mkdir -p "$screenshot_dir"
- fi
-}
-
-# Main function
-function shot() {
-
- check_dir
-
- file_loc="${screenshot_dir}$(date +%Y%m%d_%H%M%S).png"
-
- maim_command="$1"
- notif_message="$2"
-
- # Execute maim command
- ${maim_command} "${file_loc}"
-
- # Exit if the user cancels the screenshot
- # So it means there's no new screenshot image file
- if [ ! -f "${file_loc}" ];
- then
- exit;
- fi
-
- # Copy to clipboard
- xclip -selection clipboard -t image/png -i "${screenshot_dir}"/`ls -1 -t "${screenshot_dir}" | head -1` &
-
- awesome-client "
-
- -- IMPORTANT NOTE: THIS PART OF THE SCRIPT IS LUA!
- naughty = require('naughty')
- awful = require('awful')
- beautiful = require('beautiful')
- dpi = beautiful.xresources.apply_dpi
-
- local open_image = naughty.action {
- name = 'Open',
- icon_only = false,
- }
-
- local open_folder = naughty.action {
- name = 'Open Folder',
- icon_only = false,
- }
-
- local delete_image = naughty.action {
- name = 'Delete',
- icon_only = false,
- }
-
- -- Execute the callback when 'Open' is pressed
- open_image:connect_signal('invoked', function()
- awful.spawn('xdg-open ' .. '${file_loc}', false)
- end)
-
- open_folder:connect_signal('invoked', function()
- awful.spawn('xdg-open ' .. '${screenshot_dir}', false)
- end)
-
- -- Execute the callback when 'Delete' is pressed
- delete_image:connect_signal('invoked', function()
- awful.spawn('gio trash ' .. '${file_loc}', false)
- end)
-
- -- Show notification
- naughty.notification ({
- app_name = 'Screenshot Tool',
- icon = '${file_loc}',
- timeout = 10,
- title = 'Snap!',
- message = '${notif_message}',
- actions = { open_image, open_folder, delete_image }
- })
- "
-
-}
-
-# Check the args passed
-if [ -z "$1" ] || ([ "$1" != 'full' ] && [ "$1" != 'area' ]);
-then
- echo "
- Requires an argument:
- area - Area screenshot
- full - Fullscreen screenshot
-
- Example:
- ./snap area
- ./snap full
- "
-elif [ "$1" = 'full' ];
-then
- msg="Full screenshot saved and copied to clipboard!"
- shot 'maim -u -m 1' "${msg}"
-elif [ "$1" = 'area' ];
-then
- msg='Area screenshot saved and copied to clipboard!'
- shot 'maim -u -s -n -m 1' "${msg}"
-fi
-
diff --git a/config/awesome/gnawesome/widget/airplane-mode/clickable-container.lua b/config/awesome/gnawesome/widget/airplane-mode/clickable-container.lua
deleted file mode 100755
index f53174061..000000000
--- a/config/awesome/gnawesome/widget/airplane-mode/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/gnawesome/widget/airplane-mode/icons/airplane-mode-off.svg b/config/awesome/gnawesome/widget/airplane-mode/icons/airplane-mode-off.svg
deleted file mode 100644
index 7a4c91c0a..000000000
--- a/config/awesome/gnawesome/widget/airplane-mode/icons/airplane-mode-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/airplane-mode/icons/airplane-mode.svg b/config/awesome/gnawesome/widget/airplane-mode/icons/airplane-mode.svg
deleted file mode 100644
index 70fc89d1a..000000000
--- a/config/awesome/gnawesome/widget/airplane-mode/icons/airplane-mode.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/airplane-mode/init.lua b/config/awesome/gnawesome/widget/airplane-mode/init.lua
deleted file mode 100755
index 1a15c86c2..000000000
--- a/config/awesome/gnawesome/widget/airplane-mode/init.lua
+++ /dev/null
@@ -1,169 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.airplane-mode.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/airplane-mode/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local ap_state = false
-
-local action_name = wibox.widget {
- text = 'Airplane Mode',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-local update_imagebox = function()
- if ap_state then
- button_widget.icon:set_image(icons.toggled_on)
- else
- button_widget.icon:set_image(icons.toggled_off)
- end
-end
-
-local check_airplane_mode_state = function()
-
- local cmd = 'cat ' .. widget_dir .. 'airplane_mode'
-
- awful.spawn.easy_async_with_shell(
- cmd,
- function(stdout)
- local status = stdout
-
- if status:match("true") then
- ap_state = true
- elseif status:match("false") then
- ap_state = false
- else
- ap_state = false
- awful.spawn.easy_async_with_shell(
- 'echo "false" > ' .. widget_dir .. 'airplane_mode',
- function(stdout)
- end
- )
- end
-
- update_imagebox()
- end
- )
-end
-
-check_airplane_mode_state()
-
-local ap_off_cmd = [[
-
- rfkill unblock wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode disabled!',
- message = 'Initializing network devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode-off' .. '.svg' .. [['
- })
- "
- ]] .. "echo false > " .. widget_dir .. "airplane_mode" .. [[
-]]
-
-local ap_on_cmd = [[
-
- rfkill block wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode enabled!',
- message = 'Disabling radio devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode' .. '.svg' .. [['
- })
- "
- ]] .. "echo true > " .. widget_dir .. "airplane_mode" .. [[
-]]
-
-
-local toggle_action = function()
- if ap_state then
- awful.spawn.easy_async_with_shell(
- ap_off_cmd,
- function(stdout)
- ap_state = false
- update_imagebox()
- end
- )
- else
- awful.spawn.easy_async_with_shell(
- ap_on_cmd,
- function(stdout)
- ap_state = true
- update_imagebox()
- end
- )
- end
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-gears.timer {
- timeout = 5,
- autostart = true,
- callback = function()
- check_airplane_mode_state()
- end
-}
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return action_widget
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-alert-red.svg b/config/awesome/gnawesome/widget/battery/icons/battery-alert-red.svg
deleted file mode 100644
index 469b0ba07..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-alert-red.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-alert.svg b/config/awesome/gnawesome/widget/battery/icons/battery-alert.svg
deleted file mode 100644
index 6ec71c1dc..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-alert.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-10.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-10.svg
deleted file mode 100644
index 4de288a04..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-10.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-20.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-20.svg
deleted file mode 100644
index af759b5f6..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-20.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-30.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-30.svg
deleted file mode 100644
index f72154534..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-30.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-50.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-50.svg
deleted file mode 100644
index 42bb375ae..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-50.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-60.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-60.svg
deleted file mode 100644
index 4057d330d..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-60.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-80.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-80.svg
deleted file mode 100644
index 5febc309a..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-80.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-charging-90.svg b/config/awesome/gnawesome/widget/battery/icons/battery-charging-90.svg
deleted file mode 100644
index 544aa5d86..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-charging-90.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-100.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-100.svg
deleted file mode 100644
index b3d3337b5..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-100.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-20.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-20.svg
deleted file mode 100644
index 116a7f968..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-20.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-30.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-30.svg
deleted file mode 100644
index d1f4463ba..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-30.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-50.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-50.svg
deleted file mode 100644
index 8dca81e0e..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-50.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-60.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-60.svg
deleted file mode 100644
index 25eaca0bc..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-60.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-80.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-80.svg
deleted file mode 100644
index 5612658ef..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-80.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-90.svg b/config/awesome/gnawesome/widget/battery/icons/battery-discharging-90.svg
deleted file mode 100644
index d11ab44fa..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-discharging-90.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-fully-charged.svg b/config/awesome/gnawesome/widget/battery/icons/battery-fully-charged.svg
deleted file mode 100644
index 7e923fce6..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-fully-charged.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery-unknown.svg b/config/awesome/gnawesome/widget/battery/icons/battery-unknown.svg
deleted file mode 100644
index ad67bdf22..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery-unknown.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/icons/battery.svg b/config/awesome/gnawesome/widget/battery/icons/battery.svg
deleted file mode 100644
index adba7ac99..000000000
--- a/config/awesome/gnawesome/widget/battery/icons/battery.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/battery/init.lua b/config/awesome/gnawesome/widget/battery/init.lua
deleted file mode 100644
index ca0c3de91..000000000
--- a/config/awesome/gnawesome/widget/battery/init.lua
+++ /dev/null
@@ -1,209 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/battery/icons/'
-
-local return_button = function()
-
- local battery_imagebox = wibox.widget {
- nil,
- {
- id = 'icon',
- image = widget_icon_dir .. 'battery' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- }
-
- local battery_percentage_text = wibox.widget {
- id = 'percent_text',
- text = '100%',
- font = 'Inter Bold 11',
- align = 'center',
- valign = 'center',
- visible = false,
- widget = wibox.widget.textbox
- }
-
-
- local battery_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(0),
- battery_imagebox,
- battery_percentage_text
- }
-
-
- local battery_button = wibox.widget {
- {
- battery_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- battery_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.power_manager , false)
- end
- )
- )
- )
-
- local battery_tooltip = awful.tooltip {
- objects = {battery_button},
- text = 'None',
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
-
- local get_battery_info = function()
- awful.spawn.easy_async_with_shell(
- 'upower -i $(upower -e | grep BAT)',
- function(stdout)
- if stdout == nil or stdout == '' then
- battery_tooltip:set_text('No battery detected!')
- return
- end
-
- -- Remove new line from the last line
- battery_tooltip:set_text(stdout:sub(1, -2))
- end
- )
- end
- get_battery_info()
-
- battery_widget:connect_signal(
- 'mouse::enter',
- function()
- get_battery_info()
- end
- )
-
- local last_battery_check = os.time()
- local notify_critcal_battery = true
-
- local show_battery_warning = function()
- naughty.notification ({
- icon = widget_icon_dir .. 'battery-alert.svg',
- app_name = 'System notification',
- title = 'Battery is dying!',
- message = 'Hey, I think we have a problem here. Save your work before reaching the oblivion.',
- urgency = 'critical'
- })
- end
-
- local update_battery = function(status)
-
- awful.spawn.easy_async_with_shell(
- [[sh -c "
- upower -i $(upower -e | grep BAT) | grep percentage | awk '{print \$2}' | tr -d '\n%'
- "]],
- function(stdout)
- local battery_percentage = tonumber(stdout)
-
- -- Stop if null
- if not battery_percentage then
- return
- end
-
- battery_widget.spacing = dpi(5)
- battery_percentage_text.visible = true
- battery_percentage_text:set_text(battery_percentage .. '%')
-
- local icon_name = 'battery'
-
- -- Fully charged
- if (status == 'fully-charged' or status == 'charging') and battery_percentage == 100 then
- icon_name = icon_name .. '-' .. 'fully-charged'
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- return
- end
-
- -- Critical level warning message
- if (battery_percentage > 0 and battery_percentage < 10) and status == 'discharging' then
- icon_name = icon_name .. '-' .. 'alert-red'
-
- if os.difftime(os.time(), last_battery_check) > 300 or notify_critcal_battery then
- last_battery_check = os.time()
- notify_critcal_battery = false
- show_battery_warning()
- end
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- return
- end
-
- -- Discharging
- if battery_percentage > 0 and battery_percentage < 20 then
- icon_name = icon_name .. '-' .. status .. '-' .. '10'
-
- elseif battery_percentage >= 20 and battery_percentage < 30 then
- icon_name = icon_name .. '-' .. status .. '-' .. '20'
-
- elseif battery_percentage >= 30 and battery_percentage < 50 then
- icon_name = icon_name .. '-' .. status .. '-' .. '30'
-
- elseif battery_percentage >= 50 and battery_percentage < 60 then
- icon_name = icon_name .. '-' .. status .. '-' .. '50'
-
- elseif battery_percentage >= 60 and battery_percentage < 80 then
- icon_name = icon_name .. '-' .. status .. '-' .. '60'
-
- elseif battery_percentage >= 80 and battery_percentage < 90 then
- icon_name = icon_name .. '-' .. status .. '-' .. '80'
-
- elseif battery_percentage >= 90 and battery_percentage < 100 then
- icon_name = icon_name .. '-' .. status .. '-' .. '90'
- end
-
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- end
- )
- end
-
- -- Watch status if charging, discharging, fully-charged
- watch(
- [[sh -c "
- upower -i $(upower -e | grep BAT) | grep state | awk '{print \$2}' | tr -d '\n'
- "]],
- 5,
- function(widget, stdout)
- local status = stdout:gsub('%\n', '')
-
- -- If no output or no battery detected
- if status == nil or status == '' then
- battery_widget.spacing = dpi(0)
- battery_percentage_text.visible = false
- battery_tooltip:set_text('No battery detected!')
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'battery-unknown' .. '.svg'))
- return
- end
-
- update_battery(status)
- end
- )
-
- return battery_button
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/blue-light/clickable-container.lua b/config/awesome/gnawesome/widget/blue-light/clickable-container.lua
deleted file mode 100755
index f53174061..000000000
--- a/config/awesome/gnawesome/widget/blue-light/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/gnawesome/widget/blue-light/init.lua b/config/awesome/gnawesome/widget/blue-light/init.lua
deleted file mode 100644
index 093fcb0b7..000000000
--- a/config/awesome/gnawesome/widget/blue-light/init.lua
+++ /dev/null
@@ -1,124 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.blue-light.clickable-container')
-local icons = require('theme.icons')
-local blue_light_state = nil
-
-local action_name = wibox.widget {
- text = 'Blue Light',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-
-local update_imagebox = function()
- local button_icon = button_widget.icon
- if blue_light_state then
- button_icon:set_image(icons.toggled_on)
- else
- button_icon:set_image(icons.toggled_off)
- end
-end
-
-local kill_state = function()
- awful.spawn.easy_async_with_shell(
- [[
- redshift -x
- kill -9 $(pgrep redshift)
- ]],
- function(stdout)
- stdout = tonumber(stdout)
- if stdout then
- blue_light_state = false
- update_imagebox()
- end
- end
- )
-end
-
-kill_state()
-
-local toggle_action = function()
- awful.spawn.easy_async_with_shell(
- [[
- if [ ! -z $(pgrep redshift) ];
- then
- redshift -x && pkill redshift && killall redshift
- echo 'OFF'
- else
- redshift -l 0:0 -t 4500:4500 -r &>/dev/null &
- echo 'ON'
- fi
- ]],
- function(stdout)
- if stdout:match('ON') then
- blue_light_state = true
- else
- blue_light_state = false
- end
- update_imagebox()
- end
- )
-
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-awesome.connect_signal(
- 'widget::blue_light:toggle',
- function()
- toggle_action()
- end
-)
-
-return action_widget
diff --git a/config/awesome/gnawesome/widget/bluetooth-toggle/clickable-container.lua b/config/awesome/gnawesome/widget/bluetooth-toggle/clickable-container.lua
deleted file mode 100644
index f53174061..000000000
--- a/config/awesome/gnawesome/widget/bluetooth-toggle/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/gnawesome/widget/bluetooth-toggle/icons/bluetooth-off.svg b/config/awesome/gnawesome/widget/bluetooth-toggle/icons/bluetooth-off.svg
deleted file mode 100644
index f3e52ab19..000000000
--- a/config/awesome/gnawesome/widget/bluetooth-toggle/icons/bluetooth-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/gnawesome/widget/bluetooth-toggle/icons/loading.svg b/config/awesome/gnawesome/widget/bluetooth-toggle/icons/loading.svg
deleted file mode 100644
index cd7bc0e0f..000000000
--- a/config/awesome/gnawesome/widget/bluetooth-toggle/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/bluetooth-toggle/init.lua b/config/awesome/gnawesome/widget/bluetooth-toggle/init.lua
deleted file mode 100644
index a4d7016a9..000000000
--- a/config/awesome/gnawesome/widget/bluetooth-toggle/init.lua
+++ /dev/null
@@ -1,164 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.bluetooth-toggle.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/bluetooth-toggle/icons/'
-local icons = require('theme.icons')
-local device_state = false
-
-local action_name = wibox.widget {
- text = 'Bluetooth Connection',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-
-local update_imagebox = function()
- if device_state then
- button_widget.icon:set_image(icons.toggled_on)
- else
- button_widget.icon:set_image(icons.toggled_off)
- end
-end
-
-
-local check_device_state = function()
- awful.spawn.easy_async_with_shell(
- 'rfkill list bluetooth',
- function(stdout)
- if stdout:match('Soft blocked: yes') then
- device_state = false
- else
- device_state = true
- end
- update_imagebox()
- end
- )
-end
-
-check_device_state()
-
-
-local power_on_cmd = [[
- rfkill unblock bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'Initializing bluetooth device...',
- icon = ']] .. widget_icon_dir .. 'loading' .. '.svg' .. [['
- })
- "
-
- # Add a delay here so we can enable the bluetooth
- sleep 1
-
- bluetoothctl power on
-]]
-
-local power_off_cmd = [[
- bluetoothctl power off
- rfkill block bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'The bluetooth device has been disabled.',
- icon = ']] .. widget_icon_dir .. 'bluetooth-off' .. '.svg' .. [['
- })
- "
-]]
-
-
-local toggle_action = function()
- if device_state then
- device_state = false
- awful.spawn.easy_async_with_shell(
- power_off_cmd,
- function(stdout)
- update_imagebox()
- end
- )
- else
- device_state = true
- awful.spawn.easy_async_with_shell(
- power_on_cmd,
- function(stdout)
- update_imagebox()
- end
- )
- end
-end
-
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- check_device_state()
- collectgarbage('collect')
- end
-)
-
-
-return action_widget
diff --git a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-connected.svg b/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-connected.svg
deleted file mode 100644
index bbda6ad94..000000000
--- a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-connected.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-off.svg b/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-off.svg
deleted file mode 100644
index f3e52ab19..000000000
--- a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-scanning.svg b/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-scanning.svg
deleted file mode 100644
index 029f1456a..000000000
--- a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth-scanning.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/bluetooth/icons/loading.svg b/config/awesome/gnawesome/widget/bluetooth/icons/loading.svg
deleted file mode 100644
index cd7bc0e0f..000000000
--- a/config/awesome/gnawesome/widget/bluetooth/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/bluetooth/init.lua b/config/awesome/gnawesome/widget/bluetooth/init.lua
deleted file mode 100644
index 153ef3ba0..000000000
--- a/config/awesome/gnawesome/widget/bluetooth/init.lua
+++ /dev/null
@@ -1,83 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-
-local apps = require('configuration.apps')
-
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-
-local widget_icon_dir = config_dir .. 'widget/bluetooth/icons/'
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'bluetooth-off' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.bluetooth_manager, false)
- end
- )
- )
- )
-
- local bluetooth_tooltip = awful.tooltip
- {
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
- watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- local widget_icon_name = nil
- if stdout:match('Soft blocked: yes') then
- widget_icon_name = 'bluetooth-off'
- bluetooth_tooltip.markup = 'Bluetooth is off'
- else
- widget_icon_name = 'bluetooth'
- bluetooth_tooltip.markup = 'Bluetooth is on'
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- collectgarbage('collect')
- end,
- widget
- )
-
- return widget_button
-
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/blur-slider/clickable-container.lua b/config/awesome/gnawesome/widget/blur-slider/clickable-container.lua
deleted file mode 100644
index f53174061..000000000
--- a/config/awesome/gnawesome/widget/blur-slider/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/gnawesome/widget/blur-slider/init.lua b/config/awesome/gnawesome/widget/blur-slider/init.lua
deleted file mode 100644
index 4d7275bb6..000000000
--- a/config/awesome/gnawesome/widget/blur-slider/init.lua
+++ /dev/null
@@ -1,194 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Blur Strength',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.effects,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- icon,
- widget = clickable_container,
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'blur_strength_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local blur_slider = slider.blur_strength_slider
-
-local update_slider_value = function()
-
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
- awk 'NR==1 {print $3}' | tr -d ';'
- "]],
- function(stdout, stderr)
- local strength = stdout:match('%d+')
- blur_strength = tonumber(strength) / 20 * 100
- blur_slider:set_value(tonumber(blur_strength))
- start_up = false
- end
- )
-end
-
--- Update on startup
-update_slider_value()
-
-local action_jump = function()
- local sli_value = blur_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 25 then
- new_value = 25
- elseif sli_value >= 25 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- blur_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
-local adjust_blur = function(power)
-
- awful.spawn.with_shell(
- [[bash -c "
- sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
- $HOME/.config/awesome/configuration/picom.conf
- "]]
- )
-end
-
-blur_slider:connect_signal(
- 'property::value',
- function()
- if not start_up then
- strength = blur_slider:get_value() / 50 * 10
- adjust_blur(strength)
- end
- end
-)
-
--- Adjust slider value to change blur strength
-awesome.connect_signal(
- 'widget::blur:increase',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() + 10
-
- -- No more than 100!
- if blur_value > 100 then
- blur_slider:set_value(100)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
--- Decrease blur
-awesome.connect_signal(
- 'widget::blur:decrease',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() - 10
-
- -- No negatives!
- if blur_value < 0 then
- blur_slider:set_value(0)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
-local volume_setting = wibox.widget {
- {
- {
- action_level,
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return volume_setting
diff --git a/config/awesome/gnawesome/widget/blur-toggle/clickable-container.lua b/config/awesome/gnawesome/widget/blur-toggle/clickable-container.lua
deleted file mode 100644
index f53174061..000000000
--- a/config/awesome/gnawesome/widget/blur-toggle/clickable-container.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-local wibox = require('wibox')
-
-function build(widget)
- local container =
- wibox.widget {
- widget,
- widget = wibox.container.background,
- }
- local old_cursor, old_wibox
- container:connect_signal(
- 'mouse::enter',
- function()
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- container:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- return container
-end
-
-return build
diff --git a/config/awesome/gnawesome/widget/blur-toggle/init.lua b/config/awesome/gnawesome/widget/blur-toggle/init.lua
deleted file mode 100644
index fe30b3ff1..000000000
--- a/config/awesome/gnawesome/widget/blur-toggle/init.lua
+++ /dev/null
@@ -1,139 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local clickable_container = require('widget.blur-toggle.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-local frame_status = nil
-
-local action_name = wibox.widget {
- text = 'Blur Effects',
- font = 'Inter Regular 11',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.toggled_off,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- button_widget,
- top = dpi(7),
- bottom = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-local update_imagebox = function()
- if action_status then
- button_widget.icon:set_image(icons.toggled_on)
- else
- button_widget.icon:set_image(icons.toggled_off)
- end
-end
-
-local check_blur_status = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'method = \"none\";' ]] .. config_dir .. [[/configuration/picom.conf | tr -d '[\"\;\=\ ]'
- "]],
- function(stdout, stderr)
- if stdout:match('methodnone') then
- action_status = false
- else
- action_status = true
- end
-
- update_imagebox()
- end
- )
-end
-
-check_blur_status()
-
-local toggle_blur = function(togglemode)
-
- local toggle_blur_script = [[bash -c "
- # Check picom if it's not running then start it
- if [ -z $(pgrep picom) ]; then
- picom -b --experimental-backends --dbus --config ]] .. config_dir .. [[configuration/picom.conf
- fi
-
- case ]] .. togglemode .. [[ in
- 'enable')
- sed -i -e 's/method = \"none\"/method = \"dual_kawase\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- 'disable')
- sed -i -e 's/method = \"dual_kawase\"/method = \"none\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- esac
- "]]
-
- -- Run the script
- awful.spawn.with_shell(toggle_blur_script)
-
-end
-
-local toggle_blur_fx = function()
- local state = nil
- if action_status then
- action_status = false
- state = 'disable'
- else
- action_status = true
- state = 'enable'
- end
- toggle_blur(state)
- update_imagebox()
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_blur_fx()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- {
- action_name,
- nil,
- {
- widget_button,
- layout = wibox.layout.fixed.horizontal,
- },
- layout = wibox.layout.align.horizontal,
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-awesome.connect_signal(
- 'widget::blur:toggle',
- function()
- toggle_blur_fx()
- end
-)
-
-
-return action_widget
diff --git a/config/awesome/gnawesome/widget/brightness-slider/init.lua b/config/awesome/gnawesome/widget/brightness-slider/init.lua
deleted file mode 100644
index aa53692ca..000000000
--- a/config/awesome/gnawesome/widget/brightness-slider/init.lua
+++ /dev/null
@@ -1,180 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- icon,
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'brightness_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-
-local brightness_slider = slider.brightness_slider
-
-brightness_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = brightness_slider:get_value()
-
- spawn('light -S ' ..
- math.max(brightness_level, 5),
- false
- )
-
- -- Update brightness osd
- awesome.emit_signal(
- 'module::brightness_osd',
- brightness_level
- )
- end
-)
-
-brightness_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if brightness_slider:get_value() > 100 then
- brightness_slider:set_value(100)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if brightness_slider:get_value() < 0 then
- brightness_slider:set_value(0)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- 'light -G',
- function(stdout)
- local brightness = string.match(stdout, '(%d+)')
- brightness_slider:set_value(tonumber(brightness))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = brightness_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- brightness_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::brightness',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::brightness:update',
- function(value)
- brightness_slider:set_value(tonumber(value))
- end
-)
-
-local brightness_setting = wibox.widget {
- {
- {
- action_level,
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return brightness_setting
diff --git a/config/awesome/gnawesome/widget/calendar/init.lua b/config/awesome/gnawesome/widget/calendar/init.lua
deleted file mode 100644
index 122db08ed..000000000
--- a/config/awesome/gnawesome/widget/calendar/init.lua
+++ /dev/null
@@ -1,147 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local styles = {}
-
-local rounded_shape = function(size, partial)
- if partial then
- return function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height,
- false, true, false, true, 5)
- end
- else
- return function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, size)
- end
- end
-end
-
-styles.month = {
- padding = 5,
- bg_color = beautiful.transparent
-}
-
-styles.normal = {
- fg_color = '#f2f2f2',
- bg_color = beautiful.transparent
-}
-
-styles.focus = {
- fg_color = '#f2f2f2',
- bg_color = beautiful.accent,
- markup = function(t) return '' .. t .. '' end,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, dpi(4))
- end
-}
-
-styles.header = {
- fg_color = '#f2f2f2',
- bg_color = beautiful.transparent,
- markup = function(t) return '' .. t .. '' end
-}
-
-styles.weekday = {
- fg_color = '#ffffff',
- bg_color = beautiful.transparent,
- markup = function(t) return '' .. t .. '' end
-}
-
-local decorate_cell = function(widget, flag, date)
-
- if flag=='monthheader' and not styles.monthheader then
- flag = 'header'
- end
- local props = styles[flag] or {}
- if props.markup and widget.get_text and widget.set_markup then
- widget:set_markup(props.markup(widget:get_text()))
- end
- -- Change bg color for weekends
- local d = {year=date.year, month=(date.month or 1), day=(date.day or 1)}
- local weekday = tonumber(os.date('%w', os.time(d)))
- local default_bg = (weekday==0 or weekday==6) and '#232323' or '#383838'
- local ret = wibox.widget {
- {
- widget,
- margins = (props.padding or 2) + (props.border_width or 0),
- widget = wibox.container.margin
- },
- shape = props.shape,
- shape_border_color = props.border_color or '#b9214f',
- shape_border_width = props.border_width or 0,
- fg = props.fg_color or '#999999',
- bg = props.bg_color or default_bg,
- widget = wibox.container.background
- }
- return ret
-end
-
-local calendar = wibox.widget {
- font = 'Inter Regular 12',
- date = os.date('*t'),
- spacing = dpi(10),
- start_sunday = true,
- long_weekdays = false,
- fn_embed = decorate_cell,
- widget = wibox.widget.calendar.month
-}
-
-local current_month = calendar:get_date().month
-
-local update_focus_bg = function(month)
- if current_month == month then
- styles.focus.bg_color = beautiful.accent
- styles.focus.markup = function(t) return '' .. t .. '' end
- else
- styles.focus.bg_color = beautiful.transparent
- styles.focus.markup = function(t) return t end
- end
-end
-
-local update_active_month = function(i)
- local date = calendar:get_date()
- date.month = date.month + i
- update_focus_bg(date.month)
- calendar:set_date(nil)
- calendar:set_date(date)
-end
-
-calendar:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- function()
- update_active_month(-1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- update_active_month(1)
- end
- )
- )
-)
-
-local widget = wibox.widget {
- {
-
- calendar,
- top = dpi(15),
- right = dpi(10),
- left = dpi(10),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_title_bg,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w ,h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-return widget
diff --git a/config/awesome/gnawesome/widget/clickable-container/init.lua b/config/awesome/gnawesome/widget/clickable-container/init.lua
deleted file mode 100644
index 6b57aa247..000000000
--- a/config/awesome/gnawesome/widget/clickable-container/init.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-
-local create_click_events = function(widget)
-
- local container = wibox.widget {
- widget,
- widget = wibox.container.background
- }
-
- -- Old and new widget
- local old_cursor, old_wibox
-
- -- Mouse hovers on the widget
- container:connect_signal(
- 'mouse::enter',
- function()
- container.bg = beautiful.groups_bg
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- -- Mouse leaves the widget
- container:connect_signal(
- 'mouse::leave',
- function()
- container.bg = beautiful.leave_event
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- -- Mouse pressed the widget
- container:connect_signal(
- 'button::press',
- function()
- container.bg = beautiful.press_event
- end
- )
-
- -- Mouse releases the widget
- container:connect_signal(
- 'button::release',
- function()
- container.bg = beautiful.release_event
- end
- )
-
- return container
-end
-
-return create_click_events
diff --git a/config/awesome/gnawesome/widget/clock/init.lua b/config/awesome/gnawesome/widget/clock/init.lua
deleted file mode 100644
index 0dcd5fea5..000000000
--- a/config/awesome/gnawesome/widget/clock/init.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config = require('configuration.config')
-local military_mode = config.widget.clock.military_mode or false
-
-local create_clock = function(s)
-
- local clock_format = nil
- if not military_mode then
- clock_format = '%I:%M %p'
- else
- clock_format = '%H:%M'
- end
-
- s.clock_widget = wibox.widget.textclock(
- clock_format,
- 1
- )
-
- s.clock_widget = wibox.widget {
- {
- s.clock_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- s.clock_widget:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- s.clock_widget:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- s.clock_tooltip = awful.tooltip
- {
- objects = {s.clock_widget},
- mode = 'outside',
- delay_show = 1,
- preferred_positions = {'right', 'left', 'top', 'bottom'},
- preferred_alignments = {'middle', 'front', 'back'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- local ordinal = nil
-
- local day = os.date('%d')
- local month = os.date('%B')
-
- local first_digit = string.sub(day, 0, 1)
- local last_digit = string.sub(day, -1)
-
- if first_digit == '0' then
- day = last_digit
- end
-
- if last_digit == '1' and day ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and day ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and day ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- local date_str = 'Today is the ' ..
- '' .. day .. ordinal ..
- ' of ' .. month .. '.\n' ..
- 'And it\'s fucking ' .. os.date('%A')
-
- return date_str
- end,
- }
-
- s.clock_widget:connect_signal(
- 'button::press',
- function(self, lx, ly, button)
- -- Hide the tooltip when you press the clock widget
- if s.clock_tooltip.visible and button == 1 then
- s.clock_tooltip.visible = false
- end
- end
- )
-
- s.clock_widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.screen.focused().central_panel:toggle()
- end
- )
- )
- )
-
- return s.clock_widget
-end
-
-return create_clock
diff --git a/config/awesome/gnawesome/widget/cpu-meter/init.lua b/config/awesome/gnawesome/widget/cpu-meter/init.lua
deleted file mode 100644
index b68f44bce..000000000
--- a/config/awesome/gnawesome/widget/cpu-meter/init.lua
+++ /dev/null
@@ -1,74 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = require('awful.widget.watch')
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local total_prev = 0
-local idle_prev = 0
-
-local slider = wibox.widget {
- nil,
- {
- id = 'cpu_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-watch(
- [[bash -c "
- cat /proc/stat | grep '^cpu '
- "]],
- 10,
- function(_, stdout)
- local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
- stdout:match('(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s')
-
- local total = user + nice + system + idle + iowait + irq + softirq + steal
-
- local diff_idle = idle - idle_prev
- local diff_total = total - total_prev
- local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
-
- slider.cpu_usage:set_value(diff_usage)
-
- total_prev = total
- idle_prev = idle
- collectgarbage('collect')
- end
-)
-
-local cpu_meter = wibox.widget {
- {
- {
- {
- image = icons.chart,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return cpu_meter
diff --git a/config/awesome/gnawesome/widget/email/icons/email-1.svg b/config/awesome/gnawesome/widget/email/icons/email-1.svg
deleted file mode 100644
index 9170d0b08..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-1.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-2.svg b/config/awesome/gnawesome/widget/email/icons/email-2.svg
deleted file mode 100644
index 58406a729..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-2.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-3.svg b/config/awesome/gnawesome/widget/email/icons/email-3.svg
deleted file mode 100644
index 597b144b6..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-3.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-4.svg b/config/awesome/gnawesome/widget/email/icons/email-4.svg
deleted file mode 100644
index dc915fb43..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-4.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-5.svg b/config/awesome/gnawesome/widget/email/icons/email-5.svg
deleted file mode 100644
index 935140c4b..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-5.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-6.svg b/config/awesome/gnawesome/widget/email/icons/email-6.svg
deleted file mode 100644
index edf1298ff..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-6.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-7.svg b/config/awesome/gnawesome/widget/email/icons/email-7.svg
deleted file mode 100644
index 980d79c5f..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-7.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-8.svg b/config/awesome/gnawesome/widget/email/icons/email-8.svg
deleted file mode 100644
index 4c6618ad5..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-8.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-9+.svg b/config/awesome/gnawesome/widget/email/icons/email-9+.svg
deleted file mode 100644
index 53a0a6880..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-9+.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-9.svg b/config/awesome/gnawesome/widget/email/icons/email-9.svg
deleted file mode 100644
index 9c65b74a6..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-9.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email-unread.svg b/config/awesome/gnawesome/widget/email/icons/email-unread.svg
deleted file mode 100644
index 829d3a90f..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email-unread.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/icons/email.svg b/config/awesome/gnawesome/widget/email/icons/email.svg
deleted file mode 100644
index a8860b411..000000000
--- a/config/awesome/gnawesome/widget/email/icons/email.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/email/init.lua b/config/awesome/gnawesome/widget/email/init.lua
deleted file mode 100644
index 711615832..000000000
--- a/config/awesome/gnawesome/widget/email/init.lua
+++ /dev/null
@@ -1,410 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/email/icons/'
-
-local config = require('configuration.config')
-local secrets = {
- email_address = config.widget.email.address,
- app_password = config.widget.email.app_password,
- imap_server = config.widget.email.imap_server,
- port = config.widget.email.port
-}
-
-local unread_email_count = 0
-local startup_show = true
-
-local scroll_container = function(widget)
- return wibox.widget {
- widget,
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
- }
-end
-
-local email_icon_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'email.svg',
- resize = true,
- forced_height = dpi(45),
- forced_width = dpi(45),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local email_from_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'From:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_from = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'loading@stdout.sh',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_subject_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Subject:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_subject = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Loading data',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_date_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Local Date:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_date = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Loading date...',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_report = wibox.widget{
- {
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- email_icon_widget,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- {
- email_from_text,
- scroll_container(email_recent_from),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- },
- {
- email_subject_text,
- scroll_container(email_recent_subject),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- },
- {
- email_date_text,
- scroll_container(email_recent_date),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- }
- },
- nil
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(92),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
-end,
-widget = wibox.container.background
-}
-
-local email_details_tooltip = awful.tooltip
-{
- text = 'Loading...',
- objects = {email_icon_widget},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
-}
-
-local fetch_email_command = [[
-python3 - < 1 then
- title = 'You have ' .. unread_counter .. ' unread emails!'
- else
- title = 'You have ' .. unread_counter .. ' unread email!'
- end
-
- naughty.notification ({
- app_name = 'Email',
- title = title,
- message = email_data,
- timeout = 30,
- icon = widget_icon_dir .. 'email-unread.svg'
- })
-end
-
-local notify_new_email = function(count, from, subject)
- if not startup_show and (tonumber(count) > tonumber(unread_email_count)) then
- unread_email_count = tonumber(count)
-
- local message = "From: " .. from ..
- "\nSubject: " .. subject
-
- naughty.notification ({
- app_name = 'Email',
- title = 'You have a new unread email!',
- message = message,
- timeout = 10,
- icon = widget_icon_dir .. 'email-unread.svg'
- })
- else
- unread_email_count = tonumber(count)
- end
-
-end
-
-local set_email_data_tooltip = function(email_data)
- local email_data = email_data:match('(From:.*)')
- local counter = "Unread Count: " .. unread_email_count
- email_details_tooltip:set_markup(counter .. '\n\n' .. email_data)
-end
-
-local set_widget_markup = function(from, subject, date, tooltip)
-
- email_recent_from:set_markup(from:gsub('%\n', ''))
- email_recent_subject:set_markup(subject:gsub('%\n', ''))
- email_recent_date:set_markup(date:gsub('%\n', ''))
-
- if tooltip then
- email_details_tooltip:set_markup(tooltip)
- end
-end
-
-local set_no_connection_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Check network connection!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'No internet connection!'
- )
-end
-
-local set_invalid_credentials_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Invalid Credentials!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'You have an invalid credentials!'
- )
-end
-
-local set_latest_email_data = function(email_data)
-
- local unread_count = email_data:match('Unread Count: (.-)From:'):sub(1, -2)
- local recent_from = email_data:match('From: (.-)Subject:'):sub(1, -2)
- local recent_subject = email_data:match('Subject: (.-)Local Date:'):sub(1, -2)
- local recent_date = email_data:match('Local Date: (.-)\n')
-
- recent_from = recent_from:match('<(.*)>') or recent_from:match('<(.*)>') or recent_from
-
- local count = tonumber(unread_count)
- if count > 0 and count <= 9 then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email-'.. tostring(count) .. '.svg')
- elseif count > 9 then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email-9+.svg')
- end
-
- set_widget_markup(
- recent_from,
- recent_subject,
- recent_date
- )
-
- notify_new_email(unread_count, recent_from, recent_subject)
-end
-
-local set_empty_inbox_msg = function()
- set_widget_markup(
- 'empty@stdout.sh',
- 'Empty inbox',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'Empty inbox.'
- )
-end
-
-local fetch_email_data = function()
- awful.spawn.easy_async_with_shell(
- fetch_email_command,
- function(stdout)
- stdout = gears.string.xml_escape(stdout:sub(1, -2))
-
- if stdout:match('Temporary failure in name resolution') then
- set_no_connection_msg()
- return
- elseif stdout:match('Invalid credentials') then
- set_invalid_credentials_msg()
- return
- elseif stdout:match('Unread Count: 0') then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email.svg')
- set_empty_inbox_msg()
- return
- elseif not stdout:match('Unread Count: (.-)From:') then
- return
- elseif not stdout or stdout == '' then
- return
- end
-
- set_latest_email_data(stdout)
- set_email_data_tooltip(stdout)
-
- if startup_show then
- notify_all_unread_email(stdout)
- startup_show = false
- end
- end
- )
-end
-
-local set_missing_secrets_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Credentials are missing!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'Missing credentials!'
- )
-end
-
-local check_secrets = function()
- if secrets.email_address == '' or secrets.app_password == '' or secrets.imap_server == '' or secrets.port == '' then
- set_missing_secrets_msg()
- return
- else
- fetch_email_data()
- end
-end
-
-check_secrets()
-
-local update_widget_timer = gears.timer {
- timeout = 30,
- autostart = true,
- call_now = true,
- callback = function()
- check_secrets()
- end
-}
-
-email_report:connect_signal(
- 'mouse::enter',
- function()
- check_secrets()
- end
-)
-
-awesome.connect_signal(
- 'system::network_connected',
- function()
- gears.timer.start_new(
- 5,
- function()
- check_secrets()
- end
- )
- end
-)
-
-return email_report
diff --git a/config/awesome/gnawesome/widget/end-session/init.lua b/config/awesome/gnawesome/widget/end-session/init.lua
deleted file mode 100644
index 2995617e0..000000000
--- a/config/awesome/gnawesome/widget/end-session/init.lua
+++ /dev/null
@@ -1,44 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-local icons = require('theme.icons')
-
-local return_button = function()
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.logout,
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('module::exit_screen:show')
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/global-search/init.lua b/config/awesome/gnawesome/widget/global-search/init.lua
deleted file mode 100644
index 727b18f6d..000000000
--- a/config/awesome/gnawesome/widget/global-search/init.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local apps = require('configuration.apps')
-local icons = require('theme.icons')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.search,
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- if awful.screen.focused().central_panel.visible then
- awful.screen.focused().central_panel:toggle()
- end
- awful.spawn(apps.default.rofi_global, false)
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/harddrive-meter/init.lua b/config/awesome/gnawesome/widget/harddrive-meter/init.lua
deleted file mode 100644
index b3972c323..000000000
--- a/config/awesome/gnawesome/widget/harddrive-meter/init.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local watch = require('awful.widget.watch')
-local icons = require('theme.icons')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = wibox.widget {
- nil,
- {
- id = 'hdd_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-watch(
- [[bash -c "df -h /home|grep '^/' | awk '{print $5}'"]],
- 10,
- function(_, stdout)
- local space_consumed = stdout:match('(%d+)')
- slider.hdd_usage:set_value(tonumber(space_consumed))
- collectgarbage('collect')
- end
-)
-
-
-local harddrive_meter = wibox.widget {
- {
- {
- {
- image = icons.harddisk,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return harddrive_meter
diff --git a/config/awesome/gnawesome/widget/layoutbox/init.lua b/config/awesome/gnawesome/widget/layoutbox/init.lua
deleted file mode 100644
index 1171f84de..000000000
--- a/config/awesome/gnawesome/widget/layoutbox/init.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local layout_box = function(s)
- local layoutbox = wibox.widget {
- {
- awful.widget.layoutbox(s),
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
- layoutbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awful.layout.inc(-1)
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.layout.inc(-1)
- end
- )
- )
- )
- return layoutbox
-end
-
-return layout_box
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/mpd/content/album-cover.lua b/config/awesome/gnawesome/widget/mpd/content/album-cover.lua
deleted file mode 100755
index 54bd42b89..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/album-cover.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-
-local album_cover_img = wibox.widget {
- {
- id = 'cover',
- image = widget_icon_dir .. 'vinyl.svg',
- resize = true,
- clip_shape = gears.shape.rounded_rect,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.vertical
-}
-
-return album_cover_img
diff --git a/config/awesome/gnawesome/widget/mpd/content/init.lua b/config/awesome/gnawesome/widget/mpd/content/init.lua
deleted file mode 100644
index 9ab0ffde1..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/init.lua
+++ /dev/null
@@ -1,9 +0,0 @@
--- Return UI Table
-return {
- album_cover = require('widget.mpd.content.album-cover'),
- progress_bar = require('widget.mpd.content.progress-bar'),
- track_time = require('widget.mpd.content.track-time'),
- song_info = require('widget.mpd.content.song-info'),
- media_buttons = require('widget.mpd.content.media-buttons'),
- volume_slider = require('widget.mpd.content.volume-slider'),
-}
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/mpd/content/media-buttons.lua b/config/awesome/gnawesome/widget/mpd/content/media-buttons.lua
deleted file mode 100755
index dc460dd28..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/media-buttons.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local media_buttons = {}
-
-media_buttons.play_button_image = wibox.widget {
- {
- id = 'play',
- image = widget_icon_dir .. 'play.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.next_button_image = wibox.widget {
- {
- id = 'next',
- image = widget_icon_dir .. 'next.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.prev_button_image = wibox.widget {
- {
- id = 'prev',
- image = widget_icon_dir .. 'prev.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.repeat_button_image = wibox.widget {
- {
- id = 'rep',
- image = widget_icon_dir .. 'repeat-on.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.random_button_image = wibox.widget {
- {
- id = 'rand',
- image = widget_icon_dir .. 'random-on.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.play_button = wibox.widget {
- {
- media_buttons.play_button_image,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.next_button = wibox.widget {
- {
- media_buttons.next_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.prev_button = wibox.widget {
- {
- media_buttons.prev_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.repeat_button = wibox.widget {
- {
- media_buttons.repeat_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.random_button = wibox.widget {
- {
- media_buttons.random_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-media_buttons.navigate_buttons = wibox.widget {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- media_buttons.repeat_button,
- {
- layout = wibox.layout.fixed.horizontal,
- media_buttons.prev_button,
- media_buttons.play_button,
- media_buttons.next_button,
- forced_height = dpi(35),
- },
- media_buttons.random_button,
- forced_height = dpi(35),
-}
-
-return media_buttons
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/mpd/content/progress-bar.lua b/config/awesome/gnawesome/widget/mpd/content/progress-bar.lua
deleted file mode 100755
index a1033400e..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/progress-bar.lua
+++ /dev/null
@@ -1,21 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local progressbar = wibox.widget {
- {
- id = 'music_bar',
- max_value = 100,
- forced_height = dpi(3),
- forced_width = dpi(100),
- color = '#ffffff',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_bar,
- widget = wibox.widget.progressbar
- },
- layout = wibox.layout.stack
-}
-
-return progressbar
diff --git a/config/awesome/gnawesome/widget/mpd/content/song-info.lua b/config/awesome/gnawesome/widget/mpd/content/song-info.lua
deleted file mode 100755
index 526478059..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/song-info.lua
+++ /dev/null
@@ -1,64 +0,0 @@
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local song_info = {}
-
-song_info.music_title = wibox.widget {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- id = 'title',
- text = 'The song title is here',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- ellipsize = 'end',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 60,
- layout = wibox.container.scroll.horizontal
- },
- nil
-}
-
-song_info.music_artist = wibox.widget {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- id = 'artist',
- text = 'The artist name is here',
- font = 'Inter 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- layout = wibox.container.scroll.horizontal,
- fps = 60
- },
- nil
-}
-
-song_info.music_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- song_info.music_title,
- song_info.music_artist
-}
-
-return song_info
diff --git a/config/awesome/gnawesome/widget/mpd/content/track-time.lua b/config/awesome/gnawesome/widget/mpd/content/track-time.lua
deleted file mode 100755
index 6ffb5659e..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/track-time.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local beautiful = require('beautiful')
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = beautiful.xresources.apply_dpi
-
-local time_info = {}
-
-time_info.time_status = wibox.widget {
- id = 'statustime',
- text = '00:00',
- font = 'Inter 8',
- align = 'center',
- valign = 'center',
- forced_height = dpi(10),
- widget = wibox.widget.textbox
-}
-
-time_info.time_duration = wibox.widget {
- id = 'durationtime',
- text = '00:00',
- font = 'Inter 8',
- align = 'center',
- valign = 'center',
- forced_height = dpi(10),
- widget = wibox.widget.textbox
-}
-
-time_info.time_track = wibox.widget {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- time_info.time_status,
- nil,
- time_info.time_duration
-}
-
-return time_info
diff --git a/config/awesome/gnawesome/widget/mpd/content/volume-slider.lua b/config/awesome/gnawesome/widget/mpd/content/volume-slider.lua
deleted file mode 100755
index 70151d85f..000000000
--- a/config/awesome/gnawesome/widget/mpd/content/volume-slider.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = {}
-
-slider.vol_slider = wibox.widget {
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(5),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
-}
-
-return slider
diff --git a/config/awesome/gnawesome/widget/mpd/icons/music.svg b/config/awesome/gnawesome/widget/mpd/icons/music.svg
deleted file mode 100755
index a2aa04e59..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/music.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/next.svg b/config/awesome/gnawesome/widget/mpd/icons/next.svg
deleted file mode 100644
index 7df506387..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/next.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/pause.svg b/config/awesome/gnawesome/widget/mpd/icons/pause.svg
deleted file mode 100644
index 9fc7767b6..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/pause.svg
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/play.svg b/config/awesome/gnawesome/widget/mpd/icons/play.svg
deleted file mode 100755
index 3a5677982..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/play.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/prev.svg b/config/awesome/gnawesome/widget/mpd/icons/prev.svg
deleted file mode 100644
index 0e39d34fc..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/prev.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/random-off.svg b/config/awesome/gnawesome/widget/mpd/icons/random-off.svg
deleted file mode 100755
index 76f2e0671..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/random-off.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/random-on.svg b/config/awesome/gnawesome/widget/mpd/icons/random-on.svg
deleted file mode 100755
index 3baf2ed60..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/random-on.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/repeat-off.svg b/config/awesome/gnawesome/widget/mpd/icons/repeat-off.svg
deleted file mode 100644
index 00a4c063d..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/repeat-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/repeat-on.svg b/config/awesome/gnawesome/widget/mpd/icons/repeat-on.svg
deleted file mode 100644
index 6917ca641..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/repeat-on.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/icons/vinyl.svg b/config/awesome/gnawesome/widget/mpd/icons/vinyl.svg
deleted file mode 100755
index d26a4a8af..000000000
--- a/config/awesome/gnawesome/widget/mpd/icons/vinyl.svg
+++ /dev/null
@@ -1,5698 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/mpd/init.lua b/config/awesome/gnawesome/widget/mpd/init.lua
deleted file mode 100755
index eb4d25b5a..000000000
--- a/config/awesome/gnawesome/widget/mpd/init.lua
+++ /dev/null
@@ -1,73 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local clickable_container = require('widget.clickable-container')
-local music_box = require('widget.mpd.music-box')
-local toggle_music_box = music_box.toggle_music_box
-
-local return_button = function()
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'music.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- local music_tooltip = awful.tooltip
- {
- objects = {widget_button},
- text = 'None',
- mode = 'outside',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- align = 'right',
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- music_tooltip.visible = false
- awesome.emit_signal('widget::music', 'mouse')
- end
- )
- )
- )
-
- widget_button:connect_signal(
- "mouse::enter",
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc status',
- function(stdout)
- music_tooltip.text = string.gsub(stdout, '\n$', '')
- end
- )
- end
- )
-
-
- return widget_button
-
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/mpd/mpd-music-updater.lua b/config/awesome/gnawesome/widget/mpd/mpd-music-updater.lua
deleted file mode 100755
index c155caf0f..000000000
--- a/config/awesome/gnawesome/widget/mpd/mpd-music-updater.lua
+++ /dev/null
@@ -1,460 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local ui_content = require('widget.mpd.content')
-
-local album_cover = ui_content.album_cover
-local prog_bar = ui_content.progress_bar
-local track_time = ui_content.track_time
-local song_info = ui_content.song_info
-local vol_slider = ui_content.volume_slider
-local media_buttons = ui_content.media_buttons
-
-local apps = require('configuration.apps')
-
-local update_cover = function()
-
- local extract_script = [=[
- MUSIC_DIR="$(xdg-user-dir MUSIC)"
- TMP_DIR="/tmp/awesomewm/${USER}/"
- TMP_COVER_PATH=${TMP_DIR}"cover.jpg"
- TMP_SONG="${TMP_DIR}current-song"
-
- CHECK_EXIFTOOL=$(command -v exiftool)
-
- if [ ! -d "${TMP_DIR}" ]; then
- mkdir -p "${TMP_DIR}";
- fi
-
- if [ ! -z "$CHECK_EXIFTOOL" ]; then
-
- SONG="$MUSIC_DIR/$(mpc -p 6600 --format "%file%" current)"
- PICTURE_TAG="-Picture"
-
- if [[ "$SONG" == *".m4a" ]]; then
- PICTURE_TAG="-CoverArt"
- fi
-
- # Extract album cover using perl-image-exiftool
- exiftool -b "$PICTURE_TAG" "$SONG" > "$TMP_COVER_PATH"
-
- else
-
- #Extract image using ffmpeg
- cp "$MUSIC_DIR/$(mpc --format %file% current)" "$TMP_SONG"
-
- ffmpeg \
- -hide_banner \
- -loglevel 0 \
- -y \
- -i "$TMP_SONG" \
- -vf scale=300:-1 \
- "$TMP_COVER_PATH" > /dev/null 2>&1
-
- rm "$TMP_SONG"
- fi
-
- img_data=$(identify $TMP_COVER_PATH 2>&1)
-
- # Delete the cover.jpg if it's not a valid image
- if [[ $img_data == *"insufficient"* ]]; then
- rm $TMP_COVER_PATH
- fi
-
- if [ -f $TMP_COVER_PATH ]; then
- echo $TMP_COVER_PATH;
- fi
- ]=]
-
- awful.spawn.easy_async_with_shell(
- extract_script,
- function(stdout)
- local album_icon = widget_icon_dir .. 'vinyl.svg'
-
- if not (stdout == nil or stdout == '') then
- album_icon = stdout:gsub('%\n', '')
- end
-
- album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
-
- album_cover:emit_signal('widget::redraw_needed')
- album_cover:emit_signal('widget::layout_changed')
-
- collectgarbage('collect')
- end
- )
-end
-
-local update_progress_bar = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2 { split($4, a); print a[1]}' | tr -d '[\%\(\)]'
- ]],
- function(stdout)
- local progress_bar = prog_bar.music_bar
- if stdout ~= nil then
- progress_bar:set_value(tonumber(stdout))
- else
- progress_bar:set_value(0)
- end
- end
- )
-end
-
-local update_time_progress = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}' | tr -d '[\%\(\)]'
- ]],
- function(stdout)
- local time_status = track_time.time_status
- if stdout ~= nil then
- time_status:set_text(tostring(stdout))
- else
- time_status:set_text('00:00')
- end
- end
- )
-
-end
-
-local update_time_duration = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc --format %time% current
- ]],
- function(stdout)
- local time_duration = track_time.time_duration
- if stdout ~= nil then
- time_duration:set_text(tostring(stdout))
- else
- time_duration:set_text('99:59')
- end
- end
- )
-end
-
-local update_file = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- file_name = stdout:gsub('%\n','')
- end
- )
- return file_name
-end
-
-local update_title = function()
-
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %title% current
- ]],
- function(stdout)
-
- -- Remove new lines
- local title = stdout:gsub('%\n', '')
-
- local title_widget = song_info.music_title
- local title_text = song_info.music_title:get_children_by_id('title')[1]
-
- -- Make sure it's not null
- if not (title == nil or title == '') then
- title_text:set_text(title)
- else
-
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
-
- if not (stdout == nil or stdout == '') then
-
- file_name = stdout:gsub('%\n','')
-
- file_name = file_name:sub(1, title:len() - 5) .. ''
-
- title_text:set_text(file_name)
-
- else
- -- Set title
- title_text:set_text('Play some music!')
-
- end
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
- end
- )
-
- end
-
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
-
- collectgarbage('collect')
- end
- )
-end
-
-local update_artist = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %artist% current
- ]],
- function(stdout)
-
- -- Remove new lines
- local artist = stdout:gsub('%\n', '')
-
- local artist_widget = song_info.music_artist
-
- local artist_text = artist_widget:get_children_by_id('artist')[1]
-
- if not (artist == nil or artist == '') then
-
- artist_text:set_text(artist)
-
- else
-
-
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- if not (stdout == nil or stdout == '') then
-
- artist_text:set_text('unknown artist')
-
- else
- artist_text:set_text('or play some porn?')
-
- end
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- end
- )
- end
-
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- end
- )
-end
-
-local update_volume_slider = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc volume
- ]],
- function(stdout)
- local volume_slider = vol_slider.vol_slider
- if stdout:match('n/a') then
- return
- end
- volume_slider:set_value(tonumber(stdout:match('%d+')))
- end
- )
-end
-
-local check_if_playing = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2' | grep -o playing
- ]],
- function(stdout)
- local play_button_img = media_buttons.play_button_image.play
- if not (stdout == nil or stdout == '') then
- play_button_img:set_image(widget_icon_dir .. 'pause.svg')
- update_volume_slider()
- else
- play_button_img:set_image(widget_icon_dir .. 'play.svg')
- end
- end
- )
-end
-
-local check_repeat_status = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | sed -n '/random/p' | cut -c23-24 | sed 's/^[ \t]*//'
- ]],
- function(stdout)
- local repeat_button_img = media_buttons.repeat_button_image.rep
- if stdout:match('on') then
- repeat_button_img:set_image(widget_icon_dir .. 'repeat-on.svg')
- else
- repeat_button_img:set_image(widget_icon_dir .. 'repeat-off.svg')
- end
- end
- )
-end
-
-local check_random_status = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | sed -n '/random/p' | cut -c37-38 | sed 's/^[ \t]*//'
- ]],
- function(stdout)
-
- local random_button_image = media_buttons.random_button_image.rand
-
- if stdout:match("on") then
- random_button_image:set_image(widget_icon_dir .. 'random-on.svg')
- else
- random_button_image:set_image(widget_icon_dir .. 'random-off.svg')
- end
- end
- )
-end
-
-vol_slider.vol_slider:connect_signal(
- 'property::value',
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc volume ' .. vol_slider.vol_slider:get_value(),
- function() end
- )
- end
-)
-
-local update_all_content = function()
- update_progress_bar()
- update_time_progress()
- update_time_duration()
- update_title()
- update_artist()
- update_cover()
- check_if_playing()
- check_repeat_status()
- check_random_status()
- update_volume_slider()
-end
-
--- Update progress bar and time every N seconds
-gears.timer.start_new(
- 10,
- function()
- update_progress_bar()
- update_time_progress()
- return true
- end
-)
-
-local mpd_startup = [[
-# Let's make sure that MPD is running.
-if [ -z $(pgrep mpd) ]; then mpd; fi
-]]
-
-local mpd_change_event_listener = [[
-sh -c '
-mpc idleloop player
-'
-]]
-
-local kill_mpd_change_event_listener = [[
-ps x |
-grep "mpc idleloop player" |
-grep -v grep |
-awk '{print $1}' |
-xargs kill
-]]
-
-awful.spawn.easy_async_with_shell(
- mpd_startup,
- function ()
- awful.spawn.easy_async_with_shell(
- kill_mpd_change_event_listener,
- function ()
- update_all_content()
- awful.spawn.with_line_callback(
- mpd_change_event_listener,
- {
- stdout = function(line)
- update_all_content()
- end
- }
- )
- end
- )
- end
-)
-
-media_buttons.play_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc toggle')
- end
- )
- )
-)
-
-media_buttons.next_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc next')
- end
- )
- )
-)
-
-media_buttons.prev_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc prev')
- end
- )
- )
-)
-
-media_buttons.repeat_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc repeat',
- function ()
- check_repeat_status()
- end
- )
- end
- )
- )
-)
-
-media_buttons.random_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- 'mpc random',
- function ()
- check_random_status()
- end
- )
- end
- )
- )
-)
diff --git a/config/awesome/gnawesome/widget/mpd/music-box.lua b/config/awesome/gnawesome/widget/mpd/music-box.lua
deleted file mode 100755
index 150ded879..000000000
--- a/config/awesome/gnawesome/widget/mpd/music-box.lua
+++ /dev/null
@@ -1,158 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local music_func = {}
-
-screen.connect_signal('request::desktop_decoration', function(s)
-
- -- Set music box geometry
- local music_box_margin = dpi(5)
- local music_box_height = dpi(375)
- local music_box_width = dpi(260)
- local music_box_x = nil
-
-
- s.musicpop = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'dock',
- screen = s,
- width = music_box_width,
- height = music_box_height,
- maximum_width = music_box_width,
- maximum_height = music_box_height,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = {'middle', 'back', 'front'},
- preferred_positions = {'left', 'right', 'top', 'bottom'},
-
- }
-
- local ui_content = require('widget.mpd.content')
-
- s.album = ui_content.album_cover
- s.progress_bar = ui_content.progress_bar
- s.time_track = ui_content.track_time.time_track
- s.song_info = ui_content.song_info.music_info
- s.media_buttons = ui_content.media_buttons.navigate_buttons
- s.volume_slider = ui_content.volume_slider.vol_slider
-
- s.musicpop : setup {
- {
- {
- layout = wibox.layout.fixed.vertical,
- expand = 'none',
- spacing = dpi(8),
- {
- s.album,
- bottom = dpi(5),
- widget = wibox.container.margin,
- },
- {
- layout = wibox.layout.fixed.vertical,
- {
- spacing = dpi(4),
- layout = wibox.layout.fixed.vertical,
- s.progress_bar,
- s.time_track,
- },
- s.song_info,
- s.media_buttons,
- s.volume_slider,
- },
- },
- top = dpi(15),
- left = dpi(15),
- right = dpi(15),
- widget = wibox.container.margin
-
- },
- bg = beautiful.background,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, beautiful.groups_radius
- )
- end,
- widget = wibox.container.background()
- }
-
- s.backdrop_music = wibox {
- ontop = true,
- visible = false,
- screen = s,
- type = 'utility',
- input_passthrough = false,
- bg = beautiful.transparent,
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- local toggle_music_box = function(type)
-
- local focused = awful.screen.focused()
- local music_box = focused.musicpop
- local music_backdrop = focused.backdrop_music
-
- if music_box.visible then
- music_backdrop.visible = not music_backdrop.visible
- music_box.visible = not music_box.visible
-
- else
-
- if type == 'keyboard' then
- music_backdrop.visible = true
- music_box.visible = true
- awful.placement.top_right(
- music_box,
- {
- margins = {
- top = dpi(5),
- right = dpi(music_box_x or 5)
- },
- honor_workarea = true
- })
- else
- local widget_button = mouse.current_widget_geometry
-
- music_backdrop.visible = true
- music_box:move_next_to(widget_button)
- music_box_x = (focused.geometry.width - music_box.x) - music_box_width
- end
- end
- end
-
- awesome.connect_signal(
- 'widget::music',
- function(type)
- toggle_music_box(type)
- end
- )
-
- s.backdrop_music:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_music_box()
- end
- )
- )
- )
-end)
-
-
-music_func.toggle_music_box = toggle_music_box
-
-local mpd_updater = require('widget.mpd.mpd-music-updater')
-
-return music_func
diff --git a/config/awesome/gnawesome/widget/mpd/spotify-music-updater.lua b/config/awesome/gnawesome/widget/mpd/spotify-music-updater.lua
deleted file mode 100644
index 40331f648..000000000
--- a/config/awesome/gnawesome/widget/mpd/spotify-music-updater.lua
+++ /dev/null
@@ -1,324 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local naughty = require('naughty')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/music/icons/'
-
-local ui_content = require('widget.music.content')
-
-local album_cover = ui_content.album_cover
-local prog_bar = ui_content.progress_bar
-local track_time = ui_content.track_time
-local song_info = ui_content.song_info
-local vol_slider = ui_content.volume_slider
-local media_buttons = ui_content.media_buttons
-
--- We can't set/get the data for these
--- So let's hide them
-
-prog_bar.visible = false
-track_time.time_status.visible = false
-track_time.time_duration.visible = false
-media_buttons.repeat_button.visible = false
-media_buttons.random_button.visible = false
-
-
-local update_cover = function()
- local get_art_url = [[
- dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get \
- string:'org.mpris.MediaPlayer2.Player' string:'Metadata' |
- egrep -A 1 "artUrl"| egrep -v "artUrl" | awk -F '"' '{print $2}' |
- sed -e 's/open.spotify.com/i.scdn.co/g'
- ]]
-
- awful.spawn.easy_async_with_shell(
- get_art_url,
- function(link)
-
- local download_art = [[
- tmp_dir="/tmp/awesomewm/${USER}/"
- tmp_cover_path=${tmp_dir}"cover.jpg"
-
- if [ ! -d $tmp_dir ]; then
- mkdir -p $tmp_dir;
- fi
-
- if [ -f $tmp_cover_path]; then
- rm $tmp_cover_path
- fi
-
- wget -O $tmp_cover_path ]] ..link .. [[
-
- echo $tmp_cover_path
- ]]
-
- awful.spawn.easy_async_with_shell(
- download_art,
- function(stdout)
-
- local album_icon = stdout:gsub('%\n', '')
-
- album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
-
- album_cover:emit_signal("widget::redraw_needed")
- album_cover:emit_signal("widget::layout_changed")
-
- collectgarbage('collect')
- end
- )
- end
- )
-end
-
-
-local update_title = function()
- awful.spawn.easy_async_with_shell(
- [[
- dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata' |
- egrep -A 1 "title" | egrep -v "title" | awk -F '"' '{print $2}'
- ]],
- function(stdout)
-
- local title = stdout:gsub('%\n', '')
-
- local title_widget = song_info.music_title
-
- local title_text = song_info.music_title:get_children_by_id('title')[1]
-
- title_text:set_text(title)
-
- title_widget:emit_signal("widget::redraw_needed")
- title_widget:emit_signal("widget::layout_changed")
-
- collectgarbage('collect')
- end
- )
-end
-
-
-local update_artist = function()
-
-
- awful.spawn.easy_async_with_shell(
- [[
- dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata'|
- egrep -A 2 "artist" | egrep -v "artist" | egrep -v "array" | awk -F '"' '{print $2}'
- ]],
- function(stdout)
-
- -- Remove new lines
- local artist = stdout:gsub('%\n', '')
-
- if (stdout == nil or stdout == '') then
- artist = 'Advertisement'
- end
-
- local artist_widget = song_info.music_artist
-
- local artist_text = artist_widget:get_children_by_id('artist')[1]
-
- artist_text:set_text(artist)
-
- artist_widget:emit_signal("widget::redraw_needed")
- artist_widget:emit_signal("widget::layout_changed")
-
- collectgarbage('collect')
- end
- )
-end
-
-
-local update_volume_slider = function()
-
--- Stop. Don't indent.
--- It's python. Nuff said
- local get_volume = [[
-python - < 100:
- arg = 100
- subprocess.run(['pactl', 'set-sink-input-volume', sink_id, str(arg) + '%'])
-
-END
- ]]
-
- awful.spawn.easy_async_with_shell(
- set_volume,
- function(stdout) end
- )
-
-end
-
-
-vol_slider.vol_slider:connect_signal(
- 'property::value',
- function()
- local volume_slider = vol_slider.vol_slider
- set_spotify_volume(tostring(volume_slider:get_value()))
- end
-)
-
-
-local update_all_content = function()
- -- Add a delay
- gears.timer.start_new(2, function()
- update_title()
- update_artist()
- update_cover()
- check_if_playing()
- update_volume_slider()
- end)
-end
-
-
-update_all_content()
-
-
-media_buttons.play_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- [[
- dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
- ]],
- function()
- check_if_playing()
- end
- )
- end
- )
- )
-)
-
-
-media_buttons.next_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- [[
- dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
- ]],
- function()
- update_all_content()
- end
- )
- end
- )
- )
-)
-
-
-media_buttons.prev_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.easy_async_with_shell(
- [[
- dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
- ]],
- function()
- update_all_content()
- end
- )
- end
- )
- )
-)
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/network/icons/airplane-mode-off.svg b/config/awesome/gnawesome/widget/network/icons/airplane-mode-off.svg
deleted file mode 100644
index 7a4c91c0a..000000000
--- a/config/awesome/gnawesome/widget/network/icons/airplane-mode-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/airplane-mode.svg b/config/awesome/gnawesome/widget/network/icons/airplane-mode.svg
deleted file mode 100644
index 70fc89d1a..000000000
--- a/config/awesome/gnawesome/widget/network/icons/airplane-mode.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/loading.svg b/config/awesome/gnawesome/widget/network/icons/loading.svg
deleted file mode 100755
index cd7bc0e0f..000000000
--- a/config/awesome/gnawesome/widget/network/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-off.svg b/config/awesome/gnawesome/widget/network/icons/wifi-off.svg
deleted file mode 100755
index dbcbc7a82..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-1-alert.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-1-alert.svg
deleted file mode 100755
index 7a8de11db..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-1-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-1-lock.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-1-lock.svg
deleted file mode 100755
index 9bcf910fd..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-1-lock.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-1.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-1.svg
deleted file mode 100755
index 9e9004981..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-1.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-2-alert.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-2-alert.svg
deleted file mode 100755
index 970987a46..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-2-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-2-lock.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-2-lock.svg
deleted file mode 100755
index cbedd2746..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-2-lock.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-2.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-2.svg
deleted file mode 100755
index e65871e1f..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-2.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-3-alert.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-3-alert.svg
deleted file mode 100755
index e1b5a5f51..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-3-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-3-lock.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-3-lock.svg
deleted file mode 100755
index 865d01a16..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-3-lock.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-3.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-3.svg
deleted file mode 100755
index cec90d5b2..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-3.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-4-alert.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-4-alert.svg
deleted file mode 100755
index 2d9d47d1c..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-4-alert.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-4-lock.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-4-lock.svg
deleted file mode 100755
index fb51f35ea..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-4-lock.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-4.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-4.svg
deleted file mode 100755
index 259a3a94d..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-4.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-alert-outline.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-alert-outline.svg
deleted file mode 100755
index 3e4c33a8f..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-alert-outline.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-alert.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-alert.svg
deleted file mode 100755
index ca80f6cba..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-alert.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-empty.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-empty.svg
deleted file mode 100755
index 0a1380ab3..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-empty.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-lock-outline.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-lock-outline.svg
deleted file mode 100755
index 3edc63601..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-lock-outline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-off-outline.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-off-outline.svg
deleted file mode 100755
index 2f9b636b5..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-off-outline.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-off.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-off.svg
deleted file mode 100755
index 12cb04308..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-off.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi-strength-outline.svg b/config/awesome/gnawesome/widget/network/icons/wifi-strength-outline.svg
deleted file mode 100755
index 00fcd2614..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi-strength-outline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wifi.svg b/config/awesome/gnawesome/widget/network/icons/wifi.svg
deleted file mode 100755
index 78878680a..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wifi.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wired-alert.svg b/config/awesome/gnawesome/widget/network/icons/wired-alert.svg
deleted file mode 100755
index 60ad378d0..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wired-alert.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wired-off.svg b/config/awesome/gnawesome/widget/network/icons/wired-off.svg
deleted file mode 100755
index 35481c021..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wired-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/icons/wired.svg b/config/awesome/gnawesome/widget/network/icons/wired.svg
deleted file mode 100755
index 00441aca1..000000000
--- a/config/awesome/gnawesome/widget/network/icons/wired.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/network/init.lua b/config/awesome/gnawesome/widget/network/init.lua
deleted file mode 100755
index 105dd502f..000000000
--- a/config/awesome/gnawesome/widget/network/init.lua
+++ /dev/null
@@ -1,358 +0,0 @@
-----------------------------------------------------------------------------
---- Simple Network Widget
---
--- Depends: iproute2, iw
---
---
--- @author manilarome <gerome.matilla07@gmail.com>
--- @copyright 2020 manilarome
--- @widget network
-----------------------------------------------------------------------------
-
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local dpi = require('beautiful').xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/network/icons/'
-local config = require('configuration.config')
-
--- Configuration
-local interfaces = {
- wlan_interface = config.widget.network.wireless_interface or 'wlan0',
- lan_interface = config.widget.network.wired_interface or 'enp0s25'
-}
-
-local network_mode = nil
-
-local return_button = function()
-
- local update_notify_no_access = true
- local notify_no_access_quota = 0
-
- local startup = true
- local reconnect_startup = true
- local notify_new_wifi_conn = false
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'wifi-strength-off' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.network_manager, false)
- end
- )
- )
- )
-
- local network_tooltip = awful.tooltip {
- text = 'Loading...',
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
- }
-
- local check_internet_health = [=[
- status_ping=0
-
- packets="$(ping -q -w2 -c2 1.1.1.1 | grep -o "100% packet loss")"
- if [ ! -z "${packets}" ];
- then
- status_ping=0
- else
- status_ping=1
- fi
-
- if [ $status_ping -eq 0 ];
- then
- echo 'Connected but no internet'
- fi
- ]=]
-
- -- Awesome/System startup
- local update_startup = function()
- if startup then
- startup = false
- end
- end
-
- -- Consider reconnecting a startup
- local update_reconnect_startup = function(status)
- reconnect_startup = status
- end
-
- -- Update tooltip
- local update_tooltip = function(message)
- network_tooltip:set_markup(message)
- end
-
- local network_notify = function(message, title, app_name, icon)
- naughty.notification({
- message = message,
- title = title,
- app_name = app_name,
- icon = icon
- })
- end
-
- -- Wireless mode / Update
- local update_wireless = function()
-
- network_mode = 'wireless'
-
- -- Create wireless connection notification
- local notify_connected = function(essid)
- local message = 'You are now connected to \"' .. essid .. '\"'
- local title = 'Connection Established'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wifi.svg'
- network_notify(message, title, app_name, icon)
- end
-
- -- Get wifi essid and bitrate
- local update_wireless_data = function(strength, healthy)
- awful.spawn.easy_async_with_shell(
- [[
- iw dev ]] .. interfaces.wlan_interface .. [[ link
- ]],
- function(stdout)
- local essid = stdout:match('SSID: (.-)\n') or 'N/A'
- local bitrate = stdout:match('tx bitrate: (.+/s)') or 'N/A'
- local message = 'Connected to: ' .. (essid or 'Loading...*') ..
- '\nWireless Interface: ' .. interfaces.wlan_interface ..
- '\nWiFi-Strength: ' .. tostring(wifi_strength) .. '%' ..
- '\nBit rate: ' .. tostring(bitrate) .. ''
-
- if healthy then
- update_tooltip(message)
- else
- update_tooltip('Connected but no internet!\n' .. message)
- end
-
- if reconnect_startup or startup then
- notify_connected(essid)
- update_reconnect_startup(false)
- end
- end
- )
- end
-
- -- Update wifi icon based on wifi strength and health
- local update_wireless_icon = function(strength)
- awful.spawn.easy_async_with_shell(
- check_internet_health,
- function(stdout)
- local widget_icon_name = 'wifi-strength'
- if not stdout:match('Connected but no internet') then
- if startup or reconnect_startup then
- awesome.emit_signal('system::network_connected')
- end
- widget_icon_name = widget_icon_name .. '-' .. tostring(strength)
- update_wireless_data(wifi_strength_rounded, true)
- else
- widget_icon_name = widget_icon_name .. '-' .. tostring(strength) .. '-alert'
- update_wireless_data(wifi_strength_rounded, false)
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
- )
- end
-
- -- Get wifi strength
- local update_wireless_strength = function()
- awful.spawn.easy_async_with_shell(
- [[
- awk 'NR==3 {printf "%3.0f" ,($3/70)*100}' /proc/net/wireless
- ]],
- function(stdout)
- if not tonumber(stdout) then
- return
- end
- wifi_strength = tonumber(stdout)
- local wifi_strength_rounded = math.floor(wifi_strength / 25 + 0.5)
- update_wireless_icon(wifi_strength_rounded)
- end
- )
- end
-
- update_wireless_strength()
- update_startup()
- end
-
- local update_wired = function()
-
- network_mode = 'wired'
-
- local notify_connected = function()
- local message = 'Connected to internet with \"' .. interfaces.lan_interface .. '\"'
- local title = 'Connection Established'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wired.svg'
- network_notify(message, title, app_name, icon)
- end
-
- awful.spawn.easy_async_with_shell(
- check_internet_health,
- function(stdout)
-
- local widget_icon_name = 'wired'
-
- if stdout:match('Connected but no internet') then
- widget_icon_name = widget_icon_name .. '-alert'
- update_tooltip(
- 'Connected but no internet!' ..
- '\nEthernet Interface: ' .. interfaces.lan_interface .. ''
- )
- else
- update_tooltip('Ethernet Interface: ' .. interfaces.lan_interface .. '')
- if startup or reconnect_startup then
- awesome.emit_signal('system::network_connected')
- notify_connected()
- update_startup(false)
- end
- update_reconnect_startup(false)
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
- )
- end
-
- local update_disconnected = function()
-
- local notify_wireless_disconnected = function(essid)
- local message = 'Wi-Fi network has been disconnected'
- local title = 'Connection Disconnected'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wifi-strength-off.svg'
- network_notify(message, title, app_name, icon)
- end
-
- local notify_wired_disconnected = function(essid)
- local message = 'Ethernet network has been disconnected'
- local title = 'Connection Disconnected'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wired-off.svg'
- network_notify(message, title, app_name, icon)
- end
-
- local widget_icon_name = 'wifi-strength-off'
-
- if network_mode == 'wireless' then
- widget_icon_name = 'wifi-strength-off'
- if not reconnect_startup then
- update_reconnect_startup(true)
- notify_wireless_disconnected()
- end
- elseif network_mode == 'wired' then
- widget_icon_name = 'wired-off'
- if not reconnect_startup then
- update_reconnect_startup(true)
- notify_wired_disconnected()
- end
- end
- update_tooltip('Network is currently disconnected')
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
-
- local check_network_mode = function()
- awful.spawn.easy_async_with_shell(
- [=[
- wireless="]=] .. tostring(interfaces.wlan_interface) .. [=["
- wired="]=] .. tostring(interfaces.lan_interface) .. [=["
- net="/sys/class/net/"
-
- wired_state="down"
- wireless_state="down"
- network_mode=""
-
- # Check network state based on interface's operstate value
- function check_network_state() {
- # Check what interface is up
- if [[ "${wireless_state}" == "up" ]];
- then
- network_mode='wireless'
- elif [[ "${wired_state}" == "up" ]];
- then
- network_mode='wired'
- else
- network_mode='No internet connection'
- fi
- }
-
- # Check if network directory exist
- function check_network_directory() {
- if [[ -n "${wireless}" && -d "${net}${wireless}" ]];
- then
- wireless_state="$(cat "${net}${wireless}/operstate")"
- fi
- if [[ -n "${wired}" && -d "${net}${wired}" ]]; then
- wired_state="$(cat "${net}${wired}/operstate")"
- fi
- check_network_state
- }
-
- # Start script
- function print_network_mode() {
- # Call to check network dir
- check_network_directory
- # Print network mode
- printf "${network_mode}"
- }
-
- print_network_mode
-
- ]=],
- function(stdout)
- local mode = stdout:gsub('%\n', '')
- if stdout:match('No internet connection') then
- update_disconnected()
- elseif stdout:match('wireless') then
- update_wireless()
- elseif stdout:match('wired') then
- update_wired()
- end
- end
- )
- end
-
- local network_updater = gears.timer {
- timeout = 5,
- autostart = true,
- call_now = true,
- callback = function()
- check_network_mode()
- end
- }
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/notif-center/build-notifbox/empty-notifbox.lua b/config/awesome/gnawesome/widget/notif-center/build-notifbox/empty-notifbox.lua
deleted file mode 100644
index 1a8429fac..000000000
--- a/config/awesome/gnawesome/widget/notif-center/build-notifbox/empty-notifbox.lua
+++ /dev/null
@@ -1,66 +0,0 @@
--- This returns the "Wow, such empty." message.
-
-local wibox = require('wibox')
-
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = require('gears').filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = wibox.widget {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- nil,
- {
- image = widget_icon_dir .. 'empty-notification' .. '.svg',
- resize = true,
- forced_height = dpi(35),
- forced_width = dpi(35),
- widget = wibox.widget.imagebox,
- },
- nil
- },
- {
- text = 'Wow, such empty.',
- font = 'Inter Bold 14',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- {
- text = 'Come back later.',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- },
- margins = dpi(20),
- widget = wibox.container.margin
-
-}
-
-
-local separator_for_empty_msg = wibox.widget
-{
- orientation = 'vertical',
- opacity = 0.0,
- widget = wibox.widget.separator
-}
-
--- Make empty_notifbox center
-local centered_empty_notifbox = wibox.widget {
- layout = wibox.layout.align.vertical,
- forced_height = dpi(500),
- expand = 'none',
- separator_for_empty_msg,
- empty_notifbox,
- separator_for_empty_msg
-}
-
-return centered_empty_notifbox
-
diff --git a/config/awesome/gnawesome/widget/notif-center/build-notifbox/init.lua b/config/awesome/gnawesome/widget/notif-center/build-notifbox/init.lua
deleted file mode 100644
index c4aa484b7..000000000
--- a/config/awesome/gnawesome/widget/notif-center/build-notifbox/init.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = require('widget.notif-center.build-notifbox.empty-notifbox')
-local notifbox_scroller = require('widget.notif-center.build-notifbox.notifbox-scroller')
-
-local notif_core = {}
-
-notif_core.remove_notifbox_empty = true
-
-notif_core.notifbox_layout = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- empty_notifbox
-}
-
-notifbox_scroller(notif_core.notifbox_layout)
-
-notif_core.reset_notifbox_layout = function()
- notif_core.notifbox_layout:reset()
- notif_core.notifbox_layout:insert(1, empty_notifbox)
- notif_core.remove_notifbox_empty = true
-end
-
-local notifbox_add = function(n, notif_icon, notifbox_color)
- if #notif_core.notifbox_layout.children == 1 and notif_core.remove_notifbox_empty then
- notif_core.notifbox_layout:reset(notif_core.notifbox_layout)
- notif_core.remove_notifbox_empty = false
- end
-
- local notifbox_box = require('widget.notif-center.build-notifbox.notifbox-builder')
- notif_core.notifbox_layout:insert(
- 1,
- notifbox_box(
- n,
- notif_icon,
- n.title,
- n.message,
- n.app_name,
- notifbox_color
- )
- )
-end
-
-local notifbox_add_expired = function(n, notif_icon, notifbox_color)
- n:connect_signal(
- 'destroyed',
- function(self, reason, keep_visble)
- if reason == 1 then
- notifbox_add(n, notif_icon, notifbox_color)
- end
- end
- )
-end
-
-naughty.connect_signal(
- 'request::display',
- function(n)
- local notifbox_color = beautiful.groups_bg
- if n.urgency == 'critical' then
- notifbox_color = n.bg .. '66'
- end
-
- local notif_icon = n.icon or n.app_icon
- if not notif_icon then
- notif_icon = widget_icon_dir .. 'new-notif' .. '.svg'
- end
-
- notifbox_add_expired(n, notif_icon, notifbox_color)
- end
-)
-
-return notif_core
diff --git a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-builder.lua b/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-builder.lua
deleted file mode 100644
index e721232f2..000000000
--- a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-builder.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local builder = require('widget.notif-center.build-notifbox.notifbox-ui-elements')
-local notifbox_core = require('widget.notif-center.build-notifbox')
-
-local notifbox_layout = notifbox_core.notifbox_layout
-local remove_notifbox_empty = notifbox_core.remove_notifbox_empty
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local return_date_time = function(format)
- return os.date(format)
-end
-
-local parse_to_seconds = function(time)
- local hourInSec = tonumber(string.sub(time, 1, 2)) * 3600
- local minInSec = tonumber(string.sub(time, 4, 5)) * 60
- local getSec = tonumber(string.sub(time, 7, 8))
- return (hourInSec + minInSec + getSec)
-end
-
-notifbox_box = function(notif, icon, title, message, app, bgcolor)
-
- local time_of_pop = return_date_time('%H:%M:%S')
- local exact_time = return_date_time('%I:%M %p')
- local exact_date_time = return_date_time('%b %d, %I:%M %p')
-
- local notifbox_timepop = wibox.widget {
- id = 'time_pop',
- markup = nil,
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- visible = true,
- widget = wibox.widget.textbox
- }
-
- local notifbox_dismiss = builder.notifbox_dismiss()
-
- local time_of_popup = gears.timer {
- timeout = 60,
- call_now = true,
- autostart = true,
- callback = function()
-
- local time_difference = nil
-
- time_difference = parse_to_seconds(return_date_time('%H:%M:%S')) - parse_to_seconds(time_of_pop)
- time_difference = tonumber(time_difference)
-
- if time_difference < 60 then
- notifbox_timepop:set_markup('now')
-
- elseif time_difference >= 60 and time_difference < 3600 then
- local time_in_minutes = math.floor(time_difference / 60)
- notifbox_timepop:set_markup(time_in_minutes .. 'm ago')
-
- elseif time_difference >= 3600 and time_difference < 86400 then
- notifbox_timepop:set_markup(exact_time)
-
- elseif time_difference >= 86400 then
- notifbox_timepop:set_markup(exact_date_time)
- return false
-
- end
-
- collectgarbage('collect')
- end
- }
-
- local notifbox_template = wibox.widget {
- id = 'notifbox_template',
- expand = 'none',
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- builder.notifbox_icon(icon),
- builder.notifbox_appname(app),
- },
- nil,
- {
- notifbox_timepop,
- notifbox_dismiss,
- layout = wibox.layout.fixed.horizontal
- }
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- builder.notifbox_title(title),
- builder.notifbox_message(message),
- layout = wibox.layout.fixed.vertical
- },
- builder.notifbox_actions(notif),
- },
-
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- bg = bgcolor,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background,
- }
-
- -- Put the generated template to a container
- local notifbox = wibox.widget {
- notifbox_template,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- -- Delete notification box
- local notifbox_delete = function()
- notifbox_layout:remove_widgets(notifbox, true)
- end
-
- -- Delete notifbox on LMB
- notifbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- if #notifbox_layout.children == 1 then
- reset_notifbox_layout()
- else
- notifbox_delete()
- end
- collectgarbage('collect')
- end
- )
- )
- )
-
- -- Add hover, and mouse leave events
- notifbox_template:connect_signal(
- 'mouse::enter',
- function()
- notifbox.bg = beautiful.groups_bg
- notifbox_timepop.visible = false
- notifbox_dismiss.visible = true
- end
- )
-
- notifbox_template:connect_signal(
- 'mouse::leave',
- function()
- notifbox.bg = beautiful.tranparent
- notifbox_timepop.visible = true
- notifbox_dismiss.visible = false
- end
- )
-
- collectgarbage('collect')
-
- return notifbox
-end
-
-
-return notifbox_box
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-geometry.lua b/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-geometry.lua
deleted file mode 100644
index 3fe79da1e..000000000
--- a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-geometry.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-
-local find_widget_in_wibox = function(wb, widget)
- local function find_widget_in_hierarchy(h, widget)
- if h:get_widget() == widget then
- return h
- end
- local result
-
- for _, ch in ipairs(h:get_children()) do
- result = result or find_widget_in_hierarchy(ch, widget)
- end
- return result
- end
- local h = wb._drawable._widget_hierarchy
- return h and find_widget_in_hierarchy(h, widget)
-end
-
-
-local focused = awful.screen.focused()
-local h = find_widget_in_wibox(focused.top_panel, focused.music)
-local x, y, width, height = h:get_matrix_to_device():transform_rectangle(0, 0, h:get_size())
--- local geo = focused.mywibox:geometry()
-
-
--- x, y = x + geo.x, y + geo.y
-
--- print(string.format("The widget is inside of the rectangle (%d, %d, %d, %d) on the screen", x, y, width, height)
-
-
-naughty.notification({message=tostring(height)})
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-scroller.lua b/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-scroller.lua
deleted file mode 100644
index f05d323ff..000000000
--- a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-scroller.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-
-local add_button_event = function(widget)
-
- widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if #widget.children == 1 then
- return
- end
- widget:insert(1, widget.children[#widget.children])
- widget:remove(#widget.children)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if #widget.children == 1 then
- return
- end
- widget:insert(#widget.children + 1, widget.children[1])
- widget:remove(1)
- end
- )
- )
- )
-
-end
-
-return add_button_event
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-ui-elements.lua b/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
deleted file mode 100644
index ef5e574c7..000000000
--- a/config/awesome/gnawesome/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
+++ /dev/null
@@ -1,136 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local clickable_container = require('widget.clickable-container')
-
-local ui_noti_builder = {}
-
--- Notification icon container
-ui_noti_builder.notifbox_icon = function(ico_image)
- local noti_icon = wibox.widget {
- {
- id = 'icon',
- resize = true,
- forced_height = dpi(25),
- forced_width = dpi(25),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
- noti_icon.icon:set_image(ico_image)
- return noti_icon
-end
-
--- Notification title container
-ui_noti_builder.notifbox_title = function(title)
- return wibox.widget {
- markup = title,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification message container
-ui_noti_builder.notifbox_message = function(msg)
- return wibox.widget {
- markup = msg,
- font = 'Inter Regular 11',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification app name container
-ui_noti_builder.notifbox_appname = function(app)
- return wibox.widget {
- markup = app,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification actions container
-ui_noti_builder.notifbox_actions = function(n)
- actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = 30,
- widget = wibox.container.background
- },
- margins = 4,
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions,
- }
-
- return actions_template
-end
-
-
--- Notification dismiss button
-ui_noti_builder.notifbox_dismiss = function()
-
- local dismiss_imagebox = wibox.widget {
- {
- id = 'dismiss_icon',
- image = widget_icon_dir .. 'delete.svg',
- resize = true,
- forced_height = dpi(5),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
-
- local dismiss_button = wibox.widget {
- {
- dismiss_imagebox,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- local notifbox_dismiss = wibox.widget {
- dismiss_button,
- visible = false,
- bg = beautiful.groups_title_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- }
-
- return notifbox_dismiss
-end
-
-
-return ui_noti_builder
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/clear-all/init.lua b/config/awesome/gnawesome/widget/notif-center/clear-all/init.lua
deleted file mode 100644
index 7c1465700..000000000
--- a/config/awesome/gnawesome/widget/notif-center/clear-all/init.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local notifbox_core = require('widget.notif-center.build-notifbox')
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local clear_all_imagebox = wibox.widget {
- {
- image = widget_icon_dir .. 'clear_all.svg',
- resize = true,
- forced_height = dpi(20),
- forced_width = dpi(20),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local clear_all_button = wibox.widget {
- {
- clear_all_imagebox,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-clear_all_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- reset_notifbox_layout()
- end
- )
- )
-)
-
-local clear_all_button_wrapped = wibox.widget {
- nil,
- {
- clear_all_button,
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-return clear_all_button_wrapped
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/dont-disturb/init.lua b/config/awesome/gnawesome/widget/notif-center/dont-disturb/init.lua
deleted file mode 100644
index b135b65c1..000000000
--- a/config/awesome/gnawesome/widget/notif-center/dont-disturb/init.lua
+++ /dev/null
@@ -1,122 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-
-local widget_dir = config_dir .. 'widget/notif-center/dont-disturb/'
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-_G.dont_disturb = false
-
-local dont_disturb_imagebox = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'dont-disturb-mode.svg',
- resize = true,
- forced_height = dpi(20),
- forced_width = dpi(20),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local function update_icon()
-
- local widget_icon_name = nil
- local dd_icon = dont_disturb_imagebox.icon
-
- if dont_disturb then
- widget_icon_name = 'toggled-on'
- dd_icon:set_image(widget_icon_dir .. 'dont-disturb-mode.svg')
- else
- widget_icon_name = 'toggled-off'
- dd_icon:set_image(widget_icon_dir .. 'notify-mode.svg')
- end
-end
-
-local check_disturb_status = function()
-
- awful.spawn.easy_async_with_shell(
- 'cat ' .. widget_dir .. 'disturb_status',
- function(stdout)
-
- local status = stdout
-
- if status:match('true') then
- dont_disturb = true
- elseif status:match('false') then
- dont_disturb = false
- else
- dont_disturb = false
- awful.spawn.with_shell('echo "false" > ' .. widget_dir .. 'disturb_status')
- end
-
- update_icon()
- end
- )
-end
-
-check_disturb_status()
-
-local toggle_disturb = function()
- if dont_disturb then
- dont_disturb = false
- else
- dont_disturb = true
- end
- awful.spawn.with_shell('echo "' .. tostring(dont_disturb) .. '" > ' .. widget_dir .. 'disturb_status')
- update_icon()
-end
-
-local dont_disturb_button = wibox.widget {
- {
- dont_disturb_imagebox,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-dont_disturb_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_disturb()
- end
- )
- )
-)
-
-local dont_disturb_wrapped = wibox.widget {
- nil,
- {
- dont_disturb_button,
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
--- Create a notification sound
-naughty.connect_signal(
- 'request::display',
- function(n)
- if not dont_disturb then
- awful.spawn.with_shell('canberra-gtk-play -i message')
- end
- end
-)
-
-return dont_disturb_wrapped
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/icons/clear_all.svg b/config/awesome/gnawesome/widget/notif-center/icons/clear_all.svg
deleted file mode 100644
index 3f5b9b457..000000000
--- a/config/awesome/gnawesome/widget/notif-center/icons/clear_all.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/notif-center/icons/delete.svg b/config/awesome/gnawesome/widget/notif-center/icons/delete.svg
deleted file mode 100644
index 3f1f88c11..000000000
--- a/config/awesome/gnawesome/widget/notif-center/icons/delete.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/icons/dont-disturb-mode.svg b/config/awesome/gnawesome/widget/notif-center/icons/dont-disturb-mode.svg
deleted file mode 100644
index d5dc170d7..000000000
--- a/config/awesome/gnawesome/widget/notif-center/icons/dont-disturb-mode.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/notif-center/icons/empty-notification.svg b/config/awesome/gnawesome/widget/notif-center/icons/empty-notification.svg
deleted file mode 100644
index df4154cdf..000000000
--- a/config/awesome/gnawesome/widget/notif-center/icons/empty-notification.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/notif-center/icons/new-notif.svg b/config/awesome/gnawesome/widget/notif-center/icons/new-notif.svg
deleted file mode 100644
index 630b90ab1..000000000
--- a/config/awesome/gnawesome/widget/notif-center/icons/new-notif.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/config/awesome/gnawesome/widget/notif-center/icons/notify-mode.svg b/config/awesome/gnawesome/widget/notif-center/icons/notify-mode.svg
deleted file mode 100644
index 92b960b9a..000000000
--- a/config/awesome/gnawesome/widget/notif-center/icons/notify-mode.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/notif-center/init.lua b/config/awesome/gnawesome/widget/notif-center/init.lua
deleted file mode 100644
index bdc544bd7..000000000
--- a/config/awesome/gnawesome/widget/notif-center/init.lua
+++ /dev/null
@@ -1,38 +0,0 @@
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local notif_header = wibox.widget {
- text = 'Notification Center',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'bottom',
- widget = wibox.widget.textbox
-}
-
-local notif_center = function(s)
-
- s.dont_disturb = require('widget.notif-center.dont-disturb')
- s.clear_all = require('widget.notif-center.clear-all')
- s.notifbox_layout = require('widget.notif-center.build-notifbox').notifbox_layout
-
- return wibox.widget {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- notif_header,
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- s.dont_disturb,
- s.clear_all
- },
- },
- s.notifbox_layout
- }
-end
-
-return notif_center
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/open-default-app/init.lua b/config/awesome/gnawesome/widget/open-default-app/init.lua
deleted file mode 100644
index bb7ac8a7f..000000000
--- a/config/awesome/gnawesome/widget/open-default-app/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local create_open_default_button = function(s)
- s.add_button = wibox.widget {
- {
- {
- {
- {
- image = icons.plus,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- margins = dpi(4),
- widget = wibox.container.margin
- }
-
- s.add_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(
- awful.screen.focused().selected_tag.default_app,
- {
- tag = mouse.screen.selected_tag
- }
- )
- end
- )
- )
- )
- return s.add_button
-end
-
-return create_open_default_button
diff --git a/config/awesome/gnawesome/widget/package-updater/icons/package-up.svg b/config/awesome/gnawesome/widget/package-updater/icons/package-up.svg
deleted file mode 100644
index 2251baaac..000000000
--- a/config/awesome/gnawesome/widget/package-updater/icons/package-up.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/package-updater/icons/package.svg b/config/awesome/gnawesome/widget/package-updater/icons/package.svg
deleted file mode 100644
index 7d4b2f987..000000000
--- a/config/awesome/gnawesome/widget/package-updater/icons/package.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/package-updater/init.lua b/config/awesome/gnawesome/widget/package-updater/init.lua
deleted file mode 100644
index 2f52244b6..000000000
--- a/config/awesome/gnawesome/widget/package-updater/init.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local watch = awful.widget.watch
-
-local apps = require('configuration.apps')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/package-updater/icons/'
-
-local update_available = false
-local number_of_updates_available = nil
-local update_package = nil
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- widget = wibox.widget.imagebox,
- image = widget_icon_dir .. 'package.svg',
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
-
- if update_available then
- awful.spawn(apps.default.package_manager .. ' --updates', false)
-
- else
- awful.spawn(apps.default.package_manager, false)
-
- end
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
-
- if update_available then
- return update_package:gsub('\n$', '')
- else
- return 'We are up-to-date!'
- end
-
- end,
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
- )
-
- watch(
- 'pamac checkupdates',
- 60,
- function(_, stdout)
- number_of_updates_available = tonumber(stdout:match('.-\n'):match('%d*'))
- update_package = stdout
- local icon_name = nil
- if number_of_updates_available ~= nil then
- update_available = true
- icon_name = 'package-up'
- else
- update_available = false
- icon_name = 'package'
-
- end
-
- widget.icon:set_image(widget_icon_dir .. icon_name .. '.svg')
- collectgarbage('collect')
- end
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/ram-meter/init.lua b/config/awesome/gnawesome/widget/ram-meter/init.lua
deleted file mode 100644
index c630e8153..000000000
--- a/config/awesome/gnawesome/widget/ram-meter/init.lua
+++ /dev/null
@@ -1,60 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = require('awful.widget.watch')
-local icons = require('theme.icons')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = wibox.widget {
- nil,
- {
- id = 'ram_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-watch(
- 'bash -c "free | grep -z Mem.*Swap.*"',
- 10,
- function(_, stdout)
- local total, used, free, shared, buff_cache, available, total_swap, used_swap, free_swap =
- stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*Swap:%s*(%d+)%s*(%d+)%s*(%d+)')
- slider.ram_usage:set_value(used / total * 100)
- collectgarbage('collect')
- end
-)
-
-local ram_meter = wibox.widget {
- {
- {
- {
- image = icons.memory,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return ram_meter
diff --git a/config/awesome/gnawesome/widget/ram-meter/temperature/temperature-meter.lua b/config/awesome/gnawesome/widget/ram-meter/temperature/temperature-meter.lua
deleted file mode 100644
index 5fe2e4b39..000000000
--- a/config/awesome/gnawesome/widget/ram-meter/temperature/temperature-meter.lua
+++ /dev/null
@@ -1,63 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local watch = require('awful.widget.watch')
-local icons = require('theme.icons')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local slider = wibox.widget {
- nil,
- {
- id = 'temp_status',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local max_temp = 80
-
-watch(
- 'bash -c "cat /sys/class/thermal/thermal_zone0/temp"',
- 5,
- function(_, stdout)
- local temp = stdout:match('(%d+)')
- slider.temp_status:set_value((temp / 1000) / max_temp * 100)
- collectgarbage('collect')
- end
-)
-
-
-local temperature_meter = wibox.widget {
- {
- {
- {
- image = icons.thermometer,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return temperature_meter
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/audio.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/audio.svg
deleted file mode 100644
index 2f8668f15..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/audio.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/back.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/back.svg
deleted file mode 100644
index f0e76e512..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/back.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/close-screen.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/close-screen.svg
deleted file mode 100644
index 3f1f88c11..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/close-screen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-countdown.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-countdown.svg
deleted file mode 100644
index 63134d5a8..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-countdown.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-off.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-off.svg
deleted file mode 100644
index 8ade140fb..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-off.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-on.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-on.svg
deleted file mode 100644
index 29800ca58..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/recorder-on.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/recording-button.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/recording-button.svg
deleted file mode 100644
index 4caa7b386..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/recording-button.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/settings.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/settings.svg
deleted file mode 100644
index 2c5a0b996..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/settings.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/screen-recorder/icons/start-recording-button.svg b/config/awesome/gnawesome/widget/screen-recorder/icons/start-recording-button.svg
deleted file mode 100644
index 986f9dd2a..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/icons/start-recording-button.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/screen-recorder/init.lua b/config/awesome/gnawesome/widget/screen-recorder/init.lua
deleted file mode 100644
index 1dabee6bf..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/init.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-local recorder_table = require('widget.screen-recorder.screen-recorder-ui')
-require('widget.screen-recorder.screen-recorder-ui-backend')
-local screen_rec_toggle_button = recorder_table.screen_rec_toggle_button
-
-local return_button = function()
- return screen_rec_toggle_button
-end
-
-return return_button
diff --git a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-config.lua b/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-config.lua
deleted file mode 100644
index faf759368..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-config.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local user_preferences = {}
-local config = require('configuration.config')
-
--- Screen WIDTHxHEIGHT
-user_preferences.user_resolution = config.widget.screen_recorder.resolution or '1366x768'
-
--- Offset x,y
-user_preferences.user_offset = config.widget.screen_recorder.offset or '0,0'
-
--- bool true or false
-user_preferences.user_audio = config.widget.screen_recorder.audio or false
-
--- String $HOME
-user_preferences.user_save_directory = config.widget.screen_recorder.save_directory or '$(xdg-user-dir VIDEOS)/Recordings/'
-
--- String
-user_preferences.user_mic_lvl = config.widget.screen_recorder.mic_level or '20'
-
--- String
-user_preferences.user_fps = config.widget.screen_recorder.fps or '30'
-
-return user_preferences
diff --git a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-scripts.lua b/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-scripts.lua
deleted file mode 100644
index b55ef0aee..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-scripts.lua
+++ /dev/null
@@ -1,169 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local user_config = require('widget.screen-recorder.screen-recorder-config')
-local scripts_tbl = {}
-local ffmpeg_pid = nil
-
--- Get user settings
-scripts_tbl.user_resolution = user_config.user_resolution
-scripts_tbl.user_offset = user_config.user_offset
-scripts_tbl.user_audio = user_config.user_audio
-scripts_tbl.user_dir = user_config.user_save_directory
-scripts_tbl.user_mic_lvl = user_config.user_mic_lvl
-scripts_tbl.user_fps = user_config.user_fps
-
-scripts_tbl.update_user_settings = function(res, offset, audio)
- scripts_tbl.user_resolution = res
- scripts_tbl.user_offset = offset
- scripts_tbl.user_audio = audio
-end
-
-scripts_tbl.check_settings = function()
- -- For debugging purpose only
- -- naughty.notification({
- -- message=scripts_tbl.user_resolution .. ' ' .. scripts_tbl.user_offset .. tostring(scripts_tbl.user_audio)
- -- })
-end
-
-local create_save_directory = function()
-
- local create_dir_cmd = [[
- dir="]] .. scripts_tbl.user_dir .. [["
-
- if [ ! -d "$dir" ]; then
- mkdir -p "$dir"
- fi
- ]]
-
- awful.spawn.easy_async_with_shell(
- create_dir_cmd,
- function(stdout) end
- )
-end
-
-create_save_directory()
-
-local kill_existing_recording_ffmpeg = function()
- -- Let's killall ffmpeg instance first after awesome (re)-starts if there's any
- awful.spawn.easy_async_with_shell(
- [[
- ps x | grep 'ffmpeg -video_size' | grep -v grep | awk '{print $1}' | xargs kill
- ]],
- function(stdout) end
- )
-end
-
-kill_existing_recording_ffmpeg()
-
-local turn_on_the_mic = function()
- awful.spawn.easy_async_with_shell(
- [[
- amixer set Capture cap
- amixer set Capture ]].. scripts_tbl.user_mic_lvl ..[[%
- ]],
- function() end
- )
-end
-
-local ffmpeg_stop_recording = function()
- -- Let's killall ffmpeg instance first after awesome (re)-starts if there's any
- awful.spawn.easy_async_with_shell(
- [[
- ps x | grep 'ffmpeg -video_size' | grep -v grep | awk '{print $1}' | xargs kill -2
- ]],
- function(stdout) end
- )
-end
-
-local create_notification = function(file_dir)
- local open_video = naughty.action {
- name = 'Open',
- icon_only = false,
- }
-
- local delete_video = naughty.action {
- name = 'Delete',
- icon_only = false,
- }
-
- open_video:connect_signal(
- 'invoked',
- function()
- awful.spawn('xdg-open ' .. file_dir, false)
- end
- )
-
- delete_video:connect_signal(
- 'invoked',
- function()
- awful.spawn('gio trash ' .. file_dir, false)
- end
- )
-
- naughty.notification ({
- app_name = 'Screen Recorder',
- timeout = 60,
- title = 'Recording Finished!',
- message = 'Recording can now be viewed.',
- actions = { open_video, delete_video }
- })
-end
-
-local ffmpeg_start_recording = function(audio, filename)
- local add_audio_str = ' '
-
- if audio then
- turn_on_the_mic()
- add_audio_str = '-f pulse -ac 2 -i default'
- end
-
- ffmpeg_pid = awful.spawn.easy_async_with_shell(
- [[
- file_name=]] .. filename .. [[
-
- ffmpeg -video_size ]] .. scripts_tbl.user_resolution .. [[ -framerate ]] .. scripts_tbl.user_fps .. [[ -f x11grab \
- -i :0.0+]] .. scripts_tbl.user_offset .. ' ' .. add_audio_str .. [[ -c:v libx264 -crf 20 -profile:v baseline -level 3.0 -pix_fmt yuv420p $file_name
- ]],
- function(stdout, stderr)
- if stderr and stderr:match('Invalid argument') then
- naughty.notification({
- app_name = 'Screen Recorder',
- title = 'Invalid Configuration!',
- message = 'Please, put a valid settings!',
- timeout = 60,
- urgency = 'normal'
- })
- awesome.emit_signal('widget::screen_recorder')
- return
- end
- create_notification(filename)
- end
- )
-end
-
-local create_unique_filename = function(audio)
- awful.spawn.easy_async_with_shell(
- [[
- dir="]] .. scripts_tbl.user_dir .. [["
- date=$(date '+%Y-%m-%d_%H-%M-%S')
- format=.mp4
-
- echo "${dir}${date}${format}" | tr -d '\n'
- ]],
- function(stdout)
- local filename = stdout
- ffmpeg_start_recording(audio, filename)
- end
- )
-end
-
-scripts_tbl.start_recording = function(audio_mode)
- create_save_directory()
- create_unique_filename(audio_mode)
-end
-
-scripts_tbl.stop_recording = function()
- ffmpeg_stop_recording()
-end
-
-return scripts_tbl
diff --git a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-ui-backend.lua b/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-ui-backend.lua
deleted file mode 100644
index 2b03e3112..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-ui-backend.lua
+++ /dev/null
@@ -1,454 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/screen-recorder/icons/'
-
--- The screen-recorders scripting
-local screen_rec_backend = require('widget.screen-recorder.screen-recorder-scripts')
-
--- The screen-recorder's UI
-local screen_rec_ui = require('widget.screen-recorder.screen-recorder-ui')
-
--- User Preferences
-local sr_user_resolution = screen_rec_backend.user_resolution
-local sr_user_offset = screen_rec_backend.user_offset
-local sr_user_audio = screen_rec_backend.user_audio
-local sr_user_update = screen_rec_backend.update_user_settings
-
--- Panel UIs
-local sr_toggle_imgbox = screen_rec_ui.screen_rec_toggle_imgbox
-local sr_toggle_button = screen_rec_ui.screen_rec_toggle_button
-local sr_countdown_text = screen_rec_ui.screen_rec_countdown_txt
-local sr_main_imgbox = screen_rec_ui.screen_rec_main_imgbox
-local sr_main_button = screen_rec_ui.screen_rec_main_button
-local sr_audio_imgbox = screen_rec_ui.screen_rec_audio_imgbox
-local sr_audio_button = screen_rec_ui.screen_rec_audio_button
-local sr_settings_button = screen_rec_ui.screen_rec_settings_button
-local sr_close_button = screen_rec_ui.screen_rec_close_button
-
-
--- Settings UIs
-local sr_back_button = screen_rec_ui.screen_rec_back_button
-local sr_resolution_box = screen_rec_ui.screen_rec_res_txtbox
-local sr_offset_box = screen_rec_ui.screen_rec_offset_txtbox
-local sr_resolution_tbox = sr_resolution_box:get_children_by_id('res_tbox')[1]
-local sr_offset_tbox = sr_offset_box:get_children_by_id('offset_tbox')[1]
-
-
--- Main Scripts
-local sr_start_recording = screen_rec_backend.start_recording
-local sr_stop_recording = screen_rec_backend.stop_recording
-
--- Active Screen Recorder
-local sr_screen = nil
-
--- Active textbox
-local sr_active_tbox = nil
-
-
--- Status variables
-local status_countdown = false
-local status_recording = false
-local status_audio = sr_user_audio
-
-
--- Update UI on startup using the user config
-sr_resolution_tbox:set_markup('' .. sr_user_resolution .. "")
-sr_offset_tbox:set_markup('' .. sr_user_offset .. "")
-
-local sr_res_default_markup = sr_resolution_tbox:get_markup()
-local sr_offset_default_markup = sr_offset_tbox:get_markup()
-
-
-if status_audio then
- sr_audio_button.bg = '#EE4F84' .. '66'
-else
- sr_audio_button.bg = beautiful.groups_bg
-end
-
--- Textbox ui manipulators
-local emphasize_inactive_tbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_box.shape_border_width = dpi(0)
- sr_resolution_box.shape_border_color = beautiful.transparent
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_box.shape_border_width = dpi(0)
- sr_offset_box.shape_border_color = beautiful.transparent
- end
- sr_active_tbox = nil
-end
-
-local emphasize_active_tbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_box.border_width = dpi(1)
- sr_resolution_box.border_color = '#F2F2F2AA'
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_box.border_width = dpi(1)
- sr_offset_box.border_color = '#F2F2F2AA'
- end
-end
-
--- Delete, reset and write to the textbox
-local write_to_textbox = function(char)
- if sr_active_tbox == 'res_tbox' and (char:match('%d') or char == 'x') then
- if sr_resolution_tbox:get_markup() == sr_res_default_markup then
- sr_resolution_tbox:set_text('')
- end
- if tonumber(#sr_resolution_tbox:get_text()) <= 8 then
- sr_resolution_tbox:set_text(sr_resolution_tbox:get_text() .. char)
- end
- elseif sr_active_tbox == 'offset_tbox' and (char:match('%d') or char == ',') then
- if sr_offset_tbox:get_markup() == sr_offset_default_markup then
- sr_offset_tbox:set_text('')
- end
- sr_offset_tbox:set_text(sr_offset_tbox:get_text() .. char)
- end
-end
-
-local reset_textbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_tbox:set_markup(sr_res_default_markup)
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_tbox:set_markup(sr_offset_default_markup)
- end
- emphasize_inactive_tbox()
-end
-
--- Set audio mode
-local sr_audio_mode = function()
- if not status_recording and not status_countdown then
- if status_audio then
- status_audio = false
- sr_audio_button.bg = beautiful.groups_bg
- else
- status_audio = true
- sr_audio_button.bg = '#EE4F84' .. '66'
- end
- end
-end
-
-local delete_key = function()
- if sr_active_tbox == 'res_tbox' then
- if tonumber(#sr_resolution_tbox:get_text()) == 1 then
- reset_textbox()
- return
- end
- sr_resolution_tbox:set_text(sr_resolution_tbox:get_text():sub(1, -2))
- elseif sr_active_tbox == 'offset_tbox' then
- if tonumber(#sr_offset_tbox:get_text()) == 1 then
- reset_textbox()
- return
- end
- sr_offset_tbox:set_text(sr_offset_tbox:get_text():sub(1, -2))
- end
-end
-
-local apply_new_settings = function()
-
- -- Get the text on texbox
- sr_user_resolution = sr_resolution_tbox:get_text()
- sr_user_offset = sr_offset_tbox:get_text()
-
- -- Apply new settings
- sr_user_update(sr_user_resolution, sr_user_offset, status_audio)
-
- -- Debugger
- screen_rec_backend.check_settings()
-end
-
--- Settings Key grabber
-local settings_updater = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 'BackSpace' then
- delete_key()
- end
- end,
- keyreleased_callback = function(self, mod, key, command)
- if key == 'Return' then
- apply_new_settings()
- self:stop()
- end
-
- if key == 'Escape' then
- self:stop()
- reset_textbox()
- end
-
- if key:match('%d') or key == 'x' or key == ',' then
- write_to_textbox(key)
- end
-
- end
-}
-
--- Textboxes
-sr_resolution_tbox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- emphasize_inactive_tbox()
- sr_active_tbox = 'res_tbox'
- emphasize_active_tbox()
- settings_updater:start()
- end
- )
- )
-)
-
-sr_offset_tbox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- emphasize_inactive_tbox()
- sr_active_tbox = 'offset_tbox'
- emphasize_active_tbox()
- settings_updater:start()
- end
- )
- )
-)
-
--- UI switcher
-local sr_navigation_reset = function()
- if sr_screen then
- local recorder_panel = sr_screen:get_children_by_id('recorder_panel')[1]
- local recorder_settings = sr_screen:get_children_by_id('recorder_settings')[1]
- recorder_settings.visible = false
- recorder_panel.visible = true
- end
-end
-
-local sr_navigation = function()
- if sr_screen then
- local recorder_panel = sr_screen:get_children_by_id('recorder_panel')[1]
- local recorder_settings = sr_screen:get_children_by_id('recorder_settings')[1]
- if recorder_panel.visible then
- recorder_panel.visible = false
- recorder_settings.visible = true
- else
- recorder_settings.visible = false
- recorder_panel.visible = true
- end
- end
-end
-
-sr_settings_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- if not status_recording and not status_countdown then
- sr_navigation()
- end
- end
- )
- )
-)
-
-sr_back_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
-
- -- Save settings
- apply_new_settings()
-
- -- Reset textbox UI
- emphasize_inactive_tbox()
-
- -- Go back to UI Panel
- sr_navigation()
- end
- )
- )
-)
-
--- Close button functions and buttons
-local screen_rec_close = function()
-
- for s in screen do
- s.recorder_screen.visible = false
- end
- settings_updater:stop()
- sr_navigation_reset()
- sr_screen = nil
-end
-
-sr_close_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- screen_rec_close()
- end
- )
- )
-)
-
--- Right click to exit
-local screen_close_on_rmb = function(widget)
- widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 3,
- nil,
- function()
- screen_rec_close()
- end
- )
- )
- )
-end
-
--- Open recorder screen
-sr_toggle_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- for s in screen do
- s.recorder_screen.visible = false
- end
- sr_screen = awful.screen.focused().recorder_screen
- screen_close_on_rmb(sr_screen)
- sr_screen.visible = not sr_screen.visible
- end
- )
- )
-)
-
--- Start Recording
-local sr_recording_start = function()
- status_countdown = false
- status_recording = true
- local sr_screen = awful.screen.focused().recorder_screen
-
- -- Hide recorder screen
- sr_screen.visible = false
-
- -- Manipulate UIs
- sr_toggle_imgbox:set_image(widget_icon_dir .. 'recording-button' .. '.svg')
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-on' .. '.svg')
-
- sr_start_recording(status_audio)
-end
-
--- Stop Recording
-local sr_recording_stop = function()
- status_recording = false
- status_audio = false
-
- -- Manipulate UIs
- sr_toggle_imgbox:set_image(widget_icon_dir .. 'start-recording-button' .. '.svg')
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-off' .. '.svg')
- sr_stop_recording()
-end
-
-awesome.connect_signal(
- 'widget::screen_recorder',
- function()
- sr_recording_stop()
- end
-)
-
--- Countdown timer functions
-local countdown_timer = nil
-local counter_timer = function()
- status_countdown = true
- local seconds = 3
- countdown_timer = gears.timer.start_new(
- 1,
- function()
- if seconds == 0 then
- sr_countdown_text.opacity = 0.0
-
- -- Start recording function
- sr_recording_start()
- sr_countdown_text:emit_signal('widget::redraw_needed')
- return false
- else
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-countdown' .. '.svg')
- sr_countdown_text.opacity = 1.0
- sr_countdown_text:set_text(tostring(seconds))
- sr_countdown_text:emit_signal('widget::redraw_needed')
- end
- seconds = seconds - 1
- return true
- end
- )
-end
-
--- Stop Countdown timer
-local sr_countdown_stop = function()
- countdown_timer:stop()
- status_countdown = false
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-off' .. '.svg')
- sr_countdown_text.opacity = 0.0
- sr_countdown_text:emit_signal('widget::redraw_needed')
-end
-
-sr_audio_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- sr_audio_mode()
- end
- )
- )
-)
-
--- Main button functions and buttons
-local status_checker = function()
- if status_recording and not status_countdown then
-
- -- Stop recording
- sr_recording_stop()
- return
- elseif not status_recording and status_countdown then
-
- -- Stop timer
- sr_countdown_stop()
- return
- end
-
- -- Start counting down
- counter_timer()
-end
-
-sr_main_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- status_checker()
- end
- )
- )
-)
diff --git a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-ui.lua b/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-ui.lua
deleted file mode 100644
index c877d8987..000000000
--- a/config/awesome/gnawesome/widget/screen-recorder/screen-recorder-ui.lua
+++ /dev/null
@@ -1,343 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/screen-recorder/icons/'
-local record_tbl = {}
-
--- Panel UI
-record_tbl.screen_rec_toggle_imgbox = wibox.widget {
- image = widget_icon_dir .. 'start-recording-button' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_toggle_button = wibox.widget {
- {
- record_tbl.screen_rec_toggle_imgbox,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-record_tbl.screen_rec_countdown_txt = wibox.widget {
- id = 'countdown_text',
- font = 'Inter Bold 64',
- text = '4',
- align = 'center',
- valign = 'bottom',
- opacity = 0.0,
- widget = wibox.widget.textbox
-}
-
-record_tbl.screen_rec_main_imgbox = wibox.widget {
- image = widget_icon_dir .. 'recorder-off' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_main_button = wibox.widget {
- {
- {
- {
- record_tbl.screen_rec_main_imgbox,
- margins = dpi(24),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(200),
- forced_height = dpi(200),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- margins = dpi(24),
- widget = wibox.container.margin
-}
-
-record_tbl.screen_rec_audio_imgbox = wibox.widget {
- image = widget_icon_dir .. 'audio' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_audio_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_audio_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_close_imgbox = wibox.widget {
- image = widget_icon_dir .. 'close-screen' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_close_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_close_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_settings_imgbox = wibox.widget {
- image = widget_icon_dir .. 'settings' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_settings_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_settings_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_back_imgbox = wibox.widget {
- image = widget_icon_dir .. 'back' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_back_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_back_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(48),
- forced_height = dpi(48),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_back_txt = wibox.widget {
- {
- text = 'Back',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-
-}
-
-record_tbl.screen_rec_res_txt = wibox.widget {
- {
- text = 'Resolution',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-
-}
-
-record_tbl.screen_rec_res_txtbox = wibox.widget {
- {
- {
- {
- id = 'res_tbox',
- markup = '' .. '1366x768' .. "",
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_offset_txt = wibox.widget {
- {
- text = 'Offset',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-}
-
-record_tbl.screen_rec_offset_txtbox = wibox.widget {
- {
- {
- {
- id = 'offset_tbox',
- markup = '' .. '0,0' .. "",
- font = 'Inter Bold 16',
- ellipsize = 'start',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-screen.connect_signal("request::desktop_decoration", function(s)
-
- s.recorder_screen = wibox
- ({
- ontop = true,
- screen = s,
- type = 'dock',
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- })
-
- s.recorder_screen : setup {
- layout = wibox.layout.stack,
- {
- id = 'recorder_panel',
- visible = true,
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- record_tbl.screen_rec_countdown_txt,
- {
- layout = wibox.layout.align.horizontal,
- record_tbl.screen_rec_settings_button,
- record_tbl.screen_rec_main_button,
- record_tbl.screen_rec_audio_button
- },
- record_tbl.screen_rec_close_button,
- },
- nil
-
- },
- nil
- },
- {
- id = 'recorder_settings',
- visible = false,
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- forced_width = dpi(240),
- spacing = dpi(10),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- record_tbl.screen_rec_back_button,
- record_tbl.screen_rec_back_txt,
- },
- record_tbl.screen_rec_res_txt,
- record_tbl.screen_rec_res_txtbox,
- record_tbl.screen_rec_offset_txt,
- record_tbl.screen_rec_offset_txtbox
- },
- nil
-
- },
- nil
- }
- }
-
-end)
-
-return record_tbl
diff --git a/config/awesome/gnawesome/widget/search-apps/init.lua b/config/awesome/gnawesome/widget/search-apps/init.lua
deleted file mode 100644
index d056e1929..000000000
--- a/config/awesome/gnawesome/widget/search-apps/init.lua
+++ /dev/null
@@ -1,49 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local apps = require('configuration.apps')
-local icons = require('theme.icons')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.menu,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.rofi_appmenu, false)
- end
- )
- )
- )
-
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/gnawesome/widget/tag-list/init.lua b/config/awesome/gnawesome/widget/tag-list/init.lua
deleted file mode 100644
index a59c6a21f..000000000
--- a/config/awesome/gnawesome/widget/tag-list/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, tb, bgb, tbm, ibm, l, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(16),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- ib,
- margins = dpi(10),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- bg_clickable = clickable_container()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- -- l:add(tbm)
- bg_clickable:set_widget(l)
-
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- bgb:buttons(create_buttons(buttons, o))
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = icon
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tag_list = function(s)
- return awful.widget.taglist(
- s,
- awful.widget.taglist.filter.all,
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function(t)
- t:view_only()
- end
- ),
- awful.button(
- {modkey},
- 1,
- function(t)
- if _G.client.focus then
- _G.client.focus:move_to_tag(t)
- t:view_only()
- end
- end
- ),
- awful.button({}, 3, awful.tag.viewtoggle),
- awful.button(
- {modkey},
- 3,
- function(t)
- if _G.client.focus then
- _G.client.focus:toggle_tag(t)
- end
- end
- ),
- awful.button(
- {},
- 4,
- function(t)
- awful.tag.viewprev(t.screen)
- end
- ),
- awful.button(
- {},
- 5,
- function(t)
- awful.tag.viewnext(t.screen)
- end
- )
- ),
- {},
- list_update,
- wibox.layout.fixed.horizontal()
- )
-end
-return tag_list
diff --git a/config/awesome/gnawesome/widget/task-list/init.lua b/config/awesome/gnawesome/widget/task-list/init.lua
deleted file mode 100644
index 9bf921ed7..000000000
--- a/config/awesome/gnawesome/widget/task-list/init.lua
+++ /dev/null
@@ -1,232 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local gears = require('gears')
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- Update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, cb, tb, cbm, bgb, tbm, ibm, tt, l, ll, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- tt = cache.tt
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- cb = wibox.widget {
- {
- {
- image = icons.close,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
- cb.shape = gears.shape.circle
- cbm = wibox.widget {
- -- 4, 8 ,12 ,12 -- close button
- cb,
- left = dpi(4),
- right = dpi(8),
- top = dpi(4),
- bottom = dpi(4),
- widget = wibox.container.margin
- }
- cbm:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- o:kill()
- end
- )
- )
- )
- bg_clickable = clickable_container()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(4),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- -- 12 top bottom
- ib,
- left = dpi(6),
- right = dpi(6),
- top = dpi(6),
- bottom = dpi(6),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- ll = wibox.layout.fixed.horizontal()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- l:add(tbm)
- ll:add(l)
- ll:add(cbm)
-
- bg_clickable:set_widget(ll)
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- l:buttons(create_buttons(buttons, o))
-
- -- Tooltip to display whole title, if it was truncated
- tt = awful.tooltip({
- objects = {tb},
- mode = 'outside',
- align = 'bottom',
- delay_show = 1,
- })
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm,
- tt = tt
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- -- Truncate when title is too long
- local text_only = text:match('>(.-)<')
- if (utf8.len(text_only) > 24) then
- text = text:gsub('>(.-)<', '>' .. string.sub(text_only, 1, utf8.offset(text_only,22) - 1) .. '...<')
- tt:set_text(text_only)
- tt:add_to_object(tb)
- else
- tt:remove_from_object(tb)
- end
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = gears.surface(icon)
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tasklist_buttons = awful.util.table.join(
- awful.button(
- {},
- 1,
- function(c)
- if c == client.focus then
- c.minimized = true
- else
- -- Without this, the following
- -- :isvisible() makes no sense
- c.minimized = false
- if not c:isvisible() and c.first_tag then
- c.first_tag:view_only()
- end
- -- This will also un-minimize
- -- the client, if needed
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- ),
- awful.button(
- {},
- 2,
- function(c)
- c:kill()
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.client.focus.byidx(1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.client.focus.byidx(-1)
- end
- )
-)
-
-local task_list = function(s)
- return awful.widget.tasklist(
- s,
- awful.widget.tasklist.filter.currenttags,
- tasklist_buttons,
- {},
- list_update,
- wibox.layout.fixed.horizontal()
- )
-end
-
-return task_list
diff --git a/config/awesome/gnawesome/widget/temperature-meter/init.lua b/config/awesome/gnawesome/widget/temperature-meter/init.lua
deleted file mode 100644
index ca59e9b99..000000000
--- a/config/awesome/gnawesome/widget/temperature-meter/init.lua
+++ /dev/null
@@ -1,88 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local slider = wibox.widget {
- nil,
- {
- id = 'temp_status',
- max_value = 100,
- value = 29,
- forced_height = dpi(2),
- color = beautiful.fg_normal,
- background_color = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local max_temp = 80
-
-awful.spawn.easy_async_with_shell(
- [[
- temp_path=null
- for i in /sys/class/hwmon/hwmon*/temp*_input;
- do
- temp_path="$(echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null ||
- echo $(basename ${i%_*})) $(readlink -f $i)");"
-
- label="$(echo $temp_path | awk '{print $2}')"
-
- if [ "$label" = "Package" ];
- then
- echo ${temp_path} | awk '{print $5}' | tr -d ';\n'
- exit;
- fi
- done
- ]],
- function(stdout)
- local temp_path = stdout:gsub('%\n', '')
- if temp_path == '' or not temp_path then
- temp_path = '/sys/class/thermal/thermal_zone0/temp'
- end
-
- watch(
- [[
- sh -c "cat ]] .. temp_path .. [["
- ]],
- 10,
- function(_, stdout)
- local temp = stdout:match('(%d+)')
- slider.temp_status:set_value((temp / 1000) / max_temp * 100)
- collectgarbage('collect')
- end
- )
- end
-)
-
-local temperature_meter = wibox.widget {
- {
- {
- {
- image = icons.thermometer,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return temperature_meter
diff --git a/config/awesome/gnawesome/widget/tray-toggle/icons/left-arrow.svg b/config/awesome/gnawesome/widget/tray-toggle/icons/left-arrow.svg
deleted file mode 100644
index f0e76e512..000000000
--- a/config/awesome/gnawesome/widget/tray-toggle/icons/left-arrow.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/tray-toggle/icons/right-arrow.svg b/config/awesome/gnawesome/widget/tray-toggle/icons/right-arrow.svg
deleted file mode 100644
index 74464241f..000000000
--- a/config/awesome/gnawesome/widget/tray-toggle/icons/right-arrow.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/tray-toggle/init.lua b/config/awesome/gnawesome/widget/tray-toggle/init.lua
deleted file mode 100644
index 76af98d7f..000000000
--- a/config/awesome/gnawesome/widget/tray-toggle/init.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/tray-toggle/icons/'
-
-local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'right-arrow' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('widget::systray:toggle')
- end
- )
- )
-)
-
--- Listen to signal
-awesome.connect_signal(
- 'widget::systray:toggle',
- function()
- if screen.primary.systray then
-
- if not screen.primary.systray.visible then
-
- widget.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'left-arrow.svg'))
- else
-
- widget.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'right-arrow.svg'))
- end
-
- screen.primary.systray.visible = not screen.primary.systray.visible
- end
- end
-)
-
--- Update icon on start-up
-if screen.primary.systray then
- if screen.primary.systray.visible then
- widget.icon:set_image(widget_icon_dir .. 'right-arrow' .. '.svg')
- end
-end
-
--- Show only the tray button in the primary screen
-return awful.widget.only_on_screen(widget_button, 'primary')
diff --git a/config/awesome/gnawesome/widget/user-profile/init.lua b/config/awesome/gnawesome/widget/user-profile/init.lua
deleted file mode 100644
index 6151a7609..000000000
--- a/config/awesome/gnawesome/widget/user-profile/init.lua
+++ /dev/null
@@ -1,239 +0,0 @@
--- User profile widget
--- Optional dependency:
--- mugshot (use to update profile picture and information)
-
-
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local user_icon_dir = '/var/lib/AccountsService/icons/'
-
-title_table = {
- 'Hey, I have a message for you',
- 'Listen here you little shit!',
- 'Le\' me tell you a secret',
- 'I never lie',
- 'Message received from your boss'
-}
-
-message_table = {
- 'Let me rate your face! Oops... It looks like I can\'t compute negative numbers. You\'re ugly af, sorry',
- 'Lookin\' good today, now fuck off!',
- 'The last thing I want to do is hurt you. But it’s still on the list.',
- 'If I agreed with you we’d both be wrong.',
- 'I intend to live forever. So far, so good.',
- 'Jesus loves you, but everyone else thinks you’re an asshole.',
- 'Your baby is so ugly, you should have thrown it away and kept the stork.',
- 'If your brain was dynamite, there wouldn’t be enough to blow your hat off.',
- 'You are more disappointing than an unsalted pretzel.',
- 'Your kid is so ugly, he makes his Happy Meal cry.',
- 'Your secrets are always safe with me. I never even listen when you tell me them.',
- 'I only take you everywhere I go just so I don’t have to kiss you goodbye.',
- 'You look so pretty. Not at all gross, today.',
- 'It’s impossible to underestimate you.',
- 'I’m not insulting you, I’m describing you.',
- 'Keep rolling your eyes, you might eventually find a brain.',
- 'You bring everyone so much joy, when you leave the room.',
- 'I thought of you today. It reminded me to take out the trash.',
- 'You are the human version of period cramps.',
- 'You’re the reason God created the middle finger.'
-}
-
-local profile_imagebox = wibox.widget {
- {
- id = 'icon',
- forced_height = dpi(45),
- forced_width = dpi(45),
- image = widget_icon_dir .. 'default.svg',
- widget = wibox.widget.imagebox,
- resize = true,
- clip_shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end
- },
- layout = wibox.layout.align.horizontal
-}
-
-profile_imagebox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.single_instance('mugshot')
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- naughty.notification({
- app_name = 'FBI\'s ChatBot v69',
- title = title_table[math.random(#title_table)],
- message = message_table[math.random(#message_table)] ..
- '\n\n- xXChatBOT69Xx',
- urgency = 'normal'
- })
- end
- )
- )
-)
-
-local profile_name = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'User',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local distro_name = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'GNU/Linux',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local kernel_version = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Linux',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local uptime_time = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'up 1 minute',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local update_profile_image = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox.icon:set_image(stdout)
- else
- profile_imagebox.icon:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
-end
-
-update_profile_image()
-
-awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- local stdout = stdout:gsub('%\n', '')
- profile_name:set_markup(stdout)
- end
-)
-
-awful.spawn.easy_async_with_shell(
- [[
- cat /etc/os-release | awk 'NR==1'| awk -F '"' '{print $2}'
- ]],
- function(stdout)
- local distroname = stdout:gsub('%\n', '')
- distro_name:set_markup(distroname)
- end
-)
-
-awful.spawn.easy_async_with_shell(
- 'uname -r',
- function(stdout)
- local kname = stdout:gsub('%\n', '')
- kernel_version:set_markup(kname)
- end
-)
-
-local update_uptime = function()
- awful.spawn.easy_async_with_shell(
- 'uptime -p',
- function(stdout)
- local uptime = stdout:gsub('%\n','')
- uptime_time:set_markup(uptime)
- end
- )
-end
-
-local uptime_updater_timer = gears.timer{
- timeout = 60,
- autostart = true,
- call_now = true,
- callback = function()
- update_uptime()
- end
-}
-
-local user_profile = wibox.widget {
- {
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- profile_name,
- distro_name,
- kernel_version,
- uptime_time
- },
- nil
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(92),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-
-}
-
-user_profile:connect_signal(
- 'mouse::enter',
- function()
- update_uptime()
- end
-)
-
-return user_profile
diff --git a/config/awesome/gnawesome/widget/volume-slider/init.lua b/config/awesome/gnawesome/widget/volume-slider/init.lua
deleted file mode 100644
index 101772d95..000000000
--- a/config/awesome/gnawesome/widget/volume-slider/init.lua
+++ /dev/null
@@ -1,180 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- icon,
- widget = clickable_container,
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'volume_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider,
- },
- nil,
- forced_height = dpi(24),
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-
-local volume_slider = slider.volume_slider
-
-volume_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = volume_slider:get_value()
-
- spawn('amixer -D pulse sset Master ' ..
- volume_level .. '%',
- false
- )
-
- -- Update volume osd
- awesome.emit_signal(
- 'module::volume_osd',
- volume_level
- )
- end
-)
-
-volume_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if volume_slider:get_value() > 100 then
- volume_slider:set_value(100)
- return
- end
- volume_slider:set_value(volume_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if volume_slider:get_value() < 0 then
- volume_slider:set_value(0)
- return
- end
- volume_slider:set_value(volume_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "amixer -D pulse sget Master"]],
- function(stdout)
- local volume = string.match(stdout, '(%d?%d?%d)%%')
- volume_slider:set_value(tonumber(volume))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = volume_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- volume_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::volume',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::volume:update',
- function(value)
- volume_slider:set_value(tonumber(value))
- end
-)
-
-local volume_setting = wibox.widget {
- {
- {
- action_level,
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- slider,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
-}
-
-return volume_setting
diff --git a/config/awesome/gnawesome/widget/weather/icons/d_rain.svg b/config/awesome/gnawesome/widget/weather/icons/d_rain.svg
deleted file mode 100644
index 44cacc1bb..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/d_rain.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/dbroken_clouds.svg b/config/awesome/gnawesome/widget/weather/icons/dbroken_clouds.svg
deleted file mode 100644
index 8fa80050a..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/dbroken_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/dfew_clouds.svg b/config/awesome/gnawesome/widget/weather/icons/dfew_clouds.svg
deleted file mode 100644
index a4f1fd380..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/dfew_clouds.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/dmist.svg b/config/awesome/gnawesome/widget/weather/icons/dmist.svg
deleted file mode 100644
index b23f3bf05..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/dmist.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/dscattered_clouds.svg b/config/awesome/gnawesome/widget/weather/icons/dscattered_clouds.svg
deleted file mode 100644
index 9c0ebcb26..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/dscattered_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/dshower_rain.svg b/config/awesome/gnawesome/widget/weather/icons/dshower_rain.svg
deleted file mode 100644
index 3a8800480..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/dshower_rain.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/dthunderstorm.svg b/config/awesome/gnawesome/widget/weather/icons/dthunderstorm.svg
deleted file mode 100644
index 10375e470..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/dthunderstorm.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/moon_icon.svg b/config/awesome/gnawesome/widget/weather/icons/moon_icon.svg
deleted file mode 100644
index b9e5c3a7d..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/moon_icon.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/n_rain.svg b/config/awesome/gnawesome/widget/weather/icons/n_rain.svg
deleted file mode 100644
index 3ba466aad..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/n_rain.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/nbroken_clouds.svg b/config/awesome/gnawesome/widget/weather/icons/nbroken_clouds.svg
deleted file mode 100644
index d462c33ec..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/nbroken_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/nfew_clouds.svg b/config/awesome/gnawesome/widget/weather/icons/nfew_clouds.svg
deleted file mode 100644
index 74575eed5..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/nfew_clouds.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/nmist.svg b/config/awesome/gnawesome/widget/weather/icons/nmist.svg
deleted file mode 100644
index 34d0e41b2..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/nmist.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/nscattered_clouds.svg b/config/awesome/gnawesome/widget/weather/icons/nscattered_clouds.svg
deleted file mode 100644
index 007e66b4b..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/nscattered_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/nshower_rain.svg b/config/awesome/gnawesome/widget/weather/icons/nshower_rain.svg
deleted file mode 100644
index 50b4ebc96..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/nshower_rain.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/nthunderstorm.svg b/config/awesome/gnawesome/widget/weather/icons/nthunderstorm.svg
deleted file mode 100644
index 73f67e5c2..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/nthunderstorm.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/refresh.svg b/config/awesome/gnawesome/widget/weather/icons/refresh.svg
deleted file mode 100644
index 0eb9ef739..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/refresh.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/snow.svg b/config/awesome/gnawesome/widget/weather/icons/snow.svg
deleted file mode 100644
index f4fcc6ab2..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/snow.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/sun_icon.svg b/config/awesome/gnawesome/widget/weather/icons/sun_icon.svg
deleted file mode 100644
index 24ac40d07..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/sun_icon.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/sunrise.svg b/config/awesome/gnawesome/widget/weather/icons/sunrise.svg
deleted file mode 100644
index f0e8a477a..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/sunrise.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/sunset.svg b/config/awesome/gnawesome/widget/weather/icons/sunset.svg
deleted file mode 100644
index d60f574ef..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/sunset.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/weather/icons/weather-error.svg b/config/awesome/gnawesome/widget/weather/icons/weather-error.svg
deleted file mode 100644
index afcb33190..000000000
--- a/config/awesome/gnawesome/widget/weather/icons/weather-error.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/weather/init.lua b/config/awesome/gnawesome/widget/weather/init.lua
deleted file mode 100644
index 400d0d411..000000000
--- a/config/awesome/gnawesome/widget/weather/init.lua
+++ /dev/null
@@ -1,400 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/weather/icons/'
-local clickable_container = require('widget.clickable-container')
-local json = require('library.json')
-
-local config = require('configuration.config')
-local secrets = {
- key = config.widget.weather.key,
- city_id = config.widget.weather.city_id,
- units = config.widget.weather.units,
- update_interval = config.widget.weather.update_interval
-}
-
-local weather_icon_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'weather-error.svg',
- resize = true,
- forced_height = dpi(45),
- forced_width = dpi(45),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local sunrise_icon_widget = wibox.widget {
- {
- id = 'sunrise_icon',
- image = widget_icon_dir .. 'sunrise.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local sunset_icon_widget = wibox.widget {
- {
- id = 'sunset_icon',
- image = widget_icon_dir .. 'sunset.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local refresh_icon_widget = wibox.widget {
- {
- id = 'refresh_icon',
- image = widget_icon_dir .. 'refresh.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local refresh_button = clickable_container(refresh_icon_widget)
-refresh_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
- )
- )
-)
-
-local refresh_widget = wibox.widget {
- refresh_button,
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local weather_desc_temp = wibox.widget {
- {
- id = 'description',
- markup = 'Dust and clouds, -1000°C',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
-}
-
-local weather_location = wibox.widget {
- {
- id = 'location',
- markup = 'Earth, Milky Way',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
-}
-
-local weather_sunrise = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_sunset = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_data_time = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_forecast_tooltip = awful.tooltip {
- text = 'Loading...',
- objects = {weather_icon_widget},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
-}
-
-local weather_report = wibox.widget {
- {
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- weather_icon_widget,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- weather_location,
- weather_desc_temp,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- sunrise_icon_widget,
- weather_sunrise
- },
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- sunset_icon_widget,
- weather_sunset
- },
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- refresh_widget,
- weather_data_time
- }
- }
- },
- nil
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(92),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
--- Return weather symbol
-local get_weather_symbol = function()
- local symbol_tbl = {
- ['metric'] = '°C',
- ['imperial'] = '°F'
- }
-
- return symbol_tbl[secrets.units]
-end
-
--- Create openweathermap script based on pass mode
--- Mode must be `forecast` or `weather`
-local create_weather_script = function(mode)
- local weather_script = [[
- KEY="]] .. secrets.key .. [["
- CITY="]] .. secrets.city_id .. [["
- UNITS="]] .. secrets.units .. [["
-
- weather=$(curl -sf "http://api.openweathermap.org/data/2.5/]] .. mode ..
- [[?APPID="${KEY}"&id="${CITY}"&units="${UNITS}"")
-
- if [ ! -z "$weather" ]; then
- printf "${weather}"
- else
- printf "error"
- fi
- ]]
-
- return weather_script
-end
-
-awesome.connect_signal(
- 'widget::forecast_fetch',
- function()
- awful.spawn.easy_async_with_shell(
- create_weather_script('forecast'),
- function(stdout)
- if stdout:match('error') then
- weather_forecast_tooltip:set_markup('Can\'t retrieve data!')
- else
- local forecast_data = json.parse(stdout)
- local forecast = ''
-
- for i = 8, 40, 8 do
- local day = os.date('%A @ %H:%M', forecast_data.list[i].dt)
- local temp = math.floor(forecast_data.list[i].main.temp + 0.5)
- local feels_like = math.floor(forecast_data.list[i].main.feels_like + 0.5)
- local weather = forecast_data.list[i].weather[1].description
-
- -- Capitalize weather description
- weather = weather:sub(1, 1):upper() .. weather:sub(2)
-
- forecast = forecast .. '' .. day .. '\n' ..
- 'Weather: ' .. weather .. '\n' ..
- 'Temperature: ' .. temp .. get_weather_symbol() .. '\n' ..
- 'Feels like: ' .. feels_like .. get_weather_symbol() .. '\n\n'
-
- weather_forecast_tooltip:set_markup(forecast:sub(1, -2))
- end
- end
- end
- )
- end
-)
-
-awesome.connect_signal(
- 'widget::weather_fetch',
- function()
- awful.spawn.easy_async_with_shell(
- create_weather_script('weather'),
- function(stdout)
- if stdout:match('error') then
- awesome.emit_signal(
- 'widget::weather_update',
- '...',
- 'Dust and clouds, -1000°C',
- 'Earth, Milky Way',
- '00:00',
- '00:00',
- '00:00'
- )
- else
- -- Parse JSON string
- local weather_data = json.parse(stdout)
-
- -- Process weather data
- local location = weather_data.name
- local country = weather_data.sys.country
- local sunrise = os.date('%H:%M', weather_data.sys.sunrise)
- local sunset = os.date('%H:%M', weather_data.sys.sunset)
- local refresh = os.date('%H:%M', weather_data.dt)
- local temperature = math.floor(weather_data.main.temp + 0.5)
- local weather = weather_data.weather[1].description
- local weather_icon = weather_data.weather[1].icon
-
- -- Capitalize weather description
- local weather = weather:sub(1, 1):upper() .. weather:sub(2)
-
- -- Contantenate weather description and symbol
- local weather_description = weather .. ', ' .. temperature .. get_weather_symbol()
-
- -- Contantenate city and country
- local weather_location = location .. ', ' .. country
-
- awesome.emit_signal(
- 'widget::weather_update',
- weather_icon,
- weather_description,
- weather_location,
- sunrise,
- sunset,
- refresh
- )
- end
- end
- )
- end
-)
-
-local update_widget_timer = gears.timer {
- timeout = secrets.update_interval,
- autostart = true,
- call_now = true,
- single_shot = false,
- callback = function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
-}
-
-awesome.connect_signal(
- 'system::network_connected',
- function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
-)
-
-awesome.connect_signal(
- 'widget::weather_update',
- function(code, desc, location, sunrise, sunset, data_receive)
- local widget_icon_name = 'weather-error'
-
- local icon_tbl = {
- ['01d'] = 'sun_icon.svg',
- ['01n'] = 'moon_icon.svg',
- ['02d'] = 'dfew_clouds.svg',
- ['02n'] = 'nfew_clouds.svg',
- ['03d'] = 'dscattered_clouds.svg',
- ['03n'] = 'nscattered_clouds.svg',
- ['04d'] = 'dbroken_clouds.svg',
- ['04n'] = 'nbroken_clouds.svg',
- ['09d'] = 'dshower_rain.svg',
- ['09n'] = 'nshower_rain.svg',
- ['10d'] = 'd_rain.svg',
- ['10n'] = 'n_rain.svg',
- ['11d'] = 'dthunderstorm.svg',
- ['11n'] = 'nthunderstorm.svg',
- ['13d'] = 'snow.svg',
- ['13n'] = 'snow.svg',
- ['50d'] = 'dmist.svg',
- ['50n'] = 'nmist.svg',
- ['...'] = 'weather-error.svg'
- }
-
- widget_icon_name = icon_tbl[code]
-
- weather_icon_widget.icon:set_image(widget_icon_dir .. widget_icon_name)
- weather_icon_widget.icon:emit_signal('widget::redraw_needed')
-
- weather_desc_temp.description:set_markup(desc)
- weather_location.location:set_markup(location)
- weather_sunrise:set_markup(sunrise)
- weather_sunset:set_markup(sunset)
- weather_data_time:set_markup(data_receive)
-
- end
-)
-
-return weather_report
diff --git a/config/awesome/gnawesome/widget/xdg-folders/documents.lua b/config/awesome/gnawesome/widget/xdg-folders/documents.lua
deleted file mode 100644
index 5906a8b0d..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/documents.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local docu_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-documents' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local docu_button = wibox.widget {
- {
- docu_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- docu_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOCUMENTS)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {docu_button},
- mode = 'outside',
- align = 'right',
- text = 'Documents',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return docu_button
-end
-
-return create_widget
diff --git a/config/awesome/gnawesome/widget/xdg-folders/downloads.lua b/config/awesome/gnawesome/widget/xdg-folders/downloads.lua
deleted file mode 100644
index 02f572ba0..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/downloads.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local dl_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-download.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local downloads_button = wibox.widget {
- {
- dl_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- downloads_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOWNLOAD)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {downloads_button},
- mode = 'outside',
- align = 'right',
- text = 'Downloads',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return downloads_button
-end
-
-return create_widget
diff --git a/config/awesome/gnawesome/widget/xdg-folders/home.lua b/config/awesome/gnawesome/widget/xdg-folders/home.lua
deleted file mode 100644
index 24c38209c..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/home.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local home_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'user-home.svg',
- resize = true,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.align.horizontal
- }
-
- local home_button = wibox.widget {
- {
- home_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- home_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {home_button},
- mode = 'outside',
- align = 'right',
- text = 'Home',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return home_button
-end
-
-return create_widget
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-documents.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/folder-documents.svg
deleted file mode 100644
index e6a53e503..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-documents.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-download.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/folder-download.svg
deleted file mode 100644
index 9b75134c6..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-download.svg
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-pictures.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/folder-pictures.svg
deleted file mode 100644
index 014b5b321..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-pictures.svg
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-videos.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/folder-videos.svg
deleted file mode 100644
index 50b53df84..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/folder-videos.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/no.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/no.svg
deleted file mode 100644
index 0654b8a5b..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/no.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/open-folder.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/open-folder.svg
deleted file mode 100644
index f1f131dba..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/open-folder.svg
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/user-home.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/user-home.svg
deleted file mode 100644
index b0a083961..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/user-home.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/user-trash-empty.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/user-trash-empty.svg
deleted file mode 100644
index f4d107fbe..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/user-trash-empty.svg
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/user-trash-full.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/user-trash-full.svg
deleted file mode 100644
index 2d75d2d0a..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/user-trash-full.svg
+++ /dev/null
@@ -1,979 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/icons/yes.svg b/config/awesome/gnawesome/widget/xdg-folders/icons/yes.svg
deleted file mode 100644
index 2617c5d4f..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/icons/yes.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/gnawesome/widget/xdg-folders/init.lua b/config/awesome/gnawesome/widget/xdg-folders/init.lua
deleted file mode 100644
index ffef3af6a..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/init.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local create_xdg_widgets = function()
- local separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
- }
-
- return wibox.widget {
- layout = wibox.layout.align.horizontal,
- {
- separator,
- require('widget.xdg-folders.home')(),
- require('widget.xdg-folders.documents')(),
- require('widget.xdg-folders.downloads')(),
- -- require('widget.xdg-folders.pictures')(),
- -- require('widget.xdg-folders.videos')(),
- separator,
- -- require('widget.xdg-folders.trash')(),
- layout = wibox.layout.fixed.horizontal
- },
- }
-end
-
-return create_xdg_widgets
diff --git a/config/awesome/gnawesome/widget/xdg-folders/pictures.lua b/config/awesome/gnawesome/widget/xdg-folders/pictures.lua
deleted file mode 100644
index 2c591c2e3..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/pictures.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local pic_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-pictures.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local pic_button = wibox.widget {
- {
- pic_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- pic_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir PICTURES)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {pic_button},
- mode = 'outside',
- align = 'right',
- text = 'Pictures',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return pic_button
-end
-
-return create_widget
diff --git a/config/awesome/gnawesome/widget/xdg-folders/trash.lua b/config/awesome/gnawesome/widget/xdg-folders/trash.lua
deleted file mode 100644
index 2625e5a9c..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/trash.lua
+++ /dev/null
@@ -1,148 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local trash_widget = wibox.widget {
- {
- id = 'trash_icon',
- image = widget_icon_dir .. 'user-trash-empty.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local trash_menu = awful.menu({
- items = {
- {
- 'Open trash',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio open trash:///',
- function(stdout) end,
- 1
- )
- end,
- widget_icon_dir .. 'open-folder.svg'
- },
- {
- 'Delete forever',
- {
- {
- 'Yes',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio trash --empty',
- function(stdout)
- end,
- 1
- )
- end,
- widget_icon_dir .. 'yes.svg'
- },
- {
- 'No',
- '',
- widget_icon_dir .. 'no.svg'
- }
- },
- widget_icon_dir .. 'user-trash-empty.svg'
- },
- }
- })
-
- local trash_button = wibox.widget {
- {
- trash_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- -- Tooltip for trash_button
- trash_tooltip = awful.tooltip {
- objects = {trash_button},
- mode = 'outside',
- align = 'right',
- markup = 'Trash',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- -- Mouse event for trash_button
- trash_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn({'gio', 'open', 'trash:///'}, false)
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- trash_menu:toggle()
- trash_tooltip.visible = not trash_tooltip.visible
- end
- )
- )
- )
-
- -- Update icon on changes
- local check_trash_list = function()
- awful.spawn.easy_async_with_shell(
- 'gio list trash:/// | wc -l',
- function(stdout)
- if tonumber(stdout) > 0 then
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-full.svg')
-
- awful.spawn.easy_async_with_shell(
- 'gio list trash:///',
- function(stdout)
- trash_tooltip.markup = 'Trash contains:\n' .. stdout:gsub('\n$', '')
- end
- )
- else
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-empty.svg')
- trash_tooltip.markup = 'Trash empty'
- end
- end
- )
- end
-
- -- Check trash on awesome (re)-start
- check_trash_list()
-
- -- Kill the old process of gio monitor trash:///
- awful.spawn.easy_async_with_shell(
- 'ps x | grep \'gio monitor trash:///\' | grep -v grep | awk \'{print $1}\' | xargs kill',
- function()
- awful.spawn.with_line_callback(
- 'gio monitor trash:///',
- {
- stdout = function(_)
- check_trash_list()
- end
- }
- )
- end
- )
-
- return trash_button
-end
-
-return create_widget
diff --git a/config/awesome/gnawesome/widget/xdg-folders/videos.lua b/config/awesome/gnawesome/widget/xdg-folders/videos.lua
deleted file mode 100644
index 5c5408882..000000000
--- a/config/awesome/gnawesome/widget/xdg-folders/videos.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local vid_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-videos.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local videos_button = wibox.widget {
- {
- vid_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- videos_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir VIDEOS)')
- end
- )
- )
- )
-
- awful.tooltip
- {
- objects = {videos_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- return 'Videos'
- end,
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- return videos_button
-end
-
-return create_widget
diff --git a/config/awesome/layout/floppy/init.lua b/config/awesome/layout/floppy/init.lua
new file mode 100644
index 000000000..627717f5d
--- /dev/null
+++ b/config/awesome/layout/floppy/init.lua
@@ -0,0 +1,60 @@
+local awful = require("awful")
+local path_to_file = ...
+local left_panel = require(path_to_file .. ".left-panel")
+local top_panel = require(path_to_file .. ".top-panel")
+local right_panel = require(path_to_file .. ".right-panel")
+local theme_picker = require("widget.theme-picker")
+
+-- Create a wibox panel for each screen and add it
+screen.connect_signal("request::desktop_decoration", function(s)
+ if s.index == 1 then
+ s.left_panel = left_panel(s)
+ s.top_panel = top_panel(s, true)
+ else
+ s.top_panel = top_panel(s, false)
+ end
+ s.right_panel = right_panel(s)
+ s.right_panel_show_again = false
+ s.theme_picker = theme_picker(s)
+end)
+
+-- Hide bars when app go fullscreen
+function update_bars_visibility()
+ for s in screen do
+ if s.selected_tag then
+ local fullscreen = s.selected_tag.fullscreen_mode
+ -- Order matter here for shadow
+ s.top_panel.visible = not fullscreen
+ if s.left_panel then
+ s.left_panel.visible = not fullscreen
+ end
+ if s.right_panel then
+ if fullscreen and s.right_panel.visible then
+ s.right_panel:toggle()
+ s.right_panel_show_again = true
+ elseif not fullscreen and not s.right_panel.visible and s.right_panel_show_again then
+ s.right_panel:toggle()
+ s.right_panel_show_again = false
+ end
+ end
+ end
+ end
+end
+
+tag.connect_signal("property::selected", function(t)
+ update_bars_visibility()
+end)
+
+client.connect_signal("property::fullscreen", function(c)
+ if c.first_tag then
+ c.first_tag.fullscreen_mode = c.fullscreen
+ end
+ update_bars_visibility()
+end)
+
+client.connect_signal("unmanage", function(c)
+ if c.fullscreen then
+ c.screen.selected_tag.fullscreen_mode = false
+ update_bars_visibility()
+ end
+end)
diff --git a/config/awesome/layout/floppy/left-panel/action-bar.lua b/config/awesome/layout/floppy/left-panel/action-bar.lua
new file mode 100755
index 000000000..4adf7fa9d
--- /dev/null
+++ b/config/awesome/layout/floppy/left-panel/action-bar.lua
@@ -0,0 +1,66 @@
+local awful = require("awful")
+local beautiful = require("beautiful")
+local wibox = require("wibox")
+local gears = require("gears")
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme." .. THEME .. ".icons")
+local tag_list = require("widget.tag-list")
+local clickable_container = require("widget.clickable-container")
+local search_apps = require("widget.search-apps")
+local xdg_folders_builder = require("widget.xdg-folders.builder")
+
+return function(s, panel, action_bar_width)
+ local menu_icon = wibox.widget({
+ {
+ id = "menu_btn",
+ image = icons.menu,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ })
+
+ local open_dashboard_button = wibox.widget({
+ {
+ menu_icon,
+ widget = clickable_container,
+ },
+ bg = beautiful.background .. "66",
+ widget = wibox.container.background,
+ })
+
+ open_dashboard_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ panel:toggle()
+ end)))
+
+ panel:connect_signal("opened", function()
+ menu_icon.menu_btn:set_image(gears.surface(icons.close_small))
+ end)
+
+ panel:connect_signal("closed", function()
+ menu_icon.menu_btn:set_image(gears.surface(icons.menu))
+ end)
+
+ return wibox.widget({
+ id = "action_bar",
+ layout = wibox.layout.align.vertical,
+ forced_width = action_bar_width,
+ {
+ search_apps(),
+ tag_list(s),
+ xdg_folders_builder
+ :with_separator()
+ :with_home()
+ :with_downloads()
+ :with_documents()
+ :with_separator()
+ :with_trash()
+ :vertical()
+ :build(),
+ layout = wibox.layout.fixed.vertical,
+ },
+ nil,
+ open_dashboard_button,
+ })
+end
diff --git a/config/awesome/layout/floppy/left-panel/dashboard/hardware-monitor.lua b/config/awesome/layout/floppy/left-panel/dashboard/hardware-monitor.lua
new file mode 100644
index 000000000..6156b9f71
--- /dev/null
+++ b/config/awesome/layout/floppy/left-panel/dashboard/hardware-monitor.lua
@@ -0,0 +1,50 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+
+local hardware_header = wibox.widget({
+ text = "Hardware Monitor",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+local create_meter = require("widget.meters")
+local cpu_meter = create_meter("cpu")
+local ram_meter = create_meter("ram")
+local temperature_meter = create_meter("temperature")
+local harddrive_meter = create_meter("disk")
+
+return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ {
+ {
+ hardware_header,
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
+ end,
+ forced_height = dpi(35),
+ widget = wibox.container.background,
+ },
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ cpu_meter,
+ ram_meter,
+ temperature_meter,
+ harddrive_meter,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+})
diff --git a/config/awesome/layout/floppy/left-panel/dashboard/init.lua b/config/awesome/layout/floppy/left-panel/dashboard/init.lua
new file mode 100644
index 000000000..eda9e2b8b
--- /dev/null
+++ b/config/awesome/layout/floppy/left-panel/dashboard/init.lua
@@ -0,0 +1,74 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local icons = require("theme.icons")
+local path_to_file = ...
+local hardware_monitor = require(path_to_file .. ".hardware-monitor")
+local quick_settings = require(path_to_file .. ".quick-settings")
+local end_session = require("widget.end-session-footer")
+
+return function(_, panel)
+ local search_widget = wibox.widget({
+ {
+ {
+ {
+ image = icons.search,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ top = dpi(12),
+ bottom = dpi(12),
+ widget = wibox.container.margin,
+ },
+ {
+ text = "Global Search",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ },
+ spacing = dpi(24),
+ layout = wibox.layout.fixed.horizontal,
+ },
+ left = dpi(24),
+ right = dpi(24),
+ forced_height = dpi(48),
+ widget = wibox.container.margin,
+ })
+
+ search_button = wibox.widget({
+ {
+ search_widget,
+ widget = clickable_container,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+
+ search_button:buttons(awful.util.table.join(awful.button({}, 1, function()
+ panel:run_rofi()
+ end)))
+
+ return wibox.widget({
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ search_button,
+ hardware_monitor,
+ quick_settings,
+ },
+ nil,
+ end_session(),
+ layout = wibox.layout.align.vertical,
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ })
+end
diff --git a/config/awesome/layout/floppy/left-panel/dashboard/quick-settings.lua b/config/awesome/layout/floppy/left-panel/dashboard/quick-settings.lua
new file mode 100644
index 000000000..d80efaef3
--- /dev/null
+++ b/config/awesome/layout/floppy/left-panel/dashboard/quick-settings.lua
@@ -0,0 +1,78 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local bar_color = beautiful.groups_bg
+local dpi = beautiful.xresources.apply_dpi
+local toggles = require("widget.toggles")
+
+local quick_header = wibox.widget({
+ text = "Quick Settings",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+local brightness_slider = require("widget.brightness-slider")
+local volume_slider = require("widget.volume-slider")
+local blur_slider = require("widget.blur-slider")
+return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ {
+ layout = wibox.layout.fixed.vertical,
+ {
+ {
+ quick_header,
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ },
+ forced_height = dpi(35),
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ brightness_slider,
+ volume_slider,
+ toggles.airplane_mode.basic,
+ toggles.bluetooth.basic,
+ toggles.blue_light.basic,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(
+ cr,
+ width,
+ height,
+ false,
+ false,
+ true,
+ true,
+ beautiful.groups_radius
+ )
+ end,
+ widget = wibox.container.background,
+ },
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ blur_slider,
+ toggles.blur_effects.basic,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ },
+ },
+})
diff --git a/config/awesome/layout/floppy/left-panel/init.lua b/config/awesome/layout/floppy/left-panel/init.lua
new file mode 100644
index 000000000..6f45369aa
--- /dev/null
+++ b/config/awesome/layout/floppy/left-panel/init.lua
@@ -0,0 +1,144 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local apps = require("configuration.apps")
+local path_to_file = ...
+local left_panel_action_bar = require(path_to_file .. ".action-bar")
+local left_panel_dashboard = require(path_to_file .. ".dashboard")
+local lgi = require("lgi")
+
+local left_panel = function(screen)
+ local action_bar_width = dpi(45)
+ local panel_content_width = dpi(350)
+
+ local panel = wibox({
+ screen = screen,
+ width = action_bar_width,
+ type = "dock",
+ height = screen.geometry.height,
+ x = screen.geometry.x,
+ y = screen.geometry.y,
+ ontop = true,
+ shape = gears.shape.rectangle,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel.opened = false
+
+ panel:struts({
+ left = action_bar_width,
+ })
+
+ local backdrop = wibox({
+ ontop = true,
+ screen = screen,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = screen.geometry.x,
+ y = screen.geometry.y,
+ width = screen.geometry.width,
+ height = screen.geometry.height,
+ })
+
+ function panel:run_rofi()
+ awesome.spawn(apps.default.rofi_global, false, false, false, false, function()
+ panel:toggle()
+ end)
+
+ -- Hide panel content if rofi global search is opened
+ panel:get_children_by_id("panel_content")[1].visible = false
+ end
+
+ -- "Punch a hole" on backdrop to show the left dashboard
+ local update_backdrop = function(wibox_backdrop, wibox_panel)
+ local cairo = lgi.cairo
+ local geo = wibox_panel.screen.geometry
+
+ wibox_backdrop.x = geo.x
+ wibox_backdrop.y = geo.y
+ wibox_backdrop.width = geo.width
+ wibox_backdrop.height = geo.height
+
+ -- Create an image surface that is as large as the wibox_panel screen
+ local shape = cairo.ImageSurface.create(cairo.Format.A1, geo.width, geo.height)
+ local cr = cairo.Context(shape)
+
+ -- Fill with "completely opaque"
+ cr.operator = "SOURCE"
+ cr:set_source_rgba(1, 1, 1, 1)
+ cr:paint()
+
+ -- Remove the shape of the client
+ local c_geo = wibox_panel:geometry()
+ local c_shape = gears.surface(wibox_panel.shape_bounding)
+ cr:set_source_rgba(0, 0, 0, 0)
+ cr:mask_surface(c_shape, c_geo.x + wibox_panel.border_width - geo.x, c_geo.y + wibox_panel.border_width - geo.y)
+ c_shape:finish()
+
+ wibox_backdrop.shape_bounding = shape._native
+ shape:finish()
+
+ wibox_backdrop:draw()
+ end
+
+ local open_panel = function(should_run_rofi)
+ panel.width = action_bar_width + panel_content_width
+ backdrop.visible = true
+ update_backdrop(backdrop, panel)
+ panel:get_children_by_id("panel_content")[1].visible = true
+ if should_run_rofi then
+ panel:run_rofi()
+ end
+ panel:emit_signal("opened")
+ end
+
+ local close_panel = function()
+ panel.width = action_bar_width
+ panel:get_children_by_id("panel_content")[1].visible = false
+ backdrop.visible = false
+ update_backdrop(backdrop, panel)
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle(should_run_rofi)
+ self.opened = not self.opened
+ if self.opened then
+ open_panel(should_run_rofi)
+ else
+ close_panel()
+ end
+ end
+
+ backdrop:buttons(awful.util.table.join(awful.button({}, 1, function()
+ panel:toggle()
+ end)))
+
+ panel:setup({
+ layout = wibox.layout.align.horizontal,
+ nil,
+ {
+ id = "panel_content",
+ bg = beautiful.transparent,
+ widget = wibox.container.background,
+ visible = false,
+ forced_width = panel_content_width,
+ {
+
+ left_panel_dashboard(screen, panel),
+ layout = wibox.layout.stack,
+ },
+ },
+ left_panel_action_bar(screen, panel, action_bar_width),
+ })
+ return panel
+end
+
+return left_panel
diff --git a/config/awesome/layout/floppy/right-panel/init.lua b/config/awesome/layout/floppy/right-panel/init.lua
new file mode 100644
index 000000000..6bb229ced
--- /dev/null
+++ b/config/awesome/layout/floppy/right-panel/init.lua
@@ -0,0 +1,161 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+panel_visible = false
+local info_center_switch = require("widget.info-center-switch")
+local notif_center = require("widget.notif-center")
+local user_profile = require("widget.user-profile")
+local weather = require("widget.weather")
+local email = require("widget.email")
+local social_media = require("widget.social-media")
+local calculator = require("widget.calculator")
+
+local right_panel = function(s)
+ -- Set right panel geometry
+ local panel_width = dpi(350)
+ local panel_x = s.geometry.x + s.geometry.width - panel_width
+
+ local panel = wibox({
+ ontop = true,
+ screen = s,
+ visible = false,
+ type = "dock",
+ width = panel_width,
+ height = s.geometry.height,
+ x = panel_x,
+ y = s.geometry.y,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel.opened = false
+
+ s.backdrop_rdb = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ panel:struts({
+ right = 0,
+ })
+
+ open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_rdb.visible = true
+ focused.right_panel.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.right_panel.visible = false
+ focused.backdrop_rdb.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ function panel:switch_pane(mode)
+ if mode == "notif_mode" then
+ -- Update Content
+ panel:get_children_by_id("notif_id")[1].visible = true
+ panel:get_children_by_id("pane_id")[1].visible = false
+ elseif mode == "today_mode" then
+ -- Update Content
+ panel:get_children_by_id("notif_id")[1].visible = false
+ panel:get_children_by_id("pane_id")[1].visible = true
+ end
+ end
+
+ s.backdrop_rdb:buttons(awful.util.table.join(awful.button({}, 1, function()
+ panel:toggle()
+ end)))
+
+ local separator = wibox.widget({
+ orientation = "horizontal",
+ opacity = 0.0,
+ forced_height = 15,
+ widget = wibox.widget.separator,
+ })
+
+ local line_separator = wibox.widget({
+ orientation = "horizontal",
+ forced_height = dpi(1),
+ span_ratio = 1.0,
+ color = beautiful.groups_title_bg,
+ widget = wibox.widget.separator,
+ })
+
+ panel:setup({
+ {
+ expand = "none",
+ layout = wibox.layout.fixed.vertical,
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ nil,
+ info_center_switch,
+ nil,
+ },
+ separator,
+ line_separator,
+ separator,
+ {
+ layout = wibox.layout.stack,
+ -- Today Pane
+ {
+ id = "pane_id",
+ visible = true,
+ layout = wibox.layout.fixed.vertical,
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ user_profile(),
+ weather,
+ email,
+ social_media,
+ calculator,
+ },
+ },
+ -- Notification Center
+ {
+ id = "notif_id",
+ visible = false,
+ notif_center(s),
+ layout = wibox.layout.fixed.vertical,
+ },
+ },
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ })
+
+ return panel
+end
+
+return right_panel
diff --git a/config/awesome/floppy/layout/right-panel/panel-mode-switcher.lua b/config/awesome/layout/floppy/right-panel/panel-mode-switcher.lua
similarity index 100%
rename from config/awesome/floppy/layout/right-panel/panel-mode-switcher.lua
rename to config/awesome/layout/floppy/right-panel/panel-mode-switcher.lua
diff --git a/config/awesome/layout/floppy/top-panel.lua b/config/awesome/layout/floppy/top-panel.lua
new file mode 100755
index 000000000..b38da429e
--- /dev/null
+++ b/config/awesome/layout/floppy/top-panel.lua
@@ -0,0 +1,97 @@
+local awful = require("awful")
+local beautiful = require("beautiful")
+local wibox = require("wibox")
+local gears = require("gears")
+local debug = require("gears.debug")
+local icons = require("theme." .. THEME .. ".icons")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local task_list = require("widget.task-list")
+
+local top_panel = function(s, offset)
+ local offsetx = 0
+ if offset == true then
+ offsetx = dpi(45)
+ end
+
+ local panel = wibox({
+ ontop = true,
+ screen = s,
+ type = "dock",
+ height = dpi(28),
+ width = s.geometry.width - offsetx,
+ x = s.geometry.x + offsetx,
+ y = s.geometry.y,
+ stretch = false,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel:struts({
+ top = dpi(28),
+ })
+
+ panel:connect_signal("mouse::enter", function()
+ local w = mouse.current_wibox
+ if w then
+ w.cursor = "left_ptr"
+ end
+ end)
+
+ s.systray = wibox.widget({
+ visible = false,
+ base_size = dpi(20),
+ horizontal = true,
+ screen = "primary",
+ widget = wibox.widget.systray,
+ })
+
+ local clock = require("widget.clock")
+ local layout_box = require("widget.layoutbox")
+ local add_button = require("widget.open-default-app")
+ s.theme_picker_toggle = require("widget.theme-picker-toggle")
+ s.keyboard_layout = require("widget.keyboard-layout")
+ s.tray_toggler = require("widget.tray-toggle")
+ s.updater = require("widget.package-updater")
+ s.screen_rec = require("widget.screen-recorder")
+ s.mpd = require("widget.mpd")
+ s.bluetooth = require("widget.bluetooth")
+ s.battery = require("widget.battery")
+ s.network = require("widget.network")
+ s.info_center_toggle = require("widget.info-center-toggle")
+
+ panel:setup({
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ {
+ layout = wibox.layout.fixed.horizontal,
+ task_list(s),
+ add_button(s),
+ },
+ clock(s),
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ s.systray,
+ margins = dpi(5),
+ widget = wibox.container.margin,
+ },
+ s.tray_toggler,
+ s.updater(),
+ s.screen_rec(),
+ s.mpd,
+ s.network(),
+ s.bluetooth(),
+ s.battery(),
+ s.keyboard_layout(),
+ s.theme_picker_toggle(),
+ layout_box(s),
+ s.info_center_toggle(),
+ },
+ })
+
+ return panel
+end
+
+return top_panel
diff --git a/config/awesome/layout/gnawesome/bottom-panel.lua b/config/awesome/layout/gnawesome/bottom-panel.lua
new file mode 100644
index 000000000..84d041df9
--- /dev/null
+++ b/config/awesome/layout/gnawesome/bottom-panel.lua
@@ -0,0 +1,113 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local xdg_folders_builder = require("widget.xdg-folders.builder")
+
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+
+local tag_list = require("widget.tag-list")
+
+local build_widget = function(widget)
+ return wibox.widget({
+ {
+ widget,
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, dpi(6))
+ end,
+ widget = wibox.container.background,
+ },
+ top = dpi(10),
+ bottom = dpi(10),
+ widget = wibox.container.margin,
+ })
+end
+
+local bottom_panel = function(s)
+ s.systray = wibox.widget({
+ {
+ base_size = dpi(20),
+ horizontal = true,
+ screen = "primary",
+ widget = wibox.widget.systray,
+ },
+ visible = false,
+ top = dpi(14),
+ widget = wibox.container.margin,
+ })
+
+ -- 🔧 TODO: how is this working
+ s.search = require("widget.search-apps")()
+ s.tray_toggler = build_widget(require("widget.tray-toggle"))
+ s.bluetooth = build_widget(require("widget.bluetooth")())
+ s.network = build_widget(require("widget.network")())
+ s.battery = build_widget(require("widget.battery")())
+ local layout_box = build_widget(require("widget.layoutbox")(s))
+
+ local separator = wibox.widget({
+ orientation = "vertical",
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+ })
+
+ local bottom_panel_height = dpi(48)
+ local bottom_panel_margins = dpi(5)
+
+ local panel = awful.popup({
+ widget = {
+ {
+ layout = wibox.layout.fixed.horizontal,
+ s.search,
+ separator,
+ tag_list(s),
+ xdg_folders_builder
+ :with_separator()
+ :with_home()
+ :with_downloads()
+ :with_documents()
+ :with_separator()
+ :with_trash()
+ :horizontal()
+ :build(),
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(10),
+ s.systray,
+ s.tray_toggler,
+ s.network,
+ s.bluetooth,
+ s.battery,
+ layout_box,
+ separator,
+ },
+ -- require("widget.xdg-folders.trash")(),
+ },
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.partially_rounded_rect(cr, w, h, true, true, false, false, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ type = "dock",
+ screen = s,
+ ontop = true,
+ visible = true,
+ height = bottom_panel_height,
+ maximum_height = bottom_panel_height,
+ placement = awful.placement.bottom,
+ shape = gears.shape.rectangle,
+ bg = beautiful.transparent,
+ })
+
+ panel:struts({
+ bottom = bottom_panel_height,
+ })
+
+ return panel
+end
+
+return bottom_panel
diff --git a/config/awesome/layout/gnawesome/central-panel/init.lua b/config/awesome/layout/gnawesome/central-panel/init.lua
new file mode 100644
index 000000000..f505695de
--- /dev/null
+++ b/config/awesome/layout/gnawesome/central-panel/init.lua
@@ -0,0 +1,174 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local central_panel_switch = require("widget.central-panel-switch")
+local user_profile = require("widget.user-profile")
+local weather = require("widget.weather")
+local email = require("widget.email")
+local calendar = require("widget.calendar")
+local notification_center = require("widget.notif-center")
+local path_to_file = ...
+local central_panel_settings = require(path_to_file .. ".settings")
+
+-- 🔧 TODO: fix central panel focus currently hides all other elements
+local panel_visible = false
+
+local central_panel = function(s)
+ -- Set right panel geometry
+ local panel_width = dpi(700)
+ local panel_height = s.geometry.height - dpi(38)
+ local panel_margins = dpi(5)
+
+ local separator = wibox.widget({
+ orientation = "horizontal",
+ opacity = 0.0,
+ forced_height = 15,
+ widget = wibox.widget.separator,
+ })
+
+ local panel = awful.popup({
+ -- widget = {},
+ widget = {
+ {
+ {
+ expand = "none",
+ layout = wibox.layout.fixed.vertical,
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ nil,
+ central_panel_switch,
+ nil,
+ },
+ separator,
+ {
+ layout = wibox.layout.stack,
+ -- Today Pane
+ {
+ id = "pane_id",
+ visible = true,
+ layout = wibox.layout.fixed.vertical,
+ {
+ layout = wibox.layout.flex.horizontal,
+ spacing = dpi(7),
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ user_profile(),
+ weather,
+ email,
+ calendar,
+ },
+ notification_center(s),
+ },
+ },
+ {
+ id = "settings_id",
+ visible = false,
+ layout = wibox.layout.fixed.vertical,
+ central_panel_settings(),
+ },
+ },
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ screen = s,
+ type = "dock",
+ visible = false,
+ ontop = true,
+ width = panel_width,
+ maximum_height = panel_height,
+ maximum_width = panel_width,
+ height = s.geometry.height,
+ bg = beautiful.transparent,
+ fg = beautiful.fg_normal,
+ shape = gears.shape.rectangle,
+ })
+
+ awful.placement.centered(panel, {
+ margins = {
+ right = panel_margins,
+ top = s.geometry.y + dpi(65),
+ },
+ parent = s,
+ })
+
+ panel.opened = false
+
+ s.backdrop_central = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ panel:struts({
+ top = 0,
+ })
+
+ open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_central.visible = true
+ focused.central_panel.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.central_panel.visible = false
+ focused.backdrop_central.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ function panel:switch_pane(mode)
+ if mode == "today_mode" then
+ -- Update Content
+ panel.widget:get_children_by_id("settings_id")[1].visible = false
+ panel.widget:get_children_by_id("pane_id")[1].visible = true
+ elseif mode == "settings_mode" then
+ -- Update Content
+ panel.widget:get_children_by_id("pane_id")[1].visible = false
+ panel.widget:get_children_by_id("settings_id")[1].visible = true
+ end
+ end
+
+ s.backdrop_central:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ panel:toggle()
+ end)))
+ return panel
+end
+
+return central_panel
diff --git a/config/awesome/layout/gnawesome/central-panel/settings/hardware-monitor.lua b/config/awesome/layout/gnawesome/central-panel/settings/hardware-monitor.lua
new file mode 100644
index 000000000..3055a53e2
--- /dev/null
+++ b/config/awesome/layout/gnawesome/central-panel/settings/hardware-monitor.lua
@@ -0,0 +1,49 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local create_meter = require("widget.meters")
+local cpu_meter = create_meter("cpu")
+local ram_meter = create_meter("ram")
+local temperature_meter = create_meter("temperature")
+local harddrive_meter = create_meter("disk")
+
+local hardware_header = wibox.widget({
+ text = "Hardware Monitor",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ {
+ {
+ hardware_header,
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
+ end,
+ forced_height = dpi(35),
+ widget = wibox.container.background,
+ },
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ cpu_meter,
+ ram_meter,
+ temperature_meter,
+ harddrive_meter,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+})
diff --git a/config/awesome/layout/gnawesome/central-panel/settings/init.lua b/config/awesome/layout/gnawesome/central-panel/settings/init.lua
new file mode 100644
index 000000000..594082acc
--- /dev/null
+++ b/config/awesome/layout/gnawesome/central-panel/settings/init.lua
@@ -0,0 +1,19 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local icons = require("theme.icons")
+
+local path_to_file = ...
+local quick_settings = require(path_to_file .. ".quick-settings")
+local hardware_monitor = require(path_to_file .. ".hardware-monitor")
+return function()
+ return wibox.widget({
+ layout = wibox.layout.flex.horizontal,
+ spacing = dpi(7),
+ quick_settings,
+ hardware_monitor,
+ })
+end
diff --git a/config/awesome/layout/gnawesome/central-panel/settings/quick-settings.lua b/config/awesome/layout/gnawesome/central-panel/settings/quick-settings.lua
new file mode 100644
index 000000000..a76e0bffd
--- /dev/null
+++ b/config/awesome/layout/gnawesome/central-panel/settings/quick-settings.lua
@@ -0,0 +1,79 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local bar_color = beautiful.groups_bg
+local dpi = beautiful.xresources.apply_dpi
+local brightness_slider = require("widget.brightness-slider")
+local volume_slider = require("widget.volume-slider")
+local blur_slider = require("widget.blur-slider")
+local toggle_widgets = require("widget.toggles")
+
+local quick_header = wibox.widget({
+ text = "Quick Settings",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ {
+ layout = wibox.layout.fixed.vertical,
+ {
+ {
+ quick_header,
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ },
+ forced_height = dpi(35),
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ brightness_slider,
+ volume_slider,
+ toggle_widgets.airplane_mode.circular,
+ toggle_widgets.bluetooth.circular,
+ toggle_widgets.blue_light.circular,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(
+ cr,
+ width,
+ height,
+ false,
+ false,
+ true,
+ true,
+ beautiful.groups_radius
+ )
+ end,
+ widget = wibox.container.background,
+ },
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ blur_slider,
+ toggle_widgets.blur_effects.basic,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ },
+ },
+})
diff --git a/config/awesome/layout/gnawesome/init.lua b/config/awesome/layout/gnawesome/init.lua
new file mode 100644
index 000000000..fdd0b1309
--- /dev/null
+++ b/config/awesome/layout/gnawesome/init.lua
@@ -0,0 +1,62 @@
+local awful = require("awful")
+local path_to_file = ...
+local top_panel = require(path_to_file .. ".top-panel")
+local bottom_panel = require(path_to_file .. ".bottom-panel")
+local central_panel = require(path_to_file .. ".central-panel")
+local theme_picker = require("widget.theme-picker")
+
+-- Create a wibox panel for each screen and add it
+-- awful.screen.connect_for_each_screen(function(s)
+-- print("decor")
+-- -- Create the top panel
+-- s.top_panel = top_panel(s)
+-- -- Create the bottom panel
+-- s.bottom_panel = bottom_panel(s)
+-- -- Create the central panel
+-- s.central_panel = central_panel(s)
+-- end)
+screen.connect_signal("request::desktop_decoration", function(s)
+ s.top_panel = top_panel(s)
+ s.bottom_panel = bottom_panel(s)
+ s.central_panel = central_panel(s)
+ s.theme_picker = theme_picker(s)
+end)
+
+-- Hide bars when app go fullscreen
+function update_bars_visibility()
+ for s in screen do
+ if s.selected_tag then
+ local fullscreen = s.selected_tag.fullscreen_mode
+ -- Order matter here for shadow
+ s.top_panel.visible = not fullscreen
+ s.bottom_panel.visible = not fullscreen
+ if s.central_panel then
+ if fullscreen and s.central_panel.visible then
+ s.central_panel:toggle()
+ s.central_panel_show_again = true
+ elseif not fullscreen and not s.central_panel.visible and s.central_panel_show_again then
+ s.central_panel:toggle()
+ s.central_panel_show_again = false
+ end
+ end
+ end
+ end
+end
+
+tag.connect_signal("property::selected", function(t)
+ update_bars_visibility()
+end)
+
+client.connect_signal("property::fullscreen", function(c)
+ if c.first_tag then
+ c.first_tag.fullscreen_mode = c.fullscreen
+ end
+ update_bars_visibility()
+end)
+
+client.connect_signal("unmanage", function(c)
+ if c.fullscreen then
+ c.screen.selected_tag.fullscreen_mode = false
+ update_bars_visibility()
+ end
+end)
diff --git a/config/awesome/layout/gnawesome/top-panel.lua b/config/awesome/layout/gnawesome/top-panel.lua
new file mode 100755
index 000000000..85b59899d
--- /dev/null
+++ b/config/awesome/layout/gnawesome/top-panel.lua
@@ -0,0 +1,77 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local clickable_container = require("widget.clickable-container")
+local task_list = require("widget.task-list")
+local clock = require("widget.clock")
+local updater = require("widget.package-updater")
+local screen_recorder = require("widget.screen-recorder")
+local mpd = require("widget.mpd")
+local end_session = require("widget.end-session")
+local global_search = require("widget.global-search")
+local keyboard_layout = require("widget.keyboard-layout")
+local theme_picker_toggle = require("widget.theme-picker-toggle")
+
+local top_panel = function(s)
+ local panel = wibox({
+ ontop = true,
+ screen = s,
+ type = "dock",
+ height = dpi(28),
+ width = s.geometry.width,
+ x = s.geometry.x,
+ y = s.geometry.y,
+ stretch = false,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel:struts({
+ top = dpi(28),
+ })
+
+ panel:connect_signal("mouse::enter", function()
+ local w = mouse.current_wibox
+ if w then
+ w.cursor = "left_ptr"
+ end
+ end)
+
+ local add_button = require("widget.open-default-app")(s)
+ s.updater = updater()
+ s.screen_rec = screen_recorder()
+ s.mpd = mpd
+ s.keyboard_layout = keyboard_layout()
+ s.end_session = end_session()
+ s.global_search = global_search()
+ s.theme_picker_toggle = theme_picker_toggle()
+
+ panel:setup({
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ {
+ layout = wibox.layout.fixed.horizontal,
+ task_list(s),
+ add_button,
+ },
+ clock(s),
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ s.updater,
+ s.screen_rec,
+ s.global_search,
+ s.keyboard_layout,
+ s.theme_picker_toggle,
+ s.mpd,
+ s.end_session,
+ },
+ })
+
+ return panel
+end
+
+return top_panel
diff --git a/config/awesome/layout/init.lua b/config/awesome/layout/init.lua
new file mode 100644
index 000000000..19c8a47dd
--- /dev/null
+++ b/config/awesome/layout/init.lua
@@ -0,0 +1 @@
+local theme = require("layout." .. THEME)
diff --git a/config/awesome/layout/linear/bottom-panel.lua b/config/awesome/layout/linear/bottom-panel.lua
new file mode 100755
index 000000000..6b9bbcd31
--- /dev/null
+++ b/config/awesome/layout/linear/bottom-panel.lua
@@ -0,0 +1,146 @@
+local awful = require("awful")
+local naughty = require("naughty")
+local beautiful = require("beautiful")
+local wibox = require("wibox")
+local gears = require("gears")
+local icons = require("theme.icons")
+local debug = require("gears.debug")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local task_list = require("widget.task-list")
+local tag_list = require("widget.tag-list")
+local open_default_app = require("widget.open-default-app")
+local search_apps = require("widget.search-apps")
+local control_center_toggle = require("widget.control-center-toggle")
+local global_search = require("widget.global-search")
+local info_center_toggle = require("widget.info-center-toggle")
+local tray_toggle = require("widget.tray-toggle")
+local package_updater = require("widget.package-updater")
+local screen_recorder = require("widget.screen-recorder")
+local bluetooth = require("widget.bluetooth")
+local network = require("widget.network")
+local clock_w = require("widget.clock")
+local theme_picker_toggle = require("widget.theme-picker-toggle")
+local layout_box_w = require("widget.layoutbox")
+local battery = require("widget.battery")
+local info_center_toggle_w = require("widget.info-center-toggle")
+local keyboard_layout = require("widget.keyboard-layout")
+
+local bottom_panel = function(s)
+ local panel = wibox({
+ ontop = true,
+ screen = s,
+ type = "dock",
+ height = dpi(48),
+ width = s.geometry.width,
+ x = s.geometry.x,
+ -- y = dpi(s.geometry.height - 48),
+ stretch = true,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ layout = wibox.layout.align.vertical,
+ })
+ awful.placement.bottom(panel)
+ panel:struts({
+ bottom = dpi(48),
+ })
+
+ panel:connect_signal("mouse::enter", function()
+ local w = mouse.current_wibox
+ if w then
+ w.cursor = "left_ptr"
+ end
+ end)
+
+ local build_widget = function(widget)
+ return wibox.widget({
+ {
+ widget,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ bg = beautiful.transparent,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, dpi(12))
+ end,
+ widget = wibox.container.background,
+ },
+ top = dpi(9),
+ bottom = dpi(9),
+ widget = wibox.container.margin,
+ })
+ end
+
+ s.systray = wibox.widget({
+ {
+ base_size = dpi(20),
+ horizontal = true,
+ screen = "primary",
+ widget = wibox.widget.systray,
+ },
+ visible = false,
+ top = dpi(10),
+ widget = wibox.container.margin,
+ })
+
+ local add_button = build_widget(open_default_app(s))
+ s.search_apps = build_widget(search_apps())
+ s.control_center_toggle = build_widget(control_center_toggle())
+ s.global_search = build_widget(global_search())
+ s.info_center_toggle = build_widget(info_center_toggle())
+ s.tray_toggler = build_widget(tray_toggle)
+ s.updater = build_widget(package_updater())
+ s.screen_rec = build_widget(screen_recorder())
+ s.keyboard_layout = build_widget(keyboard_layout())
+ s.theme_picker_toggle = build_widget(theme_picker_toggle())
+ s.bluetooth = build_widget(bluetooth())
+ s.network = build_widget(network())
+ local clock = build_widget(clock_w(s))
+ local layout_box = build_widget(layout_box_w(s))
+ s.battery = build_widget(battery())
+ s.info_center_toggle = build_widget(info_center_toggle())
+
+ panel:setup({
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ s.search_apps,
+ s.control_center_toggle,
+ s.global_search,
+ build_widget(tag_list(s)),
+ build_widget(task_list(s)),
+ add_button,
+ },
+ nil,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ s.systray,
+ margins = dpi(5),
+ widget = wibox.container.margin,
+ },
+ s.tray_toggler,
+ s.updater,
+ s.screen_rec,
+ s.network,
+ s.bluetooth,
+ s.theme_picker_toggle,
+ s.keyboard_layout,
+ s.battery,
+ clock,
+ layout_box,
+ s.info_center_toggle,
+ },
+ },
+ left = dpi(5),
+ right = dpi(5),
+ widget = wibox.container.margin,
+ })
+
+ return panel
+end
+
+return bottom_panel
diff --git a/config/awesome/layout/linear/control-center/init.lua b/config/awesome/layout/linear/control-center/init.lua
new file mode 100644
index 000000000..cfd827919
--- /dev/null
+++ b/config/awesome/layout/linear/control-center/init.lua
@@ -0,0 +1,285 @@
+local mpd = require("widget.mpd")
+local volume_slider = require("widget.volume-slider")
+local brightness_slider = require("widget.brightness-slider")
+local blur_slider = require("widget.blur-slider")
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local end_session = require("widget.end-session")
+
+local toggle_widgets = require("widget.toggles")
+local control_center_switch = require("widget.control-center-switch")
+local user_profile = require("widget.user-profile")
+local dont_disturb = require("widget.dont-disturb")
+local create_meter = require("widget.meters")
+local cpu_meter = create_meter("cpu")
+local ram_meter = create_meter("ram")
+local temperature_meter = create_meter("temperature")
+local harddrive_meter = create_meter("disk")
+
+panel_visible = false
+
+local format_item = function(widget)
+ return wibox.widget({
+ {
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ widget,
+ nil,
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ },
+ forced_height = dpi(88),
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+end
+
+local format_item_no_fix_height = function(widget)
+ return wibox.widget({
+ {
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ widget,
+ nil,
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ },
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+end
+
+local vertical_separator = wibox.widget({
+ orientation = "vertical",
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+})
+
+local control_center_row_last = wibox.widget({
+ layout = wibox.layout.align.horizontal,
+ forced_height = dpi(48),
+ format_item({
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(10),
+ end_session(),
+ vertical_separator,
+ control_center_switch(),
+ }),
+ {
+ format_item(user_profile()),
+ left = dpi(10),
+ widget = wibox.container.margin,
+ },
+ nil,
+})
+
+local main_control_row_two = wibox.widget({
+ layout = wibox.layout.flex.horizontal,
+ spacing = dpi(10),
+ format_item_no_fix_height({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ toggle_widgets.airplane_mode.circular,
+ toggle_widgets.bluetooth.circular,
+ toggle_widgets.blue_light.circular,
+ }),
+ {
+ layout = wibox.layout.flex.vertical,
+ spacing = dpi(10),
+ format_item_no_fix_height({
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ dont_disturb,
+ nil,
+ }),
+ format_item_no_fix_height({
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ toggle_widgets.blur_effects.circular,
+ nil,
+ }),
+ },
+})
+
+local main_control_row_sliders = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ format_item({
+ blur_slider,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+ format_item({
+ brightness_slider,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+ format_item({
+ volume_slider,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+})
+
+local main_control_music_box = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ format_item({
+ mpd,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+})
+
+local monitor_control_row_progressbars = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ format_item(cpu_meter),
+ format_item(ram_meter),
+ format_item(temperature_meter),
+ format_item(harddrive_meter),
+})
+
+local control_center = function(s)
+ -- Set the control center geometry
+ local panel_width = dpi(400)
+ local panel_margins = dpi(5)
+
+ local panel = awful.popup({
+ widget = {
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ {
+ layout = wibox.layout.stack,
+ {
+ id = "main_control",
+ visible = true,
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ main_control_row_two,
+ main_control_row_sliders,
+ mpd,
+ },
+ {
+ id = "monitor_control",
+ visible = false,
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ monitor_control_row_progressbars,
+ },
+ },
+ control_center_row_last,
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ },
+ id = "control_center",
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ screen = s,
+ type = "dock",
+ visible = false,
+ ontop = true,
+ width = dpi(panel_width),
+ maximum_width = dpi(panel_width),
+ maximum_height = dpi(s.geometry.height),
+ bg = beautiful.transparent,
+ fg = beautiful.fg_normal,
+ shape = gears.shape.rectangle,
+ })
+
+ panel:connect_signal("property::height", function()
+ awful.placement.bottom_left(panel, {
+ honor_workarea = true,
+ margins = {
+ bottom = dpi(5),
+ left = dpi(5),
+ },
+ })
+ end)
+
+ panel.opened = false
+
+ s.backdrop_control_center = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ local open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_control_center.visible = true
+ focused.control_center.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ local close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.control_center.visible = false
+ focused.backdrop_control_center.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ s.backdrop_control_center:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ panel:toggle()
+ end)))
+
+ return panel
+end
+
+return control_center
diff --git a/config/awesome/layout/linear/info-center/init.lua b/config/awesome/layout/linear/info-center/init.lua
new file mode 100644
index 000000000..1a0791231
--- /dev/null
+++ b/config/awesome/layout/linear/info-center/init.lua
@@ -0,0 +1,123 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local email = require("widget.email")
+local weather = require("widget.weather")
+local notification_center = require("widget.notif-center")
+panel_visible = false
+
+local vertical_separator = wibox.widget({
+ orientation = "vertical",
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+})
+
+local info_center = function(s)
+ -- Set the info center geometry
+ local panel_width = dpi(350)
+ local panel_margins = dpi(5)
+
+ local panel = awful.popup({
+ widget = {
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ forced_width = dpi(panel_width),
+ spacing = dpi(10),
+ email,
+ weather,
+ notification_center(s),
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ },
+ id = "info_center",
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ screen = s,
+ type = "dock",
+ visible = false,
+ ontop = true,
+ width = dpi(panel_width),
+ maximum_width = dpi(panel_width),
+ maximum_height = dpi(s.geometry.height - 58),
+ bg = beautiful.transparent,
+ fg = beautiful.fg_normal,
+ shape = gears.shape.rectangle,
+ })
+
+ panel:connect_signal("property::height", function()
+ awful.placement.bottom_right(panel, {
+ honor_workarea = true,
+ margins = {
+ bottom = dpi(5),
+ right = dpi(5),
+ },
+ })
+ end)
+
+ panel.opened = false
+
+ s.backdrop_info_center = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ local open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_info_center.visible = true
+ focused.info_center.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ local close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.info_center.visible = false
+ focused.backdrop_info_center.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ s.backdrop_info_center:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ panel:toggle()
+ end)))
+
+ return panel
+end
+
+return info_center
diff --git a/config/awesome/layout/linear/init.lua b/config/awesome/layout/linear/init.lua
new file mode 100644
index 000000000..b3606cab7
--- /dev/null
+++ b/config/awesome/layout/linear/init.lua
@@ -0,0 +1,63 @@
+local awful = require("awful")
+local bottom_panel = require("layout.linear.bottom-panel")
+local control_center = require("layout.linear.control-center")
+local info_center = require("layout.linear.info-center")
+local theme_picker = require("widget.theme-picker")
+
+-- Create a wibox panel for each screen and add it
+screen.connect_signal("request::desktop_decoration", function(s)
+ s.bottom_panel = bottom_panel(s)
+ s.control_center = control_center(s)
+ s.info_center = info_center(s)
+ s.theme_picker = theme_picker(s)
+ s.control_center_show_again = false
+ s.info_center_show_again = false
+end)
+
+-- Hide bars when app go fullscreen
+function update_bars_visibility()
+ for s in screen do
+ if s.selected_tag then
+ local fullscreen = s.selected_tag.fullscreen_mode
+ -- Order matter here for shadow
+ s.bottom_panel.visible = not fullscreen
+ if s.control_center then
+ if fullscreen and s.control_center.visible then
+ s.control_center:toggle()
+ s.control_center_show_again = true
+ elseif not fullscreen and not s.control_center.visible and s.control_center_show_again then
+ s.control_center:toggle()
+ s.control_center_show_again = false
+ end
+ end
+
+ if s.info_center then
+ if fullscreen and s.info_center.visible then
+ s.info_center:toggle()
+ s.info_center_show_again = true
+ elseif not fullscreen and not s.info_center.visible and s.info_center_show_again then
+ s.info_center:toggle()
+ s.info_center_show_again = false
+ end
+ end
+ end
+ end
+end
+
+tag.connect_signal("property::selected", function(t)
+ update_bars_visibility()
+end)
+
+client.connect_signal("property::fullscreen", function(c)
+ if c.first_tag then
+ c.first_tag.fullscreen_mode = c.fullscreen
+ end
+ update_bars_visibility()
+end)
+
+client.connect_signal("unmanage", function(c)
+ if c.fullscreen then
+ c.screen.selected_tag.fullscreen_mode = false
+ update_bars_visibility()
+ end
+end)
diff --git a/config/awesome/layout/linear/left-panel/dashboard/hardware-monitor.lua b/config/awesome/layout/linear/left-panel/dashboard/hardware-monitor.lua
new file mode 100644
index 000000000..ae7c76971
--- /dev/null
+++ b/config/awesome/layout/linear/left-panel/dashboard/hardware-monitor.lua
@@ -0,0 +1,53 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local cpu_meter = require("widget.cpu-meter")
+local ram_meter = require("widget.ram-meter")
+local temperature_meter = require("widget.temperature-meter")
+local hard_drive_meter = require("widget.harddrive-meter")
+
+local hardware_header = wibox.widget({
+ text = "Hardware Monitor",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ {
+ {
+ hardware_header,
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.groups_title_bg,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
+ end,
+ forced_height = dpi(35),
+ widget = wibox.container.background,
+ },
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ cpu_meter,
+ ram_meter,
+ temperature_meter,
+ hard_drive_meter,
+ },
+ bg = beautiful.groups_bg,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+})
diff --git a/config/awesome/layout/linear/left-panel/dashboard/init.lua b/config/awesome/layout/linear/left-panel/dashboard/init.lua
new file mode 100644
index 000000000..6e3cccb23
--- /dev/null
+++ b/config/awesome/layout/linear/left-panel/dashboard/init.lua
@@ -0,0 +1,74 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local icons = require("theme.icons")
+local hardware_monitor = require("widget.hardware-monitor")
+local quick_settings = require("widget.quick-settings")
+
+return function(_, panel)
+ local search_widget = wibox.widget({
+ {
+ {
+ {
+ image = icons.search,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ top = dpi(12),
+ bottom = dpi(12),
+ widget = wibox.container.margin,
+ },
+ {
+ text = "Global Search",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ },
+ spacing = dpi(24),
+ layout = wibox.layout.fixed.horizontal,
+ },
+ left = dpi(24),
+ right = dpi(24),
+ forced_height = dpi(48),
+ widget = wibox.container.margin,
+ })
+
+ Search_button = wibox.widget({
+ {
+ search_widget,
+ widget = clickable_container,
+ },
+ bg = beautiful.groups_bg,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+
+ Search_button:buttons(awful.util.table.join(awful.button({}, 1, function()
+ panel:run_rofi()
+ end)))
+
+ return wibox.widget({
+ {
+ layout = wibox.layout.align.vertical,
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ Search_button,
+ hardware_monitor,
+ quick_settings,
+ },
+ nil,
+ nil,
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ })
+end
diff --git a/config/awesome/layout/linear/left-panel/dashboard/quick-settings.lua b/config/awesome/layout/linear/left-panel/dashboard/quick-settings.lua
new file mode 100644
index 000000000..4291f8b86
--- /dev/null
+++ b/config/awesome/layout/linear/left-panel/dashboard/quick-settings.lua
@@ -0,0 +1,85 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local bar_color = beautiful.groups_bg
+local dpi = beautiful.xresources.apply_dpi
+local toggle_widgets = require("widget.toggles")
+local volume_slider = require("widget.volume-slider")
+local brightness_slider = require("widget.brightness-slider")
+local blur_slider = require("widget.blur-slider")
+
+local quick_header = wibox.widget({
+ text = "Quick Settings",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ {
+ layout = wibox.layout.fixed.vertical,
+ {
+ {
+ quick_header,
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ },
+ forced_height = dpi(35),
+ bg = beautiful.groups_title_bg,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ brightness_slider,
+ volume_slider,
+ toggle_widgets.airplane_mode.circular,
+ toggle_widgets.bluetooth.circular,
+ toggle_widgets.blue_light.circular,
+ },
+ bg = beautiful.groups_bg,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(
+ cr,
+ width,
+ height,
+ false,
+ false,
+ true,
+ true,
+ beautiful.groups_radius
+ )
+ end,
+ widget = wibox.container.background,
+ },
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ blur_slider,
+ toggle_widgets.blur_effects.circular,
+ },
+ bg = beautiful.groups_bg,
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ },
+ },
+})
diff --git a/config/awesome/layout/linear/left-panel/init.lua b/config/awesome/layout/linear/left-panel/init.lua
new file mode 100644
index 000000000..6cf21235f
--- /dev/null
+++ b/config/awesome/layout/linear/left-panel/init.lua
@@ -0,0 +1,99 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local apps = require("configuration.apps")
+
+local dashboard = require("layout.left-panel.dashboard")
+local left_panel = function(screen)
+ local panel_content_width = dpi(345)
+
+ local panel = wibox({
+ screen = screen,
+ width = panel_content_width,
+ type = "dock",
+ height = screen.geometry.height,
+ x = screen.geometry.x,
+ y = screen.geometry.y,
+ ontop = true,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel.opened = false
+
+ local backdrop = wibox({
+ ontop = true,
+ screen = screen,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = screen.geometry.x,
+ y = screen.geometry.y,
+ width = screen.geometry.width,
+ height = screen.geometry.height,
+ })
+
+ function panel:run_rofi()
+ awesome.spawn(apps.default.rofi_global, false, false, false, false, function()
+ panel:toggle()
+ end)
+
+ -- Hide panel content if rofi global search is opened
+ panel:get_children_by_id("panel_content")[1].visible = false
+ end
+
+ local open_panel = function(should_run_rofi)
+ backdrop.visible = true
+ panel.visible = true
+ panel:get_children_by_id("panel_content")[1].visible = true
+ if should_run_rofi then
+ panel:run_rofi()
+ end
+ panel:emit_signal("opened")
+ end
+
+ local close_panel = function()
+ panel:get_children_by_id("panel_content")[1].visible = false
+ panel.visible = false
+ backdrop.visible = false
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle(should_run_rofi)
+ self.opened = not self.opened
+ if self.opened then
+ open_panel(should_run_rofi)
+ else
+ close_panel()
+ end
+ end
+
+ backdrop:buttons(awful.util.table.join(awful.button({}, 1, function()
+ panel:toggle()
+ end)))
+
+ panel:setup({
+ layout = wibox.layout.align.horizontal,
+ nil,
+ {
+ id = "panel_content",
+ bg = beautiful.transparent,
+ widget = wibox.container.background,
+ visible = false,
+ forced_width = panel_content_width,
+ {
+ dashboard(screen, panel),
+ layout = wibox.layout.stack,
+ },
+ },
+ nil,
+ })
+ return panel
+end
+
+return left_panel
diff --git a/config/awesome/layout/linear/right-panel/init.lua b/config/awesome/layout/linear/right-panel/init.lua
new file mode 100644
index 000000000..b96cf08f8
--- /dev/null
+++ b/config/awesome/layout/linear/right-panel/init.lua
@@ -0,0 +1,163 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local info_center = require("widget.info-center-switch")
+local user_profile = require("widget.user-profile")
+local weather = require("widget.weather")
+local email = require("widget.email")
+local social_media = require("widget.social-media")
+local calculator = require("widget.calculator")
+local notification_center = require("widget.notif-center")
+
+panel_visible = false
+
+local right_panel = function(s)
+ -- Set right panel geometry
+ local panel_width = dpi(350)
+ local panel_x = s.geometry.x + s.geometry.width - panel_width
+
+ local panel = wibox({
+ ontop = true,
+ screen = s,
+ visible = false,
+ type = "dock",
+ width = panel_width,
+ height = s.geometry.height,
+ x = panel_x,
+ y = s.geometry.y,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel.opened = false
+
+ s.backdrop_rdb = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ panel:struts({
+ right = 0,
+ })
+
+ open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_rdb.visible = true
+ focused.right_panel.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.right_panel.visible = false
+ focused.backdrop_rdb.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ function panel:switch_pane(mode)
+ if mode == "notif_mode" then
+ -- Update Content
+ panel:get_children_by_id("notif_id")[1].visible = true
+ panel:get_children_by_id("pane_id")[1].visible = false
+ elseif mode == "today_mode" then
+ -- Update Content
+ panel:get_children_by_id("notif_id")[1].visible = false
+ panel:get_children_by_id("pane_id")[1].visible = true
+ end
+ end
+
+ s.backdrop_rdb:buttons(awful.util.table.join(awful.button({}, 1, function()
+ panel:toggle()
+ end)))
+
+ local separator = wibox.widget({
+ orientation = "horizontal",
+ opacity = 0.0,
+ forced_height = 15,
+ widget = wibox.widget.separator,
+ })
+
+ local line_separator = wibox.widget({
+ orientation = "horizontal",
+ forced_height = dpi(1),
+ span_ratio = 1.0,
+ color = beautiful.groups_title_bg,
+ widget = wibox.widget.separator,
+ })
+
+ panel:setup({
+ {
+ expand = "none",
+ layout = wibox.layout.fixed.vertical,
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ nil,
+ info_center,
+ nil,
+ },
+ separator,
+ line_separator,
+ separator,
+ {
+ layout = wibox.layout.stack,
+ -- Today Pane
+ {
+ id = "pane_id",
+ visible = true,
+ layout = wibox.layout.fixed.vertical,
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(7),
+ user_profile,
+ weather,
+ email,
+ social_media,
+ calculator,
+ },
+ },
+ -- Notification Center
+ {
+ id = "notif_id",
+ visible = false,
+
+ notification_center(s),
+ layout = wibox.layout.fixed.vertical,
+ },
+ },
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ })
+
+ return panel
+end
+
+return right_panel
diff --git a/config/awesome/linear/layout/right-panel/panel-mode-switcher.lua b/config/awesome/layout/linear/right-panel/panel-mode-switcher.lua
similarity index 100%
rename from config/awesome/linear/layout/right-panel/panel-mode-switcher.lua
rename to config/awesome/layout/linear/right-panel/panel-mode-switcher.lua
diff --git a/config/awesome/layout/surreal/bottom-panel.lua b/config/awesome/layout/surreal/bottom-panel.lua
new file mode 100644
index 000000000..3488fcaa5
--- /dev/null
+++ b/config/awesome/layout/surreal/bottom-panel.lua
@@ -0,0 +1,84 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+
+local tag_list = require("widget.tag-list")
+
+local search_apps = require("widget.search-apps")
+-- local xdg_folders = require("widget.xdg-folders")
+local xdg_folders_builder = require("widget.xdg-folders.builder")
+local bottom_panel = function(s)
+ local build_widget = function(widget)
+ return wibox.widget({
+ {
+ widget,
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, dpi(6))
+ end,
+ widget = wibox.container.background,
+ },
+ top = dpi(10),
+ bottom = dpi(10),
+ widget = wibox.container.margin,
+ })
+ end
+
+ s.search = search_apps()
+
+ local separator = wibox.widget({
+ orientation = "vertical",
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+ })
+
+ local bottom_panel_height = dpi(56)
+ local bottom_panel_margins = dpi(5)
+
+ local panel = awful.popup({
+ widget = {
+ {
+ layout = wibox.layout.fixed.horizontal,
+ s.search,
+ separator,
+ tag_list(s),
+ xdg_folders_builder
+ :with_separator()
+ :with_home()
+ :with_downloads()
+ :with_documents()
+ :with_separator()
+ :with_trash()
+ :horizontal()
+ :build(),
+ },
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ type = "dock",
+ screen = s,
+ ontop = true,
+ visible = true,
+ height = bottom_panel_height,
+ maximum_height = bottom_panel_height,
+ placement = awful.placement.bottom,
+ shape = gears.shape.rectangle,
+ bg = beautiful.transparent,
+ })
+
+ panel:struts({
+ bottom = bottom_panel_height,
+ })
+
+ return panel
+end
+
+return bottom_panel
diff --git a/config/awesome/layout/surreal/control-center/init.lua b/config/awesome/layout/surreal/control-center/init.lua
new file mode 100644
index 000000000..376bbc660
--- /dev/null
+++ b/config/awesome/layout/surreal/control-center/init.lua
@@ -0,0 +1,280 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local user_profile = require("widget.user-profile")
+local create_meter = require("widget.meters")
+local cpu_meter = create_meter("cpu")
+local ram_meter = create_meter("ram")
+local temperature_meter = create_meter("temperature")
+local harddrive_meter = create_meter("disk")
+local mpd = require("widget.mpd")
+local volume_slider = require("widget.volume-slider")
+local brightness_slider = require("widget.brightness-slider")
+local blur_slider = require("widget.blur-slider")
+-- local airplane_mode = require("widget.airplane-mode")
+-- local bluetooth_toggle = require("widget.bluetooth-toggle")
+-- local blue_light = require("widget.blue-light")
+local toggle_widgets = require("widget.toggles")
+local end_session = require("widget.end-session")
+local control_center_switch = require("widget.control-center-switch")
+
+panel_visible = false
+
+local format_item = function(widget)
+ return wibox.widget({
+ {
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ widget,
+ nil,
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ },
+ forced_height = dpi(88),
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+end
+
+local format_item_no_fix_height = function(widget)
+ return wibox.widget({
+ {
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ widget,
+ nil,
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+end
+
+local vertical_separator = wibox.widget({
+ orientation = "vertical",
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+})
+
+local control_center_row_one = wibox.widget({
+ layout = wibox.layout.align.horizontal,
+ forced_height = dpi(48),
+ nil,
+ format_item(user_profile()),
+ {
+ format_item({
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(10),
+ control_center_switch(),
+ vertical_separator,
+ end_session(),
+ }),
+ left = dpi(10),
+ widget = wibox.container.margin,
+ },
+})
+
+local main_control_row_two = wibox.widget({
+ layout = wibox.layout.flex.horizontal,
+ spacing = dpi(10),
+ format_item_no_fix_height({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ toggle_widgets.airplane_mode.circular,
+ toggle_widgets.bluetooth.circular,
+ toggle_widgets.blue_light.circular,
+ }),
+ {
+ layout = wibox.layout.flex.vertical,
+ spacing = dpi(10),
+ format_item_no_fix_height({
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ require("widget.dont-disturb"),
+ nil,
+ }),
+ format_item_no_fix_height({
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ toggle_widgets.blur_effects.circular,
+ nil,
+ }),
+ },
+})
+
+local main_control_row_sliders = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ format_item({
+ blur_slider,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+ format_item({
+ brightness_slider,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+ format_item({
+ volume_slider,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+})
+
+local main_control_music_box = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ format_item({
+ mpd,
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ }),
+})
+
+local monitor_control_row_progressbars = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ format_item(cpu_meter),
+ format_item(ram_meter),
+ format_item(temperature_meter),
+ format_item(harddrive_meter),
+})
+
+local control_center = function(s)
+ -- Set the control center geometry
+ local panel_width = dpi(400)
+ local panel_margins = dpi(5)
+
+ local panel = awful.popup({
+ widget = {
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ control_center_row_one,
+ {
+ layout = wibox.layout.stack,
+ {
+ id = "main_control",
+ visible = true,
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ main_control_row_two,
+ main_control_row_sliders,
+ -- 🔧 TODO: format mpd
+ format_item(mpd),
+ },
+ {
+ id = "monitor_control",
+ visible = false,
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ monitor_control_row_progressbars,
+ },
+ },
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ },
+ id = "control_center",
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ screen = s,
+ type = "dock",
+ visible = false,
+ ontop = true,
+ width = dpi(panel_width),
+ maximum_width = dpi(panel_width),
+ maximum_height = dpi(s.geometry.height),
+ bg = beautiful.transparent,
+ fg = beautiful.fg_normal,
+ shape = gears.shape.rectangle,
+ })
+
+ awful.placement.top_right(panel, {
+ honor_workarea = true,
+ parent = s,
+ margins = {
+ top = dpi(33),
+ right = dpi(5),
+ },
+ })
+
+ panel.opened = false
+
+ s.backdrop_control_center = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ local open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_control_center.visible = true
+ focused.control_center.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ local close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.control_center.visible = false
+ focused.backdrop_control_center.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ s.backdrop_control_center:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ panel:toggle()
+ end)))
+
+ return panel
+end
+
+return control_center
diff --git a/config/awesome/layout/surreal/info-center/init.lua b/config/awesome/layout/surreal/info-center/init.lua
new file mode 100644
index 000000000..0985ff6f1
--- /dev/null
+++ b/config/awesome/layout/surreal/info-center/init.lua
@@ -0,0 +1,120 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local email = require("widget.email")
+local weather = require("widget.weather")
+local notification_center = require("widget.notif-center")
+local dpi = beautiful.xresources.apply_dpi
+panel_visible = false
+
+local vertical_separator = wibox.widget({
+ orientation = "vertical",
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+})
+
+local info_center = function(s)
+ -- Set the info center geometry
+ local panel_width = dpi(350)
+ local panel_margins = dpi(5)
+
+ local panel = awful.popup({
+ widget = {
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ forced_width = dpi(panel_width),
+ spacing = dpi(10),
+ email,
+ weather,
+ notification_center(s),
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ },
+ id = "info_center",
+ bg = beautiful.background,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ },
+ screen = s,
+ type = "dock",
+ visible = false,
+ ontop = true,
+ width = dpi(panel_width),
+ maximum_width = dpi(panel_width),
+ maximum_height = dpi(s.geometry.height - 38),
+ bg = beautiful.transparent,
+ fg = beautiful.fg_normal,
+ shape = gears.shape.rectangle,
+ })
+
+ awful.placement.top_right(panel, {
+ honor_workarea = true,
+ parent = s,
+ margins = {
+ top = dpi(33),
+ right = dpi(5),
+ },
+ })
+
+ panel.opened = false
+
+ s.backdrop_info_center = wibox({
+ ontop = true,
+ screen = s,
+ bg = beautiful.transparent,
+ type = "utility",
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ local open_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = true
+
+ focused.backdrop_info_center.visible = true
+ focused.info_center.visible = true
+
+ panel:emit_signal("opened")
+ end
+
+ local close_panel = function()
+ local focused = awful.screen.focused()
+ panel_visible = false
+
+ focused.info_center.visible = false
+ focused.backdrop_info_center.visible = false
+
+ panel:emit_signal("closed")
+ end
+
+ -- Hide this panel when app dashboard is called.
+ function panel:hide_dashboard()
+ close_panel()
+ end
+
+ function panel:toggle()
+ self.opened = not self.opened
+ if self.opened then
+ open_panel()
+ else
+ close_panel()
+ end
+ end
+
+ s.backdrop_info_center:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ panel:toggle()
+ end)))
+
+ return panel
+end
+
+return info_center
diff --git a/config/awesome/layout/surreal/init.lua b/config/awesome/layout/surreal/init.lua
new file mode 100644
index 000000000..a5f058369
--- /dev/null
+++ b/config/awesome/layout/surreal/init.lua
@@ -0,0 +1,66 @@
+local awful = require("awful")
+local path_to_file = ...
+
+local top_panel = require(path_to_file .. ".top-panel")
+local bottom_panel = require(path_to_file .. ".bottom-panel")
+local control_center = require(path_to_file .. ".control-center")
+local info_center = require(path_to_file .. ".info-center")
+local theme_picker = require("widget.theme-picker")
+-- Create a wibox panel for each screen and add it
+screen.connect_signal("request::desktop_decoration", function(s)
+ s.top_panel = top_panel(s)
+ s.bottom_panel = bottom_panel(s)
+ s.control_center = control_center(s)
+ s.info_center = info_center(s)
+ s.theme_picker = theme_picker(s)
+ s.control_center_show_again = false
+ s.info_center_show_again = false
+end)
+
+-- Hide bars when app go fullscreen
+function update_bars_visibility()
+ for s in screen do
+ if s.selected_tag then
+ local fullscreen = s.selected_tag.fullscreen_mode
+ -- Order matter here for shadow
+ s.top_panel.visible = not fullscreen
+ s.bottom_panel.visible = not fullscreen
+ if s.control_center then
+ if fullscreen and s.control_center.visible then
+ s.control_center:toggle()
+ s.control_center_show_again = true
+ elseif not fullscreen and not s.control_center.visible and s.control_center_show_again then
+ s.control_center:toggle()
+ s.control_center_show_again = false
+ end
+ end
+ if s.info_center then
+ if fullscreen and s.info_center.visible then
+ s.info_center:toggle()
+ s.info_center_show_again = true
+ elseif not fullscreen and not s.info_center.visible and s.info_center_show_again then
+ s.info_center:toggle()
+ s.info_center_show_again = false
+ end
+ end
+ end
+ end
+end
+
+tag.connect_signal("property::selected", function(t)
+ update_bars_visibility()
+end)
+
+client.connect_signal("property::fullscreen", function(c)
+ if c.first_tag then
+ c.first_tag.fullscreen_mode = c.fullscreen
+ end
+ update_bars_visibility()
+end)
+
+client.connect_signal("unmanage", function(c)
+ if c.fullscreen then
+ c.screen.selected_tag.fullscreen_mode = false
+ update_bars_visibility()
+ end
+end)
diff --git a/config/awesome/layout/surreal/top-panel.lua b/config/awesome/layout/surreal/top-panel.lua
new file mode 100755
index 000000000..e462b0437
--- /dev/null
+++ b/config/awesome/layout/surreal/top-panel.lua
@@ -0,0 +1,104 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local icons = require("theme.icons")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local task_list = require("widget.task-list")
+local tray_toggler = require("widget.tray-toggle")
+local updater = require("widget.package-updater")
+local screen_rec = require("widget.screen-recorder")
+local keyboard_layout = require("widget.keyboard-layout")
+local bluetooth = require("widget.bluetooth")
+local battery = require("widget.battery")
+local network = require("widget.network")
+local theme_picker_toggle = require("widget.theme-picker-toggle")
+local control_center_toggle = require("widget.control-center-toggle")
+local global_search = require("widget.global-search")
+local info_center_toggle = require("widget.info-center-toggle")
+
+local top_panel = function(s)
+ local panel = wibox({
+ ontop = true,
+ screen = s,
+ type = "dock",
+ height = dpi(28),
+ width = s.geometry.width,
+ x = s.geometry.x,
+ y = s.geometry.y,
+ stretch = false,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ })
+
+ panel:struts({
+ top = dpi(28),
+ })
+
+ panel:connect_signal("mouse::enter", function()
+ local w = mouse.current_wibox
+ if w then
+ w.cursor = "left_ptr"
+ end
+ end)
+
+ s.systray = wibox.widget({
+ visible = false,
+ base_size = dpi(20),
+ horizontal = true,
+ screen = "primary",
+ widget = wibox.widget.systray,
+ })
+
+ local clock = require("widget.clock")(s)
+ local layout_box = require("widget.layoutbox")(s)
+ local add_button = require("widget.open-default-app")(s)
+ s.tray_toggler = tray_toggler
+ s.updater = updater()
+ s.screen_rec = screen_rec()
+ s.bluetooth = bluetooth()
+ s.keyboard_layout = keyboard_layout()
+ s.battery = battery()
+ s.network = network()
+ s.control_center_toggle = control_center_toggle()
+ s.global_search = global_search()
+ s.info_center_toggle = info_center_toggle()
+ s.theme_picker_toggle = theme_picker_toggle()
+
+ panel:setup({
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ {
+ layout = wibox.layout.fixed.horizontal,
+ task_list(s),
+ add_button,
+ },
+ clock,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ s.systray,
+ margins = dpi(5),
+ widget = wibox.container.margin,
+ },
+ s.tray_toggler,
+ s.updater,
+ s.screen_rec,
+ s.network,
+ s.bluetooth,
+ s.battery,
+ s.control_center_toggle,
+ s.global_search,
+ s.keyboard_layout,
+ s.theme_picker_toggle,
+ layout_box,
+ s.info_center_toggle,
+ },
+ })
+
+ return panel
+end
+
+return top_panel
diff --git a/config/awesome/floppy/library/json.lua b/config/awesome/library/json.lua
similarity index 100%
rename from config/awesome/floppy/library/json.lua
rename to config/awesome/library/json.lua
diff --git a/config/awesome/linear/configuration/apps.lua b/config/awesome/linear/configuration/apps.lua
deleted file mode 100644
index aa468a75e..000000000
--- a/config/awesome/linear/configuration/apps.lua
+++ /dev/null
@@ -1,86 +0,0 @@
-local filesystem = require('gears.filesystem')
-local config_dir = filesystem.get_configuration_dir()
-local utils_dir = config_dir .. 'utilities/'
-
-return {
- -- The default applications that we will use in keybindings and widgets
- default = {
- -- Default terminal emulator
- terminal = 'kitty',
- -- Default web browser
- web_browser = 'firefox',
- -- Default text editor
- text_editor = 'subl3',
- -- Default file manager
- file_manager = 'dolphin',
- -- Default media player
- multimedia = 'vlc',
- -- Default game, can be a launcher like steam
- game = 'supertuxkart',
- -- Default graphics editor
- graphics = 'gimp-2.10',
- -- Default sandbox
- sandbox = 'virtualbox',
- -- Default IDE
- development = '',
- -- Default network manager
- network_manager = 'kitty iwctl',
- -- Default bluetooth manager
- bluetooth_manager = 'blueman-manager',
- -- Default power manager
- power_manager = 'xfce4-power-manager',
- -- Default GUI package manager
- package_manager = 'pamac-manager',
- -- Default locker
- lock = 'awesome-client "awesome.emit_signal(\'module::lockscreen_show\')"',
- -- Default quake terminal
- quake = 'kitty --name QuakeTerminal',
- -- Default rofi global menu
- rofi_global = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show "Global Search" -modi "Global Search":' .. config_dir ..
- '/configuration/rofi/global/rofi-spotlight.sh' ..
- ' -theme ' .. config_dir ..
- '/configuration/rofi/global/rofi.rasi',
- -- Default app menu
- rofi_appmenu = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show drun -theme ' .. config_dir ..
- '/configuration/rofi/appmenu/rofi.rasi'
-
- -- You can add more default applications here
- },
-
- -- List of apps to start once on start-up
- run_on_start_up = {
- -- Compositor
- 'picom -b --experimental-backends --dbus --config ' ..
- config_dir .. '/configuration/picom.conf',
- -- Blueman applet
- 'blueman-applet',
- -- Music server
- 'mpd',
- -- Polkit and keyring
- '/usr/bin/lxqt-policykit-agent &' ..
- ' eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg)',
- -- Load X colors
- 'xrdb $HOME/.Xresources',
- -- Audio equalizer
- 'pulseeffects --gapplication-service',
- -- Lockscreen timer
- [[
- xidlehook --not-when-fullscreen --not-when-audio --timer 600 \
- "awesome-client 'awesome.emit_signal(\"module::lockscreen_show\")'" ""
- ]]
-
- -- You can add more start-up applications here
- },
-
- -- List of binaries/shell scripts that will execute for a certain task
- utils = {
- -- Fullscreen screenshot
- full_screenshot = utils_dir .. 'snap full',
- -- Area screenshot
- area_screenshot = utils_dir .. 'snap area',
- -- Update profile picture
- update_profile = utils_dir .. 'profile-image'
- }
-}
diff --git a/config/awesome/linear/configuration/client/buttons.lua b/config/awesome/linear/configuration/client/buttons.lua
deleted file mode 100644
index e744393f2..000000000
--- a/config/awesome/linear/configuration/client/buttons.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local awful = require('awful')
-local modkey = require('configuration.keys.mod').mod_key
-
-return awful.util.table.join(
- awful.button(
- {},
- 1,
- function(c)
- c:emit_signal('request::activate')
- c:raise()
- end
- ),
- awful.button(
- {modkey},
- 1,
- awful.mouse.client.move
- ),
- awful.button(
- {modkey},
- 3,
- awful.mouse.client.resize
- ),
- awful.button(
- {modkey},
- 4,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {modkey},
- 5,
- function()
- awful.layout.inc(-1)
- end
- )
-)
diff --git a/config/awesome/linear/configuration/client/init.lua b/config/awesome/linear/configuration/client/init.lua
deleted file mode 100644
index a5bc87265..000000000
--- a/config/awesome/linear/configuration/client/init.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-require('configuration.client.rules')
-require('configuration.client.signals')
diff --git a/config/awesome/linear/configuration/client/keys.lua b/config/awesome/linear/configuration/client/keys.lua
deleted file mode 100644
index 3182e41bd..000000000
--- a/config/awesome/linear/configuration/client/keys.lua
+++ /dev/null
@@ -1,216 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-require('awful.autofocus')
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-
-local client_keys = awful.util.table.join(
- awful.key(
- {modkey},
- 'f',
- function(c)
- c.fullscreen = not c.fullscreen
- c:raise()
- end,
- {description = 'toggle fullscreen', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'q',
- function(c)
- c:kill()
- end,
- {description = 'close', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'd',
- function()
- awful.client.focus.byidx(1)
- end,
- {description = 'focus next by index', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'a',
- function()
- awful.client.focus.byidx(-1)
- end,
- {description = 'focus previous by index', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'd',
- function ()
- awful.client.swap.byidx(1)
- end,
- {description = 'swap with next client by index', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'a',
- function ()
- awful.client.swap.byidx(-1)
- end,
- {description = 'swap with next client by index', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'u',
- awful.client.urgent.jumpto,
- {description = 'jump to urgent client', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Tab',
- function()
- awful.client.focus.history.previous()
- if client.focus then
- client.focus:raise()
- end
- end,
- {description = 'go back', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'n',
- function(c)
- c.minimized = true
- end,
- {description = 'minimize client', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'c',
- function(c)
- local focused = awful.screen.focused()
-
- awful.placement.centered(c, {
- honor_workarea = true
- })
- end,
- {description = 'align a client to the center of the focused screen', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'c',
- function(c)
- c.fullscreen = false
- c.maximized = false
- c.floating = not c.floating
- c:raise()
- end,
- {description = 'toggle floating', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Up',
- function(c)
- c:relative_move(0, dpi(-10), 0, 0)
- end,
- {description = 'move floating client up by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Down',
- function(c)
- c:relative_move(0, dpi(10), 0, 0)
- end,
- {description = 'move floating client down by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Left',
- function(c)
- c:relative_move(dpi(-10), 0, 0, 0)
- end,
- {description = 'move floating client to the left by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Right',
- function(c)
- c:relative_move(dpi(10), 0, 0, 0)
- end,
- {description = 'move floating client to the right by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Up',
- function(c)
- c:relative_move(0, dpi(-10), 0, dpi(10))
- end,
- {description = 'increase floating client size vertically by 10 px up', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Down',
- function(c)
- c:relative_move(0, 0, 0, dpi(10))
- end,
- {description = 'increase floating client size vertically by 10 px down', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Left',
- function(c)
- c:relative_move(dpi(-10), 0, dpi(10), 0)
- end,
- {description = 'increase floating client size horizontally by 10 px left', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Right',
- function(c)
- c:relative_move(0, 0, dpi(10), 0)
- end,
- {description = 'increase floating client size horizontally by 10 px right', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Up',
- function(c)
- if c.height > 10 then
- c:relative_move(0, 0, 0, dpi(-10))
- end
- end,
- {description = 'decrease floating client size vertically by 10 px up', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Down',
- function(c)
- local c_height = c.height
- c:relative_move(0, 0, 0, dpi(-10))
- if c.height ~= c_height and c.height > 10 then
- c:relative_move(0, dpi(10), 0, 0)
- end
- end,
- {description = 'decrease floating client size vertically by 10 px down', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Left',
- function(c)
- if c.width > 10 then
- c:relative_move(0, 0, dpi(-10), 0)
- end
- end,
- {description = 'decrease floating client size horizontally by 10 px left', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Right',
- function(c)
- local c_width = c.width
- c:relative_move(0, 0, dpi(-10), 0)
- if c.width ~= c_width and c.width > 10 then
- c:relative_move(dpi(10), 0 , 0, 0)
- end
- end,
- {description = 'decrease floating client size horizontally by 10 px right', group = 'client'}
- )
-)
-
-return client_keys
diff --git a/config/awesome/linear/configuration/client/rules.lua b/config/awesome/linear/configuration/client/rules.lua
deleted file mode 100644
index 0ab0b1158..000000000
--- a/config/awesome/linear/configuration/client/rules.lua
+++ /dev/null
@@ -1,393 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local ruled = require('ruled')
-local beautiful = require('beautiful')
-local client_keys = require('configuration.client.keys')
-local client_buttons = require('configuration.client.buttons')
-
-ruled.client.connect_signal(
- 'request::rules',
- function()
- -- All clients will match this rule.
- ruled.client.append_rule {
- id = 'global',
- rule = {},
- properties = {
- focus = awful.client.focus.filter,
- raise = true,
- floating = false,
- maximized = false,
- above = false,
- below = false,
- ontop = false,
- sticky = false,
- maximized_horizontal = false,
- maximized_vertical = false,
- keys = client_keys,
- buttons = client_buttons,
- screen = awful.screen.preferred,
- placement = awful.placement.no_overlap + awful.placement.no_offscreen
- }
- }
-
- ruled.client.append_rule {
- id = 'round_clients',
- rule_any = {
- type = {
- 'normal',
- 'dialog'
- }
- },
- except_any = {
- name = {'Discord Updater'}
- },
- properties = {
- round_corners = true,
- shape = beautiful.client_shape_rounded
- }
- }
-
- -- Titlebar rules
- ruled.client.append_rule {
- id = 'titlebars',
- rule_any = {
- type = {
- 'normal',
- 'dialog',
- 'modal',
- 'utility'
- }
- },
- properties = {
- titlebars_enabled = true
- }
- }
-
- -- Dialogs
- ruled.client.append_rule {
- id = 'dialog',
- rule_any = {
- type = {'dialog'},
- class = {'Wicd-client.py', 'calendar.google.com'}
- },
- properties = {
- titlebars_enabled = true,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Modals
- ruled.client.append_rule {
- id = 'modal',
- rule_any = {
- type = {'modal'}
- },
- properties = {
- titlebars_enabled = true,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Utilities
- ruled.client.append_rule {
- id = 'utility',
- rule_any = {
- type = {'utility'}
- },
- properties = {
- titlebars_enabled = false,
- floating = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Splash
- ruled.client.append_rule {
- id = 'splash',
- rule_any = {
- type = {'splash'},
- name = {'Discord Updater'}
- },
- properties = {
- titlebars_enabled = false,
- round_corners = false,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Terminal emulators
- ruled.client.append_rule {
- id = 'terminals',
- rule_any = {
- class = {
- 'URxvt',
- 'XTerm',
- 'UXTerm',
- 'kitty',
- 'K3rmit'
- }
- },
- properties = {
- tag = '1',
- switch_to_tags = true,
- size_hints_honor = false,
- titlebars_enabled = true
- }
- }
-
- -- Browsers and chats
- ruled.client.append_rule {
- id = 'internet',
- rule_any = {
- class = {
- 'firefox',
- 'Tor Browser',
- 'discord',
- 'Chromium',
- 'Google-chrome',
- 'TelegramDesktop'
- }
- },
- properties = {
- tag = '2'
- }
- }
-
- -- Text editors and word processing
- ruled.client.append_rule {
- id = 'text',
- rule_any = {
- class = {
- 'Geany',
- 'Atom',
- 'Subl3',
- 'code-oss'
- },
- name = {
- 'LibreOffice',
- 'libreoffice'
- }
- },
- properties = {
- tag = '3'
- }
- }
-
- -- File managers
- ruled.client.append_rule {
- id = 'files',
- rule_any = {
- class = {
- 'dolphin',
- 'ark',
- 'Nemo',
- 'File-roller'
- }
- },
- properties = {
- tag = '4',
- switch_to_tags = true
- }
- }
-
- -- Multimedia
- ruled.client.append_rule {
- id = 'multimedia',
- rule_any = {
- class = {
- 'vlc',
- 'Spotify'
- }
- },
- properties = {
- tag = '5',
- switch_to_tags = true,
- placement = awful.placement.centered
- }
- }
-
- -- Gaming
- ruled.client.append_rule {
- id = 'gaming',
- rule_any = {
- class = {
- 'Wine',
- 'dolphin-emu',
- 'Steam',
- 'Citra',
- 'supertuxkart'
- },
- name = {'Steam'}
- },
- properties = {
- tag = '6',
- skip_decoration = true,
- switch_to_tags = true,
- placement = awful.placement.centered
- }
- }
-
- -- Multimedia Editing
- ruled.client.append_rule {
- id = 'graphics',
- rule_any = {
- class = {
- 'Gimp-2.10',
- 'Inkscape',
- 'Flowblade'
- }
- },
- properties = {
- tag = '7'
- }
- }
-
- -- Sandboxes and VMs
- ruled.client.append_rule {
- id = 'sandbox',
- rule_any = {
- class = {
- 'VirtualBox Manage',
- 'VirtualBox Machine',
- 'Gnome-boxes',
- 'Virt-manager'
- }
- },
- properties = {
- tag = '8'
- }
- }
-
- -- IDEs and Tools
- ruled.client.append_rule {
- id = 'development',
- rule_any = {
- class = {
- 'Oomox',
- 'Unity',
- 'UnityHub',
- 'jetbrains-studio',
- 'Ettercap',
- 'scrcpy'
- }
- },
- properties = {
- tag = '9',
- skip_decoration = true
- }
- }
-
- -- Image viewers
- ruled.client.append_rule {
- id = 'image_viewers',
- rule_any = {
- class = {
- 'feh',
- 'Pqiv',
- 'Sxiv'
- },
- },
- properties = {
- titlebars_enabled = true,
- skip_decoration = true,
- floating = true,
- ontop = true,
- placement = awful.placement.centered
- }
- }
-
- -- Floating
- ruled.client.append_rule {
- id = 'floating',
- rule_any = {
- instance = {
- 'file_progress',
- 'Popup',
- 'nm-connection-editor',
- },
- class = {
- 'scrcpy',
- 'Mugshot',
- 'Pulseeffects'
- },
- role = {
- 'AlarmWindow',
- 'ConfigManager',
- 'pop-up'
- }
- },
- properties = {
- titlebars_enabled = true,
- skip_decoration = true,
- ontop = true,
- floating = true,
- focus = awful.client.focus.filter,
- raise = true,
- keys = client_keys,
- buttons = client_buttons,
- placement = awful.placement.centered
- }
- }
- end
-)
-
--- Normally we'd do this with a rule, but some program like spotify doesn't set its class or name
--- until after it starts up, so we need to catch that signal.
-client.connect_signal(
- 'property::class',
- function(c)
- if c.class == 'Spotify' then
- local window_mode = false
-
- -- Check if fullscreen or window mode
- if c.fullscreen then
- window_mode = false
- c.fullscreen = false
- else
- window_mode = true
- end
-
- -- Check if Spotify is already open
- local app = function (c)
- return ruled.client.match(c, {class = 'Spotify'})
- end
-
- local app_count = 0
- for c in awful.client.iterate(app) do
- app_count = app_count + 1
- end
-
- -- If Spotify is already open, don't open a new instance
- if app_count > 1 then
- c:kill()
- -- Switch to previous instance
- for c in awful.client.iterate(app) do
- c:jump_to(false)
- end
- else
- -- Move the instance to specified tag on this screen
- local t = awful.tag.find_by_name(awful.screen.focused(), '5')
- c:move_to_tag(t)
- t:view_only()
-
- -- Fullscreen mode if not window mode
- if not window_mode then
- c.fullscreen = true
- else
- c.floating = true
- awful.placement.centered(c, {honor_workarea = true})
- end
- end
- end
- end
-)
diff --git a/config/awesome/linear/configuration/client/signals.lua b/config/awesome/linear/configuration/client/signals.lua
deleted file mode 100644
index a13a4aa44..000000000
--- a/config/awesome/linear/configuration/client/signals.lua
+++ /dev/null
@@ -1,115 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local update_client = function(c)
- -- Set client's shape based on its tag's layout and status (floating, maximized, etc.)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if current_layout == awful.layout.suit.max and (not c.floating) then
- c.shape = beautiful.client_shape_rectangle
- elseif c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- elseif (not c.round_corners) then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
-end
-
--- Signal function to execute when a new client appears.
-client.connect_signal(
- 'manage',
- function(c)
- -- Focus, raise and activate
- c:emit_signal(
- 'request::activate',
- 'mouse_enter',
- {
- raise = true
- }
- )
-
- -- Set the windows at the slave,
- -- i.e. put it at the end of others instead of setting it master.
- if not awesome.startup then
- awful.client.setslave(c)
- end
-
- if awesome.startup and not c.size_hints.user_position and
- not c.size_hints.program_position then
- -- Prevent clients from being unreachable after screen count changes.
- awful.placement.no_offscreen(c)
- end
-
- -- Update client shape
- update_client(c)
- end
-)
-
--- Enable sloppy focus, so that focus follows mouse then raises it.
-client.connect_signal(
- 'mouse::enter',
- function(c)
- c:emit_signal(
- 'request::activate',
- 'mouse_enter',
- {
- raise = true
- }
- )
- end
-)
-
-client.connect_signal(
- 'focus',
- function(c)
- c.border_color = beautiful.border_focus
- end
-)
-
-client.connect_signal(
- 'unfocus',
- function(c)
- c.border_color = beautiful.border_normal
- end
-)
-
--- Manipulate client shape on fullscreen/non-fullscreen
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- update_client(c)
- end
- end
-)
-
--- Manipulate client shape on maximized
-client.connect_signal(
- 'property::maximized',
- function(c)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if c.maximized then
- c.shape = beautiful.client_shape_rectangle
- else
- update_client(c)
- end
- end
-)
-
--- Manipulate client shape on floating
-client.connect_signal(
- 'property::floating',
- function(c)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if c.floating and not c.maximized then
- c.shape = beautiful.client_shape_rounded
- else
- if current_layout == awful.layout.suit.max then
- c.shape = beautiful.client_shape_rectangle
- end
- end
- end
-)
diff --git a/config/awesome/linear/configuration/config.lua b/config/awesome/linear/configuration/config.lua
deleted file mode 100644
index 991beee66..000000000
--- a/config/awesome/linear/configuration/config.lua
+++ /dev/null
@@ -1,103 +0,0 @@
-return {
- widget = {
- email = {
- -- Email address
- address = '',
- -- App password
- app_password = '',
- -- Imap server
- imap_server = 'imap.gmail.com',
- -- Port
- port = '993'
- },
-
- weather = {
- -- API Key
- key = '',
- -- City ID
- city_id = '',
- -- Units
- units = 'metric',
- -- Update in N seconds
- update_interval = 1200
- },
-
- network = {
- -- Wired interface
- wired_interface = 'enp0s0',
- -- Wireless interface
- wireless_interface = 'wlan0'
- },
-
- clock = {
- -- Clock widget format
- military_mode = false
- },
-
- screen_recorder = {
- -- Default record dimension
- resolution = '1366x768',
- -- X,Y coordinate
- offset = '0,0',
- -- Enable audio by default
- audio = false,
- -- Recordings directory
- save_directory = '$(xdg-user-dir VIDEOS)/Recordings/',
- -- Mic level
- mic_level = '20',
- -- FPS
- fps = '30'
- }
- },
-
- module = {
- auto_start = {
- -- Will create notification if true
- debug_mode = false
- },
-
- dynamic_wallpaper = {
- -- Will look for wallpapers here
- wall_dir = 'theme/wallpapers/',
- -- Image formats
- valid_picture_formats = {'jpg', 'png', 'jpeg'},
- -- Leave this table empty for full auto scheduling
- wallpaper_schedule = {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- -- Example of just using auto-scheduling with keywords
- --[[
- 'midnight',
- 'morning',
- 'noon',
- 'afternoon',
- 'evening',
- 'night'
- --]]
- },
- -- Stretch background image across all screens(monitor)
- stretch = false
- },
-
- lockscreen = {
- -- Clock format
- military_clock = true,
- -- Default password if there's no PAM integration
- fallback_password = 'toor',
- -- Capture intruder using webcam
- capture_intruder = true,
- -- Intruder image save location (Will create directory if it doesn't exist)
- face_capture_dir = '$(xdg-user-dir PICTURES)/Intruders/',
- -- Background directory - Defaults to 'awesome/config/theme/wallpapers/' if null
- bg_dir = nil,
- -- Will look for this image file under 'bg_dir'
- bg_image = 'locksreen-bg.jpg',
- -- Blur lockscreen background
- blur_background = false,
- -- Blurred/filtered background image path (No reason to change this)
- tmp_wall_dir = '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
- }
- }
-}
diff --git a/config/awesome/linear/configuration/init.lua b/config/awesome/linear/configuration/init.lua
deleted file mode 100644
index f93e86bb2..000000000
--- a/config/awesome/linear/configuration/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- keys = require('configuration.keys'),
- apps = require('configuration.apps')
-}
diff --git a/config/awesome/linear/configuration/keys/global.lua b/config/awesome/linear/configuration/keys/global.lua
deleted file mode 100644
index 81ba2f05c..000000000
--- a/config/awesome/linear/configuration/keys/global.lua
+++ /dev/null
@@ -1,555 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-
-require('awful.autofocus')
-
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-local apps = require('configuration.apps')
-
--- Key bindings
-local global_keys = awful.util.table.join(
-
- -- Hotkeys
- awful.key(
- {modkey},
- 'F1',
- hotkeys_popup.show_help,
- {description = 'show help', group = 'awesome'}
- ),
- awful.key({modkey, 'Control'},
- 'r',
- awesome.restart,
- {description = 'reload awesome', group = 'awesome'}
- ),
-
- awful.key({modkey, 'Control'},
- 'q',
- awesome.quit,
- {description = 'quit awesome', group = 'awesome'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'l',
- function()
- awful.tag.incmwfact(0.05)
- end,
- {description = 'increase master width factor', group = 'layout'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'h',
- function()
- awful.tag.incmwfact(-0.05)
- end,
- {description = 'decrease master width factor', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'h',
- function()
- awful.tag.incnmaster(1, nil, true)
- end,
- {description = 'increase the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'l',
- function()
- awful.tag.incnmaster(-1, nil, true)
- end,
- {description = 'decrease the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'h',
- function()
- awful.tag.incncol(1, nil, true)
- end,
- {description = 'increase the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'l',
- function()
- awful.tag.incncol(-1, nil, true)
- end,
- {description = 'decrease the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'space',
- function()
- awful.layout.inc(1)
- end,
- {description = 'select next layout', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'space',
- function()
- awful.layout.inc(-1)
- end,
- {description = 'select previous layout', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'o',
- function()
- awful.tag.incgap(1)
- end,
- {description = 'increase gap', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'o',
- function()
- awful.tag.incgap(-1)
- end,
- {description = 'decrease gap', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'w',
- awful.tag.viewprev,
- {description = 'view previous tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 's',
- awful.tag.viewnext,
- {description = 'view next tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 'Escape',
- awful.tag.history.restore,
- {description = 'alternate between current and previous tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 'w',
- function ()
- -- tag_view_nonempty(-1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(-1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view previous non-empty tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 's',
- function ()
- -- tag_view_nonempty(1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view next non-empty tag', group = 'tag'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F1',
- function()
- awful.screen.focus_relative(-1)
- end,
- { description = 'focus the previous screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F2',
- function()
- awful.screen.focus_relative(1)
- end,
- { description = 'focus the next screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'n',
- function()
- local c = awful.client.restore()
- -- Focus restored client
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end,
- {description = 'restore minimized', group = 'screen'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessUp',
- function()
- awful.spawn('light -A 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'increase brightness by 10%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessDown',
- function()
- awful.spawn('light -U 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'decrease brightness by 10%', group = 'hotkeys'}
- ),
- -- ALSA volume control
- awful.key(
- {},
- 'XF86AudioRaiseVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%+', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'increase volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioLowerVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%-', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'decrease volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioMute',
- function()
- awful.spawn('amixer -D pulse set Master 1+ toggle', false)
- end,
- {description = 'toggle mute', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioNext',
- function()
- awful.spawn('mpc next', false)
- end,
- {description = 'next music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPrev',
- function()
- awful.spawn('mpc prev', false)
- end,
- {description = 'previous music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPlay',
- function()
- awful.spawn('mpc toggle', false)
- end,
- {description = 'play/pause music', group = 'hotkeys'}
-
- ),
- awful.key(
- {},
- 'XF86AudioMicMute',
- function()
- awful.spawn('amixer set Capture toggle', false)
- end,
- {description = 'mute microphone', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerDown',
- function()
- --
- end,
- {description = 'shutdown skynet', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerOff',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86Display',
- function()
- awful.spawn.single_instance('arandr', false)
- end,
- {description = 'arandr', group = 'hotkeys'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'q',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {modkey},
- '`',
- function()
- awesome.emit_signal('module::quake_terminal:toggle')
- end,
- {description = 'dropdown application', group = 'launcher'}
- ),
- awful.key(
- { },
- 'Print',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot,function() end)
- end,
- {description = 'fullscreen screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 's',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot,function() end)
- end,
- {description = 'area/selected screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'x',
- function()
- awesome.emit_signal('widget::blur:toggle')
- end,
- {description = 'toggle blur effects', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- ']',
- function()
- awesome.emit_signal('widget::blur:increase')
- end,
- {description = 'increase blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- '[',
- function()
- awesome.emit_signal('widget::blur:decrease')
- end,
- {description = 'decrease blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 't',
- function()
- awesome.emit_signal('widget::blue_light:toggle')
- end,
- {description = 'toggle redshift filter', group = 'Utility'}
- ),
- awful.key(
- { 'Control' },
- 'Escape',
- function ()
- if screen.primary.systray then
- if not screen.primary.tray_toggler then
- local systray = screen.primary.systray
- systray.visible = not systray.visible
- else
- awesome.emit_signal('widget::systray:toggle')
- end
- end
- end,
- {description = 'toggle systray visibility', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'l',
- function()
- awful.spawn(apps.default.lock, false)
- end,
- {description = 'lock the screen', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'Return',
- function()
- awful.spawn(apps.default.terminal)
- end,
- {description = 'open default terminal', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'e',
- function()
- awful.spawn(apps.default.file_manager)
- end,
- {description = 'open default file manager', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'f',
- function()
- awful.spawn(apps.default.web_browser)
- end,
- {description = 'open default web browser', group = 'launcher'}
- ),
- awful.key(
- {'Control', 'Shift'},
- 'Escape',
- function()
- awful.spawn(apps.default.terminal .. ' ' .. 'htop')
- end,
- {description = 'open system monitor', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'e',
- function()
- local focused = awful.screen.focused()
-
- if focused.control_center then
- focused.control_center:hide_dashboard()
- focused.control_center.opened = false
- end
- if focused.info_center then
- focused.info_center:hide_dashboard()
- focused.info_center.opened = false
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {},
- 'XF86Launch1',
- function()
- local focused = awful.screen.focused()
-
- if focused.control_center then
- focused.control_center:hide_dashboard()
- focused.control_center.opened = false
- end
- if focused.info_center then
- focused.info_center:hide_dashboard()
- focused.info_center.opened = false
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'x',
- function()
- awful.spawn(apps.default.rofi_global, false)
- end,
- {description = 'open global search', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'r',
- function()
- local focused = awful.screen.focused()
- if focused.info_center and focused.info_center.visible then
- focused.info_center:toggle()
- end
- focused.control_center:toggle()
- end,
- {description = 'open control center', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'r',
- function()
- local focused = awful.screen.focused()
- if focused.control_center and focused.control_center.visible then
- focused.control_center:toggle()
- end
- focused.info_center:toggle()
- end,
- {description = 'open info center', group = 'launcher'}
- )
-)
-
--- Bind all key numbers to tags.
--- Be careful: we use keycodes to make it work on any keyboard layout.
--- This should map on the top row of your keyboard, usually 1 to 9.
-for i = 1, 9 do
- -- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
- local descr_view, descr_toggle, descr_move, descr_toggle_focus
- if i == 1 or i == 9 then
- descr_view = {description = 'view tag #', group = 'tag'}
- descr_toggle = {description = 'toggle tag #', group = 'tag'}
- descr_move = {description = 'move focused client to tag #', group = 'tag'}
- descr_toggle_focus = {description = 'toggle focused client on tag #', group = 'tag'}
- end
- global_keys =
- awful.util.table.join(
- global_keys,
- -- View tag only.
- awful.key(
- {modkey},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- tag:view_only()
- end
- end,
- descr_view
- ),
- -- Toggle tag display.
- awful.key(
- {modkey, 'Control'},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end,
- descr_toggle
- ),
- -- Move client to tag.
- awful.key(
- {modkey, 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:move_to_tag(tag)
- end
- end
- end,
- descr_move
- ),
- -- Toggle tag on focused client.
- awful.key(
- {modkey, 'Control', 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:toggle_tag(tag)
- end
- end
- end,
- descr_toggle_focus
- )
- )
-end
-
-return global_keys
diff --git a/config/awesome/linear/configuration/keys/init.lua b/config/awesome/linear/configuration/keys/init.lua
deleted file mode 100644
index 959166741..000000000
--- a/config/awesome/linear/configuration/keys/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- mod = require('configuration.keys.mod'),
- global = require('configuration.keys.global')
-}
diff --git a/config/awesome/linear/configuration/keys/mod.lua b/config/awesome/linear/configuration/keys/mod.lua
deleted file mode 100644
index d7791de22..000000000
--- a/config/awesome/linear/configuration/keys/mod.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- mod_key = 'Mod4',
- alt_key = 'Mod1'
-}
diff --git a/config/awesome/linear/configuration/picom.conf b/config/awesome/linear/configuration/picom.conf
deleted file mode 100644
index 47d62723b..000000000
--- a/config/awesome/linear/configuration/picom.conf
+++ /dev/null
@@ -1,155 +0,0 @@
-# ░█▀█░▀█▀░█▀▀░█▀█░█▄█░░░░█▀▀░█▀█░█▀█░█▀▀
-# ░█▀▀░░█░░█░░░█░█░█░█░░░░█░░░█░█░█░█░█▀▀
-# ░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░░▀▀▀░▀▀▀░▀░▀░▀░░
-#
-# X compositor configuration
-
-# ░█▀▀░█░█░█▀█░█▀▄░█▀█░█░█
-# ░▀▀█░█▀█░█▀█░█░█░█░█░█▄█
-# ░▀▀▀░▀░▀░▀░▀░▀▀░░▀▀▀░▀░▀
-
-shadow = false;
-shadow-radius = 12;
-shadow-opacity = 0.75;
-shadow-offset-x = -12;
-shadow-offset-y = -12;
-
-# shadow-red = 0
-# shadow-green = 0
-# shadow-blue = 0
-shadow-color = "#000000";
-
-shadow-exclude = [
- "name = 'Notification'",
- "class_g = 'Conky'",
- "class_g ?= 'Notify-osd'",
- "class_g = 'Cairo-clock'",
- "class_g = 'slop'",
- "class_g = 'Firefox' && argb",
- "class_g = 'Rofi'",
- "_GTK_FRAME_EXTENTS@:c",
- "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
-];
-
-# shadow-exclude-reg = "x10+0+0";
-# xinerama-shadow-crop = true;
-
-# ░█▀▀░█▀█░█▀▄░▀█▀░█▀█░█▀▀
-# ░█▀▀░█▀█░█░█░░█░░█░█░█░█
-# ░▀░░░▀░▀░▀▀░░▀▀▀░▀░▀░▀▀▀
-
-fading = true;
-fade-in-step = 0.03;
-fade-out-step = 0.03;
-fade-delta = 3;
-
-fade-exclude = [];
-
-no-fading-openclose = false;
-no-fading-destroyed-argb = true;
-
-# ░█▀█░█▀█░█▀█░█▀▀░▀█▀░▀█▀░█░█
-# ░█░█░█▀▀░█▀█░█░░░░█░░░█░░░█░
-# ░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀░░▀░░░▀░
-
-inactive-opacity = 1;
-frame-opacity = 1;
-inactive-opacity-override = false;
-active-opacity = 1.0;
-inactive-dim = 0.0;
-
-focus-exclude = [
- "class_g = 'Cairo-clock'",
- "class_g ?= 'rofi'",
- "class_g ?= 'slop'",
- "class_g ?= 'Steam'"
-];
-
-# inactive-dim-fixed = 1.0;
-
-opacity-rule = [
- "80:class_g = 'URxvt'",
- "80:class_g = 'UXTerm'",
- "80:class_g = 'XTerm'"
-]
-
-# ░█▀▄░█░░░█░█░█▀▄░█▀▄░▀█▀░█▀█░█▀▀
-# ░█▀▄░█░░░█░█░█▀▄░█▀▄░░█░░█░█░█░█
-# ░▀▀░░▀▀▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-blur: {
- method = "dual_kawase";
- strength = 5.0;
- deviation = 1.0;
- kernel = "11x11gaussian";
-}
-
-blur-background = false;
-blur-background-frame = true;
-blur-background-fixed = true;
-# blur-kern = "3x3box";
-
-blur-background-exclude = [
- "class_g = 'slop'",
- "class_g = 'Firefox' && argb",
- "_GTK_FRAME_EXTENTS@:c"
-];
-
-# ░█▀▀░█▀▀░█▀█░█▀▀░█▀▄░█▀█░█░░░░░█▀▀░█▀▀░▀█▀░▀█▀░▀█▀░█▀█░█▀▀░█▀▀
-# ░█░█░█▀▀░█░█░█▀▀░█▀▄░█▀█░█░░░░░▀▀█░█▀▀░░█░░░█░░░█░░█░█░█░█░▀▀█
-# ░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀
-
-daemon = false;
-backend = "glx";
-vsync = true;
-dbus = false;
-mark-wmwin-focused = true;
-mark-ovredir-focused = true;
-detect-rounded-corners = true;
-detect-client-opacity = true;
-refresh-rate = 0;
-# use-ewmh-active-win = true;
-# unredir-if-possible = false;
-# unredir-if-possible-delay = 0;
-
-unredir-if-possible-exclude = [];
-
-detect-transient = true;
-detect-client-leader = true;
-resize-damage = 1;
-
-invert-color-include = [];
-
-glx-no-stencil = true;
-# glx-no-rebind-pixmap = false;
-use-damage = true;
-# xrender-sync-fence = true;
-
-# glx-fshader-win = "";
-# force-win-blend = false;
-
-# no-ewmh-fullscreen = false;
-# max-brightness = 1.0;
-
-transparent-clipping = false;
-
-log-level = "warn";
-log-file = "~/.cache/picom-log.log";
-show-all-xerrors = true;
-# write-pid-path = '/path/to/your/mom';
-
-wintypes: {
- tooltip = { fade = true; shadow = false; focus = false; };
- normal = { shadow = false; };
- dock = { shadow = false; };
- dnd = { shadow = false; };
- popup_menu = { shadow = true; focus = false; opacity = 0.90; };
- dropdown_menu = { shadow = false; focus = false; };
- above = { shadow = true; };
- splash = { shadow = false; };
- utility = { focus = false; shadow = false; blur-background = false; };
- notification = { shadow = false; };
- desktop = { shadow = false; blur-background = false; };
- menu = { focus = false; };
- dialog = { shadow = true; };
-};
diff --git a/config/awesome/linear/configuration/rofi/appmenu/rofi.rasi b/config/awesome/linear/configuration/rofi/appmenu/rofi.rasi
deleted file mode 100644
index 1ab875f13..000000000
--- a/config/awesome/linear/configuration/rofi/appmenu/rofi.rasi
+++ /dev/null
@@ -1,149 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: true;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- text-color: @foreground;
- location: northwest;
- anchor: northwest;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 6px;
- margin: 0px calc((100% - 640px) / 2) 0px calc((100% - 640px) / 2);
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 6;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 70px 15% 0 15%;
- /*padding: 70px 135px 0 135px;*/
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: vertical;
- border-radius: 12px;
- padding: 25px 0 25px 0;
-}
-
-element-icon {
- size: 72px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0.5;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/linear/configuration/rofi/global/icons/ddg.svg b/config/awesome/linear/configuration/rofi/global/icons/ddg.svg
deleted file mode 100644
index 20ea387ba..000000000
--- a/config/awesome/linear/configuration/rofi/global/icons/ddg.svg
+++ /dev/null
@@ -1,615 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/configuration/rofi/global/icons/google.svg b/config/awesome/linear/configuration/rofi/global/icons/google.svg
deleted file mode 100644
index 21e5bf37a..000000000
--- a/config/awesome/linear/configuration/rofi/global/icons/google.svg
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/configuration/rofi/global/icons/history.svg b/config/awesome/linear/configuration/rofi/global/icons/history.svg
deleted file mode 100644
index 872bac835..000000000
--- a/config/awesome/linear/configuration/rofi/global/icons/history.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
diff --git a/config/awesome/linear/configuration/rofi/global/icons/result.svg b/config/awesome/linear/configuration/rofi/global/icons/result.svg
deleted file mode 100644
index 0f4d883ea..000000000
--- a/config/awesome/linear/configuration/rofi/global/icons/result.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/configuration/rofi/global/icons/suggestion.svg b/config/awesome/linear/configuration/rofi/global/icons/suggestion.svg
deleted file mode 100644
index bf673469c..000000000
--- a/config/awesome/linear/configuration/rofi/global/icons/suggestion.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/linear/configuration/rofi/global/rofi-spotlight.sh b/config/awesome/linear/configuration/rofi/global/rofi-spotlight.sh
deleted file mode 100755
index d5c4a23b5..000000000
--- a/config/awesome/linear/configuration/rofi/global/rofi-spotlight.sh
+++ /dev/null
@@ -1,692 +0,0 @@
-#!/usr/bin/env bash
-
-TMP_DIR="/tmp/rofi/${USER}/"
-
-PREV_LOC_FILE="${TMP_DIR}rofi_fb_prevloc"
-CURRENT_FILE="${TMP_DIR}rofi_fb_current_file"
-
-MY_PATH="$(realpath "$0" | xargs dirname)"
-HIST_FILE="${MY_PATH}/history.txt"
-
-OPENER=xdg-open
-TERM_EMU=kitty
-TEXT_EDITOR=$EDITOR
-FILE_MANAGER=xdg-open
-BLUETOOTH_SEND=blueman-sendto
-
-CUR_DIR=$PWD
-NEXT_DIR=""
-FD_INSTALLED=$(command -v fd)
-
-SHOW_HIDDEN=false
-
-# Setup menu options
-declare -a OPEN_FILE_LOCATION=(
- "Open file location in ${TERM_EMU}"
- "Open file location in ${FILE_MANAGER}"
-)
-declare -a RUN_COMMANDS=(
- "Run"
- "Execute in ${TERM_EMU}"
-)
-declare -a STANDARD_CONTROLS=(
- "Move to trash"
- "Delete"
- "Back"
-)
-declare -a SHELL_NO_X_OPTIONS=(
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a SHELL_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${SHELL_NO_X_OPTIONS[@]}"
-)
-declare -a BIN_NO_X_OPTIONS=(
- "${OPEN_FILE_LOCATION[@]}"
- "Back"
-)
-declare -a BIN_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${BIN_NO_X_OPTIONS[@]}"
-)
-declare -a TEXT_OPTIONS=("${SHELL_NO_X_OPTIONS[@]}")
-declare -a HTML_OPTIONS=(
- "Open"
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a XCF_SVG_OPTIONS=(
- "Open"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a IMAGE_OPTIONS=(
- "Open"
- "Send via Bluetooth"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-
-declare -a ALL_OPTIONS=()
-
-# Combine all context menu
-COMBINED_OPTIONS=(
- "${SHELL_OPTIONS[@]}"
- "${IMAGE_OPTIONS[@]}"
-)
-
-# Remove duplicates
-ALL_OPTIONS=("$(printf '%s\n' "${COMBINED_OPTIONS[@]}" | sort -u)")
-
-# Create tmp dir for rofi
-[ ! -d "${TMP_DIR}" ] && mkdir -p "${TMP_DIR}";
-
-# Create hist file if it doesn't exist
-[ ! -f "${HIST_FILE}" ] && touch "${HIST_FILE}"
-
-# Help message
-if [ -n "$*" ] && [[ "$*" = ":help" ]]
-then
- echo -en "Rofi Spotlight
-A Rofi with file and web searching functionality
-
-Commands:
-:help to print this help message
-:h or :hidden to show hidden files/dirs
-:sh or :show_hist to show search history
-:ch or :clear_hist to clear search history
-:xdg to jump to an xdg directory
-Examples:
- :xdg DOCUMENTS
- :xdg DOWNLOADS
-Also supports incomplete path:
-Examples:
- :xdg doc
- :xdg down
-For more info about XDG dirs, see:
-\`man xdg-user-dir\`
-
-File search syntaxes:
-! to search for a file and web suggestions
-? to search parent directories
-Examples:
- !half-life 3
- ?portal 3
-
-Web search syntaxes:
-! to gets search suggestions
-:web/:w to also to gets search suggestions
-:webbro/:wb to search directly from your browser
-Examples:
- !how to install archlinux
- :web how to install gentoo
- :w how to make a nuclear fission
- :webbro how to install wine in windowsxp
-Back\0icon\x1fdraw-arrow-back\n"
-
- exit
-fi
-
-# Return the icon string
-function icon_file_type(){
- icon_name=""
- mime_type=$(file --mime-type -b "${1}")
-
- case "${mime_type}" in
- "inode/directory")
- case "${1}" in
- "Desktop/" )
- icon_name='folder-blue-desktop'
- ;;
- "Documents/" )
- icon_name='folder-blue-documents'
- ;;
- "Downloads/" )
- icon_name='folder-blue-downloads'
- ;;
- "Music/" )
- icon_name='folder-blue-music'
- ;;
- "Pictures/" )
- icon_name='folder-blue-pictures'
- ;;
- "Public/" )
- icon_name='folder-blue-public'
- ;;
- "Templates/" )
- icon_name='folder-blue-templates'
- ;;
- "Videos/" )
- icon_name='folder-blue-videos'
- ;;
- "root/" )
- icon_name='folder-root'
- ;;
- "home/" | "${USER}/")
- icon_name='folder-home'
- ;;
- *"$" )
- icon_name='folder-blue'
- ;;
- *)
- icon_name='folder-blue'
- ;;
- esac
- ;;
- "inode/symlink" )
- icon_name='inode-symlink'
- ;;
- "audio/flac" | "audio/mpeg" )
- icon_name='music'
- ;;
- "video/mp4" )
- icon_name='video-mp4'
- ;;
- "video/x-matroska" )
- icon_name=video-x-matroska
- ;;
- "image/x-xcf" )
- # notify-send '123'
- icon_name='image-x-xcf'
- ;;
- "image/jpeg" | "image/png" | "image/svg+xml")
- icon_name="${CUR_DIR}/${1}"
- ;;
- "image/gif" )
- icon_name='gif'
- ;;
- "image/vnd.adobe.photoshop" )
- icon_name='image-vnd.adobe.photoshop'
- ;;
- "image/webp" )
- icon_name='gif'
- ;;
- "application/x-pie-executable" )
- icon_name='binary'
- ;;
- "application/pdf" )
- icon_name='pdf'
- ;;
- "application/zip" )
- icon_name='application-zip'
- ;;
- "application/x-xz" )
- icon_name='application-x-xz-compressed-tar'
- ;;
- "application/x-7z-compressed" )
- icon_name='application-x-7zip'
- ;;
- "application/x-rar" )
- icon_name='application-x-rar'
- ;;
- "application/octet-stream" | "application/x-iso9660-image" )
- icon_name='application-x-iso'
- ;;
- "application/x-dosexec" )
- icon_name='application-x-ms-dos-executable'
- ;;
- "text/plain" )
- icon_name='application-text'
- ;;
- "text/x-shellscript" )
- icon_name='application-x-shellscript'
- ;;
- "text/html" )
- icon_name='text-html'
- ;;
- "font/sfnt" | "application/vnd.ms-opentype" )
- icon_name='application-x-font-ttf'
- ;;
- * )
- case "${1}" in
- *."docx" | *".doc" )
- icon_name='application-msword'
- ;;
- *."apk" )
- icon_name='android-package-archive'
- ;;
- * )
- icon_name='unknown'
- ;;
- esac
- ;;
- esac
-
- echo -en "$1\0icon\x1f$icon_name\n"
-}
-
-export -f icon_file_type
-
-# Pass the argument to python script
-function web_search() {
- # Pass the search query to web-search script
- "${MY_PATH}/web-search.py" "${1}"
- exit;
-}
-
-# Handles the web search method
-if [ ! -z "$@" ] && ([[ "$@" == ":webbro"* ]] || [[ "$@" == ":wb"* ]])
-then
- remove=''
- [[ "$*" = ":webbro"* ]] && remove=":webbro" || remove=":wb"
-
- # Search directly from your web browser
- web_search "$(printf '%s\n' "${1//$remove/}")"
- exit;
-
-elif [ ! -z "$@" ] && ([[ "$@" == ":web"* ]] || [[ "$@" == ":w"* ]])
-then
- remove=''
- [[ "$*" = ":web"* ]] && remove=":web" || remove=":w"
-
- # Get search suggestions
- web_search "!$(printf '%s\n' "${1//$remove/}")"
- exit;
-fi
-
-function find_query() {
- QUERY=${1}
- if [[ ! "${QUERY}" =~ ( |\') ]]
- then
- if [ -z "$FD_INSTALLED" ];
- then
- find "${HOME}" -iname *"${QUERY}"* | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- else
- fd -H ${QUERY} ${HOME} | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- fi
- fi
-}
-
-# File and calls to the web search
-if [ ! -z "$@" ] && ([[ "$@" == ?(\~)/* ]] || [[ "$@" == \?* ]] || [[ "$@" == \!* ]])
-then
- QUERY=$@
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- if [[ "$@" == ?(\~)/* ]]
- then
- [[ "$*" = \~* ]] && QUERY="${QUERY//"~"/"$HOME"}"
-
- coproc ${OPENER} "${QUERY}" > /dev/null 2>&1
- exec 1>&-
- exit
-
- elif [[ "$@" == \?* ]]
- then
- find_query ${QUERY#\?}
-
- else
- # Find the file
- find_query ${QUERY#!}
-
- # Web search
- web_search "! ${QUERY#!}"
- fi
- exit;
-fi
-
-# Create notification if there's an error
-function create_notification() {
- case "${1}" in
- "denied" )
- notify-send -a "Global Search" "Permission denied!" \
- 'You have no permission to access '"${CUR_DIR}!"
- ;;
- "deleted" )
- notify-send -a "Global Search" "Success!" \
- 'File deleted!'
- ;;
- "trashed" )
- notify-send -a "Global Search" "Success!" \
- 'The file has been moved to trash!'
- ;;
- "cleared" )
- notify-send -a "Global Search" "Success!" \
- 'Search history has been successfully cleared!'
- ;;
- * )
- notify-send -a "Global Search" "Somethings wrong I can feel it!" \
- 'This incident will be reported!'
- ;;
- esac
-}
-
-# Show the files in the current directory
-function navigate_to() {
- # process current dir.
- if [ -n "${CUR_DIR}" ]
- then
- CUR_DIR=$(readlink -e "${CUR_DIR}")
- if [ ! -d "${CUR_DIR}" ] || [ ! -r "${CUR_DIR}" ]
- then
- create_notification "denied"
- CUR_DIR=$(realpath ${CUR_DIR} | xargs dirname)
- echo "${CUR_DIR}" > "${PREV_LOC_FILE}"
- else
- echo "${CUR_DIR}/" > "${PREV_LOC_FILE}"
- fi
- pushd "${CUR_DIR}" >/dev/null || exit
- fi
-
- printf "..\0icon\x1fup\n"
-
- if [[ -z "$FD_INSTALLED" ]]
- then
- #Group directories
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- for i in .*/
- do
- [[ -d "${i}" ]] && ([[ "${i}" != "./" ]] && [[ "${i}" != "../"* ]]) && icon_file_type "${i}"
- done
- fi
- for i in */
- do
- [[ -d "${i}" ]] && icon_file_type "${i}"
- done
- #Group files
- if [[ ${SHOW_HIDDEN} = true ]]
- then
- for i in .*
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- fi
- for i in *
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- else
- THREADS=$(getconf _NPROCESSORS_ONLN)
- export CUR_DIR
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- fd -Ht d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -Ht f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- else
- fd -t d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -t f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- fi
- fi
-}
-
-# Set XDG dir
-function return_xdg_dir() {
- target_dir=${1^^}
-
- if [[ "HOME" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir)
-
- elif [[ "DESKTOP" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DESKTOP)
-
- elif [[ "DOCUMENTS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOCUMENTS)
-
- elif [[ "DOWNLOADS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOWNLOAD)
-
- elif [[ "MUSIC" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir MUSIC)
-
- elif [[ "PICTURES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PICTURES)
-
- elif [[ "PUBLICSHARE" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PUBLICSHARE)
-
- elif [[ "TEMPLATES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir TEMPLATES)
-
- elif [[ "VIDEOS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir VIDEOS)
-
- elif [[ "ROOT" == *"${target_dir}"* ]]
- then
- CUR_DIR="/"
-
- else
- CUR_DIR="${HOME}"
- fi
- navigate_to
- exit;
-}
-
-# Show and Clear History
-if [ ! -z "$@" ] && ([[ "$@" == ":sh" ]] || [[ "$@" == ":show_hist" ]])
-then
- hist=$(tac "${HIST_FILE}")
-
- echo -en "Back\0icon\x1fdraw-arrow-back\n"
- [ -z "${hist}" ] && echo -en "No History Yet\0icon\x1ftext-plain\n"
-
- while IFS= read -r line;
- do
- echo -en "${line}\0icon\x1f${MY_PATH}/icons/history.svg\n";
- done <<< "${hist}"
-
- exit;
-elif [ ! -z "$@" ] && ([[ "$@" == ":ch" ]] || [[ "$@" == ":clear_hist" ]])
-then
- :> "${HIST_FILE}"
- create_notification "cleared"
-
- CUR_DIR="${HOME}"
- navigate_to
- exit;
-fi
-
-# Accepts XDG command
-if [[ ! -z "$@" ]] && [[ "$@" == ":xdg"* ]]
-then
- NEXT_DIR=${*//":xdg "/}
-
- [[ -n "$NEXT_DIR" ]] && return_xdg_dir "${NEXT_DIR}" || return_xdg_dir "${HOME}"
-fi
-
-# Read last location, otherwise we default to PWD.
-[ -f "${PREV_LOC_FILE}" ] && CUR_DIR=$(< "${PREV_LOC_FILE}")
-
-if [[ ! -z "$@" ]] && ([[ "$@" == ":h" ]] || [[ "$@" == ":hidden" ]])
-then
- SHOW_HIDDEN=true
- navigate_to
- exit;
-fi
-
-# Handle argument.
-[ -n "$*" ] && CUR_DIR="${CUR_DIR}/$*"
-
-# Context Menu
-if [ -n "$*" ] && [[ "${ALL_OPTIONS[*]} " = *"$*"* ]]
-then
- case "${1}" in
- "Run" )
- coproc ( eval "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Execute in ${TERM_EMU}" )
- coproc ( eval "${TERM_EMU} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open" )
- coproc ( eval "${OPENER} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${TERM_EMU}" )
- file_path="$(< ${CURRENT_FILE})"
- coproc ( ${TERM_EMU} bash -c "cd ${file_path%/*} ; ${SHELL}" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${FILE_MANAGER}" )
- file_path="$(< "${CURRENT_FILE}")"
- coproc ( eval "${FILE_MANAGER} "${file_path%/*}"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Edit" )
- coproc ( eval "${TERM_EMU} ${TEXT_EDITOR} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Move to trash" )
- coproc( gio trash "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- create_notification "trashed"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Delete" )
- shred "$(< ${CURRENT_FILE})"
- rm "$(< ${CURRENT_FILE})"
- create_notification "deleted"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Send via Bluetooth" )
- rfkill unblock bluetooth && bluetoothctl power on
- sleep 1
- blueman-sendto "$(< ${CURRENT_FILE})" & > /dev/null 2>&1
- kill -9 $(pgrep rofi)
- ;;
- "Back" )
- CUR_DIR="$(< ${PREV_LOC_FILE})"
- navigate_to
- ;;
- esac
- exit;
-fi
-
-function context_menu_icons() {
-
- if [[ "${1}" == "Run" ]]
- then
- echo '\0icon\x1fsystem-run\n'
-
- elif [[ "${1}" == "Execute in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open" ]]
- then
- echo "\0icon\x1futilities-x-terminal\n"
-
- elif [[ "${1}" == "Open file location in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open file location in ${FILE_MANAGER}" ]]
- then
- echo "\0icon\x1fblue-folder-open\n"
-
- elif [[ "${1}" == "Edit" ]]
- then
- echo "\0icon\x1faccessories-text-editor\n"
-
- elif [[ "${1}" == "Move to trash" ]]
- then
- echo "\0icon\x1fapplication-x-trash\n"
-
- elif [[ "${1}" == "Delete" ]]
- then
- echo "\0icon\x1findicator-trashindicator\n"
-
- elif [[ "${1}" == "Send via Bluetooth" ]]
- then
- echo "\0icon\x1fbluetooth\n"
-
- elif [[ "${1}" == "Back" ]]
- then
- echo "\0icon\x1fback\n"
- fi
-}
-
-function print_context_menu() {
- declare -a arg_arr=("${!1}")
-
- for menu in "${arg_arr[@]}"
- do
- printf "$menu$(context_menu_icons "${menu}")\n"
- done
-}
-
-function context_menu() {
-
- type="$(file --mime-type -b "${CUR_DIR}")"
-
- if [ -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- if [ -x "${CUR_DIR}" ];
- then
- print_context_menu SHELL_OPTIONS[@]
- else
- print_context_menu SHELL_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "application/x-executable" ]] || [[ "${type}" == "application/x-pie-executable" ]]
- then
- if [ -x "${CUR_DIR}" ]
- then
- print_context_menu BIN_OPTIONS[@]
- else
- print_context_menu BIN_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "text/plain" ]]
- then
- print_context_menu TEXT_OPTIONS[@]
-
- elif [[ "${type}" == "text/html" ]]
- then
- print_context_menu HTML_OPTIONS[@]
-
- elif [[ "${type}" == "image/jpeg" ]] || [[ "${type}" == "image/png" ]]
- then
- print_context_menu IMAGE_OPTIONS[@]
-
- elif [[ "${type}" == "image/x-xcf" ]] || [[ "${type}" == "image/svg+xml" ]]
- then
- print_context_menu XCF_SVG_OPTIONS[@]
-
- elif [ ! -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- coproc ( exec "${CUR_DIR}" & > /dev/null 2>&1 )
-
- else
- if [ ! -d "${CUR_DIR}" ] && [ ! -f "${CUR_DIR}" ]
- then
- QUERY="${CUR_DIR//*\/\//}"
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- find_query "${QUERY#!}"
-
- web_search "!${QUERY}"
- else
- coproc ( ${OPENER} "${CUR_DIR}" & > /dev/null 2>&1 )
- fi
- fi
- exit;
-}
-
-# If argument is not a directory/folder
-if [ ! -d "${CUR_DIR}" ]
-then
- echo "${CUR_DIR}" > "${CURRENT_FILE}"
- context_menu
- exit;
-fi
-
-navigate_to
diff --git a/config/awesome/linear/configuration/rofi/global/rofi.rasi b/config/awesome/linear/configuration/rofi/global/rofi.rasi
deleted file mode 100644
index 1c154bff0..000000000
--- a/config/awesome/linear/configuration/rofi/global/rofi.rasi
+++ /dev/null
@@ -1,152 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: false;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- location: center;
- anchor: center;
- x-offset: 0px;
- height: 500px;
- width: 750px;
- orientation: vertical;
- border-radius: 12px;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 24px;
- margin: 0px 225px 0px 225px;
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 2;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 40px 25px 25px 25px;
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: horizontal;
- border-radius: 6px;
- padding: 5px 10px 5px 10px;
-}
-
-element-icon {
- size: 36px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/linear/configuration/rofi/global/web-search.py b/config/awesome/linear/configuration/rofi/global/web-search.py
deleted file mode 100755
index ba314d592..000000000
--- a/config/awesome/linear/configuration/rofi/global/web-search.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env python3
-
-# MIT License
-
-# Copyright (c) 2019 Paolo Donadeo
-
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-
-import json
-import re
-import urllib.parse
-import urllib.request
-import sys
-import os
-import datetime
-import gzip
-
-import subprocess as sp
-
-import html
-
-
-################################################################################
-##### C O N F I G U R A T I O N ######
-################################################################################
-SEARCH_ENGINE = 'google' # or 'duckduckgo'
-BROWSER = 'firefox' # or 'firefox', 'chromium', 'brave', 'lynx'
-TERMINAL = ['kitty', '--'] # or ['st', '-e'] or something like that
-################################################################################
-
-CONFIG = {
- 'BROWSER_PATH' : {
- 'chrome' : ['google-chrome-stable'],
- 'firefox' : ['firefox'],
- 'chromium' : ['chromium-browser'],
- 'brave' : ['brave-browser'],
- 'lynx' : TERMINAL + ['lynx']
- },
- 'USER_AGENT' : {
- 'chrome' : 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
- 'firefox' : 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0',
- 'chromium' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/76.0.3809.100 Chrome/76.0.3809.100 Safari/537.36',
- 'brave' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36',
- 'lynx' : 'Lynx/2.8.9rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.1.1d'
- },
- 'SEARCH_ENGINE_NAME' : {
- 'google' : 'Google',
- 'duckduckgo' : 'DuckDuckGo'
- },
- 'SEARCH_URL' : {
- 'google' : 'https://www.google.com/search?q=',
- 'duckduckgo' : 'https://duckduckgo.com/?q='
- },
- 'SUGGESTION_URL' : {
- 'google' : 'https://www.google.com/complete/search?',
- 'duckduckgo' : 'https://duckduckgo.com/ac/?'
- }
-}
-
-def cleanhtml(txt):
- return re.sub(r'<.*?>', '', txt)
-
-def fetch_suggestions(search_string):
- if SEARCH_ENGINE == 'google':
- r = {
- 'q' : search_string,
- 'cp' : '11',
- 'client' : 'psy-ab',
- 'xssi' : 't',
- 'gs_ri' : 'gws-wiz',
- 'hl' : 'en-IT',
- 'authuser' : '0'
- }
- url = CONFIG['SUGGESTION_URL'][SEARCH_ENGINE] + urllib.parse.urlencode(r)
- headers = {
- 'sec-fetch-mode' : 'cors',
- 'dnt' : '1',
- 'accept-encoding' : 'gzip',
- 'accept-language' : 'en-US;q=0.9,en;q=0.8',
- 'pragma' : 'no-cache',
- 'user-agent' : CONFIG['USER_AGENT'][BROWSER],
- 'accept' : '*/*',
- 'cache-control' : 'no-cache',
- 'authority' : 'www.google.com',
- 'referer' : 'https://www.google.com/',
- 'sec-fetch-site' : 'same-origin'
- }
- req = urllib.request.Request(url, headers=headers, method='GET')
-
- reply_data = gzip.decompress(urllib.request.urlopen(req).read()).split(b'\n')[1]
- reply_data = json.loads(reply_data)
- return [ cleanhtml(res[0]).strip() for res in reply_data[0] ]
- else: # 'duckduckgo'
- if search_string.startswith('!'):
- bang_search = True
- search_string = search_string.lstrip('!')
- else:
- bang_search = False
- r = {
- 'q' : search_string,
- 'callback' : 'autocompleteCallback',
- 'kl' : 'wt-wt',
- '_' : str(int((datetime.datetime.now().timestamp())*1000))
- }
- url = CONFIG['SUGGESTION_URL'][SEARCH_ENGINE] + urllib.parse.urlencode(r)
- if bang_search:
- url = url.replace('?q=', '?q=!')
- headers = {
- 'pragma' : 'no-cache',
- 'dnt' : '1',
- 'accept-encoding' : 'gzip',
- 'accept-language' : 'en-US;q=0.9,en;q=0.8',
- 'user-agent' : CONFIG['USER_AGENT'][BROWSER],
- 'sec-fetch-mode' : 'no-cors',
- 'accept' : '*/*',
- 'cache-control' : 'no-cache',
- 'authority' : 'duckduckgo.com',
- 'referer' : 'https://duckduckgo.com/',
- 'sec-fetch-site' : 'same-origin',
- }
- req = urllib.request.Request(url, headers=headers, method='GET')
- reply_data = gzip.decompress(urllib.request.urlopen(req).read()).decode('utf8')
- reply_data = json.loads(re.match(r'autocompleteCallback\((.*)\);', reply_data).group(1))
- return [ cleanhtml(res['phrase']).strip() for res in reply_data ]
-
-def main():
- search_string = html.unescape((' '.join(sys.argv[1:])).strip())
-
- path_str = os.path.dirname(os.path.realpath(__file__)) + '/'
- icon_path_str = path_str + 'icons/'
- icon_name = icon_path_str
-
- if SEARCH_ENGINE == 'google':
- icon_name += 'google.svg'
- else:
- icon_name += 'ddg.svg'
-
- if search_string.startswith('!'):
- search_string = search_string.rstrip('!').strip()
- results = fetch_suggestions(search_string)
- for r in results:
- print(":wb " + html.unescape(r) + "\0icon\x1f"+icon_name+"\n")
- else:
- url = CONFIG['SEARCH_URL'][SEARCH_ENGINE] + urllib.parse.quote_plus(search_string)
- sp.Popen(CONFIG['BROWSER_PATH'][BROWSER] + [url], stdout=sp.DEVNULL, stderr=sp.DEVNULL, shell=False)
-
-if __name__ == "__main__":
- try:
- main()
- except Exception as e:
- if e:
- sys.exit(1)
diff --git a/config/awesome/linear/configuration/root/init.lua b/config/awesome/linear/configuration/root/init.lua
deleted file mode 100644
index 55e43b3ca..000000000
--- a/config/awesome/linear/configuration/root/init.lua
+++ /dev/null
@@ -1,84 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-
-local apps = require('configuration.apps')
-
-root.buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- function()
- if mymainmenu then
- mymainmenu:hide()
- end
- end
- ),
- awful.button(
- {},
- 3,
- function ()
- if mymainmenu then
- mymainmenu:toggle()
- end
- end
- ),
- awful.button(
- {},
- 2,
- function ()
- awful.util.spawn(apps.default.rofi_appmenu)
- end
- ),
- awful.button(
- {'Control'},
- 2,
- function ()
- awesome.emit_signal('module::exit_screen:show')
- end
- ),
- awful.button(
- {'Shift'},
- 2,
- function ()
- awesome.emit_signal('widget::blue_light:toggle')
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.spawn('light -A 10',false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show',true)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.spawn('light -U 10',false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show',true)
- end
- ),
- awful.button(
- {'Control'},
- 4,
- function()
- awful.spawn('amixer -D pulse sset Master 5%+',false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show',true)
- end
- ),
- awful.button(
- {'Control'},
- 5,
- function()
- awful.spawn('amixer -D pulse sset Master 5%-',false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show',true)
- end
- )
- )
-)
\ No newline at end of file
diff --git a/config/awesome/linear/configuration/tags/init.lua b/config/awesome/linear/configuration/tags/init.lua
deleted file mode 100644
index a637fd45c..000000000
--- a/config/awesome/linear/configuration/tags/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-
-local tags = {
- {
- type = 'terminal',
- icon = icons.terminal,
- default_app = apps.default.terminal,
- gap = beautiful.useless_gap
- },
- {
- type = 'internet',
- icon = icons.web_browser,
- default_app = apps.default.web_browser,
- gap = beautiful.useless_gap
- },
- {
- type = 'code',
- icon = icons.text_editor,
- default_app = apps.default.text_editor,
- gap = beautiful.useless_gap
- },
- {
- type = 'files',
- icon = icons.file_manager,
- default_app = apps.default.file_manager,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.tile
- },
- {
- type = 'multimedia',
- icon = icons.multimedia,
- default_app = apps.default.multimedia,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating,
- gap = 0
- },
- {
- type = 'games',
- icon = icons.games,
- default_app = apps.default.game,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- },
- {
- type = 'graphics',
- icon = icons.graphics,
- default_app = apps.default.graphics,
- gap = beautiful.useless_gap
- },
- {
- type = 'sandbox',
- icon = icons.sandbox,
- default_app = apps.default.sandbox,
- layout = awful.layout.suit.max,
- gap = 0
- },
- {
- type = 'any',
- icon = icons.development,
- default_app = apps.default.development,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- }
- -- {
- -- type = 'social',
- -- icon = icons.social,
- -- default_app = 'discord',
- -- gap = beautiful.useless_gap
- -- }
-}
-
--- Set tags layout
-tag.connect_signal(
- 'request::default_layouts',
- function()
- awful.layout.append_default_layouts({
- awful.layout.suit.spiral.dwindle,
- awful.layout.suit.tile,
- awful.layout.suit.floating,
- awful.layout.suit.max
- })
- end
-)
-
--- Create tags for each screen
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- for i, tag in pairs(tags) do
- awful.tag.add(
- i,
- {
- icon = tag.icon,
- icon_only = true,
- layout = tag.layout or awful.layout.suit.spiral.dwindle,
- gap_single_client = true,
- gap = tag.gap,
- screen = s,
- default_app = tag.default_app,
- selected = i == 1
- }
- )
- end
- end
-)
-
-local update_gap_and_shape = function(t)
- -- Get current tag layout
- local current_layout = awful.tag.getproperty(t, 'layout')
- -- If the current layout is awful.layout.suit.max
- if (current_layout == awful.layout.suit.max) then
- -- Set clients gap to 0 and shape to rectangle if maximized
- t.gap = 0
- for _, c in ipairs(t:clients()) do
- if not c.floating or not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- else
- t.gap = beautiful.useless_gap
- for _, c in ipairs(t:clients()) do
- if not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- end
-end
-
--- Change tag's client's shape and gap on change
-tag.connect_signal(
- 'property::layout',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Change tag's client's shape and gap on move to tag
-tag.connect_signal(
- 'tagged',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Focus on urgent clients
-awful.tag.attached_connect_signal(
- s,
- 'property::selected',
- function()
- local urgent_clients = function (c)
- return awful.rules.match(c, {urgent = true})
- end
- for c in awful.client.iterate(urgent_clients) do
- if c.first_tag == mouse.screen.selected_tag then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- end
-)
diff --git a/config/awesome/linear/configuration/user-profile/default.svg b/config/awesome/linear/configuration/user-profile/default.svg
deleted file mode 100644
index 14f800698..000000000
--- a/config/awesome/linear/configuration/user-profile/default.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/config/awesome/linear/configuration/user-profile/gerome.png b/config/awesome/linear/configuration/user-profile/gerome.png
deleted file mode 100644
index 5e05a32b1..000000000
Binary files a/config/awesome/linear/configuration/user-profile/gerome.png and /dev/null differ
diff --git a/config/awesome/linear/layout/bottom-panel.lua b/config/awesome/linear/layout/bottom-panel.lua
deleted file mode 100755
index a1f982c50..000000000
--- a/config/awesome/linear/layout/bottom-panel.lua
+++ /dev/null
@@ -1,128 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local gears = require('gears')
-local icons = require('theme.icons')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local task_list = require('widget.task-list')
-local tag_list = require('widget.tag-list')
-
-local bottom_panel = function(s)
-
- local panel = wibox {
- ontop = true,
- screen = s,
- type = 'dock',
- height = dpi(48),
- width = s.geometry.width,
- x = s.geometry.x,
- y = dpi(s.geometry.height - 48),
- stretch = true,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel:struts {
- bottom = dpi(48)
- }
-
- panel:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- w.cursor = 'left_ptr'
- end
- end
- )
-
- local build_widget = function(widget)
- return wibox.widget {
- {
- widget,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- bg = beautiful.transparent,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(12))
- end,
- widget = wibox.container.background
- },
- top = dpi(9),
- bottom = dpi(9),
- widget = wibox.container.margin
- }
- end
-
- s.systray = wibox.widget {
- {
- base_size = dpi(20),
- horizontal = true,
- screen = 'primary',
- widget = wibox.widget.systray
- },
- visible = false,
- top = dpi(10),
- widget = wibox.container.margin
- }
-
- local add_button = build_widget(require('widget.open-default-app')(s))
- s.search_apps = build_widget(require('widget.search-apps')())
- s.control_center_toggle = build_widget(require('widget.control-center-toggle')())
- s.global_search = build_widget(require('widget.global-search')())
- s.info_center_toggle = build_widget(require('widget.info-center-toggle')())
- s.tray_toggler = build_widget(require('widget.tray-toggle'))
- s.updater = build_widget(require('widget.package-updater')())
- s.screen_rec = build_widget(require('widget.screen-recorder')())
- s.bluetooth = build_widget(require('widget.bluetooth')())
- s.network = build_widget(require('widget.network')())
- local clock = build_widget(require('widget.clock')(s))
- local layout_box = build_widget(require('widget.layoutbox')(s))
- s.battery = build_widget(require('widget.battery')())
- s.info_center_toggle = build_widget(require('widget.info-center-toggle')())
-
- panel : setup {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- s.search_apps,
- s.control_center_toggle,
- s.global_search,
- build_widget(tag_list(s)),
- build_widget(task_list(s)),
- add_button
- },
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- s.systray,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- s.tray_toggler,
- s.updater,
- s.screen_rec,
- s.network,
- s.bluetooth,
- s.battery,
- clock,
- layout_box,
- s.info_center_toggle
- }
- },
- left = dpi(5),
- right = dpi(5),
- widget = wibox.container.margin
- }
-
- return panel
-end
-
-
-return bottom_panel
diff --git a/config/awesome/linear/layout/control-center/init.lua b/config/awesome/linear/layout/control-center/init.lua
deleted file mode 100644
index 65f47fdae..000000000
--- a/config/awesome/linear/layout/control-center/init.lua
+++ /dev/null
@@ -1,310 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-panel_visible = false
-
-local format_item = function(widget)
- return wibox.widget {
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- widget,
- nil
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(88),
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-end
-
-local format_item_no_fix_height = function(widget)
- return wibox.widget {
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- widget,
- nil
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-end
-
-local vertical_separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
-}
-
-local control_center_row_last = wibox.widget {
- layout = wibox.layout.align.horizontal,
- forced_height = dpi(48),
- format_item(
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- require('widget.end-session')(),
- vertical_separator,
- require('widget.control-center-switch')()
- }
- ),
- {
- format_item(
- require('widget.user-profile')()
- ),
- left = dpi(10),
- widget = wibox.container.margin
- },
- nil
-}
-
-local main_control_row_two = wibox.widget {
- layout = wibox.layout.flex.horizontal,
- spacing = dpi(10),
- format_item_no_fix_height(
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- require('widget.airplane-mode'),
- require('widget.bluetooth-toggle'),
- require('widget.blue-light')
- }
- ),
- {
- layout = wibox.layout.flex.vertical,
- spacing = dpi(10),
- format_item_no_fix_height(
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- require('widget.dont-disturb'),
- nil
- }
- ),
- format_item_no_fix_height(
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- require('widget.blur-toggle'),
- nil
- }
- )
- }
-}
-
-local main_control_row_sliders = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- format_item(
- {
- require('widget.blur-slider'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- ),
- format_item(
- {
- require('widget.brightness-slider'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- ),
- format_item(
- {
- require('widget.volume-slider'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- )
-}
-
-local main_control_music_box = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- format_item(
- {
- require('widget.mpd'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- )
-}
-
-local monitor_control_row_progressbars = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- format_item(
- require('widget.cpu-meter')
- ),
- format_item(
- require('widget.ram-meter')
- ),
- format_item(
- require('widget.temperature-meter')
- ),
- format_item(
- require('widget.harddrive-meter')
- )
-}
-
-local control_center = function(s)
- -- Set the control center geometry
- local panel_width = dpi(400)
- local panel_margins = dpi(5)
-
- local panel = awful.popup {
- widget = {
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- {
- layout = wibox.layout.stack,
- {
- id = 'main_control',
- visible = true,
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- main_control_row_two,
- main_control_row_sliders,
- main_control_music_box
- },
- {
- id = 'monitor_control',
- visible = false,
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- monitor_control_row_progressbars
- }
- },
- control_center_row_last
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- id = 'control_center',
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- bg = beautiful.background,
- shape =function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- screen = s,
- type = 'dock',
- visible = false,
- ontop = true,
- width = dpi(panel_width),
- maximum_width = dpi(panel_width),
- maximum_height = dpi(s.geometry.height - 58),
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- shape = gears.shape.rectangle
- }
-
- panel:connect_signal(
- 'property::height',
- function()
- awful.placement.bottom_left(
- panel,
- {
- honor_workarea = true,
- margins = {
- bottom = dpi(5),
- left = dpi(5)
- }
- }
- )
- end
- )
-
- panel.opened = false
-
- s.backdrop_control_center = wibox {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- local open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_control_center.visible = true
- focused.control_center.visible = true
-
- panel:emit_signal('opened')
- end
-
- local close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.control_center.visible = false
- focused.backdrop_control_center.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
- s.backdrop_control_center:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- return panel
-end
-
-return control_center
diff --git a/config/awesome/linear/layout/info-center/init.lua b/config/awesome/linear/layout/info-center/init.lua
deleted file mode 100644
index 2d266b2c7..000000000
--- a/config/awesome/linear/layout/info-center/init.lua
+++ /dev/null
@@ -1,135 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-panel_visible = false
-
-local vertical_separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
-}
-
-local info_center = function(s)
- -- Set the info center geometry
- local panel_width = dpi(350)
- local panel_margins = dpi(5)
-
- local panel = awful.popup {
- widget = {
- {
- {
- layout = wibox.layout.fixed.vertical,
- forced_width = dpi(panel_width),
- spacing = dpi(10),
- require('widget.email'),
- require('widget.weather'),
- require('widget.notif-center')(s)
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- id = 'info_center',
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- bg = beautiful.background,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- screen = s,
- type = 'dock',
- visible = false,
- ontop = true,
- width = dpi(panel_width),
- maximum_width = dpi(panel_width),
- maximum_height = dpi(s.geometry.height - 58),
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- shape = gears.shape.rectangle
- }
-
- panel:connect_signal(
- 'property::height',
- function()
- awful.placement.bottom_right(
- panel,
- {
- honor_workarea = true,
- margins = {
- bottom = dpi(5),
- right = dpi(5)
- }
- }
- )
- end
- )
-
- panel.opened = false
-
- s.backdrop_info_center = wibox {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- local open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_info_center.visible = true
- focused.info_center.visible = true
-
- panel:emit_signal('opened')
- end
-
- local close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.info_center.visible = false
- focused.backdrop_info_center.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
- s.backdrop_info_center:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- return panel
-end
-
-return info_center
diff --git a/config/awesome/linear/layout/init.lua b/config/awesome/linear/layout/init.lua
deleted file mode 100644
index b9c4d17a9..000000000
--- a/config/awesome/linear/layout/init.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local awful = require('awful')
-local bottom_panel = require('layout.bottom-panel')
-local control_center = require('layout.control-center')
-local info_center = require('layout.info-center')
-
--- Create a wibox panel for each screen and add it
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- s.bottom_panel = bottom_panel(s)
- s.control_center = control_center(s)
- s.info_center = info_center(s)
- s.control_center_show_again = false
- s.info_center_show_again = false
- end
-)
-
--- Hide bars when app go fullscreen
-function update_bars_visibility()
- for s in screen do
- if s.selected_tag then
- local fullscreen = s.selected_tag.fullscreen_mode
- -- Order matter here for shadow
- s.bottom_panel.visible = not fullscreen
- if s.control_center then
- if fullscreen and s.control_center.visible then
- s.control_center:toggle()
- s.control_center_show_again = true
- elseif not fullscreen and not s.control_center.visible and s.control_center_show_again then
- s.control_center:toggle()
- s.control_center_show_again = false
- end
- end
- if s.info_center then
- if fullscreen and s.info_center.visible then
- s.info_center:toggle()
- s.info_center_show_again = true
- elseif not fullscreen and not s.info_center.visible and s.info_center_show_again then
- s.info_center:toggle()
- s.info_center_show_again = false
- end
- end
- end
- end
-end
-
-tag.connect_signal(
- 'property::selected',
- function(t)
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.first_tag then
- c.first_tag.fullscreen_mode = c.fullscreen
- end
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.fullscreen then
- c.screen.selected_tag.fullscreen_mode = false
- update_bars_visibility()
- end
- end
-)
diff --git a/config/awesome/linear/layout/left-panel/dashboard/hardware-monitor.lua b/config/awesome/linear/layout/left-panel/dashboard/hardware-monitor.lua
deleted file mode 100644
index 986f187ed..000000000
--- a/config/awesome/linear/layout/left-panel/dashboard/hardware-monitor.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local hardware_header = wibox.widget {
- text = 'Hardware Monitor',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-
-}
-
-return wibox.widget {
- layout = wibox.layout.fixed.vertical,
- {
- {
- hardware_header,
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_title_bg,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
- end,
- forced_height = dpi(35),
- widget = wibox.container.background
-
- },
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.cpu-meter'),
- require('widget.ram-meter'),
- require('widget.temperature-meter'),
- require('widget.harddrive-meter')
- },
- bg = beautiful.groups_bg,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
-}
diff --git a/config/awesome/linear/layout/left-panel/dashboard/init.lua b/config/awesome/linear/layout/left-panel/dashboard/init.lua
deleted file mode 100644
index 2b28569b7..000000000
--- a/config/awesome/linear/layout/left-panel/dashboard/init.lua
+++ /dev/null
@@ -1,82 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-return function(_, panel)
-
- local search_widget = wibox.widget {
- {
- {
- {
- image = icons.search,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
- },
- {
- text = 'Global Search',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
- },
- left = dpi(24),
- right = dpi(24),
- forced_height = dpi(48),
- widget = wibox.container.margin
- }
-
- search_button = wibox.widget {
- {
- search_widget,
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- search_button:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- panel:run_rofi()
- end
- )
- )
- )
-
- return wibox.widget {
- {
- layout = wibox.layout.align.vertical,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- search_button,
- require('layout.left-panel.dashboard.hardware-monitor'),
- require('layout.left-panel.dashboard.quick-settings'),
-
- },
- nil,
- nil
- },
- margins = dpi(16),
- widget = wibox.container.margin
- }
-end
diff --git a/config/awesome/linear/layout/left-panel/dashboard/quick-settings.lua b/config/awesome/linear/layout/left-panel/dashboard/quick-settings.lua
deleted file mode 100644
index 8986ea314..000000000
--- a/config/awesome/linear/layout/left-panel/dashboard/quick-settings.lua
+++ /dev/null
@@ -1,73 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local bar_color = beautiful.groups_bg
-local dpi = beautiful.xresources.apply_dpi
-
-local quick_header = wibox.widget {
- text = 'Quick Settings',
- font = 'Inter Regular 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-
-}
-
-return wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.vertical,
- {
- {
- quick_header,
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- forced_height = dpi(35),
- bg = beautiful.groups_title_bg,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.brightness-slider'),
- require('widget.volume-slider'),
- require('widget.airplane-mode'),
- require('widget.bluetooth-toggle'),
- require('widget.blue-light')
- },
- bg = beautiful.groups_bg,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, false, false, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- {
- {
- layout = wibox.layout.fixed.vertical,
- require('widget.blur-slider'),
- require('widget.blur-toggle')
- },
- bg = beautiful.groups_bg,
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
- }
- }
-}
diff --git a/config/awesome/linear/layout/left-panel/init.lua b/config/awesome/linear/layout/left-panel/init.lua
deleted file mode 100644
index 5b83a21a7..000000000
--- a/config/awesome/linear/layout/left-panel/init.lua
+++ /dev/null
@@ -1,114 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-
-local left_panel = function(screen)
-
- local panel_content_width = dpi(345)
-
- local panel = wibox {
- screen = screen,
- width = panel_content_width,
- type = 'dock',
- height = screen.geometry.height,
- x = screen.geometry.x,
- y = screen.geometry.y,
- ontop = true,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel.opened = false
-
- local backdrop = wibox {
- ontop = true,
- screen = screen,
- bg = beautiful.transparent,
- type = 'utility',
- x = screen.geometry.x,
- y = screen.geometry.y,
- width = screen.geometry.width,
- height = screen.geometry.height
- }
-
- function panel:run_rofi()
- awesome.spawn(
- apps.default.rofi_global,
- false,
- false,
- false,
- false,
- function()
- panel:toggle()
- end
- )
-
- -- Hide panel content if rofi global search is opened
- panel:get_children_by_id('panel_content')[1].visible = false
- end
-
- local open_panel = function(should_run_rofi)
- backdrop.visible = true
- panel.visible = true
- panel:get_children_by_id('panel_content')[1].visible = true
- if should_run_rofi then
- panel:run_rofi()
- end
- panel:emit_signal('opened')
- end
-
- local close_panel = function()
- panel:get_children_by_id('panel_content')[1].visible = false
- panel.visible = false
- backdrop.visible = false
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle(should_run_rofi)
- self.opened = not self.opened
- if self.opened then
- open_panel(should_run_rofi)
- else
- close_panel()
- end
- end
-
- backdrop:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- panel:setup {
- layout = wibox.layout.align.horizontal,
- nil,
- {
- id = 'panel_content',
- bg = beautiful.transparent,
- widget = wibox.container.background,
- visible = false,
- forced_width = panel_content_width,
- {
- require('layout.left-panel.dashboard')(screen, panel),
- layout = wibox.layout.stack
- }
- },
- nil
- }
- return panel
-end
-
-return left_panel
diff --git a/config/awesome/linear/layout/right-panel/init.lua b/config/awesome/linear/layout/right-panel/init.lua
deleted file mode 100644
index 92c6f7b78..000000000
--- a/config/awesome/linear/layout/right-panel/init.lua
+++ /dev/null
@@ -1,166 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-panel_visible = false
-
-local right_panel = function(s)
-
- -- Set right panel geometry
- local panel_width = dpi(350)
- local panel_x = s.geometry.x + s.geometry.width - panel_width
-
- local panel = wibox {
- ontop = true,
- screen = s,
- visible = false,
- type = 'dock',
- width = panel_width,
- height = s.geometry.height,
- x = panel_x,
- y = s.geometry.y,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel.opened = false
-
- s.backdrop_rdb = wibox {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- panel:struts {
- right = 0
- }
-
- open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_rdb.visible = true
- focused.right_panel.visible = true
-
- panel:emit_signal('opened')
- end
-
- close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.right_panel.visible = false
- focused.backdrop_rdb.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
-
- function panel:switch_pane(mode)
- if mode == 'notif_mode' then
- -- Update Content
- panel:get_children_by_id('notif_id')[1].visible = true
- panel:get_children_by_id('pane_id')[1].visible = false
- elseif mode == 'today_mode' then
- -- Update Content
- panel:get_children_by_id('notif_id')[1].visible = false
- panel:get_children_by_id('pane_id')[1].visible = true
- end
- end
-
- s.backdrop_rdb:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- local separator = wibox.widget {
- orientation = 'horizontal',
- opacity = 0.0,
- forced_height = 15,
- widget = wibox.widget.separator,
- }
-
- local line_separator = wibox.widget {
- orientation = 'horizontal',
- forced_height = dpi(1),
- span_ratio = 1.0,
- color = beautiful.groups_title_bg,
- widget = wibox.widget.separator
- }
-
- panel : setup {
- {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- require('widget.info-center-switch'),
- nil
- },
- separator,
- line_separator,
- separator,
- {
- layout = wibox.layout.stack,
- -- Today Pane
- {
- id = 'pane_id',
- visible = true,
- layout = wibox.layout.fixed.vertical,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(7),
- require('widget.user-profile'),
- require('widget.weather'),
- require('widget.email'),
- require('widget.social-media'),
- require('widget.calculator')
- },
-
- },
- -- Notification Center
- {
- id = 'notif_id',
- visible = false,
- require('widget.notif-center')(s),
- layout = wibox.layout.fixed.vertical,
- }
- },
- },
- margins = dpi(16),
- widget = wibox.container.margin
- }
-
- return panel
-end
-
-return right_panel
-
diff --git a/config/awesome/linear/library/json.lua b/config/awesome/linear/library/json.lua
deleted file mode 100644
index 3fbaea741..000000000
--- a/config/awesome/linear/library/json.lua
+++ /dev/null
@@ -1,201 +0,0 @@
--- ░▀▀█░█▀▀░█▀█░█▀█░░
--- ░░░█░▀▀█░█░█░█░█░░
--- ░▀▀░░▀▀▀░▀▀▀░▀░▀░░
-
--- This script is from https://gist.github.com/tylerneylon/59f4bcf316be525b30ab
--- License: None. Public Domain
-
---[[ json.lua
-
-A compact pure-Lua JSON library.
-The main functions are: json.stringify, json.parse.
-
-## json.stringify:
-
-This expects the following to be true of any tables being encoded:
- * They only have string or number keys. Number keys must be represented as
- strings in json; this is part of the json spec.
- * They are not recursive. Such a structure cannot be specified in json.
-
-A Lua table is considered to be an array if and only if its set of keys is a
-consecutive sequence of positive integers starting at 1. Arrays are encoded like
-so: `[2, 3, false, "hi"]`. Any other type of Lua table is encoded as a json
-object, encoded like so: `{"key1": 2, "key2": false}`.
-
-Because the Lua nil value cannot be a key, and as a table value is considerd
-equivalent to a missing key, there is no way to express the json "null" value in
-a Lua table. The only way this will output "null" is if your entire input obj is
-nil itself.
-
-An empty Lua table, {}, could be considered either a json object or array -
-it's an ambiguous edge case. We choose to treat this as an object as it is the
-more general type.
-
-To be clear, none of the above considerations is a limitation of this code.
-Rather, it is what we get when we completely observe the json specification for
-as arbitrary a Lua object as json is capable of expressing.
-
-## json.parse:
-
-This function parses json, with the exception that it does not pay attention to
-\u-escaped unicode code points in strings.
-
-It is difficult for Lua to return null as a value. In order to prevent the loss
-of keys with a null value in a json string, this function uses the one-off
-table value json.null (which is just an empty table) to indicate null values.
-This way you can check if a value is null with the conditional
-`val == json.null`.
-
-If you have control over the data and are using Lua, I would recommend just
-avoiding null values in your data to begin with.
-
---]]
-
-
-local json = {}
-
-
--- Internal functions.
-
-local function kind_of(obj)
- if type(obj) ~= 'table' then return type(obj) end
- local i = 1
- for _ in pairs(obj) do
- if obj[i] ~= nil then i = i + 1 else return 'table' end
- end
- if i == 1 then return 'table' else return 'array' end
-end
-
-local function escape_str(s)
- local in_char = {'\\', '"', '/', '\b', '\f', '\n', '\r', '\t'}
- local out_char = {'\\', '"', '/', 'b', 'f', 'n', 'r', 't'}
- for i, c in ipairs(in_char) do
- s = s:gsub(c, '\\' .. out_char[i])
- end
- return s
-end
-
--- Returns pos, did_find; there are two cases:
--- 1. Delimiter found: pos = pos after leading space + delim; did_find = true.
--- 2. Delimiter not found: pos = pos after leading space; did_find = false.
--- This throws an error if err_if_missing is true and the delim is not found.
-local function skip_delim(str, pos, delim, err_if_missing)
- pos = pos + #str:match('^%s*', pos)
- if str:sub(pos, pos) ~= delim then
- if err_if_missing then
- error('Expected ' .. delim .. ' near position ' .. pos)
- end
- return pos, false
- end
- return pos + 1, true
-end
-
--- Expects the given pos to be the first character after the opening quote.
--- Returns val, pos; the returned pos is after the closing quote character.
-local function parse_str_val(str, pos, val)
- val = val or ''
- local early_end_error = 'End of input found while parsing string.'
- if pos > #str then error(early_end_error) end
- local c = str:sub(pos, pos)
- if c == '"' then return val, pos + 1 end
- if c ~= '\\' then return parse_str_val(str, pos + 1, val .. c) end
- -- We must have a \ character.
- local esc_map = {b = '\b', f = '\f', n = '\n', r = '\r', t = '\t'}
- local nextc = str:sub(pos + 1, pos + 1)
- if not nextc then error(early_end_error) end
- return parse_str_val(str, pos + 2, val .. (esc_map[nextc] or nextc))
-end
-
--- Returns val, pos; the returned pos is after the number's final character.
-local function parse_num_val(str, pos)
- local num_str = str:match('^-?%d+%.?%d*[eE]?[+-]?%d*', pos)
- local val = tonumber(num_str)
- if not val then error('Error parsing number at position ' .. pos .. '.') end
- return val, pos + #num_str
-end
-
-
--- Public values and functions.
-
-function json.stringify(obj, as_key)
- local s = {} -- We'll build the string as an array of strings to be concatenated.
- local kind = kind_of(obj) -- This is 'array' if it's an array or type(obj) otherwise.
- if kind == 'array' then
- if as_key then error('Can\'t encode array as key.') end
- s[#s + 1] = '['
- for i, val in ipairs(obj) do
- if i > 1 then s[#s + 1] = ', ' end
- s[#s + 1] = json.stringify(val)
- end
- s[#s + 1] = ']'
- elseif kind == 'table' then
- if as_key then error('Can\'t encode table as key.') end
- s[#s + 1] = '{'
- for k, v in pairs(obj) do
- if #s > 1 then s[#s + 1] = ', ' end
- s[#s + 1] = json.stringify(k, true)
- s[#s + 1] = ':'
- s[#s + 1] = json.stringify(v)
- end
- s[#s + 1] = '}'
- elseif kind == 'string' then
- return '"' .. escape_str(obj) .. '"'
- elseif kind == 'number' then
- if as_key then return '"' .. tostring(obj) .. '"' end
- return tostring(obj)
- elseif kind == 'boolean' then
- return tostring(obj)
- elseif kind == 'nil' then
- return 'null'
- else
- error('Unjsonifiable type: ' .. kind .. '.')
- end
- return table.concat(s)
-end
-
-json.null = {} -- This is a one-off table to represent the null value.
-
-function json.parse(str, pos, end_delim)
- pos = pos or 1
- if pos > #str then error('Reached unexpected end of input.') end
- local pos = pos + #str:match('^%s*', pos) -- Skip whitespace.
- local first = str:sub(pos, pos)
- if first == '{' then -- Parse an object.
- local obj, key, delim_found = {}, true, true
- pos = pos + 1
- while true do
- key, pos = json.parse(str, pos, '}')
- if key == nil then return obj, pos end
- if not delim_found then error('Comma missing between object items.') end
- pos = skip_delim(str, pos, ':', true) -- true -> error if missing.
- obj[key], pos = json.parse(str, pos)
- pos, delim_found = skip_delim(str, pos, ',')
- end
- elseif first == '[' then -- Parse an array.
- local arr, val, delim_found = {}, true, true
- pos = pos + 1
- while true do
- val, pos = json.parse(str, pos, ']')
- if val == nil then return arr, pos end
- if not delim_found then error('Comma missing between array items.') end
- arr[#arr + 1] = val
- pos, delim_found = skip_delim(str, pos, ',')
- end
- elseif first == '"' then -- Parse a string.
- return parse_str_val(str, pos + 1)
- elseif first == '-' or first:match('%d') then -- Parse a number.
- return parse_num_val(str, pos)
- elseif first == end_delim then -- End of an object or array.
- return nil, pos + 1
- else -- Parse true, false, or null.
- local literals = {['true'] = true, ['false'] = false, ['null'] = json.null}
- for lit_str, lit_val in pairs(literals) do
- local lit_end = pos + #lit_str - 1
- if str:sub(pos, lit_end) == lit_str then return lit_val, lit_end + 1 end
- end
- local pos_info_str = 'position ' .. pos .. ': ' .. str:sub(pos, pos + 10)
- error('Invalid json syntax starting at ' .. pos_info_str)
- end
-end
-
-return json
diff --git a/config/awesome/linear/module/auto-start.lua b/config/awesome/linear/module/auto-start.lua
deleted file mode 100644
index 601bd399c..000000000
--- a/config/awesome/linear/module/auto-start.lua
+++ /dev/null
@@ -1,36 +0,0 @@
--- MODULE AUTO-START
--- Run all the apps listed in configuration/apps.lua as run_on_start_up only once when awesome start
-
-local awful = require('awful')
-local naughty = require('naughty')
-local apps = require('configuration.apps')
-local config = require('configuration.config')
-local debug_mode = config.module.auto_start.debug_mode or false
-
-local run_once = function(cmd)
- local findme = cmd
- local firstspace = cmd:find(' ')
- if firstspace then
- findme = cmd:sub(0, firstspace - 1)
- end
- awful.spawn.easy_async_with_shell(
- string.format('pgrep -u $USER -x %s > /dev/null || (%s)', findme, cmd),
- function(stdout, stderr)
- -- Debugger
- if not stderr or stderr == '' or not debug_mode then
- return
- end
- naughty.notification({
- app_name = 'Start-up Applications',
- title = 'Oof! Error detected when starting an application!',
- message = stderr:gsub('%\n', ''),
- timeout = 20,
- icon = require('beautiful').awesome_icon
- })
- end
- )
-end
-
-for _, app in ipairs(apps.run_on_start_up) do
- run_once(app)
-end
diff --git a/config/awesome/linear/module/brightness-osd.lua b/config/awesome/linear/module/brightness-osd.lua
deleted file mode 100644
index 12a9aebe7..000000000
--- a/config/awesome/linear/module/brightness-osd.lua
+++ /dev/null
@@ -1,268 +0,0 @@
-local awful = require("awful")
-local gears = require("gears")
-local wibox = require("wibox")
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local osd_header = wibox.widget {
- text = 'Brightness',
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local osd_value = wibox.widget {
- text = '0%',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local slider_osd = wibox.widget {
- nil,
- {
- id = 'bri_osd_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local bri_osd_slider = slider_osd.bri_osd_slider
-
-bri_osd_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = bri_osd_slider:get_value()
-
- awful.spawn('light -S ' .. math.max(brightness_level, 5), false)
-
- -- Update textbox widget text
- osd_value.text = brightness_level .. '%'
-
- -- Update the brightness slider if values here change
- awesome.emit_signal('widget::brightness:update', brightness_level)
-
- if awful.screen.focused().show_bri_osd then
- awesome.emit_signal(
- 'module::brightness_osd:show',
- true
- )
- end
- end
-)
-
-bri_osd_slider:connect_signal(
- 'button::press',
- function()
- awful.screen.focused().show_bri_osd = true
- end
-)
-
-bri_osd_slider:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_bri_osd = true
- end
-)
-
--- The emit will come from brightness slider
-awesome.connect_signal(
- 'module::brightness_osd',
- function(brightness)
- bri_osd_slider:set_value(brightness)
- end
-)
-
-local icon = wibox.widget {
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
-}
-
-local brightness_slider_osd = wibox.widget {
- icon,
- slider_osd,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-}
-
-local osd_height = dpi(100)
-local osd_width = dpi(300)
-local osd_margin = dpi(10)
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- local s = s or {}
- s.show_bri_osd = false
-
- s.brightness_osd_overlay = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'notification',
- screen = s,
- height = osd_height,
- width = osd_width,
- maximum_height = osd_height,
- maximum_width = osd_width,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = 'middle',
- preferred_positions = {'left', 'right', 'top', 'bottom'}
- }
-
- s.brightness_osd_overlay : setup {
- {
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- forced_height = dpi(48),
- osd_header,
- nil,
- osd_value
- },
- brightness_slider_osd,
- layout = wibox.layout.fixed.vertical
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background()
- }
-
- -- Reset timer on mouse hover
- s.brightness_osd_overlay:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_bri_osd = true
- awesome.emit_signal('module::brightness_osd:rerun')
- end
- )
- end
-)
-
-local hide_osd = gears.timer {
- timeout = 2,
- autostart = true,
- callback = function()
- local focused = awful.screen.focused()
- focused.brightness_osd_overlay.visible = false
- focused.show_bri_osd = false
- end
-}
-
-awesome.connect_signal(
- 'module::brightness_osd:rerun',
- function()
- if hide_osd.started then
- hide_osd:again()
- else
- hide_osd:start()
- end
- end
-)
-
-local placement_placer = function()
- local focused = awful.screen.focused()
-
- local info_center = focused.info_center
- local control_center = focused.control_center
- local brightness_osd = focused.brightness_osd_overlay
-
- if info_center and control_center then
- if info_center.visible then
- awful.placement.bottom_left(
- brightness_osd,
- {
- margins = {
- left = osd_margin,
- right = 0,
- top = 0,
- bottom = osd_margin
- },
- honor_workarea = true
- }
- )
- return
- end
- end
-
- if info_center then
- if info_center.visible then
- awful.placement.bottom_left(
- brightness_osd,
- {
- margins = {
- left = osd_margin,
- right = 0,
- top = 0,
- bottom = osd_margin
- },
- honor_workarea = true
- }
- )
- return
- end
- end
-
- awful.placement.bottom_right(
- brightness_osd,
- {
- margins = {
- left = 0,
- right = osd_margin,
- top = 0,
- bottom = osd_margin
- },
- honor_workarea = true
- }
- )
-end
-
-awesome.connect_signal(
- 'module::brightness_osd:show',
- function(bool)
- placement_placer()
- awful.screen.focused().brightness_osd_overlay.visible = bool
- if bool then
- awesome.emit_signal('module::brightness_osd:rerun')
- awesome.emit_signal(
- 'module::volume_osd:show',
- false
- )
- else
- if hide_osd.started then
- hide_osd:stop()
- end
- end
- end
-)
diff --git a/config/awesome/linear/module/dynamic-wallpaper.lua b/config/awesome/linear/module/dynamic-wallpaper.lua
deleted file mode 100755
index 72e4406a0..000000000
--- a/config/awesome/linear/module/dynamic-wallpaper.lua
+++ /dev/null
@@ -1,364 +0,0 @@
-----------------------------------------------------------------------------
---- Wallpaper changer module
---
--- @author Gerome Matilla <gerome.matilla07@gmail.com>
--- @copyright 2019 Gerome Matilla
--- @module wallchange
---
---- Nevermind this. Do what you want.
-----------------------------------------------------------------------------
-
--- This module changes wallpaper based on declared time
--- It checks the difference between the current time and the next scheduled time
--- Then convert it to seconds to set it as a timeout value
-
--- Limitations:
--- Timeout paused when laptop/pc is suspended or in sleep mode, and there's probably some bugs too so whatever
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config = require('configuration.config')
-
-
--- ========================================
--- Configuration
--- Change your preference here
--- ========================================
-
-local wall_config = {
- -- Wallpaper directory. The default is:
- -- local wall_config.wall_dir = os.getenv('HOME') .. 'Pictures/Wallpapers/'
- wall_dir = filesystem.get_configuration_dir() .. (config.module.dynamic_wallpaper.wall_dir or 'theme/wallpapers/'),
-
- -- If there's a picture format that awesome accepts and i missed
- -- (which i probably did) feel free to add it right here
- valid_picture_formats = config.module.dynamic_wallpaper.valid_picture_formats or {"jpg", "png", "jpeg"},
-
- -- Table mapping schedule to wallpaper filename
- wallpaper_schedule = config.module.dynamic_wallpaper.wallpaper_schedule or {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- },
-
- -- Don't stretch wallpaper on multihead setups if true
- stretch = config.module.dynamic_wallpaper.stretch or false
-}
-
--- ========================================
--- Processes
--- Don't touch it if it's working
--- ========================================
-
--- Get current time
-local current_time = function()
- return os.date('%H:%M:%S')
-end
-
--- Countdown variable
--- In seconds
-local the_countdown = nil
-
--- Parse seconds to HH:MM:SS
-local function parse_to_time(seconds)
- -- DST ruined me :(
- --return os.date("%H:%M:%S", seconds)
-
- local function format(str)
- while #str < 2 do
- str = '0' .. str
- end
-
- return str
- end
-
- local function convert(num)
- return format(tostring(num))
- end
-
- local hours = convert(math.floor(seconds / 3600))
- seconds = seconds - (hours * 3600)
-
- local minutes = convert(math.floor(seconds / 60))
- seconds = seconds - (minutes * 60)
-
- local seconds = convert(math.floor(seconds))
-
- return (hours .. ':' .. minutes .. ':' .. seconds)
-
-end
-
--- Parse HH:MM:SS to seconds
-local parse_to_seconds = function(time)
-
- -- Convert HH in HH:MM:SS
- local hour_sec = tonumber(string.sub(time, 1, 2)) * 3600
-
- -- Convert MM in HH:MM:SS
- local min_sec = tonumber(string.sub(time, 4, 5)) * 60
-
- -- Get SS in HH:MM:SS
- local get_sec = tonumber(string.sub(time, 7, 8))
-
- -- Return computed seconds
- return (hour_sec + min_sec + get_sec)
-end
-
--- Get time difference
-local time_diff = function(future, past)
- local diff = parse_to_seconds(future) - parse_to_seconds(past)
- if diff < 0 then
- diff = diff + (24 * 3600) --If time difference is negative, the future is meant for tomorrow
- end
- return diff
-end
-
--- Returns a table containing all file paths in a directory
-local function get_dir_contents(dir)
- -- Command to give list of files in directory
- local dir_explore = 'find ' .. dir .. ' -printf "%f\\n"'
- local lines = io.popen(dir_explore):lines() --Done synchronously because we literally can't continue without files
- local files = {}
- for line in lines do
- table.insert(files, line)
- end
- return files
-end
-
--- Returns a table of all the files that were one of the valid file formats
-local function filter_files_by_format(files, valid_file_formats)
- local valid_files = {}
- for _, file in ipairs(files) do
- for _, format in ipairs(valid_file_formats) do
- if string.match(file, ".+%." .. format) ~= nil then
- table.insert(valid_files, file)
- break --No need to check other formats
- end
- end
- end
-
- return valid_files
-end
-
--- Returns a table of files that contained any of the keywords, in the same order as the words themselves
-local function find_files_containing_keywords(files, keywords)
- local found_files = {}
-
- for _, word in ipairs(keywords) do --Preserves keyword order inherently, conveniently
- for _, file in ipairs(files) do
- -- Check if file is word, contains word at beginning or contains word between 2 non-alphanumeric characters
- if file == word or string.find(file, "^" .. word .. "[^%a]") or string.find(file, "[^%a]" .. word .. "[^%a]") then
- found_files[word] = file
- break --Only return 1 file per word
- end
- end
- end
-
- return found_files
-end
-
--- Turn an ordered list of files into a scheduled list of files
-local function auto_schedule(wall_list)
- local sched = {}
- for index, file in ipairs(wall_list) do
- local auto_time = parse_to_time(parse_to_seconds("24:00:00") * (index - 1) / #wall_list)
- sched[auto_time] = file
- end
-
- return sched
-end
-
--- Reformat whatever schedule was specified into an actual schedule
-if #wall_config.wallpaper_schedule == 0 then
- local count = 0
- -- Determine if empty or if manual schedule
- for k, v in pairs(wall_config.wallpaper_schedule) do
- count = count + 1
- end
-
- if count == 0 then --Schedule is actually empty
- -- Get all pictures
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
-
- --Sort pictures as sanely as possible
- local function order_pictures(a, b) --Attempts to mimic default sort but numbers aren't compared as strings
- if tonumber(a) ~= nil and tonumber(b) ~= nil then
- return tonumber(a) < tonumber(b)
- else
- return a < b
- end
- end
- table.sort(pictures, order_pictures)
-
- wall_config.wallpaper_schedule = auto_schedule(pictures)
-
- else --Schedule is manually timed
- -- Get times as list
- local ordered_times = {}
- for time, _ in pairs(wall_config.wallpaper_schedule) do
- table.insert(ordered_times, time)
- end
-
- -- Sort times using seconds as comparison
- local function order_time_asc(a, b)
- return parse_to_seconds(a) < parse_to_seconds(b)
- end
- table.sort(ordered_times, order_time_asc)
-
- -- Get ordered list of keywords from ordered times
- local keywords = {}
- for index, time in ipairs(ordered_times) do
- keywords[index] = wall_config.wallpaper_schedule[time]
- end
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Replace keywords with files
- for index, time in ipairs(ordered_times) do
- local word = wall_config.wallpaper_schedule[time]
- if pictures[word] ~= nil then
- wall_config.wallpaper_schedule[time] = pictures[word]
- else --To avoid crashes, we'll remove entries with invalid keywords
- wall_config.wallpaper_schedule[time] = nil
- end
- end
- end
-else --Schedule is list of keywords
- local keywords = wall_config.wallpaper_schedule
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Order files by keyword (if a file was found for the keyword)
- local ordered_pictures = {}
- for _, word in ipairs(keywords) do
- local file = pictures[word]
- if file ~= nil then
- table.insert(ordered_pictures, file)
- end
- end
-
- wall_config.wallpaper_schedule = auto_schedule(ordered_pictures)
-end
-
--- Set wallpaper
-local set_wallpaper = function(path)
- if wall_config.stretch then
- for s in screen do
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path, s)
- end
- else
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path)
- end
-end
-
--- Update wallpaper (used by the manage_timer function)
--- I think the gears.wallpaper.maximized is too fast or being ran asynchronously
--- So the wallpaper is not being updated on awesome (re)start without this timer
--- We need some delay.
--- Hey it's working, so whatever
-local update_wallpaper = function(wall_name)
- local wall_dir = wall_config.wall_dir .. wall_name
- set_wallpaper(wall_dir)
-
- -- Overwrite the default wallpaper
- -- This is important in case we add an extra monitor
- beautiful.wallpaper = wall_dir
-end
-
--- Updates variables
-local manage_timer = function()
- -- Get current time
- local time_now = parse_to_seconds(current_time())
-
- local previous_time = '' --Scheduled time that should activate now
- local next_time = '' --Time that should activate next
-
- local first_time = '24:00:00' --First scheduled time registered (to be found)
- local last_time = '00:00:00' --Last scheduled time registered (to be found)
-
- -- Find previous_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if previous_time == '' or parsed_time > parse_to_seconds(previous_time) then
- if parsed_time <= time_now then
- previous_time = time
- end
- end
-
- if parsed_time > parse_to_seconds(last_time) then
- last_time = time
- end
- end
-
- -- Previous time being blank = no scheduled time today. Therefore
- -- the last time was yesterday's latest time
- if previous_time == '' then
- previous_time = last_time
- end
-
- --Find next_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if next_time == '' or parsed_time < parse_to_seconds(next_time) then
- if parsed_time > time_now then
- next_time = time
- end
- end
-
- if parsed_time < parse_to_seconds(first_time) then
- first_time = time
- end
- end
-
- -- Next time being blank means that there is no scheduled times left for
- -- the current day. So next scheduled time is tomorrow's first time
- if next_time == '' then
- next_time = first_time
- end
-
- -- Update Wallpaper
- update_wallpaper(wall_config.wallpaper_schedule[previous_time])
-
- -- Get the time difference to set as timeout for the wall_updater timer below
- the_countdown = time_diff(next_time, current_time())
-
-end
-
--- Update values at startup
-manage_timer()
-
-local wall_updater = gears.timer {
- -- The timeout is the difference of current time and the scheduled time we set above.
- timeout = the_countdown,
- autostart = true,
- call_now = true,
- callback = function()
- -- Emit signal to update wallpaper
- awesome.emit_signal('module::change_wallpaper')
- end
-}
-
--- Update wallpaper here and update the timeout for the next schedule
-awesome.connect_signal(
- 'module::change_wallpaper',
- function()
- --set_wallpaper(wall_dir .. wall_data[2])
-
- -- Update values for the next specified schedule
- manage_timer()
-
- -- Update timer timeout for the next specified schedule
- wall_updater.timeout = the_countdown
-
- -- Restart timer
- wall_updater:again()
- end
-)
diff --git a/config/awesome/linear/module/exit-screen.lua b/config/awesome/linear/module/exit-screen.lua
deleted file mode 100644
index ee2684963..000000000
--- a/config/awesome/linear/module/exit-screen.lua
+++ /dev/null
@@ -1,360 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-
-local msg_table = {
- 'See you later, alligator!',
- 'After a while, crocodile.',
- 'Stay out of trouble.',
- 'I’m out of here.',
- 'Yamete, onii-chan~. UwU',
- 'Okay...bye, fry guy!',
- 'Peace out!',
- 'Peace out, bitch!',
- 'Gotta get going.',
- 'Out to the door, dinosaur.',
- 'Don\'t forget to come back!',
- 'Smell ya later!',
- 'In a while, crocodile.',
- 'Adios, amigo.',
- 'Begone!',
- 'Arrivederci.',
- 'Never look back!',
- 'So long, sucker!',
- 'Au revoir!',
- 'Later, skater!',
- 'That\'ll do pig. That\'ll do.',
- 'Happy trails!',
- 'Smell ya later!',
- 'See you soon, baboon!',
- 'Bye Felicia!',
- 'Sayonara!',
- 'Ciao!',
- 'Well.... bye.',
- 'Delete your browser history!',
- 'See you, Space Cowboy!',
- 'Change da world. My final message. Goodbye.',
- 'Find out on the next episode of Dragonball Z...',
- 'Choose wisely!'
-}
-
-local greeter_message = wibox.widget {
- markup = 'Choose wisely!',
- font = 'Inter UltraLight 48',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_name = wibox.widget {
- markup = 'user@hostname',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(140),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- profile_imagebox:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_profile_pic()
-
-local update_user_name = function()
- awful.spawn.easy_async_with_shell(
- [[
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- local first_name = stdout:match('(.*)@') or stdout:match('(.-)%s')
- first_name = first_name:sub(1, 1):upper() .. first_name:sub(2)
- profile_name:set_markup(stdout)
- profile_name:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_user_name()
-
-local update_greeter_msg = function()
- greeter_message:set_markup(msg_table[math.random(#msg_table)])
- greeter_message:emit_signal('widget::redraw_needed')
-end
-
-update_greeter_msg()
-
-local build_power_button = function(name, icon, callback)
- local power_button_label= wibox.widget {
- text = name,
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-
- local power_button = wibox.widget {
- {
- {
- {
- {
- image = icon,
- widget = wibox.widget.imagebox
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- widget = wibox.container.background
- },
- shape = gears.shape.rounded_rect,
- forced_width = dpi(90),
- forced_height = dpi(90),
- widget = clickable_container
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- }
-
- local exit_screen_item = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- power_button,
- power_button_label
- }
-
- exit_screen_item:connect_signal(
- 'button::release',
- function()
- callback()
- end
- )
- return exit_screen_item
-end
-
-local suspend_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock .. ' & systemctl suspend')
-end
-
-local logout_command = function()
- awesome.quit()
-end
-
-local lock_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock)
-end
-
-local poweroff_command = function()
- awful.spawn.with_shell('poweroff')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local reboot_command = function()
- awful.spawn.with_shell('reboot')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local poweroff = build_power_button('Shutdown', icons.power, poweroff_command)
-local reboot = build_power_button('Restart', icons.restart, reboot_command)
-local suspend = build_power_button('Sleep', icons.sleep, suspend_command)
-local logout = build_power_button('Logout', icons.logout, logout_command)
-local lock = build_power_button('Lock', icons.lock, lock_command)
-
-local create_exit_screen = function(s)
- s.exit_screen = wibox
- {
- screen = s,
- type = 'splash',
- visible = false,
- ontop = true,
- bg = beautiful.background,
- fg = beautiful.fg_normal,
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y
- }
-
- s.exit_screen:buttons(
- gears.table.join(
- awful.button(
- {},
- 2,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- )
- )
- )
-
- s.exit_screen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.vertical,
- {
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil
- },
- profile_name
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- widget = wibox.container.margin,
- margins = dpi(15),
- greeter_message
- },
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- {
- poweroff,
- reboot,
- suspend,
- logout,
- lock,
- layout = wibox.layout.fixed.horizontal
- },
- spacing = dpi(30),
- layout = wibox.layout.fixed.vertical
- },
- widget = wibox.container.margin,
- margins = dpi(15)
- },
- nil
- }
- },
- nil
- }
-end
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_exit_screen(s)
- end
-)
-
-screen.connect_signal(
- 'removed',
- function(s)
- create_exit_screen(s)
- end
-)
-
-local exit_screen_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 's' then
- suspend_command()
-
- elseif key == 'e' then
- logout_command()
-
- elseif key == 'l' then
- lock_command()
-
- elseif key == 'p' then
- poweroff_command()
-
- elseif key == 'r' then
- reboot_command()
-
- elseif key == 'Escape' or key == 'q' or key == 'x' then
- awesome.emit_signal('module::exit_screen:hide')
- end
- end
-}
-
-awesome.connect_signal(
- 'module::exit_screen:show',
- function()
- for s in screen do
- s.exit_screen.visible = false
- end
- awful.screen.focused().exit_screen.visible = true
- exit_screen_grabber:start()
- end
-)
-
-awesome.connect_signal(
- 'module::exit_screen:hide',
- function()
- update_greeter_msg()
- exit_screen_grabber:stop()
- for s in screen do
- s.exit_screen.visible = false
- end
- end
-)
diff --git a/config/awesome/linear/module/lockscreen.lua b/config/awesome/linear/module/lockscreen.lua
deleted file mode 100755
index ed46bbed0..000000000
--- a/config/awesome/linear/module/lockscreen.lua
+++ /dev/null
@@ -1,849 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local config = require('configuration.config')
-
--- Add paths to package.cpath
-package.cpath = package.cpath .. ';' .. config_dir .. '/library/?.so;' .. '/usr/lib/lua-pam/?.so;'
-
--- Configuration table
-local locker_config = {
- -- Clock mode
- military_clock = config.module.lockscreen.military_clock or false,
- -- Fallback password
- fallback_password = function()
- return config.module.lockscreen.fallback_password or 'toor'
- end,
- -- Capture a picture using webcam
- capture_intruder = config.module.lockscreen.capture_intruder or false,
- -- Save location, auto creates
- face_capture_dir = config.module.lockscreen.face_capture_dir or '$(xdg-user-dir PICTURES)/Intruders/',
- -- Blur background
- blur_background = config.module.lockscreen.blur_background or false,
- -- Background directory
- bg_dir = config.module.lockscreen.bg_dir or (config_dir .. 'theme/wallpapers/'),
- -- Default background
- bg_image = config.module.lockscreen.bg_image or 'morning-wallpaper.jpg',
- -- /tmp directory
- tmp_wall_dir = config.module.lockscreen.tmp_wall_dir or '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
-}
-
--- Useful variables (DO NOT TOUCH THESE)
-local input_password = nil
-local lock_again = nil
-local type_again = true
-local capture_now = locker_config.capture_intruder
-local locked_tag = nil
-
-local uname_text = wibox.widget {
- id = 'uname_text',
- markup = '$USER',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local caps_text = wibox.widget {
- id = 'uname_text',
- markup = 'Caps Lock is on',
- font = 'Inter Italic 10',
- align = 'center',
- valign = 'center',
- opacity = 0.0,
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- id = 'user_icon',
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(130),
- forced_width = dpi(130),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local clock_format = '%H:%M'
-if not locker_config.military_clock then
- clock_format = '%I:%M %p'
-end
-
--- Create clock widget
-local time = wibox.widget.textclock(clock_format, 1)
-
-local wanted_text = wibox.widget {
- markup = 'INTRUDER ALERT!',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local msg_table = {
- 'This incident will be reported.',
- 'We are watching you.',
- 'We know where you live.',
- 'RUN!',
- 'Yamete, Oniichan~ uwu',
- 'This will self-destruct in 5 seconds!',
- 'Image successfully sent!',
- 'You\'re doomed!',
- 'Authentication failed!',
- 'I am watching you.',
- 'I know where you live.',
- 'RUN!',
- 'Your parents must be proud of you.'
-}
-
-local wanted_msg = wibox.widget {
- markup = 'This incident will be reported!',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local wanted_image = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(120),
- clip_shape = gears.shape.rounded_rect,
- widget = wibox.widget.imagebox
-}
-
-local date_value = function()
- local ordinal = nil
- local date = os.date('%d')
- local day = os.date('%A')
- local month = os.date('%B')
-
- local first_digit = string.sub(date, 0, 1)
- local last_digit = string.sub(date, -1)
- if first_digit == '0' then
- date = last_digit
- end
-
- if last_digit == '1' and date ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and date ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and date ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- return date .. ordinal .. ' of ' .. month .. ', ' .. day
-end
-
-local date = wibox.widget {
- markup = date_value(),
- font = 'Inter Bold 20',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local circle_container = wibox.widget {
- bg = beautiful.transparent,
- forced_width = dpi(140),
- forced_height = dpi(140),
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local locker_arc = wibox.widget {
- bg = beautiful.transparent,
- forced_width = dpi(140),
- forced_height = dpi(140),
- shape = function(cr, width, height)
- gears.shape.arc(cr, width, height, dpi(5), 0, (math.pi / 2), false, false)
- end,
- widget = wibox.container.background
-}
-
-local rotate_container = wibox.container.rotate()
-local locker_widget = wibox.widget {
- {
- locker_arc,
- widget = rotate_container
- },
- layout = wibox.layout.fixed.vertical
-}
-
--- Rotation direction table
-local rotation_direction = {'north', 'west', 'south', 'east'}
-
--- Red, Green, Yellow, Blue
-local red = beautiful.system_red_dark
-local green = beautiful.system_green_dark
-local yellow = beautiful.system_yellow_dark
-local blue = beautiful.system_blue_dark
-
--- Color table
-local arc_color = {red, green, yellow, blue}
-
--- Processes
-local locker = function(s)
-
- local lockscreen = wibox {
- screen = s,
- visible = false,
- ontop = true,
- type = 'splash',
- width = s.geometry.width,
- height = s.geometry.height,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- -- Update username textbox
- awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- uname_text:set_markup(stdout)
- end
- )
-
- local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
- end
-
- -- Update image
- gears.timer.start_new(
- 2,
- function()
- update_profile_pic()
- end
- )
-
- local wanted_poster = awful.popup {
- widget = {
- {
- {
- wanted_text,
- {
- nil,
- wanted_image,
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- wanted_msg,
- spacing = dpi(5),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(20),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background
- },
- bg = beautiful.transparent,
- type = 'utility',
- ontop = true,
- shape = gears.shape.rectangle,
- maximum_width = dpi(250),
- maximum_height = dpi(250),
- hide_on_right_click = false,
- preferred_anchors = {'middle'},
- visible = false
- }
-
- -- Place wanted poster at the bottom of primary screen
- awful.placement.top(
- wanted_poster,
- {
- margins = {
- top = dpi(10)
- }
- }
- )
-
- -- Check Capslock state
- local check_caps = function()
- awful.spawn.easy_async_with_shell(
- 'xset q | grep Caps | cut -d: -f3 | cut -d0 -f1 | tr -d \' \'',
- function(stdout)
- if stdout:match('on') then
- caps_text.opacity = 1.0
- else
- caps_text.opacity = 0.0
- end
- caps_text:emit_signal('widget::redraw_needed')
- end
- )
- end
-
- -- Rotate the color arc on random direction
- local locker_arc_rotate = function()
-
- local direction = rotation_direction[math.random(#rotation_direction)]
- local color = arc_color[math.random(#arc_color)]
-
- rotate_container.direction = direction
- locker_arc.bg = color
-
- rotate_container:emit_signal('widget::redraw_needed')
- locker_arc:emit_signal('widget::redraw_needed')
- locker_widget:emit_signal('widget::redraw_needed')
- end
-
- -- Check webcam
- local check_webcam = function()
- awful.spawn.easy_async_with_shell(
- 'ls -l /dev/video* | grep /dev/video0',
- function(stdout)
- if not locker_config.capture_intruder then
- capture_now = false
- return
- end
-
- if not stdout:match('/dev/video0') then
- capture_now = false
- else
- capture_now = true
- end
- end
- )
- end
-
- check_webcam()
-
- -- Snap an image of the intruder
- local intruder_capture = function()
- local capture_image = [[
- save_dir="]] .. locker_config.face_capture_dir .. [["
- date="$(date +%Y%m%d_%H%M%S)"
- file_loc="${save_dir}SUSPECT-${date}.png"
-
- if [ ! -d "$save_dir" ]; then
- mkdir -p "$save_dir";
- fi
-
- ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -ss 0:0:2 -frames 1 "${file_loc}"
-
- canberra-gtk-play -i camera-shutter &
- echo "${file_loc}"
- ]]
-
- -- Capture the filthy intruder face
- awful.spawn.easy_async_with_shell(
- capture_image,
- function(stdout)
- circle_container.bg = beautiful.transparent
-
- -- Humiliate the intruder by showing his/her hideous face
- wanted_image:set_image(stdout:gsub('%\n',''))
- wanted_msg:set_markup(msg_table[math.random(#msg_table)])
- wanted_poster.visible= true
-
- awful.placement.top(
- wanted_poster,
- {
- margins = {
- top = dpi(10)
- }
- }
- )
-
- wanted_image:emit_signal('widget::redraw_needed')
- type_again = true
- end
- )
- end
-
- -- Login failed
- local stoprightthereyoucriminalscum = function()
- circle_container.bg = red .. 'AA'
- if capture_now then
- intruder_capture()
- else
- gears.timer.start_new(
- 1,
- function()
- circle_container.bg = beautiful.transparent
- type_again = true
- end
- )
- end
- end
-
- -- Login successful
- local generalkenobi_ohhellothere = function()
- circle_container.bg = green .. 'AA'
-
- -- Add a little delay before unlocking completely
- gears.timer.start_new(
- 1,
- function()
- if capture_now then
- -- Hide wanted poster
- wanted_poster.visible = false
- end
-
- -- Hide all the lockscreen on all screen
- for s in screen do
- if s.index == 1 then
- s.lockscreen.visible = false
- else
- s.lockscreen_extended.visible = false
- end
- end
-
- circle_container.bg = beautiful.transparent
- lock_again = true
- type_again = true
-
- -- Select old tag
- -- And restore minimized focused client if there's any
- if locked_tag then
- locked_tag.selected = true
- locked_tag = nil
- end
- local c = awful.client.restore()
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- )
- end
- -- A backdoor.
- -- Sometimes I'm too lazy to type so I decided to create this.
- -- Sometimes my genius is... it's almost frightening.
- local back_door = function()
- generalkenobi_ohhellothere()
- end
-
- -- Check module if valid
- local module_check = function(name)
- if package.loaded[name] then
- return true
- else
- for _, searcher in ipairs(package.searchers or package.loaders) do
- local loader = searcher(name)
- if type(loader) == 'function' then
- package.preload[name] = loader
- return true
- end
- end
- return false
- end
- end
-
- -- Password/key grabber
- local password_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- mask_event_callback = true,
- keybindings = {
- awful.key {
- modifiers = {'Control'},
- key = 'u',
- on_press = function()
- input_password = nil
- end
- },
- awful.key {
- modifiers = {'Mod1', 'Mod4', 'Shift', 'Control'},
- key = 'Return',
- on_press = function(self)
- if not type_again then
- return
- end
- self:stop()
-
- -- Call backdoor
- back_door()
- end
- }
- },
- keypressed_callback = function(self, mod, key, command)
- if not type_again then
- return
- end
-
- -- Clear input string
- if key == 'Escape' then
- -- Clear input threshold
- input_password = nil
- return
- end
-
- -- Accept only the single charactered key
- -- Ignore 'Shift', 'Control', 'Return', 'F1', 'F2', etc., etc.
- if #key == 1 then
- locker_arc_rotate()
-
- if input_password == nil then
- input_password = key
- return
- end
- input_password = input_password .. key
- end
-
- end,
- keyreleased_callback = function(self, mod, key, command)
- locker_arc.bg = beautiful.transparent
- locker_arc:emit_signal('widget::redraw_needed')
-
- if key == 'Caps_Lock' then
- check_caps()
- return
- end
-
- if not type_again then
- return
- end
-
- -- Validation
- if key == 'Return' then
- -- Validate password
- local authenticated = false
- if input_password ~= nil then
- -- If lua-pam library is 'okay'
- if module_check('liblua_pam') then
- local pam = require('liblua_pam')
- authenticated = pam:auth_current_user(input_password)
- else
- -- Library doesn't exist or returns an error due to some reasons (read the manual)
- -- Use fallback password data
- authenticated = input_password == locker_config.fallback_password()
-
- local rtfm = naughty.action {
- name = 'Read Wiki',
- icon_only = false
- }
-
- local dismiss = naughty.action {
- name = 'Dismiss',
- icon_only = false
- }
-
- rtfm:connect_signal(
- 'invoked',
- function()
- awful.spawn(
- [[sh -c "
- xdg-open 'https://github.com/manilarome/the-glorious-dotfiles/wiki'
- "]],
- false
- )
- end
- )
-
- naughty.notification({
- app_name = 'Security',
- title = 'WARNING',
- message = 'You\'re using the fallback password! It\'s recommended to use the PAM Integration!',
- urgency = 'critical',
- actions = { rtfm, dismiss }
- })
- end
- end
-
- if authenticated then
- -- Come in!
- self:stop()
- generalkenobi_ohhellothere()
- else
- -- F*ck off, you [REDACTED]!
- stoprightthereyoucriminalscum()
- end
-
- -- Allow typing again and empty password container
- type_again = false
- input_password = nil
- end
- end
- }
-
- lockscreen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- expand = 'none',
- spacing = dpi(20),
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- time,
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- date,
- nil
- },
- expand = 'none',
- layout = wibox.layout.fixed.vertical
- },
- {
- layout = wibox.layout.fixed.vertical,
- {
- circle_container,
- locker_widget,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil,
- },
- layout = wibox.layout.stack
- },
- uname_text,
- caps_text
- },
- },
- nil
- },
- nil
- }
-
- local show_lockscreen = function()
- -- Why is there a lock_again variable?
- -- It prevents the user to spam locking while in a process of authentication
- -- Prevents a potential bug/problem
- if lock_again == true or lock_again == nil then
- -- Force update clock widget
- time:emit_signal('widget::redraw_needed')
-
- -- Check capslock status
- check_caps()
-
- -- Check webcam status
- check_webcam()
-
- -- Show all the lockscreen on each screen
- for s in screen do
- if s.index == 1 then
- s.lockscreen.visible = true
- else
- s.lockscreen_extended.visible = true
- end
- end
-
- -- Start keygrabbing, but with a little delay to
- -- give some extra time for the free_keygrab function
- gears.timer.start_new(
- 0.5,
- function()
- -- Start key grabbing for password
- password_grabber:start()
- end
- )
-
- -- Dont lock again
- lock_again = false
- end
- end
-
- local free_keygrab = function()
- -- Kill rofi instance.
- awful.spawn.with_shell('kill -9 $(pgrep rofi)')
-
- -- Check if there's a keygrabbing instance.
- -- If yes, stop it.
- local keygrabbing_instance = awful.keygrabber.current_instance
- if keygrabbing_instance then
- keygrabbing_instance:stop()
- end
-
- -- Unselect all tags and minimize the focused client
- -- These will fix the problem with virtualbox or
- -- any other program that has keygrabbing enabled
- if client.focus then
- client.focus.minimized = true
- end
- for _, t in ipairs(mouse.screen.selected_tags) do
- locked_tag = t
- t.selected = false
- end
- end
-
- awesome.connect_signal(
- 'module::lockscreen_show',
- function()
- if lock_again == true or lock_again == nil then
- free_keygrab()
- show_lockscreen()
- end
- end
- )
- return lockscreen
-end
-
--- This lockscreen is for the extra/multi monitor
-local locker_ext = function(s)
- local extended_lockscreen = wibox {
- screen = s,
- visible = false,
- ontop = true,
- ontype = 'true',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
- return extended_lockscreen
-end
-
--- Create lockscreen for each screen
-local create_lock_screens = function(s)
- if s.index == 1 then
- s.lockscreen = locker(s)
- else
- s.lockscreen_extended = locker_ext(s)
- end
-end
-
--- Don't show notification popups if the screen is locked
-local check_lockscreen_visibility = function()
- focused = awful.screen.focused()
- if focused.lockscreen and focused.lockscreen.visible then
- return true
- end
- if focused.lockscreen_extended and focused.lockscreen_extended.visible then
- return true
- end
- return false
-end
-
--- Notifications signal
-naughty.connect_signal(
- 'request::display',
- function(_)
- if check_lockscreen_visibility() then
- naughty.destroy_all_notifications(nil, 1)
- end
- end
-)
-
--- Filter background image
-local filter_bg_image = function(wall_name, index, ap, width, height)
- -- Checks if the blur has to be blurred
- local blur_filter_param = ''
- if locker_config.blur_background then
- blur_filter_param = '-filter Gaussian -blur 0x10'
- end
-
- -- Create imagemagick command
- local magic = [[
- sh -c "
- if [ ! -d ]] .. locker_config.tmp_wall_dir ..[[ ];
- then
- mkdir -p ]] .. locker_config.tmp_wall_dir .. [[;
- fi
- convert -quality 100 -brightness-contrast -20x0 ]] .. ' ' .. blur_filter_param .. ' '.. locker_config.bg_dir .. wall_name ..
- [[ -gravity center -crop ]] .. ap .. [[:1 +repage -resize ]] .. width .. 'x' .. height ..
- [[! ]] .. locker_config.tmp_wall_dir .. index .. wall_name .. [[
- "]]
- return magic
-end
-
--- Apply lockscreen background image
-local apply_ls_bg_image = function(wall_name)
- -- Iterate through all the screens and create a lockscreen for each of it
- for s in screen do
- local index = s.index .. '-'
-
- -- Get screen geometry
- local screen_width = s.geometry.width
- local screen_height = s.geometry.height
-
- -- Get the right resolution/aspect ratio that will be use as the background
- local aspect_ratio = screen_width / screen_height
- aspect_ratio = math.floor(aspect_ratio * 100) / 100
-
- -- Create image filter command
- local cmd = nil
- cmd = filter_bg_image(wall_name, index, aspect_ratio, screen_width, screen_height)
-
- -- Asign lockscreen to each screen
- if s.index == 1 then
- -- Primary screen
- awful.spawn.easy_async_with_shell(
- cmd,
- function()
- s.lockscreen.bgimage = locker_config.tmp_wall_dir .. index .. wall_name
- end
- )
- else
- -- Multihead screen/s
- awful.spawn.easy_async_with_shell(
- cmd,
- function()
- s.lockscreen_extended.bgimage = locker_config.tmp_wall_dir .. index .. wall_name
- end
- )
- end
- end
-end
-
--- Create a lockscreen and its background for each screen on start-up
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_lock_screens(s)
- apply_ls_bg_image(locker_config.bg_image)
- end
-)
-
--- Regenerate lockscreens and its background if a screen was removed to avoid errors
-screen.connect_signal(
- 'removed',
- function(s)
- create_lock_screens(s)
- apply_ls_bg_image(locker_config.bg_image)
- end
-)
diff --git a/config/awesome/linear/module/menu.lua b/config/awesome/linear/module/menu.lua
deleted file mode 100644
index 7843dc228..000000000
--- a/config/awesome/linear/module/menu.lua
+++ /dev/null
@@ -1,246 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local apps = require('configuration.apps')
-local menubar = require('menubar')
-local awful_menu = awful.menu
-local menu_gen = menubar.menu_gen
-local menu_utils = menubar.utils
-local icon_theme = require('menubar.icon_theme')
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local terminal = apps.default.terminal
-local web_browser = apps.default.web_browser
-local file_manager = apps.default.file_manager
-local text_editor = apps.default.text_editor
-local editor_cmd = terminal .. ' -e ' .. (os.getenv('EDITOR') or 'nano')
-
---[[
-
- Awesome-Freedesktop
- Freedesktop.org compliant desktop entries and menu
-
- Menu section
-
- Licensed under GNU General Public License v2
- * (c) 2016, Luke Bonham
- * (c) 2014, Harvey Mittens
-
---]]
-
-local io, pairs, string, table, os = io, pairs, string, table, os
-
--- Expecting a wm_name of awesome omits too many applications and tools
-menu_utils.wm_name = ''
-
--- Menu table
-local menu = {}
-
--- Determines if a path points to a directory, by checking if it can be read
--- (which is `nil` also for empty files) and if its size is not 0.
--- @author blueyed
--- @param path the path to check
-menu.is_dir = function(path)
- local f = io.open(path)
- return f and not f:read(0) and f:seek('end') ~= 0 and f:close()
-end
-
--- Remove non existent paths in order to avoid issues
-local existent_paths = {}
-for k,v in pairs(menu_gen.all_menu_dirs) do
- if menu.is_dir(v) then
- table.insert(existent_paths, v)
- end
-end
-menu_gen.all_menu_dirs = existent_paths
-
--- Determines whether an table includes a certain element
--- @param tab a given table
--- @param val the element to search for
--- @return true if the given string is found within the search table; otherwise, false if not
-menu.has_value = function(tab, val)
- for index, value in pairs(tab) do
- if val:find(value) then
- return true
- end
- end
- return false
-end
-
--- Use MenuBar parsing utils to build a menu for Awesome
--- @return awful.menu
-menu.build = function(args)
- local args = args or {}
- local icon_size = args.icon_size
- local before = args.before or {}
- local after = args.after or {}
- local skip_items = args.skip_items or {}
- local sub_menu = args.sub_menu or false
-
- local result = {}
- local _menu = awful_menu({ items = before })
-
- menu_gen.generate(function(entries)
- -- Add category icons
- for k, v in pairs(menu_gen.all_categories) do
- table.insert(result, { k, {}, v.icon })
- end
-
- -- Get items table
- for k, v in pairs(entries) do
- for _, cat in pairs(result) do
- if cat[1] == v.category then
- if not menu.has_value(skip_items, v.name) then
- table.insert(cat[2], { v.name, v.cmdline, v.icon })
- end
- break
- end
- end
- end
-
- -- Cleanup things a bit
- for i = #result, 1, -1 do
- local v = result[i]
- if #v[2] == 0 then
- -- Remove unused categories
- table.remove(result, i)
- else
- --Sort entries alphabetically (by name)
- table.sort(v[2], function (a, b) return string.byte(a[1]) < string.byte(b[1]) end)
- -- Replace category name with nice name
- v[1] = menu_gen.all_categories[v[1]].name
- end
- end
-
- -- Sort categories alphabetically also
- table.sort(result, function(a, b) return string.byte(a[1]) < string.byte(b[1]) end)
-
- -- Add menu item to hold the generated menu
- if sub_menu then
- result = {{sub_menu, result}}
- end
-
- -- Add items to menu
- for _, v in pairs(result) do _menu:add(v) end
- for _, v in pairs(after) do _menu:add(v) end
- end)
-
- -- Set icon size
- if icon_size then
- for _,v in pairs(menu_gen.all_categories) do
- v.icon = icon_theme():find_icon_path(v.icon_name, icon_size)
- end
- end
-
- -- Hold the menu in the module
- menu.menu = _menu
-
- return _menu
-end
-
--- Create a launcher widget and a main menu
-awesome_menu = {
- {
- 'Hotkeys',
- function()
- hotkeys_popup.show_help(nil, awful.screen.focused())
- end,
- menubar.utils.lookup_icon('keyboard')
- },
- {
- 'Edit config',
- editor_cmd .. ' ' .. awesome.conffile,
- menubar.utils.lookup_icon('accessories-text-editor')
- },
- {
- 'Restart',
- awesome.restart,
- menubar.utils.lookup_icon('system-restart')
- },
- {
- 'Quit',
- function() awesome.quit() end,
- menubar.utils.lookup_icon('system-log-out')
- }
-}
-
-local default_app_menu = {
- {
- 'Terminal',
- terminal,
- menubar.utils.lookup_icon('utilities-terminal')
- },
- {
- 'Web browser',
- web_browser,
- menubar.utils.lookup_icon('webbrowser-app')
- },
- {
- 'File Manager',
- file_manager,
- menubar.utils.lookup_icon('system-file-manager')
- },
- {
- 'Text Editor',
- text_editor,
- menubar.utils.lookup_icon('accessories-text-editor')
- }
-}
-
--- Screenshot menu
-local screenshot_menu = {
- {
- 'Full',
- function()
- gears.timer.start_new(
- 0.1,
- function()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot)
- end
- )
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- },
- {
- 'Area',
- function()
- gears.timer.start_new(
- 0.1,
- function()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot)
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- )
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- }
-}
-
-local tools_menu = {
- {
- 'Awesome',
- awesome_menu,
- beautiful.awesome_icon
- },
- {
- 'Take a Screenshot',
- screenshot_menu,
- menubar.utils.lookup_icon('accessories-screenshot')
- },
- {
- 'End Session',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- menubar.utils.lookup_icon('system-shutdown')
- }
-}
-
-mymainmenu = menu.build({
- -- Not actually the size, but the quality of the icon
- icon_size = 48,
- before = default_app_menu,
- after = tools_menu
-})
-
-mylauncher = awful.widget.launcher({image = beautiful.awesome_icon, menu = mymainmenu})
diff --git a/config/awesome/linear/module/notifications.lua b/config/awesome/linear/module/notifications.lua
deleted file mode 100644
index 2198e14c6..000000000
--- a/config/awesome/linear/module/notifications.lua
+++ /dev/null
@@ -1,256 +0,0 @@
-local gears = require('gears')
-local wibox = require('wibox')
-local awful = require('awful')
-local ruled = require('ruled')
-local naughty = require('naughty')
-local menubar = require('menubar')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
--- Defaults
-naughty.config.defaults.ontop = true
-naughty.config.defaults.icon_size = dpi(32)
-naughty.config.defaults.timeout = 5
-naughty.config.defaults.title = 'System Notification'
-naughty.config.defaults.margin = dpi(16)
-naughty.config.defaults.border_width = 0
-naughty.config.defaults.position = 'top_right'
-naughty.config.defaults.shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
-end
-
--- Apply theme variables
-naughty.config.padding = dpi(8)
-naughty.config.spacing = dpi(8)
-naughty.config.icon_dirs = {
- '/usr/share/icons/Tela',
- '/usr/share/icons/Tela-blue-dark',
- '/usr/share/icons/Papirus/',
- '/usr/share/icons/la-capitaine-icon-theme/',
- '/usr/share/icons/gnome/',
- '/usr/share/icons/hicolor/',
- '/usr/share/pixmaps/'
-}
-naughty.config.icon_formats = { 'svg', 'png', 'jpg', 'gif' }
-
-
--- Presets / rules
-
-ruled.notification.connect_signal(
- 'request::rules',
- function()
-
- -- Critical notifs
- ruled.notification.append_rule {
- rule = { urgency = 'critical' },
- properties = {
- font = 'Inter Bold 10',
- bg = '#ff0000',
- fg = '#ffffff',
- margin = dpi(16),
- position = 'top_right',
- implicit_timeout = 0
- }
- }
-
- -- Normal notifs
- ruled.notification.append_rule {
- rule = { urgency = 'normal' },
- properties = {
- font = 'Inter Regular 10',
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- margin = dpi(16),
- position = 'top_right',
- implicit_timeout = 5
- }
- }
-
- -- Low notifs
- ruled.notification.append_rule {
- rule = { urgency = 'low' },
- properties = {
- font = 'Inter Regular 10',
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- margin = dpi(16),
- position = 'top_right',
- implicit_timeout = 5
- }
- }
- end
- )
-
--- Error handling
-naughty.connect_signal(
- 'request::display_error',
- function(message, startup)
- naughty.notification {
- urgency = 'critical',
- title = 'Oops, an error happened'..(startup and ' during startup!' or '!'),
- message = message,
- app_name = 'System Notification',
- icon = beautiful.awesome_icon
- }
- end
-)
-
--- XDG icon lookup
-naughty.connect_signal(
- 'request::icon',
- function(n, context, hints)
- if context ~= 'app_icon' then return end
-
- local path = menubar.utils.lookup_icon(hints.app_icon) or
- menubar.utils.lookup_icon(hints.app_icon:lower())
-
- if path then
- n.icon = path
- end
- end
-)
-
--- Connect to naughty on display signal
-naughty.connect_signal(
- 'request::display',
- function(n)
-
- -- Actions Blueprint
- local actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = dpi(30),
- widget = wibox.container.background
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions
- }
-
- -- Notifbox Blueprint
- naughty.layout.box {
- notification = n,
- type = 'notification',
- screen = awful.screen.preferred(),
- shape = gears.shape.rectangle,
- widget_template = {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- markup = n.app_name or 'System Notification',
- font = 'Inter Bold 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- bg = beautiful.background,
- widget = wibox.container.background,
- },
- {
- {
- {
- resize_strategy = 'center',
- widget = naughty.widget.icon,
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- {
- align = 'left',
- widget = naughty.widget.title
- },
- {
- align = 'left',
- widget = naughty.widget.message,
- },
- layout = wibox.layout.fixed.vertical
- },
- nil
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- layout = wibox.layout.fixed.horizontal,
- },
- fill_space = true,
- spacing = beautiful.notification_margin,
- layout = wibox.layout.fixed.vertical,
- },
- -- Margin between the fake background
- -- Set to 0 to preserve the 'titlebar' effect
- margins = dpi(0),
- widget = wibox.container.margin,
- },
- bg = beautiful.transparent,
- widget = wibox.container.background,
- },
- -- Actions
- actions_template,
- spacing = dpi(4),
- layout = wibox.layout.fixed.vertical,
- },
- bg = beautiful.transparent,
- id = 'background_role',
- widget = naughty.container.background,
- },
- strategy = 'min',
- width = dpi(160),
- widget = wibox.container.constraint,
- },
- strategy = 'max',
- width = beautiful.notification_max_width or dpi(500),
- widget = wibox.container.constraint
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background
- }
- }
-
- -- Destroy popups if dont_disturb mode is on
- -- Or if the right_panel is visible
- local focused = awful.screen.focused()
- if _G.dont_disturb_state or (focused.info_center and focused.info_center.visible) then
- naughty.destroy_all_notifications(nil, 1)
- end
-
- end
-)
diff --git a/config/awesome/linear/module/quake-terminal.lua b/config/awesome/linear/module/quake-terminal.lua
deleted file mode 100644
index 4bd2ce77a..000000000
--- a/config/awesome/linear/module/quake-terminal.lua
+++ /dev/null
@@ -1,112 +0,0 @@
-local awful = require('awful')
-local ruled = require('ruled')
-local beautiful = require('beautiful')
-local app = require('configuration.apps').default.quake
-local client_keys = require('configuration.client.keys')
-local client_buttons = require('configuration.client.buttons')
-local quake_id = nil
-local quake_client = nil
-local quake_opened = false
-
-local quake_properties = function()
- return {
- skip_decoration = true,
- titlebars_enabled = false,
- switch_to_tags = false,
- opacity = 0.95,
- floating = true,
- skip_taskbar = true,
- ontop = true,
- above = true,
- sticky = true,
- hidden = not quake_opened,
- maximized_horizontal = true,
- skip_center = true,
- round_corners = false,
- keys = client_keys,
- buttons = client_buttons,
- placement = awful.placement.top,
- shape = beautiful.client_shape_rectangle
- }
-end
-
-ruled.client.connect_signal(
- 'request::rules',
- function()
- ruled.client.append_rule {
- id = 'quake_terminal',
- rule_any = {
- instance = {
- 'QuakeTerminal'
- }
- },
- properties = quake_properties()
- }
- end
-)
-
-local create_quake = function()
- -- Check if there's already an instance of 'QuakeTerminal'.
- -- If yes, recover it - use it again.
- local quake_term = function (c)
- return ruled.client.match(c, {instance = 'QuakeTerminal'})
- end
- for c in awful.client.iterate(quake_term) do
- -- 'QuakeTerminal' instance detected
- -- Re-apply its properties
- ruled.client.execute(c, quake_properties())
- quake_id = c.pid
- c:emit_signal('request::activate')
- return
- end
- -- No 'QuakeTerminal' instance, spawn one
- quake_id = awful.spawn(app, quake_properties())
-end
-
-local quake_open = function()
- quake_client.hidden = false
- quake_client:emit_signal('request::activate')
-end
-
-local quake_close = function()
- quake_client.hidden = true
-end
-
-local quake_toggle = function()
- quake_opened = not quake_opened
- if not quake_client then
- create_quake()
- else
- if quake_opened then
- quake_open()
- else
- quake_close()
- end
- end
-end
-
-awesome.connect_signal(
- 'module::quake_terminal:toggle',
- function()
- quake_toggle();
- end
-)
-
-client.connect_signal(
- 'manage',
- function(c)
- if c.pid == quake_id then
- quake_client = c
- end
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.pid == quake_id then
- quake_opened = false
- quake_client = nil
- end
- end
-)
diff --git a/config/awesome/linear/module/titlebar.lua b/config/awesome/linear/module/titlebar.lua
deleted file mode 100644
index ebf958d44..000000000
--- a/config/awesome/linear/module/titlebar.lua
+++ /dev/null
@@ -1,278 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local dpi = beautiful.xresources.apply_dpi
-awful.titlebar.enable_tooltip = true
-awful.titlebar.fallback_name = 'Client'
-
-local double_click_event_handler = function(double_click_event)
- if double_click_timer then
- double_click_timer:stop()
- double_click_timer = nil
- double_click_event()
- return
- end
- double_click_timer = gears.timer.start_new(
- 0.20,
- function()
- double_click_timer = nil
- return false
- end
- )
-end
-
-local create_click_events = function(c)
- -- Titlebar button/click events
- local buttons = gears.table.join(
- awful.button(
- {},
- 1,
- function()
- double_click_event_handler(function()
- if c.floating then
- c.floating = false
- return
- end
- c.maximized = not c.maximized
- c:raise()
- return
- end)
- c:activate {context = 'titlebar', action = 'mouse_move'}
- end
- ),
- awful.button(
- {},
- 3,
- function()
- c:activate {context = 'titlebar', action = 'mouse_resize'}
- end
- )
- )
- return buttons
-end
-
-local create_vertical_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.horizontal
- }
-end
-
-local create_vertical_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.minimizebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- nil,
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- nil,
- layout = wibox.layout.align.horizontal
- }
-end
-
-client.connect_signal(
- 'request::titlebars',
- function(c)
-
- -- Customize here
- if c.type == 'normal' then
-
- if c.class == 'kitty' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
-
- elseif c.class == 'XTerm' or c.class == 'UXTerm' then
- create_horizontal_bar(c, 'top',
- beautiful.xresources.get_current_theme().background, beautiful.titlebar_size)
-
- elseif c.class == 'ark' or c.class == 'dolphin' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.instance == 'transmission-qt' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' or c.class == 'Inkscape' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Com.github.johnfactotum.Foliate' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Ettercap' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'Google-chrome' or c.class == 'Chromium' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'TelegramDesktop' then
- create_vertical_bar(c, 'left', '#17212b', beautiful.titlebar_size)
-
- elseif c.class == 'Kvantum Manager' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'qt5ct' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Nemo' then
- create_horizontal_bar(c, 'top',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
-
- elseif c.type == 'dialog' then
-
- if c.role == 'GtkFileChooserDialog' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar_dialog(c, 'left', '#00000099', beautiful.titlebar_size)
- end
-
- elseif c.type == 'modal' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
- end
-)
diff --git a/config/awesome/linear/module/volume-osd.lua b/config/awesome/linear/module/volume-osd.lua
deleted file mode 100644
index 4d8ae9cf3..000000000
--- a/config/awesome/linear/module/volume-osd.lua
+++ /dev/null
@@ -1,268 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local osd_header = wibox.widget {
- text = 'Volume',
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local osd_value = wibox.widget {
- text = '0%',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local slider_osd = wibox.widget {
- nil,
- {
- id = 'vol_osd_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(2),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(15),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local vol_osd_slider = slider_osd.vol_osd_slider
-
-vol_osd_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = vol_osd_slider:get_value()
- awful.spawn('amixer -D pulse sset Master ' .. volume_level .. '%', false)
-
- -- Update textbox widget text
- osd_value.text = volume_level .. '%'
-
- -- Update the volume slider if values here change
- awesome.emit_signal('widget::volume:update', volume_level)
-
- if awful.screen.focused().show_vol_osd then
- awesome.emit_signal(
- 'module::volume_osd:show',
- true
- )
- end
- end
-)
-
-vol_osd_slider:connect_signal(
- 'button::press',
- function()
- awful.screen.focused().show_vol_osd = true
- end
-)
-
-vol_osd_slider:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_vol_osd = true
- end
-)
-
--- The emit will come from the volume-slider
-awesome.connect_signal(
- 'module::volume_osd',
- function(volume)
- vol_osd_slider:set_value(volume)
- end
-)
-
-local icon = wibox.widget {
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
-}
-
-local volume_slider_osd = wibox.widget {
- icon,
- slider_osd,
- spacing = dpi(24),
- layout = wibox.layout.fixed.horizontal
-}
-
-local osd_height = dpi(100)
-local osd_width = dpi(300)
-local osd_margin = dpi(10)
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- local s = s or {}
- s.show_vol_osd = false
-
- -- Create the box
- s.volume_osd_overlay = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'notification',
- screen = s,
- height = osd_height,
- width = osd_width,
- maximum_height = osd_height,
- maximum_width = osd_width,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = 'middle',
- preferred_positions = {'left', 'right', 'top', 'bottom'}
- }
-
- s.volume_osd_overlay : setup {
- {
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- forced_height = dpi(48),
- osd_header,
- nil,
- osd_value
- },
- volume_slider_osd,
- layout = wibox.layout.fixed.vertical
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background()
- }
-
- -- Reset timer on mouse hover
- s.volume_osd_overlay:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_vol_osd = true
- awesome.emit_signal('module::volume_osd:rerun')
- end
- )
- end
-)
-
-local hide_osd = gears.timer {
- timeout = 2,
- autostart = true,
- callback = function()
- local focused = awful.screen.focused()
- focused.volume_osd_overlay.visible = false
- focused.show_vol_osd = false
- end
-}
-
-awesome.connect_signal(
- 'module::volume_osd:rerun',
- function()
- if hide_osd.started then
- hide_osd:again()
- else
- hide_osd:start()
- end
- end
-)
-
-local placement_placer = function()
- local focused = awful.screen.focused()
-
- local info_center = focused.info_center
- local control_center = focused.control_center
- local volume_osd = focused.volume_osd_overlay
-
- if info_center and control_center then
- if info_center.visible then
- awful.placement.bottom_left(
- volume_osd,
- {
- margins = {
- left = osd_margin,
- right = 0,
- top = 0,
- bottom = osd_margin
- },
- honor_workarea = true
- }
- )
- return
- end
- end
-
- if info_center then
- if info_center.visible then
- awful.placement.bottom_left(
- volume_osd,
- {
- margins = {
- left = osd_margin,
- right = 0,
- top = 0,
- bottom = osd_margin
- },
- honor_workarea = true
- }
- )
- return
- end
- end
-
- awful.placement.bottom_right(
- volume_osd,
- {
- margins = {
- left = 0,
- right = osd_margin,
- top = 0,
- bottom = osd_margin,
- },
- honor_workarea = true
- }
- )
-end
-
-awesome.connect_signal(
- 'module::volume_osd:show',
- function(bool)
- placement_placer()
- awful.screen.focused().volume_osd_overlay.visible = bool
- if bool then
- awesome.emit_signal('module::volume_osd:rerun')
- awesome.emit_signal(
- 'module::brightness_osd:show',
- false
- )
- else
- if hide_osd.started then
- hide_osd:stop()
- end
- end
- end
-)
diff --git a/config/awesome/linear/rc.lua b/config/awesome/linear/rc.lua
deleted file mode 100644
index f7e27d976..000000000
--- a/config/awesome/linear/rc.lua
+++ /dev/null
@@ -1,78 +0,0 @@
--- ░█░░░▀█▀░█▀█░█▀▀░█▀█░█▀▄
--- ░█░░░░█░░█░█░█▀▀░█▀█░█▀▄
--- ░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀░▀
--- Banner generated using `toilet -f pagga AwesomeWM"
-
-local gears = require('gears')
-local beautiful = require('beautiful')
-local awful = require('awful')
-require('awful.autofocus')
-
--- ░█▀▀░█░█░█▀▀░█░░░█░░
--- ░▀▀█░█▀█░█▀▀░█░░░█░░
--- ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
-
-awful.util.shell = 'sh'
-
--- ░▀█▀░█░█░█▀▀░█▄█░█▀▀
--- ░░█░░█▀█░█▀▀░█░█░█▀▀
--- ░░▀░░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-beautiful.init(require('theme'))
-
--- ░█░░░█▀█░█░█░█▀█░█░█░▀█▀
--- ░█░░░█▀█░░█░░█░█░█░█░░█░
--- ░▀▀▀░▀░▀░░▀░░▀▀▀░▀▀▀░░▀░
-
-require('layout')
-
--- ░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀░█░█░█▀▄░█▀█░▀█▀░▀█▀░█▀█░█▀█░█▀▀
--- ░█░░░█░█░█░█░█▀▀░░█░░█░█░█░█░█▀▄░█▀█░░█░░░█░░█░█░█░█░▀▀█
--- ░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀
-
-require('configuration.client')
-require('configuration.root')
-require('configuration.tags')
-root.keys(require('configuration.keys.global'))
-
--- ░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀
--- ░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█
--- ░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀
-
-require('module.notifications')
-require('module.auto-start')
-require('module.exit-screen')
-require('module.quake-terminal')
-require('module.menu')
-require('module.titlebar')
-require('module.brightness-osd')
-require('module.volume-osd')
-require('module.lockscreen')
-require('module.dynamic-wallpaper')
-
--- ░█░█░█▀█░█░░░█░░░█▀█░█▀█░█▀█░█▀▀░█▀▄
--- ░█▄█░█▀█░█░░░█░░░█▀▀░█▀█░█▀▀░█▀▀░█▀▄
--- ░▀░▀░▀░▀░▀▀▀░▀▀▀░▀░░░▀░▀░▀░░░▀▀▀░▀░▀
-
-screen.connect_signal(
- 'request::wallpaper',
- function(s)
- -- If wallpaper is a function, call it with the screen
- if beautiful.wallpaper then
- if type(beautiful.wallpaper) == 'string' then
-
- -- Check if beautiful.wallpaper is color/image
- if beautiful.wallpaper:sub(1, #'#') == '#' then
- -- If beautiful.wallpaper is color
- gears.wallpaper.set(beautiful.wallpaper)
-
- elseif beautiful.wallpaper:sub(1, #'/') == '/' then
- -- If beautiful.wallpaper is path/image
- gears.wallpaper.maximized(beautiful.wallpaper, s)
- end
- else
- beautiful.wallpaper(s)
- end
- end
- end
-)
diff --git a/config/awesome/linear/theme/default-theme.lua b/config/awesome/linear/theme/default-theme.lua
deleted file mode 100644
index e861b3970..000000000
--- a/config/awesome/linear/theme/default-theme.lua
+++ /dev/null
@@ -1,219 +0,0 @@
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local gtk_variable = beautiful.gtk.get_theme_variables
-
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-local titlebar_theme = 'lines'
-local titlebar_icon_path = theme_dir .. '/icons/titlebar/' .. titlebar_theme .. '/'
-local tip = titlebar_icon_path
-
--- Create theme table
-local theme = {}
-
--- Font
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Menu icon theme
-theme.icon_theme = 'Tela-blue-dark'
-
-local awesome_overrides = function(theme)
-
- theme.dir = theme_dir
- theme.icons = theme_dir .. '/icons/'
-
- -- Default wallpaper path
- theme.wallpaper = theme.dir .. '/wallpapers/morning-wallpaper.jpg'
-
- -- Default font
- theme.font = 'Inter Regular 10'
-
- -- Foreground
- theme.fg_normal = '#ffffffde'
- theme.fg_focus = '#e4e4e4'
- theme.fg_urgent = '#CC9393'
-
- theme.bg_normal = theme.background
- theme.bg_focus = '#5a5a5a'
- theme.bg_urgent = '#3F3F3F'
-
- -- System tray
- theme.bg_systray = theme.background
- theme.systray_icon_spacing = dpi(16)
-
- -- Titlebar
- theme.titlebar_size = dpi(34)
- theme.titlebar_bg_focus = gtk_variable().bg_color:sub(1,7) .. '66'
- theme.titlebar_bg_normal = gtk_variable().base_color:sub(1,7) .. '66'
- theme.titlebar_fg_focus = gtk_variable().fg_color
- theme.titlebar_fg_normal = gtk_variable().fg_color
-
- -- Close Button
- theme.titlebar_close_button_normal = tip .. 'close_normal.svg'
- theme.titlebar_close_button_focus = tip .. 'close_focus.svg'
-
- -- Minimize Button
- theme.titlebar_minimize_button_normal = tip .. 'minimize_normal.svg'
- theme.titlebar_minimize_button_focus = tip .. 'minimize_focus.svg'
-
- -- Ontop Button
- theme.titlebar_ontop_button_normal_inactive = tip .. 'ontop_normal_inactive.svg'
- theme.titlebar_ontop_button_focus_inactive = tip .. 'ontop_focus_inactive.svg'
- theme.titlebar_ontop_button_normal_active = tip .. 'ontop_normal_active.svg'
- theme.titlebar_ontop_button_focus_active = tip .. 'ontop_focus_active.svg'
-
- -- Sticky Button
- theme.titlebar_sticky_button_normal_inactive = tip .. 'sticky_normal_inactive.svg'
- theme.titlebar_sticky_button_focus_inactive = tip .. 'sticky_focus_inactive.svg'
- theme.titlebar_sticky_button_normal_active = tip .. 'sticky_normal_active.svg'
- theme.titlebar_sticky_button_focus_active = tip .. 'sticky_focus_active.svg'
-
- -- Floating Button
- theme.titlebar_floating_button_normal_inactive = tip .. 'floating_normal_inactive.svg'
- theme.titlebar_floating_button_focus_inactive = tip .. 'floating_focus_inactive.svg'
- theme.titlebar_floating_button_normal_active = tip .. 'floating_normal_active.svg'
- theme.titlebar_floating_button_focus_active = tip .. 'floating_focus_active.svg'
-
- -- Maximized Button
- theme.titlebar_maximized_button_normal_inactive = tip .. 'maximized_normal_inactive.svg'
- theme.titlebar_maximized_button_focus_inactive = tip .. 'maximized_focus_inactive.svg'
- theme.titlebar_maximized_button_normal_active = tip .. 'maximized_normal_active.svg'
- theme.titlebar_maximized_button_focus_active = tip .. 'maximized_focus_active.svg'
-
- -- Hovered Close Button
- theme.titlebar_close_button_normal_hover = tip .. 'close_normal_hover.svg'
- theme.titlebar_close_button_focus_hover = tip .. 'close_focus_hover.svg'
-
- -- Hovered Minimize Buttin
- theme.titlebar_minimize_button_normal_hover = tip .. 'minimize_normal_hover.svg'
- theme.titlebar_minimize_button_focus_hover = tip .. 'minimize_focus_hover.svg'
-
- -- Hovered Ontop Button
- theme.titlebar_ontop_button_normal_inactive_hover = tip .. 'ontop_normal_inactive_hover.svg'
- theme.titlebar_ontop_button_focus_inactive_hover = tip .. 'ontop_focus_inactive_hover.svg'
- theme.titlebar_ontop_button_normal_active_hover = tip .. 'ontop_normal_active_hover.svg'
- theme.titlebar_ontop_button_focus_active_hover = tip .. 'ontop_focus_active_hover.svg'
-
- -- Hovered Sticky Button
- theme.titlebar_sticky_button_normal_inactive_hover = tip .. 'sticky_normal_inactive_hover.svg'
- theme.titlebar_sticky_button_focus_inactive_hover = tip .. 'sticky_focus_inactive_hover.svg'
- theme.titlebar_sticky_button_normal_active_hover = tip .. 'sticky_normal_active_hover.svg'
- theme.titlebar_sticky_button_focus_active_hover = tip .. 'sticky_focus_active_hover.svg'
-
- -- Hovered Floating Button
- theme.titlebar_floating_button_normal_inactive_hover = tip .. 'floating_normal_inactive_hover.svg'
- theme.titlebar_floating_button_focus_inactive_hover = tip .. 'floating_focus_inactive_hover.svg'
- theme.titlebar_floating_button_normal_active_hover = tip .. 'floating_normal_active_hover.svg'
- theme.titlebar_floating_button_focus_active_hover = tip .. 'floating_focus_active_hover.svg'
-
- -- Hovered Maximized Button
- theme.titlebar_maximized_button_normal_inactive_hover = tip .. 'maximized_normal_inactive_hover.svg'
- theme.titlebar_maximized_button_focus_inactive_hover = tip .. 'maximized_focus_inactive_hover.svg'
- theme.titlebar_maximized_button_normal_active_hover = tip .. 'maximized_normal_active_hover.svg'
- theme.titlebar_maximized_button_focus_active_hover = tip .. 'maximized_focus_active_hover.svg'
-
- -- UI Groups
- theme.groups_title_bg = '#ffffff' .. '15'
- theme.groups_bg = '#ffffff' .. '10'
- theme.groups_radius = dpi(9)
-
- -- UI events
- theme.leave_event = transparent
- theme.enter_event = '#ffffff' .. '10'
- theme.press_event = '#ffffff' .. '15'
- theme.release_event = '#ffffff' .. '10'
-
- -- Client Decorations
-
- -- Borders
- theme.border_focus = gtk_variable().bg_color
- theme.border_normal = gtk_variable().base_color
- theme.border_marked = '#CC9393'
- theme.border_width = dpi(0)
- theme.border_radius = dpi(9)
-
- -- Decorations
- theme.useless_gap = dpi(4)
- theme.client_shape_rectangle = gears.shape.rectangle
- theme.client_shape_rounded = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, dpi(9))
- end
-
- -- Menu
- theme.menu_font = 'Inter Regular 11'
- theme.menu_submenu = '' -- ➤
-
- theme.menu_height = dpi(34)
- theme.menu_width = dpi(200)
- theme.menu_border_width = dpi(20)
- theme.menu_bg_focus = theme.accent .. 'CC'
-
- theme.menu_bg_normal = theme.background:sub(1,7) .. '33'
- theme.menu_fg_normal = '#ffffff'
- theme.menu_fg_focus = '#ffffff'
- theme.menu_border_color = theme.background:sub(1,7) .. '5C'
-
- -- Tooltips
-
- theme.tooltip_bg = theme.background
- theme.tooltip_border_color = theme.transparent
- theme.tooltip_border_width = 0
- theme.tooltip_gaps = dpi(5)
- theme.tooltip_shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
- end
-
- -- Separators
- theme.separator_color = '#f2f2f244'
-
- -- Layoutbox icons
- theme.layout_max = theme.icons .. 'layouts/max.svg'
- theme.layout_tile = theme.icons .. 'layouts/tile.svg'
- theme.layout_dwindle = theme.icons .. 'layouts/dwindle.svg'
- theme.layout_floating = theme.icons .. 'layouts/floating.svg'
-
- -- Taglist
- theme.taglist_bg_empty = theme.background .. '99'
- theme.taglist_bg_occupied = '#ffffff' .. '1A'
- theme.taglist_bg_urgent = '#E91E63' .. '99'
- theme.taglist_bg_focus = theme.background
- theme.taglist_spacing = dpi(0)
-
- -- Tasklist
- theme.tasklist_font = 'Inter Regular 10'
- theme.tasklist_bg_normal = theme.background .. '99'
- theme.tasklist_bg_focus = theme.background
- theme.tasklist_bg_urgent = '#E91E63' .. '99'
- theme.tasklist_fg_focus = '#DDDDDD'
- theme.tasklist_fg_urgent = '#ffffff'
- theme.tasklist_fg_normal = '#AAAAAA'
-
- -- Notification
- theme.notification_position = 'top_right'
- theme.notification_bg = theme.transparent
- theme.notification_margin = dpi(5)
- theme.notification_border_width = dpi(0)
- theme.notification_border_color = theme.transparent
- theme.notification_spacing = dpi(5)
- theme.notification_icon_resize_strategy = 'center'
- theme.notification_icon_size = dpi(32)
-
- -- Client Snap Theme
- theme.snap_bg = theme.background
- theme.snap_shape = gears.shape.rectangle
- theme.snap_border_width = dpi(15)
-
- -- Hotkey popup
- theme.hotkeys_font = 'Inter Bold'
- theme.hotkeys_description_font = 'Inter Regular Regular'
- theme.hotkeys_bg = theme.background
- theme.hotkeys_group_margin = dpi(20)
-end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/linear/theme/icons/awesome.svg b/config/awesome/linear/theme/icons/awesome.svg
deleted file mode 100644
index 31d715c1b..000000000
--- a/config/awesome/linear/theme/icons/awesome.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/battery-charge.svg b/config/awesome/linear/theme/icons/battery-charge.svg
deleted file mode 100644
index f8efe9cb4..000000000
--- a/config/awesome/linear/theme/icons/battery-charge.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/theme/icons/battery-discharge.svg b/config/awesome/linear/theme/icons/battery-discharge.svg
deleted file mode 100644
index 908ce1573..000000000
--- a/config/awesome/linear/theme/icons/battery-discharge.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/brightness-7.svg b/config/awesome/linear/theme/icons/brightness-7.svg
deleted file mode 100644
index 862549ea8..000000000
--- a/config/awesome/linear/theme/icons/brightness-7.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/chart-areaspline.svg b/config/awesome/linear/theme/icons/chart-areaspline.svg
deleted file mode 100644
index 58bf0d311..000000000
--- a/config/awesome/linear/theme/icons/chart-areaspline.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/close.svg b/config/awesome/linear/theme/icons/close.svg
deleted file mode 100644
index bd89d7902..000000000
--- a/config/awesome/linear/theme/icons/close.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/effects.svg b/config/awesome/linear/theme/icons/effects.svg
deleted file mode 100644
index e6c514ba5..000000000
--- a/config/awesome/linear/theme/icons/effects.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/harddisk.svg b/config/awesome/linear/theme/icons/harddisk.svg
deleted file mode 100644
index 4c23f54e1..000000000
--- a/config/awesome/linear/theme/icons/harddisk.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/layouts/dwindle.svg b/config/awesome/linear/theme/icons/layouts/dwindle.svg
deleted file mode 100644
index 9e5905810..000000000
--- a/config/awesome/linear/theme/icons/layouts/dwindle.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/layouts/floating.svg b/config/awesome/linear/theme/icons/layouts/floating.svg
deleted file mode 100644
index 5dcd846e7..000000000
--- a/config/awesome/linear/theme/icons/layouts/floating.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/layouts/fullscreen.svg b/config/awesome/linear/theme/icons/layouts/fullscreen.svg
deleted file mode 100644
index 6ba320b8c..000000000
--- a/config/awesome/linear/theme/icons/layouts/fullscreen.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/layouts/max.svg b/config/awesome/linear/theme/icons/layouts/max.svg
deleted file mode 100644
index f1b2b2d70..000000000
--- a/config/awesome/linear/theme/icons/layouts/max.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/layouts/tile.svg b/config/awesome/linear/theme/icons/layouts/tile.svg
deleted file mode 100644
index ea62c5d34..000000000
--- a/config/awesome/linear/theme/icons/layouts/tile.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/lock.svg b/config/awesome/linear/theme/icons/lock.svg
deleted file mode 100644
index ac383ed63..000000000
--- a/config/awesome/linear/theme/icons/lock.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/logout.svg b/config/awesome/linear/theme/icons/logout.svg
deleted file mode 100644
index 4689c49f0..000000000
--- a/config/awesome/linear/theme/icons/logout.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/magnify.svg b/config/awesome/linear/theme/icons/magnify.svg
deleted file mode 100644
index 40d9c1a18..000000000
--- a/config/awesome/linear/theme/icons/magnify.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/memory.svg b/config/awesome/linear/theme/icons/memory.svg
deleted file mode 100644
index 0cf4b104c..000000000
--- a/config/awesome/linear/theme/icons/memory.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/plus.svg b/config/awesome/linear/theme/icons/plus.svg
deleted file mode 100644
index 737cad466..000000000
--- a/config/awesome/linear/theme/icons/plus.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/power-sleep.svg b/config/awesome/linear/theme/icons/power-sleep.svg
deleted file mode 100644
index a4dbfc0af..000000000
--- a/config/awesome/linear/theme/icons/power-sleep.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/power.svg b/config/awesome/linear/theme/icons/power.svg
deleted file mode 100644
index 770943b06..000000000
--- a/config/awesome/linear/theme/icons/power.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/restart.svg b/config/awesome/linear/theme/icons/restart.svg
deleted file mode 100644
index f0c33676c..000000000
--- a/config/awesome/linear/theme/icons/restart.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/ship-wheel.svg b/config/awesome/linear/theme/icons/ship-wheel.svg
deleted file mode 100644
index 5237ed379..000000000
--- a/config/awesome/linear/theme/icons/ship-wheel.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/close-small.svg b/config/awesome/linear/theme/icons/tag-list/close-small.svg
deleted file mode 100644
index f244baeba..000000000
--- a/config/awesome/linear/theme/icons/tag-list/close-small.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/development.svg b/config/awesome/linear/theme/icons/tag-list/development.svg
deleted file mode 100644
index 773a53883..000000000
--- a/config/awesome/linear/theme/icons/tag-list/development.svg
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/file-manager.svg b/config/awesome/linear/theme/icons/tag-list/file-manager.svg
deleted file mode 100644
index ba047479c..000000000
--- a/config/awesome/linear/theme/icons/tag-list/file-manager.svg
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/games.svg b/config/awesome/linear/theme/icons/tag-list/games.svg
deleted file mode 100644
index 631438745..000000000
--- a/config/awesome/linear/theme/icons/tag-list/games.svg
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/graphics.svg b/config/awesome/linear/theme/icons/tag-list/graphics.svg
deleted file mode 100644
index caefefb8a..000000000
--- a/config/awesome/linear/theme/icons/tag-list/graphics.svg
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/menu.svg b/config/awesome/linear/theme/icons/tag-list/menu.svg
deleted file mode 100644
index c95ecd773..000000000
--- a/config/awesome/linear/theme/icons/tag-list/menu.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/menu2.svg b/config/awesome/linear/theme/icons/tag-list/menu2.svg
deleted file mode 100644
index 3e82e3d9e..000000000
--- a/config/awesome/linear/theme/icons/tag-list/menu2.svg
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/multimedia.svg b/config/awesome/linear/theme/icons/tag-list/multimedia.svg
deleted file mode 100644
index ff5f5b047..000000000
--- a/config/awesome/linear/theme/icons/tag-list/multimedia.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/sandbox.svg b/config/awesome/linear/theme/icons/tag-list/sandbox.svg
deleted file mode 100644
index 67c192159..000000000
--- a/config/awesome/linear/theme/icons/tag-list/sandbox.svg
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/social.svg b/config/awesome/linear/theme/icons/tag-list/social.svg
deleted file mode 100644
index 721770971..000000000
--- a/config/awesome/linear/theme/icons/tag-list/social.svg
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/terminal.svg b/config/awesome/linear/theme/icons/tag-list/terminal.svg
deleted file mode 100644
index 3c4fc1fec..000000000
--- a/config/awesome/linear/theme/icons/tag-list/terminal.svg
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/text-editor.svg b/config/awesome/linear/theme/icons/tag-list/text-editor.svg
deleted file mode 100644
index 4aa63b88e..000000000
--- a/config/awesome/linear/theme/icons/tag-list/text-editor.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/tag-list/web-browser.svg b/config/awesome/linear/theme/icons/tag-list/web-browser.svg
deleted file mode 100644
index 4b975145f..000000000
--- a/config/awesome/linear/theme/icons/tag-list/web-browser.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/thermometer.svg b/config/awesome/linear/theme/icons/thermometer.svg
deleted file mode 100644
index 5c25a1e5a..000000000
--- a/config/awesome/linear/theme/icons/thermometer.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/close_focus.svg b/config/awesome/linear/theme/icons/titlebar/blocks/close_focus.svg
deleted file mode 100644
index a245e7de5..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/close_focus.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/close_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/close_focus_hover.svg
deleted file mode 100644
index fa1eddd94..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/close_focus_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/close_normal.svg b/config/awesome/linear/theme/icons/titlebar/blocks/close_normal.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/close_normal.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/close_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/close_normal_hover.svg
deleted file mode 100644
index fa1eddd94..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/close_normal_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_active.svg
deleted file mode 100644
index 262337ee8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_inactive.svg
deleted file mode 100644
index 262337ee8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_active.svg
deleted file mode 100644
index 8d22f5600..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
deleted file mode 100644
index 8d22f5600..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_focus.svg b/config/awesome/linear/theme/icons/titlebar/blocks/minimize_focus.svg
deleted file mode 100644
index 0e5bebcfa..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_focus.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/minimize_focus_hover.svg
deleted file mode 100644
index 1414c2b1f..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_focus_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_normal.svg b/config/awesome/linear/theme/icons/titlebar/blocks/minimize_normal.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_normal.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/minimize_normal_hover.svg
deleted file mode 100644
index 1414c2b1f..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/minimize_normal_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_active.svg
deleted file mode 100644
index 749324906..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
deleted file mode 100644
index 749324906..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_active.svg
deleted file mode 100644
index 321d316a9..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
deleted file mode 100644
index 321d316a9..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/close_focus.svg b/config/awesome/linear/theme/icons/titlebar/lines/close_focus.svg
deleted file mode 100644
index 85b31ec88..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/close_focus.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/close_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/close_focus_hover.svg
deleted file mode 100644
index 40aa9e1bd..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/close_focus_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/close_normal.svg b/config/awesome/linear/theme/icons/titlebar/lines/close_normal.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/close_normal.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/close_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/close_normal_hover.svg
deleted file mode 100644
index 40aa9e1bd..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/close_normal_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_active.svg
deleted file mode 100644
index 11b9bac0f..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_active_hover.svg
deleted file mode 100644
index 325c24a50..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_inactive.svg
deleted file mode 100644
index 11b9bac0f..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
deleted file mode 100644
index 779539e62..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_active_hover.svg
deleted file mode 100644
index 7286450b3..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
deleted file mode 100644
index 1441ea467..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_active.svg
deleted file mode 100644
index 6891963a2..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_inactive.svg
deleted file mode 100644
index 6891963a2..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/minimize_focus.svg b/config/awesome/linear/theme/icons/titlebar/lines/minimize_focus.svg
deleted file mode 100644
index abe6ebb69..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/minimize_focus.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/minimize_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/minimize_focus_hover.svg
deleted file mode 100644
index 49619d8b3..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/minimize_focus_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/minimize_normal.svg b/config/awesome/linear/theme/icons/titlebar/lines/minimize_normal.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/minimize_normal.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/minimize_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/minimize_normal_hover.svg
deleted file mode 100644
index 49619d8b3..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/minimize_normal_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_active.svg
deleted file mode 100644
index ed4ecfd58..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_inactive.svg
deleted file mode 100644
index ed4ecfd58..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_active.svg
deleted file mode 100644
index 2945c0fb7..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_inactive.svg
deleted file mode 100644
index 2945c0fb7..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/linear/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/close_focus.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/close_focus.svg
deleted file mode 100644
index 8b63331d3..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/close_focus.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/close_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/close_focus_hover.svg
deleted file mode 100644
index 2d77a2f42..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/close_focus_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/close_normal.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/close_normal.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/close_normal.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/close_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/close_normal_hover.svg
deleted file mode 100644
index 2d77a2f42..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/close_normal_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_active.svg
deleted file mode 100644
index ae9727f26..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
deleted file mode 100644
index ae9727f26..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_active.svg
deleted file mode 100644
index e522d74fd..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
deleted file mode 100644
index e522d74fd..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_focus.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_focus.svg
deleted file mode 100644
index 215d91c82..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_focus.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
deleted file mode 100644
index 282d8b092..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_normal.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_normal.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_normal.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
deleted file mode 100644
index 282d8b092..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_active.svg
deleted file mode 100644
index 432f74f8a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
deleted file mode 100644
index 432f74f8a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_active.svg
deleted file mode 100644
index 47248cbca..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
deleted file mode 100644
index 47248cbca..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/linear/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/close_focus.svg b/config/awesome/linear/theme/icons/titlebar/win10/close_focus.svg
deleted file mode 100644
index d1bc232a3..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/close_focus.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/close_normal.svg b/config/awesome/linear/theme/icons/titlebar/win10/close_normal.svg
deleted file mode 100644
index d013ac809..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/close_normal.svg
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/close_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/close_normal_hover.svg
deleted file mode 100644
index d1bc232a3..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/close_normal_hover.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_active.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_active.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_active_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_inactive.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_inactive.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_active.svg
deleted file mode 100644
index 6f0faf1cd..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_active.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_active_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_inactive.svg
deleted file mode 100644
index 6f0faf1cd..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_inactive.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_active.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_active.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_active.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_inactive.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_inactive.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_active.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_active.svg
deleted file mode 100644
index d9dea80c7..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_active.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_active_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_inactive.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_inactive.svg
deleted file mode 100644
index d9dea80c7..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/minimize_focus.svg b/config/awesome/linear/theme/icons/titlebar/win10/minimize_focus.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/minimize_focus.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/minimize_focus_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/minimize_focus_hover.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/minimize_focus_hover.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/minimize_normal.svg b/config/awesome/linear/theme/icons/titlebar/win10/minimize_normal.svg
deleted file mode 100644
index a3efb9b8a..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/minimize_normal.svg
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/titlebar/win10/minimize_normal_hover.svg b/config/awesome/linear/theme/icons/titlebar/win10/minimize_normal_hover.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/linear/theme/icons/titlebar/win10/minimize_normal_hover.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/toggled-off.svg b/config/awesome/linear/theme/icons/toggled-off.svg
deleted file mode 100644
index a73de492b..000000000
--- a/config/awesome/linear/theme/icons/toggled-off.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/toggled-on.svg b/config/awesome/linear/theme/icons/toggled-on.svg
deleted file mode 100644
index a75ef1c6d..000000000
--- a/config/awesome/linear/theme/icons/toggled-on.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/theme/icons/volume-high.svg b/config/awesome/linear/theme/icons/volume-high.svg
deleted file mode 100644
index 7a59aa1ae..000000000
--- a/config/awesome/linear/theme/icons/volume-high.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/theme/init.lua b/config/awesome/linear/theme/init.lua
deleted file mode 100644
index ee1d083a2..000000000
--- a/config/awesome/linear/theme/init.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local gtable = require('gears.table')
-local default_theme = require('theme.default-theme')
--- PICK THEME HERE
-local theme = require('theme.linear-theme')
-
-local final_theme = {}
-gtable.crush(final_theme, default_theme.theme)
-gtable.crush(final_theme, theme.theme)
-default_theme.awesome_overrides(final_theme)
-theme.awesome_overrides(final_theme)
-
-return final_theme
diff --git a/config/awesome/linear/theme/linear-theme/init.lua b/config/awesome/linear/theme/linear-theme/init.lua
deleted file mode 100644
index 7124c9730..000000000
--- a/config/awesome/linear/theme/linear-theme/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local filesystem = require('gears.filesystem')
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-
-local theme = {}
-
-theme.icons = theme_dir .. '/icons/'
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Colorscheme
-theme.system_black_dark = '#3D4C5F'
-theme.system_black_light = '#56687E'
-
-theme.system_red_dark = '#EE4F84'
-theme.system_red_light = '#F48FB1'
-
-theme.system_green_dark = '#53E2AE'
-theme.system_green_light = '#A1EFD3'
-
-theme.system_yellow_dark = '#F1FF52'
-theme.system_yellow_light = '#F1FA8C'
-
-theme.system_blue_dark = '#6498EF'
-theme.system_blue_light = '#92B6F4'
-
-theme.system_magenta_dark = '#985EFF'
-theme.system_magenta_light = '#BD99FF'
-
-theme.system_cyan_dark = '#24D1E7'
-theme.system_cyan_light = '#87DFEB'
-
-theme.system_white_dark = '#E5E5E5'
-theme.system_white_light = '#F8F8F2'
-
--- Accent color
-theme.accent = theme.system_blue_dark
-
--- Background color
-theme.background = '#000000' .. '66'
-
--- Transparent
-theme.transparent = '#00000000'
-
--- Awesome icon
-theme.awesome_icon = theme.icons .. 'awesome.svg'
-
-local awesome_overrides = function(theme) end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/linear/utilities/profile-image b/config/awesome/linear/utilities/profile-image
deleted file mode 100755
index 350c9ea5d..000000000
--- a/config/awesome/linear/utilities/profile-image
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-
-# Depends: Mugshot
-# Written by manilarome
-
-awesome_dir="${HOME}/.config/awesome/"
-user_profile_dir="${awesome_dir}/configuration/user-profile/"
-
-accountsservice_user_icons="/var/lib/AccountsService/icons/${USER}"
-
-# Check if user image exists
-if [ -f "${user_profile_dir}${USER}.png" ];
-then
- if [ -f "${accountsservice_user_icons}" ];
- then
- if ! cmp --silent "${user_profile_dir}${USER}.png" "${accountsservice_user_icons}";
- then
- cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png"
- fi
- printf "${user_profile_dir}${USER}.png"
- else
- printf "${user_profile_dir}${USER}.png"
- fi
- exit;
-else
- if [ -f "${accountsservice_user_icons}" ];
- then
- cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png"
- printf "${user_profile_dir}${USER}.png"
- exit;
- else
- printf "default"
- exit;
- fi
-fi
\ No newline at end of file
diff --git a/config/awesome/linear/utilities/snap b/config/awesome/linear/utilities/snap
deleted file mode 100755
index 970cee2ee..000000000
--- a/config/awesome/linear/utilities/snap
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env bash
-
-# ----------------------------------------------------------------------------
-# --- Simple screenshot script using maim and AwesomeWM API
-# --
-# -- Accepts `area` and `full` string args
-# --
-# -- For more details check `man maim`
-# --
-# -- @author manilarome <gerome.matilla07@gmail.com>
-# -- @copyright 2020 manilarome
-# -- @script snap
-# ----------------------------------------------------------------------------
-
-screenshot_dir=$(xdg-user-dir PICTURES)/Screenshots/
-
-# Check save directory
-# Create it if it doesn't exist
-function check_dir() {
- if [ ! -d "$screenshot_dir" ];
- then
- mkdir -p "$screenshot_dir"
- fi
-}
-
-# Main function
-function shot() {
-
- check_dir
-
- file_loc="${screenshot_dir}$(date +%Y%m%d_%H%M%S).png"
-
- maim_command="$1"
- notif_message="$2"
-
- # Execute maim command
- ${maim_command} "${file_loc}"
-
- # Exit if the user cancels the screenshot
- # So it means there's no new screenshot image file
- if [ ! -f "${file_loc}" ];
- then
- exit;
- fi
-
- # Copy to clipboard
- xclip -selection clipboard -t image/png -i "${screenshot_dir}"/`ls -1 -t "${screenshot_dir}" | head -1` &
-
- awesome-client "
-
- -- IMPORTANT NOTE: THIS PART OF THE SCRIPT IS LUA!
- naughty = require('naughty')
- awful = require('awful')
- beautiful = require('beautiful')
- dpi = beautiful.xresources.apply_dpi
-
- local open_image = naughty.action {
- name = 'Open',
- icon_only = false,
- }
-
- local open_folder = naughty.action {
- name = 'Open Folder',
- icon_only = false,
- }
-
- local delete_image = naughty.action {
- name = 'Delete',
- icon_only = false,
- }
-
- -- Execute the callback when 'Open' is pressed
- open_image:connect_signal('invoked', function()
- awful.spawn('xdg-open ' .. '${file_loc}', false)
- end)
-
- open_folder:connect_signal('invoked', function()
- awful.spawn('xdg-open ' .. '${screenshot_dir}', false)
- end)
-
- -- Execute the callback when 'Delete' is pressed
- delete_image:connect_signal('invoked', function()
- awful.spawn('gio trash ' .. '${file_loc}', false)
- end)
-
- -- Show notification
- naughty.notification ({
- app_name = 'Screenshot Tool',
- icon = '${file_loc}',
- timeout = 10,
- title = 'Snap!',
- message = '${notif_message}',
- actions = { open_image, open_folder, delete_image }
- })
- "
-
-}
-
-# Check the args passed
-if [ -z "$1" ] || ([ "$1" != 'full' ] && [ "$1" != 'area' ]);
-then
- echo "
- Requires an argument:
- area - Area screenshot
- full - Fullscreen screenshot
-
- Example:
- ./snap area
- ./snap full
- "
-elif [ "$1" = 'full' ];
-then
- msg="Full screenshot saved and copied to clipboard!"
- shot 'maim -u -m 1' "${msg}"
-elif [ "$1" = 'area' ];
-then
- msg='Area screenshot saved and copied to clipboard!'
- shot 'maim -u -s -n -m 1' "${msg}"
-fi
-
diff --git a/config/awesome/linear/widget/airplane-mode/icons/airplane-mode-off.svg b/config/awesome/linear/widget/airplane-mode/icons/airplane-mode-off.svg
deleted file mode 100644
index 7a4c91c0a..000000000
--- a/config/awesome/linear/widget/airplane-mode/icons/airplane-mode-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/airplane-mode/icons/airplane-mode.svg b/config/awesome/linear/widget/airplane-mode/icons/airplane-mode.svg
deleted file mode 100644
index 70fc89d1a..000000000
--- a/config/awesome/linear/widget/airplane-mode/icons/airplane-mode.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/airplane-mode/init.lua b/config/awesome/linear/widget/airplane-mode/init.lua
deleted file mode 100755
index 60deb285a..000000000
--- a/config/awesome/linear/widget/airplane-mode/init.lua
+++ /dev/null
@@ -1,203 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/airplane-mode/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local ap_state = false
-
-local action_name = wibox.widget {
- text = 'Airplane Mode',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'airplane-mode-off.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if ap_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.accent
- button_widget.icon:set_image(widget_icon_dir .. 'airplane-mode.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'airplane-mode-off.svg')
- end
-end
-
-local check_airplane_mode_state = function()
-
- local cmd = 'cat ' .. widget_dir .. 'airplane_mode'
-
- awful.spawn.easy_async_with_shell(
- cmd,
- function(stdout)
-
- local status = stdout
-
- if status:match('true') then
- ap_state = true
- elseif status:match('false') then
- ap_state = false
- else
- ap_state = false
- awful.spawn.easy_async_with_shell(
- 'echo "false" > ' .. widget_dir .. 'airplane_mode',
- function(stdout)
- end
- )
- end
- update_widget()
- end
- )
-end
-
-check_airplane_mode_state()
-
-local ap_off_cmd = [[
-
- rfkill unblock wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode disabled!',
- message = 'Initializing network devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode-off' .. '.svg' .. [['
- })
- "
- ]] .. "echo false > " .. widget_dir .. "airplane_mode" .. [[
-]]
-
-local ap_on_cmd = [[
-
- rfkill block wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode enabled!',
- message = 'Disabling radio devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode' .. '.svg' .. [['
- })
- "
- ]] .. 'echo true > ' .. widget_dir .. 'airplane_mode' .. [[
-]]
-
-local toggle_action = function()
- if ap_state then
- awful.spawn.easy_async_with_shell(
- ap_off_cmd,
- function(stdout)
- ap_state = false
- update_widget()
- end
- )
- else
- awful.spawn.easy_async_with_shell(
- ap_on_cmd,
- function(stdout)
- ap_state = true
- update_widget()
- end
- )
- end
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-gears.timer {
- timeout = 5,
- autostart = true,
- callback = function()
- check_airplane_mode_state()
- end
-}
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-
-}
-
-return action_widget
diff --git a/config/awesome/linear/widget/battery/icons/battery-alert-red.svg b/config/awesome/linear/widget/battery/icons/battery-alert-red.svg
deleted file mode 100644
index 469b0ba07..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-alert-red.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-alert.svg b/config/awesome/linear/widget/battery/icons/battery-alert.svg
deleted file mode 100644
index 6ec71c1dc..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-alert.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-10.svg b/config/awesome/linear/widget/battery/icons/battery-charging-10.svg
deleted file mode 100644
index 4de288a04..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-10.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-20.svg b/config/awesome/linear/widget/battery/icons/battery-charging-20.svg
deleted file mode 100644
index af759b5f6..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-20.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-30.svg b/config/awesome/linear/widget/battery/icons/battery-charging-30.svg
deleted file mode 100644
index f72154534..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-30.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-50.svg b/config/awesome/linear/widget/battery/icons/battery-charging-50.svg
deleted file mode 100644
index 42bb375ae..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-50.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-60.svg b/config/awesome/linear/widget/battery/icons/battery-charging-60.svg
deleted file mode 100644
index 4057d330d..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-60.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-80.svg b/config/awesome/linear/widget/battery/icons/battery-charging-80.svg
deleted file mode 100644
index 5febc309a..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-80.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-charging-90.svg b/config/awesome/linear/widget/battery/icons/battery-charging-90.svg
deleted file mode 100644
index 544aa5d86..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-charging-90.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-100.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-100.svg
deleted file mode 100644
index b3d3337b5..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-100.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-20.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-20.svg
deleted file mode 100644
index 116a7f968..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-20.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-30.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-30.svg
deleted file mode 100644
index d1f4463ba..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-30.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-50.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-50.svg
deleted file mode 100644
index 8dca81e0e..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-50.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-60.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-60.svg
deleted file mode 100644
index 25eaca0bc..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-60.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-80.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-80.svg
deleted file mode 100644
index 5612658ef..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-80.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-discharging-90.svg b/config/awesome/linear/widget/battery/icons/battery-discharging-90.svg
deleted file mode 100644
index d11ab44fa..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-discharging-90.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-fully-charged.svg b/config/awesome/linear/widget/battery/icons/battery-fully-charged.svg
deleted file mode 100644
index 7e923fce6..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-fully-charged.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery-unknown.svg b/config/awesome/linear/widget/battery/icons/battery-unknown.svg
deleted file mode 100644
index ad67bdf22..000000000
--- a/config/awesome/linear/widget/battery/icons/battery-unknown.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/battery/icons/battery.svg b/config/awesome/linear/widget/battery/icons/battery.svg
deleted file mode 100644
index adba7ac99..000000000
--- a/config/awesome/linear/widget/battery/icons/battery.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/blue-light/init.lua b/config/awesome/linear/widget/blue-light/init.lua
deleted file mode 100644
index 367a1af43..000000000
--- a/config/awesome/linear/widget/blue-light/init.lua
+++ /dev/null
@@ -1,159 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/blue-light/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local device_state = false
-
-local action_name = wibox.widget {
- text = 'Blue Light',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'blue-light-off.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if blue_light_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.accent
- button_widget.icon:set_image(widget_icon_dir .. 'blue-light.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'blue-light-off.svg')
- end
-end
-
-local kill_state = function()
- awful.spawn.easy_async_with_shell(
- [[
- redshift -x
- kill -9 $(pgrep redshift)
- ]],
- function(stdout)
- stdout = tonumber(stdout)
- if stdout then
- blue_light_state = false
- update_widget()
- end
- end
- )
-end
-
-kill_state()
-
-local toggle_action = function()
- awful.spawn.easy_async_with_shell(
- [[
- if [ ! -z $(pgrep redshift) ];
- then
- redshift -x && pkill redshift && killall redshift
- echo 'OFF'
- else
- redshift -l 0:0 -t 4500:4500 -r &>/dev/null &
- echo 'ON'
- fi
- ]],
- function(stdout)
- if stdout:match('ON') then
- blue_light_state = true
- else
- blue_light_state = false
- end
- update_widget()
- end
- )
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-
-}
-
-awesome.connect_signal(
- 'widget::blue_light:toggle',
- function()
- toggle_action()
- end
-)
-
-return action_widget
diff --git a/config/awesome/linear/widget/bluetooth-toggle/icons/bluetooth-off.svg b/config/awesome/linear/widget/bluetooth-toggle/icons/bluetooth-off.svg
deleted file mode 100644
index f3e52ab19..000000000
--- a/config/awesome/linear/widget/bluetooth-toggle/icons/bluetooth-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/bluetooth-toggle/icons/bluetooth.svg b/config/awesome/linear/widget/bluetooth-toggle/icons/bluetooth.svg
deleted file mode 100644
index 32fbc3e70..000000000
--- a/config/awesome/linear/widget/bluetooth-toggle/icons/bluetooth.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/bluetooth-toggle/icons/loading.svg b/config/awesome/linear/widget/bluetooth-toggle/icons/loading.svg
deleted file mode 100644
index cd7bc0e0f..000000000
--- a/config/awesome/linear/widget/bluetooth-toggle/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/bluetooth-toggle/init.lua b/config/awesome/linear/widget/bluetooth-toggle/init.lua
deleted file mode 100755
index 7521e59c3..000000000
--- a/config/awesome/linear/widget/bluetooth-toggle/init.lua
+++ /dev/null
@@ -1,194 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/bluetooth-toggle/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local device_state = false
-
-local action_name = wibox.widget {
- text = 'Bluetooth',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'bluetooth-off.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if device_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.accent
- button_widget.icon:set_image(widget_icon_dir .. 'bluetooth.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'bluetooth-off.svg')
- end
-end
-
-local check_device_state = function()
- awful.spawn.easy_async_with_shell(
- 'rfkill list bluetooth',
- function(stdout)
-
- if stdout:match('Soft blocked: yes') then
- device_state = false
- else
- device_state = true
- end
-
- update_widget()
- end
- )
-end
-
-check_device_state()
-local power_on_cmd = [[
- rfkill unblock bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'Initializing bluetooth device...',
- icon = ']] .. widget_icon_dir .. 'loading' .. '.svg' .. [['
- })
- "
-
- # Add a delay here so we can enable the bluetooth
- sleep 1
-
- bluetoothctl power on
-]]
-
-local power_off_cmd = [[
- bluetoothctl power off
- rfkill block bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'The bluetooth device has been disabled.',
- icon = ']] .. widget_icon_dir .. 'bluetooth-off' .. '.svg' .. [['
- })
- "
-]]
-
-local toggle_action = function()
- if device_state then
- awful.spawn.easy_async_with_shell(
- power_off_cmd,
- function(stdout)
- device_state = false
- update_widget()
- end
- )
- else
- awful.spawn.easy_async_with_shell(
- power_on_cmd,
- function(stdout)
- device_state = true
- update_widget()
- end
- )
- end
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- check_device_state()
- collectgarbage('collect')
- end
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-
-}
-
-return action_widget
diff --git a/config/awesome/linear/widget/bluetooth/icons/bluetooth-connected.svg b/config/awesome/linear/widget/bluetooth/icons/bluetooth-connected.svg
deleted file mode 100644
index bbda6ad94..000000000
--- a/config/awesome/linear/widget/bluetooth/icons/bluetooth-connected.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/bluetooth/icons/bluetooth-off.svg b/config/awesome/linear/widget/bluetooth/icons/bluetooth-off.svg
deleted file mode 100644
index f3e52ab19..000000000
--- a/config/awesome/linear/widget/bluetooth/icons/bluetooth-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/bluetooth/icons/bluetooth-scanning.svg b/config/awesome/linear/widget/bluetooth/icons/bluetooth-scanning.svg
deleted file mode 100644
index 029f1456a..000000000
--- a/config/awesome/linear/widget/bluetooth/icons/bluetooth-scanning.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/bluetooth/icons/bluetooth.svg b/config/awesome/linear/widget/bluetooth/icons/bluetooth.svg
deleted file mode 100644
index 32fbc3e70..000000000
--- a/config/awesome/linear/widget/bluetooth/icons/bluetooth.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/bluetooth/icons/loading.svg b/config/awesome/linear/widget/bluetooth/icons/loading.svg
deleted file mode 100644
index cd7bc0e0f..000000000
--- a/config/awesome/linear/widget/bluetooth/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/bluetooth/init.lua b/config/awesome/linear/widget/bluetooth/init.lua
deleted file mode 100644
index 153ef3ba0..000000000
--- a/config/awesome/linear/widget/bluetooth/init.lua
+++ /dev/null
@@ -1,83 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-
-local apps = require('configuration.apps')
-
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-
-local widget_icon_dir = config_dir .. 'widget/bluetooth/icons/'
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'bluetooth-off' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.bluetooth_manager, false)
- end
- )
- )
- )
-
- local bluetooth_tooltip = awful.tooltip
- {
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
- watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- local widget_icon_name = nil
- if stdout:match('Soft blocked: yes') then
- widget_icon_name = 'bluetooth-off'
- bluetooth_tooltip.markup = 'Bluetooth is off'
- else
- widget_icon_name = 'bluetooth'
- bluetooth_tooltip.markup = 'Bluetooth is on'
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- collectgarbage('collect')
- end,
- widget
- )
-
- return widget_button
-
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/linear/widget/blur-slider/init.lua b/config/awesome/linear/widget/blur-slider/init.lua
deleted file mode 100644
index 65170484b..000000000
--- a/config/awesome/linear/widget/blur-slider/init.lua
+++ /dev/null
@@ -1,204 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Blur Strength',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.effects,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container,
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-local slider = wibox.widget {
- nil,
- {
- id = 'blur_strength_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local blur_slider = slider.blur_strength_slider
-
-local update_slider_value = function()
-
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
- awk 'NR==1 {print $3}' | tr -d ';'
- "]],
- function(stdout, stderr)
- local strength = stdout:match('%d+')
- blur_strength = tonumber(strength) / 20 * 100
- blur_slider:set_value(tonumber(blur_strength))
- start_up = false
- end
- )
-end
-
--- Update on startup
-update_slider_value()
-
-local action_jump = function()
- local sli_value = blur_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 25 then
- new_value = 25
- elseif sli_value >= 25 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- blur_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
-local adjust_blur = function(power)
-
- awful.spawn.with_shell(
- [[bash -c "
- sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
- $HOME/.config/awesome/configuration/picom.conf
- "]]
- )
-end
-
-blur_slider:connect_signal(
- 'property::value',
- function()
- if not start_up then
- strength = blur_slider:get_value() / 50 * 10
- adjust_blur(strength)
- end
- end
-)
-
--- Adjust slider value to change blur strength
-awesome.connect_signal(
- 'widget::blur:increase',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() + 10
-
- -- No more than 100!
- if blur_value > 100 then
- blur_slider:set_value(100)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
--- Decrease blur
-awesome.connect_signal(
- 'widget::blur:decrease',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() - 10
-
- -- No negatives!
- if blur_value < 0 then
- blur_slider:set_value(0)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
-local volume_setting = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- forced_height = dpi(48),
- spacing = dpi(5),
- action_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- action_level
- },
- nil
- },
- slider
- }
-}
-
-return volume_setting
diff --git a/config/awesome/linear/widget/blur-toggle/init.lua b/config/awesome/linear/widget/blur-toggle/init.lua
deleted file mode 100644
index d9f0afe59..000000000
--- a/config/awesome/linear/widget/blur-toggle/init.lua
+++ /dev/null
@@ -1,170 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/blur-toggle/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local blur_status = true
-
-local action_name = wibox.widget {
- text = 'Blur Effects' ,
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.effects,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if blur_status then
- action_status:set_text('On')
- widget_button.bg = beautiful.system_magenta_dark
- button_widget.icon:set_image(icons.effects)
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'effects-off.svg')
- end
-end
-
-local check_blur_status = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'method = \"none\";' ]] .. config_dir .. [[/configuration/picom.conf | tr -d '[\"\;\=\ ]'
- "]],
- function(stdout, stderr)
- if stdout:match('methodnone') then
- blur_status = false
- else
- blur_status = true
- end
- update_widget()
- end
- )
-end
-
-check_blur_status()
-
-local toggle_blur = function(togglemode)
-
- local toggle_blur_script = [[bash -c "
- # Check picom if it's not running then start it
- if [ -z $(pgrep picom) ]; then
- picom -b --experimental-backends --dbus --config ]] .. config_dir .. [[configuration/picom.conf
- fi
-
- case ]] .. togglemode .. [[ in
- 'enable')
- sed -i -e 's/method = \"none\"/method = \"dual_kawase\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- 'disable')
- sed -i -e 's/method = \"dual_kawase\"/method = \"none\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- esac
- "]]
-
- awful.spawn.with_shell(toggle_blur_script)
-end
-
-local toggle_blur_fx = function()
- local state = nil
- if blur_status then
- blur_status = false
- state = 'disable'
- else
- blur_status = true
- state = 'enable'
- end
- toggle_blur(state)
- update_widget()
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_blur_fx()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_blur_fx()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-}
-
-awesome.connect_signal(
- 'widget::blur:toggle',
- function()
- toggle_blur_fx()
- end
-)
-
-return action_widget
diff --git a/config/awesome/linear/widget/brightness-slider/init.lua b/config/awesome/linear/widget/brightness-slider/init.lua
deleted file mode 100644
index 5e82480a9..000000000
--- a/config/awesome/linear/widget/brightness-slider/init.lua
+++ /dev/null
@@ -1,196 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Brightness',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container,
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'brightness_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local brightness_slider = slider.brightness_slider
-
-brightness_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = brightness_slider:get_value()
-
- spawn('light -S ' ..
- math.max(brightness_level, 5),
- false
- )
-
- -- Update brightness osd
- awesome.emit_signal(
- 'module::brightness_osd',
- brightness_level
- )
- end
-)
-
-brightness_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if brightness_slider:get_value() > 100 then
- brightness_slider:set_value(100)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if brightness_slider:get_value() < 0 then
- brightness_slider:set_value(0)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- 'light -G',
- function(stdout)
- local brightness = string.match(stdout, '(%d+)')
- brightness_slider:set_value(tonumber(brightness))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = brightness_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- brightness_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::brightness',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::brightness:update',
- function(value)
- brightness_slider:set_value(tonumber(value))
- end
-)
-
-local brightness_setting = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- action_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- action_level
- },
- nil
- },
- slider
- }
-}
-
-return brightness_setting
diff --git a/config/awesome/linear/widget/clickable-container/init.lua b/config/awesome/linear/widget/clickable-container/init.lua
deleted file mode 100644
index 6b57aa247..000000000
--- a/config/awesome/linear/widget/clickable-container/init.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-
-local create_click_events = function(widget)
-
- local container = wibox.widget {
- widget,
- widget = wibox.container.background
- }
-
- -- Old and new widget
- local old_cursor, old_wibox
-
- -- Mouse hovers on the widget
- container:connect_signal(
- 'mouse::enter',
- function()
- container.bg = beautiful.groups_bg
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- -- Mouse leaves the widget
- container:connect_signal(
- 'mouse::leave',
- function()
- container.bg = beautiful.leave_event
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- -- Mouse pressed the widget
- container:connect_signal(
- 'button::press',
- function()
- container.bg = beautiful.press_event
- end
- )
-
- -- Mouse releases the widget
- container:connect_signal(
- 'button::release',
- function()
- container.bg = beautiful.release_event
- end
- )
-
- return container
-end
-
-return create_click_events
diff --git a/config/awesome/linear/widget/clock/init.lua b/config/awesome/linear/widget/clock/init.lua
deleted file mode 100644
index 530933258..000000000
--- a/config/awesome/linear/widget/clock/init.lua
+++ /dev/null
@@ -1,158 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config = require('configuration.config')
-local military_mode = config.widget.clock.military_mode or false
-
-local create_clock = function(s)
-
- local clock_format = nil
- if not military_mode then
- clock_format = '%I:%M %p'
- else
- clock_format = '%H:%M'
- end
-
- s.clock_widget = wibox.widget.textclock(
- clock_format,
- 1
- )
-
- s.clock_widget = wibox.widget {
- {
- s.clock_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- s.clock_widget:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- s.clock_widget:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- s.clock_tooltip = awful.tooltip
- {
- objects = {s.clock_widget},
- mode = 'outside',
- delay_show = 1,
- preferred_positions = {'right', 'left', 'top', 'bottom'},
- preferred_alignments = {'middle', 'front', 'back'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- local ordinal = nil
-
- local day = os.date('%d')
- local month = os.date('%B')
-
- local first_digit = string.sub(day, 0, 1)
- local last_digit = string.sub(day, -1)
-
- if first_digit == '0' then
- day = last_digit
- end
-
- if last_digit == '1' and day ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and day ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and day ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- local date_str = 'Today is the ' ..
- '' .. day .. ordinal ..
- ' of ' .. month .. '.\n' ..
- 'And it\'s fucking ' .. os.date('%A')
-
- return date_str
- end,
- }
-
- s.clock_widget:connect_signal(
- 'button::press',
- function(self, lx, ly, button)
- -- Hide the tooltip when you press the clock widget
- if s.clock_tooltip.visible and button == 1 then
- s.clock_tooltip.visible = false
- end
- end
- )
-
- s.month_calendar = awful.widget.calendar_popup.month({
- start_sunday = true,
- spacing = dpi(5),
- font = 'Inter Regular 10',
- long_weekdays = true,
- margin = dpi(5),
- screen = s,
- style_month = {
- border_width = dpi(0),
- bg_color = beautiful.background,
- padding = dpi(20),
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, beautiful.groups_radius
- )
- end
- },
- style_header = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_weekday = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_normal = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_focus = {
- border_width = dpi(0),
- border_color = beautiful.fg_normal,
- bg_color = beautiful.accent,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, dpi(4)
- )
- end,
- },
- })
-
- s.month_calendar:attach(
- s.clock_widget,
- 'br',
- {
- on_pressed = true,
- on_hover = false
- }
- )
-
- return s.clock_widget
-end
-
-return create_clock
diff --git a/config/awesome/linear/widget/cpu-meter/init.lua b/config/awesome/linear/widget/cpu-meter/init.lua
deleted file mode 100644
index c0ce28ab3..000000000
--- a/config/awesome/linear/widget/cpu-meter/init.lua
+++ /dev/null
@@ -1,109 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'CPU',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.chart,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'cpu_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local total_prev = 0
-local idle_prev = 0
-
-watch(
- [[bash -c "
- cat /proc/stat | grep '^cpu '
- "]],
- 10,
- function(_, stdout)
- local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
- stdout:match('(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s')
-
- local total = user + nice + system + idle + iowait + irq + softirq + steal
-
- local diff_idle = idle - idle_prev
- local diff_total = total - total_prev
- local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
-
- slider.cpu_usage:set_value(diff_usage)
-
- total_prev = total
- idle_prev = idle
- collectgarbage('collect')
- end
-)
-
-local cpu_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return cpu_meter
\ No newline at end of file
diff --git a/config/awesome/linear/widget/email/icons/email-1.svg b/config/awesome/linear/widget/email/icons/email-1.svg
deleted file mode 100644
index 9170d0b08..000000000
--- a/config/awesome/linear/widget/email/icons/email-1.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-2.svg b/config/awesome/linear/widget/email/icons/email-2.svg
deleted file mode 100644
index 58406a729..000000000
--- a/config/awesome/linear/widget/email/icons/email-2.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-3.svg b/config/awesome/linear/widget/email/icons/email-3.svg
deleted file mode 100644
index 597b144b6..000000000
--- a/config/awesome/linear/widget/email/icons/email-3.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-4.svg b/config/awesome/linear/widget/email/icons/email-4.svg
deleted file mode 100644
index dc915fb43..000000000
--- a/config/awesome/linear/widget/email/icons/email-4.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-5.svg b/config/awesome/linear/widget/email/icons/email-5.svg
deleted file mode 100644
index 935140c4b..000000000
--- a/config/awesome/linear/widget/email/icons/email-5.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-6.svg b/config/awesome/linear/widget/email/icons/email-6.svg
deleted file mode 100644
index edf1298ff..000000000
--- a/config/awesome/linear/widget/email/icons/email-6.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-7.svg b/config/awesome/linear/widget/email/icons/email-7.svg
deleted file mode 100644
index 980d79c5f..000000000
--- a/config/awesome/linear/widget/email/icons/email-7.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-8.svg b/config/awesome/linear/widget/email/icons/email-8.svg
deleted file mode 100644
index 4c6618ad5..000000000
--- a/config/awesome/linear/widget/email/icons/email-8.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-9+.svg b/config/awesome/linear/widget/email/icons/email-9+.svg
deleted file mode 100644
index 53a0a6880..000000000
--- a/config/awesome/linear/widget/email/icons/email-9+.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-9.svg b/config/awesome/linear/widget/email/icons/email-9.svg
deleted file mode 100644
index 9c65b74a6..000000000
--- a/config/awesome/linear/widget/email/icons/email-9.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email-unread.svg b/config/awesome/linear/widget/email/icons/email-unread.svg
deleted file mode 100644
index 829d3a90f..000000000
--- a/config/awesome/linear/widget/email/icons/email-unread.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/email/icons/email.svg b/config/awesome/linear/widget/email/icons/email.svg
deleted file mode 100644
index a8860b411..000000000
--- a/config/awesome/linear/widget/email/icons/email.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/harddrive-meter/init.lua b/config/awesome/linear/widget/harddrive-meter/init.lua
deleted file mode 100644
index 46d11e374..000000000
--- a/config/awesome/linear/widget/harddrive-meter/init.lua
+++ /dev/null
@@ -1,93 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'Hard Drive',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.harddisk,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'hdd_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(36),
- layout = wibox.layout.align.vertical
-}
-
-watch(
- [[bash -c "df -h /home|grep '^/' | awk '{print $5}'"]],
- 10,
- function(_, stdout)
- local space_consumed = stdout:match('(%d+)')
- slider.hdd_usage:set_value(tonumber(space_consumed))
- collectgarbage('collect')
- end
-)
-
-local harddrive_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return harddrive_meter
diff --git a/config/awesome/linear/widget/info-center-toggle/icons/info-center.svg b/config/awesome/linear/widget/info-center-toggle/icons/info-center.svg
deleted file mode 100644
index c60cf96d7..000000000
--- a/config/awesome/linear/widget/info-center-toggle/icons/info-center.svg
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/info-center-toggle/init.lua b/config/awesome/linear/widget/info-center-toggle/init.lua
deleted file mode 100644
index 00673c624..000000000
--- a/config/awesome/linear/widget/info-center-toggle/init.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/info-center-toggle/icons/'
-local clickable_container = require('widget.clickable-container')
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'info-center.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.screen.focused().info_center:toggle()
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/linear/widget/layoutbox/init.lua b/config/awesome/linear/widget/layoutbox/init.lua
deleted file mode 100644
index 1171f84de..000000000
--- a/config/awesome/linear/widget/layoutbox/init.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local layout_box = function(s)
- local layoutbox = wibox.widget {
- {
- awful.widget.layoutbox(s),
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
- layoutbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awful.layout.inc(-1)
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.layout.inc(-1)
- end
- )
- )
- )
- return layoutbox
-end
-
-return layout_box
\ No newline at end of file
diff --git a/config/awesome/linear/widget/mpd/content/init.lua b/config/awesome/linear/widget/mpd/content/init.lua
deleted file mode 100644
index 0de97578b..000000000
--- a/config/awesome/linear/widget/mpd/content/init.lua
+++ /dev/null
@@ -1,6 +0,0 @@
--- Return UI Table
-return {
- album_cover = require('widget.mpd.content.album-cover'),
- song_info = require('widget.mpd.content.song-info'),
- media_buttons = require('widget.mpd.content.media-buttons')
-}
\ No newline at end of file
diff --git a/config/awesome/linear/widget/mpd/content/media-buttons.lua b/config/awesome/linear/widget/mpd/content/media-buttons.lua
deleted file mode 100755
index b7bfb8465..000000000
--- a/config/awesome/linear/widget/mpd/content/media-buttons.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local media_buttons = {}
-
-media_buttons.play_button_image = wibox.widget {
- {
- id = 'play',
- image = widget_icon_dir .. 'play.svg',
- resize = true,
- opacity = 0.8,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.next_button_image = wibox.widget {
- {
- id = 'next',
- image = widget_icon_dir .. 'next.svg',
- resize = true,
- opacity = 0.8,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.prev_button_image = wibox.widget {
- {
- id = 'prev',
- image = widget_icon_dir .. 'prev.svg',
- resize = true,
- opacity = 0.8,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.play_button = wibox.widget {
- {
- {
- media_buttons.play_button_image,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(36),
- forced_height = dpi(36),
- bg = beautiful.transparent,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-media_buttons.next_button = wibox.widget {
- {
- {
- media_buttons.next_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(36),
- forced_height = dpi(36),
- bg = beautiful.transparent,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-media_buttons.prev_button = wibox.widget {
- {
- {
- media_buttons.prev_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(36),
- forced_height = dpi(36),
- bg = beautiful.transparent,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-media_buttons.navigate_buttons = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- media_buttons.prev_button,
- media_buttons.play_button,
- media_buttons.next_button
-}
-
-return media_buttons
diff --git a/config/awesome/linear/widget/mpd/content/song-info.lua b/config/awesome/linear/widget/mpd/content/song-info.lua
deleted file mode 100755
index 6c55f70db..000000000
--- a/config/awesome/linear/widget/mpd/content/song-info.lua
+++ /dev/null
@@ -1,66 +0,0 @@
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local song_info = {}
-
-song_info.music_title = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- expand = 'none',
- {
- {
- id = 'title',
- text = 'title',
- font = 'Inter Bold 10',
- align = 'left',
- valign = 'center',
- ellipsize = 'end',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 150,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth,
- fps = 60,
- layout = wibox.container.scroll.horizontal
- }
-}
-
-song_info.music_artist = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- expand = 'none',
- {
- {
- id = 'artist',
- text = 'artist',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 150,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 60,
- layout = wibox.container.scroll.horizontal
- }
-}
-
-song_info.music_info = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- song_info.music_title,
- song_info.music_artist
- },
- nil
-}
-
-return song_info
diff --git a/config/awesome/linear/widget/mpd/icons/next.svg b/config/awesome/linear/widget/mpd/icons/next.svg
deleted file mode 100644
index 7df506387..000000000
--- a/config/awesome/linear/widget/mpd/icons/next.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/mpd/icons/pause.svg b/config/awesome/linear/widget/mpd/icons/pause.svg
deleted file mode 100644
index 9fc7767b6..000000000
--- a/config/awesome/linear/widget/mpd/icons/pause.svg
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/mpd/icons/play.svg b/config/awesome/linear/widget/mpd/icons/play.svg
deleted file mode 100755
index 3a5677982..000000000
--- a/config/awesome/linear/widget/mpd/icons/play.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/mpd/icons/prev.svg b/config/awesome/linear/widget/mpd/icons/prev.svg
deleted file mode 100644
index 0e39d34fc..000000000
--- a/config/awesome/linear/widget/mpd/icons/prev.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/mpd/icons/vinyl.svg b/config/awesome/linear/widget/mpd/icons/vinyl.svg
deleted file mode 100755
index d26a4a8af..000000000
--- a/config/awesome/linear/widget/mpd/icons/vinyl.svg
+++ /dev/null
@@ -1,5698 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/mpd/init.lua b/config/awesome/linear/widget/mpd/init.lua
deleted file mode 100755
index ad98cf326..000000000
--- a/config/awesome/linear/widget/mpd/init.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local ui_content = require('widget.mpd.content')
-local album = ui_content.album_cover
-local song_info = ui_content.song_info.music_info
-local media_buttons = ui_content.media_buttons.navigate_buttons
-
-local music_box = wibox.widget {
- layout = wibox.layout.align.horizontal,
- forced_height = dpi(46),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- album,
- song_info
- },
- nil,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- media_buttons,
- nil
- }
-}
-
--- Mpd widget updater
-require('widget.mpd.mpd-music-updater')
-
-return music_box
\ No newline at end of file
diff --git a/config/awesome/linear/widget/mpd/mpd-music-updater.lua b/config/awesome/linear/widget/mpd/mpd-music-updater.lua
deleted file mode 100755
index ce5712078..000000000
--- a/config/awesome/linear/widget/mpd/mpd-music-updater.lua
+++ /dev/null
@@ -1,269 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local ui_content = require('widget.mpd.content')
-local album_cover = ui_content.album_cover
-local song_info = ui_content.song_info
-local vol_slider = ui_content.volume_slider
-local media_buttons = ui_content.media_buttons
-
-local update_cover = function()
-
- local extract_script = [=[
- MUSIC_DIR="$(xdg-user-dir MUSIC)"
- TMP_DIR="/tmp/awesomewm/${USER}/"
- TMP_COVER_PATH=${TMP_DIR}"cover.jpg"
- TMP_SONG="${TMP_DIR}current-song"
-
- CHECK_EXIFTOOL=$(command -v exiftool)
-
- if [ ! -d "${TMP_DIR}" ]; then
- mkdir -p "${TMP_DIR}";
- fi
-
- if [ ! -z "$CHECK_EXIFTOOL" ]; then
-
- SONG="$MUSIC_DIR/$(mpc -p 6600 --format "%file%" current)"
- PICTURE_TAG="-Picture"
-
- if [[ "$SONG" == *".m4a" ]]; then
- PICTURE_TAG="-CoverArt"
- fi
-
- # Extract album cover using perl-image-exiftool
- exiftool -b "$PICTURE_TAG" "$SONG" > "$TMP_COVER_PATH"
-
- else
-
- #Extract image using ffmpeg
- cp "$MUSIC_DIR/$(mpc --format %file% current)" "$TMP_SONG"
-
- ffmpeg \
- -hide_banner \
- -loglevel 0 \
- -y \
- -i "$TMP_SONG" \
- -vf scale=300:-1 \
- "$TMP_COVER_PATH" > /dev/null 2>&1
-
- rm "$TMP_SONG"
- fi
-
- img_data=$(identify $TMP_COVER_PATH 2>&1)
-
- # Delete the cover.jpg if it's not a valid image
- if [[ $img_data == *"insufficient"* ]]; then
- rm $TMP_COVER_PATH
- fi
-
- if [ -f $TMP_COVER_PATH ]; then
- echo $TMP_COVER_PATH;
- fi
- ]=]
-
- awful.spawn.easy_async_with_shell(
- extract_script,
- function(stdout)
- local album_icon = widget_icon_dir .. 'vinyl' .. '.svg'
- if not (stdout == nil or stdout == '') then
- album_icon = stdout:gsub('%\n', '')
- end
- album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
- album_cover:emit_signal('widget::redraw_needed')
- album_cover:emit_signal('widget::layout_changed')
- collectgarbage('collect')
- end
- )
-end
-
-local update_file = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- file_name = stdout:gsub('%\n','')
- end
- )
- return file_name
-end
-
-local update_title = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %title% current
- ]],
- function(stdout)
- -- Remove new lines
- local title = stdout:gsub('%\n', '')
- local title_widget = song_info.music_title
- local title_text = song_info.music_title:get_children_by_id('title')[1]
- -- Make sure it's not null
- if not (title == nil or title == '') then
- title_text:set_text(title)
- else
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- if not (stdout == nil or stdout == '') then
- file_name = stdout:gsub('%\n','')
- file_name = file_name:sub(1, title:len() - 5) .. ''
- title_text:set_text(file_name)
- else
- -- Set title
- title_text:set_text('Play some music!')
- end
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
- end
- )
- end
-
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
- collectgarbage('collect')
- end
- )
-end
-
-local update_artist = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %artist% current
- ]],
- function(stdout)
-
- -- Remove new lines
- local artist = stdout:gsub('%\n', '')
- local artist_widget = song_info.music_artist
- local artist_text = artist_widget:get_children_by_id('artist')[1]
- if not (artist == nil or artist == '') then
- artist_text:set_text(artist)
- else
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- if not (stdout == nil or stdout == '') then
-
- artist_text:set_text('unknown artist')
-
- else
- artist_text:set_text('or play some porn?')
- end
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- end
- )
- end
-
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- collectgarbage('collect')
- end
- )
-end
-
-local check_if_playing = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2' | grep -o playing
- ]],
- function(stdout)
- local play_button_img = media_buttons.play_button_image.play
- if not (stdout == nil or stdout == '') then
- play_button_img:set_image(widget_icon_dir .. 'pause.svg')
- else
- play_button_img:set_image(widget_icon_dir .. 'play.svg')
- end
- end
- )
-end
-
-local update_all_content = function()
- update_title()
- update_artist()
- update_cover()
- check_if_playing()
-end
-
-local mpd_startup = [[
-# Let's make sure that MPD is running.
-if [ -z $(pgrep mpd) ]; then mpd; fi
-]]
-
-local mpd_change_event_listener = [[
-sh -c '
-mpc idleloop player
-'
-]]
-
-local kill_mpd_change_event_listener = [[sh -c "
-ps x |
-grep 'mpc idleloop player' |
-grep -v grep |
-awk '{print $1}' |
-xargs kill
-"]]
-
-awful.spawn.easy_async_with_shell(
- mpd_startup,
- function ()
- awful.spawn.easy_async_with_shell(
- kill_mpd_change_event_listener,
- function ()
- update_all_content()
- awful.spawn.with_line_callback(
- mpd_change_event_listener, {
- stdout = function(line)
- update_all_content()
- end
- }
- )
- end
- )
- end
-)
-
-media_buttons.play_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc toggle')
- end
- )
- )
-)
-
-media_buttons.next_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc next')
- end
- )
- )
-)
-
-media_buttons.prev_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc prev')
- end
- )
- )
-)
diff --git a/config/awesome/linear/widget/network/icons/airplane-mode-off.svg b/config/awesome/linear/widget/network/icons/airplane-mode-off.svg
deleted file mode 100644
index 7a4c91c0a..000000000
--- a/config/awesome/linear/widget/network/icons/airplane-mode-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/airplane-mode.svg b/config/awesome/linear/widget/network/icons/airplane-mode.svg
deleted file mode 100644
index 70fc89d1a..000000000
--- a/config/awesome/linear/widget/network/icons/airplane-mode.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/loading.svg b/config/awesome/linear/widget/network/icons/loading.svg
deleted file mode 100755
index cd7bc0e0f..000000000
--- a/config/awesome/linear/widget/network/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-off.svg b/config/awesome/linear/widget/network/icons/wifi-off.svg
deleted file mode 100755
index dbcbc7a82..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-1-alert.svg b/config/awesome/linear/widget/network/icons/wifi-strength-1-alert.svg
deleted file mode 100755
index 7a8de11db..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-1-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-1-lock.svg b/config/awesome/linear/widget/network/icons/wifi-strength-1-lock.svg
deleted file mode 100755
index 9bcf910fd..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-1-lock.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-1.svg b/config/awesome/linear/widget/network/icons/wifi-strength-1.svg
deleted file mode 100755
index 9e9004981..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-1.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-2-alert.svg b/config/awesome/linear/widget/network/icons/wifi-strength-2-alert.svg
deleted file mode 100755
index 970987a46..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-2-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-2-lock.svg b/config/awesome/linear/widget/network/icons/wifi-strength-2-lock.svg
deleted file mode 100755
index cbedd2746..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-2-lock.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-2.svg b/config/awesome/linear/widget/network/icons/wifi-strength-2.svg
deleted file mode 100755
index e65871e1f..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-2.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-3-alert.svg b/config/awesome/linear/widget/network/icons/wifi-strength-3-alert.svg
deleted file mode 100755
index e1b5a5f51..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-3-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-3-lock.svg b/config/awesome/linear/widget/network/icons/wifi-strength-3-lock.svg
deleted file mode 100755
index 865d01a16..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-3-lock.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-3.svg b/config/awesome/linear/widget/network/icons/wifi-strength-3.svg
deleted file mode 100755
index cec90d5b2..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-3.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-4-alert.svg b/config/awesome/linear/widget/network/icons/wifi-strength-4-alert.svg
deleted file mode 100755
index 2d9d47d1c..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-4-alert.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-4-lock.svg b/config/awesome/linear/widget/network/icons/wifi-strength-4-lock.svg
deleted file mode 100755
index fb51f35ea..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-4-lock.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-4.svg b/config/awesome/linear/widget/network/icons/wifi-strength-4.svg
deleted file mode 100755
index 259a3a94d..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-4.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-alert-outline.svg b/config/awesome/linear/widget/network/icons/wifi-strength-alert-outline.svg
deleted file mode 100755
index 3e4c33a8f..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-alert-outline.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-alert.svg b/config/awesome/linear/widget/network/icons/wifi-strength-alert.svg
deleted file mode 100755
index ca80f6cba..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-alert.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-empty.svg b/config/awesome/linear/widget/network/icons/wifi-strength-empty.svg
deleted file mode 100755
index 0a1380ab3..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-empty.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-lock-outline.svg b/config/awesome/linear/widget/network/icons/wifi-strength-lock-outline.svg
deleted file mode 100755
index 3edc63601..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-lock-outline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-off-outline.svg b/config/awesome/linear/widget/network/icons/wifi-strength-off-outline.svg
deleted file mode 100755
index 2f9b636b5..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-off-outline.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-off.svg b/config/awesome/linear/widget/network/icons/wifi-strength-off.svg
deleted file mode 100755
index 12cb04308..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-off.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi-strength-outline.svg b/config/awesome/linear/widget/network/icons/wifi-strength-outline.svg
deleted file mode 100755
index 00fcd2614..000000000
--- a/config/awesome/linear/widget/network/icons/wifi-strength-outline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/network/icons/wifi.svg b/config/awesome/linear/widget/network/icons/wifi.svg
deleted file mode 100755
index 78878680a..000000000
--- a/config/awesome/linear/widget/network/icons/wifi.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/linear/widget/network/icons/wired-alert.svg b/config/awesome/linear/widget/network/icons/wired-alert.svg
deleted file mode 100755
index 60ad378d0..000000000
--- a/config/awesome/linear/widget/network/icons/wired-alert.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wired-off.svg b/config/awesome/linear/widget/network/icons/wired-off.svg
deleted file mode 100755
index 35481c021..000000000
--- a/config/awesome/linear/widget/network/icons/wired-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/icons/wired.svg b/config/awesome/linear/widget/network/icons/wired.svg
deleted file mode 100755
index 00441aca1..000000000
--- a/config/awesome/linear/widget/network/icons/wired.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/network/init.lua b/config/awesome/linear/widget/network/init.lua
deleted file mode 100755
index 105dd502f..000000000
--- a/config/awesome/linear/widget/network/init.lua
+++ /dev/null
@@ -1,358 +0,0 @@
-----------------------------------------------------------------------------
---- Simple Network Widget
---
--- Depends: iproute2, iw
---
---
--- @author manilarome <gerome.matilla07@gmail.com>
--- @copyright 2020 manilarome
--- @widget network
-----------------------------------------------------------------------------
-
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local dpi = require('beautiful').xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/network/icons/'
-local config = require('configuration.config')
-
--- Configuration
-local interfaces = {
- wlan_interface = config.widget.network.wireless_interface or 'wlan0',
- lan_interface = config.widget.network.wired_interface or 'enp0s25'
-}
-
-local network_mode = nil
-
-local return_button = function()
-
- local update_notify_no_access = true
- local notify_no_access_quota = 0
-
- local startup = true
- local reconnect_startup = true
- local notify_new_wifi_conn = false
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'wifi-strength-off' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.network_manager, false)
- end
- )
- )
- )
-
- local network_tooltip = awful.tooltip {
- text = 'Loading...',
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
- }
-
- local check_internet_health = [=[
- status_ping=0
-
- packets="$(ping -q -w2 -c2 1.1.1.1 | grep -o "100% packet loss")"
- if [ ! -z "${packets}" ];
- then
- status_ping=0
- else
- status_ping=1
- fi
-
- if [ $status_ping -eq 0 ];
- then
- echo 'Connected but no internet'
- fi
- ]=]
-
- -- Awesome/System startup
- local update_startup = function()
- if startup then
- startup = false
- end
- end
-
- -- Consider reconnecting a startup
- local update_reconnect_startup = function(status)
- reconnect_startup = status
- end
-
- -- Update tooltip
- local update_tooltip = function(message)
- network_tooltip:set_markup(message)
- end
-
- local network_notify = function(message, title, app_name, icon)
- naughty.notification({
- message = message,
- title = title,
- app_name = app_name,
- icon = icon
- })
- end
-
- -- Wireless mode / Update
- local update_wireless = function()
-
- network_mode = 'wireless'
-
- -- Create wireless connection notification
- local notify_connected = function(essid)
- local message = 'You are now connected to \"' .. essid .. '\"'
- local title = 'Connection Established'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wifi.svg'
- network_notify(message, title, app_name, icon)
- end
-
- -- Get wifi essid and bitrate
- local update_wireless_data = function(strength, healthy)
- awful.spawn.easy_async_with_shell(
- [[
- iw dev ]] .. interfaces.wlan_interface .. [[ link
- ]],
- function(stdout)
- local essid = stdout:match('SSID: (.-)\n') or 'N/A'
- local bitrate = stdout:match('tx bitrate: (.+/s)') or 'N/A'
- local message = 'Connected to: ' .. (essid or 'Loading...*') ..
- '\nWireless Interface: ' .. interfaces.wlan_interface ..
- '\nWiFi-Strength: ' .. tostring(wifi_strength) .. '%' ..
- '\nBit rate: ' .. tostring(bitrate) .. ''
-
- if healthy then
- update_tooltip(message)
- else
- update_tooltip('Connected but no internet!\n' .. message)
- end
-
- if reconnect_startup or startup then
- notify_connected(essid)
- update_reconnect_startup(false)
- end
- end
- )
- end
-
- -- Update wifi icon based on wifi strength and health
- local update_wireless_icon = function(strength)
- awful.spawn.easy_async_with_shell(
- check_internet_health,
- function(stdout)
- local widget_icon_name = 'wifi-strength'
- if not stdout:match('Connected but no internet') then
- if startup or reconnect_startup then
- awesome.emit_signal('system::network_connected')
- end
- widget_icon_name = widget_icon_name .. '-' .. tostring(strength)
- update_wireless_data(wifi_strength_rounded, true)
- else
- widget_icon_name = widget_icon_name .. '-' .. tostring(strength) .. '-alert'
- update_wireless_data(wifi_strength_rounded, false)
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
- )
- end
-
- -- Get wifi strength
- local update_wireless_strength = function()
- awful.spawn.easy_async_with_shell(
- [[
- awk 'NR==3 {printf "%3.0f" ,($3/70)*100}' /proc/net/wireless
- ]],
- function(stdout)
- if not tonumber(stdout) then
- return
- end
- wifi_strength = tonumber(stdout)
- local wifi_strength_rounded = math.floor(wifi_strength / 25 + 0.5)
- update_wireless_icon(wifi_strength_rounded)
- end
- )
- end
-
- update_wireless_strength()
- update_startup()
- end
-
- local update_wired = function()
-
- network_mode = 'wired'
-
- local notify_connected = function()
- local message = 'Connected to internet with \"' .. interfaces.lan_interface .. '\"'
- local title = 'Connection Established'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wired.svg'
- network_notify(message, title, app_name, icon)
- end
-
- awful.spawn.easy_async_with_shell(
- check_internet_health,
- function(stdout)
-
- local widget_icon_name = 'wired'
-
- if stdout:match('Connected but no internet') then
- widget_icon_name = widget_icon_name .. '-alert'
- update_tooltip(
- 'Connected but no internet!' ..
- '\nEthernet Interface: ' .. interfaces.lan_interface .. ''
- )
- else
- update_tooltip('Ethernet Interface: ' .. interfaces.lan_interface .. '')
- if startup or reconnect_startup then
- awesome.emit_signal('system::network_connected')
- notify_connected()
- update_startup(false)
- end
- update_reconnect_startup(false)
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
- )
- end
-
- local update_disconnected = function()
-
- local notify_wireless_disconnected = function(essid)
- local message = 'Wi-Fi network has been disconnected'
- local title = 'Connection Disconnected'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wifi-strength-off.svg'
- network_notify(message, title, app_name, icon)
- end
-
- local notify_wired_disconnected = function(essid)
- local message = 'Ethernet network has been disconnected'
- local title = 'Connection Disconnected'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wired-off.svg'
- network_notify(message, title, app_name, icon)
- end
-
- local widget_icon_name = 'wifi-strength-off'
-
- if network_mode == 'wireless' then
- widget_icon_name = 'wifi-strength-off'
- if not reconnect_startup then
- update_reconnect_startup(true)
- notify_wireless_disconnected()
- end
- elseif network_mode == 'wired' then
- widget_icon_name = 'wired-off'
- if not reconnect_startup then
- update_reconnect_startup(true)
- notify_wired_disconnected()
- end
- end
- update_tooltip('Network is currently disconnected')
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
-
- local check_network_mode = function()
- awful.spawn.easy_async_with_shell(
- [=[
- wireless="]=] .. tostring(interfaces.wlan_interface) .. [=["
- wired="]=] .. tostring(interfaces.lan_interface) .. [=["
- net="/sys/class/net/"
-
- wired_state="down"
- wireless_state="down"
- network_mode=""
-
- # Check network state based on interface's operstate value
- function check_network_state() {
- # Check what interface is up
- if [[ "${wireless_state}" == "up" ]];
- then
- network_mode='wireless'
- elif [[ "${wired_state}" == "up" ]];
- then
- network_mode='wired'
- else
- network_mode='No internet connection'
- fi
- }
-
- # Check if network directory exist
- function check_network_directory() {
- if [[ -n "${wireless}" && -d "${net}${wireless}" ]];
- then
- wireless_state="$(cat "${net}${wireless}/operstate")"
- fi
- if [[ -n "${wired}" && -d "${net}${wired}" ]]; then
- wired_state="$(cat "${net}${wired}/operstate")"
- fi
- check_network_state
- }
-
- # Start script
- function print_network_mode() {
- # Call to check network dir
- check_network_directory
- # Print network mode
- printf "${network_mode}"
- }
-
- print_network_mode
-
- ]=],
- function(stdout)
- local mode = stdout:gsub('%\n', '')
- if stdout:match('No internet connection') then
- update_disconnected()
- elseif stdout:match('wireless') then
- update_wireless()
- elseif stdout:match('wired') then
- update_wired()
- end
- end
- )
- end
-
- local network_updater = gears.timer {
- timeout = 5,
- autostart = true,
- call_now = true,
- callback = function()
- check_network_mode()
- end
- }
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/linear/widget/notif-center/build-notifbox/empty-notifbox.lua b/config/awesome/linear/widget/notif-center/build-notifbox/empty-notifbox.lua
deleted file mode 100644
index a56f3303d..000000000
--- a/config/awesome/linear/widget/notif-center/build-notifbox/empty-notifbox.lua
+++ /dev/null
@@ -1,66 +0,0 @@
--- This returns the "Wow, such empty." message.
-
-local wibox = require('wibox')
-
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = require('gears').filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = wibox.widget {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- nil,
- {
- image = widget_icon_dir .. 'empty-notification' .. '.svg',
- resize = true,
- forced_height = dpi(35),
- forced_width = dpi(35),
- widget = wibox.widget.imagebox,
- },
- nil
- },
- {
- text = 'Wow, such empty.',
- font = 'Inter Bold 14',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- {
- text = 'Come back later.',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- },
- margins = dpi(20),
- widget = wibox.container.margin
-
-}
-
-
-local separator_for_empty_msg = wibox.widget
-{
- orientation = 'vertical',
- opacity = 0.0,
- widget = wibox.widget.separator
-}
-
--- Make empty_notifbox center
-local centered_empty_notifbox = wibox.widget {
- layout = wibox.layout.align.vertical,
- forced_height = dpi(150),
- expand = 'none',
- separator_for_empty_msg,
- empty_notifbox,
- separator_for_empty_msg
-}
-
-return centered_empty_notifbox
-
diff --git a/config/awesome/linear/widget/notif-center/build-notifbox/init.lua b/config/awesome/linear/widget/notif-center/build-notifbox/init.lua
deleted file mode 100644
index bd203edcb..000000000
--- a/config/awesome/linear/widget/notif-center/build-notifbox/init.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = require('widget.notif-center.build-notifbox.empty-notifbox')
-local notifbox_scroller = require('widget.notif-center.build-notifbox.notifbox-scroller')
-
-local notif_core = {}
-
-notif_core.remove_notifbox_empty = true
-
-notif_core.notifbox_layout = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- empty_notifbox
-}
-
-notifbox_scroller(notif_core.notifbox_layout)
-
-notif_core.reset_notifbox_layout = function()
- notif_core.notifbox_layout:reset()
- notif_core.notifbox_layout:insert(1, empty_notifbox)
- notif_core.remove_notifbox_empty = true
-end
-
-local notifbox_add = function(n, notif_icon, notifbox_color)
- if #notif_core.notifbox_layout.children == 1 and notif_core.remove_notifbox_empty then
- notif_core.notifbox_layout:reset(notif_core.notifbox_layout)
- notif_core.remove_notifbox_empty = false
- end
-
- local notifbox_box = require('widget.notif-center.build-notifbox.notifbox-builder')
- notif_core.notifbox_layout:insert(
- 1,
- notifbox_box(
- n,
- notif_icon,
- n.title,
- n.message,
- n.app_name,
- notifbox_color
- )
- )
-end
-
-local notifbox_add_expired = function(n, notif_icon, notifbox_color)
- n:connect_signal(
- 'destroyed',
- function(self, reason, keep_visble)
- if reason == 1 then
- notifbox_add(n, notif_icon, notifbox_color)
- end
- end
- )
-end
-
-naughty.connect_signal(
- 'request::display',
- function(n)
- local notifbox_color = beautiful.transparent
- if n.urgency == 'critical' then
- notifbox_color = n.bg .. '66'
- end
-
- local notif_icon = n.icon or n.app_icon
- if not notif_icon then
- notif_icon = widget_icon_dir .. 'new-notif' .. '.svg'
- end
-
- notifbox_add_expired(n, notif_icon, notifbox_color)
- end
-)
-
-return notif_core
diff --git a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-builder.lua b/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-builder.lua
deleted file mode 100644
index e721232f2..000000000
--- a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-builder.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local builder = require('widget.notif-center.build-notifbox.notifbox-ui-elements')
-local notifbox_core = require('widget.notif-center.build-notifbox')
-
-local notifbox_layout = notifbox_core.notifbox_layout
-local remove_notifbox_empty = notifbox_core.remove_notifbox_empty
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local return_date_time = function(format)
- return os.date(format)
-end
-
-local parse_to_seconds = function(time)
- local hourInSec = tonumber(string.sub(time, 1, 2)) * 3600
- local minInSec = tonumber(string.sub(time, 4, 5)) * 60
- local getSec = tonumber(string.sub(time, 7, 8))
- return (hourInSec + minInSec + getSec)
-end
-
-notifbox_box = function(notif, icon, title, message, app, bgcolor)
-
- local time_of_pop = return_date_time('%H:%M:%S')
- local exact_time = return_date_time('%I:%M %p')
- local exact_date_time = return_date_time('%b %d, %I:%M %p')
-
- local notifbox_timepop = wibox.widget {
- id = 'time_pop',
- markup = nil,
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- visible = true,
- widget = wibox.widget.textbox
- }
-
- local notifbox_dismiss = builder.notifbox_dismiss()
-
- local time_of_popup = gears.timer {
- timeout = 60,
- call_now = true,
- autostart = true,
- callback = function()
-
- local time_difference = nil
-
- time_difference = parse_to_seconds(return_date_time('%H:%M:%S')) - parse_to_seconds(time_of_pop)
- time_difference = tonumber(time_difference)
-
- if time_difference < 60 then
- notifbox_timepop:set_markup('now')
-
- elseif time_difference >= 60 and time_difference < 3600 then
- local time_in_minutes = math.floor(time_difference / 60)
- notifbox_timepop:set_markup(time_in_minutes .. 'm ago')
-
- elseif time_difference >= 3600 and time_difference < 86400 then
- notifbox_timepop:set_markup(exact_time)
-
- elseif time_difference >= 86400 then
- notifbox_timepop:set_markup(exact_date_time)
- return false
-
- end
-
- collectgarbage('collect')
- end
- }
-
- local notifbox_template = wibox.widget {
- id = 'notifbox_template',
- expand = 'none',
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- builder.notifbox_icon(icon),
- builder.notifbox_appname(app),
- },
- nil,
- {
- notifbox_timepop,
- notifbox_dismiss,
- layout = wibox.layout.fixed.horizontal
- }
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- builder.notifbox_title(title),
- builder.notifbox_message(message),
- layout = wibox.layout.fixed.vertical
- },
- builder.notifbox_actions(notif),
- },
-
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- bg = bgcolor,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background,
- }
-
- -- Put the generated template to a container
- local notifbox = wibox.widget {
- notifbox_template,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- -- Delete notification box
- local notifbox_delete = function()
- notifbox_layout:remove_widgets(notifbox, true)
- end
-
- -- Delete notifbox on LMB
- notifbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- if #notifbox_layout.children == 1 then
- reset_notifbox_layout()
- else
- notifbox_delete()
- end
- collectgarbage('collect')
- end
- )
- )
- )
-
- -- Add hover, and mouse leave events
- notifbox_template:connect_signal(
- 'mouse::enter',
- function()
- notifbox.bg = beautiful.groups_bg
- notifbox_timepop.visible = false
- notifbox_dismiss.visible = true
- end
- )
-
- notifbox_template:connect_signal(
- 'mouse::leave',
- function()
- notifbox.bg = beautiful.tranparent
- notifbox_timepop.visible = true
- notifbox_dismiss.visible = false
- end
- )
-
- collectgarbage('collect')
-
- return notifbox
-end
-
-
-return notifbox_box
\ No newline at end of file
diff --git a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-geometry.lua b/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-geometry.lua
deleted file mode 100644
index 3fe79da1e..000000000
--- a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-geometry.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-
-local find_widget_in_wibox = function(wb, widget)
- local function find_widget_in_hierarchy(h, widget)
- if h:get_widget() == widget then
- return h
- end
- local result
-
- for _, ch in ipairs(h:get_children()) do
- result = result or find_widget_in_hierarchy(ch, widget)
- end
- return result
- end
- local h = wb._drawable._widget_hierarchy
- return h and find_widget_in_hierarchy(h, widget)
-end
-
-
-local focused = awful.screen.focused()
-local h = find_widget_in_wibox(focused.top_panel, focused.music)
-local x, y, width, height = h:get_matrix_to_device():transform_rectangle(0, 0, h:get_size())
--- local geo = focused.mywibox:geometry()
-
-
--- x, y = x + geo.x, y + geo.y
-
--- print(string.format("The widget is inside of the rectangle (%d, %d, %d, %d) on the screen", x, y, width, height)
-
-
-naughty.notification({message=tostring(height)})
\ No newline at end of file
diff --git a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-scroller.lua b/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-scroller.lua
deleted file mode 100644
index f05d323ff..000000000
--- a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-scroller.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-
-local add_button_event = function(widget)
-
- widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if #widget.children == 1 then
- return
- end
- widget:insert(1, widget.children[#widget.children])
- widget:remove(#widget.children)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if #widget.children == 1 then
- return
- end
- widget:insert(#widget.children + 1, widget.children[1])
- widget:remove(1)
- end
- )
- )
- )
-
-end
-
-return add_button_event
\ No newline at end of file
diff --git a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-ui-elements.lua b/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
deleted file mode 100644
index ef5e574c7..000000000
--- a/config/awesome/linear/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
+++ /dev/null
@@ -1,136 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local clickable_container = require('widget.clickable-container')
-
-local ui_noti_builder = {}
-
--- Notification icon container
-ui_noti_builder.notifbox_icon = function(ico_image)
- local noti_icon = wibox.widget {
- {
- id = 'icon',
- resize = true,
- forced_height = dpi(25),
- forced_width = dpi(25),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
- noti_icon.icon:set_image(ico_image)
- return noti_icon
-end
-
--- Notification title container
-ui_noti_builder.notifbox_title = function(title)
- return wibox.widget {
- markup = title,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification message container
-ui_noti_builder.notifbox_message = function(msg)
- return wibox.widget {
- markup = msg,
- font = 'Inter Regular 11',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification app name container
-ui_noti_builder.notifbox_appname = function(app)
- return wibox.widget {
- markup = app,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification actions container
-ui_noti_builder.notifbox_actions = function(n)
- actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = 30,
- widget = wibox.container.background
- },
- margins = 4,
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions,
- }
-
- return actions_template
-end
-
-
--- Notification dismiss button
-ui_noti_builder.notifbox_dismiss = function()
-
- local dismiss_imagebox = wibox.widget {
- {
- id = 'dismiss_icon',
- image = widget_icon_dir .. 'delete.svg',
- resize = true,
- forced_height = dpi(5),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
-
- local dismiss_button = wibox.widget {
- {
- dismiss_imagebox,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- local notifbox_dismiss = wibox.widget {
- dismiss_button,
- visible = false,
- bg = beautiful.groups_title_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- }
-
- return notifbox_dismiss
-end
-
-
-return ui_noti_builder
\ No newline at end of file
diff --git a/config/awesome/linear/widget/notif-center/icons/clear_all.svg b/config/awesome/linear/widget/notif-center/icons/clear_all.svg
deleted file mode 100644
index 3f5b9b457..000000000
--- a/config/awesome/linear/widget/notif-center/icons/clear_all.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/notif-center/icons/delete.svg b/config/awesome/linear/widget/notif-center/icons/delete.svg
deleted file mode 100644
index 3f1f88c11..000000000
--- a/config/awesome/linear/widget/notif-center/icons/delete.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/notif-center/icons/empty-notification.svg b/config/awesome/linear/widget/notif-center/icons/empty-notification.svg
deleted file mode 100644
index df4154cdf..000000000
--- a/config/awesome/linear/widget/notif-center/icons/empty-notification.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/notif-center/icons/new-notif.svg b/config/awesome/linear/widget/notif-center/icons/new-notif.svg
deleted file mode 100644
index 630b90ab1..000000000
--- a/config/awesome/linear/widget/notif-center/icons/new-notif.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/config/awesome/linear/widget/notif-center/init.lua b/config/awesome/linear/widget/notif-center/init.lua
deleted file mode 100644
index 8f510a244..000000000
--- a/config/awesome/linear/widget/notif-center/init.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local notif_header = wibox.widget {
- text = 'Notification Center',
- font = 'Inter Bold 14',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local notif_center = function(s)
-
- s.clear_all = require('widget.notif-center.clear-all')
- s.notifbox_layout = require('widget.notif-center.build-notifbox').notifbox_layout
-
- return wibox.widget {
- {
- {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- notif_header,
- nil,
- s.clear_all
- },
- s.notifbox_layout
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- border_width = dpi(1),
- border_color = beautiful.groups_title_bg,
- bg = beautiful.groups_bg,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-end
-
-return notif_center
\ No newline at end of file
diff --git a/config/awesome/linear/widget/open-default-app/init.lua b/config/awesome/linear/widget/open-default-app/init.lua
deleted file mode 100644
index bb7ac8a7f..000000000
--- a/config/awesome/linear/widget/open-default-app/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local create_open_default_button = function(s)
- s.add_button = wibox.widget {
- {
- {
- {
- {
- image = icons.plus,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- margins = dpi(4),
- widget = wibox.container.margin
- }
-
- s.add_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(
- awful.screen.focused().selected_tag.default_app,
- {
- tag = mouse.screen.selected_tag
- }
- )
- end
- )
- )
- )
- return s.add_button
-end
-
-return create_open_default_button
diff --git a/config/awesome/linear/widget/package-updater/icons/package-up.svg b/config/awesome/linear/widget/package-updater/icons/package-up.svg
deleted file mode 100644
index 2251baaac..000000000
--- a/config/awesome/linear/widget/package-updater/icons/package-up.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/package-updater/icons/package.svg b/config/awesome/linear/widget/package-updater/icons/package.svg
deleted file mode 100644
index 7d4b2f987..000000000
--- a/config/awesome/linear/widget/package-updater/icons/package.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/package-updater/init.lua b/config/awesome/linear/widget/package-updater/init.lua
deleted file mode 100644
index 2f52244b6..000000000
--- a/config/awesome/linear/widget/package-updater/init.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local watch = awful.widget.watch
-
-local apps = require('configuration.apps')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/package-updater/icons/'
-
-local update_available = false
-local number_of_updates_available = nil
-local update_package = nil
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- widget = wibox.widget.imagebox,
- image = widget_icon_dir .. 'package.svg',
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
-
- if update_available then
- awful.spawn(apps.default.package_manager .. ' --updates', false)
-
- else
- awful.spawn(apps.default.package_manager, false)
-
- end
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
-
- if update_available then
- return update_package:gsub('\n$', '')
- else
- return 'We are up-to-date!'
- end
-
- end,
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
- )
-
- watch(
- 'pamac checkupdates',
- 60,
- function(_, stdout)
- number_of_updates_available = tonumber(stdout:match('.-\n'):match('%d*'))
- update_package = stdout
- local icon_name = nil
- if number_of_updates_available ~= nil then
- update_available = true
- icon_name = 'package-up'
- else
- update_available = false
- icon_name = 'package'
-
- end
-
- widget.icon:set_image(widget_icon_dir .. icon_name .. '.svg')
- collectgarbage('collect')
- end
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/linear/widget/ram-meter/init.lua b/config/awesome/linear/widget/ram-meter/init.lua
deleted file mode 100644
index 314518ee7..000000000
--- a/config/awesome/linear/widget/ram-meter/init.lua
+++ /dev/null
@@ -1,94 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'RAM',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.memory,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'ram_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(36),
- layout = wibox.layout.align.vertical
-}
-
-watch(
- 'bash -c "free | grep -z Mem.*Swap.*"',
- 10,
- function(_, stdout)
- local total, used, free, shared, buff_cache, available, total_swap, used_swap, free_swap =
- stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*Swap:%s*(%d+)%s*(%d+)%s*(%d+)')
- slider.ram_usage:set_value(used / total * 100)
- collectgarbage('collect')
- end
-)
-
-local ram_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return ram_meter
diff --git a/config/awesome/linear/widget/screen-recorder/icons/audio.svg b/config/awesome/linear/widget/screen-recorder/icons/audio.svg
deleted file mode 100644
index 2f8668f15..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/audio.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/screen-recorder/icons/back.svg b/config/awesome/linear/widget/screen-recorder/icons/back.svg
deleted file mode 100644
index f0e76e512..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/back.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/screen-recorder/icons/close-screen.svg b/config/awesome/linear/widget/screen-recorder/icons/close-screen.svg
deleted file mode 100644
index 3f1f88c11..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/close-screen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/screen-recorder/icons/recorder-countdown.svg b/config/awesome/linear/widget/screen-recorder/icons/recorder-countdown.svg
deleted file mode 100644
index 63134d5a8..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/recorder-countdown.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/screen-recorder/icons/recorder-off.svg b/config/awesome/linear/widget/screen-recorder/icons/recorder-off.svg
deleted file mode 100644
index 8ade140fb..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/recorder-off.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/screen-recorder/icons/recorder-on.svg b/config/awesome/linear/widget/screen-recorder/icons/recorder-on.svg
deleted file mode 100644
index 29800ca58..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/recorder-on.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/screen-recorder/icons/recording-button.svg b/config/awesome/linear/widget/screen-recorder/icons/recording-button.svg
deleted file mode 100644
index 4caa7b386..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/recording-button.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/linear/widget/screen-recorder/icons/settings.svg b/config/awesome/linear/widget/screen-recorder/icons/settings.svg
deleted file mode 100644
index 2c5a0b996..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/settings.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/screen-recorder/icons/start-recording-button.svg b/config/awesome/linear/widget/screen-recorder/icons/start-recording-button.svg
deleted file mode 100644
index 986f9dd2a..000000000
--- a/config/awesome/linear/widget/screen-recorder/icons/start-recording-button.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/screen-recorder/init.lua b/config/awesome/linear/widget/screen-recorder/init.lua
deleted file mode 100644
index 1dabee6bf..000000000
--- a/config/awesome/linear/widget/screen-recorder/init.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-local recorder_table = require('widget.screen-recorder.screen-recorder-ui')
-require('widget.screen-recorder.screen-recorder-ui-backend')
-local screen_rec_toggle_button = recorder_table.screen_rec_toggle_button
-
-local return_button = function()
- return screen_rec_toggle_button
-end
-
-return return_button
diff --git a/config/awesome/linear/widget/screen-recorder/screen-recorder-config.lua b/config/awesome/linear/widget/screen-recorder/screen-recorder-config.lua
deleted file mode 100644
index faf759368..000000000
--- a/config/awesome/linear/widget/screen-recorder/screen-recorder-config.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local user_preferences = {}
-local config = require('configuration.config')
-
--- Screen WIDTHxHEIGHT
-user_preferences.user_resolution = config.widget.screen_recorder.resolution or '1366x768'
-
--- Offset x,y
-user_preferences.user_offset = config.widget.screen_recorder.offset or '0,0'
-
--- bool true or false
-user_preferences.user_audio = config.widget.screen_recorder.audio or false
-
--- String $HOME
-user_preferences.user_save_directory = config.widget.screen_recorder.save_directory or '$(xdg-user-dir VIDEOS)/Recordings/'
-
--- String
-user_preferences.user_mic_lvl = config.widget.screen_recorder.mic_level or '20'
-
--- String
-user_preferences.user_fps = config.widget.screen_recorder.fps or '30'
-
-return user_preferences
diff --git a/config/awesome/linear/widget/screen-recorder/screen-recorder-scripts.lua b/config/awesome/linear/widget/screen-recorder/screen-recorder-scripts.lua
deleted file mode 100644
index b55ef0aee..000000000
--- a/config/awesome/linear/widget/screen-recorder/screen-recorder-scripts.lua
+++ /dev/null
@@ -1,169 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local user_config = require('widget.screen-recorder.screen-recorder-config')
-local scripts_tbl = {}
-local ffmpeg_pid = nil
-
--- Get user settings
-scripts_tbl.user_resolution = user_config.user_resolution
-scripts_tbl.user_offset = user_config.user_offset
-scripts_tbl.user_audio = user_config.user_audio
-scripts_tbl.user_dir = user_config.user_save_directory
-scripts_tbl.user_mic_lvl = user_config.user_mic_lvl
-scripts_tbl.user_fps = user_config.user_fps
-
-scripts_tbl.update_user_settings = function(res, offset, audio)
- scripts_tbl.user_resolution = res
- scripts_tbl.user_offset = offset
- scripts_tbl.user_audio = audio
-end
-
-scripts_tbl.check_settings = function()
- -- For debugging purpose only
- -- naughty.notification({
- -- message=scripts_tbl.user_resolution .. ' ' .. scripts_tbl.user_offset .. tostring(scripts_tbl.user_audio)
- -- })
-end
-
-local create_save_directory = function()
-
- local create_dir_cmd = [[
- dir="]] .. scripts_tbl.user_dir .. [["
-
- if [ ! -d "$dir" ]; then
- mkdir -p "$dir"
- fi
- ]]
-
- awful.spawn.easy_async_with_shell(
- create_dir_cmd,
- function(stdout) end
- )
-end
-
-create_save_directory()
-
-local kill_existing_recording_ffmpeg = function()
- -- Let's killall ffmpeg instance first after awesome (re)-starts if there's any
- awful.spawn.easy_async_with_shell(
- [[
- ps x | grep 'ffmpeg -video_size' | grep -v grep | awk '{print $1}' | xargs kill
- ]],
- function(stdout) end
- )
-end
-
-kill_existing_recording_ffmpeg()
-
-local turn_on_the_mic = function()
- awful.spawn.easy_async_with_shell(
- [[
- amixer set Capture cap
- amixer set Capture ]].. scripts_tbl.user_mic_lvl ..[[%
- ]],
- function() end
- )
-end
-
-local ffmpeg_stop_recording = function()
- -- Let's killall ffmpeg instance first after awesome (re)-starts if there's any
- awful.spawn.easy_async_with_shell(
- [[
- ps x | grep 'ffmpeg -video_size' | grep -v grep | awk '{print $1}' | xargs kill -2
- ]],
- function(stdout) end
- )
-end
-
-local create_notification = function(file_dir)
- local open_video = naughty.action {
- name = 'Open',
- icon_only = false,
- }
-
- local delete_video = naughty.action {
- name = 'Delete',
- icon_only = false,
- }
-
- open_video:connect_signal(
- 'invoked',
- function()
- awful.spawn('xdg-open ' .. file_dir, false)
- end
- )
-
- delete_video:connect_signal(
- 'invoked',
- function()
- awful.spawn('gio trash ' .. file_dir, false)
- end
- )
-
- naughty.notification ({
- app_name = 'Screen Recorder',
- timeout = 60,
- title = 'Recording Finished!',
- message = 'Recording can now be viewed.',
- actions = { open_video, delete_video }
- })
-end
-
-local ffmpeg_start_recording = function(audio, filename)
- local add_audio_str = ' '
-
- if audio then
- turn_on_the_mic()
- add_audio_str = '-f pulse -ac 2 -i default'
- end
-
- ffmpeg_pid = awful.spawn.easy_async_with_shell(
- [[
- file_name=]] .. filename .. [[
-
- ffmpeg -video_size ]] .. scripts_tbl.user_resolution .. [[ -framerate ]] .. scripts_tbl.user_fps .. [[ -f x11grab \
- -i :0.0+]] .. scripts_tbl.user_offset .. ' ' .. add_audio_str .. [[ -c:v libx264 -crf 20 -profile:v baseline -level 3.0 -pix_fmt yuv420p $file_name
- ]],
- function(stdout, stderr)
- if stderr and stderr:match('Invalid argument') then
- naughty.notification({
- app_name = 'Screen Recorder',
- title = 'Invalid Configuration!',
- message = 'Please, put a valid settings!',
- timeout = 60,
- urgency = 'normal'
- })
- awesome.emit_signal('widget::screen_recorder')
- return
- end
- create_notification(filename)
- end
- )
-end
-
-local create_unique_filename = function(audio)
- awful.spawn.easy_async_with_shell(
- [[
- dir="]] .. scripts_tbl.user_dir .. [["
- date=$(date '+%Y-%m-%d_%H-%M-%S')
- format=.mp4
-
- echo "${dir}${date}${format}" | tr -d '\n'
- ]],
- function(stdout)
- local filename = stdout
- ffmpeg_start_recording(audio, filename)
- end
- )
-end
-
-scripts_tbl.start_recording = function(audio_mode)
- create_save_directory()
- create_unique_filename(audio_mode)
-end
-
-scripts_tbl.stop_recording = function()
- ffmpeg_stop_recording()
-end
-
-return scripts_tbl
diff --git a/config/awesome/linear/widget/screen-recorder/screen-recorder-ui-backend.lua b/config/awesome/linear/widget/screen-recorder/screen-recorder-ui-backend.lua
deleted file mode 100644
index 2b03e3112..000000000
--- a/config/awesome/linear/widget/screen-recorder/screen-recorder-ui-backend.lua
+++ /dev/null
@@ -1,454 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/screen-recorder/icons/'
-
--- The screen-recorders scripting
-local screen_rec_backend = require('widget.screen-recorder.screen-recorder-scripts')
-
--- The screen-recorder's UI
-local screen_rec_ui = require('widget.screen-recorder.screen-recorder-ui')
-
--- User Preferences
-local sr_user_resolution = screen_rec_backend.user_resolution
-local sr_user_offset = screen_rec_backend.user_offset
-local sr_user_audio = screen_rec_backend.user_audio
-local sr_user_update = screen_rec_backend.update_user_settings
-
--- Panel UIs
-local sr_toggle_imgbox = screen_rec_ui.screen_rec_toggle_imgbox
-local sr_toggle_button = screen_rec_ui.screen_rec_toggle_button
-local sr_countdown_text = screen_rec_ui.screen_rec_countdown_txt
-local sr_main_imgbox = screen_rec_ui.screen_rec_main_imgbox
-local sr_main_button = screen_rec_ui.screen_rec_main_button
-local sr_audio_imgbox = screen_rec_ui.screen_rec_audio_imgbox
-local sr_audio_button = screen_rec_ui.screen_rec_audio_button
-local sr_settings_button = screen_rec_ui.screen_rec_settings_button
-local sr_close_button = screen_rec_ui.screen_rec_close_button
-
-
--- Settings UIs
-local sr_back_button = screen_rec_ui.screen_rec_back_button
-local sr_resolution_box = screen_rec_ui.screen_rec_res_txtbox
-local sr_offset_box = screen_rec_ui.screen_rec_offset_txtbox
-local sr_resolution_tbox = sr_resolution_box:get_children_by_id('res_tbox')[1]
-local sr_offset_tbox = sr_offset_box:get_children_by_id('offset_tbox')[1]
-
-
--- Main Scripts
-local sr_start_recording = screen_rec_backend.start_recording
-local sr_stop_recording = screen_rec_backend.stop_recording
-
--- Active Screen Recorder
-local sr_screen = nil
-
--- Active textbox
-local sr_active_tbox = nil
-
-
--- Status variables
-local status_countdown = false
-local status_recording = false
-local status_audio = sr_user_audio
-
-
--- Update UI on startup using the user config
-sr_resolution_tbox:set_markup('' .. sr_user_resolution .. "")
-sr_offset_tbox:set_markup('' .. sr_user_offset .. "")
-
-local sr_res_default_markup = sr_resolution_tbox:get_markup()
-local sr_offset_default_markup = sr_offset_tbox:get_markup()
-
-
-if status_audio then
- sr_audio_button.bg = '#EE4F84' .. '66'
-else
- sr_audio_button.bg = beautiful.groups_bg
-end
-
--- Textbox ui manipulators
-local emphasize_inactive_tbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_box.shape_border_width = dpi(0)
- sr_resolution_box.shape_border_color = beautiful.transparent
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_box.shape_border_width = dpi(0)
- sr_offset_box.shape_border_color = beautiful.transparent
- end
- sr_active_tbox = nil
-end
-
-local emphasize_active_tbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_box.border_width = dpi(1)
- sr_resolution_box.border_color = '#F2F2F2AA'
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_box.border_width = dpi(1)
- sr_offset_box.border_color = '#F2F2F2AA'
- end
-end
-
--- Delete, reset and write to the textbox
-local write_to_textbox = function(char)
- if sr_active_tbox == 'res_tbox' and (char:match('%d') or char == 'x') then
- if sr_resolution_tbox:get_markup() == sr_res_default_markup then
- sr_resolution_tbox:set_text('')
- end
- if tonumber(#sr_resolution_tbox:get_text()) <= 8 then
- sr_resolution_tbox:set_text(sr_resolution_tbox:get_text() .. char)
- end
- elseif sr_active_tbox == 'offset_tbox' and (char:match('%d') or char == ',') then
- if sr_offset_tbox:get_markup() == sr_offset_default_markup then
- sr_offset_tbox:set_text('')
- end
- sr_offset_tbox:set_text(sr_offset_tbox:get_text() .. char)
- end
-end
-
-local reset_textbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_tbox:set_markup(sr_res_default_markup)
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_tbox:set_markup(sr_offset_default_markup)
- end
- emphasize_inactive_tbox()
-end
-
--- Set audio mode
-local sr_audio_mode = function()
- if not status_recording and not status_countdown then
- if status_audio then
- status_audio = false
- sr_audio_button.bg = beautiful.groups_bg
- else
- status_audio = true
- sr_audio_button.bg = '#EE4F84' .. '66'
- end
- end
-end
-
-local delete_key = function()
- if sr_active_tbox == 'res_tbox' then
- if tonumber(#sr_resolution_tbox:get_text()) == 1 then
- reset_textbox()
- return
- end
- sr_resolution_tbox:set_text(sr_resolution_tbox:get_text():sub(1, -2))
- elseif sr_active_tbox == 'offset_tbox' then
- if tonumber(#sr_offset_tbox:get_text()) == 1 then
- reset_textbox()
- return
- end
- sr_offset_tbox:set_text(sr_offset_tbox:get_text():sub(1, -2))
- end
-end
-
-local apply_new_settings = function()
-
- -- Get the text on texbox
- sr_user_resolution = sr_resolution_tbox:get_text()
- sr_user_offset = sr_offset_tbox:get_text()
-
- -- Apply new settings
- sr_user_update(sr_user_resolution, sr_user_offset, status_audio)
-
- -- Debugger
- screen_rec_backend.check_settings()
-end
-
--- Settings Key grabber
-local settings_updater = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 'BackSpace' then
- delete_key()
- end
- end,
- keyreleased_callback = function(self, mod, key, command)
- if key == 'Return' then
- apply_new_settings()
- self:stop()
- end
-
- if key == 'Escape' then
- self:stop()
- reset_textbox()
- end
-
- if key:match('%d') or key == 'x' or key == ',' then
- write_to_textbox(key)
- end
-
- end
-}
-
--- Textboxes
-sr_resolution_tbox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- emphasize_inactive_tbox()
- sr_active_tbox = 'res_tbox'
- emphasize_active_tbox()
- settings_updater:start()
- end
- )
- )
-)
-
-sr_offset_tbox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- emphasize_inactive_tbox()
- sr_active_tbox = 'offset_tbox'
- emphasize_active_tbox()
- settings_updater:start()
- end
- )
- )
-)
-
--- UI switcher
-local sr_navigation_reset = function()
- if sr_screen then
- local recorder_panel = sr_screen:get_children_by_id('recorder_panel')[1]
- local recorder_settings = sr_screen:get_children_by_id('recorder_settings')[1]
- recorder_settings.visible = false
- recorder_panel.visible = true
- end
-end
-
-local sr_navigation = function()
- if sr_screen then
- local recorder_panel = sr_screen:get_children_by_id('recorder_panel')[1]
- local recorder_settings = sr_screen:get_children_by_id('recorder_settings')[1]
- if recorder_panel.visible then
- recorder_panel.visible = false
- recorder_settings.visible = true
- else
- recorder_settings.visible = false
- recorder_panel.visible = true
- end
- end
-end
-
-sr_settings_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- if not status_recording and not status_countdown then
- sr_navigation()
- end
- end
- )
- )
-)
-
-sr_back_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
-
- -- Save settings
- apply_new_settings()
-
- -- Reset textbox UI
- emphasize_inactive_tbox()
-
- -- Go back to UI Panel
- sr_navigation()
- end
- )
- )
-)
-
--- Close button functions and buttons
-local screen_rec_close = function()
-
- for s in screen do
- s.recorder_screen.visible = false
- end
- settings_updater:stop()
- sr_navigation_reset()
- sr_screen = nil
-end
-
-sr_close_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- screen_rec_close()
- end
- )
- )
-)
-
--- Right click to exit
-local screen_close_on_rmb = function(widget)
- widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 3,
- nil,
- function()
- screen_rec_close()
- end
- )
- )
- )
-end
-
--- Open recorder screen
-sr_toggle_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- for s in screen do
- s.recorder_screen.visible = false
- end
- sr_screen = awful.screen.focused().recorder_screen
- screen_close_on_rmb(sr_screen)
- sr_screen.visible = not sr_screen.visible
- end
- )
- )
-)
-
--- Start Recording
-local sr_recording_start = function()
- status_countdown = false
- status_recording = true
- local sr_screen = awful.screen.focused().recorder_screen
-
- -- Hide recorder screen
- sr_screen.visible = false
-
- -- Manipulate UIs
- sr_toggle_imgbox:set_image(widget_icon_dir .. 'recording-button' .. '.svg')
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-on' .. '.svg')
-
- sr_start_recording(status_audio)
-end
-
--- Stop Recording
-local sr_recording_stop = function()
- status_recording = false
- status_audio = false
-
- -- Manipulate UIs
- sr_toggle_imgbox:set_image(widget_icon_dir .. 'start-recording-button' .. '.svg')
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-off' .. '.svg')
- sr_stop_recording()
-end
-
-awesome.connect_signal(
- 'widget::screen_recorder',
- function()
- sr_recording_stop()
- end
-)
-
--- Countdown timer functions
-local countdown_timer = nil
-local counter_timer = function()
- status_countdown = true
- local seconds = 3
- countdown_timer = gears.timer.start_new(
- 1,
- function()
- if seconds == 0 then
- sr_countdown_text.opacity = 0.0
-
- -- Start recording function
- sr_recording_start()
- sr_countdown_text:emit_signal('widget::redraw_needed')
- return false
- else
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-countdown' .. '.svg')
- sr_countdown_text.opacity = 1.0
- sr_countdown_text:set_text(tostring(seconds))
- sr_countdown_text:emit_signal('widget::redraw_needed')
- end
- seconds = seconds - 1
- return true
- end
- )
-end
-
--- Stop Countdown timer
-local sr_countdown_stop = function()
- countdown_timer:stop()
- status_countdown = false
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-off' .. '.svg')
- sr_countdown_text.opacity = 0.0
- sr_countdown_text:emit_signal('widget::redraw_needed')
-end
-
-sr_audio_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- sr_audio_mode()
- end
- )
- )
-)
-
--- Main button functions and buttons
-local status_checker = function()
- if status_recording and not status_countdown then
-
- -- Stop recording
- sr_recording_stop()
- return
- elseif not status_recording and status_countdown then
-
- -- Stop timer
- sr_countdown_stop()
- return
- end
-
- -- Start counting down
- counter_timer()
-end
-
-sr_main_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- status_checker()
- end
- )
- )
-)
diff --git a/config/awesome/linear/widget/screen-recorder/screen-recorder-ui.lua b/config/awesome/linear/widget/screen-recorder/screen-recorder-ui.lua
deleted file mode 100644
index c877d8987..000000000
--- a/config/awesome/linear/widget/screen-recorder/screen-recorder-ui.lua
+++ /dev/null
@@ -1,343 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/screen-recorder/icons/'
-local record_tbl = {}
-
--- Panel UI
-record_tbl.screen_rec_toggle_imgbox = wibox.widget {
- image = widget_icon_dir .. 'start-recording-button' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_toggle_button = wibox.widget {
- {
- record_tbl.screen_rec_toggle_imgbox,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-record_tbl.screen_rec_countdown_txt = wibox.widget {
- id = 'countdown_text',
- font = 'Inter Bold 64',
- text = '4',
- align = 'center',
- valign = 'bottom',
- opacity = 0.0,
- widget = wibox.widget.textbox
-}
-
-record_tbl.screen_rec_main_imgbox = wibox.widget {
- image = widget_icon_dir .. 'recorder-off' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_main_button = wibox.widget {
- {
- {
- {
- record_tbl.screen_rec_main_imgbox,
- margins = dpi(24),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(200),
- forced_height = dpi(200),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- margins = dpi(24),
- widget = wibox.container.margin
-}
-
-record_tbl.screen_rec_audio_imgbox = wibox.widget {
- image = widget_icon_dir .. 'audio' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_audio_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_audio_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_close_imgbox = wibox.widget {
- image = widget_icon_dir .. 'close-screen' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_close_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_close_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_settings_imgbox = wibox.widget {
- image = widget_icon_dir .. 'settings' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_settings_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_settings_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_back_imgbox = wibox.widget {
- image = widget_icon_dir .. 'back' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_back_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_back_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(48),
- forced_height = dpi(48),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_back_txt = wibox.widget {
- {
- text = 'Back',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-
-}
-
-record_tbl.screen_rec_res_txt = wibox.widget {
- {
- text = 'Resolution',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-
-}
-
-record_tbl.screen_rec_res_txtbox = wibox.widget {
- {
- {
- {
- id = 'res_tbox',
- markup = '' .. '1366x768' .. "",
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_offset_txt = wibox.widget {
- {
- text = 'Offset',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-}
-
-record_tbl.screen_rec_offset_txtbox = wibox.widget {
- {
- {
- {
- id = 'offset_tbox',
- markup = '' .. '0,0' .. "",
- font = 'Inter Bold 16',
- ellipsize = 'start',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-screen.connect_signal("request::desktop_decoration", function(s)
-
- s.recorder_screen = wibox
- ({
- ontop = true,
- screen = s,
- type = 'dock',
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- })
-
- s.recorder_screen : setup {
- layout = wibox.layout.stack,
- {
- id = 'recorder_panel',
- visible = true,
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- record_tbl.screen_rec_countdown_txt,
- {
- layout = wibox.layout.align.horizontal,
- record_tbl.screen_rec_settings_button,
- record_tbl.screen_rec_main_button,
- record_tbl.screen_rec_audio_button
- },
- record_tbl.screen_rec_close_button,
- },
- nil
-
- },
- nil
- },
- {
- id = 'recorder_settings',
- visible = false,
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- forced_width = dpi(240),
- spacing = dpi(10),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- record_tbl.screen_rec_back_button,
- record_tbl.screen_rec_back_txt,
- },
- record_tbl.screen_rec_res_txt,
- record_tbl.screen_rec_res_txtbox,
- record_tbl.screen_rec_offset_txt,
- record_tbl.screen_rec_offset_txtbox
- },
- nil
-
- },
- nil
- }
- }
-
-end)
-
-return record_tbl
diff --git a/config/awesome/linear/widget/search-apps/init.lua b/config/awesome/linear/widget/search-apps/init.lua
deleted file mode 100644
index e710bb646..000000000
--- a/config/awesome/linear/widget/search-apps/init.lua
+++ /dev/null
@@ -1,48 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local widget_icon_dir = config_dir .. '/widget/search-apps/icons/'
-local apps = require('configuration.apps')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'app-launcher.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.rofi_appmenu, false)
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/linear/widget/tag-list/init.lua b/config/awesome/linear/widget/tag-list/init.lua
deleted file mode 100644
index a2a24bfa7..000000000
--- a/config/awesome/linear/widget/tag-list/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, tb, bgb, tbm, ibm, l, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(16),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- ib,
- margins = dpi(5),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- bg_clickable = clickable_container()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- -- l:add(tbm)
- bg_clickable:set_widget(l)
-
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- bgb:buttons(create_buttons(buttons, o))
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = icon
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tag_list = function(s)
- return awful.widget.taglist(
- s,
- awful.widget.taglist.filter.all,
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function(t)
- t:view_only()
- end
- ),
- awful.button(
- {modkey},
- 1,
- function(t)
- if _G.client.focus then
- _G.client.focus:move_to_tag(t)
- t:view_only()
- end
- end
- ),
- awful.button({}, 3, awful.tag.viewtoggle),
- awful.button(
- {modkey},
- 3,
- function(t)
- if _G.client.focus then
- _G.client.focus:toggle_tag(t)
- end
- end
- ),
- awful.button(
- {},
- 4,
- function(t)
- awful.tag.viewprev(t.screen)
- end
- ),
- awful.button(
- {},
- 5,
- function(t)
- awful.tag.viewnext(t.screen)
- end
- )
- ),
- {},
- list_update,
- wibox.layout.fixed.horizontal()
- )
-end
-return tag_list
diff --git a/config/awesome/linear/widget/task-list/init.lua b/config/awesome/linear/widget/task-list/init.lua
deleted file mode 100644
index 9bf921ed7..000000000
--- a/config/awesome/linear/widget/task-list/init.lua
+++ /dev/null
@@ -1,232 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local gears = require('gears')
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- Update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, cb, tb, cbm, bgb, tbm, ibm, tt, l, ll, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- tt = cache.tt
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- cb = wibox.widget {
- {
- {
- image = icons.close,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
- cb.shape = gears.shape.circle
- cbm = wibox.widget {
- -- 4, 8 ,12 ,12 -- close button
- cb,
- left = dpi(4),
- right = dpi(8),
- top = dpi(4),
- bottom = dpi(4),
- widget = wibox.container.margin
- }
- cbm:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- o:kill()
- end
- )
- )
- )
- bg_clickable = clickable_container()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(4),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- -- 12 top bottom
- ib,
- left = dpi(6),
- right = dpi(6),
- top = dpi(6),
- bottom = dpi(6),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- ll = wibox.layout.fixed.horizontal()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- l:add(tbm)
- ll:add(l)
- ll:add(cbm)
-
- bg_clickable:set_widget(ll)
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- l:buttons(create_buttons(buttons, o))
-
- -- Tooltip to display whole title, if it was truncated
- tt = awful.tooltip({
- objects = {tb},
- mode = 'outside',
- align = 'bottom',
- delay_show = 1,
- })
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm,
- tt = tt
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- -- Truncate when title is too long
- local text_only = text:match('>(.-)<')
- if (utf8.len(text_only) > 24) then
- text = text:gsub('>(.-)<', '>' .. string.sub(text_only, 1, utf8.offset(text_only,22) - 1) .. '...<')
- tt:set_text(text_only)
- tt:add_to_object(tb)
- else
- tt:remove_from_object(tb)
- end
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = gears.surface(icon)
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tasklist_buttons = awful.util.table.join(
- awful.button(
- {},
- 1,
- function(c)
- if c == client.focus then
- c.minimized = true
- else
- -- Without this, the following
- -- :isvisible() makes no sense
- c.minimized = false
- if not c:isvisible() and c.first_tag then
- c.first_tag:view_only()
- end
- -- This will also un-minimize
- -- the client, if needed
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- ),
- awful.button(
- {},
- 2,
- function(c)
- c:kill()
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.client.focus.byidx(1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.client.focus.byidx(-1)
- end
- )
-)
-
-local task_list = function(s)
- return awful.widget.tasklist(
- s,
- awful.widget.tasklist.filter.currenttags,
- tasklist_buttons,
- {},
- list_update,
- wibox.layout.fixed.horizontal()
- )
-end
-
-return task_list
diff --git a/config/awesome/linear/widget/temperature-meter/init.lua b/config/awesome/linear/widget/temperature-meter/init.lua
deleted file mode 100644
index 50f8fc3a1..000000000
--- a/config/awesome/linear/widget/temperature-meter/init.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'Temperature',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.thermometer,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'temp_status',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(36),
- layout = wibox.layout.align.vertical
-}
-
-local max_temp = 80
-
-awful.spawn.easy_async_with_shell(
- [[
- temp_path=null
- for i in /sys/class/hwmon/hwmon*/temp*_input;
- do
- temp_path="$(echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null ||
- echo $(basename ${i%_*})) $(readlink -f $i)");"
-
- label="$(echo $temp_path | awk '{print $2}')"
-
- if [ "$label" = "Package" ];
- then
- echo ${temp_path} | awk '{print $5}' | tr -d ';\n'
- exit;
- fi
- done
- ]],
- function(stdout)
- local temp_path = stdout:gsub('%\n', '')
- if temp_path == '' or not temp_path then
- temp_path = '/sys/class/thermal/thermal_zone0/temp'
- end
-
- watch(
- [[
- sh -c "cat ]] .. temp_path .. [["
- ]],
- 10,
- function(_, stdout)
- local temp = stdout:match('(%d+)')
- slider.temp_status:set_value((temp / 1000) / max_temp * 100)
- collectgarbage('collect')
- end
- )
- end
-)
-
-local temp_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return temp_meter
diff --git a/config/awesome/linear/widget/tray-toggle/icons/left-arrow.svg b/config/awesome/linear/widget/tray-toggle/icons/left-arrow.svg
deleted file mode 100644
index f0e76e512..000000000
--- a/config/awesome/linear/widget/tray-toggle/icons/left-arrow.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/tray-toggle/icons/right-arrow.svg b/config/awesome/linear/widget/tray-toggle/icons/right-arrow.svg
deleted file mode 100644
index 74464241f..000000000
--- a/config/awesome/linear/widget/tray-toggle/icons/right-arrow.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/tray-toggle/init.lua b/config/awesome/linear/widget/tray-toggle/init.lua
deleted file mode 100644
index 76af98d7f..000000000
--- a/config/awesome/linear/widget/tray-toggle/init.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/tray-toggle/icons/'
-
-local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'right-arrow' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('widget::systray:toggle')
- end
- )
- )
-)
-
--- Listen to signal
-awesome.connect_signal(
- 'widget::systray:toggle',
- function()
- if screen.primary.systray then
-
- if not screen.primary.systray.visible then
-
- widget.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'left-arrow.svg'))
- else
-
- widget.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'right-arrow.svg'))
- end
-
- screen.primary.systray.visible = not screen.primary.systray.visible
- end
- end
-)
-
--- Update icon on start-up
-if screen.primary.systray then
- if screen.primary.systray.visible then
- widget.icon:set_image(widget_icon_dir .. 'right-arrow' .. '.svg')
- end
-end
-
--- Show only the tray button in the primary screen
-return awful.widget.only_on_screen(widget_button, 'primary')
diff --git a/config/awesome/linear/widget/user-profile/init.lua b/config/awesome/linear/widget/user-profile/init.lua
deleted file mode 100644
index 87655a78c..000000000
--- a/config/awesome/linear/widget/user-profile/init.lua
+++ /dev/null
@@ -1,144 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local user_icon_dir = '/var/lib/AccountsService/icons/'
-
-title_table = {
- 'Hey, I have a message for you',
- 'Listen here you little shit!',
- 'Le\' me tell you a secret',
- 'I never lie',
- 'Message received from your boss'
-}
-
-message_table = {
- 'Let me rate your face! Oops... It looks like I can\'t compute negative numbers. You\'re ugly af, sorry',
- 'Lookin\' good today, now fuck off!',
- 'The last thing I want to do is hurt you. But it’s still on the list.',
- 'If I agreed with you we’d both be wrong.',
- 'I intend to live forever. So far, so good.',
- 'Jesus loves you, but everyone else thinks you’re an asshole.',
- 'Your baby is so ugly, you should have thrown it away and kept the stork.',
- 'If your brain was dynamite, there wouldn’t be enough to blow your hat off.',
- 'You are more disappointing than an unsalted pretzel.',
- 'Your kid is so ugly, he makes his Happy Meal cry.',
- 'Your secrets are always safe with me. I never even listen when you tell me them.',
- 'I only take you everywhere I go just so I don’t have to kiss you goodbye.',
- 'You look so pretty. Not at all gross, today.',
- 'It’s impossible to underestimate you.',
- 'I’m not insulting you, I’m describing you.',
- 'Keep rolling your eyes, you might eventually find a brain.',
- 'You bring everyone so much joy, when you leave the room.',
- 'I thought of you today. It reminded me to take out the trash.',
- 'You are the human version of period cramps.',
- 'You’re the reason God created the middle finger.'
-}
-
-local create_profile = function()
- local profile_imagebox = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'default.svg',
- widget = wibox.widget.imagebox,
- resize = true,
- forced_height = dpi(28),
- clip_shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end
- },
- layout = wibox.layout.align.horizontal
- }
-
- profile_imagebox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.single_instance('mugshot')
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- naughty.notification({
- app_name = 'FBI\'s ChatBot v69',
- title = title_table[math.random(#title_table)],
- message = message_table[math.random(#message_table)] ..
- '\n\n- xXChatBOT69Xx',
- urgency = 'normal'
- })
- end
- )
- )
- )
-
- local profile_name = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'User',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-
- local update_profile_image = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox.icon:set_image(stdout)
- else
- profile_imagebox.icon:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
- end
-
- update_profile_image()
-
- awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- local stdout = stdout:gsub('%\n', '')
- profile_name:set_markup(stdout)
- end
- )
-
- local user_profile = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- profile_name
- }
-
- return user_profile
-end
-
-return create_profile
diff --git a/config/awesome/linear/widget/volume-slider/init.lua b/config/awesome/linear/widget/volume-slider/init.lua
deleted file mode 100644
index d32d835fe..000000000
--- a/config/awesome/linear/widget/volume-slider/init.lua
+++ /dev/null
@@ -1,197 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Volume',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container,
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'volume_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local volume_slider = slider.volume_slider
-
-volume_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = volume_slider:get_value()
-
- spawn('amixer -D pulse sset Master ' ..
- volume_level .. '%',
- false
- )
-
- -- Update volume osd
- awesome.emit_signal(
- 'module::volume_osd',
- volume_level
- )
- end
-)
-
-volume_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if volume_slider:get_value() > 100 then
- volume_slider:set_value(100)
- return
- end
- volume_slider:set_value(volume_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if volume_slider:get_value() < 0 then
- volume_slider:set_value(0)
- return
- end
- volume_slider:set_value(volume_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "amixer -D pulse sget Master"]],
- function(stdout)
- local volume = string.match(stdout, '(%d?%d?%d)%%')
- volume_slider:set_value(tonumber(volume))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = volume_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- volume_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::volume',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::volume:update',
- function(value)
- volume_slider:set_value(tonumber(value))
- end
-)
-
-local volume_setting = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- forced_height = dpi(48),
- spacing = dpi(5),
- action_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- action_level
- },
- nil
- },
- slider
- }
-}
-
-return volume_setting
diff --git a/config/awesome/linear/widget/weather/icons/d_rain.svg b/config/awesome/linear/widget/weather/icons/d_rain.svg
deleted file mode 100644
index 44cacc1bb..000000000
--- a/config/awesome/linear/widget/weather/icons/d_rain.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/dbroken_clouds.svg b/config/awesome/linear/widget/weather/icons/dbroken_clouds.svg
deleted file mode 100644
index 8fa80050a..000000000
--- a/config/awesome/linear/widget/weather/icons/dbroken_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/dfew_clouds.svg b/config/awesome/linear/widget/weather/icons/dfew_clouds.svg
deleted file mode 100644
index a4f1fd380..000000000
--- a/config/awesome/linear/widget/weather/icons/dfew_clouds.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/dmist.svg b/config/awesome/linear/widget/weather/icons/dmist.svg
deleted file mode 100644
index b23f3bf05..000000000
--- a/config/awesome/linear/widget/weather/icons/dmist.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/dscattered_clouds.svg b/config/awesome/linear/widget/weather/icons/dscattered_clouds.svg
deleted file mode 100644
index 9c0ebcb26..000000000
--- a/config/awesome/linear/widget/weather/icons/dscattered_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/dshower_rain.svg b/config/awesome/linear/widget/weather/icons/dshower_rain.svg
deleted file mode 100644
index 3a8800480..000000000
--- a/config/awesome/linear/widget/weather/icons/dshower_rain.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/dthunderstorm.svg b/config/awesome/linear/widget/weather/icons/dthunderstorm.svg
deleted file mode 100644
index 10375e470..000000000
--- a/config/awesome/linear/widget/weather/icons/dthunderstorm.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/moon_icon.svg b/config/awesome/linear/widget/weather/icons/moon_icon.svg
deleted file mode 100644
index b9e5c3a7d..000000000
--- a/config/awesome/linear/widget/weather/icons/moon_icon.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/n_rain.svg b/config/awesome/linear/widget/weather/icons/n_rain.svg
deleted file mode 100644
index 3ba466aad..000000000
--- a/config/awesome/linear/widget/weather/icons/n_rain.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/nbroken_clouds.svg b/config/awesome/linear/widget/weather/icons/nbroken_clouds.svg
deleted file mode 100644
index d462c33ec..000000000
--- a/config/awesome/linear/widget/weather/icons/nbroken_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/nfew_clouds.svg b/config/awesome/linear/widget/weather/icons/nfew_clouds.svg
deleted file mode 100644
index 74575eed5..000000000
--- a/config/awesome/linear/widget/weather/icons/nfew_clouds.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/nmist.svg b/config/awesome/linear/widget/weather/icons/nmist.svg
deleted file mode 100644
index 34d0e41b2..000000000
--- a/config/awesome/linear/widget/weather/icons/nmist.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/nscattered_clouds.svg b/config/awesome/linear/widget/weather/icons/nscattered_clouds.svg
deleted file mode 100644
index 007e66b4b..000000000
--- a/config/awesome/linear/widget/weather/icons/nscattered_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/nshower_rain.svg b/config/awesome/linear/widget/weather/icons/nshower_rain.svg
deleted file mode 100644
index 50b4ebc96..000000000
--- a/config/awesome/linear/widget/weather/icons/nshower_rain.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/nthunderstorm.svg b/config/awesome/linear/widget/weather/icons/nthunderstorm.svg
deleted file mode 100644
index 73f67e5c2..000000000
--- a/config/awesome/linear/widget/weather/icons/nthunderstorm.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/refresh.svg b/config/awesome/linear/widget/weather/icons/refresh.svg
deleted file mode 100644
index 0eb9ef739..000000000
--- a/config/awesome/linear/widget/weather/icons/refresh.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/weather/icons/snow.svg b/config/awesome/linear/widget/weather/icons/snow.svg
deleted file mode 100644
index f4fcc6ab2..000000000
--- a/config/awesome/linear/widget/weather/icons/snow.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/sun_icon.svg b/config/awesome/linear/widget/weather/icons/sun_icon.svg
deleted file mode 100644
index 24ac40d07..000000000
--- a/config/awesome/linear/widget/weather/icons/sun_icon.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/linear/widget/weather/icons/sunrise.svg b/config/awesome/linear/widget/weather/icons/sunrise.svg
deleted file mode 100644
index f0e8a477a..000000000
--- a/config/awesome/linear/widget/weather/icons/sunrise.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/weather/icons/sunset.svg b/config/awesome/linear/widget/weather/icons/sunset.svg
deleted file mode 100644
index d60f574ef..000000000
--- a/config/awesome/linear/widget/weather/icons/sunset.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/weather/icons/weather-error.svg b/config/awesome/linear/widget/weather/icons/weather-error.svg
deleted file mode 100644
index afcb33190..000000000
--- a/config/awesome/linear/widget/weather/icons/weather-error.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/documents.lua b/config/awesome/linear/widget/xdg-folders/documents.lua
deleted file mode 100644
index 5906a8b0d..000000000
--- a/config/awesome/linear/widget/xdg-folders/documents.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local docu_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-documents' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local docu_button = wibox.widget {
- {
- docu_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- docu_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOCUMENTS)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {docu_button},
- mode = 'outside',
- align = 'right',
- text = 'Documents',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return docu_button
-end
-
-return create_widget
diff --git a/config/awesome/linear/widget/xdg-folders/downloads.lua b/config/awesome/linear/widget/xdg-folders/downloads.lua
deleted file mode 100644
index 02f572ba0..000000000
--- a/config/awesome/linear/widget/xdg-folders/downloads.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local dl_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-download.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local downloads_button = wibox.widget {
- {
- dl_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- downloads_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOWNLOAD)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {downloads_button},
- mode = 'outside',
- align = 'right',
- text = 'Downloads',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return downloads_button
-end
-
-return create_widget
diff --git a/config/awesome/linear/widget/xdg-folders/home.lua b/config/awesome/linear/widget/xdg-folders/home.lua
deleted file mode 100644
index 24c38209c..000000000
--- a/config/awesome/linear/widget/xdg-folders/home.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local home_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'user-home.svg',
- resize = true,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.align.horizontal
- }
-
- local home_button = wibox.widget {
- {
- home_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- home_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {home_button},
- mode = 'outside',
- align = 'right',
- text = 'Home',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return home_button
-end
-
-return create_widget
diff --git a/config/awesome/linear/widget/xdg-folders/icons/folder-documents.svg b/config/awesome/linear/widget/xdg-folders/icons/folder-documents.svg
deleted file mode 100644
index e6a53e503..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/folder-documents.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/folder-download.svg b/config/awesome/linear/widget/xdg-folders/icons/folder-download.svg
deleted file mode 100644
index 9b75134c6..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/folder-download.svg
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/folder-pictures.svg b/config/awesome/linear/widget/xdg-folders/icons/folder-pictures.svg
deleted file mode 100644
index 014b5b321..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/folder-pictures.svg
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/folder-videos.svg b/config/awesome/linear/widget/xdg-folders/icons/folder-videos.svg
deleted file mode 100644
index 50b53df84..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/folder-videos.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/no.svg b/config/awesome/linear/widget/xdg-folders/icons/no.svg
deleted file mode 100644
index 0654b8a5b..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/no.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/open-folder.svg b/config/awesome/linear/widget/xdg-folders/icons/open-folder.svg
deleted file mode 100644
index f1f131dba..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/open-folder.svg
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/user-home.svg b/config/awesome/linear/widget/xdg-folders/icons/user-home.svg
deleted file mode 100644
index b0a083961..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/user-home.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/user-trash-empty.svg b/config/awesome/linear/widget/xdg-folders/icons/user-trash-empty.svg
deleted file mode 100644
index f4d107fbe..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/user-trash-empty.svg
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/user-trash-full.svg b/config/awesome/linear/widget/xdg-folders/icons/user-trash-full.svg
deleted file mode 100644
index 2d75d2d0a..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/user-trash-full.svg
+++ /dev/null
@@ -1,979 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/icons/yes.svg b/config/awesome/linear/widget/xdg-folders/icons/yes.svg
deleted file mode 100644
index 2617c5d4f..000000000
--- a/config/awesome/linear/widget/xdg-folders/icons/yes.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/linear/widget/xdg-folders/init.lua b/config/awesome/linear/widget/xdg-folders/init.lua
deleted file mode 100644
index 1dec08244..000000000
--- a/config/awesome/linear/widget/xdg-folders/init.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local create_xdg_widgets = function()
- local separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
- }
-
- return wibox.widget {
- layout = wibox.layout.align.horizontal,
- {
- separator,
- require('widget.xdg-folders.home')(),
- require('widget.xdg-folders.documents')(),
- require('widget.xdg-folders.downloads')(),
- require('widget.xdg-folders.pictures')(),
- require('widget.xdg-folders.videos')(),
- separator,
- require('widget.xdg-folders.trash')(),
- layout = wibox.layout.fixed.horizontal,
- },
- }
-end
-
-return create_xdg_widgets
diff --git a/config/awesome/linear/widget/xdg-folders/pictures.lua b/config/awesome/linear/widget/xdg-folders/pictures.lua
deleted file mode 100644
index 2c591c2e3..000000000
--- a/config/awesome/linear/widget/xdg-folders/pictures.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local pic_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-pictures.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local pic_button = wibox.widget {
- {
- pic_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- pic_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir PICTURES)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {pic_button},
- mode = 'outside',
- align = 'right',
- text = 'Pictures',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return pic_button
-end
-
-return create_widget
diff --git a/config/awesome/linear/widget/xdg-folders/trash.lua b/config/awesome/linear/widget/xdg-folders/trash.lua
deleted file mode 100644
index 2625e5a9c..000000000
--- a/config/awesome/linear/widget/xdg-folders/trash.lua
+++ /dev/null
@@ -1,148 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local trash_widget = wibox.widget {
- {
- id = 'trash_icon',
- image = widget_icon_dir .. 'user-trash-empty.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local trash_menu = awful.menu({
- items = {
- {
- 'Open trash',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio open trash:///',
- function(stdout) end,
- 1
- )
- end,
- widget_icon_dir .. 'open-folder.svg'
- },
- {
- 'Delete forever',
- {
- {
- 'Yes',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio trash --empty',
- function(stdout)
- end,
- 1
- )
- end,
- widget_icon_dir .. 'yes.svg'
- },
- {
- 'No',
- '',
- widget_icon_dir .. 'no.svg'
- }
- },
- widget_icon_dir .. 'user-trash-empty.svg'
- },
- }
- })
-
- local trash_button = wibox.widget {
- {
- trash_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- -- Tooltip for trash_button
- trash_tooltip = awful.tooltip {
- objects = {trash_button},
- mode = 'outside',
- align = 'right',
- markup = 'Trash',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- -- Mouse event for trash_button
- trash_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn({'gio', 'open', 'trash:///'}, false)
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- trash_menu:toggle()
- trash_tooltip.visible = not trash_tooltip.visible
- end
- )
- )
- )
-
- -- Update icon on changes
- local check_trash_list = function()
- awful.spawn.easy_async_with_shell(
- 'gio list trash:/// | wc -l',
- function(stdout)
- if tonumber(stdout) > 0 then
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-full.svg')
-
- awful.spawn.easy_async_with_shell(
- 'gio list trash:///',
- function(stdout)
- trash_tooltip.markup = 'Trash contains:\n' .. stdout:gsub('\n$', '')
- end
- )
- else
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-empty.svg')
- trash_tooltip.markup = 'Trash empty'
- end
- end
- )
- end
-
- -- Check trash on awesome (re)-start
- check_trash_list()
-
- -- Kill the old process of gio monitor trash:///
- awful.spawn.easy_async_with_shell(
- 'ps x | grep \'gio monitor trash:///\' | grep -v grep | awk \'{print $1}\' | xargs kill',
- function()
- awful.spawn.with_line_callback(
- 'gio monitor trash:///',
- {
- stdout = function(_)
- check_trash_list()
- end
- }
- )
- end
- )
-
- return trash_button
-end
-
-return create_widget
diff --git a/config/awesome/linear/widget/xdg-folders/videos.lua b/config/awesome/linear/widget/xdg-folders/videos.lua
deleted file mode 100644
index 5c5408882..000000000
--- a/config/awesome/linear/widget/xdg-folders/videos.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local vid_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-videos.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local videos_button = wibox.widget {
- {
- vid_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- videos_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir VIDEOS)')
- end
- )
- )
- )
-
- awful.tooltip
- {
- objects = {videos_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- return 'Videos'
- end,
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- return videos_button
-end
-
-return create_widget
diff --git a/config/awesome/floppy/module/auto-start.lua b/config/awesome/module/auto-start.lua
similarity index 100%
rename from config/awesome/floppy/module/auto-start.lua
rename to config/awesome/module/auto-start.lua
diff --git a/config/awesome/floppy/module/brightness-osd.lua b/config/awesome/module/brightness-osd.lua
similarity index 100%
rename from config/awesome/floppy/module/brightness-osd.lua
rename to config/awesome/module/brightness-osd.lua
diff --git a/config/awesome/module/directories.lua b/config/awesome/module/directories.lua
new file mode 100644
index 000000000..132336952
--- /dev/null
+++ b/config/awesome/module/directories.lua
@@ -0,0 +1,16 @@
+local filesystem = require("gears.filesystem")
+local Path = require("module.path")
+local gears = require("gears")
+
+local cfg, _ = filesystem.get_configuration_dir():gsub("/$", "")
+local c = Path:new(cfg)
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_dir = config_dir .. "widget/"
+
+---@alias folders "widget" | "config"
+---@type table
+local dirs = {
+ config = config_dir,
+ widget = widget_dir,
+}
+return dirs
diff --git a/config/awesome/module/dynamic-wallpaper.lua b/config/awesome/module/dynamic-wallpaper.lua
new file mode 100755
index 000000000..c57a1e7d8
--- /dev/null
+++ b/config/awesome/module/dynamic-wallpaper.lua
@@ -0,0 +1,363 @@
+----------------------------------------------------------------------------
+--- Wallpaper changer module
+--
+-- @author Gerome Matilla <gerome.matilla07@gmail.com>
+-- @copyright 2019 Gerome Matilla
+-- @module wallchange
+--
+--- Nevermind this. Do what you want.
+----------------------------------------------------------------------------
+
+-- This module changes wallpaper based on declared time
+-- It checks the difference between the current time and the next scheduled time
+-- Then convert it to seconds to set it as a timeout value
+
+-- Limitations:
+-- Timeout paused when laptop/pc is suspended or in sleep mode, and there's probably some bugs too so whatever
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local filesystem = gears.filesystem
+local config = require("configuration.config")
+local directories = require("theme.directories")
+
+-- ========================================
+-- Configuration
+-- Change your preference here
+-- ========================================
+
+local wall_config = {
+ -- Wallpaper directory. The default is:
+ -- local wall_config.wall_dir = os.getenv('HOME') .. 'Pictures/Wallpapers/'
+ wall_dir = directories.wallpapers,
+
+ -- If there's a picture format that awesome accepts and i missed
+ -- (which i probably did) feel free to add it right here
+ valid_picture_formats = config.module.dynamic_wallpaper.valid_picture_formats or { "jpg", "png", "jpeg" },
+
+ -- Table mapping schedule to wallpaper filename
+ wallpaper_schedule = config.module.dynamic_wallpaper.wallpaper_schedule or {
+ ["00:00:00"] = "midnight-wallpaper.jpg",
+ ["06:22:00"] = "morning-wallpaper.jpg",
+ ["12:00:00"] = "noon-wallpaper.jpg",
+ ["17:58:00"] = "night-wallpaper.jpg",
+ },
+
+ -- Don't stretch wallpaper on multihead setups if true
+ stretch = config.module.dynamic_wallpaper.stretch or false,
+}
+
+-- ========================================
+-- Processes
+-- Don't touch it if it's working
+-- ========================================
+
+-- Get current time
+local current_time = function()
+ return os.date("%H:%M:%S")
+end
+
+-- Countdown variable
+-- In seconds
+local the_countdown = nil
+
+-- Parse seconds to HH:MM:SS
+local function parse_to_time(seconds)
+ -- DST ruined me :(
+ --return os.date("%H:%M:%S", seconds)
+
+ local function format(str)
+ while #str < 2 do
+ str = "0" .. str
+ end
+
+ return str
+ end
+
+ local function convert(num)
+ return format(tostring(num))
+ end
+
+ local hours = convert(math.floor(seconds / 3600))
+ seconds = seconds - (hours * 3600)
+
+ local minutes = convert(math.floor(seconds / 60))
+ seconds = seconds - (minutes * 60)
+
+ local seconds = convert(math.floor(seconds))
+
+ return (hours .. ":" .. minutes .. ":" .. seconds)
+end
+
+-- Parse HH:MM:SS to seconds
+local parse_to_seconds = function(time)
+ -- Convert HH in HH:MM:SS
+ local hour_sec = tonumber(string.sub(time, 1, 2)) * 3600
+
+ -- Convert MM in HH:MM:SS
+ local min_sec = tonumber(string.sub(time, 4, 5)) * 60
+
+ -- Get SS in HH:MM:SS
+ local get_sec = tonumber(string.sub(time, 7, 8))
+
+ -- Return computed seconds
+ return (hour_sec + min_sec + get_sec)
+end
+
+-- Get time difference
+local time_diff = function(future, past)
+ local diff = parse_to_seconds(future) - parse_to_seconds(past)
+ if diff < 0 then
+ diff = diff + (24 * 3600) --If time difference is negative, the future is meant for tomorrow
+ end
+ return diff
+end
+
+-- Returns a table containing all file paths in a directory
+local function get_dir_contents(dir)
+ -- Command to give list of files in directory
+ local dir_explore = "find " .. dir .. ' -printf "%f\\n"'
+ local lines = io.popen(dir_explore):lines() --Done synchronously because we literally can't continue without files
+ local files = {}
+ for line in lines do
+ table.insert(files, line)
+ end
+ return files
+end
+
+-- Returns a table of all the files that were one of the valid file formats
+local function filter_files_by_format(files, valid_file_formats)
+ local valid_files = {}
+ for _, file in ipairs(files) do
+ for _, format in ipairs(valid_file_formats) do
+ if string.match(file, ".+%." .. format) ~= nil then
+ table.insert(valid_files, file)
+ break --No need to check other formats
+ end
+ end
+ end
+
+ return valid_files
+end
+
+-- Returns a table of files that contained any of the keywords, in the same order as the words themselves
+local function find_files_containing_keywords(files, keywords)
+ local found_files = {}
+
+ for _, word in ipairs(keywords) do --Preserves keyword order inherently, conveniently
+ for _, file in ipairs(files) do
+ -- Check if file is word, contains word at beginning or contains word between 2 non-alphanumeric characters
+ if
+ file == word
+ or string.find(file, "^" .. word .. "[^%a]")
+ or string.find(file, "[^%a]" .. word .. "[^%a]")
+ then
+ found_files[word] = file
+ break --Only return 1 file per word
+ end
+ end
+ end
+
+ return found_files
+end
+
+-- Turn an ordered list of files into a scheduled list of files
+local function auto_schedule(wall_list)
+ local sched = {}
+ for index, file in ipairs(wall_list) do
+ local auto_time = parse_to_time(parse_to_seconds("24:00:00") * (index - 1) / #wall_list)
+ sched[auto_time] = file
+ end
+
+ return sched
+end
+
+-- Reformat whatever schedule was specified into an actual schedule
+if #wall_config.wallpaper_schedule == 0 then
+ local count = 0
+ -- Determine if empty or if manual schedule
+ for k, v in pairs(wall_config.wallpaper_schedule) do
+ count = count + 1
+ end
+
+ if count == 0 then --Schedule is actually empty
+ -- Get all pictures
+ local pictures =
+ filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
+
+ --Sort pictures as sanely as possible
+ local function order_pictures(a, b) --Attempts to mimic default sort but numbers aren't compared as strings
+ if tonumber(a) ~= nil and tonumber(b) ~= nil then
+ return tonumber(a) < tonumber(b)
+ else
+ return a < b
+ end
+ end
+ table.sort(pictures, order_pictures)
+
+ wall_config.wallpaper_schedule = auto_schedule(pictures)
+ else --Schedule is manually timed
+ -- Get times as list
+ local ordered_times = {}
+ for time, _ in pairs(wall_config.wallpaper_schedule) do
+ table.insert(ordered_times, time)
+ end
+
+ -- Sort times using seconds as comparison
+ local function order_time_asc(a, b)
+ return parse_to_seconds(a) < parse_to_seconds(b)
+ end
+ table.sort(ordered_times, order_time_asc)
+
+ -- Get ordered list of keywords from ordered times
+ local keywords = {}
+ for index, time in ipairs(ordered_times) do
+ keywords[index] = wall_config.wallpaper_schedule[time]
+ end
+
+ -- Get any pictures that match keywords
+ local pictures =
+ filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
+ pictures = find_files_containing_keywords(pictures, keywords)
+
+ -- Replace keywords with files
+ for index, time in ipairs(ordered_times) do
+ local word = wall_config.wallpaper_schedule[time]
+ if pictures[word] ~= nil then
+ wall_config.wallpaper_schedule[time] = pictures[word]
+ else --To avoid crashes, we'll remove entries with invalid keywords
+ wall_config.wallpaper_schedule[time] = nil
+ end
+ end
+ end
+else --Schedule is list of keywords
+ local keywords = wall_config.wallpaper_schedule
+
+ -- Get any pictures that match keywords
+ local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
+ pictures = find_files_containing_keywords(pictures, keywords)
+
+ -- Order files by keyword (if a file was found for the keyword)
+ local ordered_pictures = {}
+ for _, word in ipairs(keywords) do
+ local file = pictures[word]
+ if file ~= nil then
+ table.insert(ordered_pictures, file)
+ end
+ end
+
+ wall_config.wallpaper_schedule = auto_schedule(ordered_pictures)
+end
+
+-- Set wallpaper
+local set_wallpaper = function(path)
+ if wall_config.stretch then
+ for s in screen do
+ -- Update wallpaper based on the data in the array
+ gears.wallpaper.maximized(path, s)
+ end
+ else
+ -- Update wallpaper based on the data in the array
+ gears.wallpaper.maximized(path)
+ end
+end
+
+-- Update wallpaper (used by the manage_timer function)
+-- I think the gears.wallpaper.maximized is too fast or being ran asynchronously
+-- So the wallpaper is not being updated on awesome (re)start without this timer
+-- We need some delay.
+-- Hey it's working, so whatever
+local update_wallpaper = function(wall_name)
+ local wall_dir = wall_config.wall_dir .. wall_name
+ set_wallpaper(wall_dir)
+
+ -- Overwrite the default wallpaper
+ -- This is important in case we add an extra monitor
+ beautiful.wallpaper = wall_dir
+end
+
+-- Updates variables
+local manage_timer = function()
+ -- Get current time
+ local time_now = parse_to_seconds(current_time())
+
+ local previous_time = "" --Scheduled time that should activate now
+ local next_time = "" --Time that should activate next
+
+ local first_time = "24:00:00" --First scheduled time registered (to be found)
+ local last_time = "00:00:00" --Last scheduled time registered (to be found)
+
+ -- Find previous_time
+ for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
+ local parsed_time = parse_to_seconds(time)
+ if previous_time == "" or parsed_time > parse_to_seconds(previous_time) then
+ if parsed_time <= time_now then
+ previous_time = time
+ end
+ end
+
+ if parsed_time > parse_to_seconds(last_time) then
+ last_time = time
+ end
+ end
+
+ -- Previous time being blank = no scheduled time today. Therefore
+ -- the last time was yesterday's latest time
+ if previous_time == "" then
+ previous_time = last_time
+ end
+
+ --Find next_time
+ for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
+ local parsed_time = parse_to_seconds(time)
+ if next_time == "" or parsed_time < parse_to_seconds(next_time) then
+ if parsed_time > time_now then
+ next_time = time
+ end
+ end
+
+ if parsed_time < parse_to_seconds(first_time) then
+ first_time = time
+ end
+ end
+
+ -- Next time being blank means that there is no scheduled times left for
+ -- the current day. So next scheduled time is tomorrow's first time
+ if next_time == "" then
+ next_time = first_time
+ end
+
+ -- Update Wallpaper
+ update_wallpaper(wall_config.wallpaper_schedule[previous_time])
+
+ -- Get the time difference to set as timeout for the wall_updater timer below
+ the_countdown = time_diff(next_time, current_time())
+end
+
+-- Update values at startup
+manage_timer()
+
+local wall_updater = gears.timer({
+ -- The timeout is the difference of current time and the scheduled time we set above.
+ timeout = the_countdown,
+ autostart = true,
+ call_now = true,
+ callback = function()
+ -- Emit signal to update wallpaper
+ awesome.emit_signal("module::change_wallpaper")
+ end,
+})
+
+-- Update wallpaper here and update the timeout for the next schedule
+awesome.connect_signal("module::change_wallpaper", function()
+ --set_wallpaper(wall_dir .. wall_data[2])
+
+ -- Update values for the next specified schedule
+ manage_timer()
+
+ -- Update timer timeout for the next specified schedule
+ wall_updater.timeout = the_countdown
+
+ -- Restart timer
+ wall_updater:again()
+end)
diff --git a/config/awesome/module/exit-screen.lua b/config/awesome/module/exit-screen.lua
new file mode 100644
index 000000000..ccf052035
--- /dev/null
+++ b/config/awesome/module/exit-screen.lua
@@ -0,0 +1,341 @@
+local awful = require("awful")
+local gears = require("gears")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local filesystem = gears.filesystem
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local apps = require("configuration.apps")
+local text_with_container = require("widget.shared.components.text-with-container")
+local clickable_container = require("widget.clickable-container")
+local config_dir = filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "configuration/user-profile/"
+---@alias exit_commands "shutdown"| "reboot"| "suspend"| "logout"| "lock" | "exit"
+---@type table
+local hot_keys = {
+ sleep = "s",
+ logout = "e",
+ lock = "l",
+ shutdown = "p",
+ restart = "r",
+ exit = { "Escape", "q", "x" },
+}
+
+local msg_table = {
+ "See you later, alligator!",
+ "After a while, crocodile.",
+ "Stay out of trouble.",
+ "I’m out of here.",
+ "Yamete, onii-chan~. UwU",
+ "Okay...bye, fry guy!",
+ "Peace out!",
+ "Peace out, bitch!",
+ "Gotta get going.",
+ "Out to the door, dinosaur.",
+ "Don't forget to come back!",
+ "Smell ya later!",
+ "In a while, crocodile.",
+ "Adios, amigo.",
+ "Begone!",
+ "Arrivederci.",
+ "Never look back!",
+ "So long, sucker!",
+ "Au revoir!",
+ "Later, skater!",
+ "That'll do pig. That'll do.",
+ "Happy trails!",
+ "Smell ya later!",
+ "See you soon, baboon!",
+ "Bye Felicia!",
+ "Sayonara!",
+ "Ciao!",
+ "Well.... bye.",
+ "Delete your browser history!",
+ "See you, Space Cowboy!",
+ "Change da world. My final message. Goodbye.",
+ "Find out on the next episode of Dragonball Z...",
+ "Choose wisely!",
+}
+
+local greeter_message = wibox.widget({
+ markup = "Choose wisely!",
+ font = "Inter UltraLight 48",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+local profile_name = wibox.widget({
+ markup = "user@hostname",
+ font = "Inter Bold 12",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+local profile_imagebox = wibox.widget({
+ image = widget_icon_dir .. "default.svg",
+ resize = true,
+ forced_height = dpi(140),
+ clip_shape = gears.shape.circle,
+ widget = wibox.widget.imagebox,
+})
+
+local update_profile_pic = function()
+ awful.spawn.easy_async_with_shell(apps.utils.update_profile, function(stdout)
+ stdout = stdout:gsub("%\n", "")
+ if not stdout:match("default") then
+ profile_imagebox:set_image(stdout)
+ else
+ profile_imagebox:set_image(widget_icon_dir .. "default.svg")
+ end
+ profile_imagebox:emit_signal("widget::redraw_needed")
+ end)
+end
+update_profile_pic()
+local update_user_name = function()
+ awful.spawn.easy_async_with_shell(
+ [[
+ fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
+ if [ -z "$fullname" ];
+ then
+ printf "$(whoami)@$(hostname)"
+ else
+ printf "$fullname"
+ fi
+ ]],
+ function(stdout)
+ stdout = stdout:gsub("%\n", "")
+ local first_name = stdout:match("(.*)@") or stdout:match("(.-)%s")
+ if not first_name then
+ return
+ end
+ first_name = first_name:sub(1, 1):upper() .. first_name:sub(2)
+ profile_name:set_markup(stdout)
+ profile_name:emit_signal("widget::redraw_needed")
+ end
+ )
+end
+
+update_user_name()
+
+local update_greeter_msg = function()
+ greeter_message:set_markup(msg_table[math.random(#msg_table)])
+ greeter_message:emit_signal("widget::redraw_needed")
+end
+
+update_greeter_msg()
+
+local build_button = function(name, icon, callback)
+ local label = wibox.widget({
+ text = name,
+ font = "Inter Regular 10",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ })
+
+ local button = wibox.widget({
+ {
+ {
+ {
+ {
+ image = icon,
+ widget = wibox.widget.imagebox,
+ },
+ margins = dpi(16),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.groups_bg,
+ widget = wibox.container.background,
+ },
+ shape = gears.shape.rounded_rect,
+ forced_width = dpi(90),
+ forced_height = dpi(90),
+ widget = clickable_container,
+ },
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin,
+ })
+ local name_lc = string.lower(name)
+ local hotkey_box = text_with_container:new(hot_keys[name_lc], _)
+
+ local exit_screen_item = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ button,
+ label,
+ hotkey_box,
+ })
+
+ exit_screen_item:connect_signal("button::release", function()
+ callback()
+ end)
+ return exit_screen_item
+end
+
+local suspend_command = function()
+ awesome.emit_signal("module::exit_screen:hide")
+ awful.spawn.with_shell(apps.default.lock .. " & systemctl suspend")
+end
+
+local logout_command = function()
+ awesome.quit()
+end
+
+local lock_command = function()
+ awesome.emit_signal("module::exit_screen:hide")
+ awful.spawn.with_shell(apps.default.lock)
+end
+
+local poweroff_command = function()
+ awful.spawn.with_shell("poweroff")
+ awesome.emit_signal("module::exit_screen:hide")
+end
+
+local reboot_command = function()
+ awful.spawn.with_shell("reboot")
+ awesome.emit_signal("module::exit_screen:hide")
+end
+
+local poweroff = build_button("Shutdown", icons.power, poweroff_command)
+local reboot = build_button("Restart", icons.restart, reboot_command)
+local suspend = build_button("Sleep", icons.sleep, suspend_command)
+local logout = build_button("Logout", icons.logout, logout_command)
+local lock = build_button("Lock", icons.lock, lock_command)
+
+local create_exit_screen = function(s)
+ s.exit_screen = wibox({
+ screen = s,
+ type = "splash",
+ visible = false,
+ ontop = true,
+ bg = beautiful.background,
+ fg = beautiful.fg_normal,
+ height = s.geometry.height,
+ width = s.geometry.width,
+ x = s.geometry.x,
+ y = s.geometry.y,
+ })
+
+ s.exit_screen:buttons(gears.table.join(
+ awful.button({}, 2, function()
+ awesome.emit_signal("module::exit_screen:hide")
+ end),
+ awful.button({}, 3, function()
+ awesome.emit_signal("module::exit_screen:hide")
+ end)
+ ))
+
+ s.exit_screen:setup({
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.align.vertical,
+ {
+ nil,
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ nil,
+ profile_imagebox,
+ nil,
+ },
+ nil,
+ },
+ profile_name,
+ },
+ nil,
+ expand = "none",
+ layout = wibox.layout.align.horizontal,
+ },
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ nil,
+ {
+ widget = wibox.container.margin,
+ margins = dpi(15),
+ greeter_message,
+ },
+ nil,
+ },
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ nil,
+ {
+ {
+ {
+ poweroff,
+ reboot,
+ suspend,
+ logout,
+ lock,
+ layout = wibox.layout.fixed.horizontal,
+ },
+ spacing = dpi(30),
+ layout = wibox.layout.fixed.vertical,
+ },
+ widget = wibox.container.margin,
+ margins = dpi(15),
+ },
+ nil,
+ },
+ },
+ nil,
+ })
+end
+
+screen.connect_signal("request::desktop_decoration", function(s)
+ create_exit_screen(s)
+end)
+
+screen.connect_signal("removed", function(s)
+ create_exit_screen(s)
+end)
+
+local exit_screen_grabber = awful.keygrabber({
+ auto_start = true,
+ stop_event = "release",
+ keypressed_callback = function(self, mod, key, command)
+ if key == hot_keys.sleep then
+ suspend_command()
+ elseif key == hot_keys.logout then
+ logout_command()
+ elseif key == hot_keys.lock then
+ lock_command()
+ elseif key == hot_keys.shutdown then
+ poweroff_command()
+ elseif key == hot_keys.restart then
+ reboot_command()
+ elseif hot_keys.exit[key] then
+ awesome.emit_signal("module::exit_screen:hide")
+ end
+ end,
+})
+
+awesome.connect_signal("module::exit_screen:show", function()
+ for s in screen do
+ s.exit_screen.visible = false
+ end
+ awful.screen.focused().exit_screen.visible = true
+ exit_screen_grabber:start()
+end)
+
+awesome.connect_signal("module::exit_screen:hide", function()
+ update_greeter_msg()
+ exit_screen_grabber:stop()
+ for s in screen do
+ s.exit_screen.visible = false
+ end
+end)
diff --git a/config/awesome/module/get-workspace-dir.lua b/config/awesome/module/get-workspace-dir.lua
new file mode 100644
index 000000000..a9973b3f7
--- /dev/null
+++ b/config/awesome/module/get-workspace-dir.lua
@@ -0,0 +1,28 @@
+local awful = require("awful")
+local filesystem = require("gears.filesystem")
+local Path = require("module.path")
+local relative_config_dir = filesystem.get_configuration_dir()
+-- spawn a terminal and run a command
+local config_dir_path = ""
+function coroutinize(f, ...)
+ local co = coroutine.create(f)
+ local function exec(...)
+ local ok, data = coroutine.resume(co, ...)
+ if not ok then
+ error(debug.traceback(co, data))
+ end
+ if coroutine.status(co) ~= "dead" then
+ data(exec)
+ end
+ end
+ exec(...)
+end
+function set_WS_dir()
+ local res = coroutine.yield(function(resolve)
+ awful.spawn.easy_async_with_shell("realpath " .. relative_config_dir, resolve)
+ end)
+ print("config_dir_path: " .. res)
+end
+coroutinize(set_WS_dir)
+print("cc", config_dir_path)
+-- return Path:new(nil, { config_dir_path })
diff --git a/config/awesome/floppy/module/lockscreen.lua b/config/awesome/module/lockscreen.lua
similarity index 100%
rename from config/awesome/floppy/module/lockscreen.lua
rename to config/awesome/module/lockscreen.lua
diff --git a/config/awesome/floppy/module/menu.lua b/config/awesome/module/menu.lua
similarity index 100%
rename from config/awesome/floppy/module/menu.lua
rename to config/awesome/module/menu.lua
diff --git a/config/awesome/floppy/module/notifications.lua b/config/awesome/module/notifications.lua
similarity index 100%
rename from config/awesome/floppy/module/notifications.lua
rename to config/awesome/module/notifications.lua
diff --git a/config/awesome/module/path.lua b/config/awesome/module/path.lua
new file mode 100644
index 000000000..9246d2bfe
--- /dev/null
+++ b/config/awesome/module/path.lua
@@ -0,0 +1,55 @@
+local gtable = require("gears.table")
+---sanitizing path so it doesn.t
+local check_for_delimeters = function(folders)
+ for _, path in ipairs(folders) do
+ if path:match("/$") then
+ error("Path:" .. path .. " has a trailing backslash")
+ end
+ -- $$$$local last_char = path:sub(-1)
+ -- if last_char == "/" then
+ -- error("Path:" .. path .. " has a trailing backslash")
+ -- end
+ end
+ return folders
+end
+--- path class for easier path manipulation
+--- @class Path
+--- @field path table
+local Path = { path = {} }
+--- insert path in ( "path1", "path2", "path3" ) format
+---@param ... string
+---@return Path
+function Path:new(...)
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ o.path = { ... }
+ pcall(check_for_delimeters(o.path))
+ return o
+end
+
+function Path:__add(other)
+ return Path:new(table.unpack(gtable.join(self.path, other.path)))
+end
+--- @param ... string
+function Path:join(...)
+ -- self.path = gtable.join(self.path, { ... })
+ local new_table = gtable.join(self.path, { ... })
+ return Path:new(table.unpack(new_table))
+end
+
+---@param delimeter "." | "/"| nil
+function Path:__call(delimeter)
+ delimeter = delimeter or "/"
+ local path = table.concat(self.path, delimeter) .. delimeter
+ return path
+end
+
+--- @return string
+function Path:__tostring()
+ local delimeter = "/"
+ local path = table.concat(self.path, delimeter) .. delimeter
+ return path
+end
+
+return Path
diff --git a/config/awesome/floppy/module/quake-terminal.lua b/config/awesome/module/quake-terminal.lua
similarity index 100%
rename from config/awesome/floppy/module/quake-terminal.lua
rename to config/awesome/module/quake-terminal.lua
diff --git a/config/awesome/module/titlebar.lua b/config/awesome/module/titlebar.lua
new file mode 100644
index 000000000..7709f4db0
--- /dev/null
+++ b/config/awesome/module/titlebar.lua
@@ -0,0 +1,276 @@
+local awful = require('awful')
+local gears = require('gears')
+local beautiful = require('beautiful')
+local wibox = require('wibox')
+local dpi = beautiful.xresources.apply_dpi
+awful.titlebar.enable_tooltip = true
+awful.titlebar.fallback_name = 'Client'
+
+local double_click_event_handler = function(double_click_event)
+ if double_click_timer then
+ double_click_timer:stop()
+ double_click_timer = nil
+ double_click_event()
+ return
+ end
+ double_click_timer = gears.timer.start_new(
+ 0.20,
+ function()
+ double_click_timer = nil
+ return false
+ end
+ )
+end
+
+local create_click_events = function(c)
+ -- Titlebar button/click events
+ local buttons = gears.table.join(
+ awful.button(
+ {},
+ 1,
+ function()
+ double_click_event_handler(function()
+ if c.floating then
+ c.floating = false
+ return
+ end
+ c.maximized = not c.maximized
+ c:raise()
+ return
+ end)
+ c:activate { context = 'titlebar', action = 'mouse_move' }
+ end
+ ),
+ awful.button(
+ {},
+ 3,
+ function()
+ c:activate { context = 'titlebar', action = 'mouse_resize' }
+ end
+ )
+ )
+ return buttons
+end
+
+local create_vertical_bar = function(c, pos, bg, size)
+
+ -- Check if passed position is valid
+ if (pos == 'top' or pos == 'bottom') then
+ pos = 'left'
+ bg = '#FF00FF'
+ end
+
+ awful.titlebar(c, { position = pos, bg = bg, size = size }):setup {
+ {
+ {
+ awful.titlebar.widget.closebutton(c),
+ awful.titlebar.widget.maximizedbutton(c),
+ awful.titlebar.widget.minimizebutton(c),
+ spacing = dpi(7),
+ layout = wibox.layout.fixed.vertical
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ {
+ buttons = create_click_events(c),
+ layout = wibox.layout.flex.vertical
+ },
+ {
+ {
+ awful.titlebar.widget.ontopbutton(c),
+ awful.titlebar.widget.floatingbutton(c),
+ spacing = dpi(7),
+ layout = wibox.layout.fixed.vertical
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ layout = wibox.layout.align.vertical
+ }
+end
+
+local create_horizontal_bar = function(c, pos, bg, size)
+
+ -- Check if passed position is valid
+ if (pos == 'left' or pos == 'right') then
+ pos = 'top'
+ bg = '#FF00FF'
+ end
+
+ awful.titlebar(c, { position = pos, bg = bg, size = size }):setup {
+ {
+ {
+ awful.titlebar.widget.closebutton(c),
+ awful.titlebar.widget.maximizedbutton(c),
+ awful.titlebar.widget.minimizebutton(c),
+ spacing = dpi(7),
+ layout = wibox.layout.fixed.horizontal
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ {
+ buttons = create_click_events(c),
+ layout = wibox.layout.flex.horizontal
+ },
+ {
+ {
+ awful.titlebar.widget.ontopbutton(c),
+ awful.titlebar.widget.floatingbutton(c),
+ spacing = dpi(7),
+ layout = wibox.layout.fixed.horizontal
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ layout = wibox.layout.align.horizontal
+ }
+end
+
+local create_vertical_bar_dialog = function(c, pos, bg, size)
+
+ -- Check if passed position is valid
+ if (pos == 'top' or pos == 'bottom') then
+ pos = 'left'
+ bg = '#FF00FF'
+ end
+
+ awful.titlebar(c, { position = pos, bg = bg, size = size }):setup {
+ {
+ {
+ awful.titlebar.widget.closebutton(c),
+ awful.titlebar.widget.minimizebutton(c),
+ awful.titlebar.widget.ontopbutton(c),
+ spacing = dpi(7),
+ layout = wibox.layout.fixed.vertical
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ {
+ buttons = create_click_events(c),
+ layout = wibox.layout.flex.vertical
+ },
+ nil,
+ layout = wibox.layout.align.vertical
+ }
+end
+
+local create_horizontal_bar_dialog = function(c, pos, bg, size)
+
+ -- Check if passed position is valid
+ if (pos == 'left' or pos == 'right') then
+ pos = 'top'
+ bg = '#FF00FF'
+ end
+
+ awful.titlebar(c, { position = pos, bg = bg, size = size }):setup {
+ {
+ {
+ awful.titlebar.widget.closebutton(c),
+ awful.titlebar.widget.ontopbutton(c),
+ awful.titlebar.widget.minimizebutton(c),
+ spacing = dpi(7),
+ layout = wibox.layout.fixed.horizontal
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ {
+ buttons = create_click_events(c),
+ layout = wibox.layout.flex.horizontal
+ },
+ nil,
+ layout = wibox.layout.align.horizontal
+ }
+end
+
+client.connect_signal(
+ 'request::titlebars',
+ function(c)
+ -- Customize here
+ -- if c.type == 'normal' then
+
+ -- if c.class == 'kitty' then
+ -- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+
+ -- elseif c.class == 'firefox' then
+ -- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
+
+ -- elseif c.class == 'XTerm' or c.class == 'UXTerm' then
+ -- create_horizontal_bar(c, 'top',
+ -- beautiful.xresources.get_current_theme().background, beautiful.titlebar_size)
+
+ -- elseif c.class == 'ark' or c.class == 'dolphin' then
+ -- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+
+ -- elseif c.instance == 'transmission-qt' then
+ -- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+
+ -- elseif c.class == 'Gimp-2.10' or c.class == 'Inkscape' then
+ -- create_vertical_bar(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'Com.github.johnfactotum.Foliate' then
+ -- create_vertical_bar(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'Arandr' then
+ -- create_vertical_bar(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'Ettercap' then
+ -- create_vertical_bar(c, 'left',
+ -- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'Google-chrome' or c.class == 'Chromium' then
+ -- create_vertical_bar(c, 'left',
+ -- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'TelegramDesktop' then
+ -- create_vertical_bar(c, 'left', '#17212b', beautiful.titlebar_size)
+
+ -- elseif c.class == 'Kvantum Manager' then
+ -- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+
+ -- elseif c.class == 'qt5ct' then
+ -- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+
+ -- elseif c.class == 'Nemo' then
+ -- create_horizontal_bar(c, 'top',
+ -- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
+ -- else
+ -- create_horizontal_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
+ -- end
+
+ -- elseif c.type == 'dialog' then
+
+ -- if c.role == 'GtkFileChooserDialog' then
+ -- create_vertical_bar_dialog(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'firefox' then
+ -- create_vertical_bar_dialog(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'Gimp-2.10' then
+ -- create_vertical_bar_dialog(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- elseif c.class == 'Arandr' then
+ -- create_vertical_bar(c, 'left',
+ -- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
+
+ -- else
+ -- create_horizontal_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+ -- end
+
+ -- elseif c.type == 'modal' then
+ -- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
+
+ -- else
+ create_horizontal_bar(c, 'top', beautiful.background, beautiful.titlebar_size)
+ -- end
+ end
+)
diff --git a/config/awesome/floppy/module/volume-osd.lua b/config/awesome/module/volume-osd.lua
similarity index 100%
rename from config/awesome/floppy/module/volume-osd.lua
rename to config/awesome/module/volume-osd.lua
diff --git a/config/awesome/rc.lua b/config/awesome/rc.lua
new file mode 100644
index 000000000..070f2262f
--- /dev/null
+++ b/config/awesome/rc.lua
@@ -0,0 +1,76 @@
+-- Banner generated using `toilet -f pagga AwesomeWM
+-- TODO localize
+local setter = require("widget.theme-setter")
+--- @alias themeNames "linear"| "gnawesome" | "surreal" | "floppy"
+---@type themeNames
+THEME = setter:get()
+print(THEME)
+
+local gears = require("gears")
+local beautiful = require("beautiful")
+local awful = require("awful")
+require("awful.autofocus")
+
+-- ░█▀▀░█░█░█▀▀░█░░░█░░
+-- ░▀▀█░█▀█░█▀▀░█░░░█░░
+-- ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
+
+awful.util.shell = "sh"
+
+-- ░▀█▀░█░█░█▀▀░█▄█░█▀▀
+-- ░░█░░█▀█░█▀▀░█░█░█▀▀
+-- ░░▀░░▀░▀░▀▀▀░▀░▀░▀▀▀
+
+beautiful.init(require("theme"))
+
+-- ░█░░░█▀█░█░█░█▀█░█░█░▀█▀
+-- ░█░░░█▀█░░█░░█░█░█░█░░█░
+-- ░▀▀▀░▀░▀░░▀░░▀▀▀░▀▀▀░░▀░
+
+require("layout")
+
+-- ░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀░█░█░█▀▄░█▀█░▀█▀░▀█▀░█▀█░█▀█░█▀▀
+-- ░█░░░█░█░█░█░█▀▀░░█░░█░█░█░█░█▀▄░█▀█░░█░░░█░░█░█░█░█░▀▀█
+-- ░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀
+
+require("configuration.client")
+require("configuration.root")
+require("configuration.tags")
+root.keys(require("configuration.keys.global"))
+
+-- ░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀
+-- ░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█
+-- ░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀
+
+require("module.notifications")
+require("module.auto-start")
+require("module.exit-screen")
+require("module.quake-terminal")
+require("module.menu")
+require("module.titlebar")
+require("module.brightness-osd")
+require("module.volume-osd")
+require("module.lockscreen")
+require("module.dynamic-wallpaper")
+
+-- ░█░█░█▀█░█░░░█░░░█▀█░█▀█░█▀█░█▀▀░█▀▄
+-- ░█▄█░█▀█░█░░░█░░░█▀▀░█▀█░█▀▀░█▀▀░█▀▄
+-- ░▀░▀░▀░▀░▀▀▀░▀▀▀░▀░░░▀░▀░▀░░░▀▀▀░▀░▀
+
+screen.connect_signal("request::wallpaper", function(s)
+ -- If wallpaper is a function, call it with the screen
+ if beautiful.wallpaper then
+ if type(beautiful.wallpaper) == "string" then
+ -- Check if beautiful.wallpaper is color/image
+ if beautiful.wallpaper:sub(1, #"#") == "#" then
+ -- If beautiful.wallpaper is color
+ gears.wallpaper.set(beautiful.wallpaper)
+ elseif beautiful.wallpaper:sub(1, #"/") == "/" then
+ -- If beautiful.wallpaper is path/image
+ gears.wallpaper.maximized(beautiful.wallpaper, s)
+ end
+ else
+ beautiful.wallpaper(s)
+ end
+ end
+end)
diff --git a/config/awesome/surreal/configuration/apps.lua b/config/awesome/surreal/configuration/apps.lua
deleted file mode 100644
index aa468a75e..000000000
--- a/config/awesome/surreal/configuration/apps.lua
+++ /dev/null
@@ -1,86 +0,0 @@
-local filesystem = require('gears.filesystem')
-local config_dir = filesystem.get_configuration_dir()
-local utils_dir = config_dir .. 'utilities/'
-
-return {
- -- The default applications that we will use in keybindings and widgets
- default = {
- -- Default terminal emulator
- terminal = 'kitty',
- -- Default web browser
- web_browser = 'firefox',
- -- Default text editor
- text_editor = 'subl3',
- -- Default file manager
- file_manager = 'dolphin',
- -- Default media player
- multimedia = 'vlc',
- -- Default game, can be a launcher like steam
- game = 'supertuxkart',
- -- Default graphics editor
- graphics = 'gimp-2.10',
- -- Default sandbox
- sandbox = 'virtualbox',
- -- Default IDE
- development = '',
- -- Default network manager
- network_manager = 'kitty iwctl',
- -- Default bluetooth manager
- bluetooth_manager = 'blueman-manager',
- -- Default power manager
- power_manager = 'xfce4-power-manager',
- -- Default GUI package manager
- package_manager = 'pamac-manager',
- -- Default locker
- lock = 'awesome-client "awesome.emit_signal(\'module::lockscreen_show\')"',
- -- Default quake terminal
- quake = 'kitty --name QuakeTerminal',
- -- Default rofi global menu
- rofi_global = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show "Global Search" -modi "Global Search":' .. config_dir ..
- '/configuration/rofi/global/rofi-spotlight.sh' ..
- ' -theme ' .. config_dir ..
- '/configuration/rofi/global/rofi.rasi',
- -- Default app menu
- rofi_appmenu = 'rofi -dpi ' .. screen.primary.dpi ..
- ' -show drun -theme ' .. config_dir ..
- '/configuration/rofi/appmenu/rofi.rasi'
-
- -- You can add more default applications here
- },
-
- -- List of apps to start once on start-up
- run_on_start_up = {
- -- Compositor
- 'picom -b --experimental-backends --dbus --config ' ..
- config_dir .. '/configuration/picom.conf',
- -- Blueman applet
- 'blueman-applet',
- -- Music server
- 'mpd',
- -- Polkit and keyring
- '/usr/bin/lxqt-policykit-agent &' ..
- ' eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg)',
- -- Load X colors
- 'xrdb $HOME/.Xresources',
- -- Audio equalizer
- 'pulseeffects --gapplication-service',
- -- Lockscreen timer
- [[
- xidlehook --not-when-fullscreen --not-when-audio --timer 600 \
- "awesome-client 'awesome.emit_signal(\"module::lockscreen_show\")'" ""
- ]]
-
- -- You can add more start-up applications here
- },
-
- -- List of binaries/shell scripts that will execute for a certain task
- utils = {
- -- Fullscreen screenshot
- full_screenshot = utils_dir .. 'snap full',
- -- Area screenshot
- area_screenshot = utils_dir .. 'snap area',
- -- Update profile picture
- update_profile = utils_dir .. 'profile-image'
- }
-}
diff --git a/config/awesome/surreal/configuration/client/buttons.lua b/config/awesome/surreal/configuration/client/buttons.lua
deleted file mode 100644
index e744393f2..000000000
--- a/config/awesome/surreal/configuration/client/buttons.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local awful = require('awful')
-local modkey = require('configuration.keys.mod').mod_key
-
-return awful.util.table.join(
- awful.button(
- {},
- 1,
- function(c)
- c:emit_signal('request::activate')
- c:raise()
- end
- ),
- awful.button(
- {modkey},
- 1,
- awful.mouse.client.move
- ),
- awful.button(
- {modkey},
- 3,
- awful.mouse.client.resize
- ),
- awful.button(
- {modkey},
- 4,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {modkey},
- 5,
- function()
- awful.layout.inc(-1)
- end
- )
-)
diff --git a/config/awesome/surreal/configuration/client/init.lua b/config/awesome/surreal/configuration/client/init.lua
deleted file mode 100644
index a5bc87265..000000000
--- a/config/awesome/surreal/configuration/client/init.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-require('configuration.client.rules')
-require('configuration.client.signals')
diff --git a/config/awesome/surreal/configuration/client/keys.lua b/config/awesome/surreal/configuration/client/keys.lua
deleted file mode 100644
index 3182e41bd..000000000
--- a/config/awesome/surreal/configuration/client/keys.lua
+++ /dev/null
@@ -1,216 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-require('awful.autofocus')
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-
-local client_keys = awful.util.table.join(
- awful.key(
- {modkey},
- 'f',
- function(c)
- c.fullscreen = not c.fullscreen
- c:raise()
- end,
- {description = 'toggle fullscreen', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'q',
- function(c)
- c:kill()
- end,
- {description = 'close', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'd',
- function()
- awful.client.focus.byidx(1)
- end,
- {description = 'focus next by index', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'a',
- function()
- awful.client.focus.byidx(-1)
- end,
- {description = 'focus previous by index', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'd',
- function ()
- awful.client.swap.byidx(1)
- end,
- {description = 'swap with next client by index', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'a',
- function ()
- awful.client.swap.byidx(-1)
- end,
- {description = 'swap with next client by index', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'u',
- awful.client.urgent.jumpto,
- {description = 'jump to urgent client', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Tab',
- function()
- awful.client.focus.history.previous()
- if client.focus then
- client.focus:raise()
- end
- end,
- {description = 'go back', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'n',
- function(c)
- c.minimized = true
- end,
- {description = 'minimize client', group = 'client'}
- ),
- awful.key(
- { modkey, 'Shift' },
- 'c',
- function(c)
- local focused = awful.screen.focused()
-
- awful.placement.centered(c, {
- honor_workarea = true
- })
- end,
- {description = 'align a client to the center of the focused screen', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'c',
- function(c)
- c.fullscreen = false
- c.maximized = false
- c.floating = not c.floating
- c:raise()
- end,
- {description = 'toggle floating', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Up',
- function(c)
- c:relative_move(0, dpi(-10), 0, 0)
- end,
- {description = 'move floating client up by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Down',
- function(c)
- c:relative_move(0, dpi(10), 0, 0)
- end,
- {description = 'move floating client down by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Left',
- function(c)
- c:relative_move(dpi(-10), 0, 0, 0)
- end,
- {description = 'move floating client to the left by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey},
- 'Right',
- function(c)
- c:relative_move(dpi(10), 0, 0, 0)
- end,
- {description = 'move floating client to the right by 10 px', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Up',
- function(c)
- c:relative_move(0, dpi(-10), 0, dpi(10))
- end,
- {description = 'increase floating client size vertically by 10 px up', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Down',
- function(c)
- c:relative_move(0, 0, 0, dpi(10))
- end,
- {description = 'increase floating client size vertically by 10 px down', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Left',
- function(c)
- c:relative_move(dpi(-10), 0, dpi(10), 0)
- end,
- {description = 'increase floating client size horizontally by 10 px left', group = 'client'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'Right',
- function(c)
- c:relative_move(0, 0, dpi(10), 0)
- end,
- {description = 'increase floating client size horizontally by 10 px right', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Up',
- function(c)
- if c.height > 10 then
- c:relative_move(0, 0, 0, dpi(-10))
- end
- end,
- {description = 'decrease floating client size vertically by 10 px up', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Down',
- function(c)
- local c_height = c.height
- c:relative_move(0, 0, 0, dpi(-10))
- if c.height ~= c_height and c.height > 10 then
- c:relative_move(0, dpi(10), 0, 0)
- end
- end,
- {description = 'decrease floating client size vertically by 10 px down', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Left',
- function(c)
- if c.width > 10 then
- c:relative_move(0, 0, dpi(-10), 0)
- end
- end,
- {description = 'decrease floating client size horizontally by 10 px left', group = 'client'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'Right',
- function(c)
- local c_width = c.width
- c:relative_move(0, 0, dpi(-10), 0)
- if c.width ~= c_width and c.width > 10 then
- c:relative_move(dpi(10), 0 , 0, 0)
- end
- end,
- {description = 'decrease floating client size horizontally by 10 px right', group = 'client'}
- )
-)
-
-return client_keys
diff --git a/config/awesome/surreal/configuration/client/rules.lua b/config/awesome/surreal/configuration/client/rules.lua
deleted file mode 100644
index 0ab0b1158..000000000
--- a/config/awesome/surreal/configuration/client/rules.lua
+++ /dev/null
@@ -1,393 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local ruled = require('ruled')
-local beautiful = require('beautiful')
-local client_keys = require('configuration.client.keys')
-local client_buttons = require('configuration.client.buttons')
-
-ruled.client.connect_signal(
- 'request::rules',
- function()
- -- All clients will match this rule.
- ruled.client.append_rule {
- id = 'global',
- rule = {},
- properties = {
- focus = awful.client.focus.filter,
- raise = true,
- floating = false,
- maximized = false,
- above = false,
- below = false,
- ontop = false,
- sticky = false,
- maximized_horizontal = false,
- maximized_vertical = false,
- keys = client_keys,
- buttons = client_buttons,
- screen = awful.screen.preferred,
- placement = awful.placement.no_overlap + awful.placement.no_offscreen
- }
- }
-
- ruled.client.append_rule {
- id = 'round_clients',
- rule_any = {
- type = {
- 'normal',
- 'dialog'
- }
- },
- except_any = {
- name = {'Discord Updater'}
- },
- properties = {
- round_corners = true,
- shape = beautiful.client_shape_rounded
- }
- }
-
- -- Titlebar rules
- ruled.client.append_rule {
- id = 'titlebars',
- rule_any = {
- type = {
- 'normal',
- 'dialog',
- 'modal',
- 'utility'
- }
- },
- properties = {
- titlebars_enabled = true
- }
- }
-
- -- Dialogs
- ruled.client.append_rule {
- id = 'dialog',
- rule_any = {
- type = {'dialog'},
- class = {'Wicd-client.py', 'calendar.google.com'}
- },
- properties = {
- titlebars_enabled = true,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Modals
- ruled.client.append_rule {
- id = 'modal',
- rule_any = {
- type = {'modal'}
- },
- properties = {
- titlebars_enabled = true,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Utilities
- ruled.client.append_rule {
- id = 'utility',
- rule_any = {
- type = {'utility'}
- },
- properties = {
- titlebars_enabled = false,
- floating = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Splash
- ruled.client.append_rule {
- id = 'splash',
- rule_any = {
- type = {'splash'},
- name = {'Discord Updater'}
- },
- properties = {
- titlebars_enabled = false,
- round_corners = false,
- floating = true,
- above = true,
- skip_decoration = true,
- placement = awful.placement.centered
- }
- }
-
- -- Terminal emulators
- ruled.client.append_rule {
- id = 'terminals',
- rule_any = {
- class = {
- 'URxvt',
- 'XTerm',
- 'UXTerm',
- 'kitty',
- 'K3rmit'
- }
- },
- properties = {
- tag = '1',
- switch_to_tags = true,
- size_hints_honor = false,
- titlebars_enabled = true
- }
- }
-
- -- Browsers and chats
- ruled.client.append_rule {
- id = 'internet',
- rule_any = {
- class = {
- 'firefox',
- 'Tor Browser',
- 'discord',
- 'Chromium',
- 'Google-chrome',
- 'TelegramDesktop'
- }
- },
- properties = {
- tag = '2'
- }
- }
-
- -- Text editors and word processing
- ruled.client.append_rule {
- id = 'text',
- rule_any = {
- class = {
- 'Geany',
- 'Atom',
- 'Subl3',
- 'code-oss'
- },
- name = {
- 'LibreOffice',
- 'libreoffice'
- }
- },
- properties = {
- tag = '3'
- }
- }
-
- -- File managers
- ruled.client.append_rule {
- id = 'files',
- rule_any = {
- class = {
- 'dolphin',
- 'ark',
- 'Nemo',
- 'File-roller'
- }
- },
- properties = {
- tag = '4',
- switch_to_tags = true
- }
- }
-
- -- Multimedia
- ruled.client.append_rule {
- id = 'multimedia',
- rule_any = {
- class = {
- 'vlc',
- 'Spotify'
- }
- },
- properties = {
- tag = '5',
- switch_to_tags = true,
- placement = awful.placement.centered
- }
- }
-
- -- Gaming
- ruled.client.append_rule {
- id = 'gaming',
- rule_any = {
- class = {
- 'Wine',
- 'dolphin-emu',
- 'Steam',
- 'Citra',
- 'supertuxkart'
- },
- name = {'Steam'}
- },
- properties = {
- tag = '6',
- skip_decoration = true,
- switch_to_tags = true,
- placement = awful.placement.centered
- }
- }
-
- -- Multimedia Editing
- ruled.client.append_rule {
- id = 'graphics',
- rule_any = {
- class = {
- 'Gimp-2.10',
- 'Inkscape',
- 'Flowblade'
- }
- },
- properties = {
- tag = '7'
- }
- }
-
- -- Sandboxes and VMs
- ruled.client.append_rule {
- id = 'sandbox',
- rule_any = {
- class = {
- 'VirtualBox Manage',
- 'VirtualBox Machine',
- 'Gnome-boxes',
- 'Virt-manager'
- }
- },
- properties = {
- tag = '8'
- }
- }
-
- -- IDEs and Tools
- ruled.client.append_rule {
- id = 'development',
- rule_any = {
- class = {
- 'Oomox',
- 'Unity',
- 'UnityHub',
- 'jetbrains-studio',
- 'Ettercap',
- 'scrcpy'
- }
- },
- properties = {
- tag = '9',
- skip_decoration = true
- }
- }
-
- -- Image viewers
- ruled.client.append_rule {
- id = 'image_viewers',
- rule_any = {
- class = {
- 'feh',
- 'Pqiv',
- 'Sxiv'
- },
- },
- properties = {
- titlebars_enabled = true,
- skip_decoration = true,
- floating = true,
- ontop = true,
- placement = awful.placement.centered
- }
- }
-
- -- Floating
- ruled.client.append_rule {
- id = 'floating',
- rule_any = {
- instance = {
- 'file_progress',
- 'Popup',
- 'nm-connection-editor',
- },
- class = {
- 'scrcpy',
- 'Mugshot',
- 'Pulseeffects'
- },
- role = {
- 'AlarmWindow',
- 'ConfigManager',
- 'pop-up'
- }
- },
- properties = {
- titlebars_enabled = true,
- skip_decoration = true,
- ontop = true,
- floating = true,
- focus = awful.client.focus.filter,
- raise = true,
- keys = client_keys,
- buttons = client_buttons,
- placement = awful.placement.centered
- }
- }
- end
-)
-
--- Normally we'd do this with a rule, but some program like spotify doesn't set its class or name
--- until after it starts up, so we need to catch that signal.
-client.connect_signal(
- 'property::class',
- function(c)
- if c.class == 'Spotify' then
- local window_mode = false
-
- -- Check if fullscreen or window mode
- if c.fullscreen then
- window_mode = false
- c.fullscreen = false
- else
- window_mode = true
- end
-
- -- Check if Spotify is already open
- local app = function (c)
- return ruled.client.match(c, {class = 'Spotify'})
- end
-
- local app_count = 0
- for c in awful.client.iterate(app) do
- app_count = app_count + 1
- end
-
- -- If Spotify is already open, don't open a new instance
- if app_count > 1 then
- c:kill()
- -- Switch to previous instance
- for c in awful.client.iterate(app) do
- c:jump_to(false)
- end
- else
- -- Move the instance to specified tag on this screen
- local t = awful.tag.find_by_name(awful.screen.focused(), '5')
- c:move_to_tag(t)
- t:view_only()
-
- -- Fullscreen mode if not window mode
- if not window_mode then
- c.fullscreen = true
- else
- c.floating = true
- awful.placement.centered(c, {honor_workarea = true})
- end
- end
- end
- end
-)
diff --git a/config/awesome/surreal/configuration/client/signals.lua b/config/awesome/surreal/configuration/client/signals.lua
deleted file mode 100644
index a13a4aa44..000000000
--- a/config/awesome/surreal/configuration/client/signals.lua
+++ /dev/null
@@ -1,115 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local update_client = function(c)
- -- Set client's shape based on its tag's layout and status (floating, maximized, etc.)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if current_layout == awful.layout.suit.max and (not c.floating) then
- c.shape = beautiful.client_shape_rectangle
- elseif c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- elseif (not c.round_corners) then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
-end
-
--- Signal function to execute when a new client appears.
-client.connect_signal(
- 'manage',
- function(c)
- -- Focus, raise and activate
- c:emit_signal(
- 'request::activate',
- 'mouse_enter',
- {
- raise = true
- }
- )
-
- -- Set the windows at the slave,
- -- i.e. put it at the end of others instead of setting it master.
- if not awesome.startup then
- awful.client.setslave(c)
- end
-
- if awesome.startup and not c.size_hints.user_position and
- not c.size_hints.program_position then
- -- Prevent clients from being unreachable after screen count changes.
- awful.placement.no_offscreen(c)
- end
-
- -- Update client shape
- update_client(c)
- end
-)
-
--- Enable sloppy focus, so that focus follows mouse then raises it.
-client.connect_signal(
- 'mouse::enter',
- function(c)
- c:emit_signal(
- 'request::activate',
- 'mouse_enter',
- {
- raise = true
- }
- )
- end
-)
-
-client.connect_signal(
- 'focus',
- function(c)
- c.border_color = beautiful.border_focus
- end
-)
-
-client.connect_signal(
- 'unfocus',
- function(c)
- c.border_color = beautiful.border_normal
- end
-)
-
--- Manipulate client shape on fullscreen/non-fullscreen
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- update_client(c)
- end
- end
-)
-
--- Manipulate client shape on maximized
-client.connect_signal(
- 'property::maximized',
- function(c)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if c.maximized then
- c.shape = beautiful.client_shape_rectangle
- else
- update_client(c)
- end
- end
-)
-
--- Manipulate client shape on floating
-client.connect_signal(
- 'property::floating',
- function(c)
- local current_layout = awful.tag.getproperty(c.first_tag, 'layout')
- if c.floating and not c.maximized then
- c.shape = beautiful.client_shape_rounded
- else
- if current_layout == awful.layout.suit.max then
- c.shape = beautiful.client_shape_rectangle
- end
- end
- end
-)
diff --git a/config/awesome/surreal/configuration/config.lua b/config/awesome/surreal/configuration/config.lua
deleted file mode 100644
index 991beee66..000000000
--- a/config/awesome/surreal/configuration/config.lua
+++ /dev/null
@@ -1,103 +0,0 @@
-return {
- widget = {
- email = {
- -- Email address
- address = '',
- -- App password
- app_password = '',
- -- Imap server
- imap_server = 'imap.gmail.com',
- -- Port
- port = '993'
- },
-
- weather = {
- -- API Key
- key = '',
- -- City ID
- city_id = '',
- -- Units
- units = 'metric',
- -- Update in N seconds
- update_interval = 1200
- },
-
- network = {
- -- Wired interface
- wired_interface = 'enp0s0',
- -- Wireless interface
- wireless_interface = 'wlan0'
- },
-
- clock = {
- -- Clock widget format
- military_mode = false
- },
-
- screen_recorder = {
- -- Default record dimension
- resolution = '1366x768',
- -- X,Y coordinate
- offset = '0,0',
- -- Enable audio by default
- audio = false,
- -- Recordings directory
- save_directory = '$(xdg-user-dir VIDEOS)/Recordings/',
- -- Mic level
- mic_level = '20',
- -- FPS
- fps = '30'
- }
- },
-
- module = {
- auto_start = {
- -- Will create notification if true
- debug_mode = false
- },
-
- dynamic_wallpaper = {
- -- Will look for wallpapers here
- wall_dir = 'theme/wallpapers/',
- -- Image formats
- valid_picture_formats = {'jpg', 'png', 'jpeg'},
- -- Leave this table empty for full auto scheduling
- wallpaper_schedule = {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- -- Example of just using auto-scheduling with keywords
- --[[
- 'midnight',
- 'morning',
- 'noon',
- 'afternoon',
- 'evening',
- 'night'
- --]]
- },
- -- Stretch background image across all screens(monitor)
- stretch = false
- },
-
- lockscreen = {
- -- Clock format
- military_clock = true,
- -- Default password if there's no PAM integration
- fallback_password = 'toor',
- -- Capture intruder using webcam
- capture_intruder = true,
- -- Intruder image save location (Will create directory if it doesn't exist)
- face_capture_dir = '$(xdg-user-dir PICTURES)/Intruders/',
- -- Background directory - Defaults to 'awesome/config/theme/wallpapers/' if null
- bg_dir = nil,
- -- Will look for this image file under 'bg_dir'
- bg_image = 'locksreen-bg.jpg',
- -- Blur lockscreen background
- blur_background = false,
- -- Blurred/filtered background image path (No reason to change this)
- tmp_wall_dir = '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
- }
- }
-}
diff --git a/config/awesome/surreal/configuration/init.lua b/config/awesome/surreal/configuration/init.lua
deleted file mode 100644
index f93e86bb2..000000000
--- a/config/awesome/surreal/configuration/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- keys = require('configuration.keys'),
- apps = require('configuration.apps')
-}
diff --git a/config/awesome/surreal/configuration/keys/global.lua b/config/awesome/surreal/configuration/keys/global.lua
deleted file mode 100644
index 81ba2f05c..000000000
--- a/config/awesome/surreal/configuration/keys/global.lua
+++ /dev/null
@@ -1,555 +0,0 @@
-local awful = require('awful')
-local beautiful = require('beautiful')
-
-require('awful.autofocus')
-
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local modkey = require('configuration.keys.mod').mod_key
-local altkey = require('configuration.keys.mod').alt_key
-local apps = require('configuration.apps')
-
--- Key bindings
-local global_keys = awful.util.table.join(
-
- -- Hotkeys
- awful.key(
- {modkey},
- 'F1',
- hotkeys_popup.show_help,
- {description = 'show help', group = 'awesome'}
- ),
- awful.key({modkey, 'Control'},
- 'r',
- awesome.restart,
- {description = 'reload awesome', group = 'awesome'}
- ),
-
- awful.key({modkey, 'Control'},
- 'q',
- awesome.quit,
- {description = 'quit awesome', group = 'awesome'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'l',
- function()
- awful.tag.incmwfact(0.05)
- end,
- {description = 'increase master width factor', group = 'layout'}
- ),
- awful.key(
- {altkey, 'Shift'},
- 'h',
- function()
- awful.tag.incmwfact(-0.05)
- end,
- {description = 'decrease master width factor', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'h',
- function()
- awful.tag.incnmaster(1, nil, true)
- end,
- {description = 'increase the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'l',
- function()
- awful.tag.incnmaster(-1, nil, true)
- end,
- {description = 'decrease the number of master clients', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'h',
- function()
- awful.tag.incncol(1, nil, true)
- end,
- {description = 'increase the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'l',
- function()
- awful.tag.incncol(-1, nil, true)
- end,
- {description = 'decrease the number of columns', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'space',
- function()
- awful.layout.inc(1)
- end,
- {description = 'select next layout', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'space',
- function()
- awful.layout.inc(-1)
- end,
- {description = 'select previous layout', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'o',
- function()
- awful.tag.incgap(1)
- end,
- {description = 'increase gap', group = 'layout'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'o',
- function()
- awful.tag.incgap(-1)
- end,
- {description = 'decrease gap', group = 'layout'}
- ),
- awful.key(
- {modkey},
- 'w',
- awful.tag.viewprev,
- {description = 'view previous tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 's',
- awful.tag.viewnext,
- {description = 'view next tag', group = 'tag'}
- ),
- awful.key(
- {modkey},
- 'Escape',
- awful.tag.history.restore,
- {description = 'alternate between current and previous tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 'w',
- function ()
- -- tag_view_nonempty(-1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(-1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view previous non-empty tag', group = 'tag'}
- ),
- awful.key({ modkey, 'Control' },
- 's',
- function ()
- -- tag_view_nonempty(1)
- local focused = awful.screen.focused()
- for i = 1, #focused.tags do
- awful.tag.viewidx(1, focused)
- if #focused.clients > 0 then
- return
- end
- end
- end,
- {description = 'view next non-empty tag', group = 'tag'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F1',
- function()
- awful.screen.focus_relative(-1)
- end,
- { description = 'focus the previous screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'F2',
- function()
- awful.screen.focus_relative(1)
- end,
- { description = 'focus the next screen', group = 'screen'}
- ),
- awful.key(
- {modkey, 'Control'},
- 'n',
- function()
- local c = awful.client.restore()
- -- Focus restored client
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end,
- {description = 'restore minimized', group = 'screen'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessUp',
- function()
- awful.spawn('light -A 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'increase brightness by 10%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86MonBrightnessDown',
- function()
- awful.spawn('light -U 10', false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show', true)
- end,
- {description = 'decrease brightness by 10%', group = 'hotkeys'}
- ),
- -- ALSA volume control
- awful.key(
- {},
- 'XF86AudioRaiseVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%+', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'increase volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioLowerVolume',
- function()
- awful.spawn('amixer -D pulse sset Master 5%-', false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show', true)
- end,
- {description = 'decrease volume up by 5%', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioMute',
- function()
- awful.spawn('amixer -D pulse set Master 1+ toggle', false)
- end,
- {description = 'toggle mute', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioNext',
- function()
- awful.spawn('mpc next', false)
- end,
- {description = 'next music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPrev',
- function()
- awful.spawn('mpc prev', false)
- end,
- {description = 'previous music', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86AudioPlay',
- function()
- awful.spawn('mpc toggle', false)
- end,
- {description = 'play/pause music', group = 'hotkeys'}
-
- ),
- awful.key(
- {},
- 'XF86AudioMicMute',
- function()
- awful.spawn('amixer set Capture toggle', false)
- end,
- {description = 'mute microphone', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerDown',
- function()
- --
- end,
- {description = 'shutdown skynet', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86PowerOff',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {},
- 'XF86Display',
- function()
- awful.spawn.single_instance('arandr', false)
- end,
- {description = 'arandr', group = 'hotkeys'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'q',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- {description = 'toggle exit screen', group = 'hotkeys'}
- ),
- awful.key(
- {modkey},
- '`',
- function()
- awesome.emit_signal('module::quake_terminal:toggle')
- end,
- {description = 'dropdown application', group = 'launcher'}
- ),
- awful.key(
- { },
- 'Print',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot,function() end)
- end,
- {description = 'fullscreen screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 's',
- function ()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot,function() end)
- end,
- {description = 'area/selected screenshot', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'x',
- function()
- awesome.emit_signal('widget::blur:toggle')
- end,
- {description = 'toggle blur effects', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- ']',
- function()
- awesome.emit_signal('widget::blur:increase')
- end,
- {description = 'increase blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- '[',
- function()
- awesome.emit_signal('widget::blur:decrease')
- end,
- {description = 'decrease blur effect by 10%', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 't',
- function()
- awesome.emit_signal('widget::blue_light:toggle')
- end,
- {description = 'toggle redshift filter', group = 'Utility'}
- ),
- awful.key(
- { 'Control' },
- 'Escape',
- function ()
- if screen.primary.systray then
- if not screen.primary.tray_toggler then
- local systray = screen.primary.systray
- systray.visible = not systray.visible
- else
- awesome.emit_signal('widget::systray:toggle')
- end
- end
- end,
- {description = 'toggle systray visibility', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'l',
- function()
- awful.spawn(apps.default.lock, false)
- end,
- {description = 'lock the screen', group = 'Utility'}
- ),
- awful.key(
- {modkey},
- 'Return',
- function()
- awful.spawn(apps.default.terminal)
- end,
- {description = 'open default terminal', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'e',
- function()
- awful.spawn(apps.default.file_manager)
- end,
- {description = 'open default file manager', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'f',
- function()
- awful.spawn(apps.default.web_browser)
- end,
- {description = 'open default web browser', group = 'launcher'}
- ),
- awful.key(
- {'Control', 'Shift'},
- 'Escape',
- function()
- awful.spawn(apps.default.terminal .. ' ' .. 'htop')
- end,
- {description = 'open system monitor', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'e',
- function()
- local focused = awful.screen.focused()
-
- if focused.control_center then
- focused.control_center:hide_dashboard()
- focused.control_center.opened = false
- end
- if focused.info_center then
- focused.info_center:hide_dashboard()
- focused.info_center.opened = false
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {},
- 'XF86Launch1',
- function()
- local focused = awful.screen.focused()
-
- if focused.control_center then
- focused.control_center:hide_dashboard()
- focused.control_center.opened = false
- end
- if focused.info_center then
- focused.info_center:hide_dashboard()
- focused.info_center.opened = false
- end
- awful.spawn(apps.default.rofi_appmenu, false)
- end,
- {description = 'open application drawer', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'x',
- function()
- awful.spawn(apps.default.rofi_global, false)
- end,
- {description = 'open global search', group = 'launcher'}
- ),
- awful.key(
- {modkey},
- 'r',
- function()
- local focused = awful.screen.focused()
- if focused.info_center and focused.info_center.visible then
- focused.info_center:toggle()
- end
- focused.control_center:toggle()
- end,
- {description = 'open control center', group = 'launcher'}
- ),
- awful.key(
- {modkey, 'Shift'},
- 'r',
- function()
- local focused = awful.screen.focused()
- if focused.control_center and focused.control_center.visible then
- focused.control_center:toggle()
- end
- focused.info_center:toggle()
- end,
- {description = 'open info center', group = 'launcher'}
- )
-)
-
--- Bind all key numbers to tags.
--- Be careful: we use keycodes to make it work on any keyboard layout.
--- This should map on the top row of your keyboard, usually 1 to 9.
-for i = 1, 9 do
- -- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
- local descr_view, descr_toggle, descr_move, descr_toggle_focus
- if i == 1 or i == 9 then
- descr_view = {description = 'view tag #', group = 'tag'}
- descr_toggle = {description = 'toggle tag #', group = 'tag'}
- descr_move = {description = 'move focused client to tag #', group = 'tag'}
- descr_toggle_focus = {description = 'toggle focused client on tag #', group = 'tag'}
- end
- global_keys =
- awful.util.table.join(
- global_keys,
- -- View tag only.
- awful.key(
- {modkey},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- tag:view_only()
- end
- end,
- descr_view
- ),
- -- Toggle tag display.
- awful.key(
- {modkey, 'Control'},
- '#' .. i + 9,
- function()
- local focused = awful.screen.focused()
- local tag = focused.tags[i]
- if tag then
- awful.tag.viewtoggle(tag)
- end
- end,
- descr_toggle
- ),
- -- Move client to tag.
- awful.key(
- {modkey, 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:move_to_tag(tag)
- end
- end
- end,
- descr_move
- ),
- -- Toggle tag on focused client.
- awful.key(
- {modkey, 'Control', 'Shift'},
- '#' .. i + 9,
- function()
- if client.focus then
- local tag = client.focus.screen.tags[i]
- if tag then
- client.focus:toggle_tag(tag)
- end
- end
- end,
- descr_toggle_focus
- )
- )
-end
-
-return global_keys
diff --git a/config/awesome/surreal/configuration/keys/init.lua b/config/awesome/surreal/configuration/keys/init.lua
deleted file mode 100644
index 959166741..000000000
--- a/config/awesome/surreal/configuration/keys/init.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- mod = require('configuration.keys.mod'),
- global = require('configuration.keys.global')
-}
diff --git a/config/awesome/surreal/configuration/keys/mod.lua b/config/awesome/surreal/configuration/keys/mod.lua
deleted file mode 100644
index d7791de22..000000000
--- a/config/awesome/surreal/configuration/keys/mod.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- mod_key = 'Mod4',
- alt_key = 'Mod1'
-}
diff --git a/config/awesome/surreal/configuration/picom.conf b/config/awesome/surreal/configuration/picom.conf
deleted file mode 100644
index 47d62723b..000000000
--- a/config/awesome/surreal/configuration/picom.conf
+++ /dev/null
@@ -1,155 +0,0 @@
-# ░█▀█░▀█▀░█▀▀░█▀█░█▄█░░░░█▀▀░█▀█░█▀█░█▀▀
-# ░█▀▀░░█░░█░░░█░█░█░█░░░░█░░░█░█░█░█░█▀▀
-# ░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░░▀▀▀░▀▀▀░▀░▀░▀░░
-#
-# X compositor configuration
-
-# ░█▀▀░█░█░█▀█░█▀▄░█▀█░█░█
-# ░▀▀█░█▀█░█▀█░█░█░█░█░█▄█
-# ░▀▀▀░▀░▀░▀░▀░▀▀░░▀▀▀░▀░▀
-
-shadow = false;
-shadow-radius = 12;
-shadow-opacity = 0.75;
-shadow-offset-x = -12;
-shadow-offset-y = -12;
-
-# shadow-red = 0
-# shadow-green = 0
-# shadow-blue = 0
-shadow-color = "#000000";
-
-shadow-exclude = [
- "name = 'Notification'",
- "class_g = 'Conky'",
- "class_g ?= 'Notify-osd'",
- "class_g = 'Cairo-clock'",
- "class_g = 'slop'",
- "class_g = 'Firefox' && argb",
- "class_g = 'Rofi'",
- "_GTK_FRAME_EXTENTS@:c",
- "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
-];
-
-# shadow-exclude-reg = "x10+0+0";
-# xinerama-shadow-crop = true;
-
-# ░█▀▀░█▀█░█▀▄░▀█▀░█▀█░█▀▀
-# ░█▀▀░█▀█░█░█░░█░░█░█░█░█
-# ░▀░░░▀░▀░▀▀░░▀▀▀░▀░▀░▀▀▀
-
-fading = true;
-fade-in-step = 0.03;
-fade-out-step = 0.03;
-fade-delta = 3;
-
-fade-exclude = [];
-
-no-fading-openclose = false;
-no-fading-destroyed-argb = true;
-
-# ░█▀█░█▀█░█▀█░█▀▀░▀█▀░▀█▀░█░█
-# ░█░█░█▀▀░█▀█░█░░░░█░░░█░░░█░
-# ░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀░░▀░░░▀░
-
-inactive-opacity = 1;
-frame-opacity = 1;
-inactive-opacity-override = false;
-active-opacity = 1.0;
-inactive-dim = 0.0;
-
-focus-exclude = [
- "class_g = 'Cairo-clock'",
- "class_g ?= 'rofi'",
- "class_g ?= 'slop'",
- "class_g ?= 'Steam'"
-];
-
-# inactive-dim-fixed = 1.0;
-
-opacity-rule = [
- "80:class_g = 'URxvt'",
- "80:class_g = 'UXTerm'",
- "80:class_g = 'XTerm'"
-]
-
-# ░█▀▄░█░░░█░█░█▀▄░█▀▄░▀█▀░█▀█░█▀▀
-# ░█▀▄░█░░░█░█░█▀▄░█▀▄░░█░░█░█░█░█
-# ░▀▀░░▀▀▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-blur: {
- method = "dual_kawase";
- strength = 5.0;
- deviation = 1.0;
- kernel = "11x11gaussian";
-}
-
-blur-background = false;
-blur-background-frame = true;
-blur-background-fixed = true;
-# blur-kern = "3x3box";
-
-blur-background-exclude = [
- "class_g = 'slop'",
- "class_g = 'Firefox' && argb",
- "_GTK_FRAME_EXTENTS@:c"
-];
-
-# ░█▀▀░█▀▀░█▀█░█▀▀░█▀▄░█▀█░█░░░░░█▀▀░█▀▀░▀█▀░▀█▀░▀█▀░█▀█░█▀▀░█▀▀
-# ░█░█░█▀▀░█░█░█▀▀░█▀▄░█▀█░█░░░░░▀▀█░█▀▀░░█░░░█░░░█░░█░█░█░█░▀▀█
-# ░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀
-
-daemon = false;
-backend = "glx";
-vsync = true;
-dbus = false;
-mark-wmwin-focused = true;
-mark-ovredir-focused = true;
-detect-rounded-corners = true;
-detect-client-opacity = true;
-refresh-rate = 0;
-# use-ewmh-active-win = true;
-# unredir-if-possible = false;
-# unredir-if-possible-delay = 0;
-
-unredir-if-possible-exclude = [];
-
-detect-transient = true;
-detect-client-leader = true;
-resize-damage = 1;
-
-invert-color-include = [];
-
-glx-no-stencil = true;
-# glx-no-rebind-pixmap = false;
-use-damage = true;
-# xrender-sync-fence = true;
-
-# glx-fshader-win = "";
-# force-win-blend = false;
-
-# no-ewmh-fullscreen = false;
-# max-brightness = 1.0;
-
-transparent-clipping = false;
-
-log-level = "warn";
-log-file = "~/.cache/picom-log.log";
-show-all-xerrors = true;
-# write-pid-path = '/path/to/your/mom';
-
-wintypes: {
- tooltip = { fade = true; shadow = false; focus = false; };
- normal = { shadow = false; };
- dock = { shadow = false; };
- dnd = { shadow = false; };
- popup_menu = { shadow = true; focus = false; opacity = 0.90; };
- dropdown_menu = { shadow = false; focus = false; };
- above = { shadow = true; };
- splash = { shadow = false; };
- utility = { focus = false; shadow = false; blur-background = false; };
- notification = { shadow = false; };
- desktop = { shadow = false; blur-background = false; };
- menu = { focus = false; };
- dialog = { shadow = true; };
-};
diff --git a/config/awesome/surreal/configuration/rofi/appmenu/rofi.rasi b/config/awesome/surreal/configuration/rofi/appmenu/rofi.rasi
deleted file mode 100644
index 1ab875f13..000000000
--- a/config/awesome/surreal/configuration/rofi/appmenu/rofi.rasi
+++ /dev/null
@@ -1,149 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: true;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- text-color: @foreground;
- location: northwest;
- anchor: northwest;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 6px;
- margin: 0px calc((100% - 640px) / 2) 0px calc((100% - 640px) / 2);
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 6;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 70px 15% 0 15%;
- /*padding: 70px 135px 0 135px;*/
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: vertical;
- border-radius: 12px;
- padding: 25px 0 25px 0;
-}
-
-element-icon {
- size: 72px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0.5;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/surreal/configuration/rofi/global/icons/ddg.svg b/config/awesome/surreal/configuration/rofi/global/icons/ddg.svg
deleted file mode 100644
index 20ea387ba..000000000
--- a/config/awesome/surreal/configuration/rofi/global/icons/ddg.svg
+++ /dev/null
@@ -1,615 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/configuration/rofi/global/icons/google.svg b/config/awesome/surreal/configuration/rofi/global/icons/google.svg
deleted file mode 100644
index 21e5bf37a..000000000
--- a/config/awesome/surreal/configuration/rofi/global/icons/google.svg
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/configuration/rofi/global/icons/history.svg b/config/awesome/surreal/configuration/rofi/global/icons/history.svg
deleted file mode 100644
index 872bac835..000000000
--- a/config/awesome/surreal/configuration/rofi/global/icons/history.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
diff --git a/config/awesome/surreal/configuration/rofi/global/icons/result.svg b/config/awesome/surreal/configuration/rofi/global/icons/result.svg
deleted file mode 100644
index 0f4d883ea..000000000
--- a/config/awesome/surreal/configuration/rofi/global/icons/result.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/configuration/rofi/global/icons/suggestion.svg b/config/awesome/surreal/configuration/rofi/global/icons/suggestion.svg
deleted file mode 100644
index bf673469c..000000000
--- a/config/awesome/surreal/configuration/rofi/global/icons/suggestion.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/surreal/configuration/rofi/global/rofi-spotlight.sh b/config/awesome/surreal/configuration/rofi/global/rofi-spotlight.sh
deleted file mode 100755
index d5c4a23b5..000000000
--- a/config/awesome/surreal/configuration/rofi/global/rofi-spotlight.sh
+++ /dev/null
@@ -1,692 +0,0 @@
-#!/usr/bin/env bash
-
-TMP_DIR="/tmp/rofi/${USER}/"
-
-PREV_LOC_FILE="${TMP_DIR}rofi_fb_prevloc"
-CURRENT_FILE="${TMP_DIR}rofi_fb_current_file"
-
-MY_PATH="$(realpath "$0" | xargs dirname)"
-HIST_FILE="${MY_PATH}/history.txt"
-
-OPENER=xdg-open
-TERM_EMU=kitty
-TEXT_EDITOR=$EDITOR
-FILE_MANAGER=xdg-open
-BLUETOOTH_SEND=blueman-sendto
-
-CUR_DIR=$PWD
-NEXT_DIR=""
-FD_INSTALLED=$(command -v fd)
-
-SHOW_HIDDEN=false
-
-# Setup menu options
-declare -a OPEN_FILE_LOCATION=(
- "Open file location in ${TERM_EMU}"
- "Open file location in ${FILE_MANAGER}"
-)
-declare -a RUN_COMMANDS=(
- "Run"
- "Execute in ${TERM_EMU}"
-)
-declare -a STANDARD_CONTROLS=(
- "Move to trash"
- "Delete"
- "Back"
-)
-declare -a SHELL_NO_X_OPTIONS=(
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a SHELL_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${SHELL_NO_X_OPTIONS[@]}"
-)
-declare -a BIN_NO_X_OPTIONS=(
- "${OPEN_FILE_LOCATION[@]}"
- "Back"
-)
-declare -a BIN_OPTIONS=(
- "${RUN_COMMANDS[@]}"
- "${BIN_NO_X_OPTIONS[@]}"
-)
-declare -a TEXT_OPTIONS=("${SHELL_NO_X_OPTIONS[@]}")
-declare -a HTML_OPTIONS=(
- "Open"
- "Edit"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a XCF_SVG_OPTIONS=(
- "Open"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-declare -a IMAGE_OPTIONS=(
- "Open"
- "Send via Bluetooth"
- "${OPEN_FILE_LOCATION[@]}"
- "${STANDARD_CONTROLS[@]}"
-)
-
-declare -a ALL_OPTIONS=()
-
-# Combine all context menu
-COMBINED_OPTIONS=(
- "${SHELL_OPTIONS[@]}"
- "${IMAGE_OPTIONS[@]}"
-)
-
-# Remove duplicates
-ALL_OPTIONS=("$(printf '%s\n' "${COMBINED_OPTIONS[@]}" | sort -u)")
-
-# Create tmp dir for rofi
-[ ! -d "${TMP_DIR}" ] && mkdir -p "${TMP_DIR}";
-
-# Create hist file if it doesn't exist
-[ ! -f "${HIST_FILE}" ] && touch "${HIST_FILE}"
-
-# Help message
-if [ -n "$*" ] && [[ "$*" = ":help" ]]
-then
- echo -en "Rofi Spotlight
-A Rofi with file and web searching functionality
-
-Commands:
-:help to print this help message
-:h or :hidden to show hidden files/dirs
-:sh or :show_hist to show search history
-:ch or :clear_hist to clear search history
-:xdg to jump to an xdg directory
-Examples:
- :xdg DOCUMENTS
- :xdg DOWNLOADS
-Also supports incomplete path:
-Examples:
- :xdg doc
- :xdg down
-For more info about XDG dirs, see:
-\`man xdg-user-dir\`
-
-File search syntaxes:
-! to search for a file and web suggestions
-? to search parent directories
-Examples:
- !half-life 3
- ?portal 3
-
-Web search syntaxes:
-! to gets search suggestions
-:web/:w to also to gets search suggestions
-:webbro/:wb to search directly from your browser
-Examples:
- !how to install archlinux
- :web how to install gentoo
- :w how to make a nuclear fission
- :webbro how to install wine in windowsxp
-Back\0icon\x1fdraw-arrow-back\n"
-
- exit
-fi
-
-# Return the icon string
-function icon_file_type(){
- icon_name=""
- mime_type=$(file --mime-type -b "${1}")
-
- case "${mime_type}" in
- "inode/directory")
- case "${1}" in
- "Desktop/" )
- icon_name='folder-blue-desktop'
- ;;
- "Documents/" )
- icon_name='folder-blue-documents'
- ;;
- "Downloads/" )
- icon_name='folder-blue-downloads'
- ;;
- "Music/" )
- icon_name='folder-blue-music'
- ;;
- "Pictures/" )
- icon_name='folder-blue-pictures'
- ;;
- "Public/" )
- icon_name='folder-blue-public'
- ;;
- "Templates/" )
- icon_name='folder-blue-templates'
- ;;
- "Videos/" )
- icon_name='folder-blue-videos'
- ;;
- "root/" )
- icon_name='folder-root'
- ;;
- "home/" | "${USER}/")
- icon_name='folder-home'
- ;;
- *"$" )
- icon_name='folder-blue'
- ;;
- *)
- icon_name='folder-blue'
- ;;
- esac
- ;;
- "inode/symlink" )
- icon_name='inode-symlink'
- ;;
- "audio/flac" | "audio/mpeg" )
- icon_name='music'
- ;;
- "video/mp4" )
- icon_name='video-mp4'
- ;;
- "video/x-matroska" )
- icon_name=video-x-matroska
- ;;
- "image/x-xcf" )
- # notify-send '123'
- icon_name='image-x-xcf'
- ;;
- "image/jpeg" | "image/png" | "image/svg+xml")
- icon_name="${CUR_DIR}/${1}"
- ;;
- "image/gif" )
- icon_name='gif'
- ;;
- "image/vnd.adobe.photoshop" )
- icon_name='image-vnd.adobe.photoshop'
- ;;
- "image/webp" )
- icon_name='gif'
- ;;
- "application/x-pie-executable" )
- icon_name='binary'
- ;;
- "application/pdf" )
- icon_name='pdf'
- ;;
- "application/zip" )
- icon_name='application-zip'
- ;;
- "application/x-xz" )
- icon_name='application-x-xz-compressed-tar'
- ;;
- "application/x-7z-compressed" )
- icon_name='application-x-7zip'
- ;;
- "application/x-rar" )
- icon_name='application-x-rar'
- ;;
- "application/octet-stream" | "application/x-iso9660-image" )
- icon_name='application-x-iso'
- ;;
- "application/x-dosexec" )
- icon_name='application-x-ms-dos-executable'
- ;;
- "text/plain" )
- icon_name='application-text'
- ;;
- "text/x-shellscript" )
- icon_name='application-x-shellscript'
- ;;
- "text/html" )
- icon_name='text-html'
- ;;
- "font/sfnt" | "application/vnd.ms-opentype" )
- icon_name='application-x-font-ttf'
- ;;
- * )
- case "${1}" in
- *."docx" | *".doc" )
- icon_name='application-msword'
- ;;
- *."apk" )
- icon_name='android-package-archive'
- ;;
- * )
- icon_name='unknown'
- ;;
- esac
- ;;
- esac
-
- echo -en "$1\0icon\x1f$icon_name\n"
-}
-
-export -f icon_file_type
-
-# Pass the argument to python script
-function web_search() {
- # Pass the search query to web-search script
- "${MY_PATH}/web-search.py" "${1}"
- exit;
-}
-
-# Handles the web search method
-if [ ! -z "$@" ] && ([[ "$@" == ":webbro"* ]] || [[ "$@" == ":wb"* ]])
-then
- remove=''
- [[ "$*" = ":webbro"* ]] && remove=":webbro" || remove=":wb"
-
- # Search directly from your web browser
- web_search "$(printf '%s\n' "${1//$remove/}")"
- exit;
-
-elif [ ! -z "$@" ] && ([[ "$@" == ":web"* ]] || [[ "$@" == ":w"* ]])
-then
- remove=''
- [[ "$*" = ":web"* ]] && remove=":web" || remove=":w"
-
- # Get search suggestions
- web_search "!$(printf '%s\n' "${1//$remove/}")"
- exit;
-fi
-
-function find_query() {
- QUERY=${1}
- if [[ ! "${QUERY}" =~ ( |\') ]]
- then
- if [ -z "$FD_INSTALLED" ];
- then
- find "${HOME}" -iname *"${QUERY}"* | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- else
- fd -H ${QUERY} ${HOME} | sed "s/\/home\/$USER/\~/" |
- awk -v MY_PATH="${MY_PATH}" '{print $0"\0icon\x1f"MY_PATH"/icons/result.svg\n"}'
- fi
- fi
-}
-
-# File and calls to the web search
-if [ ! -z "$@" ] && ([[ "$@" == ?(\~)/* ]] || [[ "$@" == \?* ]] || [[ "$@" == \!* ]])
-then
- QUERY=$@
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- if [[ "$@" == ?(\~)/* ]]
- then
- [[ "$*" = \~* ]] && QUERY="${QUERY//"~"/"$HOME"}"
-
- coproc ${OPENER} "${QUERY}" > /dev/null 2>&1
- exec 1>&-
- exit
-
- elif [[ "$@" == \?* ]]
- then
- find_query ${QUERY#\?}
-
- else
- # Find the file
- find_query ${QUERY#!}
-
- # Web search
- web_search "! ${QUERY#!}"
- fi
- exit;
-fi
-
-# Create notification if there's an error
-function create_notification() {
- case "${1}" in
- "denied" )
- notify-send -a "Global Search" "Permission denied!" \
- 'You have no permission to access '"${CUR_DIR}!"
- ;;
- "deleted" )
- notify-send -a "Global Search" "Success!" \
- 'File deleted!'
- ;;
- "trashed" )
- notify-send -a "Global Search" "Success!" \
- 'The file has been moved to trash!'
- ;;
- "cleared" )
- notify-send -a "Global Search" "Success!" \
- 'Search history has been successfully cleared!'
- ;;
- * )
- notify-send -a "Global Search" "Somethings wrong I can feel it!" \
- 'This incident will be reported!'
- ;;
- esac
-}
-
-# Show the files in the current directory
-function navigate_to() {
- # process current dir.
- if [ -n "${CUR_DIR}" ]
- then
- CUR_DIR=$(readlink -e "${CUR_DIR}")
- if [ ! -d "${CUR_DIR}" ] || [ ! -r "${CUR_DIR}" ]
- then
- create_notification "denied"
- CUR_DIR=$(realpath ${CUR_DIR} | xargs dirname)
- echo "${CUR_DIR}" > "${PREV_LOC_FILE}"
- else
- echo "${CUR_DIR}/" > "${PREV_LOC_FILE}"
- fi
- pushd "${CUR_DIR}" >/dev/null || exit
- fi
-
- printf "..\0icon\x1fup\n"
-
- if [[ -z "$FD_INSTALLED" ]]
- then
- #Group directories
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- for i in .*/
- do
- [[ -d "${i}" ]] && ([[ "${i}" != "./" ]] && [[ "${i}" != "../"* ]]) && icon_file_type "${i}"
- done
- fi
- for i in */
- do
- [[ -d "${i}" ]] && icon_file_type "${i}"
- done
- #Group files
- if [[ ${SHOW_HIDDEN} = true ]]
- then
- for i in .*
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- fi
- for i in *
- do
- [[ -f "${i}" ]] && icon_file_type "${i}"
- done
- else
- THREADS=$(getconf _NPROCESSORS_ONLN)
- export CUR_DIR
- if [[ ${SHOW_HIDDEN} == true ]]
- then
- fd -Ht d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -Ht f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- else
- fd -t d -d 1 -x bash -c 'icon_file_type "$1/"' _ {} \ | sort -V --parallel=$THREADS
- fd -t f -d 1 -x bash -c 'icon_file_type "$1"' _ {} \ | sort -V --parallel=$THREADS
- fi
- fi
-}
-
-# Set XDG dir
-function return_xdg_dir() {
- target_dir=${1^^}
-
- if [[ "HOME" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir)
-
- elif [[ "DESKTOP" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DESKTOP)
-
- elif [[ "DOCUMENTS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOCUMENTS)
-
- elif [[ "DOWNLOADS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir DOWNLOAD)
-
- elif [[ "MUSIC" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir MUSIC)
-
- elif [[ "PICTURES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PICTURES)
-
- elif [[ "PUBLICSHARE" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir PUBLICSHARE)
-
- elif [[ "TEMPLATES" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir TEMPLATES)
-
- elif [[ "VIDEOS" == *"${target_dir}"* ]]
- then
- CUR_DIR=$(xdg-user-dir VIDEOS)
-
- elif [[ "ROOT" == *"${target_dir}"* ]]
- then
- CUR_DIR="/"
-
- else
- CUR_DIR="${HOME}"
- fi
- navigate_to
- exit;
-}
-
-# Show and Clear History
-if [ ! -z "$@" ] && ([[ "$@" == ":sh" ]] || [[ "$@" == ":show_hist" ]])
-then
- hist=$(tac "${HIST_FILE}")
-
- echo -en "Back\0icon\x1fdraw-arrow-back\n"
- [ -z "${hist}" ] && echo -en "No History Yet\0icon\x1ftext-plain\n"
-
- while IFS= read -r line;
- do
- echo -en "${line}\0icon\x1f${MY_PATH}/icons/history.svg\n";
- done <<< "${hist}"
-
- exit;
-elif [ ! -z "$@" ] && ([[ "$@" == ":ch" ]] || [[ "$@" == ":clear_hist" ]])
-then
- :> "${HIST_FILE}"
- create_notification "cleared"
-
- CUR_DIR="${HOME}"
- navigate_to
- exit;
-fi
-
-# Accepts XDG command
-if [[ ! -z "$@" ]] && [[ "$@" == ":xdg"* ]]
-then
- NEXT_DIR=${*//":xdg "/}
-
- [[ -n "$NEXT_DIR" ]] && return_xdg_dir "${NEXT_DIR}" || return_xdg_dir "${HOME}"
-fi
-
-# Read last location, otherwise we default to PWD.
-[ -f "${PREV_LOC_FILE}" ] && CUR_DIR=$(< "${PREV_LOC_FILE}")
-
-if [[ ! -z "$@" ]] && ([[ "$@" == ":h" ]] || [[ "$@" == ":hidden" ]])
-then
- SHOW_HIDDEN=true
- navigate_to
- exit;
-fi
-
-# Handle argument.
-[ -n "$*" ] && CUR_DIR="${CUR_DIR}/$*"
-
-# Context Menu
-if [ -n "$*" ] && [[ "${ALL_OPTIONS[*]} " = *"$*"* ]]
-then
- case "${1}" in
- "Run" )
- coproc ( eval "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Execute in ${TERM_EMU}" )
- coproc ( eval "${TERM_EMU} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open" )
- coproc ( eval "${OPENER} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${TERM_EMU}" )
- file_path="$(< ${CURRENT_FILE})"
- coproc ( ${TERM_EMU} bash -c "cd ${file_path%/*} ; ${SHELL}" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Open file location in ${FILE_MANAGER}" )
- file_path="$(< "${CURRENT_FILE}")"
- coproc ( eval "${FILE_MANAGER} "${file_path%/*}"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Edit" )
- coproc ( eval "${TERM_EMU} ${TEXT_EDITOR} \"$(< ${CURRENT_FILE})\"" & > /dev/null 2>&1 )
- kill -9 $(pgrep rofi)
- ;;
- "Move to trash" )
- coproc( gio trash "$(< ${CURRENT_FILE})" & > /dev/null 2>&1 )
- create_notification "trashed"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Delete" )
- shred "$(< ${CURRENT_FILE})"
- rm "$(< ${CURRENT_FILE})"
- create_notification "deleted"
- CUR_DIR="$(dirname "$(< ${CURRENT_FILE})")"
- navigate_to
- ;;
- "Send via Bluetooth" )
- rfkill unblock bluetooth && bluetoothctl power on
- sleep 1
- blueman-sendto "$(< ${CURRENT_FILE})" & > /dev/null 2>&1
- kill -9 $(pgrep rofi)
- ;;
- "Back" )
- CUR_DIR="$(< ${PREV_LOC_FILE})"
- navigate_to
- ;;
- esac
- exit;
-fi
-
-function context_menu_icons() {
-
- if [[ "${1}" == "Run" ]]
- then
- echo '\0icon\x1fsystem-run\n'
-
- elif [[ "${1}" == "Execute in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open" ]]
- then
- echo "\0icon\x1futilities-x-terminal\n"
-
- elif [[ "${1}" == "Open file location in ${TERM_EMU}" ]]
- then
- echo "\0icon\x1f${TERM_EMU}\n"
-
- elif [[ "${1}" == "Open file location in ${FILE_MANAGER}" ]]
- then
- echo "\0icon\x1fblue-folder-open\n"
-
- elif [[ "${1}" == "Edit" ]]
- then
- echo "\0icon\x1faccessories-text-editor\n"
-
- elif [[ "${1}" == "Move to trash" ]]
- then
- echo "\0icon\x1fapplication-x-trash\n"
-
- elif [[ "${1}" == "Delete" ]]
- then
- echo "\0icon\x1findicator-trashindicator\n"
-
- elif [[ "${1}" == "Send via Bluetooth" ]]
- then
- echo "\0icon\x1fbluetooth\n"
-
- elif [[ "${1}" == "Back" ]]
- then
- echo "\0icon\x1fback\n"
- fi
-}
-
-function print_context_menu() {
- declare -a arg_arr=("${!1}")
-
- for menu in "${arg_arr[@]}"
- do
- printf "$menu$(context_menu_icons "${menu}")\n"
- done
-}
-
-function context_menu() {
-
- type="$(file --mime-type -b "${CUR_DIR}")"
-
- if [ -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- if [ -x "${CUR_DIR}" ];
- then
- print_context_menu SHELL_OPTIONS[@]
- else
- print_context_menu SHELL_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "application/x-executable" ]] || [[ "${type}" == "application/x-pie-executable" ]]
- then
- if [ -x "${CUR_DIR}" ]
- then
- print_context_menu BIN_OPTIONS[@]
- else
- print_context_menu BIN_NO_X_OPTIONS[@]
- fi
-
- elif [[ "${type}" == "text/plain" ]]
- then
- print_context_menu TEXT_OPTIONS[@]
-
- elif [[ "${type}" == "text/html" ]]
- then
- print_context_menu HTML_OPTIONS[@]
-
- elif [[ "${type}" == "image/jpeg" ]] || [[ "${type}" == "image/png" ]]
- then
- print_context_menu IMAGE_OPTIONS[@]
-
- elif [[ "${type}" == "image/x-xcf" ]] || [[ "${type}" == "image/svg+xml" ]]
- then
- print_context_menu XCF_SVG_OPTIONS[@]
-
- elif [ ! -w "${CUR_DIR}" ] && [[ "${type}" == "text/x-shellscript" ]]
- then
- coproc ( exec "${CUR_DIR}" & > /dev/null 2>&1 )
-
- else
- if [ ! -d "${CUR_DIR}" ] && [ ! -f "${CUR_DIR}" ]
- then
- QUERY="${CUR_DIR//*\/\//}"
-
- echo "${QUERY}" >> "${HIST_FILE}"
-
- find_query "${QUERY#!}"
-
- web_search "!${QUERY}"
- else
- coproc ( ${OPENER} "${CUR_DIR}" & > /dev/null 2>&1 )
- fi
- fi
- exit;
-}
-
-# If argument is not a directory/folder
-if [ ! -d "${CUR_DIR}" ]
-then
- echo "${CUR_DIR}" > "${CURRENT_FILE}"
- context_menu
- exit;
-fi
-
-navigate_to
diff --git a/config/awesome/surreal/configuration/rofi/global/rofi.rasi b/config/awesome/surreal/configuration/rofi/global/rofi.rasi
deleted file mode 100644
index 1c154bff0..000000000
--- a/config/awesome/surreal/configuration/rofi/global/rofi.rasi
+++ /dev/null
@@ -1,152 +0,0 @@
-configuration {
- font: "Inter Regular 10";
- show-icons: true;
- drun-display-format: "{name}";
- fullscreen: false;
- threads: 0;
- matching: "fuzzy";
- scroll-method: 0;
- disable-history: false;
- fullscreen: false;
- window-thumbnail: true;
-}
-
-* {
- transparent: #00000000;
- foreground: #F2F2F2EE;
- background-selected: #F2F2F245;
- background-active: #F2F2F230;
- background-white: #F2F2F211;
- background-black: #00000066;
- urgent: #E91E6366;
- urgent-selected: #E91E6377;
-}
-
-window {
- transparency: "real";
- background-color: @transparent;
- location: center;
- anchor: center;
- x-offset: 0px;
- height: 500px;
- width: 750px;
- orientation: vertical;
- border-radius: 12px;
-}
-
-prompt {
- enabled: false;
-}
-
-button {
- action: "ok";
- str: " ";
- font: "FantasqueSansMono Nerd Font 11";
- expand: false;
- text-color: @foreground;
- background-color: @transparent;
- vertical-align: 0.7;
- horizontal-align: 0.5;
-}
-
-entry {
- font: "Inter Regular 11";
- background-color: @transparent;
- text-color: @foreground;
- expand: true;
- vertical-align: 0.5;
- horizontal-align: 0.5;
- placeholder: "Type to search";
- placeholder-color: @foreground;
- blink: true;
-}
-
-case-indicator {
- background-color: @transparent;
- text-color: @foreground;
- vertical-align: 0.5;
- horizontal-align: 0.5;
-}
-
-entry-wrapper {
- orientation: horizontal;
- vertical-align: 0.5;
- spacing: 4px;
- background-color: @transparent;
- children: [ button, entry, case-indicator ];
-}
-
-inputbar {
- background-color: @background-white;
- text-color: @foreground;
- expand: false;
- border-radius: 24px;
- margin: 0px 225px 0px 225px;
- padding: 10px 10px 10px 10px;
- position: north;
- children: [ entry-wrapper ];
-}
-
-listview {
- background-color: @transparent;
- columns: 2;
- spacing: 5px;
- cycle: false;
- dynamic: true;
- layout: vertical;
-}
-
-mainbox {
- background-color: @background-black;
- children: [ inputbar, listview ];
- spacing: 25px;
- padding: 40px 25px 25px 25px;
-}
-
-element {
- background-color: @transparent;
- text-color: @foreground;
- orientation: horizontal;
- border-radius: 6px;
- padding: 5px 10px 5px 10px;
-}
-
-element-icon {
- size: 36px;
- border: 0;
-}
-
-element-text {
- expand: true;
- horizontal-align: 0;
- vertical-align: 0.5;
- margin: 0 10px 0 10px;
-}
-
-element normal.urgent,
-element alternate.urgent {
- background-color: @urgent;
- text-color: @foreground;
- border-radius: 9px;
-}
-
-element normal.active,
-element alternate.active {
- background-color: @background-active;
- text-color: @foreground;
-}
-
-element selected {
- background-color: @background-selected;
- text-color: @foreground;
-}
-
-element selected.urgent {
- background-color: @urgent-selected;
- text-color: @foreground;
-}
-
-element selected.active {
- background-color: @background-active;
- color: @foreground-selected;
-}
diff --git a/config/awesome/surreal/configuration/rofi/global/web-search.py b/config/awesome/surreal/configuration/rofi/global/web-search.py
deleted file mode 100755
index ba314d592..000000000
--- a/config/awesome/surreal/configuration/rofi/global/web-search.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/env python3
-
-# MIT License
-
-# Copyright (c) 2019 Paolo Donadeo
-
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-
-import json
-import re
-import urllib.parse
-import urllib.request
-import sys
-import os
-import datetime
-import gzip
-
-import subprocess as sp
-
-import html
-
-
-################################################################################
-##### C O N F I G U R A T I O N ######
-################################################################################
-SEARCH_ENGINE = 'google' # or 'duckduckgo'
-BROWSER = 'firefox' # or 'firefox', 'chromium', 'brave', 'lynx'
-TERMINAL = ['kitty', '--'] # or ['st', '-e'] or something like that
-################################################################################
-
-CONFIG = {
- 'BROWSER_PATH' : {
- 'chrome' : ['google-chrome-stable'],
- 'firefox' : ['firefox'],
- 'chromium' : ['chromium-browser'],
- 'brave' : ['brave-browser'],
- 'lynx' : TERMINAL + ['lynx']
- },
- 'USER_AGENT' : {
- 'chrome' : 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
- 'firefox' : 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0',
- 'chromium' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/76.0.3809.100 Chrome/76.0.3809.100 Safari/537.36',
- 'brave' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36',
- 'lynx' : 'Lynx/2.8.9rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.1.1d'
- },
- 'SEARCH_ENGINE_NAME' : {
- 'google' : 'Google',
- 'duckduckgo' : 'DuckDuckGo'
- },
- 'SEARCH_URL' : {
- 'google' : 'https://www.google.com/search?q=',
- 'duckduckgo' : 'https://duckduckgo.com/?q='
- },
- 'SUGGESTION_URL' : {
- 'google' : 'https://www.google.com/complete/search?',
- 'duckduckgo' : 'https://duckduckgo.com/ac/?'
- }
-}
-
-def cleanhtml(txt):
- return re.sub(r'<.*?>', '', txt)
-
-def fetch_suggestions(search_string):
- if SEARCH_ENGINE == 'google':
- r = {
- 'q' : search_string,
- 'cp' : '11',
- 'client' : 'psy-ab',
- 'xssi' : 't',
- 'gs_ri' : 'gws-wiz',
- 'hl' : 'en-IT',
- 'authuser' : '0'
- }
- url = CONFIG['SUGGESTION_URL'][SEARCH_ENGINE] + urllib.parse.urlencode(r)
- headers = {
- 'sec-fetch-mode' : 'cors',
- 'dnt' : '1',
- 'accept-encoding' : 'gzip',
- 'accept-language' : 'en-US;q=0.9,en;q=0.8',
- 'pragma' : 'no-cache',
- 'user-agent' : CONFIG['USER_AGENT'][BROWSER],
- 'accept' : '*/*',
- 'cache-control' : 'no-cache',
- 'authority' : 'www.google.com',
- 'referer' : 'https://www.google.com/',
- 'sec-fetch-site' : 'same-origin'
- }
- req = urllib.request.Request(url, headers=headers, method='GET')
-
- reply_data = gzip.decompress(urllib.request.urlopen(req).read()).split(b'\n')[1]
- reply_data = json.loads(reply_data)
- return [ cleanhtml(res[0]).strip() for res in reply_data[0] ]
- else: # 'duckduckgo'
- if search_string.startswith('!'):
- bang_search = True
- search_string = search_string.lstrip('!')
- else:
- bang_search = False
- r = {
- 'q' : search_string,
- 'callback' : 'autocompleteCallback',
- 'kl' : 'wt-wt',
- '_' : str(int((datetime.datetime.now().timestamp())*1000))
- }
- url = CONFIG['SUGGESTION_URL'][SEARCH_ENGINE] + urllib.parse.urlencode(r)
- if bang_search:
- url = url.replace('?q=', '?q=!')
- headers = {
- 'pragma' : 'no-cache',
- 'dnt' : '1',
- 'accept-encoding' : 'gzip',
- 'accept-language' : 'en-US;q=0.9,en;q=0.8',
- 'user-agent' : CONFIG['USER_AGENT'][BROWSER],
- 'sec-fetch-mode' : 'no-cors',
- 'accept' : '*/*',
- 'cache-control' : 'no-cache',
- 'authority' : 'duckduckgo.com',
- 'referer' : 'https://duckduckgo.com/',
- 'sec-fetch-site' : 'same-origin',
- }
- req = urllib.request.Request(url, headers=headers, method='GET')
- reply_data = gzip.decompress(urllib.request.urlopen(req).read()).decode('utf8')
- reply_data = json.loads(re.match(r'autocompleteCallback\((.*)\);', reply_data).group(1))
- return [ cleanhtml(res['phrase']).strip() for res in reply_data ]
-
-def main():
- search_string = html.unescape((' '.join(sys.argv[1:])).strip())
-
- path_str = os.path.dirname(os.path.realpath(__file__)) + '/'
- icon_path_str = path_str + 'icons/'
- icon_name = icon_path_str
-
- if SEARCH_ENGINE == 'google':
- icon_name += 'google.svg'
- else:
- icon_name += 'ddg.svg'
-
- if search_string.startswith('!'):
- search_string = search_string.rstrip('!').strip()
- results = fetch_suggestions(search_string)
- for r in results:
- print(":wb " + html.unescape(r) + "\0icon\x1f"+icon_name+"\n")
- else:
- url = CONFIG['SEARCH_URL'][SEARCH_ENGINE] + urllib.parse.quote_plus(search_string)
- sp.Popen(CONFIG['BROWSER_PATH'][BROWSER] + [url], stdout=sp.DEVNULL, stderr=sp.DEVNULL, shell=False)
-
-if __name__ == "__main__":
- try:
- main()
- except Exception as e:
- if e:
- sys.exit(1)
diff --git a/config/awesome/surreal/configuration/root/init.lua b/config/awesome/surreal/configuration/root/init.lua
deleted file mode 100644
index 55e43b3ca..000000000
--- a/config/awesome/surreal/configuration/root/init.lua
+++ /dev/null
@@ -1,84 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-
-local apps = require('configuration.apps')
-
-root.buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- function()
- if mymainmenu then
- mymainmenu:hide()
- end
- end
- ),
- awful.button(
- {},
- 3,
- function ()
- if mymainmenu then
- mymainmenu:toggle()
- end
- end
- ),
- awful.button(
- {},
- 2,
- function ()
- awful.util.spawn(apps.default.rofi_appmenu)
- end
- ),
- awful.button(
- {'Control'},
- 2,
- function ()
- awesome.emit_signal('module::exit_screen:show')
- end
- ),
- awful.button(
- {'Shift'},
- 2,
- function ()
- awesome.emit_signal('widget::blue_light:toggle')
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.spawn('light -A 10',false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show',true)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.spawn('light -U 10',false)
- awesome.emit_signal('widget::brightness')
- awesome.emit_signal('module::brightness_osd:show',true)
- end
- ),
- awful.button(
- {'Control'},
- 4,
- function()
- awful.spawn('amixer -D pulse sset Master 5%+',false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show',true)
- end
- ),
- awful.button(
- {'Control'},
- 5,
- function()
- awful.spawn('amixer -D pulse sset Master 5%-',false)
- awesome.emit_signal('widget::volume')
- awesome.emit_signal('module::volume_osd:show',true)
- end
- )
- )
-)
\ No newline at end of file
diff --git a/config/awesome/surreal/configuration/tags/init.lua b/config/awesome/surreal/configuration/tags/init.lua
deleted file mode 100644
index a637fd45c..000000000
--- a/config/awesome/surreal/configuration/tags/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-
-local tags = {
- {
- type = 'terminal',
- icon = icons.terminal,
- default_app = apps.default.terminal,
- gap = beautiful.useless_gap
- },
- {
- type = 'internet',
- icon = icons.web_browser,
- default_app = apps.default.web_browser,
- gap = beautiful.useless_gap
- },
- {
- type = 'code',
- icon = icons.text_editor,
- default_app = apps.default.text_editor,
- gap = beautiful.useless_gap
- },
- {
- type = 'files',
- icon = icons.file_manager,
- default_app = apps.default.file_manager,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.tile
- },
- {
- type = 'multimedia',
- icon = icons.multimedia,
- default_app = apps.default.multimedia,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating,
- gap = 0
- },
- {
- type = 'games',
- icon = icons.games,
- default_app = apps.default.game,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- },
- {
- type = 'graphics',
- icon = icons.graphics,
- default_app = apps.default.graphics,
- gap = beautiful.useless_gap
- },
- {
- type = 'sandbox',
- icon = icons.sandbox,
- default_app = apps.default.sandbox,
- layout = awful.layout.suit.max,
- gap = 0
- },
- {
- type = 'any',
- icon = icons.development,
- default_app = apps.default.development,
- gap = beautiful.useless_gap,
- layout = awful.layout.suit.floating
- }
- -- {
- -- type = 'social',
- -- icon = icons.social,
- -- default_app = 'discord',
- -- gap = beautiful.useless_gap
- -- }
-}
-
--- Set tags layout
-tag.connect_signal(
- 'request::default_layouts',
- function()
- awful.layout.append_default_layouts({
- awful.layout.suit.spiral.dwindle,
- awful.layout.suit.tile,
- awful.layout.suit.floating,
- awful.layout.suit.max
- })
- end
-)
-
--- Create tags for each screen
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- for i, tag in pairs(tags) do
- awful.tag.add(
- i,
- {
- icon = tag.icon,
- icon_only = true,
- layout = tag.layout or awful.layout.suit.spiral.dwindle,
- gap_single_client = true,
- gap = tag.gap,
- screen = s,
- default_app = tag.default_app,
- selected = i == 1
- }
- )
- end
- end
-)
-
-local update_gap_and_shape = function(t)
- -- Get current tag layout
- local current_layout = awful.tag.getproperty(t, 'layout')
- -- If the current layout is awful.layout.suit.max
- if (current_layout == awful.layout.suit.max) then
- -- Set clients gap to 0 and shape to rectangle if maximized
- t.gap = 0
- for _, c in ipairs(t:clients()) do
- if not c.floating or not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- else
- t.gap = beautiful.useless_gap
- for _, c in ipairs(t:clients()) do
- if not c.round_corners or c.maximized or c.fullscreen then
- c.shape = beautiful.client_shape_rectangle
- else
- c.shape = beautiful.client_shape_rounded
- end
- end
- end
-end
-
--- Change tag's client's shape and gap on change
-tag.connect_signal(
- 'property::layout',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Change tag's client's shape and gap on move to tag
-tag.connect_signal(
- 'tagged',
- function(t)
- update_gap_and_shape(t)
- end
-)
-
--- Focus on urgent clients
-awful.tag.attached_connect_signal(
- s,
- 'property::selected',
- function()
- local urgent_clients = function (c)
- return awful.rules.match(c, {urgent = true})
- end
- for c in awful.client.iterate(urgent_clients) do
- if c.first_tag == mouse.screen.selected_tag then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- end
-)
diff --git a/config/awesome/surreal/configuration/user-profile/default.svg b/config/awesome/surreal/configuration/user-profile/default.svg
deleted file mode 100644
index 14f800698..000000000
--- a/config/awesome/surreal/configuration/user-profile/default.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/config/awesome/surreal/layout/bottom-panel.lua b/config/awesome/surreal/layout/bottom-panel.lua
deleted file mode 100644
index b1167a2dd..000000000
--- a/config/awesome/surreal/layout/bottom-panel.lua
+++ /dev/null
@@ -1,77 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local tag_list = require('widget.tag-list')
-
-local bottom_panel = function(s)
-
- local build_widget = function(widget)
- return wibox.widget {
- {
- widget,
- bg = beautiful.groups_title_bg,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
- end,
- widget = wibox.container.background
- },
- top = dpi(10),
- bottom = dpi(10),
- widget = wibox.container.margin
- }
- end
-
- s.search = require('widget.search-apps')()
-
- local separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
- }
-
- local bottom_panel_height = dpi(56)
- local bottom_panel_margins = dpi(5)
-
- local panel = awful.popup {
- widget = {
- {
- layout = wibox.layout.fixed.horizontal,
- s.search,
- separator,
- tag_list(s),
- require('widget.xdg-folders')()
- },
- bg = beautiful.background,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- type = 'dock',
- screen = s,
- ontop = true,
- visible = true,
- height = bottom_panel_height,
- maximum_height = bottom_panel_height,
- placement = awful.placement.bottom,
- shape = gears.shape.rectangle,
- bg = beautiful.transparent
- }
-
- panel:struts
- {
- bottom = bottom_panel_height
- }
-
- return panel
-end
-
-
-return bottom_panel
\ No newline at end of file
diff --git a/config/awesome/surreal/layout/control-center/init.lua b/config/awesome/surreal/layout/control-center/init.lua
deleted file mode 100644
index b3abe7439..000000000
--- a/config/awesome/surreal/layout/control-center/init.lua
+++ /dev/null
@@ -1,300 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-panel_visible = false
-
-local format_item = function(widget)
- return wibox.widget {
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- widget,
- nil
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(88),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-end
-
-local format_item_no_fix_height = function(widget)
- return wibox.widget {
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- widget,
- nil
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-end
-
-local vertical_separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
-}
-
-local control_center_row_one = wibox.widget {
- layout = wibox.layout.align.horizontal,
- forced_height = dpi(48),
- nil,
- format_item(
- require('widget.user-profile')()
- ),
- {
- format_item(
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- require('widget.control-center-switch')(),
- vertical_separator,
- require('widget.end-session')()
- }
- ),
- left = dpi(10),
- widget = wibox.container.margin
- }
-}
-
-local main_control_row_two = wibox.widget {
- layout = wibox.layout.flex.horizontal,
- spacing = dpi(10),
- format_item_no_fix_height(
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- require('widget.airplane-mode'),
- require('widget.bluetooth-toggle'),
- require('widget.blue-light')
- }
- ),
- {
- layout = wibox.layout.flex.vertical,
- spacing = dpi(10),
- format_item_no_fix_height(
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- require('widget.dont-disturb'),
- nil
- }
- ),
- format_item_no_fix_height(
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- require('widget.blur-toggle'),
- nil
- }
- )
- }
-}
-
-local main_control_row_sliders = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- format_item(
- {
- require('widget.blur-slider'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- ),
- format_item(
- {
- require('widget.brightness-slider'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- ),
- format_item(
- {
- require('widget.volume-slider'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- )
-}
-
-local main_control_music_box = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- format_item(
- {
- require('widget.mpd'),
- margins = dpi(10),
- widget = wibox.container.margin
- }
- )
-}
-
-local monitor_control_row_progressbars = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- format_item(
- require('widget.cpu-meter')
- ),
- format_item(
- require('widget.ram-meter')
- ),
- format_item(
- require('widget.temperature-meter')
- ),
- format_item(
- require('widget.harddrive-meter')
- )
-}
-
-local control_center = function(s)
- -- Set the control center geometry
- local panel_width = dpi(400)
- local panel_margins = dpi(5)
-
- local panel = awful.popup {
- widget = {
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- control_center_row_one,
- {
- layout = wibox.layout.stack,
- {
- id = 'main_control',
- visible = true,
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- main_control_row_two,
- main_control_row_sliders,
- main_control_music_box
- },
- {
- id = 'monitor_control',
- visible = false,
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- monitor_control_row_progressbars
- }
- }
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- id = 'control_center',
- bg = beautiful.background,
- shape =function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- screen = s,
- type = 'dock',
- visible = false,
- ontop = true,
- width = dpi(panel_width),
- maximum_width = dpi(panel_width),
- maximum_height = dpi(s.geometry.height - 38),
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- shape = gears.shape.rectangle
- }
-
- awful.placement.top_right(
- panel,
- {
- honor_workarea = true,
- parent = s,
- margins = {
- top = dpi(33),
- right = dpi(5)
- }
- }
- )
-
- panel.opened = false
-
- s.backdrop_control_center = wibox {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- local open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_control_center.visible = true
- focused.control_center.visible = true
-
- panel:emit_signal('opened')
- end
-
- local close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.control_center.visible = false
- focused.backdrop_control_center.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
- s.backdrop_control_center:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- return panel
-end
-
-return control_center
diff --git a/config/awesome/surreal/layout/info-center/init.lua b/config/awesome/surreal/layout/info-center/init.lua
deleted file mode 100644
index dca7c3870..000000000
--- a/config/awesome/surreal/layout/info-center/init.lua
+++ /dev/null
@@ -1,129 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-panel_visible = false
-
-local vertical_separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
-}
-
-local info_center = function(s)
- -- Set the info center geometry
- local panel_width = dpi(350)
- local panel_margins = dpi(5)
-
- local panel = awful.popup {
- widget = {
- {
- {
- layout = wibox.layout.fixed.vertical,
- forced_width = dpi(panel_width),
- spacing = dpi(10),
- require('widget.email'),
- require('widget.weather'),
- require('widget.notif-center')(s)
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- id = 'info_center',
- bg = beautiful.background,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- },
- screen = s,
- type = 'dock',
- visible = false,
- ontop = true,
- width = dpi(panel_width),
- maximum_width = dpi(panel_width),
- maximum_height = dpi(s.geometry.height - 38),
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- shape = gears.shape.rectangle
- }
-
- awful.placement.top_right(
- panel,
- {
- honor_workarea = true,
- parent = s,
- margins = {
- top = dpi(33),
- right = dpi(5)
- }
- }
- )
-
- panel.opened = false
-
- s.backdrop_info_center = wibox {
- ontop = true,
- screen = s,
- bg = beautiful.transparent,
- type = 'utility',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height
- }
-
- local open_panel = function()
- local focused = awful.screen.focused()
- panel_visible = true
-
- focused.backdrop_info_center.visible = true
- focused.info_center.visible = true
-
- panel:emit_signal('opened')
- end
-
- local close_panel = function()
- local focused = awful.screen.focused()
- panel_visible = false
-
- focused.info_center.visible = false
- focused.backdrop_info_center.visible = false
-
- panel:emit_signal('closed')
- end
-
- -- Hide this panel when app dashboard is called.
- function panel:hide_dashboard()
- close_panel()
- end
-
- function panel:toggle()
- self.opened = not self.opened
- if self.opened then
- open_panel()
- else
- close_panel()
- end
- end
-
- s.backdrop_info_center:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- panel:toggle()
- end
- )
- )
- )
-
- return panel
-end
-
-return info_center
diff --git a/config/awesome/surreal/layout/init.lua b/config/awesome/surreal/layout/init.lua
deleted file mode 100644
index 9e9f69816..000000000
--- a/config/awesome/surreal/layout/init.lua
+++ /dev/null
@@ -1,75 +0,0 @@
-local awful = require('awful')
-local top_panel = require('layout.top-panel')
-local bottom_panel = require('layout.bottom-panel')
-local control_center = require('layout.control-center')
-local info_center = require('layout.info-center')
-
--- Create a wibox panel for each screen and add it
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- s.top_panel = top_panel(s)
- s.bottom_panel = bottom_panel(s)
- s.control_center = control_center(s)
- s.info_center = info_center(s)
- s.control_center_show_again = false
- s.info_center_show_again = false
- end
-)
-
--- Hide bars when app go fullscreen
-function update_bars_visibility()
- for s in screen do
- if s.selected_tag then
- local fullscreen = s.selected_tag.fullscreen_mode
- -- Order matter here for shadow
- s.top_panel.visible = not fullscreen
- s.bottom_panel.visible = not fullscreen
- if s.control_center then
- if fullscreen and s.control_center.visible then
- s.control_center:toggle()
- s.control_center_show_again = true
- elseif not fullscreen and not s.control_center.visible and s.control_center_show_again then
- s.control_center:toggle()
- s.control_center_show_again = false
- end
- end
- if s.info_center then
- if fullscreen and s.info_center.visible then
- s.info_center:toggle()
- s.info_center_show_again = true
- elseif not fullscreen and not s.info_center.visible and s.info_center_show_again then
- s.info_center:toggle()
- s.info_center_show_again = false
- end
- end
- end
- end
-end
-
-tag.connect_signal(
- 'property::selected',
- function(t)
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'property::fullscreen',
- function(c)
- if c.first_tag then
- c.first_tag.fullscreen_mode = c.fullscreen
- end
- update_bars_visibility()
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.fullscreen then
- c.screen.selected_tag.fullscreen_mode = false
- update_bars_visibility()
- end
- end
-)
diff --git a/config/awesome/surreal/layout/top-panel.lua b/config/awesome/surreal/layout/top-panel.lua
deleted file mode 100755
index 4ded037c1..000000000
--- a/config/awesome/surreal/layout/top-panel.lua
+++ /dev/null
@@ -1,95 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local icons = require('theme.icons')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local task_list = require('widget.task-list')
-
-local top_panel = function(s)
-
- local panel = wibox
- {
- ontop = true,
- screen = s,
- type = 'dock',
- height = dpi(28),
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y,
- stretch = false,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- panel:struts
- {
- top = dpi(28)
- }
-
- panel:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- w.cursor = 'left_ptr'
- end
- end
- )
-
- s.systray = wibox.widget {
- visible = false,
- base_size = dpi(20),
- horizontal = true,
- screen = 'primary',
- widget = wibox.widget.systray
- }
-
- local clock = require('widget.clock')(s)
- local layout_box = require('widget.layoutbox')(s)
- local add_button = require('widget.open-default-app')(s)
- s.tray_toggler = require('widget.tray-toggle')
- s.updater = require('widget.package-updater')()
- s.screen_rec = require('widget.screen-recorder')()
- s.bluetooth = require('widget.bluetooth')()
- s.battery = require('widget.battery')()
- s.network = require('widget.network')()
- s.control_center_toggle = require('widget.control-center-toggle')()
- s.global_search = require('widget.global-search')()
- s.info_center_toggle = require('widget.info-center-toggle')()
-
- panel : setup {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- {
- layout = wibox.layout.fixed.horizontal,
- task_list(s),
- add_button
- },
- clock,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- s.systray,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- s.tray_toggler,
- s.updater,
- s.screen_rec,
- s.network,
- s.bluetooth,
- s.battery,
- s.control_center_toggle,
- s.global_search,
- layout_box,
- s.info_center_toggle
- }
- }
-
- return panel
-end
-
-return top_panel
diff --git a/config/awesome/surreal/library/json.lua b/config/awesome/surreal/library/json.lua
deleted file mode 100644
index 3fbaea741..000000000
--- a/config/awesome/surreal/library/json.lua
+++ /dev/null
@@ -1,201 +0,0 @@
--- ░▀▀█░█▀▀░█▀█░█▀█░░
--- ░░░█░▀▀█░█░█░█░█░░
--- ░▀▀░░▀▀▀░▀▀▀░▀░▀░░
-
--- This script is from https://gist.github.com/tylerneylon/59f4bcf316be525b30ab
--- License: None. Public Domain
-
---[[ json.lua
-
-A compact pure-Lua JSON library.
-The main functions are: json.stringify, json.parse.
-
-## json.stringify:
-
-This expects the following to be true of any tables being encoded:
- * They only have string or number keys. Number keys must be represented as
- strings in json; this is part of the json spec.
- * They are not recursive. Such a structure cannot be specified in json.
-
-A Lua table is considered to be an array if and only if its set of keys is a
-consecutive sequence of positive integers starting at 1. Arrays are encoded like
-so: `[2, 3, false, "hi"]`. Any other type of Lua table is encoded as a json
-object, encoded like so: `{"key1": 2, "key2": false}`.
-
-Because the Lua nil value cannot be a key, and as a table value is considerd
-equivalent to a missing key, there is no way to express the json "null" value in
-a Lua table. The only way this will output "null" is if your entire input obj is
-nil itself.
-
-An empty Lua table, {}, could be considered either a json object or array -
-it's an ambiguous edge case. We choose to treat this as an object as it is the
-more general type.
-
-To be clear, none of the above considerations is a limitation of this code.
-Rather, it is what we get when we completely observe the json specification for
-as arbitrary a Lua object as json is capable of expressing.
-
-## json.parse:
-
-This function parses json, with the exception that it does not pay attention to
-\u-escaped unicode code points in strings.
-
-It is difficult for Lua to return null as a value. In order to prevent the loss
-of keys with a null value in a json string, this function uses the one-off
-table value json.null (which is just an empty table) to indicate null values.
-This way you can check if a value is null with the conditional
-`val == json.null`.
-
-If you have control over the data and are using Lua, I would recommend just
-avoiding null values in your data to begin with.
-
---]]
-
-
-local json = {}
-
-
--- Internal functions.
-
-local function kind_of(obj)
- if type(obj) ~= 'table' then return type(obj) end
- local i = 1
- for _ in pairs(obj) do
- if obj[i] ~= nil then i = i + 1 else return 'table' end
- end
- if i == 1 then return 'table' else return 'array' end
-end
-
-local function escape_str(s)
- local in_char = {'\\', '"', '/', '\b', '\f', '\n', '\r', '\t'}
- local out_char = {'\\', '"', '/', 'b', 'f', 'n', 'r', 't'}
- for i, c in ipairs(in_char) do
- s = s:gsub(c, '\\' .. out_char[i])
- end
- return s
-end
-
--- Returns pos, did_find; there are two cases:
--- 1. Delimiter found: pos = pos after leading space + delim; did_find = true.
--- 2. Delimiter not found: pos = pos after leading space; did_find = false.
--- This throws an error if err_if_missing is true and the delim is not found.
-local function skip_delim(str, pos, delim, err_if_missing)
- pos = pos + #str:match('^%s*', pos)
- if str:sub(pos, pos) ~= delim then
- if err_if_missing then
- error('Expected ' .. delim .. ' near position ' .. pos)
- end
- return pos, false
- end
- return pos + 1, true
-end
-
--- Expects the given pos to be the first character after the opening quote.
--- Returns val, pos; the returned pos is after the closing quote character.
-local function parse_str_val(str, pos, val)
- val = val or ''
- local early_end_error = 'End of input found while parsing string.'
- if pos > #str then error(early_end_error) end
- local c = str:sub(pos, pos)
- if c == '"' then return val, pos + 1 end
- if c ~= '\\' then return parse_str_val(str, pos + 1, val .. c) end
- -- We must have a \ character.
- local esc_map = {b = '\b', f = '\f', n = '\n', r = '\r', t = '\t'}
- local nextc = str:sub(pos + 1, pos + 1)
- if not nextc then error(early_end_error) end
- return parse_str_val(str, pos + 2, val .. (esc_map[nextc] or nextc))
-end
-
--- Returns val, pos; the returned pos is after the number's final character.
-local function parse_num_val(str, pos)
- local num_str = str:match('^-?%d+%.?%d*[eE]?[+-]?%d*', pos)
- local val = tonumber(num_str)
- if not val then error('Error parsing number at position ' .. pos .. '.') end
- return val, pos + #num_str
-end
-
-
--- Public values and functions.
-
-function json.stringify(obj, as_key)
- local s = {} -- We'll build the string as an array of strings to be concatenated.
- local kind = kind_of(obj) -- This is 'array' if it's an array or type(obj) otherwise.
- if kind == 'array' then
- if as_key then error('Can\'t encode array as key.') end
- s[#s + 1] = '['
- for i, val in ipairs(obj) do
- if i > 1 then s[#s + 1] = ', ' end
- s[#s + 1] = json.stringify(val)
- end
- s[#s + 1] = ']'
- elseif kind == 'table' then
- if as_key then error('Can\'t encode table as key.') end
- s[#s + 1] = '{'
- for k, v in pairs(obj) do
- if #s > 1 then s[#s + 1] = ', ' end
- s[#s + 1] = json.stringify(k, true)
- s[#s + 1] = ':'
- s[#s + 1] = json.stringify(v)
- end
- s[#s + 1] = '}'
- elseif kind == 'string' then
- return '"' .. escape_str(obj) .. '"'
- elseif kind == 'number' then
- if as_key then return '"' .. tostring(obj) .. '"' end
- return tostring(obj)
- elseif kind == 'boolean' then
- return tostring(obj)
- elseif kind == 'nil' then
- return 'null'
- else
- error('Unjsonifiable type: ' .. kind .. '.')
- end
- return table.concat(s)
-end
-
-json.null = {} -- This is a one-off table to represent the null value.
-
-function json.parse(str, pos, end_delim)
- pos = pos or 1
- if pos > #str then error('Reached unexpected end of input.') end
- local pos = pos + #str:match('^%s*', pos) -- Skip whitespace.
- local first = str:sub(pos, pos)
- if first == '{' then -- Parse an object.
- local obj, key, delim_found = {}, true, true
- pos = pos + 1
- while true do
- key, pos = json.parse(str, pos, '}')
- if key == nil then return obj, pos end
- if not delim_found then error('Comma missing between object items.') end
- pos = skip_delim(str, pos, ':', true) -- true -> error if missing.
- obj[key], pos = json.parse(str, pos)
- pos, delim_found = skip_delim(str, pos, ',')
- end
- elseif first == '[' then -- Parse an array.
- local arr, val, delim_found = {}, true, true
- pos = pos + 1
- while true do
- val, pos = json.parse(str, pos, ']')
- if val == nil then return arr, pos end
- if not delim_found then error('Comma missing between array items.') end
- arr[#arr + 1] = val
- pos, delim_found = skip_delim(str, pos, ',')
- end
- elseif first == '"' then -- Parse a string.
- return parse_str_val(str, pos + 1)
- elseif first == '-' or first:match('%d') then -- Parse a number.
- return parse_num_val(str, pos)
- elseif first == end_delim then -- End of an object or array.
- return nil, pos + 1
- else -- Parse true, false, or null.
- local literals = {['true'] = true, ['false'] = false, ['null'] = json.null}
- for lit_str, lit_val in pairs(literals) do
- local lit_end = pos + #lit_str - 1
- if str:sub(pos, lit_end) == lit_str then return lit_val, lit_end + 1 end
- end
- local pos_info_str = 'position ' .. pos .. ': ' .. str:sub(pos, pos + 10)
- error('Invalid json syntax starting at ' .. pos_info_str)
- end
-end
-
-return json
diff --git a/config/awesome/surreal/module/auto-start.lua b/config/awesome/surreal/module/auto-start.lua
deleted file mode 100644
index 601bd399c..000000000
--- a/config/awesome/surreal/module/auto-start.lua
+++ /dev/null
@@ -1,36 +0,0 @@
--- MODULE AUTO-START
--- Run all the apps listed in configuration/apps.lua as run_on_start_up only once when awesome start
-
-local awful = require('awful')
-local naughty = require('naughty')
-local apps = require('configuration.apps')
-local config = require('configuration.config')
-local debug_mode = config.module.auto_start.debug_mode or false
-
-local run_once = function(cmd)
- local findme = cmd
- local firstspace = cmd:find(' ')
- if firstspace then
- findme = cmd:sub(0, firstspace - 1)
- end
- awful.spawn.easy_async_with_shell(
- string.format('pgrep -u $USER -x %s > /dev/null || (%s)', findme, cmd),
- function(stdout, stderr)
- -- Debugger
- if not stderr or stderr == '' or not debug_mode then
- return
- end
- naughty.notification({
- app_name = 'Start-up Applications',
- title = 'Oof! Error detected when starting an application!',
- message = stderr:gsub('%\n', ''),
- timeout = 20,
- icon = require('beautiful').awesome_icon
- })
- end
- )
-end
-
-for _, app in ipairs(apps.run_on_start_up) do
- run_once(app)
-end
diff --git a/config/awesome/surreal/module/brightness-osd.lua b/config/awesome/surreal/module/brightness-osd.lua
deleted file mode 100644
index 3ca340543..000000000
--- a/config/awesome/surreal/module/brightness-osd.lua
+++ /dev/null
@@ -1,233 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-local spawn = require('awful.spawn')
-
-local osd_header = wibox.widget {
- text = 'Brightness',
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local osd_value = wibox.widget {
- text = '0%',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local slider_osd = wibox.widget {
- nil,
- {
- id = 'bri_osd_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local bri_osd_slider = slider_osd.bri_osd_slider
-
-bri_osd_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = bri_osd_slider:get_value()
- spawn('light -S ' .. math.max(brightness_level, 5), false)
-
- -- Update textbox widget text
- osd_value.text = brightness_level .. '%'
-
- -- Update the brightness slider if values here change
- awesome.emit_signal('widget::brightness:update', brightness_level)
-
- if awful.screen.focused().show_bri_osd then
- awesome.emit_signal(
- 'module::brightness_osd:show',
- true
- )
- end
- end
-)
-
-bri_osd_slider:connect_signal(
- 'button::press',
- function()
- awful.screen.focused().show_bri_osd = true
- end
-)
-
-bri_osd_slider:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_bri_osd = true
- end
-)
-
--- The emit will come from brightness slider
-awesome.connect_signal(
- 'module::brightness_osd',
- function(brightness)
- bri_osd_slider:set_value(brightness)
- end
-)
-
-local icon = wibox.widget {
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- forced_height = dpi(150),
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
-}
-
-local osd_height = dpi(250)
-local osd_width = dpi(250)
-local osd_margin = dpi(10)
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- local s = s or {}
- s.show_bri_osd = false
-
- s.brightness_osd_overlay = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'notification',
- screen = s,
- height = osd_height,
- width = osd_width,
- maximum_height = osd_height,
- maximum_width = osd_width,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = 'middle',
- preferred_positions = {'left', 'right', 'top', 'bottom'}
- }
-
- s.brightness_osd_overlay : setup {
- {
- {
- layout = wibox.layout.fixed.vertical,
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- icon,
- nil
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- osd_header,
- nil,
- osd_value
- },
- slider_osd
- },
- spacing = dpi(10),
- layout = wibox.layout.fixed.vertical
- },
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background()
- }
-
- -- Reset timer on mouse hover
- s.brightness_osd_overlay:connect_signal(
- 'mouse::enter',
- function()
- s.show_bri_osd = true
- awesome.emit_signal('module::brightness_osd:rerun')
- end
- )
- end
-)
-
-local hide_osd = gears.timer {
- timeout = 2,
- autostart = true,
- callback = function()
- local focused = awful.screen.focused()
- focused.brightness_osd_overlay.visible = false
- focused.show_bri_osd = false
- end
-}
-
-awesome.connect_signal(
- 'module::brightness_osd:rerun',
- function()
- if hide_osd.started then
- hide_osd:again()
- else
- hide_osd:start()
- end
- end
-)
-
-local placement_placer = function()
- local focused = awful.screen.focused()
- local brightness_osd = focused.brightness_osd_overlay
- awful.placement.next_to(
- brightness_osd,
- {
- preferred_positions = 'top',
- preferred_anchors = 'middle',
- geometry = focused.bottom_panel or s,
- offset = { x = 0, y = dpi(-20)}
- }
- )
-end
-
-awesome.connect_signal(
- 'module::brightness_osd:show',
- function(bool)
- placement_placer()
- awful.screen.focused().brightness_osd_overlay.visible = bool
- if bool then
- awesome.emit_signal('module::brightness_osd:rerun')
- awesome.emit_signal(
- 'module::volume_osd:show',
- false
- )
- else
- if hide_osd.started then
- hide_osd:stop()
- end
- end
- end
-)
diff --git a/config/awesome/surreal/module/dynamic-wallpaper.lua b/config/awesome/surreal/module/dynamic-wallpaper.lua
deleted file mode 100755
index 72e4406a0..000000000
--- a/config/awesome/surreal/module/dynamic-wallpaper.lua
+++ /dev/null
@@ -1,364 +0,0 @@
-----------------------------------------------------------------------------
---- Wallpaper changer module
---
--- @author Gerome Matilla <gerome.matilla07@gmail.com>
--- @copyright 2019 Gerome Matilla
--- @module wallchange
---
---- Nevermind this. Do what you want.
-----------------------------------------------------------------------------
-
--- This module changes wallpaper based on declared time
--- It checks the difference between the current time and the next scheduled time
--- Then convert it to seconds to set it as a timeout value
-
--- Limitations:
--- Timeout paused when laptop/pc is suspended or in sleep mode, and there's probably some bugs too so whatever
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config = require('configuration.config')
-
-
--- ========================================
--- Configuration
--- Change your preference here
--- ========================================
-
-local wall_config = {
- -- Wallpaper directory. The default is:
- -- local wall_config.wall_dir = os.getenv('HOME') .. 'Pictures/Wallpapers/'
- wall_dir = filesystem.get_configuration_dir() .. (config.module.dynamic_wallpaper.wall_dir or 'theme/wallpapers/'),
-
- -- If there's a picture format that awesome accepts and i missed
- -- (which i probably did) feel free to add it right here
- valid_picture_formats = config.module.dynamic_wallpaper.valid_picture_formats or {"jpg", "png", "jpeg"},
-
- -- Table mapping schedule to wallpaper filename
- wallpaper_schedule = config.module.dynamic_wallpaper.wallpaper_schedule or {
- ['00:00:00'] = 'midnight-wallpaper.jpg',
- ['06:22:00'] = 'morning-wallpaper.jpg',
- ['12:00:00'] = 'noon-wallpaper.jpg',
- ['17:58:00'] = 'night-wallpaper.jpg'
- },
-
- -- Don't stretch wallpaper on multihead setups if true
- stretch = config.module.dynamic_wallpaper.stretch or false
-}
-
--- ========================================
--- Processes
--- Don't touch it if it's working
--- ========================================
-
--- Get current time
-local current_time = function()
- return os.date('%H:%M:%S')
-end
-
--- Countdown variable
--- In seconds
-local the_countdown = nil
-
--- Parse seconds to HH:MM:SS
-local function parse_to_time(seconds)
- -- DST ruined me :(
- --return os.date("%H:%M:%S", seconds)
-
- local function format(str)
- while #str < 2 do
- str = '0' .. str
- end
-
- return str
- end
-
- local function convert(num)
- return format(tostring(num))
- end
-
- local hours = convert(math.floor(seconds / 3600))
- seconds = seconds - (hours * 3600)
-
- local minutes = convert(math.floor(seconds / 60))
- seconds = seconds - (minutes * 60)
-
- local seconds = convert(math.floor(seconds))
-
- return (hours .. ':' .. minutes .. ':' .. seconds)
-
-end
-
--- Parse HH:MM:SS to seconds
-local parse_to_seconds = function(time)
-
- -- Convert HH in HH:MM:SS
- local hour_sec = tonumber(string.sub(time, 1, 2)) * 3600
-
- -- Convert MM in HH:MM:SS
- local min_sec = tonumber(string.sub(time, 4, 5)) * 60
-
- -- Get SS in HH:MM:SS
- local get_sec = tonumber(string.sub(time, 7, 8))
-
- -- Return computed seconds
- return (hour_sec + min_sec + get_sec)
-end
-
--- Get time difference
-local time_diff = function(future, past)
- local diff = parse_to_seconds(future) - parse_to_seconds(past)
- if diff < 0 then
- diff = diff + (24 * 3600) --If time difference is negative, the future is meant for tomorrow
- end
- return diff
-end
-
--- Returns a table containing all file paths in a directory
-local function get_dir_contents(dir)
- -- Command to give list of files in directory
- local dir_explore = 'find ' .. dir .. ' -printf "%f\\n"'
- local lines = io.popen(dir_explore):lines() --Done synchronously because we literally can't continue without files
- local files = {}
- for line in lines do
- table.insert(files, line)
- end
- return files
-end
-
--- Returns a table of all the files that were one of the valid file formats
-local function filter_files_by_format(files, valid_file_formats)
- local valid_files = {}
- for _, file in ipairs(files) do
- for _, format in ipairs(valid_file_formats) do
- if string.match(file, ".+%." .. format) ~= nil then
- table.insert(valid_files, file)
- break --No need to check other formats
- end
- end
- end
-
- return valid_files
-end
-
--- Returns a table of files that contained any of the keywords, in the same order as the words themselves
-local function find_files_containing_keywords(files, keywords)
- local found_files = {}
-
- for _, word in ipairs(keywords) do --Preserves keyword order inherently, conveniently
- for _, file in ipairs(files) do
- -- Check if file is word, contains word at beginning or contains word between 2 non-alphanumeric characters
- if file == word or string.find(file, "^" .. word .. "[^%a]") or string.find(file, "[^%a]" .. word .. "[^%a]") then
- found_files[word] = file
- break --Only return 1 file per word
- end
- end
- end
-
- return found_files
-end
-
--- Turn an ordered list of files into a scheduled list of files
-local function auto_schedule(wall_list)
- local sched = {}
- for index, file in ipairs(wall_list) do
- local auto_time = parse_to_time(parse_to_seconds("24:00:00") * (index - 1) / #wall_list)
- sched[auto_time] = file
- end
-
- return sched
-end
-
--- Reformat whatever schedule was specified into an actual schedule
-if #wall_config.wallpaper_schedule == 0 then
- local count = 0
- -- Determine if empty or if manual schedule
- for k, v in pairs(wall_config.wallpaper_schedule) do
- count = count + 1
- end
-
- if count == 0 then --Schedule is actually empty
- -- Get all pictures
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
-
- --Sort pictures as sanely as possible
- local function order_pictures(a, b) --Attempts to mimic default sort but numbers aren't compared as strings
- if tonumber(a) ~= nil and tonumber(b) ~= nil then
- return tonumber(a) < tonumber(b)
- else
- return a < b
- end
- end
- table.sort(pictures, order_pictures)
-
- wall_config.wallpaper_schedule = auto_schedule(pictures)
-
- else --Schedule is manually timed
- -- Get times as list
- local ordered_times = {}
- for time, _ in pairs(wall_config.wallpaper_schedule) do
- table.insert(ordered_times, time)
- end
-
- -- Sort times using seconds as comparison
- local function order_time_asc(a, b)
- return parse_to_seconds(a) < parse_to_seconds(b)
- end
- table.sort(ordered_times, order_time_asc)
-
- -- Get ordered list of keywords from ordered times
- local keywords = {}
- for index, time in ipairs(ordered_times) do
- keywords[index] = wall_config.wallpaper_schedule[time]
- end
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Replace keywords with files
- for index, time in ipairs(ordered_times) do
- local word = wall_config.wallpaper_schedule[time]
- if pictures[word] ~= nil then
- wall_config.wallpaper_schedule[time] = pictures[word]
- else --To avoid crashes, we'll remove entries with invalid keywords
- wall_config.wallpaper_schedule[time] = nil
- end
- end
- end
-else --Schedule is list of keywords
- local keywords = wall_config.wallpaper_schedule
-
- -- Get any pictures that match keywords
- local pictures = filter_files_by_format(get_dir_contents(wall_config.wall_dir), wall_config.valid_picture_formats)
- pictures = find_files_containing_keywords(pictures, keywords)
-
- -- Order files by keyword (if a file was found for the keyword)
- local ordered_pictures = {}
- for _, word in ipairs(keywords) do
- local file = pictures[word]
- if file ~= nil then
- table.insert(ordered_pictures, file)
- end
- end
-
- wall_config.wallpaper_schedule = auto_schedule(ordered_pictures)
-end
-
--- Set wallpaper
-local set_wallpaper = function(path)
- if wall_config.stretch then
- for s in screen do
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path, s)
- end
- else
- -- Update wallpaper based on the data in the array
- gears.wallpaper.maximized (path)
- end
-end
-
--- Update wallpaper (used by the manage_timer function)
--- I think the gears.wallpaper.maximized is too fast or being ran asynchronously
--- So the wallpaper is not being updated on awesome (re)start without this timer
--- We need some delay.
--- Hey it's working, so whatever
-local update_wallpaper = function(wall_name)
- local wall_dir = wall_config.wall_dir .. wall_name
- set_wallpaper(wall_dir)
-
- -- Overwrite the default wallpaper
- -- This is important in case we add an extra monitor
- beautiful.wallpaper = wall_dir
-end
-
--- Updates variables
-local manage_timer = function()
- -- Get current time
- local time_now = parse_to_seconds(current_time())
-
- local previous_time = '' --Scheduled time that should activate now
- local next_time = '' --Time that should activate next
-
- local first_time = '24:00:00' --First scheduled time registered (to be found)
- local last_time = '00:00:00' --Last scheduled time registered (to be found)
-
- -- Find previous_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if previous_time == '' or parsed_time > parse_to_seconds(previous_time) then
- if parsed_time <= time_now then
- previous_time = time
- end
- end
-
- if parsed_time > parse_to_seconds(last_time) then
- last_time = time
- end
- end
-
- -- Previous time being blank = no scheduled time today. Therefore
- -- the last time was yesterday's latest time
- if previous_time == '' then
- previous_time = last_time
- end
-
- --Find next_time
- for time, wallpaper in pairs(wall_config.wallpaper_schedule) do
- local parsed_time = parse_to_seconds(time)
- if next_time == '' or parsed_time < parse_to_seconds(next_time) then
- if parsed_time > time_now then
- next_time = time
- end
- end
-
- if parsed_time < parse_to_seconds(first_time) then
- first_time = time
- end
- end
-
- -- Next time being blank means that there is no scheduled times left for
- -- the current day. So next scheduled time is tomorrow's first time
- if next_time == '' then
- next_time = first_time
- end
-
- -- Update Wallpaper
- update_wallpaper(wall_config.wallpaper_schedule[previous_time])
-
- -- Get the time difference to set as timeout for the wall_updater timer below
- the_countdown = time_diff(next_time, current_time())
-
-end
-
--- Update values at startup
-manage_timer()
-
-local wall_updater = gears.timer {
- -- The timeout is the difference of current time and the scheduled time we set above.
- timeout = the_countdown,
- autostart = true,
- call_now = true,
- callback = function()
- -- Emit signal to update wallpaper
- awesome.emit_signal('module::change_wallpaper')
- end
-}
-
--- Update wallpaper here and update the timeout for the next schedule
-awesome.connect_signal(
- 'module::change_wallpaper',
- function()
- --set_wallpaper(wall_dir .. wall_data[2])
-
- -- Update values for the next specified schedule
- manage_timer()
-
- -- Update timer timeout for the next specified schedule
- wall_updater.timeout = the_countdown
-
- -- Restart timer
- wall_updater:again()
- end
-)
diff --git a/config/awesome/surreal/module/exit-screen.lua b/config/awesome/surreal/module/exit-screen.lua
deleted file mode 100644
index ee2684963..000000000
--- a/config/awesome/surreal/module/exit-screen.lua
+++ /dev/null
@@ -1,360 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-
-local msg_table = {
- 'See you later, alligator!',
- 'After a while, crocodile.',
- 'Stay out of trouble.',
- 'I’m out of here.',
- 'Yamete, onii-chan~. UwU',
- 'Okay...bye, fry guy!',
- 'Peace out!',
- 'Peace out, bitch!',
- 'Gotta get going.',
- 'Out to the door, dinosaur.',
- 'Don\'t forget to come back!',
- 'Smell ya later!',
- 'In a while, crocodile.',
- 'Adios, amigo.',
- 'Begone!',
- 'Arrivederci.',
- 'Never look back!',
- 'So long, sucker!',
- 'Au revoir!',
- 'Later, skater!',
- 'That\'ll do pig. That\'ll do.',
- 'Happy trails!',
- 'Smell ya later!',
- 'See you soon, baboon!',
- 'Bye Felicia!',
- 'Sayonara!',
- 'Ciao!',
- 'Well.... bye.',
- 'Delete your browser history!',
- 'See you, Space Cowboy!',
- 'Change da world. My final message. Goodbye.',
- 'Find out on the next episode of Dragonball Z...',
- 'Choose wisely!'
-}
-
-local greeter_message = wibox.widget {
- markup = 'Choose wisely!',
- font = 'Inter UltraLight 48',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_name = wibox.widget {
- markup = 'user@hostname',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(140),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- profile_imagebox:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_profile_pic()
-
-local update_user_name = function()
- awful.spawn.easy_async_with_shell(
- [[
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- local first_name = stdout:match('(.*)@') or stdout:match('(.-)%s')
- first_name = first_name:sub(1, 1):upper() .. first_name:sub(2)
- profile_name:set_markup(stdout)
- profile_name:emit_signal('widget::redraw_needed')
- end
- )
-end
-
-update_user_name()
-
-local update_greeter_msg = function()
- greeter_message:set_markup(msg_table[math.random(#msg_table)])
- greeter_message:emit_signal('widget::redraw_needed')
-end
-
-update_greeter_msg()
-
-local build_power_button = function(name, icon, callback)
- local power_button_label= wibox.widget {
- text = name,
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-
- local power_button = wibox.widget {
- {
- {
- {
- {
- image = icon,
- widget = wibox.widget.imagebox
- },
- margins = dpi(16),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- widget = wibox.container.background
- },
- shape = gears.shape.rounded_rect,
- forced_width = dpi(90),
- forced_height = dpi(90),
- widget = clickable_container
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- }
-
- local exit_screen_item = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- power_button,
- power_button_label
- }
-
- exit_screen_item:connect_signal(
- 'button::release',
- function()
- callback()
- end
- )
- return exit_screen_item
-end
-
-local suspend_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock .. ' & systemctl suspend')
-end
-
-local logout_command = function()
- awesome.quit()
-end
-
-local lock_command = function()
- awesome.emit_signal('module::exit_screen:hide')
- awful.spawn.with_shell(apps.default.lock)
-end
-
-local poweroff_command = function()
- awful.spawn.with_shell('poweroff')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local reboot_command = function()
- awful.spawn.with_shell('reboot')
- awesome.emit_signal('module::exit_screen:hide')
-end
-
-local poweroff = build_power_button('Shutdown', icons.power, poweroff_command)
-local reboot = build_power_button('Restart', icons.restart, reboot_command)
-local suspend = build_power_button('Sleep', icons.sleep, suspend_command)
-local logout = build_power_button('Logout', icons.logout, logout_command)
-local lock = build_power_button('Lock', icons.lock, lock_command)
-
-local create_exit_screen = function(s)
- s.exit_screen = wibox
- {
- screen = s,
- type = 'splash',
- visible = false,
- ontop = true,
- bg = beautiful.background,
- fg = beautiful.fg_normal,
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y
- }
-
- s.exit_screen:buttons(
- gears.table.join(
- awful.button(
- {},
- 2,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awesome.emit_signal('module::exit_screen:hide')
- end
- )
- )
- )
-
- s.exit_screen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.vertical,
- {
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil
- },
- profile_name
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- widget = wibox.container.margin,
- margins = dpi(15),
- greeter_message
- },
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- {
- {
- poweroff,
- reboot,
- suspend,
- logout,
- lock,
- layout = wibox.layout.fixed.horizontal
- },
- spacing = dpi(30),
- layout = wibox.layout.fixed.vertical
- },
- widget = wibox.container.margin,
- margins = dpi(15)
- },
- nil
- }
- },
- nil
- }
-end
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_exit_screen(s)
- end
-)
-
-screen.connect_signal(
- 'removed',
- function(s)
- create_exit_screen(s)
- end
-)
-
-local exit_screen_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 's' then
- suspend_command()
-
- elseif key == 'e' then
- logout_command()
-
- elseif key == 'l' then
- lock_command()
-
- elseif key == 'p' then
- poweroff_command()
-
- elseif key == 'r' then
- reboot_command()
-
- elseif key == 'Escape' or key == 'q' or key == 'x' then
- awesome.emit_signal('module::exit_screen:hide')
- end
- end
-}
-
-awesome.connect_signal(
- 'module::exit_screen:show',
- function()
- for s in screen do
- s.exit_screen.visible = false
- end
- awful.screen.focused().exit_screen.visible = true
- exit_screen_grabber:start()
- end
-)
-
-awesome.connect_signal(
- 'module::exit_screen:hide',
- function()
- update_greeter_msg()
- exit_screen_grabber:stop()
- for s in screen do
- s.exit_screen.visible = false
- end
- end
-)
diff --git a/config/awesome/surreal/module/lockscreen.lua b/config/awesome/surreal/module/lockscreen.lua
deleted file mode 100755
index ed46bbed0..000000000
--- a/config/awesome/surreal/module/lockscreen.lua
+++ /dev/null
@@ -1,849 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local filesystem = gears.filesystem
-local config_dir = filesystem.get_configuration_dir()
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local config = require('configuration.config')
-
--- Add paths to package.cpath
-package.cpath = package.cpath .. ';' .. config_dir .. '/library/?.so;' .. '/usr/lib/lua-pam/?.so;'
-
--- Configuration table
-local locker_config = {
- -- Clock mode
- military_clock = config.module.lockscreen.military_clock or false,
- -- Fallback password
- fallback_password = function()
- return config.module.lockscreen.fallback_password or 'toor'
- end,
- -- Capture a picture using webcam
- capture_intruder = config.module.lockscreen.capture_intruder or false,
- -- Save location, auto creates
- face_capture_dir = config.module.lockscreen.face_capture_dir or '$(xdg-user-dir PICTURES)/Intruders/',
- -- Blur background
- blur_background = config.module.lockscreen.blur_background or false,
- -- Background directory
- bg_dir = config.module.lockscreen.bg_dir or (config_dir .. 'theme/wallpapers/'),
- -- Default background
- bg_image = config.module.lockscreen.bg_image or 'morning-wallpaper.jpg',
- -- /tmp directory
- tmp_wall_dir = config.module.lockscreen.tmp_wall_dir or '/tmp/awesomewm/' .. os.getenv('USER') .. '/'
-}
-
--- Useful variables (DO NOT TOUCH THESE)
-local input_password = nil
-local lock_again = nil
-local type_again = true
-local capture_now = locker_config.capture_intruder
-local locked_tag = nil
-
-local uname_text = wibox.widget {
- id = 'uname_text',
- markup = '$USER',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local caps_text = wibox.widget {
- id = 'uname_text',
- markup = 'Caps Lock is on',
- font = 'Inter Italic 10',
- align = 'center',
- valign = 'center',
- opacity = 0.0,
- widget = wibox.widget.textbox
-}
-
-local profile_imagebox = wibox.widget {
- id = 'user_icon',
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(130),
- forced_width = dpi(130),
- clip_shape = gears.shape.circle,
- widget = wibox.widget.imagebox
-}
-
-local clock_format = '%H:%M'
-if not locker_config.military_clock then
- clock_format = '%I:%M %p'
-end
-
--- Create clock widget
-local time = wibox.widget.textclock(clock_format, 1)
-
-local wanted_text = wibox.widget {
- markup = 'INTRUDER ALERT!',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local msg_table = {
- 'This incident will be reported.',
- 'We are watching you.',
- 'We know where you live.',
- 'RUN!',
- 'Yamete, Oniichan~ uwu',
- 'This will self-destruct in 5 seconds!',
- 'Image successfully sent!',
- 'You\'re doomed!',
- 'Authentication failed!',
- 'I am watching you.',
- 'I know where you live.',
- 'RUN!',
- 'Your parents must be proud of you.'
-}
-
-local wanted_msg = wibox.widget {
- markup = 'This incident will be reported!',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local wanted_image = wibox.widget {
- image = widget_icon_dir .. 'default.svg',
- resize = true,
- forced_height = dpi(120),
- clip_shape = gears.shape.rounded_rect,
- widget = wibox.widget.imagebox
-}
-
-local date_value = function()
- local ordinal = nil
- local date = os.date('%d')
- local day = os.date('%A')
- local month = os.date('%B')
-
- local first_digit = string.sub(date, 0, 1)
- local last_digit = string.sub(date, -1)
- if first_digit == '0' then
- date = last_digit
- end
-
- if last_digit == '1' and date ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and date ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and date ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- return date .. ordinal .. ' of ' .. month .. ', ' .. day
-end
-
-local date = wibox.widget {
- markup = date_value(),
- font = 'Inter Bold 20',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local circle_container = wibox.widget {
- bg = beautiful.transparent,
- forced_width = dpi(140),
- forced_height = dpi(140),
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local locker_arc = wibox.widget {
- bg = beautiful.transparent,
- forced_width = dpi(140),
- forced_height = dpi(140),
- shape = function(cr, width, height)
- gears.shape.arc(cr, width, height, dpi(5), 0, (math.pi / 2), false, false)
- end,
- widget = wibox.container.background
-}
-
-local rotate_container = wibox.container.rotate()
-local locker_widget = wibox.widget {
- {
- locker_arc,
- widget = rotate_container
- },
- layout = wibox.layout.fixed.vertical
-}
-
--- Rotation direction table
-local rotation_direction = {'north', 'west', 'south', 'east'}
-
--- Red, Green, Yellow, Blue
-local red = beautiful.system_red_dark
-local green = beautiful.system_green_dark
-local yellow = beautiful.system_yellow_dark
-local blue = beautiful.system_blue_dark
-
--- Color table
-local arc_color = {red, green, yellow, blue}
-
--- Processes
-local locker = function(s)
-
- local lockscreen = wibox {
- screen = s,
- visible = false,
- ontop = true,
- type = 'splash',
- width = s.geometry.width,
- height = s.geometry.height,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
-
- -- Update username textbox
- awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- stdout = stdout:gsub('%\n','')
- uname_text:set_markup(stdout)
- end
- )
-
- local update_profile_pic = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox:set_image(stdout)
- else
- profile_imagebox:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
- end
-
- -- Update image
- gears.timer.start_new(
- 2,
- function()
- update_profile_pic()
- end
- )
-
- local wanted_poster = awful.popup {
- widget = {
- {
- {
- wanted_text,
- {
- nil,
- wanted_image,
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- wanted_msg,
- spacing = dpi(5),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(20),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background
- },
- bg = beautiful.transparent,
- type = 'utility',
- ontop = true,
- shape = gears.shape.rectangle,
- maximum_width = dpi(250),
- maximum_height = dpi(250),
- hide_on_right_click = false,
- preferred_anchors = {'middle'},
- visible = false
- }
-
- -- Place wanted poster at the bottom of primary screen
- awful.placement.top(
- wanted_poster,
- {
- margins = {
- top = dpi(10)
- }
- }
- )
-
- -- Check Capslock state
- local check_caps = function()
- awful.spawn.easy_async_with_shell(
- 'xset q | grep Caps | cut -d: -f3 | cut -d0 -f1 | tr -d \' \'',
- function(stdout)
- if stdout:match('on') then
- caps_text.opacity = 1.0
- else
- caps_text.opacity = 0.0
- end
- caps_text:emit_signal('widget::redraw_needed')
- end
- )
- end
-
- -- Rotate the color arc on random direction
- local locker_arc_rotate = function()
-
- local direction = rotation_direction[math.random(#rotation_direction)]
- local color = arc_color[math.random(#arc_color)]
-
- rotate_container.direction = direction
- locker_arc.bg = color
-
- rotate_container:emit_signal('widget::redraw_needed')
- locker_arc:emit_signal('widget::redraw_needed')
- locker_widget:emit_signal('widget::redraw_needed')
- end
-
- -- Check webcam
- local check_webcam = function()
- awful.spawn.easy_async_with_shell(
- 'ls -l /dev/video* | grep /dev/video0',
- function(stdout)
- if not locker_config.capture_intruder then
- capture_now = false
- return
- end
-
- if not stdout:match('/dev/video0') then
- capture_now = false
- else
- capture_now = true
- end
- end
- )
- end
-
- check_webcam()
-
- -- Snap an image of the intruder
- local intruder_capture = function()
- local capture_image = [[
- save_dir="]] .. locker_config.face_capture_dir .. [["
- date="$(date +%Y%m%d_%H%M%S)"
- file_loc="${save_dir}SUSPECT-${date}.png"
-
- if [ ! -d "$save_dir" ]; then
- mkdir -p "$save_dir";
- fi
-
- ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -ss 0:0:2 -frames 1 "${file_loc}"
-
- canberra-gtk-play -i camera-shutter &
- echo "${file_loc}"
- ]]
-
- -- Capture the filthy intruder face
- awful.spawn.easy_async_with_shell(
- capture_image,
- function(stdout)
- circle_container.bg = beautiful.transparent
-
- -- Humiliate the intruder by showing his/her hideous face
- wanted_image:set_image(stdout:gsub('%\n',''))
- wanted_msg:set_markup(msg_table[math.random(#msg_table)])
- wanted_poster.visible= true
-
- awful.placement.top(
- wanted_poster,
- {
- margins = {
- top = dpi(10)
- }
- }
- )
-
- wanted_image:emit_signal('widget::redraw_needed')
- type_again = true
- end
- )
- end
-
- -- Login failed
- local stoprightthereyoucriminalscum = function()
- circle_container.bg = red .. 'AA'
- if capture_now then
- intruder_capture()
- else
- gears.timer.start_new(
- 1,
- function()
- circle_container.bg = beautiful.transparent
- type_again = true
- end
- )
- end
- end
-
- -- Login successful
- local generalkenobi_ohhellothere = function()
- circle_container.bg = green .. 'AA'
-
- -- Add a little delay before unlocking completely
- gears.timer.start_new(
- 1,
- function()
- if capture_now then
- -- Hide wanted poster
- wanted_poster.visible = false
- end
-
- -- Hide all the lockscreen on all screen
- for s in screen do
- if s.index == 1 then
- s.lockscreen.visible = false
- else
- s.lockscreen_extended.visible = false
- end
- end
-
- circle_container.bg = beautiful.transparent
- lock_again = true
- type_again = true
-
- -- Select old tag
- -- And restore minimized focused client if there's any
- if locked_tag then
- locked_tag.selected = true
- locked_tag = nil
- end
- local c = awful.client.restore()
- if c then
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- )
- end
- -- A backdoor.
- -- Sometimes I'm too lazy to type so I decided to create this.
- -- Sometimes my genius is... it's almost frightening.
- local back_door = function()
- generalkenobi_ohhellothere()
- end
-
- -- Check module if valid
- local module_check = function(name)
- if package.loaded[name] then
- return true
- else
- for _, searcher in ipairs(package.searchers or package.loaders) do
- local loader = searcher(name)
- if type(loader) == 'function' then
- package.preload[name] = loader
- return true
- end
- end
- return false
- end
- end
-
- -- Password/key grabber
- local password_grabber = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- mask_event_callback = true,
- keybindings = {
- awful.key {
- modifiers = {'Control'},
- key = 'u',
- on_press = function()
- input_password = nil
- end
- },
- awful.key {
- modifiers = {'Mod1', 'Mod4', 'Shift', 'Control'},
- key = 'Return',
- on_press = function(self)
- if not type_again then
- return
- end
- self:stop()
-
- -- Call backdoor
- back_door()
- end
- }
- },
- keypressed_callback = function(self, mod, key, command)
- if not type_again then
- return
- end
-
- -- Clear input string
- if key == 'Escape' then
- -- Clear input threshold
- input_password = nil
- return
- end
-
- -- Accept only the single charactered key
- -- Ignore 'Shift', 'Control', 'Return', 'F1', 'F2', etc., etc.
- if #key == 1 then
- locker_arc_rotate()
-
- if input_password == nil then
- input_password = key
- return
- end
- input_password = input_password .. key
- end
-
- end,
- keyreleased_callback = function(self, mod, key, command)
- locker_arc.bg = beautiful.transparent
- locker_arc:emit_signal('widget::redraw_needed')
-
- if key == 'Caps_Lock' then
- check_caps()
- return
- end
-
- if not type_again then
- return
- end
-
- -- Validation
- if key == 'Return' then
- -- Validate password
- local authenticated = false
- if input_password ~= nil then
- -- If lua-pam library is 'okay'
- if module_check('liblua_pam') then
- local pam = require('liblua_pam')
- authenticated = pam:auth_current_user(input_password)
- else
- -- Library doesn't exist or returns an error due to some reasons (read the manual)
- -- Use fallback password data
- authenticated = input_password == locker_config.fallback_password()
-
- local rtfm = naughty.action {
- name = 'Read Wiki',
- icon_only = false
- }
-
- local dismiss = naughty.action {
- name = 'Dismiss',
- icon_only = false
- }
-
- rtfm:connect_signal(
- 'invoked',
- function()
- awful.spawn(
- [[sh -c "
- xdg-open 'https://github.com/manilarome/the-glorious-dotfiles/wiki'
- "]],
- false
- )
- end
- )
-
- naughty.notification({
- app_name = 'Security',
- title = 'WARNING',
- message = 'You\'re using the fallback password! It\'s recommended to use the PAM Integration!',
- urgency = 'critical',
- actions = { rtfm, dismiss }
- })
- end
- end
-
- if authenticated then
- -- Come in!
- self:stop()
- generalkenobi_ohhellothere()
- else
- -- F*ck off, you [REDACTED]!
- stoprightthereyoucriminalscum()
- end
-
- -- Allow typing again and empty password container
- type_again = false
- input_password = nil
- end
- end
- }
-
- lockscreen : setup {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- expand = 'none',
- spacing = dpi(20),
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- time,
- nil
- },
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- date,
- nil
- },
- expand = 'none',
- layout = wibox.layout.fixed.vertical
- },
- {
- layout = wibox.layout.fixed.vertical,
- {
- circle_container,
- locker_widget,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- nil,
- },
- layout = wibox.layout.stack
- },
- uname_text,
- caps_text
- },
- },
- nil
- },
- nil
- }
-
- local show_lockscreen = function()
- -- Why is there a lock_again variable?
- -- It prevents the user to spam locking while in a process of authentication
- -- Prevents a potential bug/problem
- if lock_again == true or lock_again == nil then
- -- Force update clock widget
- time:emit_signal('widget::redraw_needed')
-
- -- Check capslock status
- check_caps()
-
- -- Check webcam status
- check_webcam()
-
- -- Show all the lockscreen on each screen
- for s in screen do
- if s.index == 1 then
- s.lockscreen.visible = true
- else
- s.lockscreen_extended.visible = true
- end
- end
-
- -- Start keygrabbing, but with a little delay to
- -- give some extra time for the free_keygrab function
- gears.timer.start_new(
- 0.5,
- function()
- -- Start key grabbing for password
- password_grabber:start()
- end
- )
-
- -- Dont lock again
- lock_again = false
- end
- end
-
- local free_keygrab = function()
- -- Kill rofi instance.
- awful.spawn.with_shell('kill -9 $(pgrep rofi)')
-
- -- Check if there's a keygrabbing instance.
- -- If yes, stop it.
- local keygrabbing_instance = awful.keygrabber.current_instance
- if keygrabbing_instance then
- keygrabbing_instance:stop()
- end
-
- -- Unselect all tags and minimize the focused client
- -- These will fix the problem with virtualbox or
- -- any other program that has keygrabbing enabled
- if client.focus then
- client.focus.minimized = true
- end
- for _, t in ipairs(mouse.screen.selected_tags) do
- locked_tag = t
- t.selected = false
- end
- end
-
- awesome.connect_signal(
- 'module::lockscreen_show',
- function()
- if lock_again == true or lock_again == nil then
- free_keygrab()
- show_lockscreen()
- end
- end
- )
- return lockscreen
-end
-
--- This lockscreen is for the extra/multi monitor
-local locker_ext = function(s)
- local extended_lockscreen = wibox {
- screen = s,
- visible = false,
- ontop = true,
- ontype = 'true',
- x = s.geometry.x,
- y = s.geometry.y,
- width = s.geometry.width,
- height = s.geometry.height,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- }
- return extended_lockscreen
-end
-
--- Create lockscreen for each screen
-local create_lock_screens = function(s)
- if s.index == 1 then
- s.lockscreen = locker(s)
- else
- s.lockscreen_extended = locker_ext(s)
- end
-end
-
--- Don't show notification popups if the screen is locked
-local check_lockscreen_visibility = function()
- focused = awful.screen.focused()
- if focused.lockscreen and focused.lockscreen.visible then
- return true
- end
- if focused.lockscreen_extended and focused.lockscreen_extended.visible then
- return true
- end
- return false
-end
-
--- Notifications signal
-naughty.connect_signal(
- 'request::display',
- function(_)
- if check_lockscreen_visibility() then
- naughty.destroy_all_notifications(nil, 1)
- end
- end
-)
-
--- Filter background image
-local filter_bg_image = function(wall_name, index, ap, width, height)
- -- Checks if the blur has to be blurred
- local blur_filter_param = ''
- if locker_config.blur_background then
- blur_filter_param = '-filter Gaussian -blur 0x10'
- end
-
- -- Create imagemagick command
- local magic = [[
- sh -c "
- if [ ! -d ]] .. locker_config.tmp_wall_dir ..[[ ];
- then
- mkdir -p ]] .. locker_config.tmp_wall_dir .. [[;
- fi
- convert -quality 100 -brightness-contrast -20x0 ]] .. ' ' .. blur_filter_param .. ' '.. locker_config.bg_dir .. wall_name ..
- [[ -gravity center -crop ]] .. ap .. [[:1 +repage -resize ]] .. width .. 'x' .. height ..
- [[! ]] .. locker_config.tmp_wall_dir .. index .. wall_name .. [[
- "]]
- return magic
-end
-
--- Apply lockscreen background image
-local apply_ls_bg_image = function(wall_name)
- -- Iterate through all the screens and create a lockscreen for each of it
- for s in screen do
- local index = s.index .. '-'
-
- -- Get screen geometry
- local screen_width = s.geometry.width
- local screen_height = s.geometry.height
-
- -- Get the right resolution/aspect ratio that will be use as the background
- local aspect_ratio = screen_width / screen_height
- aspect_ratio = math.floor(aspect_ratio * 100) / 100
-
- -- Create image filter command
- local cmd = nil
- cmd = filter_bg_image(wall_name, index, aspect_ratio, screen_width, screen_height)
-
- -- Asign lockscreen to each screen
- if s.index == 1 then
- -- Primary screen
- awful.spawn.easy_async_with_shell(
- cmd,
- function()
- s.lockscreen.bgimage = locker_config.tmp_wall_dir .. index .. wall_name
- end
- )
- else
- -- Multihead screen/s
- awful.spawn.easy_async_with_shell(
- cmd,
- function()
- s.lockscreen_extended.bgimage = locker_config.tmp_wall_dir .. index .. wall_name
- end
- )
- end
- end
-end
-
--- Create a lockscreen and its background for each screen on start-up
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- create_lock_screens(s)
- apply_ls_bg_image(locker_config.bg_image)
- end
-)
-
--- Regenerate lockscreens and its background if a screen was removed to avoid errors
-screen.connect_signal(
- 'removed',
- function(s)
- create_lock_screens(s)
- apply_ls_bg_image(locker_config.bg_image)
- end
-)
diff --git a/config/awesome/surreal/module/menu.lua b/config/awesome/surreal/module/menu.lua
deleted file mode 100644
index 7843dc228..000000000
--- a/config/awesome/surreal/module/menu.lua
+++ /dev/null
@@ -1,246 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local apps = require('configuration.apps')
-local menubar = require('menubar')
-local awful_menu = awful.menu
-local menu_gen = menubar.menu_gen
-local menu_utils = menubar.utils
-local icon_theme = require('menubar.icon_theme')
-local hotkeys_popup = require('awful.hotkeys_popup').widget
-
-local terminal = apps.default.terminal
-local web_browser = apps.default.web_browser
-local file_manager = apps.default.file_manager
-local text_editor = apps.default.text_editor
-local editor_cmd = terminal .. ' -e ' .. (os.getenv('EDITOR') or 'nano')
-
---[[
-
- Awesome-Freedesktop
- Freedesktop.org compliant desktop entries and menu
-
- Menu section
-
- Licensed under GNU General Public License v2
- * (c) 2016, Luke Bonham
- * (c) 2014, Harvey Mittens
-
---]]
-
-local io, pairs, string, table, os = io, pairs, string, table, os
-
--- Expecting a wm_name of awesome omits too many applications and tools
-menu_utils.wm_name = ''
-
--- Menu table
-local menu = {}
-
--- Determines if a path points to a directory, by checking if it can be read
--- (which is `nil` also for empty files) and if its size is not 0.
--- @author blueyed
--- @param path the path to check
-menu.is_dir = function(path)
- local f = io.open(path)
- return f and not f:read(0) and f:seek('end') ~= 0 and f:close()
-end
-
--- Remove non existent paths in order to avoid issues
-local existent_paths = {}
-for k,v in pairs(menu_gen.all_menu_dirs) do
- if menu.is_dir(v) then
- table.insert(existent_paths, v)
- end
-end
-menu_gen.all_menu_dirs = existent_paths
-
--- Determines whether an table includes a certain element
--- @param tab a given table
--- @param val the element to search for
--- @return true if the given string is found within the search table; otherwise, false if not
-menu.has_value = function(tab, val)
- for index, value in pairs(tab) do
- if val:find(value) then
- return true
- end
- end
- return false
-end
-
--- Use MenuBar parsing utils to build a menu for Awesome
--- @return awful.menu
-menu.build = function(args)
- local args = args or {}
- local icon_size = args.icon_size
- local before = args.before or {}
- local after = args.after or {}
- local skip_items = args.skip_items or {}
- local sub_menu = args.sub_menu or false
-
- local result = {}
- local _menu = awful_menu({ items = before })
-
- menu_gen.generate(function(entries)
- -- Add category icons
- for k, v in pairs(menu_gen.all_categories) do
- table.insert(result, { k, {}, v.icon })
- end
-
- -- Get items table
- for k, v in pairs(entries) do
- for _, cat in pairs(result) do
- if cat[1] == v.category then
- if not menu.has_value(skip_items, v.name) then
- table.insert(cat[2], { v.name, v.cmdline, v.icon })
- end
- break
- end
- end
- end
-
- -- Cleanup things a bit
- for i = #result, 1, -1 do
- local v = result[i]
- if #v[2] == 0 then
- -- Remove unused categories
- table.remove(result, i)
- else
- --Sort entries alphabetically (by name)
- table.sort(v[2], function (a, b) return string.byte(a[1]) < string.byte(b[1]) end)
- -- Replace category name with nice name
- v[1] = menu_gen.all_categories[v[1]].name
- end
- end
-
- -- Sort categories alphabetically also
- table.sort(result, function(a, b) return string.byte(a[1]) < string.byte(b[1]) end)
-
- -- Add menu item to hold the generated menu
- if sub_menu then
- result = {{sub_menu, result}}
- end
-
- -- Add items to menu
- for _, v in pairs(result) do _menu:add(v) end
- for _, v in pairs(after) do _menu:add(v) end
- end)
-
- -- Set icon size
- if icon_size then
- for _,v in pairs(menu_gen.all_categories) do
- v.icon = icon_theme():find_icon_path(v.icon_name, icon_size)
- end
- end
-
- -- Hold the menu in the module
- menu.menu = _menu
-
- return _menu
-end
-
--- Create a launcher widget and a main menu
-awesome_menu = {
- {
- 'Hotkeys',
- function()
- hotkeys_popup.show_help(nil, awful.screen.focused())
- end,
- menubar.utils.lookup_icon('keyboard')
- },
- {
- 'Edit config',
- editor_cmd .. ' ' .. awesome.conffile,
- menubar.utils.lookup_icon('accessories-text-editor')
- },
- {
- 'Restart',
- awesome.restart,
- menubar.utils.lookup_icon('system-restart')
- },
- {
- 'Quit',
- function() awesome.quit() end,
- menubar.utils.lookup_icon('system-log-out')
- }
-}
-
-local default_app_menu = {
- {
- 'Terminal',
- terminal,
- menubar.utils.lookup_icon('utilities-terminal')
- },
- {
- 'Web browser',
- web_browser,
- menubar.utils.lookup_icon('webbrowser-app')
- },
- {
- 'File Manager',
- file_manager,
- menubar.utils.lookup_icon('system-file-manager')
- },
- {
- 'Text Editor',
- text_editor,
- menubar.utils.lookup_icon('accessories-text-editor')
- }
-}
-
--- Screenshot menu
-local screenshot_menu = {
- {
- 'Full',
- function()
- gears.timer.start_new(
- 0.1,
- function()
- awful.spawn.easy_async_with_shell(apps.utils.full_screenshot)
- end
- )
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- },
- {
- 'Area',
- function()
- gears.timer.start_new(
- 0.1,
- function()
- awful.spawn.easy_async_with_shell(apps.utils.area_screenshot)
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- )
- end,
- menubar.utils.lookup_icon('accessories-screenshot')
- }
-}
-
-local tools_menu = {
- {
- 'Awesome',
- awesome_menu,
- beautiful.awesome_icon
- },
- {
- 'Take a Screenshot',
- screenshot_menu,
- menubar.utils.lookup_icon('accessories-screenshot')
- },
- {
- 'End Session',
- function()
- awesome.emit_signal('module::exit_screen:show')
- end,
- menubar.utils.lookup_icon('system-shutdown')
- }
-}
-
-mymainmenu = menu.build({
- -- Not actually the size, but the quality of the icon
- icon_size = 48,
- before = default_app_menu,
- after = tools_menu
-})
-
-mylauncher = awful.widget.launcher({image = beautiful.awesome_icon, menu = mymainmenu})
diff --git a/config/awesome/surreal/module/notifications.lua b/config/awesome/surreal/module/notifications.lua
deleted file mode 100644
index f836ca461..000000000
--- a/config/awesome/surreal/module/notifications.lua
+++ /dev/null
@@ -1,256 +0,0 @@
-local gears = require('gears')
-local wibox = require('wibox')
-local awful = require('awful')
-local ruled = require('ruled')
-local naughty = require('naughty')
-local menubar = require('menubar')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
--- Defaults
-naughty.config.defaults.ontop = true
-naughty.config.defaults.icon_size = dpi(32)
-naughty.config.defaults.timeout = 5
-naughty.config.defaults.title = 'System Notification'
-naughty.config.defaults.margin = dpi(16)
-naughty.config.defaults.border_width = 0
-naughty.config.defaults.position = 'top_left'
-naughty.config.defaults.shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
-end
-
--- Apply theme variables
-naughty.config.padding = dpi(8)
-naughty.config.spacing = dpi(8)
-naughty.config.icon_dirs = {
- '/usr/share/icons/Tela',
- '/usr/share/icons/Tela-blue-dark',
- '/usr/share/icons/Papirus/',
- '/usr/share/icons/la-capitaine-icon-theme/',
- '/usr/share/icons/gnome/',
- '/usr/share/icons/hicolor/',
- '/usr/share/pixmaps/'
-}
-naughty.config.icon_formats = { 'svg', 'png', 'jpg', 'gif' }
-
-
--- Presets / rules
-
-ruled.notification.connect_signal(
- 'request::rules',
- function()
-
- -- Critical notifs
- ruled.notification.append_rule {
- rule = { urgency = 'critical' },
- properties = {
- font = 'Inter Bold 10',
- bg = '#ff0000',
- fg = '#ffffff',
- margin = dpi(16),
- position = 'top_left',
- implicit_timeout = 0
- }
- }
-
- -- Normal notifs
- ruled.notification.append_rule {
- rule = { urgency = 'normal' },
- properties = {
- font = 'Inter Regular 10',
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- margin = dpi(16),
- position = 'top_left',
- implicit_timeout = 5
- }
- }
-
- -- Low notifs
- ruled.notification.append_rule {
- rule = { urgency = 'low' },
- properties = {
- font = 'Inter Regular 10',
- bg = beautiful.transparent,
- fg = beautiful.fg_normal,
- margin = dpi(16),
- position = 'top_left',
- implicit_timeout = 5
- }
- }
- end
- )
-
--- Error handling
-naughty.connect_signal(
- 'request::display_error',
- function(message, startup)
- naughty.notification {
- urgency = 'critical',
- title = 'Oops, an error happened'..(startup and ' during startup!' or '!'),
- message = message,
- app_name = 'System Notification',
- icon = beautiful.awesome_icon
- }
- end
-)
-
--- XDG icon lookup
-naughty.connect_signal(
- 'request::icon',
- function(n, context, hints)
- if context ~= 'app_icon' then return end
-
- local path = menubar.utils.lookup_icon(hints.app_icon) or
- menubar.utils.lookup_icon(hints.app_icon:lower())
-
- if path then
- n.icon = path
- end
- end
-)
-
--- Connect to naughty on display signal
-naughty.connect_signal(
- 'request::display',
- function(n)
-
- -- Actions Blueprint
- local actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = dpi(30),
- widget = wibox.container.background
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions
- }
-
- -- Notifbox Blueprint
- naughty.layout.box {
- notification = n,
- type = 'notification',
- screen = awful.screen.preferred(),
- shape = gears.shape.rectangle,
- widget_template = {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- {
- markup = n.app_name or 'System Notification',
- font = 'Inter Bold 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- bg = beautiful.background,
- widget = wibox.container.background,
- },
- {
- {
- {
- resize_strategy = 'center',
- widget = naughty.widget.icon,
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- {
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- {
- align = 'left',
- widget = naughty.widget.title
- },
- {
- align = 'left',
- widget = naughty.widget.message,
- },
- layout = wibox.layout.fixed.vertical
- },
- nil
- },
- margins = beautiful.notification_margin,
- widget = wibox.container.margin,
- },
- layout = wibox.layout.fixed.horizontal,
- },
- fill_space = true,
- spacing = beautiful.notification_margin,
- layout = wibox.layout.fixed.vertical,
- },
- -- Margin between the fake background
- -- Set to 0 to preserve the 'titlebar' effect
- margins = dpi(0),
- widget = wibox.container.margin,
- },
- bg = beautiful.transparent,
- widget = wibox.container.background,
- },
- -- Actions
- actions_template,
- spacing = dpi(4),
- layout = wibox.layout.fixed.vertical,
- },
- bg = beautiful.transparent,
- id = 'background_role',
- widget = naughty.container.background,
- },
- strategy = 'min',
- width = dpi(250),
- widget = wibox.container.constraint,
- },
- strategy = 'max',
- height = dpi(250),
- width = dpi(250),
- widget = wibox.container.constraint
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background
- }
- }
-
- -- Destroy popups if dont_disturb_state mode is on
- -- Or if the info_center is visible
- local focused = awful.screen.focused()
- if _G.dont_disturb_state or (focused.info_center and focused.info_center.visible) then
- naughty.destroy_all_notifications(nil, 1)
- end
- end
-)
diff --git a/config/awesome/surreal/module/quake-terminal.lua b/config/awesome/surreal/module/quake-terminal.lua
deleted file mode 100644
index 4bd2ce77a..000000000
--- a/config/awesome/surreal/module/quake-terminal.lua
+++ /dev/null
@@ -1,112 +0,0 @@
-local awful = require('awful')
-local ruled = require('ruled')
-local beautiful = require('beautiful')
-local app = require('configuration.apps').default.quake
-local client_keys = require('configuration.client.keys')
-local client_buttons = require('configuration.client.buttons')
-local quake_id = nil
-local quake_client = nil
-local quake_opened = false
-
-local quake_properties = function()
- return {
- skip_decoration = true,
- titlebars_enabled = false,
- switch_to_tags = false,
- opacity = 0.95,
- floating = true,
- skip_taskbar = true,
- ontop = true,
- above = true,
- sticky = true,
- hidden = not quake_opened,
- maximized_horizontal = true,
- skip_center = true,
- round_corners = false,
- keys = client_keys,
- buttons = client_buttons,
- placement = awful.placement.top,
- shape = beautiful.client_shape_rectangle
- }
-end
-
-ruled.client.connect_signal(
- 'request::rules',
- function()
- ruled.client.append_rule {
- id = 'quake_terminal',
- rule_any = {
- instance = {
- 'QuakeTerminal'
- }
- },
- properties = quake_properties()
- }
- end
-)
-
-local create_quake = function()
- -- Check if there's already an instance of 'QuakeTerminal'.
- -- If yes, recover it - use it again.
- local quake_term = function (c)
- return ruled.client.match(c, {instance = 'QuakeTerminal'})
- end
- for c in awful.client.iterate(quake_term) do
- -- 'QuakeTerminal' instance detected
- -- Re-apply its properties
- ruled.client.execute(c, quake_properties())
- quake_id = c.pid
- c:emit_signal('request::activate')
- return
- end
- -- No 'QuakeTerminal' instance, spawn one
- quake_id = awful.spawn(app, quake_properties())
-end
-
-local quake_open = function()
- quake_client.hidden = false
- quake_client:emit_signal('request::activate')
-end
-
-local quake_close = function()
- quake_client.hidden = true
-end
-
-local quake_toggle = function()
- quake_opened = not quake_opened
- if not quake_client then
- create_quake()
- else
- if quake_opened then
- quake_open()
- else
- quake_close()
- end
- end
-end
-
-awesome.connect_signal(
- 'module::quake_terminal:toggle',
- function()
- quake_toggle();
- end
-)
-
-client.connect_signal(
- 'manage',
- function(c)
- if c.pid == quake_id then
- quake_client = c
- end
- end
-)
-
-client.connect_signal(
- 'unmanage',
- function(c)
- if c.pid == quake_id then
- quake_opened = false
- quake_client = nil
- end
- end
-)
diff --git a/config/awesome/surreal/module/titlebar.lua b/config/awesome/surreal/module/titlebar.lua
deleted file mode 100644
index ebf958d44..000000000
--- a/config/awesome/surreal/module/titlebar.lua
+++ /dev/null
@@ -1,278 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local wibox = require('wibox')
-local dpi = beautiful.xresources.apply_dpi
-awful.titlebar.enable_tooltip = true
-awful.titlebar.fallback_name = 'Client'
-
-local double_click_event_handler = function(double_click_event)
- if double_click_timer then
- double_click_timer:stop()
- double_click_timer = nil
- double_click_event()
- return
- end
- double_click_timer = gears.timer.start_new(
- 0.20,
- function()
- double_click_timer = nil
- return false
- end
- )
-end
-
-local create_click_events = function(c)
- -- Titlebar button/click events
- local buttons = gears.table.join(
- awful.button(
- {},
- 1,
- function()
- double_click_event_handler(function()
- if c.floating then
- c.floating = false
- return
- end
- c.maximized = not c.maximized
- c:raise()
- return
- end)
- c:activate {context = 'titlebar', action = 'mouse_move'}
- end
- ),
- awful.button(
- {},
- 3,
- function()
- c:activate {context = 'titlebar', action = 'mouse_resize'}
- end
- )
- )
- return buttons
-end
-
-local create_vertical_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.maximizedbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- {
- {
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.floatingbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- layout = wibox.layout.align.horizontal
- }
-end
-
-local create_vertical_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'top' or pos == 'bottom') then
- pos = 'left'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.minimizebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.vertical
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.vertical
- },
- nil,
- layout = wibox.layout.align.vertical
- }
-end
-
-local create_horizontal_bar_dialog = function(c, pos, bg, size)
-
- -- Check if passed position is valid
- if (pos == 'left' or pos == 'right') then
- pos = 'top'
- bg = '#FF00FF'
- end
-
- awful.titlebar(c, {position = pos, bg = bg, size = size}) : setup {
- {
- {
- awful.titlebar.widget.closebutton(c),
- awful.titlebar.widget.ontopbutton(c),
- awful.titlebar.widget.minimizebutton(c),
- spacing = dpi(7),
- layout = wibox.layout.fixed.horizontal
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- {
- buttons = create_click_events(c),
- layout = wibox.layout.flex.horizontal
- },
- nil,
- layout = wibox.layout.align.horizontal
- }
-end
-
-client.connect_signal(
- 'request::titlebars',
- function(c)
-
- -- Customize here
- if c.type == 'normal' then
-
- if c.class == 'kitty' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
-
- elseif c.class == 'XTerm' or c.class == 'UXTerm' then
- create_horizontal_bar(c, 'top',
- beautiful.xresources.get_current_theme().background, beautiful.titlebar_size)
-
- elseif c.class == 'ark' or c.class == 'dolphin' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.instance == 'transmission-qt' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' or c.class == 'Inkscape' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Com.github.johnfactotum.Foliate' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Ettercap' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'Google-chrome' or c.class == 'Chromium' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- elseif c.class == 'TelegramDesktop' then
- create_vertical_bar(c, 'left', '#17212b', beautiful.titlebar_size)
-
- elseif c.class == 'Kvantum Manager' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'qt5ct' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- elseif c.class == 'Nemo' then
- create_horizontal_bar(c, 'top',
- beautiful.gtk.get_theme_variables().base_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
-
- elseif c.type == 'dialog' then
-
- if c.role == 'GtkFileChooserDialog' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'firefox' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Gimp-2.10' then
- create_vertical_bar_dialog(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- elseif c.class == 'Arandr' then
- create_vertical_bar(c, 'left',
- beautiful.gtk.get_theme_variables().bg_color, beautiful.titlebar_size)
-
- else
- create_vertical_bar_dialog(c, 'left', '#00000099', beautiful.titlebar_size)
- end
-
- elseif c.type == 'modal' then
- create_vertical_bar(c, 'left', '#00000099', beautiful.titlebar_size)
-
- else
- create_vertical_bar(c, 'left', beautiful.background, beautiful.titlebar_size)
- end
- end
-)
diff --git a/config/awesome/surreal/module/volume-osd.lua b/config/awesome/surreal/module/volume-osd.lua
deleted file mode 100644
index 07bd38051..000000000
--- a/config/awesome/surreal/module/volume-osd.lua
+++ /dev/null
@@ -1,233 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-local spawn = require('awful.spawn')
-
-local osd_header = wibox.widget {
- text = 'Volume',
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local osd_value = wibox.widget {
- text = '0%',
- font = 'Inter Bold 12',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local slider_osd = wibox.widget {
- nil,
- {
- id = 'vol_osd_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-local vol_osd_slider = slider_osd.vol_osd_slider
-
-vol_osd_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = vol_osd_slider:get_value()
- spawn('amixer -D pulse sset Master ' .. volume_level .. '%', false)
-
- -- Update textbox widget text
- osd_value.text = volume_level .. '%'
-
- -- Update the volume slider if values here change
- awesome.emit_signal('widget::volume:update', volume_level)
-
- if awful.screen.focused().show_vol_osd then
- awesome.emit_signal(
- 'module::volume_osd:show',
- true
- )
- end
- end
-)
-
-vol_osd_slider:connect_signal(
- 'button::press',
- function()
- awful.screen.focused().show_vol_osd = true
- end
-)
-
-vol_osd_slider:connect_signal(
- 'mouse::enter',
- function()
- awful.screen.focused().show_vol_osd = true
- end
-)
-
--- The emit will come from volume slider
-awesome.connect_signal(
- 'module::volume_osd',
- function(volume)
- vol_osd_slider:set_value(volume)
- end
-)
-
-local icon = wibox.widget {
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- forced_height = dpi(150),
- top = dpi(12),
- bottom = dpi(12),
- widget = wibox.container.margin
-}
-
-local osd_height = dpi(250)
-local osd_width = dpi(250)
-local osd_margin = dpi(10)
-
-screen.connect_signal(
- 'request::desktop_decoration',
- function(s)
- local s = s or {}
- s.show_vol_osd = false
-
- s.volume_osd_overlay = awful.popup {
- widget = {
- -- Removing this block will cause an error...
- },
- ontop = true,
- visible = false,
- type = 'notification',
- screen = s,
- height = osd_height,
- width = osd_width,
- maximum_height = osd_height,
- maximum_width = osd_width,
- offset = dpi(5),
- shape = gears.shape.rectangle,
- bg = beautiful.transparent,
- preferred_anchors = 'middle',
- preferred_positions = {'left', 'right', 'top', 'bottom'}
- }
-
- s.volume_osd_overlay : setup {
- {
- {
- layout = wibox.layout.fixed.vertical,
- {
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- icon,
- nil
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- osd_header,
- nil,
- osd_value
- },
- slider_osd
- },
- spacing = dpi(10),
- layout = wibox.layout.fixed.vertical
- },
- },
- left = dpi(24),
- right = dpi(24),
- widget = wibox.container.margin
- },
- bg = beautiful.background,
- shape = gears.shape.rounded_rect,
- widget = wibox.container.background()
- }
-
- -- Reset timer on mouse hover
- s.volume_osd_overlay:connect_signal(
- 'mouse::enter',
- function()
- s.show_vol_osd = true
- awesome.emit_signal('module::volume_osd:rerun')
- end
- )
- end
-)
-
-local hide_osd = gears.timer {
- timeout = 2,
- autostart = true,
- callback = function()
- local focused = awful.screen.focused()
- focused.volume_osd_overlay.visible = false
- focused.show_vol_osd = false
- end
-}
-
-awesome.connect_signal(
- 'module::volume_osd:rerun',
- function()
- if hide_osd.started then
- hide_osd:again()
- else
- hide_osd:start()
- end
- end
-)
-
-local placement_placer = function()
- local focused = awful.screen.focused()
- local volume_osd = focused.volume_osd_overlay
- awful.placement.next_to(
- volume_osd,
- {
- preferred_positions = 'top',
- preferred_anchors = 'middle',
- geometry = focused.bottom_panel or s,
- offset = { x = 0, y = dpi(-20)}
- }
- )
-end
-
-awesome.connect_signal(
- 'module::volume_osd:show',
- function(bool)
- placement_placer()
- awful.screen.focused().volume_osd_overlay.visible = bool
- if bool then
- awesome.emit_signal('module::volume_osd:rerun')
- awesome.emit_signal(
- 'module::brightness_osd:show',
- false
- )
- else
- if hide_osd.started then
- hide_osd:stop()
- end
- end
- end
-)
diff --git a/config/awesome/surreal/rc.lua b/config/awesome/surreal/rc.lua
deleted file mode 100644
index 95d87d986..000000000
--- a/config/awesome/surreal/rc.lua
+++ /dev/null
@@ -1,78 +0,0 @@
--- ░█▀▀░█░█░█▀▄░█▀▄░█▀▀░█▀█░█░░
--- ░▀▀█░█░█░█▀▄░█▀▄░█▀▀░█▀█░█░░
--- ░▀▀▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀
--- Banner generated using `toilet -f pagga AwesomeWM"
-
-local gears = require('gears')
-local beautiful = require('beautiful')
-local awful = require('awful')
-require('awful.autofocus')
-
--- ░█▀▀░█░█░█▀▀░█░░░█░░
--- ░▀▀█░█▀█░█▀▀░█░░░█░░
--- ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
-
-awful.util.shell = 'sh'
-
--- ░▀█▀░█░█░█▀▀░█▄█░█▀▀
--- ░░█░░█▀█░█▀▀░█░█░█▀▀
--- ░░▀░░▀░▀░▀▀▀░▀░▀░▀▀▀
-
-beautiful.init(require('theme'))
-
--- ░█░░░█▀█░█░█░█▀█░█░█░▀█▀
--- ░█░░░█▀█░░█░░█░█░█░█░░█░
--- ░▀▀▀░▀░▀░░▀░░▀▀▀░▀▀▀░░▀░
-
-require('layout')
-
--- ░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀░█░█░█▀▄░█▀█░▀█▀░▀█▀░█▀█░█▀█░█▀▀
--- ░█░░░█░█░█░█░█▀▀░░█░░█░█░█░█░█▀▄░█▀█░░█░░░█░░█░█░█░█░▀▀█
--- ░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀
-
-require('configuration.client')
-require('configuration.root')
-require('configuration.tags')
-root.keys(require('configuration.keys.global'))
-
--- ░█▄█░█▀█░█▀▄░█░█░█░░░█▀▀░█▀▀
--- ░█░█░█░█░█░█░█░█░█░░░█▀▀░▀▀█
--- ░▀░▀░▀▀▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░▀▀▀
-
-require('module.notifications')
-require('module.auto-start')
-require('module.exit-screen')
-require('module.quake-terminal')
-require('module.menu')
-require('module.titlebar')
-require('module.brightness-osd')
-require('module.volume-osd')
-require('module.lockscreen')
-require('module.dynamic-wallpaper')
-
--- ░█░█░█▀█░█░░░█░░░█▀█░█▀█░█▀█░█▀▀░█▀▄
--- ░█▄█░█▀█░█░░░█░░░█▀▀░█▀█░█▀▀░█▀▀░█▀▄
--- ░▀░▀░▀░▀░▀▀▀░▀▀▀░▀░░░▀░▀░▀░░░▀▀▀░▀░▀
-
-screen.connect_signal(
- 'request::wallpaper',
- function(s)
- -- If wallpaper is a function, call it with the screen
- if beautiful.wallpaper then
- if type(beautiful.wallpaper) == 'string' then
-
- -- Check if beautiful.wallpaper is color/image
- if beautiful.wallpaper:sub(1, #'#') == '#' then
- -- If beautiful.wallpaper is color
- gears.wallpaper.set(beautiful.wallpaper)
-
- elseif beautiful.wallpaper:sub(1, #'/') == '/' then
- -- If beautiful.wallpaper is path/image
- gears.wallpaper.maximized(beautiful.wallpaper, s)
- end
- else
- beautiful.wallpaper(s)
- end
- end
- end
-)
diff --git a/config/awesome/surreal/theme/default-theme.lua b/config/awesome/surreal/theme/default-theme.lua
deleted file mode 100644
index 98f1a3b52..000000000
--- a/config/awesome/surreal/theme/default-theme.lua
+++ /dev/null
@@ -1,218 +0,0 @@
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local filesystem = gears.filesystem
-local dpi = beautiful.xresources.apply_dpi
-local gtk_variable = beautiful.gtk.get_theme_variables
-
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-local titlebar_theme = 'stoplight'
-local titlebar_icon_path = theme_dir .. '/icons/titlebar/' .. titlebar_theme .. '/'
-local tip = titlebar_icon_path
-
--- Create theme table
-local theme = {}
-
--- Font
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Menu icon theme
-theme.icon_theme = 'Tela-blue-dark'
-
-local awesome_overrides = function(theme)
-
- theme.dir = theme_dir
- theme.icons = theme_dir .. '/icons/'
-
- -- Default wallpaper path
- theme.wallpaper = theme.dir .. '/wallpapers/morning-wallpaper.jpg'
-
- -- Default font
- theme.font = 'Inter Regular 10'
-
- -- Foreground
- theme.fg_normal = '#ffffffde'
- theme.fg_focus = '#e4e4e4'
- theme.fg_urgent = '#CC9393'
-
- theme.bg_normal = theme.background
- theme.bg_focus = '#5a5a5a'
- theme.bg_urgent = '#3F3F3F'
-
- -- System tray
- theme.bg_systray = theme.background
- theme.systray_icon_spacing = dpi(16)
-
- -- Titlebar
- theme.titlebar_size = dpi(34)
- theme.titlebar_bg_focus = gtk_variable().bg_color:sub(1,7) .. '66'
- theme.titlebar_bg_normal = gtk_variable().base_color:sub(1,7) .. '66'
- theme.titlebar_fg_focus = gtk_variable().fg_color
- theme.titlebar_fg_normal = gtk_variable().fg_color
-
- -- Close Button
- theme.titlebar_close_button_normal = tip .. 'close_normal.svg'
- theme.titlebar_close_button_focus = tip .. 'close_focus.svg'
-
- -- Minimize Button
- theme.titlebar_minimize_button_normal = tip .. 'minimize_normal.svg'
- theme.titlebar_minimize_button_focus = tip .. 'minimize_focus.svg'
-
- -- Ontop Button
- theme.titlebar_ontop_button_normal_inactive = tip .. 'ontop_normal_inactive.svg'
- theme.titlebar_ontop_button_focus_inactive = tip .. 'ontop_focus_inactive.svg'
- theme.titlebar_ontop_button_normal_active = tip .. 'ontop_normal_active.svg'
- theme.titlebar_ontop_button_focus_active = tip .. 'ontop_focus_active.svg'
-
- -- Sticky Button
- theme.titlebar_sticky_button_normal_inactive = tip .. 'sticky_normal_inactive.svg'
- theme.titlebar_sticky_button_focus_inactive = tip .. 'sticky_focus_inactive.svg'
- theme.titlebar_sticky_button_normal_active = tip .. 'sticky_normal_active.svg'
- theme.titlebar_sticky_button_focus_active = tip .. 'sticky_focus_active.svg'
-
- -- Floating Button
- theme.titlebar_floating_button_normal_inactive = tip .. 'floating_normal_inactive.svg'
- theme.titlebar_floating_button_focus_inactive = tip .. 'floating_focus_inactive.svg'
- theme.titlebar_floating_button_normal_active = tip .. 'floating_normal_active.svg'
- theme.titlebar_floating_button_focus_active = tip .. 'floating_focus_active.svg'
-
- -- Maximized Button
- theme.titlebar_maximized_button_normal_inactive = tip .. 'maximized_normal_inactive.svg'
- theme.titlebar_maximized_button_focus_inactive = tip .. 'maximized_focus_inactive.svg'
- theme.titlebar_maximized_button_normal_active = tip .. 'maximized_normal_active.svg'
- theme.titlebar_maximized_button_focus_active = tip .. 'maximized_focus_active.svg'
-
- -- Hovered Close Button
- theme.titlebar_close_button_normal_hover = tip .. 'close_normal_hover.svg'
- theme.titlebar_close_button_focus_hover = tip .. 'close_focus_hover.svg'
-
- -- Hovered Minimize Buttin
- theme.titlebar_minimize_button_normal_hover = tip .. 'minimize_normal_hover.svg'
- theme.titlebar_minimize_button_focus_hover = tip .. 'minimize_focus_hover.svg'
-
- -- Hovered Ontop Button
- theme.titlebar_ontop_button_normal_inactive_hover = tip .. 'ontop_normal_inactive_hover.svg'
- theme.titlebar_ontop_button_focus_inactive_hover = tip .. 'ontop_focus_inactive_hover.svg'
- theme.titlebar_ontop_button_normal_active_hover = tip .. 'ontop_normal_active_hover.svg'
- theme.titlebar_ontop_button_focus_active_hover = tip .. 'ontop_focus_active_hover.svg'
-
- -- Hovered Sticky Button
- theme.titlebar_sticky_button_normal_inactive_hover = tip .. 'sticky_normal_inactive_hover.svg'
- theme.titlebar_sticky_button_focus_inactive_hover = tip .. 'sticky_focus_inactive_hover.svg'
- theme.titlebar_sticky_button_normal_active_hover = tip .. 'sticky_normal_active_hover.svg'
- theme.titlebar_sticky_button_focus_active_hover = tip .. 'sticky_focus_active_hover.svg'
-
- -- Hovered Floating Button
- theme.titlebar_floating_button_normal_inactive_hover = tip .. 'floating_normal_inactive_hover.svg'
- theme.titlebar_floating_button_focus_inactive_hover = tip .. 'floating_focus_inactive_hover.svg'
- theme.titlebar_floating_button_normal_active_hover = tip .. 'floating_normal_active_hover.svg'
- theme.titlebar_floating_button_focus_active_hover = tip .. 'floating_focus_active_hover.svg'
-
- -- Hovered Maximized Button
- theme.titlebar_maximized_button_normal_inactive_hover = tip .. 'maximized_normal_inactive_hover.svg'
- theme.titlebar_maximized_button_focus_inactive_hover = tip .. 'maximized_focus_inactive_hover.svg'
- theme.titlebar_maximized_button_normal_active_hover = tip .. 'maximized_normal_active_hover.svg'
- theme.titlebar_maximized_button_focus_active_hover = tip .. 'maximized_focus_active_hover.svg'
-
- -- UI Groups
- theme.groups_title_bg = '#ffffff' .. '15'
- theme.groups_bg = '#ffffff' .. '10'
- theme.groups_radius = dpi(16)
-
- -- UI events
- theme.leave_event = transparent
- theme.enter_event = '#ffffff' .. '10'
- theme.press_event = '#ffffff' .. '15'
- theme.release_event = '#ffffff' .. '10'
-
- -- Client Decorations
-
- -- Borders
- theme.border_focus = gtk_variable().bg_color
- theme.border_normal = gtk_variable().base_color
- theme.border_marked = '#CC9393'
- theme.border_width = dpi(0)
- theme.border_radius = dpi(12)
-
- -- Decorations
- theme.useless_gap = dpi(4)
- theme.client_shape_rounded = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, dpi(12))
- end
-
- -- Menu
- theme.menu_font = 'Inter Regular 11'
- theme.menu_submenu = '' -- ➤
-
- theme.menu_height = dpi(34)
- theme.menu_width = dpi(200)
- theme.menu_border_width = dpi(20)
- theme.menu_bg_focus = theme.accent .. 'CC'
-
- theme.menu_bg_normal = theme.background:sub(1,7) .. '33'
- theme.menu_fg_normal = '#ffffff'
- theme.menu_fg_focus = '#ffffff'
- theme.menu_border_color = theme.background:sub(1,7) .. '5C'
-
- -- Tooltips
-
- theme.tooltip_bg = theme.background
- theme.tooltip_border_color = theme.transparent
- theme.tooltip_border_width = 0
- theme.tooltip_gaps = dpi(5)
- theme.tooltip_shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, dpi(6))
- end
-
- -- Separators
- theme.separator_color = '#f2f2f244'
-
- -- Layoutbox icons
- theme.layout_max = theme.icons .. 'layouts/max.svg'
- theme.layout_tile = theme.icons .. 'layouts/tile.svg'
- theme.layout_dwindle = theme.icons .. 'layouts/dwindle.svg'
- theme.layout_floating = theme.icons .. 'layouts/floating.svg'
-
- -- Taglist
- theme.taglist_bg_empty = theme.background .. '99'
- theme.taglist_bg_occupied = '#ffffff' .. '1A'
- theme.taglist_bg_urgent = '#E91E63' .. '99'
- theme.taglist_bg_focus = theme.background
- theme.taglist_spacing = dpi(0)
-
- -- Tasklist
- theme.tasklist_font = 'Inter Regular 10'
- theme.tasklist_bg_normal = theme.background .. '99'
- theme.tasklist_bg_focus = theme.background
- theme.tasklist_bg_urgent = '#E91E63' .. '99'
- theme.tasklist_fg_focus = '#DDDDDD'
- theme.tasklist_fg_urgent = '#ffffff'
- theme.tasklist_fg_normal = '#AAAAAA'
-
- -- Notification
- theme.notification_position = 'top_left'
- theme.notification_bg = theme.transparent
- theme.notification_margin = dpi(5)
- theme.notification_border_width = dpi(0)
- theme.notification_border_color = theme.transparent
- theme.notification_spacing = dpi(5)
- theme.notification_icon_resize_strategy = 'center'
- theme.notification_icon_size = dpi(32)
-
- -- Client Snap Theme
- theme.snap_bg = theme.background
- theme.snap_shape = gears.shape.rectangle
- theme.snap_border_width = dpi(15)
-
- -- Hotkey popup
- theme.hotkeys_font = 'Inter Bold'
- theme.hotkeys_description_font = 'Inter Regular Regular'
- theme.hotkeys_bg = theme.background
- theme.hotkeys_group_margin = dpi(20)
-end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/surreal/theme/icons/awesome.svg b/config/awesome/surreal/theme/icons/awesome.svg
deleted file mode 100644
index 31d715c1b..000000000
--- a/config/awesome/surreal/theme/icons/awesome.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/battery-charge.svg b/config/awesome/surreal/theme/icons/battery-charge.svg
deleted file mode 100644
index f8efe9cb4..000000000
--- a/config/awesome/surreal/theme/icons/battery-charge.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/theme/icons/battery-discharge.svg b/config/awesome/surreal/theme/icons/battery-discharge.svg
deleted file mode 100644
index 908ce1573..000000000
--- a/config/awesome/surreal/theme/icons/battery-discharge.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/brightness-7.svg b/config/awesome/surreal/theme/icons/brightness-7.svg
deleted file mode 100644
index 862549ea8..000000000
--- a/config/awesome/surreal/theme/icons/brightness-7.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/chart-areaspline.svg b/config/awesome/surreal/theme/icons/chart-areaspline.svg
deleted file mode 100644
index 58bf0d311..000000000
--- a/config/awesome/surreal/theme/icons/chart-areaspline.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/close.svg b/config/awesome/surreal/theme/icons/close.svg
deleted file mode 100644
index bd89d7902..000000000
--- a/config/awesome/surreal/theme/icons/close.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/effects.svg b/config/awesome/surreal/theme/icons/effects.svg
deleted file mode 100644
index e6c514ba5..000000000
--- a/config/awesome/surreal/theme/icons/effects.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/harddisk.svg b/config/awesome/surreal/theme/icons/harddisk.svg
deleted file mode 100644
index 4c23f54e1..000000000
--- a/config/awesome/surreal/theme/icons/harddisk.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/init.lua b/config/awesome/surreal/theme/icons/init.lua
deleted file mode 100644
index 5cf636bca..000000000
--- a/config/awesome/surreal/theme/icons/init.lua
+++ /dev/null
@@ -1,42 +0,0 @@
--- Icons directory
-local dir = os.getenv('HOME') .. '/.config/awesome/theme/icons/'
-
-
-return {
-
- -- Action Bar
- web_browser = dir .. 'tag-list/' .. 'web-browser.svg',
- text_editor = dir .. 'tag-list/' .. 'text-editor.svg',
- social = dir .. 'tag-list/' .. 'social.svg',
- file_manager = dir .. 'tag-list/' .. 'file-manager.svg',
- multimedia = dir .. 'tag-list/' .. 'multimedia.svg',
- games = dir .. 'tag-list/' .. 'games.svg',
- development = dir .. 'tag-list/' .. 'development.svg',
- sandbox = dir .. 'tag-list/' .. 'sandbox.svg',
- terminal = dir .. 'tag-list/' .. 'terminal.svg',
- graphics = dir .. 'tag-list/' .. 'graphics.svg',
- menu = dir .. 'tag-list/' .. 'menu.svg',
- close_small = dir .. 'tag-list/' .. 'close-small.svg',
-
- -- Others/System UI
- close = dir .. 'close.svg',
- logout = dir .. 'logout.svg',
- sleep = dir .. 'power-sleep.svg',
- power = dir .. 'power.svg',
- lock = dir .. 'lock.svg',
- restart = dir .. 'restart.svg',
- search = dir .. 'magnify.svg',
- volume = dir .. 'volume-high.svg',
- brightness = dir .. 'brightness-7.svg',
- effects = dir .. 'effects.svg',
- chart = dir .. 'chart-areaspline.svg',
- memory = dir .. 'memory.svg',
- harddisk = dir .. 'harddisk.svg',
- thermometer = dir .. 'thermometer.svg',
- plus = dir .. 'plus.svg',
- batt_charging = dir .. 'battery-charge.svg',
- batt_discharging = dir .. 'battery-discharge.svg',
- toggled_on = dir .. 'toggled-on.svg',
- toggled_off = dir .. 'toggled-off.svg'
-
-}
diff --git a/config/awesome/surreal/theme/icons/layouts/dwindle.svg b/config/awesome/surreal/theme/icons/layouts/dwindle.svg
deleted file mode 100644
index 9e5905810..000000000
--- a/config/awesome/surreal/theme/icons/layouts/dwindle.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/layouts/floating.svg b/config/awesome/surreal/theme/icons/layouts/floating.svg
deleted file mode 100644
index 5dcd846e7..000000000
--- a/config/awesome/surreal/theme/icons/layouts/floating.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/layouts/fullscreen.svg b/config/awesome/surreal/theme/icons/layouts/fullscreen.svg
deleted file mode 100644
index 6ba320b8c..000000000
--- a/config/awesome/surreal/theme/icons/layouts/fullscreen.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/layouts/max.svg b/config/awesome/surreal/theme/icons/layouts/max.svg
deleted file mode 100644
index f1b2b2d70..000000000
--- a/config/awesome/surreal/theme/icons/layouts/max.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/layouts/tile.svg b/config/awesome/surreal/theme/icons/layouts/tile.svg
deleted file mode 100644
index ea62c5d34..000000000
--- a/config/awesome/surreal/theme/icons/layouts/tile.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/lock.svg b/config/awesome/surreal/theme/icons/lock.svg
deleted file mode 100644
index ac383ed63..000000000
--- a/config/awesome/surreal/theme/icons/lock.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/logout.svg b/config/awesome/surreal/theme/icons/logout.svg
deleted file mode 100644
index 4689c49f0..000000000
--- a/config/awesome/surreal/theme/icons/logout.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/magnify.svg b/config/awesome/surreal/theme/icons/magnify.svg
deleted file mode 100644
index 40d9c1a18..000000000
--- a/config/awesome/surreal/theme/icons/magnify.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/memory.svg b/config/awesome/surreal/theme/icons/memory.svg
deleted file mode 100644
index 0cf4b104c..000000000
--- a/config/awesome/surreal/theme/icons/memory.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/plus.svg b/config/awesome/surreal/theme/icons/plus.svg
deleted file mode 100644
index 737cad466..000000000
--- a/config/awesome/surreal/theme/icons/plus.svg
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/power-sleep.svg b/config/awesome/surreal/theme/icons/power-sleep.svg
deleted file mode 100644
index a4dbfc0af..000000000
--- a/config/awesome/surreal/theme/icons/power-sleep.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/power.svg b/config/awesome/surreal/theme/icons/power.svg
deleted file mode 100644
index 770943b06..000000000
--- a/config/awesome/surreal/theme/icons/power.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/restart.svg b/config/awesome/surreal/theme/icons/restart.svg
deleted file mode 100644
index f0c33676c..000000000
--- a/config/awesome/surreal/theme/icons/restart.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/ship-wheel.svg b/config/awesome/surreal/theme/icons/ship-wheel.svg
deleted file mode 100644
index 5237ed379..000000000
--- a/config/awesome/surreal/theme/icons/ship-wheel.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/close-small.svg b/config/awesome/surreal/theme/icons/tag-list/close-small.svg
deleted file mode 100644
index f244baeba..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/close-small.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/development.svg b/config/awesome/surreal/theme/icons/tag-list/development.svg
deleted file mode 100644
index 773a53883..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/development.svg
+++ /dev/null
@@ -1,174 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/file-manager.svg b/config/awesome/surreal/theme/icons/tag-list/file-manager.svg
deleted file mode 100644
index ba047479c..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/file-manager.svg
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/games.svg b/config/awesome/surreal/theme/icons/tag-list/games.svg
deleted file mode 100644
index 631438745..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/games.svg
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/graphics.svg b/config/awesome/surreal/theme/icons/tag-list/graphics.svg
deleted file mode 100644
index caefefb8a..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/graphics.svg
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/menu.svg b/config/awesome/surreal/theme/icons/tag-list/menu.svg
deleted file mode 100644
index 616879f78..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/menu.svg
+++ /dev/null
@@ -1,257 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/menu2.svg b/config/awesome/surreal/theme/icons/tag-list/menu2.svg
deleted file mode 100644
index 3e82e3d9e..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/menu2.svg
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/multimedia.svg b/config/awesome/surreal/theme/icons/tag-list/multimedia.svg
deleted file mode 100644
index ff5f5b047..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/multimedia.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/sandbox.svg b/config/awesome/surreal/theme/icons/tag-list/sandbox.svg
deleted file mode 100644
index 67c192159..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/sandbox.svg
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/social.svg b/config/awesome/surreal/theme/icons/tag-list/social.svg
deleted file mode 100644
index 721770971..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/social.svg
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/terminal.svg b/config/awesome/surreal/theme/icons/tag-list/terminal.svg
deleted file mode 100644
index 3c4fc1fec..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/terminal.svg
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/text-editor.svg b/config/awesome/surreal/theme/icons/tag-list/text-editor.svg
deleted file mode 100644
index 4aa63b88e..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/text-editor.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/tag-list/web-browser.svg b/config/awesome/surreal/theme/icons/tag-list/web-browser.svg
deleted file mode 100644
index 4b975145f..000000000
--- a/config/awesome/surreal/theme/icons/tag-list/web-browser.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/thermometer.svg b/config/awesome/surreal/theme/icons/thermometer.svg
deleted file mode 100644
index 5c25a1e5a..000000000
--- a/config/awesome/surreal/theme/icons/thermometer.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/close_focus.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/close_focus.svg
deleted file mode 100644
index a245e7de5..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/close_focus.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/close_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/close_focus_hover.svg
deleted file mode 100644
index fa1eddd94..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/close_focus_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/close_normal.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/close_normal.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/close_normal.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/close_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/close_normal_hover.svg
deleted file mode 100644
index fa1eddd94..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/close_normal_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_active.svg
deleted file mode 100644
index 262337ee8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_inactive.svg
deleted file mode 100644
index 262337ee8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
deleted file mode 100644
index 944a695df..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_active.svg
deleted file mode 100644
index 8d22f5600..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
deleted file mode 100644
index 8d22f5600..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
deleted file mode 100644
index fbfb44753..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_focus.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_focus.svg
deleted file mode 100644
index 0e5bebcfa..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_focus.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_focus_hover.svg
deleted file mode 100644
index 1414c2b1f..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_focus_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_normal.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_normal.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_normal.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_normal_hover.svg
deleted file mode 100644
index 1414c2b1f..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/minimize_normal_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_active.svg
deleted file mode 100644
index 749324906..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
deleted file mode 100644
index 749324906..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
deleted file mode 100644
index 94e2ac7f0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_active.svg
deleted file mode 100644
index 321d316a9..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
deleted file mode 100644
index 321d316a9..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_active.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_active.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
deleted file mode 100644
index c2337bbef..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
deleted file mode 100644
index ad333896a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/close_focus.svg b/config/awesome/surreal/theme/icons/titlebar/lines/close_focus.svg
deleted file mode 100644
index 85b31ec88..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/close_focus.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/close_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/close_focus_hover.svg
deleted file mode 100644
index 40aa9e1bd..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/close_focus_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/close_normal.svg b/config/awesome/surreal/theme/icons/titlebar/lines/close_normal.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/close_normal.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/close_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/close_normal_hover.svg
deleted file mode 100644
index 40aa9e1bd..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/close_normal_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_active.svg
deleted file mode 100644
index 11b9bac0f..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_active_hover.svg
deleted file mode 100644
index 325c24a50..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_inactive.svg
deleted file mode 100644
index 11b9bac0f..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
deleted file mode 100644
index 779539e62..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_active_hover.svg
deleted file mode 100644
index 7286450b3..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
deleted file mode 100644
index 1441ea467..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_active.svg
deleted file mode 100644
index 6891963a2..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_inactive.svg
deleted file mode 100644
index 6891963a2..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 77f065086..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_focus.svg b/config/awesome/surreal/theme/icons/titlebar/lines/minimize_focus.svg
deleted file mode 100644
index abe6ebb69..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_focus.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/minimize_focus_hover.svg
deleted file mode 100644
index 49619d8b3..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_focus_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_normal.svg b/config/awesome/surreal/theme/icons/titlebar/lines/minimize_normal.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_normal.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/minimize_normal_hover.svg
deleted file mode 100644
index 49619d8b3..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/minimize_normal_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_active.svg
deleted file mode 100644
index ed4ecfd58..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_inactive.svg
deleted file mode 100644
index ed4ecfd58..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
deleted file mode 100644
index 81e15d9cb..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_active.svg
deleted file mode 100644
index 2945c0fb7..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_inactive.svg
deleted file mode 100644
index 2945c0fb7..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_active.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_active.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_inactive.svg
deleted file mode 100644
index 972d88ff0..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
deleted file mode 100644
index 2cef61b41..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_focus.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/close_focus.svg
deleted file mode 100644
index 8b63331d3..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_focus.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/close_focus_hover.svg
deleted file mode 100644
index 2d77a2f42..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_focus_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_normal.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/close_normal.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_normal.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/close_normal_hover.svg
deleted file mode 100644
index 2d77a2f42..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/close_normal_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_active.svg
deleted file mode 100644
index ae9727f26..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
deleted file mode 100644
index ae9727f26..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
deleted file mode 100644
index 2faad3718..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_active.svg
deleted file mode 100644
index e522d74fd..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
deleted file mode 100644
index e522d74fd..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 7a5c055f8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_focus.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_focus.svg
deleted file mode 100644
index 215d91c82..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_focus.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
deleted file mode 100644
index 282d8b092..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_normal.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_normal.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_normal.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
deleted file mode 100644
index 282d8b092..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_active.svg
deleted file mode 100644
index 432f74f8a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
deleted file mode 100644
index 432f74f8a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
deleted file mode 100644
index a3da6d277..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_active.svg
deleted file mode 100644
index 47248cbca..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
deleted file mode 100644
index 47248cbca..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_active.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_active.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
deleted file mode 100644
index 6acee0864..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
deleted file mode 100644
index fe22df269..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/close_focus.svg b/config/awesome/surreal/theme/icons/titlebar/win10/close_focus.svg
deleted file mode 100644
index d1bc232a3..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/close_focus.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/close_normal.svg b/config/awesome/surreal/theme/icons/titlebar/win10/close_normal.svg
deleted file mode 100644
index d013ac809..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/close_normal.svg
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/close_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/close_normal_hover.svg
deleted file mode 100644
index d1bc232a3..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/close_normal_hover.svg
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_active.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_active.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_active_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_active_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_inactive.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_inactive.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_active.svg
deleted file mode 100644
index 6f0faf1cd..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_active.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_active_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_active_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_inactive.svg
deleted file mode 100644
index 6f0faf1cd..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_inactive.svg
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
deleted file mode 100644
index cdda009c8..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_active.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_active.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_active.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_inactive.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_inactive.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_active.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_active.svg
deleted file mode 100644
index d9dea80c7..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_active.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_active_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_inactive.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_inactive.svg
deleted file mode 100644
index d9dea80c7..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_inactive.svg
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
deleted file mode 100644
index 6b6452c0a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_focus.svg b/config/awesome/surreal/theme/icons/titlebar/win10/minimize_focus.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_focus.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_focus_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/minimize_focus_hover.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_focus_hover.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_normal.svg b/config/awesome/surreal/theme/icons/titlebar/win10/minimize_normal.svg
deleted file mode 100644
index a3efb9b8a..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_normal.svg
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_normal_hover.svg b/config/awesome/surreal/theme/icons/titlebar/win10/minimize_normal_hover.svg
deleted file mode 100644
index b8a5cc7e6..000000000
--- a/config/awesome/surreal/theme/icons/titlebar/win10/minimize_normal_hover.svg
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/toggled-off.svg b/config/awesome/surreal/theme/icons/toggled-off.svg
deleted file mode 100644
index a73de492b..000000000
--- a/config/awesome/surreal/theme/icons/toggled-off.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/toggled-on.svg b/config/awesome/surreal/theme/icons/toggled-on.svg
deleted file mode 100644
index a75ef1c6d..000000000
--- a/config/awesome/surreal/theme/icons/toggled-on.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/theme/icons/volume-high.svg b/config/awesome/surreal/theme/icons/volume-high.svg
deleted file mode 100644
index 7a59aa1ae..000000000
--- a/config/awesome/surreal/theme/icons/volume-high.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/theme/init.lua b/config/awesome/surreal/theme/init.lua
deleted file mode 100644
index 5c9326de9..000000000
--- a/config/awesome/surreal/theme/init.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local gtable = require('gears.table')
-local default_theme = require('theme.default-theme')
--- PICK THEME HERE
-local theme = require('theme.surreal-theme')
-
-local final_theme = {}
-gtable.crush(final_theme, default_theme.theme)
-gtable.crush(final_theme, theme.theme)
-default_theme.awesome_overrides(final_theme)
-theme.awesome_overrides(final_theme)
-
-return final_theme
diff --git a/config/awesome/surreal/theme/surreal-theme/init.lua b/config/awesome/surreal/theme/surreal-theme/init.lua
deleted file mode 100644
index 9c444e68c..000000000
--- a/config/awesome/surreal/theme/surreal-theme/init.lua
+++ /dev/null
@@ -1,53 +0,0 @@
-local filesystem = require('gears.filesystem')
-local theme_dir = filesystem.get_configuration_dir() .. '/theme'
-
-local theme = {}
-
-theme.icons = theme_dir .. '/icons/'
-theme.font = 'Inter Regular 10'
-theme.font_bold = 'Inter Bold 10'
-
--- Colorscheme
-theme.system_black_dark = '#3D4C5F'
-theme.system_black_light = '#56687E'
-
-theme.system_red_dark = '#EE4F84'
-theme.system_red_light = '#F48FB1'
-
-theme.system_green_dark = '#53E2AE'
-theme.system_green_light = '#A1EFD3'
-
-theme.system_yellow_dark = '#F1FF52'
-theme.system_yellow_light = '#F1FA8C'
-
-theme.system_blue_dark = '#6498EF'
-theme.system_blue_light = '#92B6F4'
-
-theme.system_magenta_dark = '#985EFF'
-theme.system_magenta_light = '#BD99FF'
-
-theme.system_cyan_dark = '#24D1E7'
-theme.system_cyan_light = '#87DFEB'
-
-theme.system_white_dark = '#E5E5E5'
-theme.system_white_light = '#F8F8F2'
-
--- Accent color
-theme.accent = theme.system_blue_dark
-
--- Background color
-theme.background = '#00000066'
-theme.background_light = '#f2f2f266'
-
--- Transparent
-theme.transparent = '#00000000'
-
--- Awesome icon
-theme.awesome_icon = theme.icons .. 'awesome.svg'
-
-local awesome_overrides = function(theme) end
-
-return {
- theme = theme,
- awesome_overrides = awesome_overrides
-}
diff --git a/config/awesome/surreal/utilities/profile-image b/config/awesome/surreal/utilities/profile-image
deleted file mode 100755
index 350c9ea5d..000000000
--- a/config/awesome/surreal/utilities/profile-image
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-
-# Depends: Mugshot
-# Written by manilarome
-
-awesome_dir="${HOME}/.config/awesome/"
-user_profile_dir="${awesome_dir}/configuration/user-profile/"
-
-accountsservice_user_icons="/var/lib/AccountsService/icons/${USER}"
-
-# Check if user image exists
-if [ -f "${user_profile_dir}${USER}.png" ];
-then
- if [ -f "${accountsservice_user_icons}" ];
- then
- if ! cmp --silent "${user_profile_dir}${USER}.png" "${accountsservice_user_icons}";
- then
- cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png"
- fi
- printf "${user_profile_dir}${USER}.png"
- else
- printf "${user_profile_dir}${USER}.png"
- fi
- exit;
-else
- if [ -f "${accountsservice_user_icons}" ];
- then
- cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png"
- printf "${user_profile_dir}${USER}.png"
- exit;
- else
- printf "default"
- exit;
- fi
-fi
\ No newline at end of file
diff --git a/config/awesome/surreal/utilities/snap b/config/awesome/surreal/utilities/snap
deleted file mode 100755
index 970cee2ee..000000000
--- a/config/awesome/surreal/utilities/snap
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env bash
-
-# ----------------------------------------------------------------------------
-# --- Simple screenshot script using maim and AwesomeWM API
-# --
-# -- Accepts `area` and `full` string args
-# --
-# -- For more details check `man maim`
-# --
-# -- @author manilarome <gerome.matilla07@gmail.com>
-# -- @copyright 2020 manilarome
-# -- @script snap
-# ----------------------------------------------------------------------------
-
-screenshot_dir=$(xdg-user-dir PICTURES)/Screenshots/
-
-# Check save directory
-# Create it if it doesn't exist
-function check_dir() {
- if [ ! -d "$screenshot_dir" ];
- then
- mkdir -p "$screenshot_dir"
- fi
-}
-
-# Main function
-function shot() {
-
- check_dir
-
- file_loc="${screenshot_dir}$(date +%Y%m%d_%H%M%S).png"
-
- maim_command="$1"
- notif_message="$2"
-
- # Execute maim command
- ${maim_command} "${file_loc}"
-
- # Exit if the user cancels the screenshot
- # So it means there's no new screenshot image file
- if [ ! -f "${file_loc}" ];
- then
- exit;
- fi
-
- # Copy to clipboard
- xclip -selection clipboard -t image/png -i "${screenshot_dir}"/`ls -1 -t "${screenshot_dir}" | head -1` &
-
- awesome-client "
-
- -- IMPORTANT NOTE: THIS PART OF THE SCRIPT IS LUA!
- naughty = require('naughty')
- awful = require('awful')
- beautiful = require('beautiful')
- dpi = beautiful.xresources.apply_dpi
-
- local open_image = naughty.action {
- name = 'Open',
- icon_only = false,
- }
-
- local open_folder = naughty.action {
- name = 'Open Folder',
- icon_only = false,
- }
-
- local delete_image = naughty.action {
- name = 'Delete',
- icon_only = false,
- }
-
- -- Execute the callback when 'Open' is pressed
- open_image:connect_signal('invoked', function()
- awful.spawn('xdg-open ' .. '${file_loc}', false)
- end)
-
- open_folder:connect_signal('invoked', function()
- awful.spawn('xdg-open ' .. '${screenshot_dir}', false)
- end)
-
- -- Execute the callback when 'Delete' is pressed
- delete_image:connect_signal('invoked', function()
- awful.spawn('gio trash ' .. '${file_loc}', false)
- end)
-
- -- Show notification
- naughty.notification ({
- app_name = 'Screenshot Tool',
- icon = '${file_loc}',
- timeout = 10,
- title = 'Snap!',
- message = '${notif_message}',
- actions = { open_image, open_folder, delete_image }
- })
- "
-
-}
-
-# Check the args passed
-if [ -z "$1" ] || ([ "$1" != 'full' ] && [ "$1" != 'area' ]);
-then
- echo "
- Requires an argument:
- area - Area screenshot
- full - Fullscreen screenshot
-
- Example:
- ./snap area
- ./snap full
- "
-elif [ "$1" = 'full' ];
-then
- msg="Full screenshot saved and copied to clipboard!"
- shot 'maim -u -m 1' "${msg}"
-elif [ "$1" = 'area' ];
-then
- msg='Area screenshot saved and copied to clipboard!'
- shot 'maim -u -s -n -m 1' "${msg}"
-fi
-
diff --git a/config/awesome/surreal/widget/airplane-mode/icons/airplane-mode-off.svg b/config/awesome/surreal/widget/airplane-mode/icons/airplane-mode-off.svg
deleted file mode 100644
index 7a4c91c0a..000000000
--- a/config/awesome/surreal/widget/airplane-mode/icons/airplane-mode-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/airplane-mode/icons/airplane-mode.svg b/config/awesome/surreal/widget/airplane-mode/icons/airplane-mode.svg
deleted file mode 100644
index 70fc89d1a..000000000
--- a/config/awesome/surreal/widget/airplane-mode/icons/airplane-mode.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/airplane-mode/init.lua b/config/awesome/surreal/widget/airplane-mode/init.lua
deleted file mode 100755
index 60deb285a..000000000
--- a/config/awesome/surreal/widget/airplane-mode/init.lua
+++ /dev/null
@@ -1,203 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/airplane-mode/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local ap_state = false
-
-local action_name = wibox.widget {
- text = 'Airplane Mode',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'airplane-mode-off.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if ap_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.accent
- button_widget.icon:set_image(widget_icon_dir .. 'airplane-mode.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'airplane-mode-off.svg')
- end
-end
-
-local check_airplane_mode_state = function()
-
- local cmd = 'cat ' .. widget_dir .. 'airplane_mode'
-
- awful.spawn.easy_async_with_shell(
- cmd,
- function(stdout)
-
- local status = stdout
-
- if status:match('true') then
- ap_state = true
- elseif status:match('false') then
- ap_state = false
- else
- ap_state = false
- awful.spawn.easy_async_with_shell(
- 'echo "false" > ' .. widget_dir .. 'airplane_mode',
- function(stdout)
- end
- )
- end
- update_widget()
- end
- )
-end
-
-check_airplane_mode_state()
-
-local ap_off_cmd = [[
-
- rfkill unblock wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode disabled!',
- message = 'Initializing network devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode-off' .. '.svg' .. [['
- })
- "
- ]] .. "echo false > " .. widget_dir .. "airplane_mode" .. [[
-]]
-
-local ap_on_cmd = [[
-
- rfkill block wlan
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Network Manager',
- title = 'Airplane mode enabled!',
- message = 'Disabling radio devices',
- icon = ']] .. widget_icon_dir .. 'airplane-mode' .. '.svg' .. [['
- })
- "
- ]] .. 'echo true > ' .. widget_dir .. 'airplane_mode' .. [[
-]]
-
-local toggle_action = function()
- if ap_state then
- awful.spawn.easy_async_with_shell(
- ap_off_cmd,
- function(stdout)
- ap_state = false
- update_widget()
- end
- )
- else
- awful.spawn.easy_async_with_shell(
- ap_on_cmd,
- function(stdout)
- ap_state = true
- update_widget()
- end
- )
- end
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-gears.timer {
- timeout = 5,
- autostart = true,
- callback = function()
- check_airplane_mode_state()
- end
-}
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-
-}
-
-return action_widget
diff --git a/config/awesome/surreal/widget/battery/icons/battery-alert-red.svg b/config/awesome/surreal/widget/battery/icons/battery-alert-red.svg
deleted file mode 100644
index 469b0ba07..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-alert-red.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-alert.svg b/config/awesome/surreal/widget/battery/icons/battery-alert.svg
deleted file mode 100644
index 6ec71c1dc..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-alert.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-10.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-10.svg
deleted file mode 100644
index 4de288a04..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-10.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-20.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-20.svg
deleted file mode 100644
index af759b5f6..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-20.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-30.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-30.svg
deleted file mode 100644
index f72154534..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-30.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-50.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-50.svg
deleted file mode 100644
index 42bb375ae..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-50.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-60.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-60.svg
deleted file mode 100644
index 4057d330d..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-60.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-80.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-80.svg
deleted file mode 100644
index 5febc309a..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-80.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-charging-90.svg b/config/awesome/surreal/widget/battery/icons/battery-charging-90.svg
deleted file mode 100644
index 544aa5d86..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-charging-90.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-100.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-100.svg
deleted file mode 100644
index b3d3337b5..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-100.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-20.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-20.svg
deleted file mode 100644
index 116a7f968..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-20.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-30.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-30.svg
deleted file mode 100644
index d1f4463ba..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-30.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-50.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-50.svg
deleted file mode 100644
index 8dca81e0e..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-50.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-60.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-60.svg
deleted file mode 100644
index 25eaca0bc..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-60.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-80.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-80.svg
deleted file mode 100644
index 5612658ef..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-80.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-discharging-90.svg b/config/awesome/surreal/widget/battery/icons/battery-discharging-90.svg
deleted file mode 100644
index d11ab44fa..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-discharging-90.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-fully-charged.svg b/config/awesome/surreal/widget/battery/icons/battery-fully-charged.svg
deleted file mode 100644
index 7e923fce6..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-fully-charged.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery-unknown.svg b/config/awesome/surreal/widget/battery/icons/battery-unknown.svg
deleted file mode 100644
index ad67bdf22..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery-unknown.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/icons/battery.svg b/config/awesome/surreal/widget/battery/icons/battery.svg
deleted file mode 100644
index adba7ac99..000000000
--- a/config/awesome/surreal/widget/battery/icons/battery.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/battery/init.lua b/config/awesome/surreal/widget/battery/init.lua
deleted file mode 100644
index 1dbbf9328..000000000
--- a/config/awesome/surreal/widget/battery/init.lua
+++ /dev/null
@@ -1,209 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/battery/icons/'
-
-local return_button = function()
-
- local battery_imagebox = wibox.widget {
- nil,
- {
- id = 'icon',
- image = widget_icon_dir .. 'battery' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- }
-
- local battery_percentage_text = wibox.widget {
- id = 'percent_text',
- text = '100%',
- font = 'Inter Bold 11',
- align = 'center',
- valign = 'center',
- visible = false,
- widget = wibox.widget.textbox
- }
-
-
- local battery_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(0),
- battery_imagebox,
- battery_percentage_text
- }
-
-
- local battery_button = wibox.widget {
- {
- battery_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- battery_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.power_manager , false)
- end
- )
- )
- )
-
- local battery_tooltip = awful.tooltip {
- objects = {battery_button},
- text = 'None',
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
-
- local get_battery_info = function()
- awful.spawn.easy_async_with_shell(
- 'upower -i $(upower -e | grep BAT)',
- function(stdout)
- if stdout == nil or stdout == '' then
- battery_tooltip:set_text('No battery detected!')
- return
- end
-
- -- Remove new line from the last line
- battery_tooltip:set_text(stdout:sub(1, -2))
- end
- )
- end
- get_battery_info()
-
- battery_widget:connect_signal(
- 'mouse::enter',
- function()
- get_battery_info()
- end
- )
-
- local last_battery_check = os.time()
- local notify_critcal_battery = true
-
- local show_battery_warning = function()
- naughty.notification ({
- icon = widget_icon_dir .. 'battery-alert.svg',
- app_name = 'System notification',
- title = 'Battery is dying!',
- message = 'Hey, I think we have a problem here. Save your work before reaching the oblivion.',
- urgency = 'critical'
- })
- end
-
- local update_battery = function(status)
-
- awful.spawn.easy_async_with_shell(
- [[sh -c "
- upower -i $(upower -e | grep BAT) | grep percentage | awk '{print \$2}' | tr -d '\n%'
- "]],
- function(stdout)
- local battery_percentage = tonumber(stdout)
-
- -- Stop if null
- if not battery_percentage then
- return
- end
-
- battery_widget.spacing = dpi(5)
- battery_percentage_text.visible = true
- battery_percentage_text:set_text(battery_percentage .. '%')
-
- local icon_name = 'battery'
-
- -- Fully charged
- if (status == 'fully-charged' or status == 'charging') and battery_percentage == 100 then
- icon_name = icon_name .. '-' .. 'fully-charged'
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- return
- end
-
- -- Critical level warning message
- if (battery_percentage > 0 and battery_percentage < 10) and status == 'discharging' then
- icon_name = icon_name .. '-' .. 'alert-red'
-
- if os.difftime(os.time(), last_battery_check) > 300 or notify_critcal_battery then
- last_battery_check = os.time()
- notify_critcal_battery = false
- show_battery_warning()
- end
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- return
- end
-
- -- Discharging
- if battery_percentage > 0 and battery_percentage < 20 then
- icon_name = icon_name .. '-' .. status .. '-' .. '10'
-
- elseif battery_percentage >= 20 and battery_percentage < 30 then
- icon_name = icon_name .. '-' .. status .. '-' .. '20'
-
- elseif battery_percentage >= 30 and battery_percentage < 50 then
- icon_name = icon_name .. '-' .. status .. '-' .. '30'
-
- elseif battery_percentage >= 50 and battery_percentage < 60 then
- icon_name = icon_name .. '-' .. status .. '-' .. '50'
-
- elseif battery_percentage >= 60 and battery_percentage < 80 then
- icon_name = icon_name .. '-' .. status .. '-' .. '60'
-
- elseif battery_percentage >= 80 and battery_percentage < 90 then
- icon_name = icon_name .. '-' .. status .. '-' .. '80'
-
- elseif battery_percentage >= 90 and battery_percentage < 100 then
- icon_name = icon_name .. '-' .. status .. '-' .. '90'
- end
-
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
- end
- )
- end
-
- -- Watch status if charging, discharging, fully-charged
- watch(
- [[sh -c "
- upower -i $(upower -e | grep BAT) | grep state | awk '{print \$2}' | tr -d '\n'
- "]],
- 5,
- function(widget, stdout)
- local status = stdout:gsub('%\n', '')
-
- -- If no output or no battery detected
- if status == nil or status == '' then
- battery_widget.spacing = dpi(0)
- battery_percentage_text.visible = false
- battery_tooltip:set_text('No battery detected!')
- battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'battery-unknown' .. '.svg'))
- return
- end
-
- update_battery(status)
- end
- )
-
- return battery_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/blue-light/icons/blue-light-off.svg b/config/awesome/surreal/widget/blue-light/icons/blue-light-off.svg
deleted file mode 100644
index cd6572a7b..000000000
--- a/config/awesome/surreal/widget/blue-light/icons/blue-light-off.svg
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/blue-light/icons/blue-light.svg b/config/awesome/surreal/widget/blue-light/icons/blue-light.svg
deleted file mode 100644
index c0d42ccbb..000000000
--- a/config/awesome/surreal/widget/blue-light/icons/blue-light.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/blue-light/init.lua b/config/awesome/surreal/widget/blue-light/init.lua
deleted file mode 100644
index 367a1af43..000000000
--- a/config/awesome/surreal/widget/blue-light/init.lua
+++ /dev/null
@@ -1,159 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/blue-light/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local device_state = false
-
-local action_name = wibox.widget {
- text = 'Blue Light',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'blue-light-off.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if blue_light_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.accent
- button_widget.icon:set_image(widget_icon_dir .. 'blue-light.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'blue-light-off.svg')
- end
-end
-
-local kill_state = function()
- awful.spawn.easy_async_with_shell(
- [[
- redshift -x
- kill -9 $(pgrep redshift)
- ]],
- function(stdout)
- stdout = tonumber(stdout)
- if stdout then
- blue_light_state = false
- update_widget()
- end
- end
- )
-end
-
-kill_state()
-
-local toggle_action = function()
- awful.spawn.easy_async_with_shell(
- [[
- if [ ! -z $(pgrep redshift) ];
- then
- redshift -x && pkill redshift && killall redshift
- echo 'OFF'
- else
- redshift -l 0:0 -t 4500:4500 -r &>/dev/null &
- echo 'ON'
- fi
- ]],
- function(stdout)
- if stdout:match('ON') then
- blue_light_state = true
- else
- blue_light_state = false
- end
- update_widget()
- end
- )
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-
-}
-
-awesome.connect_signal(
- 'widget::blue_light:toggle',
- function()
- toggle_action()
- end
-)
-
-return action_widget
diff --git a/config/awesome/surreal/widget/bluetooth-toggle/icons/bluetooth-off.svg b/config/awesome/surreal/widget/bluetooth-toggle/icons/bluetooth-off.svg
deleted file mode 100644
index f3e52ab19..000000000
--- a/config/awesome/surreal/widget/bluetooth-toggle/icons/bluetooth-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/bluetooth-toggle/icons/bluetooth.svg b/config/awesome/surreal/widget/bluetooth-toggle/icons/bluetooth.svg
deleted file mode 100644
index 32fbc3e70..000000000
--- a/config/awesome/surreal/widget/bluetooth-toggle/icons/bluetooth.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/bluetooth-toggle/icons/loading.svg b/config/awesome/surreal/widget/bluetooth-toggle/icons/loading.svg
deleted file mode 100644
index cd7bc0e0f..000000000
--- a/config/awesome/surreal/widget/bluetooth-toggle/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/bluetooth-toggle/init.lua b/config/awesome/surreal/widget/bluetooth-toggle/init.lua
deleted file mode 100755
index 7521e59c3..000000000
--- a/config/awesome/surreal/widget/bluetooth-toggle/init.lua
+++ /dev/null
@@ -1,194 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/bluetooth-toggle/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local device_state = false
-
-local action_name = wibox.widget {
- text = 'Bluetooth',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'bluetooth-off.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if device_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.accent
- button_widget.icon:set_image(widget_icon_dir .. 'bluetooth.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'bluetooth-off.svg')
- end
-end
-
-local check_device_state = function()
- awful.spawn.easy_async_with_shell(
- 'rfkill list bluetooth',
- function(stdout)
-
- if stdout:match('Soft blocked: yes') then
- device_state = false
- else
- device_state = true
- end
-
- update_widget()
- end
- )
-end
-
-check_device_state()
-local power_on_cmd = [[
- rfkill unblock bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'Initializing bluetooth device...',
- icon = ']] .. widget_icon_dir .. 'loading' .. '.svg' .. [['
- })
- "
-
- # Add a delay here so we can enable the bluetooth
- sleep 1
-
- bluetoothctl power on
-]]
-
-local power_off_cmd = [[
- bluetoothctl power off
- rfkill block bluetooth
-
- # Create an AwesomeWM Notification
- awesome-client "
- naughty = require('naughty')
- naughty.notification({
- app_name = 'Bluetooth Manager',
- title = 'System Notification',
- message = 'The bluetooth device has been disabled.',
- icon = ']] .. widget_icon_dir .. 'bluetooth-off' .. '.svg' .. [['
- })
- "
-]]
-
-local toggle_action = function()
- if device_state then
- awful.spawn.easy_async_with_shell(
- power_off_cmd,
- function(stdout)
- device_state = false
- update_widget()
- end
- )
- else
- awful.spawn.easy_async_with_shell(
- power_on_cmd,
- function(stdout)
- device_state = true
- update_widget()
- end
- )
- end
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- check_device_state()
- collectgarbage('collect')
- end
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-
-}
-
-return action_widget
diff --git a/config/awesome/surreal/widget/bluetooth/icons/bluetooth-connected.svg b/config/awesome/surreal/widget/bluetooth/icons/bluetooth-connected.svg
deleted file mode 100644
index bbda6ad94..000000000
--- a/config/awesome/surreal/widget/bluetooth/icons/bluetooth-connected.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/bluetooth/icons/bluetooth-off.svg b/config/awesome/surreal/widget/bluetooth/icons/bluetooth-off.svg
deleted file mode 100644
index f3e52ab19..000000000
--- a/config/awesome/surreal/widget/bluetooth/icons/bluetooth-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/bluetooth/icons/bluetooth-scanning.svg b/config/awesome/surreal/widget/bluetooth/icons/bluetooth-scanning.svg
deleted file mode 100644
index 029f1456a..000000000
--- a/config/awesome/surreal/widget/bluetooth/icons/bluetooth-scanning.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/bluetooth/icons/bluetooth.svg b/config/awesome/surreal/widget/bluetooth/icons/bluetooth.svg
deleted file mode 100644
index 32fbc3e70..000000000
--- a/config/awesome/surreal/widget/bluetooth/icons/bluetooth.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/bluetooth/icons/loading.svg b/config/awesome/surreal/widget/bluetooth/icons/loading.svg
deleted file mode 100644
index cd7bc0e0f..000000000
--- a/config/awesome/surreal/widget/bluetooth/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/bluetooth/init.lua b/config/awesome/surreal/widget/bluetooth/init.lua
deleted file mode 100644
index 153ef3ba0..000000000
--- a/config/awesome/surreal/widget/bluetooth/init.lua
+++ /dev/null
@@ -1,83 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local watch = awful.widget.watch
-local dpi = require('beautiful').xresources.apply_dpi
-
-local apps = require('configuration.apps')
-
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-
-local widget_icon_dir = config_dir .. 'widget/bluetooth/icons/'
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'bluetooth-off' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.bluetooth_manager, false)
- end
- )
- )
- )
-
- local bluetooth_tooltip = awful.tooltip
- {
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
-
- watch(
- 'rfkill list bluetooth',
- 5,
- function(_, stdout)
- local widget_icon_name = nil
- if stdout:match('Soft blocked: yes') then
- widget_icon_name = 'bluetooth-off'
- bluetooth_tooltip.markup = 'Bluetooth is off'
- else
- widget_icon_name = 'bluetooth'
- bluetooth_tooltip.markup = 'Bluetooth is on'
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- collectgarbage('collect')
- end,
- widget
- )
-
- return widget_button
-
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/blur-slider/init.lua b/config/awesome/surreal/widget/blur-slider/init.lua
deleted file mode 100644
index 65170484b..000000000
--- a/config/awesome/surreal/widget/blur-slider/init.lua
+++ /dev/null
@@ -1,204 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Blur Strength',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.effects,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container,
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-local slider = wibox.widget {
- nil,
- {
- id = 'blur_strength_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local blur_slider = slider.blur_strength_slider
-
-local update_slider_value = function()
-
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
- awk 'NR==1 {print $3}' | tr -d ';'
- "]],
- function(stdout, stderr)
- local strength = stdout:match('%d+')
- blur_strength = tonumber(strength) / 20 * 100
- blur_slider:set_value(tonumber(blur_strength))
- start_up = false
- end
- )
-end
-
--- Update on startup
-update_slider_value()
-
-local action_jump = function()
- local sli_value = blur_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 25 then
- new_value = 25
- elseif sli_value >= 25 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- blur_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
-local adjust_blur = function(power)
-
- awful.spawn.with_shell(
- [[bash -c "
- sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
- $HOME/.config/awesome/configuration/picom.conf
- "]]
- )
-end
-
-blur_slider:connect_signal(
- 'property::value',
- function()
- if not start_up then
- strength = blur_slider:get_value() / 50 * 10
- adjust_blur(strength)
- end
- end
-)
-
--- Adjust slider value to change blur strength
-awesome.connect_signal(
- 'widget::blur:increase',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() + 10
-
- -- No more than 100!
- if blur_value > 100 then
- blur_slider:set_value(100)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
--- Decrease blur
-awesome.connect_signal(
- 'widget::blur:decrease',
- function()
-
- -- On startup, the slider.value returns nil so...
- if blur_slider:get_value() == nil then
- return
- end
-
- local blur_value = blur_slider:get_value() - 10
-
- -- No negatives!
- if blur_value < 0 then
- blur_slider:set_value(0)
- return
- end
-
- blur_slider:set_value(blur_value)
- end
-)
-
-local volume_setting = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- forced_height = dpi(48),
- spacing = dpi(5),
- action_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- action_level
- },
- nil
- },
- slider
- }
-}
-
-return volume_setting
diff --git a/config/awesome/surreal/widget/blur-toggle/icons/effects-off.svg b/config/awesome/surreal/widget/blur-toggle/icons/effects-off.svg
deleted file mode 100644
index 3246064fa..000000000
--- a/config/awesome/surreal/widget/blur-toggle/icons/effects-off.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/blur-toggle/init.lua b/config/awesome/surreal/widget/blur-toggle/init.lua
deleted file mode 100644
index d9f0afe59..000000000
--- a/config/awesome/surreal/widget/blur-toggle/init.lua
+++ /dev/null
@@ -1,170 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/blur-toggle/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-local blur_status = true
-
-local action_name = wibox.widget {
- text = 'Blur Effects' ,
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = icons.effects,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if blur_status then
- action_status:set_text('On')
- widget_button.bg = beautiful.system_magenta_dark
- button_widget.icon:set_image(icons.effects)
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'effects-off.svg')
- end
-end
-
-local check_blur_status = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "
- grep -F 'method = \"none\";' ]] .. config_dir .. [[/configuration/picom.conf | tr -d '[\"\;\=\ ]'
- "]],
- function(stdout, stderr)
- if stdout:match('methodnone') then
- blur_status = false
- else
- blur_status = true
- end
- update_widget()
- end
- )
-end
-
-check_blur_status()
-
-local toggle_blur = function(togglemode)
-
- local toggle_blur_script = [[bash -c "
- # Check picom if it's not running then start it
- if [ -z $(pgrep picom) ]; then
- picom -b --experimental-backends --dbus --config ]] .. config_dir .. [[configuration/picom.conf
- fi
-
- case ]] .. togglemode .. [[ in
- 'enable')
- sed -i -e 's/method = \"none\"/method = \"dual_kawase\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- 'disable')
- sed -i -e 's/method = \"dual_kawase\"/method = \"none\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
- ;;
- esac
- "]]
-
- awful.spawn.with_shell(toggle_blur_script)
-end
-
-local toggle_blur_fx = function()
- local state = nil
- if blur_status then
- blur_status = false
- state = 'disable'
- else
- blur_status = true
- state = 'enable'
- end
- toggle_blur(state)
- update_widget()
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_blur_fx()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_blur_fx()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-}
-
-awesome.connect_signal(
- 'widget::blur:toggle',
- function()
- toggle_blur_fx()
- end
-)
-
-return action_widget
diff --git a/config/awesome/surreal/widget/brightness-slider/init.lua b/config/awesome/surreal/widget/brightness-slider/init.lua
deleted file mode 100644
index 5e82480a9..000000000
--- a/config/awesome/surreal/widget/brightness-slider/init.lua
+++ /dev/null
@@ -1,196 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Brightness',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.brightness,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container,
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'brightness_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local brightness_slider = slider.brightness_slider
-
-brightness_slider:connect_signal(
- 'property::value',
- function()
- local brightness_level = brightness_slider:get_value()
-
- spawn('light -S ' ..
- math.max(brightness_level, 5),
- false
- )
-
- -- Update brightness osd
- awesome.emit_signal(
- 'module::brightness_osd',
- brightness_level
- )
- end
-)
-
-brightness_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if brightness_slider:get_value() > 100 then
- brightness_slider:set_value(100)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if brightness_slider:get_value() < 0 then
- brightness_slider:set_value(0)
- return
- end
- brightness_slider:set_value(brightness_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- 'light -G',
- function(stdout)
- local brightness = string.match(stdout, '(%d+)')
- brightness_slider:set_value(tonumber(brightness))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = brightness_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- brightness_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::brightness',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::brightness:update',
- function(value)
- brightness_slider:set_value(tonumber(value))
- end
-)
-
-local brightness_setting = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- action_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- action_level
- },
- nil
- },
- slider
- }
-}
-
-return brightness_setting
diff --git a/config/awesome/surreal/widget/clickable-container/init.lua b/config/awesome/surreal/widget/clickable-container/init.lua
deleted file mode 100644
index 6b57aa247..000000000
--- a/config/awesome/surreal/widget/clickable-container/init.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-
-local create_click_events = function(widget)
-
- local container = wibox.widget {
- widget,
- widget = wibox.container.background
- }
-
- -- Old and new widget
- local old_cursor, old_wibox
-
- -- Mouse hovers on the widget
- container:connect_signal(
- 'mouse::enter',
- function()
- container.bg = beautiful.groups_bg
- -- Hm, no idea how to get the wibox from this signal's arguments...
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- -- Mouse leaves the widget
- container:connect_signal(
- 'mouse::leave',
- function()
- container.bg = beautiful.leave_event
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- -- Mouse pressed the widget
- container:connect_signal(
- 'button::press',
- function()
- container.bg = beautiful.press_event
- end
- )
-
- -- Mouse releases the widget
- container:connect_signal(
- 'button::release',
- function()
- container.bg = beautiful.release_event
- end
- )
-
- return container
-end
-
-return create_click_events
diff --git a/config/awesome/surreal/widget/clock/init.lua b/config/awesome/surreal/widget/clock/init.lua
deleted file mode 100644
index 809fb1fb4..000000000
--- a/config/awesome/surreal/widget/clock/init.lua
+++ /dev/null
@@ -1,158 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config = require('configuration.config')
-local military_mode = config.widget.clock.military_mode or false
-
-local create_clock = function(s)
-
- local clock_format = nil
- if not military_mode then
- clock_format = '%I:%M %p'
- else
- clock_format = '%H:%M'
- end
-
- s.clock_widget = wibox.widget.textclock(
- clock_format,
- 1
- )
-
- s.clock_widget = wibox.widget {
- {
- s.clock_widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- s.clock_widget:connect_signal(
- 'mouse::enter',
- function()
- local w = mouse.current_wibox
- if w then
- old_cursor, old_wibox = w.cursor, w
- w.cursor = 'hand1'
- end
- end
- )
-
- s.clock_widget:connect_signal(
- 'mouse::leave',
- function()
- if old_wibox then
- old_wibox.cursor = old_cursor
- old_wibox = nil
- end
- end
- )
-
- s.clock_tooltip = awful.tooltip
- {
- objects = {s.clock_widget},
- mode = 'outside',
- delay_show = 1,
- preferred_positions = {'right', 'left', 'top', 'bottom'},
- preferred_alignments = {'middle', 'front', 'back'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- local ordinal = nil
-
- local day = os.date('%d')
- local month = os.date('%B')
-
- local first_digit = string.sub(day, 0, 1)
- local last_digit = string.sub(day, -1)
-
- if first_digit == '0' then
- day = last_digit
- end
-
- if last_digit == '1' and day ~= '11' then
- ordinal = 'st'
- elseif last_digit == '2' and day ~= '12' then
- ordinal = 'nd'
- elseif last_digit == '3' and day ~= '13' then
- ordinal = 'rd'
- else
- ordinal = 'th'
- end
-
- local date_str = 'Today is the ' ..
- '' .. day .. ordinal ..
- ' of ' .. month .. '.\n' ..
- 'And it\'s fucking ' .. os.date('%A')
-
- return date_str
- end,
- }
-
- s.clock_widget:connect_signal(
- 'button::press',
- function(self, lx, ly, button)
- -- Hide the tooltip when you press the clock widget
- if s.clock_tooltip.visible and button == 1 then
- s.clock_tooltip.visible = false
- end
- end
- )
-
- s.month_calendar = awful.widget.calendar_popup.month({
- start_sunday = true,
- spacing = dpi(5),
- font = 'Inter Regular 10',
- long_weekdays = true,
- margin = dpi(5),
- screen = s,
- style_month = {
- border_width = dpi(0),
- bg_color = beautiful.background,
- padding = dpi(20),
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, beautiful.groups_radius
- )
- end
- },
- style_header = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_weekday = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_normal = {
- border_width = 0,
- bg_color = beautiful.transparent
- },
- style_focus = {
- border_width = dpi(0),
- border_color = beautiful.fg_normal,
- bg_color = beautiful.accent,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(
- cr, width, height, true, true, true, true, dpi(4)
- )
- end,
- },
- })
-
- s.month_calendar:attach(
- s.clock_widget,
- 'tc',
- {
- on_pressed = true,
- on_hover = false
- }
- )
-
- return s.clock_widget
-end
-
-return create_clock
diff --git a/config/awesome/surreal/widget/control-center-switch/icons/control-center.svg b/config/awesome/surreal/widget/control-center-switch/icons/control-center.svg
deleted file mode 100644
index eda480944..000000000
--- a/config/awesome/surreal/widget/control-center-switch/icons/control-center.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/control-center-switch/init.lua b/config/awesome/surreal/widget/control-center-switch/init.lua
deleted file mode 100644
index c2f2e29a4..000000000
--- a/config/awesome/surreal/widget/control-center-switch/init.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/control-center-switch/icons/'
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-local monitor_mode = false
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.memory,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- {
- widget,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
- }
-
- local control_center_switch_mode = function()
- local cc_widget = awful.screen.focused().control_center.widget
- if monitor_mode then
- widget.icon:set_image(icons.memory)
- cc_widget:get_children_by_id('main_control')[1].visible = true
- cc_widget:get_children_by_id('monitor_control')[1].visible = false
- else
- widget.icon:set_image(widget_icon_dir .. 'control-center.svg')
- cc_widget:get_children_by_id('main_control')[1].visible = false
- cc_widget:get_children_by_id('monitor_control')[1].visible = true
- end
- monitor_mode = not monitor_mode
- end
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- control_center_switch_mode()
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/control-center-toggle/icons/control-center.svg b/config/awesome/surreal/widget/control-center-toggle/icons/control-center.svg
deleted file mode 100644
index 0b21e12a8..000000000
--- a/config/awesome/surreal/widget/control-center-toggle/icons/control-center.svg
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/control-center-toggle/init.lua b/config/awesome/surreal/widget/control-center-toggle/init.lua
deleted file mode 100644
index 1fb8acbe4..000000000
--- a/config/awesome/surreal/widget/control-center-toggle/init.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/control-center-toggle/icons/'
-local clickable_container = require('widget.clickable-container')
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'control-center.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.screen.focused().control_center:toggle()
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/cpu-meter/init.lua b/config/awesome/surreal/widget/cpu-meter/init.lua
deleted file mode 100644
index c0ce28ab3..000000000
--- a/config/awesome/surreal/widget/cpu-meter/init.lua
+++ /dev/null
@@ -1,109 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'CPU',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.chart,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'cpu_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local total_prev = 0
-local idle_prev = 0
-
-watch(
- [[bash -c "
- cat /proc/stat | grep '^cpu '
- "]],
- 10,
- function(_, stdout)
- local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
- stdout:match('(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s')
-
- local total = user + nice + system + idle + iowait + irq + softirq + steal
-
- local diff_idle = idle - idle_prev
- local diff_total = total - total_prev
- local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
-
- slider.cpu_usage:set_value(diff_usage)
-
- total_prev = total
- idle_prev = idle
- collectgarbage('collect')
- end
-)
-
-local cpu_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return cpu_meter
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/dont-disturb/icons/dont-disturb.svg b/config/awesome/surreal/widget/dont-disturb/icons/dont-disturb.svg
deleted file mode 100644
index d5dc170d7..000000000
--- a/config/awesome/surreal/widget/dont-disturb/icons/dont-disturb.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/dont-disturb/icons/notify.svg b/config/awesome/surreal/widget/dont-disturb/icons/notify.svg
deleted file mode 100644
index 92b960b9a..000000000
--- a/config/awesome/surreal/widget/dont-disturb/icons/notify.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/dont-disturb/init.lua b/config/awesome/surreal/widget/dont-disturb/init.lua
deleted file mode 100644
index 08ffbc7f8..000000000
--- a/config/awesome/surreal/widget/dont-disturb/init.lua
+++ /dev/null
@@ -1,159 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_dir = config_dir .. 'widget/dont-disturb/'
-local widget_icon_dir = widget_dir .. 'icons/'
-local icons = require('theme.icons')
-
-_G.dont_disturb_state = false
-
-local action_name = wibox.widget {
- text = 'Don\'t Disturb' ,
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_status = wibox.widget {
- text = 'Off',
- font = 'Inter Regular 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local action_info = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- action_name,
- action_status
-}
-
-local button_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'notify.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- {
- button_widget,
- margins = dpi(15),
- forced_height = dpi(48),
- forced_width = dpi(48),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local update_widget = function()
- if dont_disturb_state then
- action_status:set_text('On')
- widget_button.bg = beautiful.system_cyan_dark
- button_widget.icon:set_image(widget_icon_dir .. 'dont-disturb.svg')
- else
- action_status:set_text('Off')
- widget_button.bg = beautiful.groups_bg
- button_widget.icon:set_image(widget_icon_dir .. 'notify.svg')
- end
-end
-
-local check_disturb_status = function()
- awful.spawn.easy_async_with_shell(
- 'cat ' .. widget_dir .. 'disturb_status',
- function(stdout)
-
- local status = stdout
-
- if status:match('true') then
- dont_disturb_state = true
- elseif status:match('false') then
- dont_disturb_state = false
- else
- dont_disturb_state = false
- awful.spawn.with_shell('echo \'false\' > ' .. widget_dir .. 'disturb_status')
- end
-
- update_widget()
- end
- )
-end
-
-check_disturb_status()
-
-local toggle_action = function()
- if dont_disturb_state then
- dont_disturb_state = false
- else
- dont_disturb_state = true
- end
- awful.spawn.easy_async_with_shell(
- 'echo ' .. tostring(dont_disturb_state) .. ' > ' .. widget_dir .. 'disturb_status',
- function()
- update_widget()
- end
- )
-end
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-action_info:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- toggle_action()
- end
- )
- )
-)
-
-local action_widget = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- widget_button,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- action_info,
- nil
- }
-}
-
--- Create a notification sound
-naughty.connect_signal(
- 'request::display',
- function(n)
- if not dont_disturb_state then
- awful.spawn.with_shell('canberra-gtk-play -i message')
- end
- end
-)
-
-return action_widget
diff --git a/config/awesome/surreal/widget/email/icons/email-1.svg b/config/awesome/surreal/widget/email/icons/email-1.svg
deleted file mode 100644
index 9170d0b08..000000000
--- a/config/awesome/surreal/widget/email/icons/email-1.svg
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-2.svg b/config/awesome/surreal/widget/email/icons/email-2.svg
deleted file mode 100644
index 58406a729..000000000
--- a/config/awesome/surreal/widget/email/icons/email-2.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-3.svg b/config/awesome/surreal/widget/email/icons/email-3.svg
deleted file mode 100644
index 597b144b6..000000000
--- a/config/awesome/surreal/widget/email/icons/email-3.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-4.svg b/config/awesome/surreal/widget/email/icons/email-4.svg
deleted file mode 100644
index dc915fb43..000000000
--- a/config/awesome/surreal/widget/email/icons/email-4.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-5.svg b/config/awesome/surreal/widget/email/icons/email-5.svg
deleted file mode 100644
index 935140c4b..000000000
--- a/config/awesome/surreal/widget/email/icons/email-5.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-6.svg b/config/awesome/surreal/widget/email/icons/email-6.svg
deleted file mode 100644
index edf1298ff..000000000
--- a/config/awesome/surreal/widget/email/icons/email-6.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-7.svg b/config/awesome/surreal/widget/email/icons/email-7.svg
deleted file mode 100644
index 980d79c5f..000000000
--- a/config/awesome/surreal/widget/email/icons/email-7.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-8.svg b/config/awesome/surreal/widget/email/icons/email-8.svg
deleted file mode 100644
index 4c6618ad5..000000000
--- a/config/awesome/surreal/widget/email/icons/email-8.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-9+.svg b/config/awesome/surreal/widget/email/icons/email-9+.svg
deleted file mode 100644
index 53a0a6880..000000000
--- a/config/awesome/surreal/widget/email/icons/email-9+.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-9.svg b/config/awesome/surreal/widget/email/icons/email-9.svg
deleted file mode 100644
index 9c65b74a6..000000000
--- a/config/awesome/surreal/widget/email/icons/email-9.svg
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email-unread.svg b/config/awesome/surreal/widget/email/icons/email-unread.svg
deleted file mode 100644
index 829d3a90f..000000000
--- a/config/awesome/surreal/widget/email/icons/email-unread.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/icons/email.svg b/config/awesome/surreal/widget/email/icons/email.svg
deleted file mode 100644
index a8860b411..000000000
--- a/config/awesome/surreal/widget/email/icons/email.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/email/init.lua b/config/awesome/surreal/widget/email/init.lua
deleted file mode 100644
index 7a85be9ff..000000000
--- a/config/awesome/surreal/widget/email/init.lua
+++ /dev/null
@@ -1,424 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/email/icons/'
-
-local config = require('configuration.config')
-local secrets = {
- email_address = config.widget.email.address,
- app_password = config.widget.email.app_password,
- imap_server = config.widget.email.imap_server,
- port = config.widget.email.port
-}
-
-local unread_email_count = 0
-local startup_show = true
-
-local scroll_container = function(widget)
- return wibox.widget {
- widget,
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
- }
-end
-
-local email_icon_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'email.svg',
- resize = true,
- forced_height = dpi(45),
- forced_width = dpi(45),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local email_header = wibox.widget {
- text = 'Email',
- font = 'Inter Bold 14',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_from_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'From:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-
-local email_recent_from = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'loading@stdout.sh',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_subject_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Subject:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_subject = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Loading data',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_date_text = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Local Date:',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_recent_date = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'Loading date...',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local email_report = wibox.widget{
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- email_header,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- email_icon_widget,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- {
- email_from_text,
- scroll_container(email_recent_from),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- },
- {
- email_subject_text,
- scroll_container(email_recent_subject),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- },
- {
- email_date_text,
- scroll_container(email_recent_date),
- spacing = dpi(5),
- layout = wibox.layout.fixed.horizontal
- }
- },
- nil
- }
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(110),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local email_details_tooltip = awful.tooltip
-{
- text = 'Loading...',
- objects = {email_icon_widget},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
-}
-
-local fetch_email_command = [[
-python3 - < 1 then
- title = 'You have ' .. unread_counter .. ' unread emails!'
- else
- title = 'You have ' .. unread_counter .. ' unread email!'
- end
-
- naughty.notification ({
- app_name = 'Email',
- title = title,
- message = email_data,
- timeout = 30,
- icon = widget_icon_dir .. 'email-unread.svg'
- })
-end
-
-local notify_new_email = function(count, from, subject)
- if not startup_show and (tonumber(count) > tonumber(unread_email_count)) then
- unread_email_count = tonumber(count)
-
- local message = "From: " .. from ..
- "\nSubject: " .. subject
-
- naughty.notification ({
- app_name = 'Email',
- title = 'You have a new unread email!',
- message = message,
- timeout = 10,
- icon = widget_icon_dir .. 'email-unread.svg'
- })
- else
- unread_email_count = tonumber(count)
- end
-
-end
-
-local set_email_data_tooltip = function(email_data)
- local email_data = email_data:match('(From:.*)')
- local counter = "Unread Count: " .. unread_email_count
- email_details_tooltip:set_markup(counter .. '\n\n' .. email_data)
-end
-
-local set_widget_markup = function(from, subject, date, tooltip)
-
- email_recent_from:set_markup(from:gsub('%\n', ''))
- email_recent_subject:set_markup(subject:gsub('%\n', ''))
- email_recent_date:set_markup(date:gsub('%\n', ''))
-
- if tooltip then
- email_details_tooltip:set_markup(tooltip)
- end
-end
-
-local set_no_connection_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Check network connection!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'No internet connection!'
- )
-end
-
-local set_invalid_credentials_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Invalid Credentials!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'You have an invalid credentials!'
- )
-end
-
-local set_latest_email_data = function(email_data)
-
- local unread_count = email_data:match('Unread Count: (.-)From:'):sub(1, -2)
- local recent_from = email_data:match('From: (.-)Subject:'):sub(1, -2)
- local recent_subject = email_data:match('Subject: (.-)Local Date:'):sub(1, -2)
- local recent_date = email_data:match('Local Date: (.-)\n')
-
- recent_from = recent_from:match('<(.*)>') or recent_from:match('<(.*)>') or recent_from
-
- local count = tonumber(unread_count)
- if count > 0 and count <= 9 then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email-'.. tostring(count) .. '.svg')
- elseif count > 9 then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email-9+.svg')
- end
-
- set_widget_markup(
- recent_from,
- recent_subject,
- recent_date
- )
-
- notify_new_email(unread_count, recent_from, recent_subject)
-end
-
-local set_empty_inbox_msg = function()
- set_widget_markup(
- 'empty@stdout.sh',
- 'Empty inbox',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'Empty inbox.'
- )
-end
-
-local fetch_email_data = function()
- awful.spawn.easy_async_with_shell(
- fetch_email_command,
- function(stdout)
- stdout = gears.string.xml_escape(stdout:sub(1, -2))
-
- if stdout:match('Temporary failure in name resolution') then
- set_no_connection_msg()
- return
- elseif stdout:match('Invalid credentials') then
- set_invalid_credentials_msg()
- return
- elseif stdout:match('Unread Count: 0') then
- email_icon_widget.icon:set_image(widget_icon_dir .. 'email.svg')
- set_empty_inbox_msg()
- return
- elseif not stdout:match('Unread Count: (.-)From:') then
- return
- elseif not stdout or stdout == '' then
- return
- end
-
- set_latest_email_data(stdout)
- set_email_data_tooltip(stdout)
-
- if startup_show then
- notify_all_unread_email(stdout)
- startup_show = false
- end
- end
- )
-end
-
-local set_missing_secrets_msg = function()
- set_widget_markup(
- 'message@stderr.sh',
- 'Credentials are missing!',
- os.date('%d-%m-%Y %H:%M:%S'),
- 'Missing credentials!'
- )
-end
-
-local check_secrets = function()
- if secrets.email_address == '' or secrets.app_password == '' or secrets.imap_server == '' or secrets.port == '' then
- set_missing_secrets_msg()
- return
- else
- fetch_email_data()
- end
-end
-
-check_secrets()
-
-local update_widget_timer = gears.timer {
- timeout = 30,
- autostart = true,
- call_now = true,
- callback = function()
- check_secrets()
- end
-}
-
-email_report:connect_signal(
- 'mouse::enter',
- function()
- check_secrets()
- end
-)
-
-awesome.connect_signal(
- 'system::network_connected',
- function()
- gears.timer.start_new(
- 5,
- function()
- check_secrets()
- end
- )
- end
-)
-
-return email_report
diff --git a/config/awesome/surreal/widget/end-session/init.lua b/config/awesome/surreal/widget/end-session/init.lua
deleted file mode 100644
index ec968ec33..000000000
--- a/config/awesome/surreal/widget/end-session/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.power,
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- {
- widget,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('module::exit_screen:show')
- awful.screen.focused().control_center:toggle()
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/global-search/init.lua b/config/awesome/surreal/widget/global-search/init.lua
deleted file mode 100644
index 86847d6b4..000000000
--- a/config/awesome/surreal/widget/global-search/init.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local apps = require('configuration.apps')
-local icons = require('theme.icons')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.search,
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.rofi_global, false)
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/harddrive-meter/init.lua b/config/awesome/surreal/widget/harddrive-meter/init.lua
deleted file mode 100644
index 46d11e374..000000000
--- a/config/awesome/surreal/widget/harddrive-meter/init.lua
+++ /dev/null
@@ -1,93 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'Hard Drive',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.harddisk,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'hdd_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(36),
- layout = wibox.layout.align.vertical
-}
-
-watch(
- [[bash -c "df -h /home|grep '^/' | awk '{print $5}'"]],
- 10,
- function(_, stdout)
- local space_consumed = stdout:match('(%d+)')
- slider.hdd_usage:set_value(tonumber(space_consumed))
- collectgarbage('collect')
- end
-)
-
-local harddrive_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return harddrive_meter
diff --git a/config/awesome/surreal/widget/info-center-toggle/icons/info-center.svg b/config/awesome/surreal/widget/info-center-toggle/icons/info-center.svg
deleted file mode 100644
index c60cf96d7..000000000
--- a/config/awesome/surreal/widget/info-center-toggle/icons/info-center.svg
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/info-center-toggle/init.lua b/config/awesome/surreal/widget/info-center-toggle/init.lua
deleted file mode 100644
index 00673c624..000000000
--- a/config/awesome/surreal/widget/info-center-toggle/init.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/info-center-toggle/icons/'
-local clickable_container = require('widget.clickable-container')
-
-local return_button = function()
-
- local widget =
- wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'info-center.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.screen.focused().info_center:toggle()
- end
- )
- )
- )
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/layoutbox/init.lua b/config/awesome/surreal/widget/layoutbox/init.lua
deleted file mode 100644
index 1171f84de..000000000
--- a/config/awesome/surreal/widget/layoutbox/init.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local layout_box = function(s)
- local layoutbox = wibox.widget {
- {
- awful.widget.layoutbox(s),
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
- layoutbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {},
- 3,
- function()
- awful.layout.inc(-1)
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.layout.inc(1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.layout.inc(-1)
- end
- )
- )
- )
- return layoutbox
-end
-
-return layout_box
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/mpd/content/album-cover.lua b/config/awesome/surreal/widget/mpd/content/album-cover.lua
deleted file mode 100755
index a6741b689..000000000
--- a/config/awesome/surreal/widget/mpd/content/album-cover.lua
+++ /dev/null
@@ -1,20 +0,0 @@
-local gears = require('gears')
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-
-local album_cover_img = wibox.widget {
- {
- id = 'cover',
- image = widget_icon_dir .. 'vinyl.svg',
- resize = true,
- clip_shape = gears.shape.rounded_rect,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.vertical
-}
-
-
-return album_cover_img
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/mpd/content/init.lua b/config/awesome/surreal/widget/mpd/content/init.lua
deleted file mode 100644
index 0de97578b..000000000
--- a/config/awesome/surreal/widget/mpd/content/init.lua
+++ /dev/null
@@ -1,6 +0,0 @@
--- Return UI Table
-return {
- album_cover = require('widget.mpd.content.album-cover'),
- song_info = require('widget.mpd.content.song-info'),
- media_buttons = require('widget.mpd.content.media-buttons')
-}
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/mpd/content/media-buttons.lua b/config/awesome/surreal/widget/mpd/content/media-buttons.lua
deleted file mode 100755
index b7bfb8465..000000000
--- a/config/awesome/surreal/widget/mpd/content/media-buttons.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local media_buttons = {}
-
-media_buttons.play_button_image = wibox.widget {
- {
- id = 'play',
- image = widget_icon_dir .. 'play.svg',
- resize = true,
- opacity = 0.8,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.next_button_image = wibox.widget {
- {
- id = 'next',
- image = widget_icon_dir .. 'next.svg',
- resize = true,
- opacity = 0.8,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.prev_button_image = wibox.widget {
- {
- id = 'prev',
- image = widget_icon_dir .. 'prev.svg',
- resize = true,
- opacity = 0.8,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
-}
-
-media_buttons.play_button = wibox.widget {
- {
- {
- media_buttons.play_button_image,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(36),
- forced_height = dpi(36),
- bg = beautiful.transparent,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-media_buttons.next_button = wibox.widget {
- {
- {
- media_buttons.next_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(36),
- forced_height = dpi(36),
- bg = beautiful.transparent,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-media_buttons.prev_button = wibox.widget {
- {
- {
- media_buttons.prev_button_image,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(36),
- forced_height = dpi(36),
- bg = beautiful.transparent,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-media_buttons.navigate_buttons = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- media_buttons.prev_button,
- media_buttons.play_button,
- media_buttons.next_button
-}
-
-return media_buttons
diff --git a/config/awesome/surreal/widget/mpd/content/song-info.lua b/config/awesome/surreal/widget/mpd/content/song-info.lua
deleted file mode 100755
index 6c55f70db..000000000
--- a/config/awesome/surreal/widget/mpd/content/song-info.lua
+++ /dev/null
@@ -1,66 +0,0 @@
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local song_info = {}
-
-song_info.music_title = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- expand = 'none',
- {
- {
- id = 'title',
- text = 'title',
- font = 'Inter Bold 10',
- align = 'left',
- valign = 'center',
- ellipsize = 'end',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 150,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth,
- fps = 60,
- layout = wibox.container.scroll.horizontal
- }
-}
-
-song_info.music_artist = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- expand = 'none',
- {
- {
- id = 'artist',
- text = 'artist',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 150,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 60,
- layout = wibox.container.scroll.horizontal
- }
-}
-
-song_info.music_info = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- song_info.music_title,
- song_info.music_artist
- },
- nil
-}
-
-return song_info
diff --git a/config/awesome/surreal/widget/mpd/icons/next.svg b/config/awesome/surreal/widget/mpd/icons/next.svg
deleted file mode 100644
index 7df506387..000000000
--- a/config/awesome/surreal/widget/mpd/icons/next.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/mpd/icons/pause.svg b/config/awesome/surreal/widget/mpd/icons/pause.svg
deleted file mode 100644
index 9fc7767b6..000000000
--- a/config/awesome/surreal/widget/mpd/icons/pause.svg
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/mpd/icons/play.svg b/config/awesome/surreal/widget/mpd/icons/play.svg
deleted file mode 100755
index 3a5677982..000000000
--- a/config/awesome/surreal/widget/mpd/icons/play.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/mpd/icons/prev.svg b/config/awesome/surreal/widget/mpd/icons/prev.svg
deleted file mode 100644
index 0e39d34fc..000000000
--- a/config/awesome/surreal/widget/mpd/icons/prev.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/mpd/icons/vinyl.svg b/config/awesome/surreal/widget/mpd/icons/vinyl.svg
deleted file mode 100755
index d26a4a8af..000000000
--- a/config/awesome/surreal/widget/mpd/icons/vinyl.svg
+++ /dev/null
@@ -1,5698 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/mpd/init.lua b/config/awesome/surreal/widget/mpd/init.lua
deleted file mode 100755
index ad98cf326..000000000
--- a/config/awesome/surreal/widget/mpd/init.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local ui_content = require('widget.mpd.content')
-local album = ui_content.album_cover
-local song_info = ui_content.song_info.music_info
-local media_buttons = ui_content.media_buttons.navigate_buttons
-
-local music_box = wibox.widget {
- layout = wibox.layout.align.horizontal,
- forced_height = dpi(46),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- album,
- song_info
- },
- nil,
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- media_buttons,
- nil
- }
-}
-
--- Mpd widget updater
-require('widget.mpd.mpd-music-updater')
-
-return music_box
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/mpd/mpd-music-updater.lua b/config/awesome/surreal/widget/mpd/mpd-music-updater.lua
deleted file mode 100755
index ce5712078..000000000
--- a/config/awesome/surreal/widget/mpd/mpd-music-updater.lua
+++ /dev/null
@@ -1,269 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
-local ui_content = require('widget.mpd.content')
-local album_cover = ui_content.album_cover
-local song_info = ui_content.song_info
-local vol_slider = ui_content.volume_slider
-local media_buttons = ui_content.media_buttons
-
-local update_cover = function()
-
- local extract_script = [=[
- MUSIC_DIR="$(xdg-user-dir MUSIC)"
- TMP_DIR="/tmp/awesomewm/${USER}/"
- TMP_COVER_PATH=${TMP_DIR}"cover.jpg"
- TMP_SONG="${TMP_DIR}current-song"
-
- CHECK_EXIFTOOL=$(command -v exiftool)
-
- if [ ! -d "${TMP_DIR}" ]; then
- mkdir -p "${TMP_DIR}";
- fi
-
- if [ ! -z "$CHECK_EXIFTOOL" ]; then
-
- SONG="$MUSIC_DIR/$(mpc -p 6600 --format "%file%" current)"
- PICTURE_TAG="-Picture"
-
- if [[ "$SONG" == *".m4a" ]]; then
- PICTURE_TAG="-CoverArt"
- fi
-
- # Extract album cover using perl-image-exiftool
- exiftool -b "$PICTURE_TAG" "$SONG" > "$TMP_COVER_PATH"
-
- else
-
- #Extract image using ffmpeg
- cp "$MUSIC_DIR/$(mpc --format %file% current)" "$TMP_SONG"
-
- ffmpeg \
- -hide_banner \
- -loglevel 0 \
- -y \
- -i "$TMP_SONG" \
- -vf scale=300:-1 \
- "$TMP_COVER_PATH" > /dev/null 2>&1
-
- rm "$TMP_SONG"
- fi
-
- img_data=$(identify $TMP_COVER_PATH 2>&1)
-
- # Delete the cover.jpg if it's not a valid image
- if [[ $img_data == *"insufficient"* ]]; then
- rm $TMP_COVER_PATH
- fi
-
- if [ -f $TMP_COVER_PATH ]; then
- echo $TMP_COVER_PATH;
- fi
- ]=]
-
- awful.spawn.easy_async_with_shell(
- extract_script,
- function(stdout)
- local album_icon = widget_icon_dir .. 'vinyl' .. '.svg'
- if not (stdout == nil or stdout == '') then
- album_icon = stdout:gsub('%\n', '')
- end
- album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
- album_cover:emit_signal('widget::redraw_needed')
- album_cover:emit_signal('widget::layout_changed')
- collectgarbage('collect')
- end
- )
-end
-
-local update_file = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- file_name = stdout:gsub('%\n','')
- end
- )
- return file_name
-end
-
-local update_title = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %title% current
- ]],
- function(stdout)
- -- Remove new lines
- local title = stdout:gsub('%\n', '')
- local title_widget = song_info.music_title
- local title_text = song_info.music_title:get_children_by_id('title')[1]
- -- Make sure it's not null
- if not (title == nil or title == '') then
- title_text:set_text(title)
- else
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- if not (stdout == nil or stdout == '') then
- file_name = stdout:gsub('%\n','')
- file_name = file_name:sub(1, title:len() - 5) .. ''
- title_text:set_text(file_name)
- else
- -- Set title
- title_text:set_text('Play some music!')
- end
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
- end
- )
- end
-
- title_widget:emit_signal('widget::redraw_needed')
- title_widget:emit_signal('widget::layout_changed')
- collectgarbage('collect')
- end
- )
-end
-
-local update_artist = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %artist% current
- ]],
- function(stdout)
-
- -- Remove new lines
- local artist = stdout:gsub('%\n', '')
- local artist_widget = song_info.music_artist
- local artist_text = artist_widget:get_children_by_id('artist')[1]
- if not (artist == nil or artist == '') then
- artist_text:set_text(artist)
- else
- awful.spawn.easy_async_with_shell(
- [[
- mpc -f %file% current
- ]],
- function(stdout)
- if not (stdout == nil or stdout == '') then
-
- artist_text:set_text('unknown artist')
-
- else
- artist_text:set_text('or play some porn?')
- end
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- end
- )
- end
-
- artist_widget:emit_signal('widget::redraw_needed')
- artist_widget:emit_signal('widget::layout_changed')
- collectgarbage('collect')
- end
- )
-end
-
-local check_if_playing = function()
- awful.spawn.easy_async_with_shell(
- [[
- mpc status | awk 'NR==2' | grep -o playing
- ]],
- function(stdout)
- local play_button_img = media_buttons.play_button_image.play
- if not (stdout == nil or stdout == '') then
- play_button_img:set_image(widget_icon_dir .. 'pause.svg')
- else
- play_button_img:set_image(widget_icon_dir .. 'play.svg')
- end
- end
- )
-end
-
-local update_all_content = function()
- update_title()
- update_artist()
- update_cover()
- check_if_playing()
-end
-
-local mpd_startup = [[
-# Let's make sure that MPD is running.
-if [ -z $(pgrep mpd) ]; then mpd; fi
-]]
-
-local mpd_change_event_listener = [[
-sh -c '
-mpc idleloop player
-'
-]]
-
-local kill_mpd_change_event_listener = [[sh -c "
-ps x |
-grep 'mpc idleloop player' |
-grep -v grep |
-awk '{print $1}' |
-xargs kill
-"]]
-
-awful.spawn.easy_async_with_shell(
- mpd_startup,
- function ()
- awful.spawn.easy_async_with_shell(
- kill_mpd_change_event_listener,
- function ()
- update_all_content()
- awful.spawn.with_line_callback(
- mpd_change_event_listener, {
- stdout = function(line)
- update_all_content()
- end
- }
- )
- end
- )
- end
-)
-
-media_buttons.play_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc toggle')
- end
- )
- )
-)
-
-media_buttons.next_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc next')
- end
- )
- )
-)
-
-media_buttons.prev_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('mpc prev')
- end
- )
- )
-)
diff --git a/config/awesome/surreal/widget/network/icons/airplane-mode-off.svg b/config/awesome/surreal/widget/network/icons/airplane-mode-off.svg
deleted file mode 100644
index 7a4c91c0a..000000000
--- a/config/awesome/surreal/widget/network/icons/airplane-mode-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/airplane-mode.svg b/config/awesome/surreal/widget/network/icons/airplane-mode.svg
deleted file mode 100644
index 70fc89d1a..000000000
--- a/config/awesome/surreal/widget/network/icons/airplane-mode.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/loading.svg b/config/awesome/surreal/widget/network/icons/loading.svg
deleted file mode 100755
index cd7bc0e0f..000000000
--- a/config/awesome/surreal/widget/network/icons/loading.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-off.svg b/config/awesome/surreal/widget/network/icons/wifi-off.svg
deleted file mode 100755
index dbcbc7a82..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-off.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-1-alert.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-1-alert.svg
deleted file mode 100755
index 7a8de11db..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-1-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-1-lock.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-1-lock.svg
deleted file mode 100755
index 9bcf910fd..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-1-lock.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-1.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-1.svg
deleted file mode 100755
index 9e9004981..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-1.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-2-alert.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-2-alert.svg
deleted file mode 100755
index 970987a46..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-2-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-2-lock.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-2-lock.svg
deleted file mode 100755
index cbedd2746..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-2-lock.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-2.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-2.svg
deleted file mode 100755
index e65871e1f..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-2.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-3-alert.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-3-alert.svg
deleted file mode 100755
index e1b5a5f51..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-3-alert.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-3-lock.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-3-lock.svg
deleted file mode 100755
index 865d01a16..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-3-lock.svg
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-3.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-3.svg
deleted file mode 100755
index cec90d5b2..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-3.svg
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-4-alert.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-4-alert.svg
deleted file mode 100755
index 2d9d47d1c..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-4-alert.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-4-lock.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-4-lock.svg
deleted file mode 100755
index fb51f35ea..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-4-lock.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-4.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-4.svg
deleted file mode 100755
index 259a3a94d..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-4.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-alert-outline.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-alert-outline.svg
deleted file mode 100755
index 3e4c33a8f..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-alert-outline.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-alert.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-alert.svg
deleted file mode 100755
index ca80f6cba..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-alert.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-empty.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-empty.svg
deleted file mode 100755
index 0a1380ab3..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-empty.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-lock-outline.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-lock-outline.svg
deleted file mode 100755
index 3edc63601..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-lock-outline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-off-outline.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-off-outline.svg
deleted file mode 100755
index 2f9b636b5..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-off-outline.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-off.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-off.svg
deleted file mode 100755
index 12cb04308..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-off.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi-strength-outline.svg b/config/awesome/surreal/widget/network/icons/wifi-strength-outline.svg
deleted file mode 100755
index 00fcd2614..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi-strength-outline.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wifi.svg b/config/awesome/surreal/widget/network/icons/wifi.svg
deleted file mode 100755
index 78878680a..000000000
--- a/config/awesome/surreal/widget/network/icons/wifi.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wired-alert.svg b/config/awesome/surreal/widget/network/icons/wired-alert.svg
deleted file mode 100755
index 60ad378d0..000000000
--- a/config/awesome/surreal/widget/network/icons/wired-alert.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wired-off.svg b/config/awesome/surreal/widget/network/icons/wired-off.svg
deleted file mode 100755
index 35481c021..000000000
--- a/config/awesome/surreal/widget/network/icons/wired-off.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/icons/wired.svg b/config/awesome/surreal/widget/network/icons/wired.svg
deleted file mode 100755
index 00441aca1..000000000
--- a/config/awesome/surreal/widget/network/icons/wired.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/network/init.lua b/config/awesome/surreal/widget/network/init.lua
deleted file mode 100755
index 105dd502f..000000000
--- a/config/awesome/surreal/widget/network/init.lua
+++ /dev/null
@@ -1,358 +0,0 @@
-----------------------------------------------------------------------------
---- Simple Network Widget
---
--- Depends: iproute2, iw
---
---
--- @author manilarome <gerome.matilla07@gmail.com>
--- @copyright 2020 manilarome
--- @widget network
-----------------------------------------------------------------------------
-
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local dpi = require('beautiful').xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/network/icons/'
-local config = require('configuration.config')
-
--- Configuration
-local interfaces = {
- wlan_interface = config.widget.network.wireless_interface or 'wlan0',
- lan_interface = config.widget.network.wired_interface or 'enp0s25'
-}
-
-local network_mode = nil
-
-local return_button = function()
-
- local update_notify_no_access = true
- local notify_no_access_quota = 0
-
- local startup = true
- local reconnect_startup = true
- local notify_new_wifi_conn = false
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'wifi-strength-off' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.network_manager, false)
- end
- )
- )
- )
-
- local network_tooltip = awful.tooltip {
- text = 'Loading...',
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
- }
-
- local check_internet_health = [=[
- status_ping=0
-
- packets="$(ping -q -w2 -c2 1.1.1.1 | grep -o "100% packet loss")"
- if [ ! -z "${packets}" ];
- then
- status_ping=0
- else
- status_ping=1
- fi
-
- if [ $status_ping -eq 0 ];
- then
- echo 'Connected but no internet'
- fi
- ]=]
-
- -- Awesome/System startup
- local update_startup = function()
- if startup then
- startup = false
- end
- end
-
- -- Consider reconnecting a startup
- local update_reconnect_startup = function(status)
- reconnect_startup = status
- end
-
- -- Update tooltip
- local update_tooltip = function(message)
- network_tooltip:set_markup(message)
- end
-
- local network_notify = function(message, title, app_name, icon)
- naughty.notification({
- message = message,
- title = title,
- app_name = app_name,
- icon = icon
- })
- end
-
- -- Wireless mode / Update
- local update_wireless = function()
-
- network_mode = 'wireless'
-
- -- Create wireless connection notification
- local notify_connected = function(essid)
- local message = 'You are now connected to \"' .. essid .. '\"'
- local title = 'Connection Established'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wifi.svg'
- network_notify(message, title, app_name, icon)
- end
-
- -- Get wifi essid and bitrate
- local update_wireless_data = function(strength, healthy)
- awful.spawn.easy_async_with_shell(
- [[
- iw dev ]] .. interfaces.wlan_interface .. [[ link
- ]],
- function(stdout)
- local essid = stdout:match('SSID: (.-)\n') or 'N/A'
- local bitrate = stdout:match('tx bitrate: (.+/s)') or 'N/A'
- local message = 'Connected to: ' .. (essid or 'Loading...*') ..
- '\nWireless Interface: ' .. interfaces.wlan_interface ..
- '\nWiFi-Strength: ' .. tostring(wifi_strength) .. '%' ..
- '\nBit rate: ' .. tostring(bitrate) .. ''
-
- if healthy then
- update_tooltip(message)
- else
- update_tooltip('Connected but no internet!\n' .. message)
- end
-
- if reconnect_startup or startup then
- notify_connected(essid)
- update_reconnect_startup(false)
- end
- end
- )
- end
-
- -- Update wifi icon based on wifi strength and health
- local update_wireless_icon = function(strength)
- awful.spawn.easy_async_with_shell(
- check_internet_health,
- function(stdout)
- local widget_icon_name = 'wifi-strength'
- if not stdout:match('Connected but no internet') then
- if startup or reconnect_startup then
- awesome.emit_signal('system::network_connected')
- end
- widget_icon_name = widget_icon_name .. '-' .. tostring(strength)
- update_wireless_data(wifi_strength_rounded, true)
- else
- widget_icon_name = widget_icon_name .. '-' .. tostring(strength) .. '-alert'
- update_wireless_data(wifi_strength_rounded, false)
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
- )
- end
-
- -- Get wifi strength
- local update_wireless_strength = function()
- awful.spawn.easy_async_with_shell(
- [[
- awk 'NR==3 {printf "%3.0f" ,($3/70)*100}' /proc/net/wireless
- ]],
- function(stdout)
- if not tonumber(stdout) then
- return
- end
- wifi_strength = tonumber(stdout)
- local wifi_strength_rounded = math.floor(wifi_strength / 25 + 0.5)
- update_wireless_icon(wifi_strength_rounded)
- end
- )
- end
-
- update_wireless_strength()
- update_startup()
- end
-
- local update_wired = function()
-
- network_mode = 'wired'
-
- local notify_connected = function()
- local message = 'Connected to internet with \"' .. interfaces.lan_interface .. '\"'
- local title = 'Connection Established'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wired.svg'
- network_notify(message, title, app_name, icon)
- end
-
- awful.spawn.easy_async_with_shell(
- check_internet_health,
- function(stdout)
-
- local widget_icon_name = 'wired'
-
- if stdout:match('Connected but no internet') then
- widget_icon_name = widget_icon_name .. '-alert'
- update_tooltip(
- 'Connected but no internet!' ..
- '\nEthernet Interface: ' .. interfaces.lan_interface .. ''
- )
- else
- update_tooltip('Ethernet Interface: ' .. interfaces.lan_interface .. '')
- if startup or reconnect_startup then
- awesome.emit_signal('system::network_connected')
- notify_connected()
- update_startup(false)
- end
- update_reconnect_startup(false)
- end
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
- )
- end
-
- local update_disconnected = function()
-
- local notify_wireless_disconnected = function(essid)
- local message = 'Wi-Fi network has been disconnected'
- local title = 'Connection Disconnected'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wifi-strength-off.svg'
- network_notify(message, title, app_name, icon)
- end
-
- local notify_wired_disconnected = function(essid)
- local message = 'Ethernet network has been disconnected'
- local title = 'Connection Disconnected'
- local app_name = 'System Notification'
- local icon = widget_icon_dir .. 'wired-off.svg'
- network_notify(message, title, app_name, icon)
- end
-
- local widget_icon_name = 'wifi-strength-off'
-
- if network_mode == 'wireless' then
- widget_icon_name = 'wifi-strength-off'
- if not reconnect_startup then
- update_reconnect_startup(true)
- notify_wireless_disconnected()
- end
- elseif network_mode == 'wired' then
- widget_icon_name = 'wired-off'
- if not reconnect_startup then
- update_reconnect_startup(true)
- notify_wired_disconnected()
- end
- end
- update_tooltip('Network is currently disconnected')
- widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
- end
-
- local check_network_mode = function()
- awful.spawn.easy_async_with_shell(
- [=[
- wireless="]=] .. tostring(interfaces.wlan_interface) .. [=["
- wired="]=] .. tostring(interfaces.lan_interface) .. [=["
- net="/sys/class/net/"
-
- wired_state="down"
- wireless_state="down"
- network_mode=""
-
- # Check network state based on interface's operstate value
- function check_network_state() {
- # Check what interface is up
- if [[ "${wireless_state}" == "up" ]];
- then
- network_mode='wireless'
- elif [[ "${wired_state}" == "up" ]];
- then
- network_mode='wired'
- else
- network_mode='No internet connection'
- fi
- }
-
- # Check if network directory exist
- function check_network_directory() {
- if [[ -n "${wireless}" && -d "${net}${wireless}" ]];
- then
- wireless_state="$(cat "${net}${wireless}/operstate")"
- fi
- if [[ -n "${wired}" && -d "${net}${wired}" ]]; then
- wired_state="$(cat "${net}${wired}/operstate")"
- fi
- check_network_state
- }
-
- # Start script
- function print_network_mode() {
- # Call to check network dir
- check_network_directory
- # Print network mode
- printf "${network_mode}"
- }
-
- print_network_mode
-
- ]=],
- function(stdout)
- local mode = stdout:gsub('%\n', '')
- if stdout:match('No internet connection') then
- update_disconnected()
- elseif stdout:match('wireless') then
- update_wireless()
- elseif stdout:match('wired') then
- update_wired()
- end
- end
- )
- end
-
- local network_updater = gears.timer {
- timeout = 5,
- autostart = true,
- call_now = true,
- callback = function()
- check_network_mode()
- end
- }
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/notif-center/build-notifbox/empty-notifbox.lua b/config/awesome/surreal/widget/notif-center/build-notifbox/empty-notifbox.lua
deleted file mode 100644
index a56f3303d..000000000
--- a/config/awesome/surreal/widget/notif-center/build-notifbox/empty-notifbox.lua
+++ /dev/null
@@ -1,66 +0,0 @@
--- This returns the "Wow, such empty." message.
-
-local wibox = require('wibox')
-
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = require('gears').filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = wibox.widget {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- nil,
- {
- image = widget_icon_dir .. 'empty-notification' .. '.svg',
- resize = true,
- forced_height = dpi(35),
- forced_width = dpi(35),
- widget = wibox.widget.imagebox,
- },
- nil
- },
- {
- text = 'Wow, such empty.',
- font = 'Inter Bold 14',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- {
- text = 'Come back later.',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- },
- margins = dpi(20),
- widget = wibox.container.margin
-
-}
-
-
-local separator_for_empty_msg = wibox.widget
-{
- orientation = 'vertical',
- opacity = 0.0,
- widget = wibox.widget.separator
-}
-
--- Make empty_notifbox center
-local centered_empty_notifbox = wibox.widget {
- layout = wibox.layout.align.vertical,
- forced_height = dpi(150),
- expand = 'none',
- separator_for_empty_msg,
- empty_notifbox,
- separator_for_empty_msg
-}
-
-return centered_empty_notifbox
-
diff --git a/config/awesome/surreal/widget/notif-center/build-notifbox/init.lua b/config/awesome/surreal/widget/notif-center/build-notifbox/init.lua
deleted file mode 100644
index bd203edcb..000000000
--- a/config/awesome/surreal/widget/notif-center/build-notifbox/init.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local empty_notifbox = require('widget.notif-center.build-notifbox.empty-notifbox')
-local notifbox_scroller = require('widget.notif-center.build-notifbox.notifbox-scroller')
-
-local notif_core = {}
-
-notif_core.remove_notifbox_empty = true
-
-notif_core.notifbox_layout = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- empty_notifbox
-}
-
-notifbox_scroller(notif_core.notifbox_layout)
-
-notif_core.reset_notifbox_layout = function()
- notif_core.notifbox_layout:reset()
- notif_core.notifbox_layout:insert(1, empty_notifbox)
- notif_core.remove_notifbox_empty = true
-end
-
-local notifbox_add = function(n, notif_icon, notifbox_color)
- if #notif_core.notifbox_layout.children == 1 and notif_core.remove_notifbox_empty then
- notif_core.notifbox_layout:reset(notif_core.notifbox_layout)
- notif_core.remove_notifbox_empty = false
- end
-
- local notifbox_box = require('widget.notif-center.build-notifbox.notifbox-builder')
- notif_core.notifbox_layout:insert(
- 1,
- notifbox_box(
- n,
- notif_icon,
- n.title,
- n.message,
- n.app_name,
- notifbox_color
- )
- )
-end
-
-local notifbox_add_expired = function(n, notif_icon, notifbox_color)
- n:connect_signal(
- 'destroyed',
- function(self, reason, keep_visble)
- if reason == 1 then
- notifbox_add(n, notif_icon, notifbox_color)
- end
- end
- )
-end
-
-naughty.connect_signal(
- 'request::display',
- function(n)
- local notifbox_color = beautiful.transparent
- if n.urgency == 'critical' then
- notifbox_color = n.bg .. '66'
- end
-
- local notif_icon = n.icon or n.app_icon
- if not notif_icon then
- notif_icon = widget_icon_dir .. 'new-notif' .. '.svg'
- end
-
- notifbox_add_expired(n, notif_icon, notifbox_color)
- end
-)
-
-return notif_core
diff --git a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-builder.lua b/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-builder.lua
deleted file mode 100644
index e721232f2..000000000
--- a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-builder.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local builder = require('widget.notif-center.build-notifbox.notifbox-ui-elements')
-local notifbox_core = require('widget.notif-center.build-notifbox')
-
-local notifbox_layout = notifbox_core.notifbox_layout
-local remove_notifbox_empty = notifbox_core.remove_notifbox_empty
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local return_date_time = function(format)
- return os.date(format)
-end
-
-local parse_to_seconds = function(time)
- local hourInSec = tonumber(string.sub(time, 1, 2)) * 3600
- local minInSec = tonumber(string.sub(time, 4, 5)) * 60
- local getSec = tonumber(string.sub(time, 7, 8))
- return (hourInSec + minInSec + getSec)
-end
-
-notifbox_box = function(notif, icon, title, message, app, bgcolor)
-
- local time_of_pop = return_date_time('%H:%M:%S')
- local exact_time = return_date_time('%I:%M %p')
- local exact_date_time = return_date_time('%b %d, %I:%M %p')
-
- local notifbox_timepop = wibox.widget {
- id = 'time_pop',
- markup = nil,
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- visible = true,
- widget = wibox.widget.textbox
- }
-
- local notifbox_dismiss = builder.notifbox_dismiss()
-
- local time_of_popup = gears.timer {
- timeout = 60,
- call_now = true,
- autostart = true,
- callback = function()
-
- local time_difference = nil
-
- time_difference = parse_to_seconds(return_date_time('%H:%M:%S')) - parse_to_seconds(time_of_pop)
- time_difference = tonumber(time_difference)
-
- if time_difference < 60 then
- notifbox_timepop:set_markup('now')
-
- elseif time_difference >= 60 and time_difference < 3600 then
- local time_in_minutes = math.floor(time_difference / 60)
- notifbox_timepop:set_markup(time_in_minutes .. 'm ago')
-
- elseif time_difference >= 3600 and time_difference < 86400 then
- notifbox_timepop:set_markup(exact_time)
-
- elseif time_difference >= 86400 then
- notifbox_timepop:set_markup(exact_date_time)
- return false
-
- end
-
- collectgarbage('collect')
- end
- }
-
- local notifbox_template = wibox.widget {
- id = 'notifbox_template',
- expand = 'none',
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- expand = 'none',
- layout = wibox.layout.align.horizontal,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- builder.notifbox_icon(icon),
- builder.notifbox_appname(app),
- },
- nil,
- {
- notifbox_timepop,
- notifbox_dismiss,
- layout = wibox.layout.fixed.horizontal
- }
- },
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- {
- builder.notifbox_title(title),
- builder.notifbox_message(message),
- layout = wibox.layout.fixed.vertical
- },
- builder.notifbox_actions(notif),
- },
-
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- bg = bgcolor,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background,
- }
-
- -- Put the generated template to a container
- local notifbox = wibox.widget {
- notifbox_template,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-
- -- Delete notification box
- local notifbox_delete = function()
- notifbox_layout:remove_widgets(notifbox, true)
- end
-
- -- Delete notifbox on LMB
- notifbox:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function()
- if #notifbox_layout.children == 1 then
- reset_notifbox_layout()
- else
- notifbox_delete()
- end
- collectgarbage('collect')
- end
- )
- )
- )
-
- -- Add hover, and mouse leave events
- notifbox_template:connect_signal(
- 'mouse::enter',
- function()
- notifbox.bg = beautiful.groups_bg
- notifbox_timepop.visible = false
- notifbox_dismiss.visible = true
- end
- )
-
- notifbox_template:connect_signal(
- 'mouse::leave',
- function()
- notifbox.bg = beautiful.tranparent
- notifbox_timepop.visible = true
- notifbox_dismiss.visible = false
- end
- )
-
- collectgarbage('collect')
-
- return notifbox
-end
-
-
-return notifbox_box
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-geometry.lua b/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-geometry.lua
deleted file mode 100644
index 3fe79da1e..000000000
--- a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-geometry.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-
-local find_widget_in_wibox = function(wb, widget)
- local function find_widget_in_hierarchy(h, widget)
- if h:get_widget() == widget then
- return h
- end
- local result
-
- for _, ch in ipairs(h:get_children()) do
- result = result or find_widget_in_hierarchy(ch, widget)
- end
- return result
- end
- local h = wb._drawable._widget_hierarchy
- return h and find_widget_in_hierarchy(h, widget)
-end
-
-
-local focused = awful.screen.focused()
-local h = find_widget_in_wibox(focused.top_panel, focused.music)
-local x, y, width, height = h:get_matrix_to_device():transform_rectangle(0, 0, h:get_size())
--- local geo = focused.mywibox:geometry()
-
-
--- x, y = x + geo.x, y + geo.y
-
--- print(string.format("The widget is inside of the rectangle (%d, %d, %d, %d) on the screen", x, y, width, height)
-
-
-naughty.notification({message=tostring(height)})
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-scroller.lua b/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-scroller.lua
deleted file mode 100644
index f05d323ff..000000000
--- a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-scroller.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-
-local add_button_event = function(widget)
-
- widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if #widget.children == 1 then
- return
- end
- widget:insert(1, widget.children[#widget.children])
- widget:remove(#widget.children)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if #widget.children == 1 then
- return
- end
- widget:insert(#widget.children + 1, widget.children[1])
- widget:remove(1)
- end
- )
- )
- )
-
-end
-
-return add_button_event
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-ui-elements.lua b/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
deleted file mode 100644
index ef5e574c7..000000000
--- a/config/awesome/surreal/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
+++ /dev/null
@@ -1,136 +0,0 @@
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local dpi = beautiful.xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local clickable_container = require('widget.clickable-container')
-
-local ui_noti_builder = {}
-
--- Notification icon container
-ui_noti_builder.notifbox_icon = function(ico_image)
- local noti_icon = wibox.widget {
- {
- id = 'icon',
- resize = true,
- forced_height = dpi(25),
- forced_width = dpi(25),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
- noti_icon.icon:set_image(ico_image)
- return noti_icon
-end
-
--- Notification title container
-ui_noti_builder.notifbox_title = function(title)
- return wibox.widget {
- markup = title,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification message container
-ui_noti_builder.notifbox_message = function(msg)
- return wibox.widget {
- markup = msg,
- font = 'Inter Regular 11',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification app name container
-ui_noti_builder.notifbox_appname = function(app)
- return wibox.widget {
- markup = app,
- font = 'Inter Bold 12',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-end
-
--- Notification actions container
-ui_noti_builder.notifbox_actions = function(n)
- actions_template = wibox.widget {
- notification = n,
- base_layout = wibox.widget {
- spacing = dpi(0),
- layout = wibox.layout.flex.horizontal
- },
- widget_template = {
- {
- {
- {
- {
- id = 'text_role',
- font = 'Inter Regular 10',
- widget = wibox.widget.textbox
- },
- widget = wibox.container.place
- },
- widget = clickable_container
- },
- bg = beautiful.groups_bg,
- shape = gears.shape.rounded_rect,
- forced_height = 30,
- widget = wibox.container.background
- },
- margins = 4,
- widget = wibox.container.margin
- },
- style = { underline_normal = false, underline_selected = true },
- widget = naughty.list.actions,
- }
-
- return actions_template
-end
-
-
--- Notification dismiss button
-ui_noti_builder.notifbox_dismiss = function()
-
- local dismiss_imagebox = wibox.widget {
- {
- id = 'dismiss_icon',
- image = widget_icon_dir .. 'delete.svg',
- resize = true,
- forced_height = dpi(5),
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.fixed.horizontal
- }
-
- local dismiss_button = wibox.widget {
- {
- dismiss_imagebox,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- local notifbox_dismiss = wibox.widget {
- dismiss_button,
- visible = false,
- bg = beautiful.groups_title_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- }
-
- return notifbox_dismiss
-end
-
-
-return ui_noti_builder
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/clear-all/init.lua b/config/awesome/surreal/widget/notif-center/clear-all/init.lua
deleted file mode 100644
index 63cf2592a..000000000
--- a/config/awesome/surreal/widget/notif-center/clear-all/init.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
-
-local notifbox_core = require('widget.notif-center.build-notifbox')
-local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
-
-local clear_all_imagebox = wibox.widget {
- {
- image = widget_icon_dir .. 'clear_all.svg',
- resize = true,
- forced_height = dpi(17),
- forced_width = dpi(17),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local clear_all_button = wibox.widget {
- {
- clear_all_imagebox,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-clear_all_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- reset_notifbox_layout()
- end
- )
- )
-)
-
-local clear_all_button_wrapped = wibox.widget {
- nil,
- {
- clear_all_button,
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
-}
-
-return clear_all_button_wrapped
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/icons/clear_all.svg b/config/awesome/surreal/widget/notif-center/icons/clear_all.svg
deleted file mode 100644
index 3f5b9b457..000000000
--- a/config/awesome/surreal/widget/notif-center/icons/clear_all.svg
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/notif-center/icons/delete.svg b/config/awesome/surreal/widget/notif-center/icons/delete.svg
deleted file mode 100644
index 3f1f88c11..000000000
--- a/config/awesome/surreal/widget/notif-center/icons/delete.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/icons/empty-notification.svg b/config/awesome/surreal/widget/notif-center/icons/empty-notification.svg
deleted file mode 100644
index df4154cdf..000000000
--- a/config/awesome/surreal/widget/notif-center/icons/empty-notification.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/notif-center/icons/new-notif.svg b/config/awesome/surreal/widget/notif-center/icons/new-notif.svg
deleted file mode 100644
index 630b90ab1..000000000
--- a/config/awesome/surreal/widget/notif-center/icons/new-notif.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/config/awesome/surreal/widget/notif-center/init.lua b/config/awesome/surreal/widget/notif-center/init.lua
deleted file mode 100644
index 709d0e9ff..000000000
--- a/config/awesome/surreal/widget/notif-center/init.lua
+++ /dev/null
@@ -1,45 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local notif_header = wibox.widget {
- text = 'Notification Center',
- font = 'Inter Bold 14',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local notif_center = function(s)
-
- s.clear_all = require('widget.notif-center.clear-all')
- s.notifbox_layout = require('widget.notif-center.build-notifbox').notifbox_layout
-
- return wibox.widget {
- {
- {
- expand = 'none',
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- notif_header,
- nil,
- s.clear_all
- },
- s.notifbox_layout
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, w, h)
- gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
- end,
- widget = wibox.container.background
- }
-end
-
-return notif_center
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/open-default-app/init.lua b/config/awesome/surreal/widget/open-default-app/init.lua
deleted file mode 100644
index bb7ac8a7f..000000000
--- a/config/awesome/surreal/widget/open-default-app/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
-local create_open_default_button = function(s)
- s.add_button = wibox.widget {
- {
- {
- {
- {
- image = icons.plus,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- margins = dpi(4),
- widget = wibox.container.margin
- }
-
- s.add_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(
- awful.screen.focused().selected_tag.default_app,
- {
- tag = mouse.screen.selected_tag
- }
- )
- end
- )
- )
- )
- return s.add_button
-end
-
-return create_open_default_button
diff --git a/config/awesome/surreal/widget/package-updater/icons/package-up.svg b/config/awesome/surreal/widget/package-updater/icons/package-up.svg
deleted file mode 100644
index 2251baaac..000000000
--- a/config/awesome/surreal/widget/package-updater/icons/package-up.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/package-updater/icons/package.svg b/config/awesome/surreal/widget/package-updater/icons/package.svg
deleted file mode 100644
index 7d4b2f987..000000000
--- a/config/awesome/surreal/widget/package-updater/icons/package.svg
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/package-updater/init.lua b/config/awesome/surreal/widget/package-updater/init.lua
deleted file mode 100644
index 2f52244b6..000000000
--- a/config/awesome/surreal/widget/package-updater/init.lua
+++ /dev/null
@@ -1,105 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local watch = awful.widget.watch
-
-local apps = require('configuration.apps')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/package-updater/icons/'
-
-local update_available = false
-local number_of_updates_available = nil
-local update_package = nil
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- widget = wibox.widget.imagebox,
- image = widget_icon_dir .. 'package.svg',
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
-
- if update_available then
- awful.spawn(apps.default.package_manager .. ' --updates', false)
-
- else
- awful.spawn(apps.default.package_manager, false)
-
- end
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {widget_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
-
- if update_available then
- return update_package:gsub('\n$', '')
- else
- return 'We are up-to-date!'
- end
-
- end,
- preferred_positions = {'right', 'left', 'top', 'bottom'}
- }
- )
-
- watch(
- 'pamac checkupdates',
- 60,
- function(_, stdout)
- number_of_updates_available = tonumber(stdout:match('.-\n'):match('%d*'))
- update_package = stdout
- local icon_name = nil
- if number_of_updates_available ~= nil then
- update_available = true
- icon_name = 'package-up'
- else
- update_available = false
- icon_name = 'package'
-
- end
-
- widget.icon:set_image(widget_icon_dir .. icon_name .. '.svg')
- collectgarbage('collect')
- end
- )
-
- return widget_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/ram-meter/init.lua b/config/awesome/surreal/widget/ram-meter/init.lua
deleted file mode 100644
index 314518ee7..000000000
--- a/config/awesome/surreal/widget/ram-meter/init.lua
+++ /dev/null
@@ -1,94 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'RAM',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.memory,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'ram_usage',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(36),
- layout = wibox.layout.align.vertical
-}
-
-watch(
- 'bash -c "free | grep -z Mem.*Swap.*"',
- 10,
- function(_, stdout)
- local total, used, free, shared, buff_cache, available, total_swap, used_swap, free_swap =
- stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*Swap:%s*(%d+)%s*(%d+)%s*(%d+)')
- slider.ram_usage:set_value(used / total * 100)
- collectgarbage('collect')
- end
-)
-
-local ram_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return ram_meter
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/audio.svg b/config/awesome/surreal/widget/screen-recorder/icons/audio.svg
deleted file mode 100644
index 2f8668f15..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/audio.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/back.svg b/config/awesome/surreal/widget/screen-recorder/icons/back.svg
deleted file mode 100644
index f0e76e512..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/back.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/close-screen.svg b/config/awesome/surreal/widget/screen-recorder/icons/close-screen.svg
deleted file mode 100644
index 3f1f88c11..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/close-screen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/recorder-countdown.svg b/config/awesome/surreal/widget/screen-recorder/icons/recorder-countdown.svg
deleted file mode 100644
index 63134d5a8..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/recorder-countdown.svg
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/recorder-off.svg b/config/awesome/surreal/widget/screen-recorder/icons/recorder-off.svg
deleted file mode 100644
index 8ade140fb..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/recorder-off.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/recorder-on.svg b/config/awesome/surreal/widget/screen-recorder/icons/recorder-on.svg
deleted file mode 100644
index 29800ca58..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/recorder-on.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/recording-button.svg b/config/awesome/surreal/widget/screen-recorder/icons/recording-button.svg
deleted file mode 100644
index 4caa7b386..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/recording-button.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/settings.svg b/config/awesome/surreal/widget/screen-recorder/icons/settings.svg
deleted file mode 100644
index 2c5a0b996..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/settings.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/screen-recorder/icons/start-recording-button.svg b/config/awesome/surreal/widget/screen-recorder/icons/start-recording-button.svg
deleted file mode 100644
index 986f9dd2a..000000000
--- a/config/awesome/surreal/widget/screen-recorder/icons/start-recording-button.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/screen-recorder/init.lua b/config/awesome/surreal/widget/screen-recorder/init.lua
deleted file mode 100644
index 1dabee6bf..000000000
--- a/config/awesome/surreal/widget/screen-recorder/init.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-local recorder_table = require('widget.screen-recorder.screen-recorder-ui')
-require('widget.screen-recorder.screen-recorder-ui-backend')
-local screen_rec_toggle_button = recorder_table.screen_rec_toggle_button
-
-local return_button = function()
- return screen_rec_toggle_button
-end
-
-return return_button
diff --git a/config/awesome/surreal/widget/screen-recorder/screen-recorder-config.lua b/config/awesome/surreal/widget/screen-recorder/screen-recorder-config.lua
deleted file mode 100644
index faf759368..000000000
--- a/config/awesome/surreal/widget/screen-recorder/screen-recorder-config.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local user_preferences = {}
-local config = require('configuration.config')
-
--- Screen WIDTHxHEIGHT
-user_preferences.user_resolution = config.widget.screen_recorder.resolution or '1366x768'
-
--- Offset x,y
-user_preferences.user_offset = config.widget.screen_recorder.offset or '0,0'
-
--- bool true or false
-user_preferences.user_audio = config.widget.screen_recorder.audio or false
-
--- String $HOME
-user_preferences.user_save_directory = config.widget.screen_recorder.save_directory or '$(xdg-user-dir VIDEOS)/Recordings/'
-
--- String
-user_preferences.user_mic_lvl = config.widget.screen_recorder.mic_level or '20'
-
--- String
-user_preferences.user_fps = config.widget.screen_recorder.fps or '30'
-
-return user_preferences
diff --git a/config/awesome/surreal/widget/screen-recorder/screen-recorder-scripts.lua b/config/awesome/surreal/widget/screen-recorder/screen-recorder-scripts.lua
deleted file mode 100644
index b55ef0aee..000000000
--- a/config/awesome/surreal/widget/screen-recorder/screen-recorder-scripts.lua
+++ /dev/null
@@ -1,169 +0,0 @@
-local awful = require('awful')
-local naughty = require('naughty')
-local user_config = require('widget.screen-recorder.screen-recorder-config')
-local scripts_tbl = {}
-local ffmpeg_pid = nil
-
--- Get user settings
-scripts_tbl.user_resolution = user_config.user_resolution
-scripts_tbl.user_offset = user_config.user_offset
-scripts_tbl.user_audio = user_config.user_audio
-scripts_tbl.user_dir = user_config.user_save_directory
-scripts_tbl.user_mic_lvl = user_config.user_mic_lvl
-scripts_tbl.user_fps = user_config.user_fps
-
-scripts_tbl.update_user_settings = function(res, offset, audio)
- scripts_tbl.user_resolution = res
- scripts_tbl.user_offset = offset
- scripts_tbl.user_audio = audio
-end
-
-scripts_tbl.check_settings = function()
- -- For debugging purpose only
- -- naughty.notification({
- -- message=scripts_tbl.user_resolution .. ' ' .. scripts_tbl.user_offset .. tostring(scripts_tbl.user_audio)
- -- })
-end
-
-local create_save_directory = function()
-
- local create_dir_cmd = [[
- dir="]] .. scripts_tbl.user_dir .. [["
-
- if [ ! -d "$dir" ]; then
- mkdir -p "$dir"
- fi
- ]]
-
- awful.spawn.easy_async_with_shell(
- create_dir_cmd,
- function(stdout) end
- )
-end
-
-create_save_directory()
-
-local kill_existing_recording_ffmpeg = function()
- -- Let's killall ffmpeg instance first after awesome (re)-starts if there's any
- awful.spawn.easy_async_with_shell(
- [[
- ps x | grep 'ffmpeg -video_size' | grep -v grep | awk '{print $1}' | xargs kill
- ]],
- function(stdout) end
- )
-end
-
-kill_existing_recording_ffmpeg()
-
-local turn_on_the_mic = function()
- awful.spawn.easy_async_with_shell(
- [[
- amixer set Capture cap
- amixer set Capture ]].. scripts_tbl.user_mic_lvl ..[[%
- ]],
- function() end
- )
-end
-
-local ffmpeg_stop_recording = function()
- -- Let's killall ffmpeg instance first after awesome (re)-starts if there's any
- awful.spawn.easy_async_with_shell(
- [[
- ps x | grep 'ffmpeg -video_size' | grep -v grep | awk '{print $1}' | xargs kill -2
- ]],
- function(stdout) end
- )
-end
-
-local create_notification = function(file_dir)
- local open_video = naughty.action {
- name = 'Open',
- icon_only = false,
- }
-
- local delete_video = naughty.action {
- name = 'Delete',
- icon_only = false,
- }
-
- open_video:connect_signal(
- 'invoked',
- function()
- awful.spawn('xdg-open ' .. file_dir, false)
- end
- )
-
- delete_video:connect_signal(
- 'invoked',
- function()
- awful.spawn('gio trash ' .. file_dir, false)
- end
- )
-
- naughty.notification ({
- app_name = 'Screen Recorder',
- timeout = 60,
- title = 'Recording Finished!',
- message = 'Recording can now be viewed.',
- actions = { open_video, delete_video }
- })
-end
-
-local ffmpeg_start_recording = function(audio, filename)
- local add_audio_str = ' '
-
- if audio then
- turn_on_the_mic()
- add_audio_str = '-f pulse -ac 2 -i default'
- end
-
- ffmpeg_pid = awful.spawn.easy_async_with_shell(
- [[
- file_name=]] .. filename .. [[
-
- ffmpeg -video_size ]] .. scripts_tbl.user_resolution .. [[ -framerate ]] .. scripts_tbl.user_fps .. [[ -f x11grab \
- -i :0.0+]] .. scripts_tbl.user_offset .. ' ' .. add_audio_str .. [[ -c:v libx264 -crf 20 -profile:v baseline -level 3.0 -pix_fmt yuv420p $file_name
- ]],
- function(stdout, stderr)
- if stderr and stderr:match('Invalid argument') then
- naughty.notification({
- app_name = 'Screen Recorder',
- title = 'Invalid Configuration!',
- message = 'Please, put a valid settings!',
- timeout = 60,
- urgency = 'normal'
- })
- awesome.emit_signal('widget::screen_recorder')
- return
- end
- create_notification(filename)
- end
- )
-end
-
-local create_unique_filename = function(audio)
- awful.spawn.easy_async_with_shell(
- [[
- dir="]] .. scripts_tbl.user_dir .. [["
- date=$(date '+%Y-%m-%d_%H-%M-%S')
- format=.mp4
-
- echo "${dir}${date}${format}" | tr -d '\n'
- ]],
- function(stdout)
- local filename = stdout
- ffmpeg_start_recording(audio, filename)
- end
- )
-end
-
-scripts_tbl.start_recording = function(audio_mode)
- create_save_directory()
- create_unique_filename(audio_mode)
-end
-
-scripts_tbl.stop_recording = function()
- ffmpeg_stop_recording()
-end
-
-return scripts_tbl
diff --git a/config/awesome/surreal/widget/screen-recorder/screen-recorder-ui-backend.lua b/config/awesome/surreal/widget/screen-recorder/screen-recorder-ui-backend.lua
deleted file mode 100644
index 2b03e3112..000000000
--- a/config/awesome/surreal/widget/screen-recorder/screen-recorder-ui-backend.lua
+++ /dev/null
@@ -1,454 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/screen-recorder/icons/'
-
--- The screen-recorders scripting
-local screen_rec_backend = require('widget.screen-recorder.screen-recorder-scripts')
-
--- The screen-recorder's UI
-local screen_rec_ui = require('widget.screen-recorder.screen-recorder-ui')
-
--- User Preferences
-local sr_user_resolution = screen_rec_backend.user_resolution
-local sr_user_offset = screen_rec_backend.user_offset
-local sr_user_audio = screen_rec_backend.user_audio
-local sr_user_update = screen_rec_backend.update_user_settings
-
--- Panel UIs
-local sr_toggle_imgbox = screen_rec_ui.screen_rec_toggle_imgbox
-local sr_toggle_button = screen_rec_ui.screen_rec_toggle_button
-local sr_countdown_text = screen_rec_ui.screen_rec_countdown_txt
-local sr_main_imgbox = screen_rec_ui.screen_rec_main_imgbox
-local sr_main_button = screen_rec_ui.screen_rec_main_button
-local sr_audio_imgbox = screen_rec_ui.screen_rec_audio_imgbox
-local sr_audio_button = screen_rec_ui.screen_rec_audio_button
-local sr_settings_button = screen_rec_ui.screen_rec_settings_button
-local sr_close_button = screen_rec_ui.screen_rec_close_button
-
-
--- Settings UIs
-local sr_back_button = screen_rec_ui.screen_rec_back_button
-local sr_resolution_box = screen_rec_ui.screen_rec_res_txtbox
-local sr_offset_box = screen_rec_ui.screen_rec_offset_txtbox
-local sr_resolution_tbox = sr_resolution_box:get_children_by_id('res_tbox')[1]
-local sr_offset_tbox = sr_offset_box:get_children_by_id('offset_tbox')[1]
-
-
--- Main Scripts
-local sr_start_recording = screen_rec_backend.start_recording
-local sr_stop_recording = screen_rec_backend.stop_recording
-
--- Active Screen Recorder
-local sr_screen = nil
-
--- Active textbox
-local sr_active_tbox = nil
-
-
--- Status variables
-local status_countdown = false
-local status_recording = false
-local status_audio = sr_user_audio
-
-
--- Update UI on startup using the user config
-sr_resolution_tbox:set_markup('' .. sr_user_resolution .. "")
-sr_offset_tbox:set_markup('' .. sr_user_offset .. "")
-
-local sr_res_default_markup = sr_resolution_tbox:get_markup()
-local sr_offset_default_markup = sr_offset_tbox:get_markup()
-
-
-if status_audio then
- sr_audio_button.bg = '#EE4F84' .. '66'
-else
- sr_audio_button.bg = beautiful.groups_bg
-end
-
--- Textbox ui manipulators
-local emphasize_inactive_tbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_box.shape_border_width = dpi(0)
- sr_resolution_box.shape_border_color = beautiful.transparent
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_box.shape_border_width = dpi(0)
- sr_offset_box.shape_border_color = beautiful.transparent
- end
- sr_active_tbox = nil
-end
-
-local emphasize_active_tbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_box.border_width = dpi(1)
- sr_resolution_box.border_color = '#F2F2F2AA'
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_box.border_width = dpi(1)
- sr_offset_box.border_color = '#F2F2F2AA'
- end
-end
-
--- Delete, reset and write to the textbox
-local write_to_textbox = function(char)
- if sr_active_tbox == 'res_tbox' and (char:match('%d') or char == 'x') then
- if sr_resolution_tbox:get_markup() == sr_res_default_markup then
- sr_resolution_tbox:set_text('')
- end
- if tonumber(#sr_resolution_tbox:get_text()) <= 8 then
- sr_resolution_tbox:set_text(sr_resolution_tbox:get_text() .. char)
- end
- elseif sr_active_tbox == 'offset_tbox' and (char:match('%d') or char == ',') then
- if sr_offset_tbox:get_markup() == sr_offset_default_markup then
- sr_offset_tbox:set_text('')
- end
- sr_offset_tbox:set_text(sr_offset_tbox:get_text() .. char)
- end
-end
-
-local reset_textbox = function()
- if sr_active_tbox == 'res_tbox' then
- sr_resolution_tbox:set_markup(sr_res_default_markup)
- elseif sr_active_tbox == 'offset_tbox' then
- sr_offset_tbox:set_markup(sr_offset_default_markup)
- end
- emphasize_inactive_tbox()
-end
-
--- Set audio mode
-local sr_audio_mode = function()
- if not status_recording and not status_countdown then
- if status_audio then
- status_audio = false
- sr_audio_button.bg = beautiful.groups_bg
- else
- status_audio = true
- sr_audio_button.bg = '#EE4F84' .. '66'
- end
- end
-end
-
-local delete_key = function()
- if sr_active_tbox == 'res_tbox' then
- if tonumber(#sr_resolution_tbox:get_text()) == 1 then
- reset_textbox()
- return
- end
- sr_resolution_tbox:set_text(sr_resolution_tbox:get_text():sub(1, -2))
- elseif sr_active_tbox == 'offset_tbox' then
- if tonumber(#sr_offset_tbox:get_text()) == 1 then
- reset_textbox()
- return
- end
- sr_offset_tbox:set_text(sr_offset_tbox:get_text():sub(1, -2))
- end
-end
-
-local apply_new_settings = function()
-
- -- Get the text on texbox
- sr_user_resolution = sr_resolution_tbox:get_text()
- sr_user_offset = sr_offset_tbox:get_text()
-
- -- Apply new settings
- sr_user_update(sr_user_resolution, sr_user_offset, status_audio)
-
- -- Debugger
- screen_rec_backend.check_settings()
-end
-
--- Settings Key grabber
-local settings_updater = awful.keygrabber {
- auto_start = true,
- stop_event = 'release',
- keypressed_callback = function(self, mod, key, command)
- if key == 'BackSpace' then
- delete_key()
- end
- end,
- keyreleased_callback = function(self, mod, key, command)
- if key == 'Return' then
- apply_new_settings()
- self:stop()
- end
-
- if key == 'Escape' then
- self:stop()
- reset_textbox()
- end
-
- if key:match('%d') or key == 'x' or key == ',' then
- write_to_textbox(key)
- end
-
- end
-}
-
--- Textboxes
-sr_resolution_tbox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- emphasize_inactive_tbox()
- sr_active_tbox = 'res_tbox'
- emphasize_active_tbox()
- settings_updater:start()
- end
- )
- )
-)
-
-sr_offset_tbox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- emphasize_inactive_tbox()
- sr_active_tbox = 'offset_tbox'
- emphasize_active_tbox()
- settings_updater:start()
- end
- )
- )
-)
-
--- UI switcher
-local sr_navigation_reset = function()
- if sr_screen then
- local recorder_panel = sr_screen:get_children_by_id('recorder_panel')[1]
- local recorder_settings = sr_screen:get_children_by_id('recorder_settings')[1]
- recorder_settings.visible = false
- recorder_panel.visible = true
- end
-end
-
-local sr_navigation = function()
- if sr_screen then
- local recorder_panel = sr_screen:get_children_by_id('recorder_panel')[1]
- local recorder_settings = sr_screen:get_children_by_id('recorder_settings')[1]
- if recorder_panel.visible then
- recorder_panel.visible = false
- recorder_settings.visible = true
- else
- recorder_settings.visible = false
- recorder_panel.visible = true
- end
- end
-end
-
-sr_settings_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- if not status_recording and not status_countdown then
- sr_navigation()
- end
- end
- )
- )
-)
-
-sr_back_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
-
- -- Save settings
- apply_new_settings()
-
- -- Reset textbox UI
- emphasize_inactive_tbox()
-
- -- Go back to UI Panel
- sr_navigation()
- end
- )
- )
-)
-
--- Close button functions and buttons
-local screen_rec_close = function()
-
- for s in screen do
- s.recorder_screen.visible = false
- end
- settings_updater:stop()
- sr_navigation_reset()
- sr_screen = nil
-end
-
-sr_close_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- screen_rec_close()
- end
- )
- )
-)
-
--- Right click to exit
-local screen_close_on_rmb = function(widget)
- widget:buttons(
- gears.table.join(
- awful.button(
- {},
- 3,
- nil,
- function()
- screen_rec_close()
- end
- )
- )
- )
-end
-
--- Open recorder screen
-sr_toggle_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- for s in screen do
- s.recorder_screen.visible = false
- end
- sr_screen = awful.screen.focused().recorder_screen
- screen_close_on_rmb(sr_screen)
- sr_screen.visible = not sr_screen.visible
- end
- )
- )
-)
-
--- Start Recording
-local sr_recording_start = function()
- status_countdown = false
- status_recording = true
- local sr_screen = awful.screen.focused().recorder_screen
-
- -- Hide recorder screen
- sr_screen.visible = false
-
- -- Manipulate UIs
- sr_toggle_imgbox:set_image(widget_icon_dir .. 'recording-button' .. '.svg')
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-on' .. '.svg')
-
- sr_start_recording(status_audio)
-end
-
--- Stop Recording
-local sr_recording_stop = function()
- status_recording = false
- status_audio = false
-
- -- Manipulate UIs
- sr_toggle_imgbox:set_image(widget_icon_dir .. 'start-recording-button' .. '.svg')
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-off' .. '.svg')
- sr_stop_recording()
-end
-
-awesome.connect_signal(
- 'widget::screen_recorder',
- function()
- sr_recording_stop()
- end
-)
-
--- Countdown timer functions
-local countdown_timer = nil
-local counter_timer = function()
- status_countdown = true
- local seconds = 3
- countdown_timer = gears.timer.start_new(
- 1,
- function()
- if seconds == 0 then
- sr_countdown_text.opacity = 0.0
-
- -- Start recording function
- sr_recording_start()
- sr_countdown_text:emit_signal('widget::redraw_needed')
- return false
- else
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-countdown' .. '.svg')
- sr_countdown_text.opacity = 1.0
- sr_countdown_text:set_text(tostring(seconds))
- sr_countdown_text:emit_signal('widget::redraw_needed')
- end
- seconds = seconds - 1
- return true
- end
- )
-end
-
--- Stop Countdown timer
-local sr_countdown_stop = function()
- countdown_timer:stop()
- status_countdown = false
- sr_main_imgbox:set_image(widget_icon_dir .. 'recorder-off' .. '.svg')
- sr_countdown_text.opacity = 0.0
- sr_countdown_text:emit_signal('widget::redraw_needed')
-end
-
-sr_audio_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- sr_audio_mode()
- end
- )
- )
-)
-
--- Main button functions and buttons
-local status_checker = function()
- if status_recording and not status_countdown then
-
- -- Stop recording
- sr_recording_stop()
- return
- elseif not status_recording and status_countdown then
-
- -- Stop timer
- sr_countdown_stop()
- return
- end
-
- -- Start counting down
- counter_timer()
-end
-
-sr_main_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- status_checker()
- end
- )
- )
-)
diff --git a/config/awesome/surreal/widget/screen-recorder/screen-recorder-ui.lua b/config/awesome/surreal/widget/screen-recorder/screen-recorder-ui.lua
deleted file mode 100644
index c877d8987..000000000
--- a/config/awesome/surreal/widget/screen-recorder/screen-recorder-ui.lua
+++ /dev/null
@@ -1,343 +0,0 @@
-local awful = require('awful')
-local gears = require('gears')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/screen-recorder/icons/'
-local record_tbl = {}
-
--- Panel UI
-record_tbl.screen_rec_toggle_imgbox = wibox.widget {
- image = widget_icon_dir .. 'start-recording-button' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_toggle_button = wibox.widget {
- {
- record_tbl.screen_rec_toggle_imgbox,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-record_tbl.screen_rec_countdown_txt = wibox.widget {
- id = 'countdown_text',
- font = 'Inter Bold 64',
- text = '4',
- align = 'center',
- valign = 'bottom',
- opacity = 0.0,
- widget = wibox.widget.textbox
-}
-
-record_tbl.screen_rec_main_imgbox = wibox.widget {
- image = widget_icon_dir .. 'recorder-off' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_main_button = wibox.widget {
- {
- {
- {
- record_tbl.screen_rec_main_imgbox,
- margins = dpi(24),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(200),
- forced_height = dpi(200),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
- },
- margins = dpi(24),
- widget = wibox.container.margin
-}
-
-record_tbl.screen_rec_audio_imgbox = wibox.widget {
- image = widget_icon_dir .. 'audio' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_audio_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_audio_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_close_imgbox = wibox.widget {
- image = widget_icon_dir .. 'close-screen' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_close_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_close_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.horizontal
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_settings_imgbox = wibox.widget {
- image = widget_icon_dir .. 'settings' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_settings_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_settings_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_back_imgbox = wibox.widget {
- image = widget_icon_dir .. 'back' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
-}
-
-record_tbl.screen_rec_back_button = wibox.widget {
- {
- nil,
- {
- {
- record_tbl.screen_rec_back_imgbox,
- margins = dpi(16),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- nil,
- expand = 'none',
- layout = wibox.layout.align.vertical
- },
- forced_width = dpi(48),
- forced_height = dpi(48),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_back_txt = wibox.widget {
- {
- text = 'Back',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-
-}
-
-record_tbl.screen_rec_res_txt = wibox.widget {
- {
- text = 'Resolution',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-
-}
-
-record_tbl.screen_rec_res_txtbox = wibox.widget {
- {
- {
- {
- id = 'res_tbox',
- markup = '' .. '1366x768' .. "",
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-record_tbl.screen_rec_offset_txt = wibox.widget {
- {
- text = 'Offset',
- font = 'Inter Bold 16',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
-}
-
-record_tbl.screen_rec_offset_txtbox = wibox.widget {
- {
- {
- {
- id = 'offset_tbox',
- markup = '' .. '0,0' .. "",
- font = 'Inter Bold 16',
- ellipsize = 'start',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container
- },
- forced_width = dpi(60),
- forced_height = dpi(60),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-screen.connect_signal("request::desktop_decoration", function(s)
-
- s.recorder_screen = wibox
- ({
- ontop = true,
- screen = s,
- type = 'dock',
- height = s.geometry.height,
- width = s.geometry.width,
- x = s.geometry.x,
- y = s.geometry.y,
- bg = beautiful.background,
- fg = beautiful.fg_normal
- })
-
- s.recorder_screen : setup {
- layout = wibox.layout.stack,
- {
- id = 'recorder_panel',
- visible = true,
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- record_tbl.screen_rec_countdown_txt,
- {
- layout = wibox.layout.align.horizontal,
- record_tbl.screen_rec_settings_button,
- record_tbl.screen_rec_main_button,
- record_tbl.screen_rec_audio_button
- },
- record_tbl.screen_rec_close_button,
- },
- nil
-
- },
- nil
- },
- {
- id = 'recorder_settings',
- visible = false,
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.align.horizontal,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- forced_width = dpi(240),
- spacing = dpi(10),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- record_tbl.screen_rec_back_button,
- record_tbl.screen_rec_back_txt,
- },
- record_tbl.screen_rec_res_txt,
- record_tbl.screen_rec_res_txtbox,
- record_tbl.screen_rec_offset_txt,
- record_tbl.screen_rec_offset_txtbox
- },
- nil
-
- },
- nil
- }
- }
-
-end)
-
-return record_tbl
diff --git a/config/awesome/surreal/widget/search-apps/init.lua b/config/awesome/surreal/widget/search-apps/init.lua
deleted file mode 100644
index d056e1929..000000000
--- a/config/awesome/surreal/widget/search-apps/init.lua
+++ /dev/null
@@ -1,49 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-
-local apps = require('configuration.apps')
-local icons = require('theme.icons')
-
-local return_button = function()
-
- local widget = wibox.widget {
- {
- id = 'icon',
- image = icons.menu,
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn(apps.default.rofi_appmenu, false)
- end
- )
- )
- )
-
-
- return widget_button
-end
-
-return return_button
\ No newline at end of file
diff --git a/config/awesome/surreal/widget/tag-list/init.lua b/config/awesome/surreal/widget/tag-list/init.lua
deleted file mode 100644
index a59c6a21f..000000000
--- a/config/awesome/surreal/widget/tag-list/init.lua
+++ /dev/null
@@ -1,168 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, tb, bgb, tbm, ibm, l, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(16),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- ib,
- margins = dpi(10),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- bg_clickable = clickable_container()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- -- l:add(tbm)
- bg_clickable:set_widget(l)
-
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- bgb:buttons(create_buttons(buttons, o))
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = icon
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tag_list = function(s)
- return awful.widget.taglist(
- s,
- awful.widget.taglist.filter.all,
- awful.util.table.join(
- awful.button(
- {},
- 1,
- function(t)
- t:view_only()
- end
- ),
- awful.button(
- {modkey},
- 1,
- function(t)
- if _G.client.focus then
- _G.client.focus:move_to_tag(t)
- t:view_only()
- end
- end
- ),
- awful.button({}, 3, awful.tag.viewtoggle),
- awful.button(
- {modkey},
- 3,
- function(t)
- if _G.client.focus then
- _G.client.focus:toggle_tag(t)
- end
- end
- ),
- awful.button(
- {},
- 4,
- function(t)
- awful.tag.viewprev(t.screen)
- end
- ),
- awful.button(
- {},
- 5,
- function(t)
- awful.tag.viewnext(t.screen)
- end
- )
- ),
- {},
- list_update,
- wibox.layout.fixed.horizontal()
- )
-end
-return tag_list
diff --git a/config/awesome/surreal/widget/task-list/init.lua b/config/awesome/surreal/widget/task-list/init.lua
deleted file mode 100644
index 9bf921ed7..000000000
--- a/config/awesome/surreal/widget/task-list/init.lua
+++ /dev/null
@@ -1,232 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local dpi = require('beautiful').xresources.apply_dpi
-local gears = require('gears')
-local clickable_container = require('widget.clickable-container')
-local icons = require('theme.icons')
-
---- Common method to create buttons.
--- @tab buttons
--- @param object
--- @return table
-local function create_buttons(buttons, object)
- if buttons then
- local btns = {}
- for _, b in ipairs(buttons) do
- -- Create a proxy button object: it will receive the real
- -- press and release events, and will propagate them to the
- -- button object the user provided, but with the object as
- -- argument.
- local btn = awful.button {
- modifiers = b.modifiers,
- button = b.button,
- on_press = function()
- b:emit_signal('press', object)
- end,
- on_release = function()
- b:emit_signal('release', object)
- end
- }
- btns[#btns + 1] = btn
- end
- return btns
- end
-end
-
-local function list_update(w, buttons, label, data, objects)
- -- Update the widgets, creating them if needed
- w:reset()
- for i, o in ipairs(objects) do
- local cache = data[o]
- local ib, cb, tb, cbm, bgb, tbm, ibm, tt, l, ll, bg_clickable
- if cache then
- ib = cache.ib
- tb = cache.tb
- bgb = cache.bgb
- tbm = cache.tbm
- ibm = cache.ibm
- tt = cache.tt
- else
- ib = wibox.widget.imagebox()
- tb = wibox.widget.textbox()
- cb = wibox.widget {
- {
- {
- image = icons.close,
- resize = true,
- widget = wibox.widget.imagebox
- },
- margins = dpi(4),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
- cb.shape = gears.shape.circle
- cbm = wibox.widget {
- -- 4, 8 ,12 ,12 -- close button
- cb,
- left = dpi(4),
- right = dpi(8),
- top = dpi(4),
- bottom = dpi(4),
- widget = wibox.container.margin
- }
- cbm:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- o:kill()
- end
- )
- )
- )
- bg_clickable = clickable_container()
- bgb = wibox.container.background()
- tbm = wibox.widget {
- tb,
- left = dpi(4),
- right = dpi(4),
- widget = wibox.container.margin
- }
- ibm = wibox.widget {
- -- 12 top bottom
- ib,
- left = dpi(6),
- right = dpi(6),
- top = dpi(6),
- bottom = dpi(6),
- widget = wibox.container.margin
- }
- l = wibox.layout.fixed.horizontal()
- ll = wibox.layout.fixed.horizontal()
-
- -- All of this is added in a fixed widget
- l:fill_space(true)
- l:add(ibm)
- l:add(tbm)
- ll:add(l)
- ll:add(cbm)
-
- bg_clickable:set_widget(ll)
- -- And all of this gets a background
- bgb:set_widget(bg_clickable)
-
- l:buttons(create_buttons(buttons, o))
-
- -- Tooltip to display whole title, if it was truncated
- tt = awful.tooltip({
- objects = {tb},
- mode = 'outside',
- align = 'bottom',
- delay_show = 1,
- })
-
- data[o] = {
- ib = ib,
- tb = tb,
- bgb = bgb,
- tbm = tbm,
- ibm = ibm,
- tt = tt
- }
- end
-
- local text, bg, bg_image, icon, args = label(o, tb)
- args = args or {}
-
- -- The text might be invalid, so use pcall.
- if text == nil or text == '' then
- tbm:set_margins(0)
- else
- -- Truncate when title is too long
- local text_only = text:match('>(.-)<')
- if (utf8.len(text_only) > 24) then
- text = text:gsub('>(.-)<', '>' .. string.sub(text_only, 1, utf8.offset(text_only,22) - 1) .. '...<')
- tt:set_text(text_only)
- tt:add_to_object(tb)
- else
- tt:remove_from_object(tb)
- end
- if not tb:set_markup_silently(text) then
- tb:set_markup('<Invalid text>')
- end
- end
- bgb:set_bg(bg)
- if type(bg_image) == 'function' then
- -- TODO: Why does this pass nil as an argument?
- bg_image = bg_image(tb, o, nil, objects, i)
- end
- bgb:set_bgimage(bg_image)
- if icon then
- ib.image = gears.surface(icon)
- else
- ibm:set_margins(0)
- end
-
- bgb.shape = args.shape
- bgb.shape_border_width = args.shape_border_width
- bgb.shape_border_color = args.shape_border_color
-
- w:add(bgb)
- end
-end
-
-local tasklist_buttons = awful.util.table.join(
- awful.button(
- {},
- 1,
- function(c)
- if c == client.focus then
- c.minimized = true
- else
- -- Without this, the following
- -- :isvisible() makes no sense
- c.minimized = false
- if not c:isvisible() and c.first_tag then
- c.first_tag:view_only()
- end
- -- This will also un-minimize
- -- the client, if needed
- c:emit_signal('request::activate')
- c:raise()
- end
- end
- ),
- awful.button(
- {},
- 2,
- function(c)
- c:kill()
- end
- ),
- awful.button(
- {},
- 4,
- function()
- awful.client.focus.byidx(1)
- end
- ),
- awful.button(
- {},
- 5,
- function()
- awful.client.focus.byidx(-1)
- end
- )
-)
-
-local task_list = function(s)
- return awful.widget.tasklist(
- s,
- awful.widget.tasklist.filter.currenttags,
- tasklist_buttons,
- {},
- list_update,
- wibox.layout.fixed.horizontal()
- )
-end
-
-return task_list
diff --git a/config/awesome/surreal/widget/temperature-meter/init.lua b/config/awesome/surreal/widget/temperature-meter/init.lua
deleted file mode 100644
index 50f8fc3a1..000000000
--- a/config/awesome/surreal/widget/temperature-meter/init.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local beautiful = require('beautiful')
-local watch = awful.widget.watch
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-
-local meter_name = wibox.widget {
- text = 'Temperature',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.thermometer,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local meter_icon = wibox.widget {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'temp_status',
- max_value = 100,
- value = 29,
- forced_height = dpi(24),
- color = '#f2f2f2EE',
- background_color = '#ffffff20',
- shape = gears.shape.rounded_rect,
- widget = wibox.widget.progressbar
- },
- nil,
- expand = 'none',
- forced_height = dpi(36),
- layout = wibox.layout.align.vertical
-}
-
-local max_temp = 80
-
-awful.spawn.easy_async_with_shell(
- [[
- temp_path=null
- for i in /sys/class/hwmon/hwmon*/temp*_input;
- do
- temp_path="$(echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null ||
- echo $(basename ${i%_*})) $(readlink -f $i)");"
-
- label="$(echo $temp_path | awk '{print $2}')"
-
- if [ "$label" = "Package" ];
- then
- echo ${temp_path} | awk '{print $5}' | tr -d ';\n'
- exit;
- fi
- done
- ]],
- function(stdout)
- local temp_path = stdout:gsub('%\n', '')
- if temp_path == '' or not temp_path then
- temp_path = '/sys/class/thermal/thermal_zone0/temp'
- end
-
- watch(
- [[
- sh -c "cat ]] .. temp_path .. [["
- ]],
- 10,
- function(_, stdout)
- local temp = stdout:match('(%d+)')
- slider.temp_status:set_value((temp / 1000) / max_temp * 100)
- collectgarbage('collect')
- end
- )
- end
-)
-
-local temp_meter = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(5),
- meter_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- meter_icon
- },
- nil
- },
- slider
- }
-}
-
-return temp_meter
diff --git a/config/awesome/surreal/widget/tray-toggle/icons/left-arrow.svg b/config/awesome/surreal/widget/tray-toggle/icons/left-arrow.svg
deleted file mode 100644
index f0e76e512..000000000
--- a/config/awesome/surreal/widget/tray-toggle/icons/left-arrow.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/tray-toggle/icons/right-arrow.svg b/config/awesome/surreal/widget/tray-toggle/icons/right-arrow.svg
deleted file mode 100644
index 74464241f..000000000
--- a/config/awesome/surreal/widget/tray-toggle/icons/right-arrow.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/tray-toggle/init.lua b/config/awesome/surreal/widget/tray-toggle/init.lua
deleted file mode 100644
index 76af98d7f..000000000
--- a/config/awesome/surreal/widget/tray-toggle/init.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local dpi = require('beautiful').xresources.apply_dpi
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/tray-toggle/icons/'
-
-local widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'right-arrow' .. '.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
-}
-
-local widget_button = wibox.widget {
- {
- widget,
- margins = dpi(7),
- widget = wibox.container.margin
- },
- widget = clickable_container
-}
-
-widget_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('widget::systray:toggle')
- end
- )
- )
-)
-
--- Listen to signal
-awesome.connect_signal(
- 'widget::systray:toggle',
- function()
- if screen.primary.systray then
-
- if not screen.primary.systray.visible then
-
- widget.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'left-arrow.svg'))
- else
-
- widget.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'right-arrow.svg'))
- end
-
- screen.primary.systray.visible = not screen.primary.systray.visible
- end
- end
-)
-
--- Update icon on start-up
-if screen.primary.systray then
- if screen.primary.systray.visible then
- widget.icon:set_image(widget_icon_dir .. 'right-arrow' .. '.svg')
- end
-end
-
--- Show only the tray button in the primary screen
-return awful.widget.only_on_screen(widget_button, 'primary')
diff --git a/config/awesome/surreal/widget/user-profile/init.lua b/config/awesome/surreal/widget/user-profile/init.lua
deleted file mode 100644
index 87655a78c..000000000
--- a/config/awesome/surreal/widget/user-profile/init.lua
+++ /dev/null
@@ -1,144 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local apps = require('configuration.apps')
-local clickable_container = require('widget.clickable-container')
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'configuration/user-profile/'
-local user_icon_dir = '/var/lib/AccountsService/icons/'
-
-title_table = {
- 'Hey, I have a message for you',
- 'Listen here you little shit!',
- 'Le\' me tell you a secret',
- 'I never lie',
- 'Message received from your boss'
-}
-
-message_table = {
- 'Let me rate your face! Oops... It looks like I can\'t compute negative numbers. You\'re ugly af, sorry',
- 'Lookin\' good today, now fuck off!',
- 'The last thing I want to do is hurt you. But it’s still on the list.',
- 'If I agreed with you we’d both be wrong.',
- 'I intend to live forever. So far, so good.',
- 'Jesus loves you, but everyone else thinks you’re an asshole.',
- 'Your baby is so ugly, you should have thrown it away and kept the stork.',
- 'If your brain was dynamite, there wouldn’t be enough to blow your hat off.',
- 'You are more disappointing than an unsalted pretzel.',
- 'Your kid is so ugly, he makes his Happy Meal cry.',
- 'Your secrets are always safe with me. I never even listen when you tell me them.',
- 'I only take you everywhere I go just so I don’t have to kiss you goodbye.',
- 'You look so pretty. Not at all gross, today.',
- 'It’s impossible to underestimate you.',
- 'I’m not insulting you, I’m describing you.',
- 'Keep rolling your eyes, you might eventually find a brain.',
- 'You bring everyone so much joy, when you leave the room.',
- 'I thought of you today. It reminded me to take out the trash.',
- 'You are the human version of period cramps.',
- 'You’re the reason God created the middle finger.'
-}
-
-local create_profile = function()
- local profile_imagebox = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'default.svg',
- widget = wibox.widget.imagebox,
- resize = true,
- forced_height = dpi(28),
- clip_shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end
- },
- layout = wibox.layout.align.horizontal
- }
-
- profile_imagebox:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.single_instance('mugshot')
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- naughty.notification({
- app_name = 'FBI\'s ChatBot v69',
- title = title_table[math.random(#title_table)],
- message = message_table[math.random(#message_table)] ..
- '\n\n- xXChatBOT69Xx',
- urgency = 'normal'
- })
- end
- )
- )
- )
-
- local profile_name = wibox.widget {
- font = 'Inter Regular 10',
- markup = 'User',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- }
-
- local update_profile_image = function()
- awful.spawn.easy_async_with_shell(
- apps.utils.update_profile,
- function(stdout)
- stdout = stdout:gsub('%\n','')
- if not stdout:match('default') then
- profile_imagebox.icon:set_image(stdout)
- else
- profile_imagebox.icon:set_image(widget_icon_dir .. 'default.svg')
- end
- end
- )
- end
-
- update_profile_image()
-
- awful.spawn.easy_async_with_shell(
- [[
- sh -c '
- fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
- if [ -z "$fullname" ];
- then
- printf "$(whoami)@$(hostname)"
- else
- printf "$fullname"
- fi
- '
- ]],
- function(stdout)
- local stdout = stdout:gsub('%\n', '')
- profile_name:set_markup(stdout)
- end
- )
-
- local user_profile = wibox.widget {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- profile_imagebox,
- nil
- },
- profile_name
- }
-
- return user_profile
-end
-
-return create_profile
diff --git a/config/awesome/surreal/widget/volume-slider/init.lua b/config/awesome/surreal/widget/volume-slider/init.lua
deleted file mode 100644
index d32d835fe..000000000
--- a/config/awesome/surreal/widget/volume-slider/init.lua
+++ /dev/null
@@ -1,197 +0,0 @@
-local wibox = require('wibox')
-local gears = require('gears')
-local awful = require('awful')
-local beautiful = require('beautiful')
-local spawn = awful.spawn
-local dpi = beautiful.xresources.apply_dpi
-local icons = require('theme.icons')
-local clickable_container = require('widget.clickable-container')
-
-local action_name = wibox.widget {
- text = 'Volume',
- font = 'Inter Bold 10',
- align = 'left',
- widget = wibox.widget.textbox
-}
-
-local icon = wibox.widget {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- image = icons.volume,
- resize = true,
- widget = wibox.widget.imagebox
- },
- nil
-}
-
-local action_level = wibox.widget {
- {
- {
- icon,
- margins = dpi(5),
- widget = wibox.container.margin
- },
- widget = clickable_container,
- },
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
-local slider = wibox.widget {
- nil,
- {
- id = 'volume_slider',
- bar_shape = gears.shape.rounded_rect,
- bar_height = dpi(24),
- bar_color = '#ffffff20',
- bar_active_color = '#f2f2f2EE',
- handle_color = '#ffffff',
- handle_shape = gears.shape.circle,
- handle_width = dpi(24),
- handle_border_color = '#00000012',
- handle_border_width = dpi(1),
- maximum = 100,
- widget = wibox.widget.slider
- },
- nil,
- expand = 'none',
- forced_height = dpi(24),
- layout = wibox.layout.align.vertical
-}
-
-local volume_slider = slider.volume_slider
-
-volume_slider:connect_signal(
- 'property::value',
- function()
- local volume_level = volume_slider:get_value()
-
- spawn('amixer -D pulse sset Master ' ..
- volume_level .. '%',
- false
- )
-
- -- Update volume osd
- awesome.emit_signal(
- 'module::volume_osd',
- volume_level
- )
- end
-)
-
-volume_slider:buttons(
- gears.table.join(
- awful.button(
- {},
- 4,
- nil,
- function()
- if volume_slider:get_value() > 100 then
- volume_slider:set_value(100)
- return
- end
- volume_slider:set_value(volume_slider:get_value() + 5)
- end
- ),
- awful.button(
- {},
- 5,
- nil,
- function()
- if volume_slider:get_value() < 0 then
- volume_slider:set_value(0)
- return
- end
- volume_slider:set_value(volume_slider:get_value() - 5)
- end
- )
- )
-)
-
-
-local update_slider = function()
- awful.spawn.easy_async_with_shell(
- [[bash -c "amixer -D pulse sget Master"]],
- function(stdout)
- local volume = string.match(stdout, '(%d?%d?%d)%%')
- volume_slider:set_value(tonumber(volume))
- end
- )
-end
-
--- Update on startup
-update_slider()
-
-local action_jump = function()
- local sli_value = volume_slider:get_value()
- local new_value = 0
-
- if sli_value >= 0 and sli_value < 50 then
- new_value = 50
- elseif sli_value >= 50 and sli_value < 100 then
- new_value = 100
- else
- new_value = 0
- end
- volume_slider:set_value(new_value)
-end
-
-action_level:buttons(
- awful.util.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- action_jump()
- end
- )
- )
-)
-
--- The emit will come from the global keybind
-awesome.connect_signal(
- 'widget::volume',
- function()
- update_slider()
- end
-)
-
--- The emit will come from the OSD
-awesome.connect_signal(
- 'widget::volume:update',
- function(value)
- volume_slider:set_value(tonumber(value))
- end
-)
-
-local volume_setting = wibox.widget {
- layout = wibox.layout.fixed.vertical,
- forced_height = dpi(48),
- spacing = dpi(5),
- action_name,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(5),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.horizontal,
- forced_height = dpi(24),
- forced_width = dpi(24),
- action_level
- },
- nil
- },
- slider
- }
-}
-
-return volume_setting
diff --git a/config/awesome/surreal/widget/weather/icons/d_rain.svg b/config/awesome/surreal/widget/weather/icons/d_rain.svg
deleted file mode 100644
index 44cacc1bb..000000000
--- a/config/awesome/surreal/widget/weather/icons/d_rain.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/dbroken_clouds.svg b/config/awesome/surreal/widget/weather/icons/dbroken_clouds.svg
deleted file mode 100644
index 8fa80050a..000000000
--- a/config/awesome/surreal/widget/weather/icons/dbroken_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/dfew_clouds.svg b/config/awesome/surreal/widget/weather/icons/dfew_clouds.svg
deleted file mode 100644
index a4f1fd380..000000000
--- a/config/awesome/surreal/widget/weather/icons/dfew_clouds.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/dmist.svg b/config/awesome/surreal/widget/weather/icons/dmist.svg
deleted file mode 100644
index b23f3bf05..000000000
--- a/config/awesome/surreal/widget/weather/icons/dmist.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/dscattered_clouds.svg b/config/awesome/surreal/widget/weather/icons/dscattered_clouds.svg
deleted file mode 100644
index 9c0ebcb26..000000000
--- a/config/awesome/surreal/widget/weather/icons/dscattered_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/dshower_rain.svg b/config/awesome/surreal/widget/weather/icons/dshower_rain.svg
deleted file mode 100644
index 3a8800480..000000000
--- a/config/awesome/surreal/widget/weather/icons/dshower_rain.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/dthunderstorm.svg b/config/awesome/surreal/widget/weather/icons/dthunderstorm.svg
deleted file mode 100644
index 10375e470..000000000
--- a/config/awesome/surreal/widget/weather/icons/dthunderstorm.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/moon_icon.svg b/config/awesome/surreal/widget/weather/icons/moon_icon.svg
deleted file mode 100644
index b9e5c3a7d..000000000
--- a/config/awesome/surreal/widget/weather/icons/moon_icon.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/n_rain.svg b/config/awesome/surreal/widget/weather/icons/n_rain.svg
deleted file mode 100644
index 3ba466aad..000000000
--- a/config/awesome/surreal/widget/weather/icons/n_rain.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/nbroken_clouds.svg b/config/awesome/surreal/widget/weather/icons/nbroken_clouds.svg
deleted file mode 100644
index d462c33ec..000000000
--- a/config/awesome/surreal/widget/weather/icons/nbroken_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/nfew_clouds.svg b/config/awesome/surreal/widget/weather/icons/nfew_clouds.svg
deleted file mode 100644
index 74575eed5..000000000
--- a/config/awesome/surreal/widget/weather/icons/nfew_clouds.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/nmist.svg b/config/awesome/surreal/widget/weather/icons/nmist.svg
deleted file mode 100644
index 34d0e41b2..000000000
--- a/config/awesome/surreal/widget/weather/icons/nmist.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/nscattered_clouds.svg b/config/awesome/surreal/widget/weather/icons/nscattered_clouds.svg
deleted file mode 100644
index 007e66b4b..000000000
--- a/config/awesome/surreal/widget/weather/icons/nscattered_clouds.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/nshower_rain.svg b/config/awesome/surreal/widget/weather/icons/nshower_rain.svg
deleted file mode 100644
index 50b4ebc96..000000000
--- a/config/awesome/surreal/widget/weather/icons/nshower_rain.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/nthunderstorm.svg b/config/awesome/surreal/widget/weather/icons/nthunderstorm.svg
deleted file mode 100644
index 73f67e5c2..000000000
--- a/config/awesome/surreal/widget/weather/icons/nthunderstorm.svg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/refresh.svg b/config/awesome/surreal/widget/weather/icons/refresh.svg
deleted file mode 100644
index 0eb9ef739..000000000
--- a/config/awesome/surreal/widget/weather/icons/refresh.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/snow.svg b/config/awesome/surreal/widget/weather/icons/snow.svg
deleted file mode 100644
index f4fcc6ab2..000000000
--- a/config/awesome/surreal/widget/weather/icons/snow.svg
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/sun_icon.svg b/config/awesome/surreal/widget/weather/icons/sun_icon.svg
deleted file mode 100644
index 24ac40d07..000000000
--- a/config/awesome/surreal/widget/weather/icons/sun_icon.svg
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/sunrise.svg b/config/awesome/surreal/widget/weather/icons/sunrise.svg
deleted file mode 100644
index f0e8a477a..000000000
--- a/config/awesome/surreal/widget/weather/icons/sunrise.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/sunset.svg b/config/awesome/surreal/widget/weather/icons/sunset.svg
deleted file mode 100644
index d60f574ef..000000000
--- a/config/awesome/surreal/widget/weather/icons/sunset.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/weather/icons/weather-error.svg b/config/awesome/surreal/widget/weather/icons/weather-error.svg
deleted file mode 100644
index afcb33190..000000000
--- a/config/awesome/surreal/widget/weather/icons/weather-error.svg
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/weather/init.lua b/config/awesome/surreal/widget/weather/init.lua
deleted file mode 100644
index 9bb37fac1..000000000
--- a/config/awesome/surreal/widget/weather/init.lua
+++ /dev/null
@@ -1,420 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local gears = require('gears')
-local naughty = require('naughty')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/weather/icons/'
-local clickable_container = require('widget.clickable-container')
-local json = require('library.json')
-
-local config = require('configuration.config')
-local secrets = {
- key = config.widget.weather.key,
- city_id = config.widget.weather.city_id,
- units = config.widget.weather.units,
- update_interval = config.widget.weather.update_interval
-}
-
-local weather_header = wibox.widget {
- text = 'Weather Forecast',
- font = 'Inter Bold 14',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_icon_widget = wibox.widget {
- {
- id = 'icon',
- image = widget_icon_dir .. 'weather-error.svg',
- resize = true,
- forced_height = dpi(45),
- forced_width = dpi(45),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local sunrise_icon_widget = wibox.widget {
- {
- id = 'sunrise_icon',
- image = widget_icon_dir .. 'sunrise.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local sunset_icon_widget = wibox.widget {
- {
- id = 'sunset_icon',
- image = widget_icon_dir .. 'sunset.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local refresh_icon_widget = wibox.widget {
- {
- id = 'refresh_icon',
- image = widget_icon_dir .. 'refresh.svg',
- resize = true,
- forced_height = dpi(18),
- forced_width = dpi(18),
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.fixed.horizontal
-}
-
-local refresh_button = clickable_container(refresh_icon_widget)
-refresh_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
- )
- )
-)
-
-local refresh_widget = wibox.widget {
- refresh_button,
- bg = beautiful.transparent,
- shape = gears.shape.circle,
- widget = wibox.container.background
-}
-
-local weather_desc_temp = wibox.widget {
- {
- id = 'description',
- markup = 'Dust and clouds, -1000°C',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
-}
-
-local weather_location = wibox.widget {
- {
- id = 'location',
- markup = 'Earth, Milky Way',
- font = 'Inter Regular 10',
- align = 'left',
- valign = 'center',
- widget = wibox.widget.textbox
- },
- id = 'scroll_container',
- max_size = 345,
- speed = 75,
- expand = true,
- direction = 'h',
- step_function = wibox.container.scroll
- .step_functions.waiting_nonlinear_back_and_forth,
- fps = 30,
- layout = wibox.container.scroll.horizontal,
-}
-
-local weather_sunrise = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_sunset = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_data_time = wibox.widget {
- markup = '00:00',
- font = 'Inter Regular 10',
- align = 'center',
- valign = 'center',
- widget = wibox.widget.textbox
-}
-
-local weather_forecast_tooltip = awful.tooltip {
- text = 'Loading...',
- objects = {weather_icon_widget},
- mode = 'outside',
- align = 'right',
- preferred_positions = {'left', 'right', 'top', 'bottom'},
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8)
-}
-
-local weather_report = wibox.widget {
- {
- {
- layout = wibox.layout.fixed.vertical,
- spacing = dpi(10),
- weather_header,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(10),
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- weather_icon_widget,
- nil
- },
- {
- layout = wibox.layout.align.vertical,
- expand = 'none',
- nil,
- {
- layout = wibox.layout.fixed.vertical,
- weather_location,
- weather_desc_temp,
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(7),
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- sunrise_icon_widget,
- weather_sunrise
- },
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- sunset_icon_widget,
- weather_sunset
- },
- {
- layout = wibox.layout.fixed.horizontal,
- spacing = dpi(3),
- refresh_widget,
- weather_data_time
- }
- }
- },
- nil
- }
- }
- },
- margins = dpi(10),
- widget = wibox.container.margin
- },
- forced_height = dpi(110),
- bg = beautiful.groups_bg,
- shape = function(cr, width, height)
- gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
- end,
- widget = wibox.container.background
-}
-
--- Return weather symbol
-local get_weather_symbol = function()
- local symbol_tbl = {
- ['metric'] = '°C',
- ['imperial'] = '°F'
- }
-
- return symbol_tbl[secrets.units]
-end
-
--- Create openweathermap script based on pass mode
--- Mode must be `forecast` or `weather`
-local create_weather_script = function(mode)
- local weather_script = [[
- KEY="]] .. secrets.key .. [["
- CITY="]] .. secrets.city_id .. [["
- UNITS="]] .. secrets.units .. [["
-
- weather=$(curl -sf "http://api.openweathermap.org/data/2.5/]] .. mode ..
- [[?APPID="${KEY}"&id="${CITY}"&units="${UNITS}"")
-
- if [ ! -z "$weather" ]; then
- printf "${weather}"
- else
- printf "error"
- fi
- ]]
-
- return weather_script
-end
-
-awesome.connect_signal(
- 'widget::forecast_fetch',
- function()
- awful.spawn.easy_async_with_shell(
- create_weather_script('forecast'),
- function(stdout)
- if stdout:match('error') then
- weather_forecast_tooltip:set_markup('Can\'t retrieve data!')
- else
- local forecast_data = json.parse(stdout)
- local forecast = ''
-
- for i = 8, 40, 8 do
- local day = os.date('%A @ %H:%M', forecast_data.list[i].dt)
- local temp = math.floor(forecast_data.list[i].main.temp + 0.5)
- local feels_like = math.floor(forecast_data.list[i].main.feels_like + 0.5)
- local weather = forecast_data.list[i].weather[1].description
-
- -- Capitalize weather description
- weather = weather:sub(1, 1):upper() .. weather:sub(2)
-
- forecast = forecast .. '' .. day .. '\n' ..
- 'Weather: ' .. weather .. '\n' ..
- 'Temperature: ' .. temp .. get_weather_symbol() .. '\n' ..
- 'Feels like: ' .. feels_like .. get_weather_symbol() .. '\n\n'
-
- weather_forecast_tooltip:set_markup(forecast:sub(1, -2))
- end
- end
- end
- )
- end
-)
-
-awesome.connect_signal(
- 'widget::weather_fetch',
- function()
-
- awful.spawn.easy_async_with_shell(
- create_weather_script('weather'),
- function(stdout)
- if stdout:match('error') then
- awesome.emit_signal(
- 'widget::weather_update',
- '...',
- 'Dust and clouds, -1000°C',
- 'Earth, Milky Way',
- '00:00',
- '00:00',
- '00:00'
- )
- else
- -- Parse JSON string
- local weather_data = json.parse(stdout)
-
- -- Process weather data
- local location = weather_data.name
- local country = weather_data.sys.country
- local sunrise = os.date('%H:%M', weather_data.sys.sunrise)
- local sunset = os.date('%H:%M', weather_data.sys.sunset)
- local refresh = os.date('%H:%M', weather_data.dt)
- local temperature = math.floor(weather_data.main.temp + 0.5)
- local weather = weather_data.weather[1].description
- local weather_icon = weather_data.weather[1].icon
-
- -- Capitalize weather description
- local weather = weather:sub(1, 1):upper() .. weather:sub(2)
-
- -- Contantenate weather description and symbol
- local weather_description = weather .. ', ' .. temperature .. get_weather_symbol()
-
- -- Contantenate city and country
- local weather_location = location .. ', ' .. country
-
- awesome.emit_signal(
- 'widget::weather_update',
- weather_icon,
- weather_description,
- weather_location,
- sunrise,
- sunset,
- refresh
- )
- end
- collectgarbage('collect')
- end
- )
- end
-)
-
-local update_widget_timer = gears.timer {
- timeout = secrets.update_interval ,
- autostart = true,
- call_now = true,
- single_shot = false,
- callback = function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
-}
-
-awesome.connect_signal(
- 'system::network_connected',
- function()
- gears.timer.start_new(
- 5,
- function()
- awesome.emit_signal('widget::weather_fetch')
- awesome.emit_signal('widget::forecast_fetch')
- end
- )
- end
-)
-
-awesome.connect_signal(
- 'widget::weather_update',
- function(code, desc, location, sunrise, sunset, data_receive)
- local widget_icon_name = 'weather-error'
-
- local icon_tbl = {
- ['01d'] = 'sun_icon.svg',
- ['01n'] = 'moon_icon.svg',
- ['02d'] = 'dfew_clouds.svg',
- ['02n'] = 'nfew_clouds.svg',
- ['03d'] = 'dscattered_clouds.svg',
- ['03n'] = 'nscattered_clouds.svg',
- ['04d'] = 'dbroken_clouds.svg',
- ['04n'] = 'nbroken_clouds.svg',
- ['09d'] = 'dshower_rain.svg',
- ['09n'] = 'nshower_rain.svg',
- ['10d'] = 'd_rain.svg',
- ['10n'] = 'n_rain.svg',
- ['11d'] = 'dthunderstorm.svg',
- ['11n'] = 'nthunderstorm.svg',
- ['13d'] = 'snow.svg',
- ['13n'] = 'snow.svg',
- ['50d'] = 'dmist.svg',
- ['50n'] = 'nmist.svg',
- ['...'] = 'weather-error.svg'
- }
-
- widget_icon_name = icon_tbl[code]
-
- weather_icon_widget.icon:set_image(widget_icon_dir .. widget_icon_name)
- weather_icon_widget.icon:emit_signal('widget::redraw_needed')
-
- weather_desc_temp.description:set_markup(desc)
- weather_location.location:set_markup(location)
- weather_sunrise:set_markup(sunrise)
- weather_sunset:set_markup(sunset)
- weather_data_time:set_markup(data_receive)
-
- end
-)
-
-return weather_report
diff --git a/config/awesome/surreal/widget/xdg-folders/documents.lua b/config/awesome/surreal/widget/xdg-folders/documents.lua
deleted file mode 100644
index 5906a8b0d..000000000
--- a/config/awesome/surreal/widget/xdg-folders/documents.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local docu_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-documents' .. '.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local docu_button = wibox.widget {
- {
- docu_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- docu_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOCUMENTS)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {docu_button},
- mode = 'outside',
- align = 'right',
- text = 'Documents',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return docu_button
-end
-
-return create_widget
diff --git a/config/awesome/surreal/widget/xdg-folders/downloads.lua b/config/awesome/surreal/widget/xdg-folders/downloads.lua
deleted file mode 100644
index 02f572ba0..000000000
--- a/config/awesome/surreal/widget/xdg-folders/downloads.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local dl_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-download.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local downloads_button = wibox.widget {
- {
- dl_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- downloads_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir DOWNLOAD)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {downloads_button},
- mode = 'outside',
- align = 'right',
- text = 'Downloads',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return downloads_button
-end
-
-return create_widget
diff --git a/config/awesome/surreal/widget/xdg-folders/home.lua b/config/awesome/surreal/widget/xdg-folders/home.lua
deleted file mode 100644
index 24c38209c..000000000
--- a/config/awesome/surreal/widget/xdg-folders/home.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local home_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'user-home.svg',
- resize = true,
- widget = wibox.widget.imagebox,
- },
- layout = wibox.layout.align.horizontal
- }
-
- local home_button = wibox.widget {
- {
- home_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- home_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {home_button},
- mode = 'outside',
- align = 'right',
- text = 'Home',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return home_button
-end
-
-return create_widget
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/folder-documents.svg b/config/awesome/surreal/widget/xdg-folders/icons/folder-documents.svg
deleted file mode 100644
index e6a53e503..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/folder-documents.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/folder-download.svg b/config/awesome/surreal/widget/xdg-folders/icons/folder-download.svg
deleted file mode 100644
index 9b75134c6..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/folder-download.svg
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/folder-pictures.svg b/config/awesome/surreal/widget/xdg-folders/icons/folder-pictures.svg
deleted file mode 100644
index 014b5b321..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/folder-pictures.svg
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/folder-videos.svg b/config/awesome/surreal/widget/xdg-folders/icons/folder-videos.svg
deleted file mode 100644
index 50b53df84..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/folder-videos.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/no.svg b/config/awesome/surreal/widget/xdg-folders/icons/no.svg
deleted file mode 100644
index 0654b8a5b..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/no.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/open-folder.svg b/config/awesome/surreal/widget/xdg-folders/icons/open-folder.svg
deleted file mode 100644
index f1f131dba..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/open-folder.svg
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/user-home.svg b/config/awesome/surreal/widget/xdg-folders/icons/user-home.svg
deleted file mode 100644
index b0a083961..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/user-home.svg
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/user-trash-empty.svg b/config/awesome/surreal/widget/xdg-folders/icons/user-trash-empty.svg
deleted file mode 100644
index f4d107fbe..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/user-trash-empty.svg
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/user-trash-full.svg b/config/awesome/surreal/widget/xdg-folders/icons/user-trash-full.svg
deleted file mode 100644
index 2d75d2d0a..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/user-trash-full.svg
+++ /dev/null
@@ -1,979 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/icons/yes.svg b/config/awesome/surreal/widget/xdg-folders/icons/yes.svg
deleted file mode 100644
index 2617c5d4f..000000000
--- a/config/awesome/surreal/widget/xdg-folders/icons/yes.svg
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
diff --git a/config/awesome/surreal/widget/xdg-folders/init.lua b/config/awesome/surreal/widget/xdg-folders/init.lua
deleted file mode 100644
index 1dec08244..000000000
--- a/config/awesome/surreal/widget/xdg-folders/init.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local beautiful = require('beautiful')
-local dpi = beautiful.xresources.apply_dpi
-
-local create_xdg_widgets = function()
- local separator = wibox.widget {
- orientation = 'vertical',
- forced_height = dpi(1),
- forced_width = dpi(1),
- span_ratio = 0.55,
- widget = wibox.widget.separator
- }
-
- return wibox.widget {
- layout = wibox.layout.align.horizontal,
- {
- separator,
- require('widget.xdg-folders.home')(),
- require('widget.xdg-folders.documents')(),
- require('widget.xdg-folders.downloads')(),
- require('widget.xdg-folders.pictures')(),
- require('widget.xdg-folders.videos')(),
- separator,
- require('widget.xdg-folders.trash')(),
- layout = wibox.layout.fixed.horizontal,
- },
- }
-end
-
-return create_xdg_widgets
diff --git a/config/awesome/surreal/widget/xdg-folders/pictures.lua b/config/awesome/surreal/widget/xdg-folders/pictures.lua
deleted file mode 100644
index 2c591c2e3..000000000
--- a/config/awesome/surreal/widget/xdg-folders/pictures.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local pic_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-pictures.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local pic_button = wibox.widget {
- {
- pic_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- pic_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir PICTURES)')
- end
- )
- )
- )
-
- awful.tooltip(
- {
- objects = {pic_button},
- mode = 'outside',
- align = 'right',
- text = 'Pictures',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
- )
-
- return pic_button
-end
-
-return create_widget
diff --git a/config/awesome/surreal/widget/xdg-folders/trash.lua b/config/awesome/surreal/widget/xdg-folders/trash.lua
deleted file mode 100644
index 2625e5a9c..000000000
--- a/config/awesome/surreal/widget/xdg-folders/trash.lua
+++ /dev/null
@@ -1,148 +0,0 @@
-local wibox = require('wibox')
-local awful = require('awful')
-local naughty = require('naughty')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local trash_widget = wibox.widget {
- {
- id = 'trash_icon',
- image = widget_icon_dir .. 'user-trash-empty.svg',
- resize = true,
- widget = wibox.widget.imagebox
- },
- layout = wibox.layout.align.horizontal
- }
-
- local trash_menu = awful.menu({
- items = {
- {
- 'Open trash',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio open trash:///',
- function(stdout) end,
- 1
- )
- end,
- widget_icon_dir .. 'open-folder.svg'
- },
- {
- 'Delete forever',
- {
- {
- 'Yes',
- function()
- awful.spawn.easy_async_with_shell(
- 'gio trash --empty',
- function(stdout)
- end,
- 1
- )
- end,
- widget_icon_dir .. 'yes.svg'
- },
- {
- 'No',
- '',
- widget_icon_dir .. 'no.svg'
- }
- },
- widget_icon_dir .. 'user-trash-empty.svg'
- },
- }
- })
-
- local trash_button = wibox.widget {
- {
- trash_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- -- Tooltip for trash_button
- trash_tooltip = awful.tooltip {
- objects = {trash_button},
- mode = 'outside',
- align = 'right',
- markup = 'Trash',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- -- Mouse event for trash_button
- trash_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn({'gio', 'open', 'trash:///'}, false)
- end
- ),
- awful.button(
- {},
- 3,
- nil,
- function()
- trash_menu:toggle()
- trash_tooltip.visible = not trash_tooltip.visible
- end
- )
- )
- )
-
- -- Update icon on changes
- local check_trash_list = function()
- awful.spawn.easy_async_with_shell(
- 'gio list trash:/// | wc -l',
- function(stdout)
- if tonumber(stdout) > 0 then
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-full.svg')
-
- awful.spawn.easy_async_with_shell(
- 'gio list trash:///',
- function(stdout)
- trash_tooltip.markup = 'Trash contains:\n' .. stdout:gsub('\n$', '')
- end
- )
- else
- trash_widget.trash_icon:set_image(widget_icon_dir .. 'user-trash-empty.svg')
- trash_tooltip.markup = 'Trash empty'
- end
- end
- )
- end
-
- -- Check trash on awesome (re)-start
- check_trash_list()
-
- -- Kill the old process of gio monitor trash:///
- awful.spawn.easy_async_with_shell(
- 'ps x | grep \'gio monitor trash:///\' | grep -v grep | awk \'{print $1}\' | xargs kill',
- function()
- awful.spawn.with_line_callback(
- 'gio monitor trash:///',
- {
- stdout = function(_)
- check_trash_list()
- end
- }
- )
- end
- )
-
- return trash_button
-end
-
-return create_widget
diff --git a/config/awesome/surreal/widget/xdg-folders/videos.lua b/config/awesome/surreal/widget/xdg-folders/videos.lua
deleted file mode 100644
index 5c5408882..000000000
--- a/config/awesome/surreal/widget/xdg-folders/videos.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-local awful = require('awful')
-local wibox = require('wibox')
-local gears = require('gears')
-
-local clickable_container = require('widget.clickable-container')
-local dpi = require('beautiful').xresources.apply_dpi
-
-local config_dir = gears.filesystem.get_configuration_dir()
-local widget_icon_dir = config_dir .. 'widget/xdg-folders/icons/'
-
-local create_widget = function()
- local vid_widget = wibox.widget {
- {
- image = widget_icon_dir .. 'folder-videos.svg',
- widget = wibox.widget.imagebox,
- resize = true
- },
- layout = wibox.layout.align.horizontal
- }
-
- local videos_button = wibox.widget {
- {
- vid_widget,
- margins = dpi(10),
- widget = wibox.container.margin
- },
- widget = clickable_container
- }
-
- videos_button:buttons(
- gears.table.join(
- awful.button(
- {},
- 1,
- nil,
- function()
- awful.spawn.with_shell('xdg-open $(xdg-user-dir VIDEOS)')
- end
- )
- )
- )
-
- awful.tooltip
- {
- objects = {videos_button},
- mode = 'outside',
- align = 'right',
- margin_leftright = dpi(8),
- margin_topbottom = dpi(8),
- timer_function = function()
- return 'Videos'
- end,
- preferred_positions = {'top', 'bottom', 'right', 'left'}
- }
-
- return videos_button
-end
-
-return create_widget
diff --git a/config/awesome/theme/default-theme.lua b/config/awesome/theme/default-theme.lua
new file mode 100644
index 000000000..6a4c0aa60
--- /dev/null
+++ b/config/awesome/theme/default-theme.lua
@@ -0,0 +1,218 @@
+local gears = require("gears")
+local beautiful = require("beautiful")
+
+local filesystem = gears.filesystem
+local dpi = beautiful.xresources.apply_dpi
+local gtk_variable = beautiful.gtk.get_theme_variables
+local theme_directories = require("theme.directories")
+
+local tip = theme_directories.titlebar_icons
+print(theme_directories.icons)
+
+-- Create theme table
+local theme = {}
+
+-- Font
+theme.font = "Inter Regular 10"
+theme.font_bold = "Inter Bold 10"
+
+-- Menu icon theme
+theme.icon_theme = "Tela-blue-dark"
+
+local awesome_overrides = function(theme)
+ theme.dir = theme_directories.root
+ theme.icons = theme_directories.icons
+
+ -- Default wallpaper path
+ -- TODO add Default wallpaper type
+ theme.wallpaper = theme_directories.wallpapers .. "morning-wallpaper.jpg"
+
+ -- Default font
+ theme.font = "Inter Regular 10"
+
+ -- Foreground
+ theme.fg_normal = "#ffffffde"
+ theme.fg_focus = "#e4e4e4"
+ theme.fg_urgent = "#CC9393"
+
+ theme.bg_normal = theme.background
+ theme.bg_focus = "#5a5a5a"
+ theme.bg_urgent = "#3F3F3F"
+
+ -- System tray
+ theme.bg_systray = theme.background
+ theme.systray_icon_spacing = dpi(16)
+
+ -- Titlebar
+ theme.titlebar_size = dpi(34)
+ theme.titlebar_bg_focus = gtk_variable().bg_color:sub(1, 7) .. "66"
+ theme.titlebar_bg_normal = gtk_variable().base_color:sub(1, 7) .. "66"
+ theme.titlebar_fg_focus = gtk_variable().fg_color
+ theme.titlebar_fg_normal = gtk_variable().fg_color
+
+ -- Close Button
+ theme.titlebar_close_button_normal = tip .. "close_normal.svg"
+ theme.titlebar_close_button_focus = tip .. "close_focus.svg"
+
+ -- Minimize Button
+ theme.titlebar_minimize_button_normal = tip .. "minimize_normal.svg"
+ theme.titlebar_minimize_button_focus = tip .. "minimize_focus.svg"
+
+ -- Ontop Button
+ theme.titlebar_ontop_button_normal_inactive = tip .. "ontop_normal_inactive.svg"
+ theme.titlebar_ontop_button_focus_inactive = tip .. "ontop_focus_inactive.svg"
+ theme.titlebar_ontop_button_normal_active = tip .. "ontop_normal_active.svg"
+ theme.titlebar_ontop_button_focus_active = tip .. "ontop_focus_active.svg"
+
+ -- Sticky Button
+ theme.titlebar_sticky_button_normal_inactive = tip .. "sticky_normal_inactive.svg"
+ theme.titlebar_sticky_button_focus_inactive = tip .. "sticky_focus_inactive.svg"
+ theme.titlebar_sticky_button_normal_active = tip .. "sticky_normal_active.svg"
+ theme.titlebar_sticky_button_focus_active = tip .. "sticky_focus_active.svg"
+
+ -- Floating Button
+ theme.titlebar_floating_button_normal_inactive = tip .. "floating_normal_inactive.svg"
+ theme.titlebar_floating_button_focus_inactive = tip .. "floating_focus_inactive.svg"
+ theme.titlebar_floating_button_normal_active = tip .. "floating_normal_active.svg"
+ theme.titlebar_floating_button_focus_active = tip .. "floating_focus_active.svg"
+
+ -- Maximized Button
+ theme.titlebar_maximized_button_normal_inactive = tip .. "maximized_normal_inactive.svg"
+ theme.titlebar_maximized_button_focus_inactive = tip .. "maximized_focus_inactive.svg"
+ theme.titlebar_maximized_button_normal_active = tip .. "maximized_normal_active.svg"
+ theme.titlebar_maximized_button_focus_active = tip .. "maximized_focus_active.svg"
+
+ -- Hovered Close Button
+ theme.titlebar_close_button_normal_hover = tip .. "close_normal_hover.svg"
+ theme.titlebar_close_button_focus_hover = tip .. "close_focus_hover.svg"
+
+ -- Hovered Minimize Buttin
+ theme.titlebar_minimize_button_normal_hover = tip .. "minimize_normal_hover.svg"
+ theme.titlebar_minimize_button_focus_hover = tip .. "minimize_focus_hover.svg"
+
+ -- Hovered Ontop Button
+ theme.titlebar_ontop_button_normal_inactive_hover = tip .. "ontop_normal_inactive_hover.svg"
+ theme.titlebar_ontop_button_focus_inactive_hover = tip .. "ontop_focus_inactive_hover.svg"
+ theme.titlebar_ontop_button_normal_active_hover = tip .. "ontop_normal_active_hover.svg"
+ theme.titlebar_ontop_button_focus_active_hover = tip .. "ontop_focus_active_hover.svg"
+
+ -- Hovered Sticky Button
+ theme.titlebar_sticky_button_normal_inactive_hover = tip .. "sticky_normal_inactive_hover.svg"
+ theme.titlebar_sticky_button_focus_inactive_hover = tip .. "sticky_focus_inactive_hover.svg"
+ theme.titlebar_sticky_button_normal_active_hover = tip .. "sticky_normal_active_hover.svg"
+ theme.titlebar_sticky_button_focus_active_hover = tip .. "sticky_focus_active_hover.svg"
+
+ -- Hovered Floating Button
+ theme.titlebar_floating_button_normal_inactive_hover = tip .. "floating_normal_inactive_hover.svg"
+ theme.titlebar_floating_button_focus_inactive_hover = tip .. "floating_focus_inactive_hover.svg"
+ theme.titlebar_floating_button_normal_active_hover = tip .. "floating_normal_active_hover.svg"
+ theme.titlebar_floating_button_focus_active_hover = tip .. "floating_focus_active_hover.svg"
+
+ -- Hovered Maximized Button
+ theme.titlebar_maximized_button_normal_inactive_hover = tip .. "maximized_normal_inactive_hover.svg"
+ theme.titlebar_maximized_button_focus_inactive_hover = tip .. "maximized_focus_inactive_hover.svg"
+ theme.titlebar_maximized_button_normal_active_hover = tip .. "maximized_normal_active_hover.svg"
+ theme.titlebar_maximized_button_focus_active_hover = tip .. "maximized_focus_active_hover.svg"
+
+ -- UI Groups
+ theme.groups_title_bg = "#ffffff" .. "15"
+ theme.groups_bg = "#ffffff" .. "10"
+ theme.groups_radius = dpi(9)
+
+ -- UI events
+ theme.leave_event = transparent
+ theme.enter_event = "#ffffff" .. "10"
+ theme.press_event = "#ffffff" .. "15"
+ theme.release_event = "#ffffff" .. "10"
+
+ -- Client Decorations
+
+ -- Borders
+ theme.border_focus = gtk_variable().bg_color
+ theme.border_normal = gtk_variable().base_color
+ theme.border_marked = "#CC9393"
+ theme.border_width = dpi(0)
+ theme.border_radius = dpi(9)
+
+ -- Decorations
+ theme.useless_gap = dpi(4)
+ theme.client_shape_rectangle = gears.shape.rectangle
+ theme.client_shape_rounded = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, dpi(6))
+ end
+
+ -- Menu
+ theme.menu_font = "Inter Regular 11"
+ theme.menu_submenu = "" -- ➤
+
+ theme.menu_height = dpi(34)
+ theme.menu_width = dpi(200)
+ theme.menu_border_width = dpi(20)
+ theme.menu_bg_focus = theme.accent .. "CC"
+
+ theme.menu_bg_normal = theme.background:sub(1, 7) .. "33"
+ theme.menu_fg_normal = "#ffffff"
+ theme.menu_fg_focus = "#ffffff"
+ theme.menu_border_color = theme.background:sub(1, 7) .. "5C"
+
+ -- Tooltips
+
+ theme.tooltip_bg = theme.background
+ theme.tooltip_border_color = theme.transparent
+ theme.tooltip_border_width = 0
+ theme.tooltip_gaps = dpi(5)
+ theme.tooltip_shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, dpi(6))
+ end
+
+ -- Separators
+ theme.separator_color = "#f2f2f244"
+
+ -- Layoutbox icons
+ theme.layout_max = theme.icons .. "layouts/max.svg"
+ theme.layout_tile = theme.icons .. "layouts/tile.svg"
+ theme.layout_dwindle = theme.icons .. "layouts/dwindle.svg"
+ theme.layout_floating = theme.icons .. "layouts/floating.svg"
+
+ -- Taglist
+ theme.taglist_bg_empty = theme.background .. "99"
+ theme.taglist_bg_occupied = "#ffffff" .. "1A"
+ theme.taglist_bg_urgent = "#E91E63" .. "99"
+ theme.taglist_bg_focus = theme.background
+ theme.taglist_spacing = dpi(0)
+
+ -- Tasklist
+ theme.tasklist_font = "Inter Regular 10"
+ theme.tasklist_bg_normal = theme.background .. "99"
+ theme.tasklist_bg_focus = theme.background
+ theme.tasklist_bg_urgent = "#E91E63" .. "99"
+ theme.tasklist_fg_focus = "#DDDDDD"
+ theme.tasklist_fg_urgent = "#ffffff"
+ theme.tasklist_fg_normal = "#AAAAAA"
+
+ -- Notification
+ theme.notification_position = "top_right"
+ theme.notification_bg = theme.transparent
+ theme.notification_margin = dpi(5)
+ theme.notification_border_width = dpi(0)
+ theme.notification_border_color = theme.transparent
+ theme.notification_spacing = dpi(5)
+ theme.notification_icon_resize_strategy = "center"
+ theme.notification_icon_size = dpi(32)
+
+ -- Client Snap Theme
+ theme.snap_bg = theme.background
+ theme.snap_shape = gears.shape.rectangle
+ theme.snap_border_width = dpi(15)
+
+ -- Hotkey popup
+ theme.hotkeys_font = "Inter Bold"
+ theme.hotkeys_description_font = "Inter Regular Regular"
+ theme.hotkeys_bg = theme.background
+ theme.hotkeys_group_margin = dpi(20)
+end
+
+return {
+ theme = theme,
+ awesome_overrides = awesome_overrides,
+}
diff --git a/config/awesome/theme/directories.lua b/config/awesome/theme/directories.lua
new file mode 100644
index 000000000..f5301cded
--- /dev/null
+++ b/config/awesome/theme/directories.lua
@@ -0,0 +1,31 @@
+local Path = require("module.path")
+local filesystem = require("gears.filesystem")
+---@return {["root"]: string,["icons"]: string , ["titlebar_icons"]: string}
+--- @type {["floppy"]: string}
+local titlebar_themes = {
+ ["floppy"] = "stoplight",
+ ["gnawesome"] = "stoplight",
+ ["linear"] = "stoplight",
+ ["surreal"] = "stoplight",
+}
+
+local theme_root_dir = Path:new(filesystem.get_configuration_dir():gsub("/$", ""), "theme")
+local curr_theme_dir = theme_root_dir:join(THEME)
+local wallpaper_dir = curr_theme_dir:join("wallpapers")
+local icons = theme_root_dir:join("icons")
+local icons_tag_list = icons:join("tag-list")
+print("icons", icons())
+local titlebar = icons:join("titlebar", titlebar_themes[THEME])
+
+---@alias themeDirectories "root" | "icons" | "titlebar_icons" | "wallpaper_dir"
+--- @type {[ "root" ]: string,["curr_theme"]: string,["icons"]: string, ["titlebar_icons"]: string, ["wallpapers"]: string, ['icons_tag_list']: string}
+local directories = {
+ ["root"] = theme_root_dir(),
+ ["curr_theme"] = theme_root_dir(),
+ ["icons"] = icons(),
+ ["titlebar_icons"] = titlebar(),
+ ["wallpapers"] = wallpaper_dir(),
+ ["icons_tag_list"] = icons_tag_list(),
+}
+
+return directories
diff --git a/config/awesome/theme/floppy/icons.lua b/config/awesome/theme/floppy/icons.lua
new file mode 100644
index 000000000..c0f55b748
--- /dev/null
+++ b/config/awesome/theme/floppy/icons.lua
@@ -0,0 +1,41 @@
+-- Icons directory
+local directories = require("theme.directories")
+local dir = directories.icons
+
+return {
+
+ -- Action Bar
+ web_browser = dir .. "tag-list/" .. "web-browser.svg",
+ text_editor = dir .. "tag-list/" .. "text-editor.svg",
+ social = dir .. "tag-list/" .. "social.svg",
+ file_manager = dir .. "tag-list/" .. "file-manager.svg",
+ multimedia = dir .. "tag-list/" .. "multimedia.svg",
+ games = dir .. "tag-list/" .. "games.svg",
+ development = dir .. "tag-list/" .. "development.svg",
+ sandbox = dir .. "tag-list/" .. "sandbox.svg",
+ terminal = dir .. "tag-list/" .. "terminal.svg",
+ graphics = dir .. "tag-list/" .. "graphics.svg",
+ menu = dir .. "tag-list/" .. "menu.svg",
+ close_small = dir .. "tag-list/" .. "close-small.svg",
+
+ -- Others/System UI
+ close = dir .. "close.svg",
+ logout = dir .. "logout.svg",
+ sleep = dir .. "power-sleep.svg",
+ power = dir .. "power.svg",
+ lock = dir .. "lock.svg",
+ restart = dir .. "restart.svg",
+ search = dir .. "magnify.svg",
+ volume = dir .. "volume-high.svg",
+ brightness = dir .. "brightness-7.svg",
+ effects = dir .. "effects.svg",
+ chart = dir .. "chart-areaspline.svg",
+ memory = dir .. "memory.svg",
+ harddisk = dir .. "harddisk.svg",
+ thermometer = dir .. "thermometer.svg",
+ plus = dir .. "plus.svg",
+ batt_charging = dir .. "battery-charge.svg",
+ batt_discharging = dir .. "battery-discharge.svg",
+ toggled_on = dir .. "toggled-on.svg",
+ toggled_off = dir .. "toggled-off.svg",
+}
diff --git a/config/awesome/theme/floppy/init.lua b/config/awesome/theme/floppy/init.lua
new file mode 100644
index 000000000..5738dfa25
--- /dev/null
+++ b/config/awesome/theme/floppy/init.lua
@@ -0,0 +1,49 @@
+local filesystem = require("gears.filesystem")
+local directories = require("theme.directories")
+
+local theme = {}
+
+theme.icons = directories.icons
+theme.font = "Inter Regular 10"
+theme.font_bold = "Inter Bold 10"
+
+-- Colorscheme
+theme.system_black_dark = "#3D4C5F"
+theme.system_black_light = "#56687E"
+
+theme.system_red_dark = "#EE4F84"
+theme.system_red_light = "#F48FB1"
+
+theme.system_green_dark = "#53E2AE"
+theme.system_green_light = "#A1EFD3"
+
+theme.system_yellow_dark = "#F1FF52"
+theme.system_yellow_light = "#F1FA8C"
+
+theme.system_blue_dark = "#6498EF"
+theme.system_blue_light = "#92B6F4"
+
+theme.system_magenta_dark = "#985EFF"
+theme.system_magenta_light = "#BD99FF"
+
+theme.system_cyan_dark = "#24D1E7"
+theme.system_cyan_light = "#87DFEB"
+
+theme.system_white_dark = "#E5E5E5"
+theme.system_white_light = "#F8F8F2"
+
+-- Accent color
+theme.accent = theme.system_blue_dark
+
+-- Background color
+theme.background = "#000000" .. "66"
+
+-- Transparent
+theme.transparent = "#00000000"
+
+local awesome_overrides = function(theme) end
+
+return {
+ theme = theme,
+ awesome_overrides = awesome_overrides,
+}
diff --git a/config/awesome/floppy/theme/wallpapers/AUTHORS b/config/awesome/theme/floppy/wallpapers/AUTHORS
similarity index 100%
rename from config/awesome/floppy/theme/wallpapers/AUTHORS
rename to config/awesome/theme/floppy/wallpapers/AUTHORS
diff --git a/config/awesome/floppy/theme/wallpapers/locksreen-bg.jpg b/config/awesome/theme/floppy/wallpapers/locksreen-bg.jpg
similarity index 100%
rename from config/awesome/floppy/theme/wallpapers/locksreen-bg.jpg
rename to config/awesome/theme/floppy/wallpapers/locksreen-bg.jpg
diff --git a/config/awesome/floppy/theme/wallpapers/midnight-wallpaper.jpg b/config/awesome/theme/floppy/wallpapers/midnight-wallpaper.jpg
similarity index 100%
rename from config/awesome/floppy/theme/wallpapers/midnight-wallpaper.jpg
rename to config/awesome/theme/floppy/wallpapers/midnight-wallpaper.jpg
diff --git a/config/awesome/floppy/theme/wallpapers/morning-wallpaper.jpg b/config/awesome/theme/floppy/wallpapers/morning-wallpaper.jpg
similarity index 100%
rename from config/awesome/floppy/theme/wallpapers/morning-wallpaper.jpg
rename to config/awesome/theme/floppy/wallpapers/morning-wallpaper.jpg
diff --git a/config/awesome/floppy/theme/wallpapers/night-wallpaper.jpg b/config/awesome/theme/floppy/wallpapers/night-wallpaper.jpg
similarity index 100%
rename from config/awesome/floppy/theme/wallpapers/night-wallpaper.jpg
rename to config/awesome/theme/floppy/wallpapers/night-wallpaper.jpg
diff --git a/config/awesome/floppy/theme/wallpapers/noon-wallpaper.jpg b/config/awesome/theme/floppy/wallpapers/noon-wallpaper.jpg
similarity index 100%
rename from config/awesome/floppy/theme/wallpapers/noon-wallpaper.jpg
rename to config/awesome/theme/floppy/wallpapers/noon-wallpaper.jpg
diff --git a/config/awesome/gnawesome/theme/icons/init.lua b/config/awesome/theme/gnawesome/icons.lua
similarity index 100%
rename from config/awesome/gnawesome/theme/icons/init.lua
rename to config/awesome/theme/gnawesome/icons.lua
diff --git a/config/awesome/theme/gnawesome/init.lua b/config/awesome/theme/gnawesome/init.lua
new file mode 100644
index 000000000..c579a1e62
--- /dev/null
+++ b/config/awesome/theme/gnawesome/init.lua
@@ -0,0 +1,51 @@
+local directories = require("theme.directories")
+
+local theme = {}
+
+theme.icons = directories.icons
+theme.font = "Inter Regular 10"
+theme.font_bold = "Inter Bold 10"
+
+-- Colorscheme
+theme.system_black_dark = "#3D4C5F"
+theme.system_black_light = "#56687E"
+
+theme.system_red_dark = "#EE4F84"
+theme.system_red_light = "#F48FB1"
+
+theme.system_green_dark = "#53E2AE"
+theme.system_green_light = "#A1EFD3"
+
+theme.system_yellow_dark = "#F1FF52"
+theme.system_yellow_light = "#F1FA8C"
+
+theme.system_blue_dark = "#6498EF"
+theme.system_blue_light = "#92B6F4"
+
+theme.system_magenta_dark = "#985EFF"
+theme.system_magenta_light = "#BD99FF"
+
+theme.system_cyan_dark = "#24D1E7"
+theme.system_cyan_light = "#87DFEB"
+
+theme.system_white_dark = "#E5E5E5"
+theme.system_white_light = "#F8F8F2"
+
+-- Accent color
+theme.accent = theme.system_blue_dark
+
+-- Background color
+theme.background = "#000000" .. "66"
+
+-- Transparent
+theme.transparent = "#00000000"
+
+-- Awesome icon
+theme.awesome_icon = theme.icons .. "awesome.svg"
+
+local awesome_overrides = function(theme) end
+
+return {
+ theme = theme,
+ awesome_overrides = awesome_overrides,
+}
diff --git a/config/awesome/gnawesome/theme/wallpapers/AUTHORS b/config/awesome/theme/gnawesome/wallpapers/AUTHORS
similarity index 100%
rename from config/awesome/gnawesome/theme/wallpapers/AUTHORS
rename to config/awesome/theme/gnawesome/wallpapers/AUTHORS
diff --git a/config/awesome/gnawesome/theme/wallpapers/locksreen-bg.jpg b/config/awesome/theme/gnawesome/wallpapers/locksreen-bg.jpg
similarity index 100%
rename from config/awesome/gnawesome/theme/wallpapers/locksreen-bg.jpg
rename to config/awesome/theme/gnawesome/wallpapers/locksreen-bg.jpg
diff --git a/config/awesome/gnawesome/theme/wallpapers/midnight-wallpaper.jpg b/config/awesome/theme/gnawesome/wallpapers/midnight-wallpaper.jpg
similarity index 100%
rename from config/awesome/gnawesome/theme/wallpapers/midnight-wallpaper.jpg
rename to config/awesome/theme/gnawesome/wallpapers/midnight-wallpaper.jpg
diff --git a/config/awesome/gnawesome/theme/wallpapers/morning-wallpaper.jpg b/config/awesome/theme/gnawesome/wallpapers/morning-wallpaper.jpg
similarity index 100%
rename from config/awesome/gnawesome/theme/wallpapers/morning-wallpaper.jpg
rename to config/awesome/theme/gnawesome/wallpapers/morning-wallpaper.jpg
diff --git a/config/awesome/gnawesome/theme/wallpapers/night-wallpaper.jpg b/config/awesome/theme/gnawesome/wallpapers/night-wallpaper.jpg
similarity index 100%
rename from config/awesome/gnawesome/theme/wallpapers/night-wallpaper.jpg
rename to config/awesome/theme/gnawesome/wallpapers/night-wallpaper.jpg
diff --git a/config/awesome/gnawesome/theme/wallpapers/noon-wallpaper.jpg b/config/awesome/theme/gnawesome/wallpapers/noon-wallpaper.jpg
similarity index 100%
rename from config/awesome/gnawesome/theme/wallpapers/noon-wallpaper.jpg
rename to config/awesome/theme/gnawesome/wallpapers/noon-wallpaper.jpg
diff --git a/config/awesome/floppy/theme/icons/awesome.svg b/config/awesome/theme/icons/awesome.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/awesome.svg
rename to config/awesome/theme/icons/awesome.svg
diff --git a/config/awesome/floppy/theme/icons/battery-charge.svg b/config/awesome/theme/icons/battery-charge.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/battery-charge.svg
rename to config/awesome/theme/icons/battery-charge.svg
diff --git a/config/awesome/floppy/theme/icons/battery-discharge.svg b/config/awesome/theme/icons/battery-discharge.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/battery-discharge.svg
rename to config/awesome/theme/icons/battery-discharge.svg
diff --git a/config/awesome/floppy/theme/icons/brightness-7.svg b/config/awesome/theme/icons/brightness-7.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/brightness-7.svg
rename to config/awesome/theme/icons/brightness-7.svg
diff --git a/config/awesome/floppy/theme/icons/chart-areaspline.svg b/config/awesome/theme/icons/chart-areaspline.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/chart-areaspline.svg
rename to config/awesome/theme/icons/chart-areaspline.svg
diff --git a/config/awesome/floppy/theme/icons/close.svg b/config/awesome/theme/icons/close.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/close.svg
rename to config/awesome/theme/icons/close.svg
diff --git a/config/awesome/floppy/theme/icons/effects.svg b/config/awesome/theme/icons/effects.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/effects.svg
rename to config/awesome/theme/icons/effects.svg
diff --git a/config/awesome/floppy/theme/icons/harddisk.svg b/config/awesome/theme/icons/harddisk.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/harddisk.svg
rename to config/awesome/theme/icons/harddisk.svg
diff --git a/config/awesome/theme/icons/init.lua b/config/awesome/theme/icons/init.lua
new file mode 100644
index 000000000..17acbf034
--- /dev/null
+++ b/config/awesome/theme/icons/init.lua
@@ -0,0 +1,41 @@
+-- Icons directory
+local directories = require("theme.directories")
+-- local dir = directories.icons
+
+return {
+
+ -- Action Bar
+ web_browser = directories.icons_tag_list .. "web-browser.svg",
+ text_editor = directories.icons_tag_list .. "text-editor.svg",
+ social = directories.icons_tag_list .. "social.svg",
+ file_manager = directories.icons_tag_list .. "file-manager.svg",
+ multimedia = directories.icons_tag_list .. "multimedia.svg",
+ games = directories.icons_tag_list .. "games.svg",
+ development = directories.icons_tag_list .. "development.svg",
+ sandbox = directories.icons_tag_list .. "sandbox.svg",
+ terminal = directories.icons_tag_list .. "terminal.svg",
+ graphics = directories.icons_tag_list .. "graphics.svg",
+ menu = directories.icons_tag_list .. "menu.svg",
+ close_small = directories.icons_tag_list .. "close-small.svg",
+
+ -- Others/System UI
+ close = directories.icons .. "close.svg",
+ logout = directories.icons .. "logout.svg",
+ sleep = directories.icons .. "power-sleep.svg",
+ power = directories.icons .. "power.svg",
+ lock = directories.icons .. "lock.svg",
+ restart = directories.icons .. "restart.svg",
+ search = directories.icons .. "magnify.svg",
+ volume = directories.icons .. "volume-high.svg",
+ brightness = directories.icons .. "brightness-7.svg",
+ effects = directories.icons .. "effects.svg",
+ chart = directories.icons .. "chart-areaspline.svg",
+ memory = directories.icons .. "memory.svg",
+ harddisk = directories.icons .. "harddisk.svg",
+ thermometer = directories.icons .. "thermometer.svg",
+ plus = directories.icons .. "plus.svg",
+ batt_charging = directories.icons .. "battery-charge.svg",
+ batt_discharging = directories.icons .. "battery-discharge.svg",
+ toggled_on = directories.icons .. "toggled-on.svg",
+ toggled_off = directories.icons .. "toggled-off.svg",
+}
diff --git a/config/awesome/floppy/theme/icons/layouts/dwindle.svg b/config/awesome/theme/icons/layouts/dwindle.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/layouts/dwindle.svg
rename to config/awesome/theme/icons/layouts/dwindle.svg
diff --git a/config/awesome/floppy/theme/icons/layouts/floating.svg b/config/awesome/theme/icons/layouts/floating.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/layouts/floating.svg
rename to config/awesome/theme/icons/layouts/floating.svg
diff --git a/config/awesome/floppy/theme/icons/layouts/fullscreen.svg b/config/awesome/theme/icons/layouts/fullscreen.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/layouts/fullscreen.svg
rename to config/awesome/theme/icons/layouts/fullscreen.svg
diff --git a/config/awesome/floppy/theme/icons/layouts/max.svg b/config/awesome/theme/icons/layouts/max.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/layouts/max.svg
rename to config/awesome/theme/icons/layouts/max.svg
diff --git a/config/awesome/floppy/theme/icons/layouts/tile.svg b/config/awesome/theme/icons/layouts/tile.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/layouts/tile.svg
rename to config/awesome/theme/icons/layouts/tile.svg
diff --git a/config/awesome/floppy/theme/icons/lock.svg b/config/awesome/theme/icons/lock.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/lock.svg
rename to config/awesome/theme/icons/lock.svg
diff --git a/config/awesome/floppy/theme/icons/logout.svg b/config/awesome/theme/icons/logout.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/logout.svg
rename to config/awesome/theme/icons/logout.svg
diff --git a/config/awesome/floppy/theme/icons/magnify.svg b/config/awesome/theme/icons/magnify.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/magnify.svg
rename to config/awesome/theme/icons/magnify.svg
diff --git a/config/awesome/floppy/theme/icons/memory.svg b/config/awesome/theme/icons/memory.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/memory.svg
rename to config/awesome/theme/icons/memory.svg
diff --git a/config/awesome/floppy/theme/icons/plus.svg b/config/awesome/theme/icons/plus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/plus.svg
rename to config/awesome/theme/icons/plus.svg
diff --git a/config/awesome/floppy/theme/icons/power-sleep.svg b/config/awesome/theme/icons/power-sleep.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/power-sleep.svg
rename to config/awesome/theme/icons/power-sleep.svg
diff --git a/config/awesome/floppy/theme/icons/power.svg b/config/awesome/theme/icons/power.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/power.svg
rename to config/awesome/theme/icons/power.svg
diff --git a/config/awesome/floppy/theme/icons/restart.svg b/config/awesome/theme/icons/restart.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/restart.svg
rename to config/awesome/theme/icons/restart.svg
diff --git a/config/awesome/floppy/theme/icons/ship-wheel.svg b/config/awesome/theme/icons/ship-wheel.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/ship-wheel.svg
rename to config/awesome/theme/icons/ship-wheel.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/close-small.svg b/config/awesome/theme/icons/tag-list/close-small.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/close-small.svg
rename to config/awesome/theme/icons/tag-list/close-small.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/development.svg b/config/awesome/theme/icons/tag-list/development.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/development.svg
rename to config/awesome/theme/icons/tag-list/development.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/file-manager.svg b/config/awesome/theme/icons/tag-list/file-manager.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/file-manager.svg
rename to config/awesome/theme/icons/tag-list/file-manager.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/games.svg b/config/awesome/theme/icons/tag-list/games.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/games.svg
rename to config/awesome/theme/icons/tag-list/games.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/graphics.svg b/config/awesome/theme/icons/tag-list/graphics.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/graphics.svg
rename to config/awesome/theme/icons/tag-list/graphics.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/menu.svg b/config/awesome/theme/icons/tag-list/menu.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/menu.svg
rename to config/awesome/theme/icons/tag-list/menu.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/menu2.svg b/config/awesome/theme/icons/tag-list/menu2.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/menu2.svg
rename to config/awesome/theme/icons/tag-list/menu2.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/multimedia.svg b/config/awesome/theme/icons/tag-list/multimedia.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/multimedia.svg
rename to config/awesome/theme/icons/tag-list/multimedia.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/sandbox.svg b/config/awesome/theme/icons/tag-list/sandbox.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/sandbox.svg
rename to config/awesome/theme/icons/tag-list/sandbox.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/social.svg b/config/awesome/theme/icons/tag-list/social.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/social.svg
rename to config/awesome/theme/icons/tag-list/social.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/terminal.svg b/config/awesome/theme/icons/tag-list/terminal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/terminal.svg
rename to config/awesome/theme/icons/tag-list/terminal.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/text-editor.svg b/config/awesome/theme/icons/tag-list/text-editor.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/text-editor.svg
rename to config/awesome/theme/icons/tag-list/text-editor.svg
diff --git a/config/awesome/floppy/theme/icons/tag-list/web-browser.svg b/config/awesome/theme/icons/tag-list/web-browser.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/tag-list/web-browser.svg
rename to config/awesome/theme/icons/tag-list/web-browser.svg
diff --git a/config/awesome/floppy/theme/icons/thermometer.svg b/config/awesome/theme/icons/thermometer.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/thermometer.svg
rename to config/awesome/theme/icons/thermometer.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/close_focus.svg b/config/awesome/theme/icons/titlebar/blocks/close_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/close_focus.svg
rename to config/awesome/theme/icons/titlebar/blocks/close_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/close_focus_hover.svg b/config/awesome/theme/icons/titlebar/blocks/close_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/close_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/close_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/close_normal.svg b/config/awesome/theme/icons/titlebar/blocks/close_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/close_normal.svg
rename to config/awesome/theme/icons/titlebar/blocks/close_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/close_normal_hover.svg b/config/awesome/theme/icons/titlebar/blocks/close_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/close_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/close_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_active.svg b/config/awesome/theme/icons/titlebar/blocks/floating_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/floating_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_active.svg b/config/awesome/theme/icons/titlebar/blocks/floating_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/floating_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/floating_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_active.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_active.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/maximized_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/minimize_focus.svg b/config/awesome/theme/icons/titlebar/blocks/minimize_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/minimize_focus.svg
rename to config/awesome/theme/icons/titlebar/blocks/minimize_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/minimize_focus_hover.svg b/config/awesome/theme/icons/titlebar/blocks/minimize_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/minimize_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/minimize_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/minimize_normal.svg b/config/awesome/theme/icons/titlebar/blocks/minimize_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/minimize_normal.svg
rename to config/awesome/theme/icons/titlebar/blocks/minimize_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/minimize_normal_hover.svg b/config/awesome/theme/icons/titlebar/blocks/minimize_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/minimize_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/minimize_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_active.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_active.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/ontop_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_active.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_active.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_active.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_inactive.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/blocks/sticky_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/close_focus.svg b/config/awesome/theme/icons/titlebar/lines/close_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/close_focus.svg
rename to config/awesome/theme/icons/titlebar/lines/close_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/close_focus_hover.svg b/config/awesome/theme/icons/titlebar/lines/close_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/close_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/close_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/close_normal.svg b/config/awesome/theme/icons/titlebar/lines/close_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/close_normal.svg
rename to config/awesome/theme/icons/titlebar/lines/close_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/close_normal_hover.svg b/config/awesome/theme/icons/titlebar/lines/close_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/close_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/close_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_active.svg b/config/awesome/theme/icons/titlebar/lines/floating_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_active.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/floating_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_inactive.svg b/config/awesome/theme/icons/titlebar/lines/floating_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_active.svg b/config/awesome/theme/icons/titlebar/lines/floating_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_active.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/floating_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_inactive.svg b/config/awesome/theme/icons/titlebar/lines/floating_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/floating_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_active.svg b/config/awesome/theme/icons/titlebar/lines/maximized_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_active.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_inactive.svg b/config/awesome/theme/icons/titlebar/lines/maximized_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_active.svg b/config/awesome/theme/icons/titlebar/lines/maximized_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_active.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_inactive.svg b/config/awesome/theme/icons/titlebar/lines/maximized_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/maximized_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/minimize_focus.svg b/config/awesome/theme/icons/titlebar/lines/minimize_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/minimize_focus.svg
rename to config/awesome/theme/icons/titlebar/lines/minimize_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/minimize_focus_hover.svg b/config/awesome/theme/icons/titlebar/lines/minimize_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/minimize_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/minimize_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/minimize_normal.svg b/config/awesome/theme/icons/titlebar/lines/minimize_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/minimize_normal.svg
rename to config/awesome/theme/icons/titlebar/lines/minimize_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/minimize_normal_hover.svg b/config/awesome/theme/icons/titlebar/lines/minimize_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/minimize_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/minimize_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_active.svg b/config/awesome/theme/icons/titlebar/lines/ontop_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_active.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_inactive.svg b/config/awesome/theme/icons/titlebar/lines/ontop_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_active.svg b/config/awesome/theme/icons/titlebar/lines/ontop_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_active.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_inactive.svg b/config/awesome/theme/icons/titlebar/lines/ontop_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/ontop_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_active.svg b/config/awesome/theme/icons/titlebar/lines/sticky_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_active.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_inactive.svg b/config/awesome/theme/icons/titlebar/lines/sticky_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_active.svg b/config/awesome/theme/icons/titlebar/lines/sticky_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_active.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_inactive.svg b/config/awesome/theme/icons/titlebar/lines/sticky_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/lines/sticky_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/close_focus.svg b/config/awesome/theme/icons/titlebar/stoplight/close_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/close_focus.svg
rename to config/awesome/theme/icons/titlebar/stoplight/close_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/close_focus_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/close_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/close_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/close_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/close_normal.svg b/config/awesome/theme/icons/titlebar/stoplight/close_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/close_normal.svg
rename to config/awesome/theme/icons/titlebar/stoplight/close_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/close_normal_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/close_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/close_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/close_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_active.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_active.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/floating_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_active.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_active.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/maximized_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_focus.svg b/config/awesome/theme/icons/titlebar/stoplight/minimize_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_focus.svg
rename to config/awesome/theme/icons/titlebar/stoplight/minimize_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_focus_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/minimize_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_normal.svg b/config/awesome/theme/icons/titlebar/stoplight/minimize_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_normal.svg
rename to config/awesome/theme/icons/titlebar/stoplight/minimize_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_normal_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/minimize_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_active.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_active.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/ontop_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_active.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_active.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_active.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/stoplight/sticky_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/close_focus.svg b/config/awesome/theme/icons/titlebar/win10/close_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/close_focus.svg
rename to config/awesome/theme/icons/titlebar/win10/close_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/close_normal.svg b/config/awesome/theme/icons/titlebar/win10/close_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/close_normal.svg
rename to config/awesome/theme/icons/titlebar/win10/close_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/close_normal_hover.svg b/config/awesome/theme/icons/titlebar/win10/close_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/close_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/close_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_active.svg b/config/awesome/theme/icons/titlebar/win10/floating_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_active.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/win10/floating_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_inactive.svg b/config/awesome/theme/icons/titlebar/win10/floating_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_active.svg b/config/awesome/theme/icons/titlebar/win10/floating_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_active.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/win10/floating_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_inactive.svg b/config/awesome/theme/icons/titlebar/win10/floating_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/floating_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_active.svg b/config/awesome/theme/icons/titlebar/win10/maximized_focus_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_active.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_focus_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_active_hover.svg b/config/awesome/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_focus_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_inactive.svg b/config/awesome/theme/icons/titlebar/win10/maximized_focus_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_inactive.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_focus_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg b/config/awesome/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_focus_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_active.svg b/config/awesome/theme/icons/titlebar/win10/maximized_normal_active.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_active.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_normal_active.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_active_hover.svg b/config/awesome/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_normal_active_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_inactive.svg b/config/awesome/theme/icons/titlebar/win10/maximized_normal_inactive.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_inactive.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_normal_inactive.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg b/config/awesome/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/maximized_normal_inactive_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/minimize_focus.svg b/config/awesome/theme/icons/titlebar/win10/minimize_focus.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/minimize_focus.svg
rename to config/awesome/theme/icons/titlebar/win10/minimize_focus.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/minimize_focus_hover.svg b/config/awesome/theme/icons/titlebar/win10/minimize_focus_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/minimize_focus_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/minimize_focus_hover.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/minimize_normal.svg b/config/awesome/theme/icons/titlebar/win10/minimize_normal.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/minimize_normal.svg
rename to config/awesome/theme/icons/titlebar/win10/minimize_normal.svg
diff --git a/config/awesome/floppy/theme/icons/titlebar/win10/minimize_normal_hover.svg b/config/awesome/theme/icons/titlebar/win10/minimize_normal_hover.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/titlebar/win10/minimize_normal_hover.svg
rename to config/awesome/theme/icons/titlebar/win10/minimize_normal_hover.svg
diff --git a/config/awesome/floppy/theme/icons/toggled-off.svg b/config/awesome/theme/icons/toggled-off.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/toggled-off.svg
rename to config/awesome/theme/icons/toggled-off.svg
diff --git a/config/awesome/floppy/theme/icons/toggled-on.svg b/config/awesome/theme/icons/toggled-on.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/toggled-on.svg
rename to config/awesome/theme/icons/toggled-on.svg
diff --git a/config/awesome/floppy/theme/icons/volume-high.svg b/config/awesome/theme/icons/volume-high.svg
similarity index 100%
rename from config/awesome/floppy/theme/icons/volume-high.svg
rename to config/awesome/theme/icons/volume-high.svg
diff --git a/config/awesome/theme/init.lua b/config/awesome/theme/init.lua
new file mode 100644
index 000000000..ab632b58c
--- /dev/null
+++ b/config/awesome/theme/init.lua
@@ -0,0 +1,11 @@
+local gtable = require("gears.table")
+local default_theme = require("theme.default-theme")
+local theme = require("theme." .. THEME)
+
+local final_theme = {}
+gtable.crush(final_theme, default_theme.theme)
+gtable.crush(final_theme, theme.theme)
+default_theme.awesome_overrides(final_theme)
+theme.awesome_overrides(final_theme)
+
+return final_theme
diff --git a/config/awesome/floppy/theme/icons/init.lua b/config/awesome/theme/linear/icons.lua
similarity index 100%
rename from config/awesome/floppy/theme/icons/init.lua
rename to config/awesome/theme/linear/icons.lua
diff --git a/config/awesome/theme/linear/init.lua b/config/awesome/theme/linear/init.lua
new file mode 100644
index 000000000..d07ea9663
--- /dev/null
+++ b/config/awesome/theme/linear/init.lua
@@ -0,0 +1,48 @@
+local directories = require("theme.directories")
+
+local theme = {}
+
+theme.icons = directories.icons
+theme.font = "Inter Regular 10"
+theme.font_bold = "Inter Bold 10"
+
+-- Colorscheme
+theme.system_black_dark = "#3D4C5F"
+theme.system_black_light = "#56687E"
+
+theme.system_red_dark = "#EE4F84"
+theme.system_red_light = "#F48FB1"
+
+theme.system_green_dark = "#53E2AE"
+theme.system_green_light = "#A1EFD3"
+
+theme.system_yellow_dark = "#F1FF52"
+theme.system_yellow_light = "#F1FA8C"
+
+theme.system_blue_dark = "#6498EF"
+theme.system_blue_light = "#92B6F4"
+
+theme.system_magenta_dark = "#985EFF"
+theme.system_magenta_light = "#BD99FF"
+
+theme.system_cyan_dark = "#24D1E7"
+theme.system_cyan_light = "#87DFEB"
+
+theme.system_white_dark = "#E5E5E5"
+theme.system_white_light = "#F8F8F2"
+
+-- Accent color
+theme.accent = theme.system_blue_dark
+
+-- Background color
+theme.background = "#000000" .. "66"
+
+-- Transparent
+theme.transparent = "#00000000"
+
+local awesome_overrides = function(theme) end
+
+return {
+ theme = theme,
+ awesome_overrides = awesome_overrides,
+}
diff --git a/config/awesome/linear/theme/wallpapers/AUTHORS b/config/awesome/theme/linear/wallpapers/AUTHORS
similarity index 100%
rename from config/awesome/linear/theme/wallpapers/AUTHORS
rename to config/awesome/theme/linear/wallpapers/AUTHORS
diff --git a/config/awesome/linear/theme/wallpapers/locksreen-bg.jpg b/config/awesome/theme/linear/wallpapers/locksreen-bg.jpg
similarity index 100%
rename from config/awesome/linear/theme/wallpapers/locksreen-bg.jpg
rename to config/awesome/theme/linear/wallpapers/locksreen-bg.jpg
diff --git a/config/awesome/linear/theme/wallpapers/midnight-wallpaper.jpg b/config/awesome/theme/linear/wallpapers/midnight-wallpaper.jpg
similarity index 100%
rename from config/awesome/linear/theme/wallpapers/midnight-wallpaper.jpg
rename to config/awesome/theme/linear/wallpapers/midnight-wallpaper.jpg
diff --git a/config/awesome/linear/theme/wallpapers/morning-wallpaper.jpg b/config/awesome/theme/linear/wallpapers/morning-wallpaper.jpg
similarity index 100%
rename from config/awesome/linear/theme/wallpapers/morning-wallpaper.jpg
rename to config/awesome/theme/linear/wallpapers/morning-wallpaper.jpg
diff --git a/config/awesome/linear/theme/wallpapers/night-wallpaper.jpg b/config/awesome/theme/linear/wallpapers/night-wallpaper.jpg
similarity index 100%
rename from config/awesome/linear/theme/wallpapers/night-wallpaper.jpg
rename to config/awesome/theme/linear/wallpapers/night-wallpaper.jpg
diff --git a/config/awesome/linear/theme/wallpapers/noon-wallpaper.jpg b/config/awesome/theme/linear/wallpapers/noon-wallpaper.jpg
similarity index 100%
rename from config/awesome/linear/theme/wallpapers/noon-wallpaper.jpg
rename to config/awesome/theme/linear/wallpapers/noon-wallpaper.jpg
diff --git a/config/awesome/linear/theme/icons/init.lua b/config/awesome/theme/surreal/icons.lua
similarity index 100%
rename from config/awesome/linear/theme/icons/init.lua
rename to config/awesome/theme/surreal/icons.lua
diff --git a/config/awesome/theme/surreal/init.lua b/config/awesome/theme/surreal/init.lua
new file mode 100644
index 000000000..67e57dd54
--- /dev/null
+++ b/config/awesome/theme/surreal/init.lua
@@ -0,0 +1,52 @@
+local directories = require("theme.directories")
+
+local theme = {}
+
+theme.icons = directories.icons
+theme.font = "Inter Regular 10"
+theme.font_bold = "Inter Bold 10"
+
+-- Colorscheme
+theme.system_black_dark = "#3D4C5F"
+theme.system_black_light = "#56687E"
+
+theme.system_red_dark = "#EE4F84"
+theme.system_red_light = "#F48FB1"
+
+theme.system_green_dark = "#53E2AE"
+theme.system_green_light = "#A1EFD3"
+
+theme.system_yellow_dark = "#F1FF52"
+theme.system_yellow_light = "#F1FA8C"
+
+theme.system_blue_dark = "#6498EF"
+theme.system_blue_light = "#92B6F4"
+
+theme.system_magenta_dark = "#985EFF"
+theme.system_magenta_light = "#BD99FF"
+
+theme.system_cyan_dark = "#24D1E7"
+theme.system_cyan_light = "#87DFEB"
+
+theme.system_white_dark = "#E5E5E5"
+theme.system_white_light = "#F8F8F2"
+
+-- Accent color
+theme.accent = theme.system_blue_dark
+
+-- Background color
+theme.background = "#00000066"
+theme.background_light = "#f2f2f266"
+
+-- Transparent
+theme.transparent = "#00000000"
+
+-- Awesome icon
+theme.awesome_icon = theme.icons .. "awesome.svg"
+
+local awesome_overrides = function(theme) end
+
+return {
+ theme = theme,
+ awesome_overrides = awesome_overrides,
+}
diff --git a/config/awesome/surreal/theme/wallpapers/AUTHORS b/config/awesome/theme/surreal/wallpapers/AUTHORS
similarity index 100%
rename from config/awesome/surreal/theme/wallpapers/AUTHORS
rename to config/awesome/theme/surreal/wallpapers/AUTHORS
diff --git a/config/awesome/surreal/theme/wallpapers/locksreen-bg.jpg b/config/awesome/theme/surreal/wallpapers/locksreen-bg.jpg
similarity index 100%
rename from config/awesome/surreal/theme/wallpapers/locksreen-bg.jpg
rename to config/awesome/theme/surreal/wallpapers/locksreen-bg.jpg
diff --git a/config/awesome/surreal/theme/wallpapers/midnight-wallpaper.jpg b/config/awesome/theme/surreal/wallpapers/midnight-wallpaper.jpg
similarity index 100%
rename from config/awesome/surreal/theme/wallpapers/midnight-wallpaper.jpg
rename to config/awesome/theme/surreal/wallpapers/midnight-wallpaper.jpg
diff --git a/config/awesome/surreal/theme/wallpapers/morning-wallpaper.jpg b/config/awesome/theme/surreal/wallpapers/morning-wallpaper.jpg
similarity index 100%
rename from config/awesome/surreal/theme/wallpapers/morning-wallpaper.jpg
rename to config/awesome/theme/surreal/wallpapers/morning-wallpaper.jpg
diff --git a/config/awesome/surreal/theme/wallpapers/night-wallpaper.jpg b/config/awesome/theme/surreal/wallpapers/night-wallpaper.jpg
similarity index 100%
rename from config/awesome/surreal/theme/wallpapers/night-wallpaper.jpg
rename to config/awesome/theme/surreal/wallpapers/night-wallpaper.jpg
diff --git a/config/awesome/surreal/theme/wallpapers/noon-wallpaper.jpg b/config/awesome/theme/surreal/wallpapers/noon-wallpaper.jpg
similarity index 100%
rename from config/awesome/surreal/theme/wallpapers/noon-wallpaper.jpg
rename to config/awesome/theme/surreal/wallpapers/noon-wallpaper.jpg
diff --git a/config/awesome/types/folders.lua b/config/awesome/types/folders.lua
new file mode 100644
index 000000000..e59fd8693
--- /dev/null
+++ b/config/awesome/types/folders.lua
@@ -0,0 +1,17 @@
+local filesystem = require("gears.filesystem")
+local Path = require("module.path")
+local root = Path:new(nil, { filesystem.get_configuration_dir() })
+local layout = root + Path:new(nil, { "layout" })
+local configuration = root + Path:new(nil, { "configuration" })
+local layout = root + Path:new(nil, { "layout" })
+local library = root + Path:new(nil, { "library" })
+local module = root + Path:new(nil, { "module" })
+local folders = {
+ ["root"] = root(),
+ ["configuration"] = root + Path:new(nil, { "configuration" }),
+ ["layout"] = root + Path:new(nil, { "layout" }),
+ ["library"] = library(),
+ ["module"] = module(),
+}
+--- @type number
+local k = 4
diff --git a/config/awesome/types/theme-dictionary.lua b/config/awesome/types/theme-dictionary.lua
new file mode 100644
index 000000000..246921a91
--- /dev/null
+++ b/config/awesome/types/theme-dictionary.lua
@@ -0,0 +1 @@
+--- @class theme_dictionary : {["linear"]: T, ["gnawesome"]: T, ["surreal"]: T, ["floppy"]: T}
diff --git a/config/awesome/utilities/error-handler.lua b/config/awesome/utilities/error-handler.lua
new file mode 100644
index 000000000..4bb09e15f
--- /dev/null
+++ b/config/awesome/utilities/error-handler.lua
@@ -0,0 +1,11 @@
+-- 🔧 TODO: add _naughty_ notification here
+local error_handler = function(err)
+ if err ~= "" then
+ -- here the level is 4 cause the first is the error
+ -- the second the callback the third the pcall and
+ -- the fourth the function that called error_handler
+ local _, error = pcall(function() error(err, 4) end)
+ print(error)
+ end
+end
+return error_handler
diff --git a/config/awesome/floppy/utilities/profile-image b/config/awesome/utilities/profile-image
similarity index 100%
rename from config/awesome/floppy/utilities/profile-image
rename to config/awesome/utilities/profile-image
diff --git a/config/awesome/floppy/utilities/snap b/config/awesome/utilities/snap
similarity index 100%
rename from config/awesome/floppy/utilities/snap
rename to config/awesome/utilities/snap
diff --git a/config/awesome/floppy/widget/battery/icons/battery-alert-red.svg b/config/awesome/widget/battery/icons/battery-alert-red.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-alert-red.svg
rename to config/awesome/widget/battery/icons/battery-alert-red.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-alert.svg b/config/awesome/widget/battery/icons/battery-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-alert.svg
rename to config/awesome/widget/battery/icons/battery-alert.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-10.svg b/config/awesome/widget/battery/icons/battery-charging-10.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-10.svg
rename to config/awesome/widget/battery/icons/battery-charging-10.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-20.svg b/config/awesome/widget/battery/icons/battery-charging-20.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-20.svg
rename to config/awesome/widget/battery/icons/battery-charging-20.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-30.svg b/config/awesome/widget/battery/icons/battery-charging-30.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-30.svg
rename to config/awesome/widget/battery/icons/battery-charging-30.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-50.svg b/config/awesome/widget/battery/icons/battery-charging-50.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-50.svg
rename to config/awesome/widget/battery/icons/battery-charging-50.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-60.svg b/config/awesome/widget/battery/icons/battery-charging-60.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-60.svg
rename to config/awesome/widget/battery/icons/battery-charging-60.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-80.svg b/config/awesome/widget/battery/icons/battery-charging-80.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-80.svg
rename to config/awesome/widget/battery/icons/battery-charging-80.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-charging-90.svg b/config/awesome/widget/battery/icons/battery-charging-90.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-charging-90.svg
rename to config/awesome/widget/battery/icons/battery-charging-90.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-100.svg b/config/awesome/widget/battery/icons/battery-discharging-100.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-100.svg
rename to config/awesome/widget/battery/icons/battery-discharging-100.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-20.svg b/config/awesome/widget/battery/icons/battery-discharging-20.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-20.svg
rename to config/awesome/widget/battery/icons/battery-discharging-20.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-30.svg b/config/awesome/widget/battery/icons/battery-discharging-30.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-30.svg
rename to config/awesome/widget/battery/icons/battery-discharging-30.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-50.svg b/config/awesome/widget/battery/icons/battery-discharging-50.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-50.svg
rename to config/awesome/widget/battery/icons/battery-discharging-50.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-60.svg b/config/awesome/widget/battery/icons/battery-discharging-60.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-60.svg
rename to config/awesome/widget/battery/icons/battery-discharging-60.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-80.svg b/config/awesome/widget/battery/icons/battery-discharging-80.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-80.svg
rename to config/awesome/widget/battery/icons/battery-discharging-80.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-discharging-90.svg b/config/awesome/widget/battery/icons/battery-discharging-90.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-discharging-90.svg
rename to config/awesome/widget/battery/icons/battery-discharging-90.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-fully-charged.svg b/config/awesome/widget/battery/icons/battery-fully-charged.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-fully-charged.svg
rename to config/awesome/widget/battery/icons/battery-fully-charged.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery-unknown.svg b/config/awesome/widget/battery/icons/battery-unknown.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery-unknown.svg
rename to config/awesome/widget/battery/icons/battery-unknown.svg
diff --git a/config/awesome/floppy/widget/battery/icons/battery.svg b/config/awesome/widget/battery/icons/battery.svg
similarity index 100%
rename from config/awesome/floppy/widget/battery/icons/battery.svg
rename to config/awesome/widget/battery/icons/battery.svg
diff --git a/config/awesome/linear/widget/battery/init.lua b/config/awesome/widget/battery/init.lua
similarity index 100%
rename from config/awesome/linear/widget/battery/init.lua
rename to config/awesome/widget/battery/init.lua
diff --git a/config/awesome/floppy/widget/bluetooth/icons/bluetooth-connected.svg b/config/awesome/widget/bluetooth/icons/bluetooth-connected.svg
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth/icons/bluetooth-connected.svg
rename to config/awesome/widget/bluetooth/icons/bluetooth-connected.svg
diff --git a/config/awesome/floppy/widget/bluetooth-toggle/icons/bluetooth-off.svg b/config/awesome/widget/bluetooth/icons/bluetooth-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth-toggle/icons/bluetooth-off.svg
rename to config/awesome/widget/bluetooth/icons/bluetooth-off.svg
diff --git a/config/awesome/floppy/widget/bluetooth/icons/bluetooth-scanning.svg b/config/awesome/widget/bluetooth/icons/bluetooth-scanning.svg
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth/icons/bluetooth-scanning.svg
rename to config/awesome/widget/bluetooth/icons/bluetooth-scanning.svg
diff --git a/config/awesome/floppy/widget/bluetooth/icons/bluetooth.svg b/config/awesome/widget/bluetooth/icons/bluetooth.svg
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth/icons/bluetooth.svg
rename to config/awesome/widget/bluetooth/icons/bluetooth.svg
diff --git a/config/awesome/floppy/widget/bluetooth-toggle/icons/loading.svg b/config/awesome/widget/bluetooth/icons/loading.svg
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth-toggle/icons/loading.svg
rename to config/awesome/widget/bluetooth/icons/loading.svg
diff --git a/config/awesome/floppy/widget/bluetooth/init.lua b/config/awesome/widget/bluetooth/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth/init.lua
rename to config/awesome/widget/bluetooth/init.lua
diff --git a/config/awesome/widget/blur-slider/clickable-container.lua b/config/awesome/widget/blur-slider/clickable-container.lua
new file mode 100644
index 000000000..f7486ad4d
--- /dev/null
+++ b/config/awesome/widget/blur-slider/clickable-container.lua
@@ -0,0 +1,28 @@
+local wibox = require("wibox")
+
+function build(widget)
+ local container = wibox.widget({
+ widget,
+ widget = wibox.container.background,
+ })
+ local old_cursor, old_wibox
+ container:connect_signal("mouse::enter", function()
+ -- Hm, no idea how to get the wibox from this signal's arguments...
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end)
+
+ container:connect_signal("mouse::leave", function()
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end)
+
+ return container
+end
+
+return build
diff --git a/config/awesome/widget/blur-slider/init.lua b/config/awesome/widget/blur-slider/init.lua
new file mode 100644
index 000000000..d12da6774
--- /dev/null
+++ b/config/awesome/widget/blur-slider/init.lua
@@ -0,0 +1,177 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local clickable_container = require("widget.clickable-container")
+local icon_class = require("widget.meters.entities.icon")
+
+local height_map = {
+ floppy = dpi(2),
+}
+local handle_width_map = {
+ floppy = dpi(15),
+}
+
+local action_name = wibox.widget({
+ text = "Blur Strength",
+ font = "Inter Bold 10",
+ align = "left",
+ widget = wibox.widget.textbox,
+})
+
+local icon = icon_class:new(icons.volume, _, true, _)
+
+local action_level = wibox.widget({
+ {
+ {
+ icon,
+ margins = dpi(5),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+})
+local slider = wibox.widget({
+ nil,
+ {
+ id = "blur_strength_slider",
+ bar_shape = gears.shape.rounded_rect,
+ bar_height = height_map[THEME] or dpi(24),
+ bar_color = "#ffffff20",
+ bar_active_color = "#f2f2f2EE",
+ handle_color = "#ffffff",
+ handle_shape = gears.shape.circle,
+ handle_width = handle_width_map[THEME] or dpi(24),
+ handle_border_color = "#00000012",
+ handle_border_width = dpi(1),
+ maximum = 100,
+ widget = wibox.widget.slider,
+ },
+ nil,
+ expand = "none",
+ forced_height = dpi(24),
+ layout = wibox.layout.align.vertical,
+})
+
+local blur_slider = slider.blur_strength_slider
+
+local update_slider_value = function()
+ awful.spawn.easy_async_with_shell(
+ [[bash -c "
+ grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
+ awk 'NR==1 {print $3}' | tr -d ';'
+ "]],
+ function(stdout, stderr)
+ local strength = stdout:match("%d+")
+ blur_strength = tonumber(strength) / 20 * 100
+ blur_slider:set_value(tonumber(blur_strength))
+ start_up = false
+ end
+ )
+end
+
+-- Update on startup
+update_slider_value()
+
+local action_jump = function()
+ local sli_value = blur_slider:get_value()
+ local new_value = 0
+
+ if sli_value >= 0 and sli_value < 25 then
+ new_value = 25
+ elseif sli_value >= 25 and sli_value < 50 then
+ new_value = 50
+ elseif sli_value >= 50 and sli_value < 100 then
+ new_value = 100
+ else
+ new_value = 0
+ end
+ blur_slider:set_value(new_value)
+end
+
+action_level:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ action_jump()
+end)))
+
+local adjust_blur = function(power)
+ awful.spawn.with_shell([[bash -c "
+ sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
+ $HOME/.config/awesome/configuration/picom.conf
+ "]])
+end
+
+blur_slider:connect_signal("property::value", function()
+ if not start_up then
+ strength = blur_slider:get_value() / 50 * 10
+ adjust_blur(strength)
+ end
+end)
+
+-- Adjust slider value to change blur strength
+awesome.connect_signal("widget::blur:increase", function()
+ -- On startup, the slider.value returns nil so...
+ if blur_slider:get_value() == nil then
+ return
+ end
+
+ local blur_value = blur_slider:get_value() + 10
+
+ -- No more than 100!
+ if blur_value > 100 then
+ blur_slider:set_value(100)
+ return
+ end
+
+ blur_slider:set_value(blur_value)
+end)
+
+-- Decrease blur
+awesome.connect_signal("widget::blur:decrease", function()
+ -- On startup, the slider.value returns nil so...
+ if blur_slider:get_value() == nil then
+ return
+ end
+
+ local blur_value = blur_slider:get_value() - 10
+
+ -- No negatives!
+ if blur_value < 0 then
+ blur_slider:set_value(0)
+ return
+ end
+
+ blur_slider:set_value(blur_value)
+end)
+
+local volume_setting = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ forced_height = dpi(48),
+ spacing = dpi(5),
+ action_name,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ forced_height = dpi(24),
+ forced_width = dpi(24),
+ action_level,
+ },
+ nil,
+ },
+ slider,
+ },
+})
+
+return volume_setting
diff --git a/config/awesome/widget/brightness-slider/init.lua b/config/awesome/widget/brightness-slider/init.lua
new file mode 100644
index 000000000..6afb4864f
--- /dev/null
+++ b/config/awesome/widget/brightness-slider/init.lua
@@ -0,0 +1,137 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local spawn = awful.spawn
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local clickable_container = require("widget.clickable-container")
+local icon_class = require("widget.meters.entities.icon")
+
+local action_name = wibox.widget({
+ text = "Brightness",
+ font = "Inter Bold 10",
+ align = "left",
+ widget = wibox.widget.textbox,
+})
+
+local icon = icon_class:new(icons.brightness, _, true, _)
+local height_map = {
+ floppy = dpi(2),
+}
+local handle_width_map = {
+ floppy = dpi(15),
+}
+
+local slider = wibox.widget({
+ nil,
+ {
+ id = "brightness_slider",
+ bar_shape = gears.shape.rounded_rect,
+ bar_height = height_map[THEME] or dpi(24),
+ bar_color = "#ffffff20",
+ bar_active_color = "#f2f2f2EE",
+ handle_color = "#ffffff",
+ handle_shape = gears.shape.circle,
+ handle_width = handle_width_map[THEME] or dpi(24),
+ handle_border_color = "#00000012",
+ handle_border_width = dpi(1),
+ maximum = 100,
+ widget = wibox.widget.slider,
+ },
+ nil,
+ expand = "none",
+ forced_height = dpi(24),
+ layout = wibox.layout.align.vertical,
+})
+
+local brightness_slider = slider.brightness_slider
+
+brightness_slider:connect_signal("property::value", function()
+ local brightness_level = brightness_slider:get_value()
+
+ spawn("light -S " .. math.max(brightness_level, 5), false)
+
+ -- Update brightness osd
+ awesome.emit_signal("module::brightness_osd", brightness_level)
+end)
+
+brightness_slider:buttons(gears.table.join(
+ awful.button({}, 4, nil, function()
+ if brightness_slider:get_value() > 100 then
+ brightness_slider:set_value(100)
+ return
+ end
+ brightness_slider:set_value(brightness_slider:get_value() + 5)
+ end),
+ awful.button({}, 5, nil, function()
+ if brightness_slider:get_value() < 0 then
+ brightness_slider:set_value(0)
+ return
+ end
+ brightness_slider:set_value(brightness_slider:get_value() - 5)
+ end)
+))
+
+local update_slider = function()
+ awful.spawn.easy_async_with_shell("light -G", function(stdout)
+ local brightness = string.match(stdout, "(%d+)")
+ brightness_slider:set_value(tonumber(brightness))
+ end)
+end
+
+-- Update on startup
+update_slider()
+
+local action_jump = function()
+ local sli_value = brightness_slider:get_value()
+ local new_value = 0
+
+ if sli_value >= 0 and sli_value < 50 then
+ new_value = 50
+ elseif sli_value >= 50 and sli_value < 100 then
+ new_value = 100
+ else
+ new_value = 0
+ end
+ brightness_slider:set_value(new_value)
+end
+
+icon:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ action_jump()
+end)))
+
+-- The emit will come from the global keybind
+awesome.connect_signal("widget::brightness", function()
+ update_slider()
+end)
+
+-- The emit will come from the OSD
+awesome.connect_signal("widget::brightness:update", function(value)
+ brightness_slider:set_value(tonumber(value))
+end)
+
+local brightness_setting = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ action_name,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ forced_height = dpi(24),
+ forced_width = dpi(24),
+ icon,
+ },
+ nil,
+ },
+ slider,
+ },
+})
+
+return brightness_setting
diff --git a/config/awesome/floppy/widget/calculator/icons/kb-off.svg b/config/awesome/widget/calculator/icons/kb-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/calculator/icons/kb-off.svg
rename to config/awesome/widget/calculator/icons/kb-off.svg
diff --git a/config/awesome/floppy/widget/calculator/icons/kb.svg b/config/awesome/widget/calculator/icons/kb.svg
similarity index 100%
rename from config/awesome/floppy/widget/calculator/icons/kb.svg
rename to config/awesome/widget/calculator/icons/kb.svg
diff --git a/config/awesome/floppy/widget/calculator/init.lua b/config/awesome/widget/calculator/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/calculator/init.lua
rename to config/awesome/widget/calculator/init.lua
diff --git a/config/awesome/widget/calendar-popup/init.lua b/config/awesome/widget/calendar-popup/init.lua
new file mode 100644
index 000000000..76576960e
--- /dev/null
+++ b/config/awesome/widget/calendar-popup/init.lua
@@ -0,0 +1,53 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local config = require("configuration.config")
+local military_mode = config.widget.clock.military_mode or false
+
+function calendar_popup(s)
+ s.month_calendar = awful.widget.calendar_popup.month({
+ start_sunday = true,
+ spacing = dpi(5),
+ font = "Inter Regular 10",
+ long_weekdays = true,
+ margin = dpi(5),
+ screen = s,
+ style_month = {
+ border_width = dpi(0),
+ bg_color = beautiful.background,
+ padding = dpi(20),
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
+ end,
+ },
+ style_header = {
+ border_width = 0,
+ bg_color = beautiful.transparent,
+ },
+ style_weekday = {
+ border_width = 0,
+ bg_color = beautiful.transparent,
+ },
+ style_normal = {
+ border_width = 0,
+ bg_color = beautiful.transparent,
+ },
+ style_focus = {
+ border_width = dpi(0),
+ border_color = beautiful.fg_normal,
+ bg_color = beautiful.accent,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, dpi(4))
+ end,
+ },
+ })
+
+ s.month_calendar:attach(s.clock_widget, "tc", {
+ on_pressed = true,
+ on_hover = false,
+ })
+end
+return calendar_popup
diff --git a/config/awesome/widget/calendar/init.lua b/config/awesome/widget/calendar/init.lua
new file mode 100644
index 000000000..43e4a831b
--- /dev/null
+++ b/config/awesome/widget/calendar/init.lua
@@ -0,0 +1,144 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+
+local styles = {}
+
+local rounded_shape = function(size, partial)
+ if partial then
+ return function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, false, true, false, true, 5)
+ end
+ else
+ return function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, size)
+ end
+ end
+end
+
+styles.month = {
+ padding = 5,
+ bg_color = beautiful.transparent,
+}
+
+styles.normal = {
+ fg_color = "#f2f2f2",
+ bg_color = beautiful.transparent,
+}
+
+styles.focus = {
+ fg_color = "#f2f2f2",
+ bg_color = beautiful.accent,
+ markup = function(t)
+ return "" .. t .. ""
+ end,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, dpi(4))
+ end,
+}
+
+styles.header = {
+ fg_color = "#f2f2f2",
+ bg_color = beautiful.transparent,
+ markup = function(t)
+ return "" .. t .. ""
+ end,
+}
+
+styles.weekday = {
+ fg_color = "#ffffff",
+ bg_color = beautiful.transparent,
+ markup = function(t)
+ return "" .. t .. ""
+ end,
+}
+
+local decorate_cell = function(widget, flag, date)
+ if flag == "monthheader" and not styles.monthheader then
+ flag = "header"
+ end
+ local props = styles[flag] or {}
+ if props.markup and widget.get_text and widget.set_markup then
+ widget:set_markup(props.markup(widget:get_text()))
+ end
+ -- Change bg color for weekends
+ local d = { year = date.year, month = (date.month or 1), day = (date.day or 1) }
+ local weekday = tonumber(os.date("%w", os.time(d)))
+ local default_bg = (weekday == 0 or weekday == 6) and "#232323" or "#383838"
+ local ret = wibox.widget({
+ {
+ widget,
+ margins = (props.padding or 2) + (props.border_width or 0),
+ widget = wibox.container.margin,
+ },
+ shape = props.shape,
+ shape_border_color = props.border_color or "#b9214f",
+ shape_border_width = props.border_width or 0,
+ fg = props.fg_color or "#999999",
+ bg = props.bg_color or default_bg,
+ widget = wibox.container.background,
+ })
+ return ret
+end
+
+local calendar = wibox.widget({
+ font = "Inter Regular 12",
+ date = os.date("*t"),
+ spacing = dpi(10),
+ start_sunday = true,
+ long_weekdays = false,
+ fn_embed = decorate_cell,
+ widget = wibox.widget.calendar.month,
+})
+
+local current_month = calendar:get_date().month
+
+local update_focus_bg = function(month)
+ if current_month == month then
+ styles.focus.bg_color = beautiful.accent
+ styles.focus.markup = function(t)
+ return "" .. t .. ""
+ end
+ else
+ styles.focus.bg_color = beautiful.transparent
+ styles.focus.markup = function(t)
+ return t
+ end
+ end
+end
+
+local update_active_month = function(i)
+ local date = calendar:get_date()
+ date.month = date.month + i
+ update_focus_bg(date.month)
+ calendar:set_date(nil)
+ calendar:set_date(date)
+end
+
+calendar:buttons(gears.table.join(
+ awful.button({}, 4, function()
+ update_active_month(-1)
+ end),
+ awful.button({}, 5, function()
+ update_active_month(1)
+ end)
+))
+
+local widget = wibox.widget({
+ {
+ calendar,
+ top = dpi(15),
+ right = dpi(10),
+ left = dpi(10),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.groups_title_bg,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+})
+
+return widget
diff --git a/config/awesome/gnawesome/widget/central-panel-switch/init.lua b/config/awesome/widget/central-panel-switch/init.lua
similarity index 100%
rename from config/awesome/gnawesome/widget/central-panel-switch/init.lua
rename to config/awesome/widget/central-panel-switch/init.lua
diff --git a/config/awesome/widget/clickable-container/init.lua b/config/awesome/widget/clickable-container/init.lua
new file mode 100644
index 000000000..342be7ce2
--- /dev/null
+++ b/config/awesome/widget/clickable-container/init.lua
@@ -0,0 +1,46 @@
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+
+local create_click_events = function(widget)
+ local container = wibox.widget({
+ widget,
+ widget = wibox.container.background,
+ })
+
+ -- Old and new widget
+ local old_cursor, old_wibox
+
+ -- Mouse hovers on the widget
+ container:connect_signal("mouse::enter", function()
+ container.bg = beautiful.groups_bg
+ -- Hm, no idea how to get the wibox from this signal's arguments...
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end)
+
+ -- Mouse leaves the widget
+ container:connect_signal("mouse::leave", function()
+ container.bg = beautiful.leave_event
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end)
+
+ -- Mouse pressed the widget
+ container:connect_signal("button::press", function()
+ container.bg = beautiful.press_event
+ end)
+
+ -- Mouse releases the widget
+ container:connect_signal("button::release", function()
+ container.bg = beautiful.release_event
+ end)
+
+ return container
+end
+
+return create_click_events
diff --git a/config/awesome/widget/clock/callbacks.lua b/config/awesome/widget/clock/callbacks.lua
new file mode 100644
index 000000000..7489deb4d
--- /dev/null
+++ b/config/awesome/widget/clock/callbacks.lua
@@ -0,0 +1,20 @@
+local gears = require("gears")
+---@module "widget.clock"
+local calendar = require("widget.calendar")
+local awful = require("awful")
+--- @type {["floppy"]: function, ["gnawesome"]: function, ["surreal"] : function, ["linear"] : function}
+
+return {
+ ["gnawesome"] = function()
+ awful.screen.focused().central_panel:toggle()
+ end,
+ ["floppy"] = function()
+ calendar(s)
+ end,
+ ["surreal"] = function()
+ calendar(s)
+ end,
+ ["linear"] = function()
+ calendar(s)
+ end,
+}
diff --git a/config/awesome/widget/clock/init.lua b/config/awesome/widget/clock/init.lua
new file mode 100644
index 000000000..f2b987a99
--- /dev/null
+++ b/config/awesome/widget/clock/init.lua
@@ -0,0 +1,115 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local config = require("configuration.config")
+local military_mode = config.widget.clock.military_mode or false
+local path_to_file = ...
+local callbacks = require(path_to_file .. ".callbacks")
+local calendar_popup = require("widget.calendar-popup")
+
+local create_clock = function(s)
+ local clock_format = nil
+ if not military_mode then
+ clock_format = '%I:%M %p'
+ else
+ clock_format = '%H:%M'
+ end
+
+ s.clock_widget = wibox.widget.textclock(clock_format, 1)
+
+ s.clock_widget = wibox.widget({
+ {
+ s.clock_widget,
+ margins = dpi(7),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+ })
+
+ s.clock_widget:connect_signal("mouse::enter", function()
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end)
+
+ s.clock_widget:connect_signal("mouse::leave", function()
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end)
+
+ s.clock_tooltip = awful.tooltip({
+ objects = { s.clock_widget },
+ mode = "outside",
+ delay_show = 1,
+ preferred_positions = { "right", "left", "top", "bottom" },
+ preferred_alignments = { "middle", "front", "back" },
+ margin_leftright = dpi(8),
+ margin_topbottom = dpi(8),
+ timer_function = function()
+ local ordinal = nil
+
+ local day = os.date("%d")
+ local month = os.date("%B")
+
+ local first_digit = string.sub(day, 0, 1)
+ local last_digit = string.sub(day, -1)
+
+ if first_digit == "0" then
+ day = last_digit
+ end
+
+ if last_digit == "1" and day ~= "11" then
+ ordinal = "st"
+ elseif last_digit == "2" and day ~= "12" then
+ ordinal = "nd"
+ elseif last_digit == "3" and day ~= "13" then
+ ordinal = "rd"
+ else
+ ordinal = "th"
+ end
+
+ local date_str = "Today is the "
+ .. ""
+ .. day
+ .. ordinal
+ .. " of "
+ .. month
+ .. ".\n"
+ .. "And it's fucking "
+ .. os.date("%A")
+
+ return date_str
+ end,
+ })
+
+ s.clock_widget:connect_signal("button::press", function(self, lx, ly, button)
+ -- Hide the tooltip when you press the clock widget
+ if s.clock_tooltip.visible and button == 1 then
+ s.clock_tooltip.visible = false
+ end
+ end)
+
+ -- 🔧 TODO: Add a better way to change the clock format
+ s.clock_widget:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ if THEME == "floppy" then
+ calendar_popup(s)
+ return
+ end
+ if THEME == "gnawesome" then
+ awful.screen.focused().central_panel:toggle()
+ return
+ end
+ -- âž• add default case
+ end)))
+
+ return s.clock_widget
+end
+
+return create_clock
diff --git a/config/awesome/linear/widget/control-center-switch/icons/control-center.svg b/config/awesome/widget/control-center-switch/icons/control-center.svg
similarity index 100%
rename from config/awesome/linear/widget/control-center-switch/icons/control-center.svg
rename to config/awesome/widget/control-center-switch/icons/control-center.svg
diff --git a/config/awesome/linear/widget/control-center-switch/init.lua b/config/awesome/widget/control-center-switch/init.lua
similarity index 100%
rename from config/awesome/linear/widget/control-center-switch/init.lua
rename to config/awesome/widget/control-center-switch/init.lua
diff --git a/config/awesome/linear/widget/control-center-toggle/icons/control-center.svg b/config/awesome/widget/control-center-toggle/icons/control-center.svg
similarity index 100%
rename from config/awesome/linear/widget/control-center-toggle/icons/control-center.svg
rename to config/awesome/widget/control-center-toggle/icons/control-center.svg
diff --git a/config/awesome/linear/widget/control-center-toggle/init.lua b/config/awesome/widget/control-center-toggle/init.lua
similarity index 100%
rename from config/awesome/linear/widget/control-center-toggle/init.lua
rename to config/awesome/widget/control-center-toggle/init.lua
diff --git a/config/awesome/widget/cpu-meter/init.lua b/config/awesome/widget/cpu-meter/init.lua
new file mode 100644
index 000000000..545b95be0
--- /dev/null
+++ b/config/awesome/widget/cpu-meter/init.lua
@@ -0,0 +1,48 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local watch = awful.widget.watch
+local spawn = awful.spawn
+local dpi = beautiful.xresources.apply_dpi
+local create_meter = require("widget.meters")
+local icons = require("theme.icons")
+local slider_class = require("widget.meters.entities.slider")
+local icon_class = require("widget.meters.entities.icon")
+local name_class = require("widget.meters.entities.name")
+local meter_factory = require("widget.meters.entities.meter")
+
+local slider = slider_class:new("cpu_usage")
+
+local meter_name = name_class:new("CPU", _, _)
+--- 🔧 change to more miningful icon
+local meter_icon = icon_class:new(icons.chart, _, _)
+
+local total_prev = 0
+local idle_prev = 0
+
+watch(
+ [[bash -c "
+ cat /proc/stat | grep '^cpu '
+ "]],
+ 10,
+ function(_, stdout)
+ local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
+ stdout:match("(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s")
+
+ local total = user + nice + system + idle + iowait + irq + softirq + steal
+
+ local diff_idle = idle - idle_prev
+ local diff_total = total - total_prev
+ local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
+
+ slider.cpu_usage:set_value(diff_usage)
+
+ total_prev = total
+ idle_prev = idle
+ collectgarbage("collect")
+ end
+)
+
+local cpu_meter = meter_factory(meter_name, meter_icon, slider)
+return cpu_meter
diff --git a/config/awesome/widget/dont-disturb/disturb_status b/config/awesome/widget/dont-disturb/disturb_status
new file mode 100644
index 000000000..c508d5366
--- /dev/null
+++ b/config/awesome/widget/dont-disturb/disturb_status
@@ -0,0 +1 @@
+false
diff --git a/config/awesome/linear/widget/dont-disturb/icons/dont-disturb.svg b/config/awesome/widget/dont-disturb/icons/dont-disturb.svg
similarity index 100%
rename from config/awesome/linear/widget/dont-disturb/icons/dont-disturb.svg
rename to config/awesome/widget/dont-disturb/icons/dont-disturb.svg
diff --git a/config/awesome/linear/widget/dont-disturb/icons/notify.svg b/config/awesome/widget/dont-disturb/icons/notify.svg
similarity index 100%
rename from config/awesome/linear/widget/dont-disturb/icons/notify.svg
rename to config/awesome/widget/dont-disturb/icons/notify.svg
diff --git a/config/awesome/linear/widget/dont-disturb/init.lua b/config/awesome/widget/dont-disturb/init.lua
similarity index 100%
rename from config/awesome/linear/widget/dont-disturb/init.lua
rename to config/awesome/widget/dont-disturb/init.lua
diff --git a/config/awesome/floppy/widget/email/icons/email-1.svg b/config/awesome/widget/email/icons/email-1.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-1.svg
rename to config/awesome/widget/email/icons/email-1.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-2.svg b/config/awesome/widget/email/icons/email-2.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-2.svg
rename to config/awesome/widget/email/icons/email-2.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-3.svg b/config/awesome/widget/email/icons/email-3.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-3.svg
rename to config/awesome/widget/email/icons/email-3.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-4.svg b/config/awesome/widget/email/icons/email-4.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-4.svg
rename to config/awesome/widget/email/icons/email-4.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-5.svg b/config/awesome/widget/email/icons/email-5.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-5.svg
rename to config/awesome/widget/email/icons/email-5.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-6.svg b/config/awesome/widget/email/icons/email-6.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-6.svg
rename to config/awesome/widget/email/icons/email-6.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-7.svg b/config/awesome/widget/email/icons/email-7.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-7.svg
rename to config/awesome/widget/email/icons/email-7.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-8.svg b/config/awesome/widget/email/icons/email-8.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-8.svg
rename to config/awesome/widget/email/icons/email-8.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-9+.svg b/config/awesome/widget/email/icons/email-9+.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-9+.svg
rename to config/awesome/widget/email/icons/email-9+.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-9.svg b/config/awesome/widget/email/icons/email-9.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-9.svg
rename to config/awesome/widget/email/icons/email-9.svg
diff --git a/config/awesome/floppy/widget/email/icons/email-unread.svg b/config/awesome/widget/email/icons/email-unread.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email-unread.svg
rename to config/awesome/widget/email/icons/email-unread.svg
diff --git a/config/awesome/floppy/widget/email/icons/email.svg b/config/awesome/widget/email/icons/email.svg
similarity index 100%
rename from config/awesome/floppy/widget/email/icons/email.svg
rename to config/awesome/widget/email/icons/email.svg
diff --git a/config/awesome/linear/widget/email/init.lua b/config/awesome/widget/email/init.lua
similarity index 100%
rename from config/awesome/linear/widget/email/init.lua
rename to config/awesome/widget/email/init.lua
diff --git a/config/awesome/widget/end-session-footer/init.lua b/config/awesome/widget/end-session-footer/init.lua
new file mode 100644
index 000000000..4e46ff99e
--- /dev/null
+++ b/config/awesome/widget/end-session-footer/init.lua
@@ -0,0 +1,58 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local icons = require("theme.icons")
+
+local create_widget = function()
+ local exit_widget = {
+ {
+ {
+ {
+ image = icons.logout,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ top = dpi(12),
+ bottom = dpi(12),
+ widget = wibox.container.margin,
+ },
+ {
+ text = "End work session",
+ font = "Inter Regular 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ },
+ spacing = dpi(24),
+ layout = wibox.layout.fixed.horizontal,
+ },
+ left = dpi(24),
+ right = dpi(24),
+ forced_height = dpi(48),
+ widget = wibox.container.margin,
+ }
+
+ local exit_button = wibox.widget({
+ {
+ exit_widget,
+ widget = clickable_container,
+ },
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+
+ exit_button:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ screen.primary.left_panel:toggle()
+ awesome.emit_signal("module::exit_screen:show")
+ end)))
+
+ return exit_button
+end
+
+return create_widget
diff --git a/config/awesome/linear/widget/end-session/init.lua b/config/awesome/widget/end-session/init.lua
similarity index 100%
rename from config/awesome/linear/widget/end-session/init.lua
rename to config/awesome/widget/end-session/init.lua
diff --git a/config/awesome/linear/widget/global-search/init.lua b/config/awesome/widget/global-search/init.lua
similarity index 100%
rename from config/awesome/linear/widget/global-search/init.lua
rename to config/awesome/widget/global-search/init.lua
diff --git a/config/awesome/floppy/widget/info-center-switch/init.lua b/config/awesome/widget/info-center-switch/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/info-center-switch/init.lua
rename to config/awesome/widget/info-center-switch/init.lua
diff --git a/config/awesome/floppy/widget/info-center-toggle/icons/info-center.svg b/config/awesome/widget/info-center-toggle/icons/info-center.svg
similarity index 100%
rename from config/awesome/floppy/widget/info-center-toggle/icons/info-center.svg
rename to config/awesome/widget/info-center-toggle/icons/info-center.svg
diff --git a/config/awesome/widget/info-center-toggle/init.lua b/config/awesome/widget/info-center-toggle/init.lua
new file mode 100644
index 000000000..e4c21aa80
--- /dev/null
+++ b/config/awesome/widget/info-center-toggle/init.lua
@@ -0,0 +1,39 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local dpi = require("beautiful").xresources.apply_dpi
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/info-center-toggle/icons/"
+local clickable_container = require("widget.clickable-container")
+local settings = require("widget.info-center-toggle.settings")
+
+local return_button = function()
+ local widget = wibox.widget({
+ {
+ id = "icon",
+ image = widget_icon_dir .. "info-center.svg",
+ widget = wibox.widget.imagebox,
+ resize = true,
+ },
+ layout = wibox.layout.align.horizontal,
+ })
+
+ local widget_button = wibox.widget({
+ {
+ widget,
+ margins = dpi(7),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+ })
+
+ widget_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ local focused_screen = awful.screen.focused()
+ local theme_panel = settings[THEME]
+ focused_screen[theme_panel]:toggle()
+ end)))
+
+ return widget_button
+end
+
+return return_button
diff --git a/config/awesome/widget/info-center-toggle/settings/init.lua b/config/awesome/widget/info-center-toggle/settings/init.lua
new file mode 100644
index 000000000..bf3161c8e
--- /dev/null
+++ b/config/awesome/widget/info-center-toggle/settings/init.lua
@@ -0,0 +1,14 @@
+local awful = require("awful")
+local focused_screen = awful.screen.focused()
+---@type {floppy:string , default: string}
+local settings = {
+ floppy = "right_panel",
+ default = "info_center",
+}
+local mt = {
+ __index = function()
+ return settings.default
+ end,
+}
+setmetatable(settings, mt)
+return settings
diff --git a/config/awesome/widget/keyboard-layout/init.lua b/config/awesome/widget/keyboard-layout/init.lua
new file mode 100644
index 000000000..dde049e11
--- /dev/null
+++ b/config/awesome/widget/keyboard-layout/init.lua
@@ -0,0 +1,49 @@
+local capi = { awesome = awesome }
+local keyboardlayout = require("awful.widget.keyboardlayout")
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+
+Layouts_dto = {}
+Curr_layout_index = 1
+local w_keyboard_layout = wibox.widget({
+ widget = wibox.widget.textbox,
+ align = "center",
+ valign = "center",
+ font = "SF Pro Text Regular 10",
+ text = "",
+})
+local initialize_layouts = function()
+ awful.spawn.easy_async_with_shell("awesome-client 'return awesome.xkb_get_group_names()'", function(stdout)
+ if stdout == nil or stdout == "" then
+ gears.debug.print_error("no layouts detected")
+ return
+ end
+ local layout_table = keyboardlayout.get_groups_from_group_names(stdout)
+ for i, layout in ipairs(layout_table) do
+ Layouts_dto[i] = layout["file"]
+ end
+ w_keyboard_layout:set_text(Layouts_dto[Curr_layout_index])
+ end)
+ return Layouts_dto
+end
+initialize_layouts()
+
+
+local return_widget = function()
+ local update_layout = function()
+ if Curr_layout_index == #Layouts_dto then
+ Curr_layout_index = 0
+ end
+ Curr_layout_index = Curr_layout_index + 1
+ w_keyboard_layout:set_text(Layouts_dto[Curr_layout_index])
+
+ end
+
+ capi.awesome.connect_signal("xkb::group_changed", function()
+ update_layout()
+ end)
+ return w_keyboard_layout
+end
+
+return return_widget
diff --git a/config/awesome/floppy/widget/layoutbox/init.lua b/config/awesome/widget/layoutbox/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/layoutbox/init.lua
rename to config/awesome/widget/layoutbox/init.lua
diff --git a/config/awesome/widget/meters/entities/icon.lua b/config/awesome/widget/meters/entities/icon.lua
new file mode 100644
index 000000000..aa86b93e4
--- /dev/null
+++ b/config/awesome/widget/meters/entities/icon.lua
@@ -0,0 +1,52 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local watch = awful.widget.watch
+local dpi = beautiful.xresources.apply_dpi
+
+local clickable_container = require("widget.clickable-container")
+local icon = {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ image = _,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ nil,
+}
+local themes_without_icon_bg = {
+ floppy = true,
+}
+
+---@param image_path string
+---@param margins unknown
+---@param clickable boolean
+---@param bg boolean
+function icon:new(image_path, margins, clickable, bg)
+ self[2].image = image_path
+ if themes_without_icon_bg[THEME] then
+ return wibox.widget(self)
+ end
+ local image_with_margins = {
+ self,
+ margins = margins or dpi(5),
+ widget = wibox.container.margin,
+ }
+ if clickable then
+ image_with_margins = { image_with_margins, widget = clickable_container }
+ end
+ local image_with_bkg = {
+ image_with_margins,
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ }
+ return wibox.widget(image_with_bkg)
+end
+
+return icon
diff --git a/config/awesome/widget/meters/entities/meter.lua b/config/awesome/widget/meters/entities/meter.lua
new file mode 100644
index 000000000..ba46e2472
--- /dev/null
+++ b/config/awesome/widget/meters/entities/meter.lua
@@ -0,0 +1,34 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+
+---@param meter_name unknown
+---@param meter_icon unknown
+---@param meter_slider unknown
+local return_button = function(meter_name, meter_icon, meter_slider)
+ return wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ meter_name,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ forced_height = dpi(24),
+ forced_width = dpi(24),
+ meter_icon,
+ },
+ nil,
+ },
+ meter_slider,
+ },
+ })
+end
+return return_button
diff --git a/config/awesome/widget/meters/entities/name.lua b/config/awesome/widget/meters/entities/name.lua
new file mode 100644
index 000000000..9115a2a19
--- /dev/null
+++ b/config/awesome/widget/meters/entities/name.lua
@@ -0,0 +1,22 @@
+local wibox = require("wibox")
+
+local meter_name = {
+ text = "",
+ font = "Inter Bold 10",
+ align = "left",
+ widget = wibox.widget.textbox,
+}
+---@param text string
+---@param font string
+---@param align unknown
+function meter_name:new(text, font, align)
+ local o = {}
+ o.text = text or self.text
+ o.font = font or self.font
+ o.align = align or self.align
+ setmetatable(o, self)
+ self.__index = self
+ return wibox.widget(o)
+end
+
+return meter_name
diff --git a/config/awesome/widget/meters/entities/slider.lua b/config/awesome/widget/meters/entities/slider.lua
new file mode 100644
index 000000000..c170616a8
--- /dev/null
+++ b/config/awesome/widget/meters/entities/slider.lua
@@ -0,0 +1,42 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local watch = awful.widget.watch
+local slider = {
+ nil,
+ {
+ id = "",
+ max_value = 100,
+ value = 0,
+ forced_height = _,
+ color = "#f2f2f2EE",
+ background_color = "#ffffff20",
+ shape = gears.shape.rounded_rect,
+ widget = wibox.widget.progressbar,
+ },
+ nil,
+ expand = "none",
+ forced_height = dpi(36),
+ layout = wibox.layout.align.vertical,
+}
+local height_map = {
+ floppy = dpi(2),
+}
+---@see make a new slider with a funcution to update it
+---@param id string
+---@param update_scirpt string| table | nil
+---@param update_interval number | nil
+---@param update_callback function | nil
+function slider:new(id, update_scirpt, update_interval, update_callback)
+ self[2].id = id
+ self[2].forced_height = height_map[THEME] or dpi(24)
+ local sl = wibox.widget(self)
+ if update_scirpt then
+ watch(update_scirpt, update_interval, update_callback, sl)
+ end
+ return sl
+end
+
+return slider
diff --git a/config/awesome/widget/meters/init.lua b/config/awesome/widget/meters/init.lua
new file mode 100644
index 000000000..fa18336f5
--- /dev/null
+++ b/config/awesome/widget/meters/init.lua
@@ -0,0 +1,27 @@
+local icons = require("theme.icons")
+local slider_class = require("widget.meters.entities.slider")
+local icon_class = require("widget.meters.entities.icon")
+local name_class = require("widget.meters.entities.name")
+local meter = require("widget.meters.entities.meter")
+local meter_repo = require(... .. ".repo")
+
+-- 🔧 TODO: complete meter classes for refactoring
+local themes_without_icon_bg = {
+ floppy = true,
+}
+
+---@see creting a meter widget utilizing domains
+---@param args meter_args
+local meter_factory = function(args)
+ local meter_name = name_class:new(args.name, _, _)
+ local slider = slider_class:new(args.slider_id, args.update_script, args.update_interval, args.update_callback)
+ --- 🔧 change to more miningful icon
+ local meter_icon = icon_class:new(args.icon, args.icon_margins, args.clickable, not themes_without_icon_bg[THEME])
+ return meter(meter_name, meter_icon, slider)
+end
+---@param name "cpu" | "ram" | "temperature" | "disk" | "network"
+local create_widget = function(name)
+ local meter_args = meter_repo[name]
+ return meter_factory(meter_args)
+end
+return create_widget
diff --git a/config/awesome/widget/meters/repo/init.lua b/config/awesome/widget/meters/repo/init.lua
new file mode 100644
index 000000000..e5d1db20c
--- /dev/null
+++ b/config/awesome/widget/meters/repo/init.lua
@@ -0,0 +1,86 @@
+local icons = require("theme.icons")
+local error_handler = require("utilities.error-handler")
+---@class meter_args
+---@field name string
+---@field icon string
+---@field icon_margins string | nil
+---@field clickable boolean
+---@field slider_id string
+---@field update_script string |table | nil
+---@field update_interval number | nil
+---@field update_callback function | nil
+-- [[awk '/cpu / {usage=($2+$4)*100/($2+$4+$5)} END {print usage }' /proc/stat]]
+---@type meter_args
+local cpu = {
+ name = "CPU",
+ icon = icons.chart,
+ icon_margins = _,
+ clickable = false,
+ slider_id = "cpu_usage",
+ update_script = { "bash", "-c", [[ top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/"]] },
+ update_interval = 10,
+ update_callback = function(widget, stdout, err)
+ error_handler(err)
+ -- 🤔 this script needs to be subtracted
+ local percentage_num = 100 - tonumber(assert(stdout))
+ widget.cpu_usage:set_value(percentage_num)
+ end,
+}
+
+---@type meter_args
+local ram = {
+ name = "RAM",
+ icon = icons.memory,
+ icon_margins = _,
+ clickable = false,
+ slider_id = "ram_usage",
+ --script gets first 2 lines of file (MemTotal and MemFree) and calculates their ratio
+ -- 🔧 TODO: add "Mem" regex on awk
+ update_script = [[awk 'NR==1, NR==2 {if(NR==2)sum=$2/sum;else sum=$2;} END {print sum * 100}' /proc/meminfo]],
+ update_interval = 10,
+ update_callback = function(widget, stdout, err)
+ error_handler(err)
+ local value = tonumber(assert(stdout))
+ widget.ram_usage:set_value(value)
+ end,
+}
+---@type meter_args
+local temperature = {
+
+ name = "Temperature",
+ icon = icons.thermometer,
+ icon_margins = _,
+ clickable = false,
+ slider_id = "temperature_usage",
+ update_script = {
+ "bash",
+ "-c",
+ [[ sensors -j | jq '."coretemp-isa-0000"' | jq '."Package id 0"' | jq 'map(.)| .[0] / .[2] * 100' ]],
+ },
+ update_interval = 10,
+
+ update_callback = function(widget, stdout, err)
+ error_handler(err)
+ local value = tonumber(assert(stdout))
+ widget.temperature_usage:set_value(value)
+ end,
+}
+local hard_drive = {
+ name = "Hard Drive",
+ icon = icons.harddisk,
+ icon_margins = _,
+ clickable = false,
+ slider_id = "hard_drive_usage",
+ update_script = [[bash -c "df -h /home|grep '^/' | awk '{print $5}'"]],
+ update_interval = 10,
+ update_callback = function(widget, stdout, err)
+ error_handler(err)
+ local space_consumed = stdout:match("(%d+)")
+ local value = tonumber(assert(space_consumed))
+ widget.hard_drive_usage:set_value(value)
+ end,
+}
+
+---@type {cpu: meter_args, ram: meter_args, temperature: meter_args, disk: meter_args}
+local meter_map = { cpu = cpu, ram = ram, temperature = temperature, disk = hard_drive }
+return meter_map
diff --git a/config/awesome/linear/widget/mpd/content/album-cover.lua b/config/awesome/widget/mpd/content/album-cover.lua
similarity index 100%
rename from config/awesome/linear/widget/mpd/content/album-cover.lua
rename to config/awesome/widget/mpd/content/album-cover.lua
diff --git a/config/awesome/widget/mpd/content/directories/init.lua b/config/awesome/widget/mpd/content/directories/init.lua
new file mode 100644
index 000000000..a40536f74
--- /dev/null
+++ b/config/awesome/widget/mpd/content/directories/init.lua
@@ -0,0 +1,6 @@
+local gears = require("gears")
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/mpd/icons/"
+return {
+ icons = widget_icon_dir,
+}
diff --git a/config/awesome/widget/mpd/content/init.lua b/config/awesome/widget/mpd/content/init.lua
new file mode 100644
index 000000000..2dacfcf33
--- /dev/null
+++ b/config/awesome/widget/mpd/content/init.lua
@@ -0,0 +1,19 @@
+-- Return UI Table
+--- @class widget.mpd.content
+--- @field album_cover any cover widget
+--- @field song_info any info widget
+--- @field media_buttons any media widget
+--- @field track_time any time widget
+--- @field volume_slider any volume widget
+--- @field progress_bar any bar widget
+--- @type widget.mpd.content
+local temp = {
+ album_cover = require("widget.mpd.content.album-cover"),
+ song_info = require("widget.mpd.content.song-info"),
+ media_buttons = require("widget.mpd.content.media-buttons"),
+ track_time = require("widget.mpd.content.track-time"),
+ volume_slider = require("widget.mpd.content.volume-slider"),
+ progress_bar = require("widget.mpd.content.progress-bar"),
+}
+
+return temp
diff --git a/config/awesome/widget/mpd/content/media-buttons/button-images/button-image.lua b/config/awesome/widget/mpd/content/media-buttons/button-images/button-image.lua
new file mode 100644
index 000000000..9bf91cb97
--- /dev/null
+++ b/config/awesome/widget/mpd/content/media-buttons/button-images/button-image.lua
@@ -0,0 +1,26 @@
+local wibox = require("wibox")
+local dirs = require("widget.mpd.content.directories")
+-- return wibox.widget({
+-- {
+-- id = "play",
+-- image = dirs.icons .. "play.svg",
+-- resize = true,
+-- opacity = 0.8,
+-- widget = wibox.widget.imagebox,
+-- },
+-- layout = wibox.layout.align.horizontal,
+-- })
+---@class media_button_image
+---@field id string
+---@field image string
+---@field layout string
+
+---@type media_button_image
+local media_button_image = { { resize = true, opacity = 0.8, widget = wibox.widget.imagebox } }
+function media_button_image:new(id, image, layout)
+ self[1].id = id or ""
+ self[1].image = image or ""
+ self.layout = layout or wibox.layout.align.horizontal
+ return wibox.widget(self)
+end
+return media_button_image
diff --git a/config/awesome/widget/mpd/content/media-buttons/button-images/init.lua b/config/awesome/widget/mpd/content/media-buttons/button-images/init.lua
new file mode 100644
index 000000000..7ca5c000e
--- /dev/null
+++ b/config/awesome/widget/mpd/content/media-buttons/button-images/init.lua
@@ -0,0 +1,14 @@
+local path_to_file = ...
+local wibox = require("wibox")
+local dirs = require("widget.mpd.content.directories")
+local Media_button_image = require(path_to_file .. ".button-image")
+
+---@type {play_button_image: media_button_image, next_button_image: media_button_image, prev_button_image: media_button_image, rep_button_image: media_button_image, rand_button_image: media_button_image }
+local button_images = {
+ play_button_image = Media_button_image:new("play", dirs.icons .. "play.svg"),
+ next_button_image = Media_button_image:new("next", dirs.icons .. "next.svg"),
+ prev_button_image = Media_button_image:new("prev", dirs.icons .. "prev.svg"),
+ rep_button_image = Media_button_image:new("rep", dirs.icons .. "repeat-on.svg"),
+ rand_button_image = Media_button_image:new("rand", dirs.icons .. "random-on.svg"),
+}
+return button_images
diff --git a/config/awesome/widget/mpd/content/media-buttons/init.lua b/config/awesome/widget/mpd/content/media-buttons/init.lua
new file mode 100755
index 000000000..51eb8ac88
--- /dev/null
+++ b/config/awesome/widget/mpd/content/media-buttons/init.lua
@@ -0,0 +1,62 @@
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local gears_table = require("gears.table")
+local media_button_images = require(... .. ".button-images")
+local media_button = require("widget.mpd.content.media-buttons.media_button")
+local margins = {
+ -- surreal = dpi(8),
+ -- linear = dpi(8),
+}
+
+local media_buttons = gears_table.join({
+ play_button = media_button:new(media_button_images.play_button_image, margins[THEME]),
+ next_button = media_button:new(media_button_images.next_button_image, margins[THEME]),
+ prev_button = media_button:new(media_button_images.prev_button_image, margins[THEME]),
+ repeat_button = media_button:new(media_button_images.rep_button_image, nil),
+ random_button = media_button:new(media_button_images.rand_button_image, dpi(10)),
+}, media_button_images)
+
+media_buttons.navigate_buttons = wibox.widget({
+ expand = "none",
+ layout = wibox.layout.align.horizontal,
+ media_buttons.repeat_button,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ media_buttons.prev_button,
+ media_buttons.play_button,
+ media_buttons.next_button,
+ forced_height = dpi(35),
+ },
+ media_buttons.random_button,
+ forced_height = dpi(35),
+})
+
+-- 🔧 TODO: add correct map for themes
+local theme_map = {
+ floppy = media_buttons,
+ gnawesome = media_buttons,
+ default = gears_table.join({
+ play_button = media_buttons.play_button,
+ next_button = media_buttons.next_button,
+ prev_button = media_buttons.prev_button,
+ -- navigate_buttons = media_buttons.navigate_buttons,
+ }, media_button_images),
+}
+theme_map.default.navigate_buttons = wibox.widget({
+ layout = wibox.layout.fixed.horizontal,
+ media_buttons.prev_button,
+ media_buttons.play_button,
+ media_buttons.next_button,
+ -- forced_height = dpi(35),
+})
+
+local mt = {
+ __index = function()
+ return theme_map.default
+ end,
+}
+setmetatable(theme_map, mt)
+
+-- pl.dump(theme_map[THEME].navigate_buttons)
+return theme_map[THEME]
diff --git a/config/awesome/widget/mpd/content/media-buttons/media_button.lua b/config/awesome/widget/mpd/content/media-buttons/media_button.lua
new file mode 100644
index 000000000..366c08111
--- /dev/null
+++ b/config/awesome/widget/mpd/content/media-buttons/media_button.lua
@@ -0,0 +1,40 @@
+local wibox = require("wibox")
+local dirs = require("widget.mpd.content.directories")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+---@class media_button
+
+local button_image = {
+ {
+ -- button image goes here
+ margins = dpi(9),
+ widget = wibox.container.margin,
+ },
+ halign = "center",
+ widget = wibox.container.place,
+ forced_width = dpi(32),
+ forced_height = dpi(32),
+}
+---@type media_button
+local media_button = {
+ {
+ button_image,
+ widget = clickable_container,
+ },
+ bg = beautiful.transparent,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+}
+---@param icon media_button_image
+---@param margins any
+function media_button:new(icon, margins)
+ self[1][1][1].margins = margins or dpi(7)
+ table.insert(self[1][1][1], 1, icon)
+ return wibox.widget(self)
+end
+return media_button
diff --git a/config/awesome/widget/mpd/content/progress-bar.lua b/config/awesome/widget/mpd/content/progress-bar.lua
new file mode 100755
index 000000000..65bb74d99
--- /dev/null
+++ b/config/awesome/widget/mpd/content/progress-bar.lua
@@ -0,0 +1,21 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+
+local progressbar = wibox.widget({
+ {
+ id = "music_bar",
+ max_value = 100,
+ forced_height = dpi(3),
+ forced_width = dpi(100),
+ color = "#ffffff",
+ background_color = "#ffffff20",
+ shape = gears.shape.rounded_bar,
+ widget = wibox.widget.progressbar,
+ },
+ layout = wibox.layout.stack,
+})
+
+return progressbar
diff --git a/config/awesome/widget/mpd/content/song-info.lua b/config/awesome/widget/mpd/content/song-info.lua
new file mode 100755
index 000000000..52ecc47af
--- /dev/null
+++ b/config/awesome/widget/mpd/content/song-info.lua
@@ -0,0 +1,65 @@
+local wibox = require("wibox")
+local dpi = require("beautiful").xresources.apply_dpi
+
+local song_info = {}
+
+song_info.music_title = wibox.widget({
+ layout = wibox.layout.fixed.horizontal,
+ expand = "none",
+ {
+ {
+ id = "title",
+ text = "title",
+ font = "Inter Bold 10",
+ align = "left",
+ valign = "center",
+ ellipsize = "end",
+ widget = wibox.widget.textbox,
+ },
+ id = "scroll_container",
+ max_size = 150,
+ speed = 75,
+ expand = true,
+ direction = "h",
+ step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth,
+ fps = 60,
+ layout = wibox.container.scroll.horizontal,
+ },
+})
+
+song_info.music_artist = wibox.widget({
+ layout = wibox.layout.fixed.horizontal,
+ expand = "none",
+ {
+ {
+ id = "artist",
+ text = "artist",
+ font = "Inter Regular 10",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ },
+ id = "scroll_container",
+ max_size = 150,
+ speed = 75,
+ expand = true,
+ direction = "h",
+ step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth,
+ fps = 60,
+ layout = wibox.container.scroll.horizontal,
+ },
+})
+
+song_info.music_info = wibox.widget({
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.fixed.vertical,
+ song_info.music_title,
+ song_info.music_artist,
+ },
+ nil,
+})
+
+return song_info
diff --git a/config/awesome/widget/mpd/content/track-time.lua b/config/awesome/widget/mpd/content/track-time.lua
new file mode 100755
index 000000000..9bf735091
--- /dev/null
+++ b/config/awesome/widget/mpd/content/track-time.lua
@@ -0,0 +1,37 @@
+local beautiful = require("beautiful")
+local gears = require("gears")
+local awful = require("awful")
+local wibox = require("wibox")
+local dpi = beautiful.xresources.apply_dpi
+
+local time_info = {}
+
+time_info.time_status = wibox.widget({
+ id = "statustime",
+ text = "00:00",
+ font = "Inter 8",
+ align = "center",
+ valign = "center",
+ forced_height = dpi(10),
+ widget = wibox.widget.textbox,
+})
+
+time_info.time_duration = wibox.widget({
+ id = "durationtime",
+ text = "00:00",
+ font = "Inter 8",
+ align = "center",
+ valign = "center",
+ forced_height = dpi(10),
+ widget = wibox.widget.textbox,
+})
+
+time_info.time_track = wibox.widget({
+ expand = "none",
+ layout = wibox.layout.align.horizontal,
+ time_info.time_status,
+ nil,
+ time_info.time_duration,
+})
+
+return time_info
diff --git a/config/awesome/floppy/widget/mpd/content/volume-slider.lua b/config/awesome/widget/mpd/content/volume-slider.lua
similarity index 100%
rename from config/awesome/floppy/widget/mpd/content/volume-slider.lua
rename to config/awesome/widget/mpd/content/volume-slider.lua
diff --git a/config/awesome/floppy/widget/mpd/icons/music.svg b/config/awesome/widget/mpd/icons/music.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/music.svg
rename to config/awesome/widget/mpd/icons/music.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/next.svg b/config/awesome/widget/mpd/icons/next.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/next.svg
rename to config/awesome/widget/mpd/icons/next.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/pause.svg b/config/awesome/widget/mpd/icons/pause.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/pause.svg
rename to config/awesome/widget/mpd/icons/pause.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/play.svg b/config/awesome/widget/mpd/icons/play.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/play.svg
rename to config/awesome/widget/mpd/icons/play.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/prev.svg b/config/awesome/widget/mpd/icons/prev.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/prev.svg
rename to config/awesome/widget/mpd/icons/prev.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/random-off.svg b/config/awesome/widget/mpd/icons/random-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/random-off.svg
rename to config/awesome/widget/mpd/icons/random-off.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/random-on.svg b/config/awesome/widget/mpd/icons/random-on.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/random-on.svg
rename to config/awesome/widget/mpd/icons/random-on.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/repeat-off.svg b/config/awesome/widget/mpd/icons/repeat-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/repeat-off.svg
rename to config/awesome/widget/mpd/icons/repeat-off.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/repeat-on.svg b/config/awesome/widget/mpd/icons/repeat-on.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/repeat-on.svg
rename to config/awesome/widget/mpd/icons/repeat-on.svg
diff --git a/config/awesome/floppy/widget/mpd/icons/vinyl.svg b/config/awesome/widget/mpd/icons/vinyl.svg
similarity index 100%
rename from config/awesome/floppy/widget/mpd/icons/vinyl.svg
rename to config/awesome/widget/mpd/icons/vinyl.svg
diff --git a/config/awesome/widget/mpd/init.lua b/config/awesome/widget/mpd/init.lua
new file mode 100755
index 000000000..4ad1bb73e
--- /dev/null
+++ b/config/awesome/widget/mpd/init.lua
@@ -0,0 +1,37 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local ui_content = require("widget.mpd.content")
+local album = ui_content.album_cover
+local song_info = ui_content.song_info.music_info
+local media_buttons = ui_content.media_buttons.navigate_buttons
+local top_panel_button = require("widget.mpd.top-panel-widget")
+
+require("widget.mpd.mpd-music-updater")
+
+-- 🔧 TODO: fix music box widget
+local music_box = wibox.widget({
+ layout = wibox.layout.align.vertical,
+ forced_height = dpi(46),
+ {
+ layout = wibox.layout.fixed.horizontal,
+ halign = "center",
+ spacing = dpi(10),
+ album,
+ song_info,
+ media_buttons,
+ },
+})
+
+---@type theme_dictionary
+local theme_map = {
+ surreal = music_box,
+ linear = music_box,
+ floppy = top_panel_button,
+ gnawesome = top_panel_button,
+}
+
+-- Mpd widget updater
+return theme_map[THEME]
diff --git a/config/awesome/widget/mpd/mpd-music-updater.lua b/config/awesome/widget/mpd/mpd-music-updater.lua
new file mode 100755
index 000000000..4aa8086cb
--- /dev/null
+++ b/config/awesome/widget/mpd/mpd-music-updater.lua
@@ -0,0 +1,228 @@
+local awful = require("awful")
+local gears = require("gears")
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/mpd/icons/"
+local ui_content = require("widget.mpd.content")
+local album_cover = ui_content.album_cover
+local song_info = ui_content.song_info
+local vol_slider = ui_content.volume_slider
+local media_buttons = ui_content.media_buttons
+
+local update_cover = function()
+ local extract_script = [=[
+ MUSIC_DIR="$(xdg-user-dir MUSIC)"
+ TMP_DIR="/tmp/awesomewm/${USER}/"
+ TMP_COVER_PATH=${TMP_DIR}"cover.jpg"
+ TMP_SONG="${TMP_DIR}current-song"
+
+ CHECK_EXIFTOOL=$(command -v exiftool)
+
+ if [ ! -d "${TMP_DIR}" ]; then
+ mkdir -p "${TMP_DIR}";
+ fi
+
+ if [ ! -z "$CHECK_EXIFTOOL" ]; then
+
+ SONG="$MUSIC_DIR/$(mpc -p 6600 --format "%file%" current)"
+ PICTURE_TAG="-Picture"
+
+ if [[ "$SONG" == *".m4a" ]]; then
+ PICTURE_TAG="-CoverArt"
+ fi
+
+ # Extract album cover using perl-image-exiftool
+ exiftool -b "$PICTURE_TAG" "$SONG" > "$TMP_COVER_PATH"
+
+ else
+
+ #Extract image using ffmpeg
+ cp "$MUSIC_DIR/$(mpc --format %file% current)" "$TMP_SONG"
+
+ ffmpeg \
+ -hide_banner \
+ -loglevel 0 \
+ -y \
+ -i "$TMP_SONG" \
+ -vf scale=300:-1 \
+ "$TMP_COVER_PATH" > /dev/null 2>&1
+
+ rm "$TMP_SONG"
+ fi
+
+ img_data=$(identify $TMP_COVER_PATH 2>&1)
+
+ # Delete the cover.jpg if it's not a valid image
+ if [[ $img_data == *"insufficient"* ]]; then
+ rm $TMP_COVER_PATH
+ fi
+
+ if [ -f $TMP_COVER_PATH ]; then
+ echo $TMP_COVER_PATH;
+ fi
+ ]=]
+
+ awful.spawn.easy_async_with_shell(extract_script, function(stdout)
+ local album_icon = widget_icon_dir .. "vinyl" .. ".svg"
+ if not (stdout == nil or stdout == "") then
+ album_icon = stdout:gsub("%\n", "")
+ end
+ album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
+ album_cover:emit_signal("widget::redraw_needed")
+ album_cover:emit_signal("widget::layout_changed")
+ collectgarbage("collect")
+ end)
+end
+
+local update_file = function()
+ awful.spawn.easy_async_with_shell(
+ [[
+ mpc -f %file% current
+ ]],
+ function(stdout)
+ file_name = stdout:gsub("%\n", "")
+ end
+ )
+ return file_name
+end
+
+local update_title = function()
+ awful.spawn.easy_async_with_shell(
+ [[
+ mpc -f %title% current
+ ]],
+ function(stdout)
+ -- Remove new lines
+ local title = stdout:gsub("%\n", "")
+ local title_widget = song_info.music_title
+ local title_text = song_info.music_title:get_children_by_id("title")[1]
+ -- Make sure it's not null
+ if not (title == nil or title == "") then
+ title_text:set_text(title)
+ else
+ awful.spawn.easy_async_with_shell(
+ [[
+ mpc -f %file% current
+ ]],
+ function(stdout)
+ if not (stdout == nil or stdout == "") then
+ file_name = stdout:gsub("%\n", "")
+ file_name = file_name:sub(1, title:len() - 5) .. ""
+ title_text:set_text(file_name)
+ else
+ -- Set title
+ title_text:set_text("Play some music!")
+ end
+ title_widget:emit_signal("widget::redraw_needed")
+ title_widget:emit_signal("widget::layout_changed")
+ end
+ )
+ end
+
+ title_widget:emit_signal("widget::redraw_needed")
+ title_widget:emit_signal("widget::layout_changed")
+ collectgarbage("collect")
+ end
+ )
+end
+
+local update_artist = function()
+ awful.spawn.easy_async_with_shell(
+ [[
+ mpc -f %artist% current
+ ]],
+ function(stdout)
+ -- Remove new lines
+ local artist = stdout:gsub("%\n", "")
+ local artist_widget = song_info.music_artist
+ local artist_text = artist_widget:get_children_by_id("artist")[1]
+ if not (artist == nil or artist == "") then
+ artist_text:set_text(artist)
+ else
+ awful.spawn.easy_async_with_shell(
+ [[
+ mpc -f %file% current
+ ]],
+ function(stdout)
+ if not (stdout == nil or stdout == "") then
+ artist_text:set_text("unknown artist")
+ else
+ artist_text:set_text("or play some porn?")
+ end
+ artist_widget:emit_signal("widget::redraw_needed")
+ artist_widget:emit_signal("widget::layout_changed")
+ end
+ )
+ end
+
+ artist_widget:emit_signal("widget::redraw_needed")
+ artist_widget:emit_signal("widget::layout_changed")
+ collectgarbage("collect")
+ end
+ )
+end
+
+local check_if_playing = function()
+ awful.spawn.easy_async_with_shell(
+ [[
+ mpc status | awk 'NR==2' | grep -o playing
+ ]],
+ function(stdout)
+ print(media_buttons.play_button_image)
+ local play_button_img = media_buttons.play_button_image.play
+ if not (stdout == nil or stdout == "") then
+ play_button_img:set_image(widget_icon_dir .. "pause.svg")
+ else
+ play_button_img:set_image(widget_icon_dir .. "play.svg")
+ end
+ end
+ )
+end
+
+local update_all_content = function()
+ update_title()
+ update_artist()
+ update_cover()
+ check_if_playing()
+end
+
+local mpd_startup = [[
+# Let's make sure that MPD is running.
+if [ -z $(pgrep mpd) ]; then mpd; fi
+]]
+
+local mpd_change_event_listener = [[
+sh -c '
+mpc idleloop player
+'
+]]
+
+local kill_mpd_change_event_listener = [[sh -c "
+ps x |
+grep 'mpc idleloop player' |
+grep -v grep |
+awk '{print $1}' |
+xargs kill
+"]]
+
+awful.spawn.easy_async_with_shell(mpd_startup, function()
+ awful.spawn.easy_async_with_shell(kill_mpd_change_event_listener, function()
+ update_all_content()
+ awful.spawn.with_line_callback(mpd_change_event_listener, {
+ stdout = function(line)
+ update_all_content()
+ end,
+ })
+ end)
+end)
+
+media_buttons.play_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ awful.spawn.with_shell("mpc toggle")
+end)))
+
+media_buttons.next_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ awful.spawn.with_shell("mpc next")
+end)))
+
+media_buttons.prev_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ awful.spawn.with_shell("mpc prev")
+end)))
diff --git a/config/awesome/widget/mpd/music-box.lua b/config/awesome/widget/mpd/music-box.lua
new file mode 100755
index 000000000..608c2f532
--- /dev/null
+++ b/config/awesome/widget/mpd/music-box.lua
@@ -0,0 +1,135 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local music_func = {}
+
+screen.connect_signal("request::desktop_decoration", function(s)
+ -- Set music box geometry
+ local music_box_margin = dpi(5)
+ local music_box_height = dpi(375)
+ local music_box_width = dpi(260)
+ local music_box_x = nil
+
+ s.musicpop = awful.popup({
+ widget = {
+ -- Removing this block will cause an error...
+ },
+ ontop = true,
+ visible = false,
+ type = "dock",
+ screen = s,
+ width = music_box_width,
+ height = music_box_height,
+ maximum_width = music_box_width,
+ maximum_height = music_box_height,
+ offset = dpi(5),
+ shape = gears.shape.rectangle,
+ bg = beautiful.transparent,
+ preferred_anchors = { "middle", "back", "front" },
+ preferred_positions = { "left", "right", "top", "bottom" },
+ })
+
+ ---@type widget.mpd.content
+ local ui_content = require("widget.mpd.content")
+
+ s.album = ui_content.album_cover
+ s.progress_bar = ui_content.progress_bar
+ s.time_track = ui_content.track_time.time_track
+ s.song_info = ui_content.song_info.music_info
+ s.media_buttons = ui_content.media_buttons.navigate_buttons
+ s.volume_slider = ui_content.volume_slider.vol_slider
+
+ s.musicpop:setup({
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ expand = "none",
+ spacing = dpi(8),
+ {
+ s.album,
+ bottom = dpi(5),
+ widget = wibox.container.margin,
+ },
+ {
+ layout = wibox.layout.fixed.vertical,
+ {
+ spacing = dpi(4),
+ layout = wibox.layout.fixed.vertical,
+ s.progress_bar,
+ s.time_track,
+ },
+ s.song_info,
+ s.media_buttons,
+ s.volume_slider,
+ },
+ },
+ top = dpi(15),
+ left = dpi(15),
+ right = dpi(15),
+ widget = wibox.container.margin,
+ },
+ bg = beautiful.background,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background(),
+ })
+
+ s.backdrop_music = wibox({
+ ontop = true,
+ visible = false,
+ screen = s,
+ type = "utility",
+ input_passthrough = false,
+ bg = beautiful.transparent,
+ x = s.geometry.x,
+ y = s.geometry.y,
+ width = s.geometry.width,
+ height = s.geometry.height,
+ })
+
+ local toggle_music_box = function(type)
+ local focused = awful.screen.focused()
+ local music_box = focused.musicpop
+ local music_backdrop = focused.backdrop_music
+
+ if music_box.visible then
+ music_backdrop.visible = not music_backdrop.visible
+ music_box.visible = not music_box.visible
+ else
+ if type == "keyboard" then
+ music_backdrop.visible = true
+ music_box.visible = true
+ awful.placement.top_right(music_box, {
+ margins = {
+ top = dpi(5),
+ right = dpi(music_box_x or 5),
+ },
+ honor_workarea = true,
+ })
+ else
+ local widget_button = mouse.current_widget_geometry
+
+ music_backdrop.visible = true
+ music_box:move_next_to(widget_button)
+ music_box_x = (focused.geometry.width - music_box.x) - music_box_width
+ end
+ end
+ end
+
+ awesome.connect_signal("widget::music", function(type)
+ toggle_music_box(type)
+ end)
+
+ s.backdrop_music:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ toggle_music_box()
+ end)))
+end)
+
+music_func.toggle_music_box = toggle_music_box
+
+local mpd_updater = require("widget.mpd.mpd-music-updater")
+
+return music_func
diff --git a/config/awesome/floppy/widget/mpd/spotify-music-updater.lua b/config/awesome/widget/mpd/spotify-music-updater.lua
similarity index 100%
rename from config/awesome/floppy/widget/mpd/spotify-music-updater.lua
rename to config/awesome/widget/mpd/spotify-music-updater.lua
diff --git a/config/awesome/widget/mpd/top-panel-widget.lua b/config/awesome/widget/mpd/top-panel-widget.lua
new file mode 100644
index 000000000..ed829b837
--- /dev/null
+++ b/config/awesome/widget/mpd/top-panel-widget.lua
@@ -0,0 +1,51 @@
+local gears = require("gears")
+local awful = require("awful")
+local wibox = require("wibox")
+local dpi = require("beautiful").xresources.apply_dpi
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/mpd/icons/"
+local clickable_container = require("widget.clickable-container")
+local music_box = require("widget.mpd.music-box")
+local toggle_music_box = music_box.toggle_music_box
+
+local widget = wibox.widget({
+ {
+ id = "icon",
+ image = widget_icon_dir .. "music.svg",
+ widget = wibox.widget.imagebox,
+ resize = true,
+ },
+ layout = wibox.layout.align.horizontal,
+})
+
+local widget_button = wibox.widget({
+ {
+ widget,
+ margins = dpi(7),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+})
+
+local music_tooltip = awful.tooltip({
+ objects = { widget_button },
+ text = "None",
+ mode = "outside",
+ margin_leftright = dpi(8),
+ margin_topbottom = dpi(8),
+ align = "right",
+ preferred_positions = { "right", "left", "top", "bottom" },
+})
+
+widget_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ music_tooltip.visible = false
+ awesome.emit_signal("widget::music", "mouse")
+end)))
+
+widget_button:connect_signal("mouse::enter", function()
+ awful.spawn.easy_async_with_shell("mpc status", function(stdout)
+ music_tooltip.text = string.gsub(stdout, "\n$", "")
+ end)
+end)
+
+return widget_button
diff --git a/config/awesome/floppy/widget/airplane-mode/icons/airplane-mode-off.svg b/config/awesome/widget/network/icons/airplane-mode-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/airplane-mode/icons/airplane-mode-off.svg
rename to config/awesome/widget/network/icons/airplane-mode-off.svg
diff --git a/config/awesome/floppy/widget/airplane-mode/icons/airplane-mode.svg b/config/awesome/widget/network/icons/airplane-mode.svg
similarity index 100%
rename from config/awesome/floppy/widget/airplane-mode/icons/airplane-mode.svg
rename to config/awesome/widget/network/icons/airplane-mode.svg
diff --git a/config/awesome/floppy/widget/bluetooth/icons/loading.svg b/config/awesome/widget/network/icons/loading.svg
old mode 100644
new mode 100755
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth/icons/loading.svg
rename to config/awesome/widget/network/icons/loading.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-off.svg b/config/awesome/widget/network/icons/wifi-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-off.svg
rename to config/awesome/widget/network/icons/wifi-off.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-1-alert.svg b/config/awesome/widget/network/icons/wifi-strength-1-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-1-alert.svg
rename to config/awesome/widget/network/icons/wifi-strength-1-alert.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-1-lock.svg b/config/awesome/widget/network/icons/wifi-strength-1-lock.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-1-lock.svg
rename to config/awesome/widget/network/icons/wifi-strength-1-lock.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-1.svg b/config/awesome/widget/network/icons/wifi-strength-1.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-1.svg
rename to config/awesome/widget/network/icons/wifi-strength-1.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-2-alert.svg b/config/awesome/widget/network/icons/wifi-strength-2-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-2-alert.svg
rename to config/awesome/widget/network/icons/wifi-strength-2-alert.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-2-lock.svg b/config/awesome/widget/network/icons/wifi-strength-2-lock.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-2-lock.svg
rename to config/awesome/widget/network/icons/wifi-strength-2-lock.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-2.svg b/config/awesome/widget/network/icons/wifi-strength-2.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-2.svg
rename to config/awesome/widget/network/icons/wifi-strength-2.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-3-alert.svg b/config/awesome/widget/network/icons/wifi-strength-3-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-3-alert.svg
rename to config/awesome/widget/network/icons/wifi-strength-3-alert.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-3-lock.svg b/config/awesome/widget/network/icons/wifi-strength-3-lock.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-3-lock.svg
rename to config/awesome/widget/network/icons/wifi-strength-3-lock.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-3.svg b/config/awesome/widget/network/icons/wifi-strength-3.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-3.svg
rename to config/awesome/widget/network/icons/wifi-strength-3.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-4-alert.svg b/config/awesome/widget/network/icons/wifi-strength-4-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-4-alert.svg
rename to config/awesome/widget/network/icons/wifi-strength-4-alert.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-4-lock.svg b/config/awesome/widget/network/icons/wifi-strength-4-lock.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-4-lock.svg
rename to config/awesome/widget/network/icons/wifi-strength-4-lock.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-4.svg b/config/awesome/widget/network/icons/wifi-strength-4.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-4.svg
rename to config/awesome/widget/network/icons/wifi-strength-4.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-alert-outline.svg b/config/awesome/widget/network/icons/wifi-strength-alert-outline.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-alert-outline.svg
rename to config/awesome/widget/network/icons/wifi-strength-alert-outline.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-alert.svg b/config/awesome/widget/network/icons/wifi-strength-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-alert.svg
rename to config/awesome/widget/network/icons/wifi-strength-alert.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-empty.svg b/config/awesome/widget/network/icons/wifi-strength-empty.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-empty.svg
rename to config/awesome/widget/network/icons/wifi-strength-empty.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-lock-outline.svg b/config/awesome/widget/network/icons/wifi-strength-lock-outline.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-lock-outline.svg
rename to config/awesome/widget/network/icons/wifi-strength-lock-outline.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-off-outline.svg b/config/awesome/widget/network/icons/wifi-strength-off-outline.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-off-outline.svg
rename to config/awesome/widget/network/icons/wifi-strength-off-outline.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-off.svg b/config/awesome/widget/network/icons/wifi-strength-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-off.svg
rename to config/awesome/widget/network/icons/wifi-strength-off.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi-strength-outline.svg b/config/awesome/widget/network/icons/wifi-strength-outline.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi-strength-outline.svg
rename to config/awesome/widget/network/icons/wifi-strength-outline.svg
diff --git a/config/awesome/floppy/widget/network/icons/wifi.svg b/config/awesome/widget/network/icons/wifi.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wifi.svg
rename to config/awesome/widget/network/icons/wifi.svg
diff --git a/config/awesome/floppy/widget/network/icons/wired-alert.svg b/config/awesome/widget/network/icons/wired-alert.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wired-alert.svg
rename to config/awesome/widget/network/icons/wired-alert.svg
diff --git a/config/awesome/floppy/widget/network/icons/wired-off.svg b/config/awesome/widget/network/icons/wired-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wired-off.svg
rename to config/awesome/widget/network/icons/wired-off.svg
diff --git a/config/awesome/floppy/widget/network/icons/wired.svg b/config/awesome/widget/network/icons/wired.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/wired.svg
rename to config/awesome/widget/network/icons/wired.svg
diff --git a/config/awesome/floppy/widget/network/init.lua b/config/awesome/widget/network/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/network/init.lua
rename to config/awesome/widget/network/init.lua
diff --git a/config/awesome/widget/notif-center/build-notifbox/empty-notifbox.lua b/config/awesome/widget/notif-center/build-notifbox/empty-notifbox.lua
new file mode 100644
index 000000000..163af73e9
--- /dev/null
+++ b/config/awesome/widget/notif-center/build-notifbox/empty-notifbox.lua
@@ -0,0 +1,63 @@
+-- This returns the "Wow, such empty." message.
+
+local wibox = require("wibox")
+
+local dpi = require("beautiful").xresources.apply_dpi
+
+local directories = require("module.directories")
+local widget_icon_dir = directories.config .. "widget/notif-center/icons/"
+widget_icon_dir = tostring(widget_icon_dir)
+
+local empty_notifbox = wibox.widget({
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ {
+ expand = "none",
+ layout = wibox.layout.align.horizontal,
+ nil,
+ {
+ image = widget_icon_dir .. "empty-notification" .. ".svg",
+ resize = true,
+ forced_height = dpi(35),
+ forced_width = dpi(35),
+ widget = wibox.widget.imagebox,
+ },
+ nil,
+ },
+ {
+ text = "Wow, such empty.",
+ font = "Inter Bold 14",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ },
+ {
+ text = "Come back later.",
+ font = "Inter Regular 10",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ },
+ },
+ margins = dpi(20),
+ widget = wibox.container.margin,
+})
+
+local separator_for_empty_msg = wibox.widget({
+ orientation = "vertical",
+ opacity = 0.0,
+ widget = wibox.widget.separator,
+})
+
+-- Make empty_notifbox center
+local centered_empty_notifbox = wibox.widget({
+ layout = wibox.layout.align.vertical,
+ forced_height = dpi(150),
+ expand = "none",
+ separator_for_empty_msg,
+ empty_notifbox,
+ separator_for_empty_msg,
+})
+
+return centered_empty_notifbox
diff --git a/config/awesome/widget/notif-center/build-notifbox/init.lua b/config/awesome/widget/notif-center/build-notifbox/init.lua
new file mode 100644
index 000000000..e2d61502a
--- /dev/null
+++ b/config/awesome/widget/notif-center/build-notifbox/init.lua
@@ -0,0 +1,79 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local naughty = require("naughty")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/notif-center/icons/"
+
+local notifbox_box = require("widget.notif-center.build-notifbox.notifbox-builder")
+
+local empty_notifbox = require("widget.notif-center.build-notifbox.empty-notifbox")
+local notifbox_scroller = require("widget.notif-center.build-notifbox.notifbox-scroller")
+
+local notif_core = {}
+
+notif_core.remove_notifbox_empty = true
+
+notif_core.notifbox_layout = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ empty_notifbox,
+})
+
+notifbox_scroller(notif_core.notifbox_layout)
+
+notif_core.reset_notifbox_layout = function()
+ notif_core.notifbox_layout:reset()
+ notif_core.notifbox_layout:insert(1, empty_notifbox)
+ notif_core.remove_notifbox_empty = true
+end
+
+local notifbox_add = function(n, notif_icon, notifbox_color)
+ if #notif_core.notifbox_layout.children == 1 and notif_core.remove_notifbox_empty then
+ notif_core.notifbox_layout:reset(notif_core.notifbox_layout)
+ notif_core.remove_notifbox_empty = false
+ end
+
+ notif_core.notifbox_layout:insert(1, notifbox_box(n, notif_icon, n.title, n.message, n.app_name, notifbox_color))
+end
+
+local notifbox_add_expired = function(n, notif_icon, notifbox_color)
+ n:connect_signal("destroyed", function(self, reason, keep_visble)
+ if reason == 1 then
+ notifbox_add(n, notif_icon, notifbox_color)
+ end
+ end)
+end
+
+naughty.connect_signal("request::display", function(n)
+ local notifbox_color = beautiful.transparent
+ if n.urgency == "critical" then
+ notifbox_color = n.bg .. "66"
+ end
+
+ local notif_icon = n.icon or n.app_icon
+ if not notif_icon then
+ notif_icon = widget_icon_dir .. "new-notif" .. ".svg"
+ end
+
+ notifbox_add_expired(n, notif_icon, notifbox_color)
+end)
+
+-- make this work with signal
+local notifbox_delete = function(notifbox)
+ notif_core.notifbox_layout:remove_widgets(notifbox, true)
+end
+
+awesome.connect_signal("notifbox::delete", function(notifbox)
+ if #notif_core.notifbox_layout.children == 1 then
+ notif_core.reset_notifbox_layout()
+ else
+ notifbox_delete(notifbox)
+ end
+ collectgarbage("collect")
+end)
+
+return notif_core
diff --git a/config/awesome/widget/notif-center/build-notifbox/notifbox-builder.lua b/config/awesome/widget/notif-center/build-notifbox/notifbox-builder.lua
new file mode 100644
index 000000000..999ed69ba
--- /dev/null
+++ b/config/awesome/widget/notif-center/build-notifbox/notifbox-builder.lua
@@ -0,0 +1,138 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+
+local dpi = beautiful.xresources.apply_dpi
+local builder = require("widget.notif-center.build-notifbox.notifbox-ui-elements")
+
+local return_date_time = function(format)
+ return os.date(format)
+end
+
+local parse_to_seconds = function(time)
+ local hourInSec = tonumber(string.sub(time, 1, 2)) * 3600
+ local minInSec = tonumber(string.sub(time, 4, 5)) * 60
+ local getSec = tonumber(string.sub(time, 7, 8))
+ return (hourInSec + minInSec + getSec)
+end
+
+notifbox_box = function(notif, icon, title, message, app, bgcolor)
+ local time_of_pop = return_date_time("%H:%M:%S")
+ local exact_time = return_date_time("%I:%M %p")
+ local exact_date_time = return_date_time("%b %d, %I:%M %p")
+
+ local notifbox_timepop = wibox.widget({
+ id = "time_pop",
+ markup = nil,
+ font = "Inter Regular 10",
+ align = "left",
+ valign = "center",
+ visible = true,
+ widget = wibox.widget.textbox,
+ })
+
+ local notifbox_dismiss = builder.notifbox_dismiss()
+
+ local time_of_popup = gears.timer({
+ timeout = 60,
+ call_now = true,
+ autostart = true,
+ callback = function()
+ local time_difference = nil
+
+ time_difference = parse_to_seconds(return_date_time("%H:%M:%S")) - parse_to_seconds(time_of_pop)
+ time_difference = tonumber(time_difference)
+
+ if time_difference < 60 then
+ notifbox_timepop:set_markup("now")
+ elseif time_difference >= 60 and time_difference < 3600 then
+ local time_in_minutes = math.floor(time_difference / 60)
+ notifbox_timepop:set_markup(time_in_minutes .. "m ago")
+ elseif time_difference >= 3600 and time_difference < 86400 then
+ notifbox_timepop:set_markup(exact_time)
+ elseif time_difference >= 86400 then
+ notifbox_timepop:set_markup(exact_date_time)
+ return false
+ end
+
+ collectgarbage("collect")
+ end,
+ })
+
+ local notifbox_template = wibox.widget({
+ id = "notifbox_template",
+ expand = "none",
+ {
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ {
+ expand = "none",
+ layout = wibox.layout.align.horizontal,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ builder.notifbox_icon(icon),
+ builder.notifbox_appname(app),
+ },
+ nil,
+ {
+ notifbox_timepop,
+ notifbox_dismiss,
+ layout = wibox.layout.fixed.horizontal,
+ },
+ },
+ {
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ {
+ builder.notifbox_title(title),
+ builder.notifbox_message(message),
+ layout = wibox.layout.fixed.vertical,
+ },
+ builder.notifbox_actions(notif),
+ },
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ },
+ bg = bgcolor,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+
+ -- Put the generated template to a container
+ local notifbox = wibox.widget({
+ notifbox_template,
+ shape = function(cr, width, height)
+ gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+
+ notifbox:buttons(awful.util.table.join(awful.button({}, 1, function()
+ awesome.emit_signal("notifbox::delete", notifbox)
+ end)))
+
+ -- Add hover, and mouse leave events
+ notifbox_template:connect_signal("mouse::enter", function()
+ notifbox.bg = beautiful.groups_bg
+ notifbox_timepop.visible = false
+ notifbox_dismiss.visible = true
+ end)
+
+ notifbox_template:connect_signal("mouse::leave", function()
+ notifbox.bg = beautiful.tranparent
+ notifbox_timepop.visible = true
+ notifbox_dismiss.visible = false
+ end)
+
+ collectgarbage("collect")
+
+ return notifbox
+end
+
+return notifbox_box
diff --git a/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-geometry.lua b/config/awesome/widget/notif-center/build-notifbox/notifbox-geometry.lua
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-geometry.lua
rename to config/awesome/widget/notif-center/build-notifbox/notifbox-geometry.lua
diff --git a/config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-scroller.lua b/config/awesome/widget/notif-center/build-notifbox/notifbox-scroller.lua
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/build-notifbox/notifbox-scroller.lua
rename to config/awesome/widget/notif-center/build-notifbox/notifbox-scroller.lua
diff --git a/config/awesome/widget/notif-center/build-notifbox/notifbox-ui-elements.lua b/config/awesome/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
new file mode 100644
index 000000000..be8412906
--- /dev/null
+++ b/config/awesome/widget/notif-center/build-notifbox/notifbox-ui-elements.lua
@@ -0,0 +1,135 @@
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local naughty = require("naughty")
+local gears = require("gears")
+local directories = require("module.directories")
+
+local dpi = beautiful.xresources.apply_dpi
+
+local config_dir = directories.config
+local widget_icon_dir = config_dir .. "widget/notif-center/icons/"
+widget_icon_dir = tostring(widget_icon_dir)
+
+local clickable_container = require("widget.clickable-container")
+
+local ui_noti_builder = {}
+
+-- Notification icon container
+ui_noti_builder.notifbox_icon = function(ico_image)
+ local noti_icon = wibox.widget({
+ {
+ id = "icon",
+ resize = true,
+ forced_height = dpi(25),
+ forced_width = dpi(25),
+ widget = wibox.widget.imagebox,
+ },
+ layout = wibox.layout.fixed.horizontal,
+ })
+ noti_icon.icon:set_image(ico_image)
+ return noti_icon
+end
+
+-- Notification title container
+ui_noti_builder.notifbox_title = function(title)
+ return wibox.widget({
+ markup = title,
+ font = "Inter Bold 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ })
+end
+
+-- Notification message container
+ui_noti_builder.notifbox_message = function(msg)
+ return wibox.widget({
+ markup = msg,
+ font = "Inter Regular 11",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ })
+end
+
+-- Notification app name container
+ui_noti_builder.notifbox_appname = function(app)
+ return wibox.widget({
+ markup = app,
+ font = "Inter Bold 12",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ })
+end
+
+-- Notification actions container
+ui_noti_builder.notifbox_actions = function(n)
+ actions_template = wibox.widget({
+ notification = n,
+ base_layout = wibox.widget({
+ spacing = dpi(0),
+ layout = wibox.layout.flex.horizontal,
+ }),
+ widget_template = {
+ {
+ {
+ {
+ {
+ id = "text_role",
+ font = "Inter Regular 10",
+ widget = wibox.widget.textbox,
+ },
+ widget = wibox.container.place,
+ },
+ widget = clickable_container,
+ },
+ bg = beautiful.groups_bg,
+ shape = gears.shape.rounded_rect,
+ forced_height = 30,
+ widget = wibox.container.background,
+ },
+ margins = 4,
+ widget = wibox.container.margin,
+ },
+ style = { underline_normal = false, underline_selected = true },
+ widget = naughty.list.actions,
+ })
+
+ return actions_template
+end
+
+-- Notification dismiss button
+ui_noti_builder.notifbox_dismiss = function()
+ local dismiss_imagebox = wibox.widget({
+ {
+ id = "dismiss_icon",
+ image = widget_icon_dir .. "delete.svg",
+ resize = true,
+ forced_height = dpi(5),
+ widget = wibox.widget.imagebox,
+ },
+ layout = wibox.layout.fixed.horizontal,
+ })
+
+ local dismiss_button = wibox.widget({
+ {
+ dismiss_imagebox,
+ margins = dpi(5),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+ })
+
+ local notifbox_dismiss = wibox.widget({
+ dismiss_button,
+ visible = false,
+ bg = beautiful.groups_title_bg,
+ shape = gears.shape.circle,
+ widget = wibox.container.background,
+ })
+
+ return notifbox_dismiss
+end
+
+return ui_noti_builder
diff --git a/config/awesome/linear/widget/notif-center/clear-all/init.lua b/config/awesome/widget/notif-center/clear-all/init.lua
similarity index 100%
rename from config/awesome/linear/widget/notif-center/clear-all/init.lua
rename to config/awesome/widget/notif-center/clear-all/init.lua
diff --git a/config/awesome/widget/notif-center/dont-disturb/disturb_status b/config/awesome/widget/notif-center/dont-disturb/disturb_status
new file mode 100644
index 000000000..c508d5366
--- /dev/null
+++ b/config/awesome/widget/notif-center/dont-disturb/disturb_status
@@ -0,0 +1 @@
+false
diff --git a/config/awesome/floppy/widget/notif-center/dont-disturb/init.lua b/config/awesome/widget/notif-center/dont-disturb/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/dont-disturb/init.lua
rename to config/awesome/widget/notif-center/dont-disturb/init.lua
diff --git a/config/awesome/floppy/widget/notif-center/icons/clear_all.svg b/config/awesome/widget/notif-center/icons/clear_all.svg
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/icons/clear_all.svg
rename to config/awesome/widget/notif-center/icons/clear_all.svg
diff --git a/config/awesome/floppy/widget/notif-center/icons/delete.svg b/config/awesome/widget/notif-center/icons/delete.svg
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/icons/delete.svg
rename to config/awesome/widget/notif-center/icons/delete.svg
diff --git a/config/awesome/floppy/widget/notif-center/icons/dont-disturb-mode.svg b/config/awesome/widget/notif-center/icons/dont-disturb-mode.svg
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/icons/dont-disturb-mode.svg
rename to config/awesome/widget/notif-center/icons/dont-disturb-mode.svg
diff --git a/config/awesome/floppy/widget/notif-center/icons/empty-notification.svg b/config/awesome/widget/notif-center/icons/empty-notification.svg
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/icons/empty-notification.svg
rename to config/awesome/widget/notif-center/icons/empty-notification.svg
diff --git a/config/awesome/floppy/widget/notif-center/icons/new-notif.svg b/config/awesome/widget/notif-center/icons/new-notif.svg
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/icons/new-notif.svg
rename to config/awesome/widget/notif-center/icons/new-notif.svg
diff --git a/config/awesome/floppy/widget/notif-center/icons/notify-mode.svg b/config/awesome/widget/notif-center/icons/notify-mode.svg
similarity index 100%
rename from config/awesome/floppy/widget/notif-center/icons/notify-mode.svg
rename to config/awesome/widget/notif-center/icons/notify-mode.svg
diff --git a/config/awesome/widget/notif-center/init.lua b/config/awesome/widget/notif-center/init.lua
new file mode 100644
index 000000000..b092e673f
--- /dev/null
+++ b/config/awesome/widget/notif-center/init.lua
@@ -0,0 +1,62 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local clear_all = require("widget.notif-center.clear-all")
+local notifbox_box = require("widget.notif-center.build-notifbox")
+
+local notif_header = wibox.widget({
+ text = "Notification Center",
+ font = "Inter Bold 14",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+})
+
+local notif_center = function(s)
+ s.clear_all = clear_all
+ s.notifbox_layout = notifbox_box.notifbox_layout
+
+ return wibox.widget({
+ {
+ {
+ expand = "none",
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(10),
+ {
+ layout = wibox.layout.align.horizontal,
+ expand = "none",
+ notif_header,
+ nil,
+ s.clear_all,
+ },
+ s.notifbox_layout,
+ },
+ margins = dpi(10),
+ widget = wibox.container.margin,
+ },
+ border_width = dpi(1),
+ border_color = beautiful.groups_title_bg,
+ bg = beautiful.groups_bg,
+ shape = function(cr, w, h)
+ gears.shape.rounded_rect(cr, w, h, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ })
+end
+
+local notifbox_delete = function()
+ notifbox_layout:remove_widgets(notifbox, true)
+end
+
+-- Delete notifbox on LMB
+-- notifbox:buttons(awful.util.table.join(awful.button({}, 1, function()
+-- if #notifbox_layout.children == 1 then
+-- reset_notifbox_layout()
+-- else
+-- notifbox_delete()
+-- end
+-- collectgarbage("collect")
+-- end)))
+
+return notif_center
diff --git a/config/awesome/floppy/widget/open-default-app/init.lua b/config/awesome/widget/open-default-app/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/open-default-app/init.lua
rename to config/awesome/widget/open-default-app/init.lua
diff --git a/config/awesome/floppy/widget/package-updater/icons/package-up.svg b/config/awesome/widget/package-updater/icons/package-up.svg
similarity index 100%
rename from config/awesome/floppy/widget/package-updater/icons/package-up.svg
rename to config/awesome/widget/package-updater/icons/package-up.svg
diff --git a/config/awesome/floppy/widget/package-updater/icons/package.svg b/config/awesome/widget/package-updater/icons/package.svg
similarity index 100%
rename from config/awesome/floppy/widget/package-updater/icons/package.svg
rename to config/awesome/widget/package-updater/icons/package.svg
diff --git a/config/awesome/floppy/widget/package-updater/init.lua b/config/awesome/widget/package-updater/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/package-updater/init.lua
rename to config/awesome/widget/package-updater/init.lua
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/audio.svg b/config/awesome/widget/screen-recorder/icons/audio.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/audio.svg
rename to config/awesome/widget/screen-recorder/icons/audio.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/back.svg b/config/awesome/widget/screen-recorder/icons/back.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/back.svg
rename to config/awesome/widget/screen-recorder/icons/back.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/close-screen.svg b/config/awesome/widget/screen-recorder/icons/close-screen.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/close-screen.svg
rename to config/awesome/widget/screen-recorder/icons/close-screen.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/recorder-countdown.svg b/config/awesome/widget/screen-recorder/icons/recorder-countdown.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/recorder-countdown.svg
rename to config/awesome/widget/screen-recorder/icons/recorder-countdown.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/recorder-off.svg b/config/awesome/widget/screen-recorder/icons/recorder-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/recorder-off.svg
rename to config/awesome/widget/screen-recorder/icons/recorder-off.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/recorder-on.svg b/config/awesome/widget/screen-recorder/icons/recorder-on.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/recorder-on.svg
rename to config/awesome/widget/screen-recorder/icons/recorder-on.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/recording-button.svg b/config/awesome/widget/screen-recorder/icons/recording-button.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/recording-button.svg
rename to config/awesome/widget/screen-recorder/icons/recording-button.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/settings.svg b/config/awesome/widget/screen-recorder/icons/settings.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/settings.svg
rename to config/awesome/widget/screen-recorder/icons/settings.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/icons/start-recording-button.svg b/config/awesome/widget/screen-recorder/icons/start-recording-button.svg
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/icons/start-recording-button.svg
rename to config/awesome/widget/screen-recorder/icons/start-recording-button.svg
diff --git a/config/awesome/floppy/widget/screen-recorder/init.lua b/config/awesome/widget/screen-recorder/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/init.lua
rename to config/awesome/widget/screen-recorder/init.lua
diff --git a/config/awesome/floppy/widget/screen-recorder/screen-recorder-config.lua b/config/awesome/widget/screen-recorder/screen-recorder-config.lua
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/screen-recorder-config.lua
rename to config/awesome/widget/screen-recorder/screen-recorder-config.lua
diff --git a/config/awesome/floppy/widget/screen-recorder/screen-recorder-scripts.lua b/config/awesome/widget/screen-recorder/screen-recorder-scripts.lua
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/screen-recorder-scripts.lua
rename to config/awesome/widget/screen-recorder/screen-recorder-scripts.lua
diff --git a/config/awesome/floppy/widget/screen-recorder/screen-recorder-ui-backend.lua b/config/awesome/widget/screen-recorder/screen-recorder-ui-backend.lua
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/screen-recorder-ui-backend.lua
rename to config/awesome/widget/screen-recorder/screen-recorder-ui-backend.lua
diff --git a/config/awesome/floppy/widget/screen-recorder/screen-recorder-ui.lua b/config/awesome/widget/screen-recorder/screen-recorder-ui.lua
similarity index 100%
rename from config/awesome/floppy/widget/screen-recorder/screen-recorder-ui.lua
rename to config/awesome/widget/screen-recorder/screen-recorder-ui.lua
diff --git a/config/awesome/linear/widget/search-apps/icons/app-launcher.svg b/config/awesome/widget/search-apps/icons/app-launcher-def.svg
similarity index 100%
rename from config/awesome/linear/widget/search-apps/icons/app-launcher.svg
rename to config/awesome/widget/search-apps/icons/app-launcher-def.svg
diff --git a/config/awesome/floppy/widget/search-apps/icons/app-launcher.svg b/config/awesome/widget/search-apps/icons/app-launcher-floppy.svg
similarity index 100%
rename from config/awesome/floppy/widget/search-apps/icons/app-launcher.svg
rename to config/awesome/widget/search-apps/icons/app-launcher-floppy.svg
diff --git a/config/awesome/widget/search-apps/icons/init.lua b/config/awesome/widget/search-apps/icons/init.lua
new file mode 100644
index 000000000..9cd42e0a9
--- /dev/null
+++ b/config/awesome/widget/search-apps/icons/init.lua
@@ -0,0 +1,9 @@
+--- @type {linear: string, default: string}
+local icons = { default = "app-launcher-floppy", linear = "app-launcher-def" }
+local mt = {
+ __index = function()
+ return icons.default
+ end,
+}
+setmetatable(icons, mt)
+return icons
diff --git a/config/awesome/widget/search-apps/init.lua b/config/awesome/widget/search-apps/init.lua
new file mode 100644
index 000000000..dc4d162ac
--- /dev/null
+++ b/config/awesome/widget/search-apps/init.lua
@@ -0,0 +1,39 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local filesystem = gears.filesystem
+local config_dir = filesystem.get_configuration_dir()
+local dpi = require("beautiful").xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local widget_icon_dir = config_dir .. "/widget/search-apps/icons/"
+local apps = require("configuration.apps")
+local path_to_file = ...
+local icons_map = require(path_to_file .. ".icons")
+local return_button = function()
+ local widget = wibox.widget({
+ {
+ id = "icon",
+ image = widget_icon_dir .. icons_map[THEME] .. ".svg",
+ widget = wibox.widget.imagebox,
+ resize = true,
+ },
+ layout = wibox.layout.align.horizontal,
+ })
+
+ local widget_button = wibox.widget({
+ {
+ widget,
+ margins = dpi(7),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+ })
+
+ widget_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ awful.spawn(apps.default.rofi_appmenu, false)
+ end)))
+
+ return widget_button
+end
+
+return return_button
diff --git a/config/awesome/widget/shared/components/circular_toggle/init.lua b/config/awesome/widget/shared/components/circular_toggle/init.lua
new file mode 100644
index 000000000..c152ffec1
--- /dev/null
+++ b/config/awesome/widget/shared/components/circular_toggle/init.lua
@@ -0,0 +1,125 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local icon = require("widget.shared.components.icon")
+local name = require("widget.shared.components.name")
+local clickable_container = require("widget.clickable-container")
+
+---@class circular_toggle
+---@field wibox_widget unknown
+---@field toggle_on boolean
+---@field toggle_on_callback function
+---@field toggle_off_callback function
+---@field toggled_on_icon unknown
+---@field toggled_off_icon unknown
+---@field icon_widget unknown
+---@field watch_script string| table | nil
+local circular_toggle = {
+ toggle_on = false,
+ status_widget = {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ id = "name",
+ text = "Off",
+ font = "Inter Bold 10",
+ align = "left",
+ widget = wibox.widget.textbox,
+ },
+ nil,
+ },
+ icon_widget = _,
+ margins = dpi(15),
+ icon_diameter = dpi(24),
+}
+
+---@param toggle_on_icon string
+---@param toggle_off_icon string
+---@param toggle_on_callback function
+---@param toggle_off_callback function
+---@param watch_script table | string | nil
+function circular_toggle:new(toggle_on_icon, toggle_off_icon, toggle_on_callback, toggle_off_callback, watch_script)
+ ---@type circular_toggle
+ local o = {}
+
+ o.toggle_on_callback = toggle_on_callback or function() end
+ o.toggle_off_callback = toggle_off_callback or function() end
+ o.toggled_on_icon = toggle_on_icon
+ o.toggled_off_icon = toggle_off_icon
+ o.watch_script = watch_script
+ o.status_widget = wibox.widget(self.status_widget)
+ o.icon_widget = wibox.widget({
+ image = o.toggled_off_icon,
+ widget = wibox.widget.imagebox,
+ resize = true,
+ forced_height = self.icon_diameter,
+ forced_width = self.icon_diameter,
+ })
+
+ self.__index = self
+ setmetatable(o, self)
+ -- icon
+ -- layout
+ local layout_widget = wibox.layout.fixed.horizontal()
+ layout_widget:add(o.icon_widget)
+
+ local margin_widget = wibox.container.margin(layout_widget)
+ margin_widget.margins = o.margins
+ local background_widget = wibox.container.background(margin_widget, beautiful.groups_bg, gears.shape.circle)
+ -- adding icon margins and bg
+ o.wibox_widget = background_widget
+
+ -- buttons
+ o.wibox_widget:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ o:toggle(false)
+ end)))
+
+ if watch_script then
+ o:register_watch_script()
+ end
+
+ return { o.wibox_widget, o.status_widget }
+end
+---@param silent boolean
+function circular_toggle:toggle(silent)
+ local wibox_widget = self.wibox_widget
+ if not self.toggle_on then
+ self.icon_widget:set_image(self.toggled_on_icon)
+ wibox_widget.bg = beautiful.accent
+ self.status_widget.name:set_text("On")
+ if not silent then
+ self.toggle_on_callback()
+ end
+ else
+ self.icon_widget:set_image(self.toggled_off_icon)
+ wibox_widget.bg = beautiful.groups_bg
+ self.status_widget.name:set_text("Off")
+ if not silent then
+ self.toggle_off_callback()
+ end
+ end
+ self.toggle_on = not self.toggle_on
+end
+function circular_toggle:register_watch_script()
+ awful.widget.watch(self.watch_script, 60, function(_, stdout)
+ -- 🔧 TODO: improve this
+ if stdout:match("true") then
+ -- so it toggles to true
+ self.toggle_on = false
+ elseif stdout:match("false") then
+ -- so it toggles to false
+ self.toggle_on = true
+ else
+ pcall(function()
+ error("Invalid watch script output: must be true or false")
+ end)
+ return
+ end
+ self:toggle(true)
+ end)
+end
+return circular_toggle
diff --git a/config/awesome/widget/shared/components/icon/init.lua b/config/awesome/widget/shared/components/icon/init.lua
new file mode 100644
index 000000000..aa86b93e4
--- /dev/null
+++ b/config/awesome/widget/shared/components/icon/init.lua
@@ -0,0 +1,52 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local beautiful = require("beautiful")
+local watch = awful.widget.watch
+local dpi = beautiful.xresources.apply_dpi
+
+local clickable_container = require("widget.clickable-container")
+local icon = {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ image = _,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ nil,
+}
+local themes_without_icon_bg = {
+ floppy = true,
+}
+
+---@param image_path string
+---@param margins unknown
+---@param clickable boolean
+---@param bg boolean
+function icon:new(image_path, margins, clickable, bg)
+ self[2].image = image_path
+ if themes_without_icon_bg[THEME] then
+ return wibox.widget(self)
+ end
+ local image_with_margins = {
+ self,
+ margins = margins or dpi(5),
+ widget = wibox.container.margin,
+ }
+ if clickable then
+ image_with_margins = { image_with_margins, widget = clickable_container }
+ end
+ local image_with_bkg = {
+ image_with_margins,
+ bg = beautiful.groups_bg,
+ shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ widget = wibox.container.background,
+ }
+ return wibox.widget(image_with_bkg)
+end
+
+return icon
diff --git a/config/awesome/widget/shared/components/name/init.lua b/config/awesome/widget/shared/components/name/init.lua
new file mode 100644
index 000000000..05203e5cf
--- /dev/null
+++ b/config/awesome/widget/shared/components/name/init.lua
@@ -0,0 +1,24 @@
+local wibox = require("wibox")
+
+local meter_name = {
+ id = "name",
+ text = "",
+ font = "Inter Bold 10",
+ align = "left",
+ widget = wibox.widget.textbox,
+}
+---@param text string
+---@param font string
+---@param align unknown
+function meter_name:new(text, font, align)
+ local o = {}
+ o.id = self.id
+ o.text = text or self.text
+ o.font = font or self.font
+ o.align = align or self.align
+ setmetatable(o, self)
+ self.__index = self
+ return wibox.widget(o)
+end
+
+return meter_name
diff --git a/config/awesome/widget/shared/components/regular-text/init.lua b/config/awesome/widget/shared/components/regular-text/init.lua
new file mode 100644
index 000000000..0083045ba
--- /dev/null
+++ b/config/awesome/widget/shared/components/regular-text/init.lua
@@ -0,0 +1,24 @@
+local wibox = require("wibox")
+
+local regular_text = {
+ id = "",
+ text = "",
+ font = "Inter Regular 10",
+ align = "left",
+ widget = wibox.widget.textbox,
+}
+---@param text string
+---@param font string
+---@param align unknown
+function regular_text:new(text, font, align)
+ local o = {}
+ o.id = self.id
+ o.text = text or self.text
+ o.font = font or self.font
+ o.align = align or self.align
+ setmetatable(o, self)
+ self.__index = self
+ return wibox.widget(o)
+end
+
+return regular_text
diff --git a/config/awesome/widget/shared/components/separator/init.lua b/config/awesome/widget/shared/components/separator/init.lua
new file mode 100644
index 000000000..1a7268642
--- /dev/null
+++ b/config/awesome/widget/shared/components/separator/init.lua
@@ -0,0 +1,22 @@
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local separator = { orientation = "horizontal" }
+function separator:new(orientation)
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ o.widget = wibox.widget({
+ orientation = orientation or o.orientation,
+ forced_height = dpi(1),
+ forced_width = dpi(1),
+ span_ratio = 0.55,
+ widget = wibox.widget.separator,
+ })
+ return o
+end
+---@param orientation "horizontal" | "vertical'
+function separator:set_orientation(orientation)
+ self.widget.orientation = orientation
+end
+return separator
diff --git a/config/awesome/widget/shared/components/text-with-container/init.lua b/config/awesome/widget/shared/components/text-with-container/init.lua
new file mode 100644
index 000000000..d5b499c37
--- /dev/null
+++ b/config/awesome/widget/shared/components/text-with-container/init.lua
@@ -0,0 +1,37 @@
+local text_class = require("widget.shared.components.regular-text")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local gears = require("gears")
+local text_with_container = {
+ text_widget = _,
+ margins = dpi(5),
+ bg = beautiful.groups_bg,
+}
+---@param text string |table
+---@param margins any
+function text_with_container:new(text, margins)
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ if type(text) == table then
+ text = table.concat(text, ", ")
+ end
+ o.text_widget = wibox.widget({
+ text = text,
+ font = "Inter Bold 10",
+ align = "center",
+ widget = wibox.widget.textbox,
+ })
+ -- local margin_widget = wibox.container.margin(o.text_widget)
+ -- margin_widget.margins = margins or o.margins
+ o.widget = wibox.widget({
+ o.text_widget,
+ bg = o.bg,
+ shape = gears.shape.rounded_rect,
+ widget = wibox.container.background,
+ })
+ local margin_widget = wibox.container.margin(o.widget, dpi(50), dpi(50), _, _)
+ return margin_widget
+end
+return text_with_container
diff --git a/config/awesome/widget/shared/components/toggle/init.lua b/config/awesome/widget/shared/components/toggle/init.lua
new file mode 100644
index 000000000..38cbc0adc
--- /dev/null
+++ b/config/awesome/widget/shared/components/toggle/init.lua
@@ -0,0 +1,81 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local icon = require("widget.shared.components.icon")
+local clickable_container = require("widget.clickable-container")
+
+---@class toggle_comp
+---@field wibox_widget unknown
+---@field toggle_on boolean
+---@field toggle_on_callback function
+---@field toggle_off_callback function
+---@field toggle_on_icon unknown
+---@field toggle_off_icon unknown
+---@field watch_script string| string[] | nil
+local toggle = {
+ widget_params = {
+ {
+ id = "icon",
+ widget = wibox.widget.imagebox,
+ image = icons.toggled_off,
+ resize = true,
+ },
+ margins = dpi(5),
+ widget = wibox.container.margin,
+ },
+ toggle_on = false,
+ toggle_on_icon = icons.toggled_on,
+ toggle_off_icon = icons.toggled_off,
+}
+
+---@param toggle_on_callback function
+---@param toggle_off_callback function
+---@param watch_script string| string[] | nil
+function toggle:new(toggle_on_callback, toggle_off_callback, watch_script)
+ local o = {}
+ o.toggle_on_callback = toggle_on_callback or function() end
+ o.toggle_off_callback = toggle_off_callback or function() end
+ o.watch_script = watch_script or nil
+ self.__index = self
+ setmetatable(o, self)
+ o.wibox_widget = wibox.widget(o.widget_params)
+ o.wibox_widget:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ o:toggle(false)
+ end)))
+ return o.wibox_widget
+end
+function toggle:toggle(silent)
+ local wibox_widget = self.wibox_widget
+ if not self.toggle_on then
+ wibox_widget.icon:set_image(self.toggle_on_icon)
+ if not silent then
+ self.toggle_on_callback()
+ end
+ else
+ wibox_widget.icon:set_image(self.toggle_off_icon)
+ if not silent then
+ self.toggle_off_callback()
+ end
+ end
+ self.toggle_on = not self.toggle_on
+end
+function toggle:register_watch_script()
+ awful.widget.watch(self.watch_script, 60, function(_, stdout)
+ if stdout:match("true") then
+ self.toggle_on = true
+ elseif stdout:match("false") then
+ self.toggle_on = false
+ else
+ pcall(function()
+ error("Invalid watch script output: must be on or off")
+ end)
+ return
+ end
+ self:toggle(true)
+ end)
+end
+
+return toggle
diff --git a/config/awesome/floppy/widget/social-media/icons/facebook.svg b/config/awesome/widget/social-media/icons/facebook.svg
similarity index 100%
rename from config/awesome/floppy/widget/social-media/icons/facebook.svg
rename to config/awesome/widget/social-media/icons/facebook.svg
diff --git a/config/awesome/floppy/widget/social-media/icons/instagram.svg b/config/awesome/widget/social-media/icons/instagram.svg
similarity index 100%
rename from config/awesome/floppy/widget/social-media/icons/instagram.svg
rename to config/awesome/widget/social-media/icons/instagram.svg
diff --git a/config/awesome/floppy/widget/social-media/icons/reddit.svg b/config/awesome/widget/social-media/icons/reddit.svg
similarity index 100%
rename from config/awesome/floppy/widget/social-media/icons/reddit.svg
rename to config/awesome/widget/social-media/icons/reddit.svg
diff --git a/config/awesome/floppy/widget/social-media/icons/twitter.svg b/config/awesome/widget/social-media/icons/twitter.svg
similarity index 100%
rename from config/awesome/floppy/widget/social-media/icons/twitter.svg
rename to config/awesome/widget/social-media/icons/twitter.svg
diff --git a/config/awesome/floppy/widget/social-media/init.lua b/config/awesome/widget/social-media/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/social-media/init.lua
rename to config/awesome/widget/social-media/init.lua
diff --git a/config/awesome/widget/tag-list/init.lua b/config/awesome/widget/tag-list/init.lua
new file mode 100644
index 000000000..62a639f58
--- /dev/null
+++ b/config/awesome/widget/tag-list/init.lua
@@ -0,0 +1,160 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local dpi = require("beautiful").xresources.apply_dpi
+local clickable_container = require("widget.clickable-container")
+local icons = require("theme.icons")
+local path_to_file = ...
+local settings = require(path_to_file .. ".settings")
+local image_margins = {
+ linear = dpi(6),
+ default = dpi(10)
+}
+local mt = {
+ __index = function()
+ return image_margins.default
+ end
+}
+setmetatable(image_margins, mt)
+
+--- Common method to create buttons.
+-- @tab buttons
+-- @param object
+-- @return table
+local function create_buttons(buttons, object)
+ if buttons then
+ local btns = {}
+ for _, b in ipairs(buttons) do
+ -- Create a proxy button object: it will receive the real
+ -- press and release events, and will propagate them to the
+ -- button object the user provided, but with the object as
+ -- argument.
+ local btn = awful.button({
+ modifiers = b.modifiers,
+ button = b.button,
+ on_press = function()
+ b:emit_signal("press", object)
+ end,
+ on_release = function()
+ b:emit_signal("release", object)
+ end,
+ })
+ btns[#btns + 1] = btn
+ end
+ return btns
+ end
+end
+
+local function list_update(w, buttons, label, data, objects)
+ -- update the widgets, creating them if needed
+ w:reset()
+ for i, o in ipairs(objects) do
+ local cache = data[o]
+ local ib, tb, bgb, tbm, ibm, l, bg_clickable
+ if cache then
+ ib = cache.ib
+ tb = cache.tb
+ bgb = cache.bgb
+ tbm = cache.tbm
+ ibm = cache.ibm
+ else
+ ib = wibox.widget.imagebox()
+ tb = wibox.widget.textbox()
+ bgb = wibox.container.background()
+ tbm = wibox.widget({
+ tb,
+ left = dpi(4),
+ right = dpi(16),
+ widget = wibox.container.margin,
+ })
+ ibm = wibox.widget({
+ ib,
+ margins = image_margins[THEME],
+ widget = wibox.container.margin,
+ })
+ l = wibox.layout.fixed.horizontal()
+ bg_clickable = clickable_container()
+
+ -- All of this is added in a fixed widget
+ l:fill_space(true)
+ l:add(ibm)
+ -- l:add(tbm)
+ bg_clickable:set_widget(l)
+
+ -- And all of this gets a background
+ bgb:set_widget(bg_clickable)
+
+ bgb:buttons(create_buttons(buttons, o))
+
+ data[o] = {
+ ib = ib,
+ tb = tb,
+ bgb = bgb,
+ tbm = tbm,
+ ibm = ibm,
+ }
+ end
+
+ local text, bg, bg_image, icon, args = label(o, tb)
+ args = args or {}
+
+ -- The text might be invalid, so use pcall.
+ if text == nil or text == "" then
+ tbm:set_margins(0)
+ else
+ if not tb:set_markup_silently(text) then
+ tb:set_markup("<Invalid text>")
+ end
+ end
+ bgb:set_bg(bg)
+ if type(bg_image) == "function" then
+ -- TODO: Why does this pass nil as an argument?
+ bg_image = bg_image(tb, o, nil, objects, i)
+ end
+ bgb:set_bgimage(bg_image)
+ if icon then
+ ib.image = icon
+ else
+ ibm:set_margins(1)
+ end
+
+ bgb.shape = args.shape
+ bgb.shape_border_width = args.shape_border_width
+ bgb.shape_border_color = args.shape_border_color
+
+ w:add(bgb)
+ end
+end
+
+local tag_list = function(s)
+ return awful.widget.taglist(
+ s,
+ awful.widget.taglist.filter.all,
+ awful.util.table.join(
+ awful.button({}, 1, function(t)
+ t:view_only()
+ end),
+ awful.button({ modkey }, 1, function(t)
+ if _G.client.focus then
+ _G.client.focus:move_to_tag(t)
+ t:view_only()
+ end
+ end),
+ awful.button({}, 3, awful.tag.viewtoggle),
+ awful.button({ modkey }, 3, function(t)
+ if _G.client.focus then
+ _G.client.focus:toggle_tag(t)
+ end
+ end),
+ awful.button({}, 4, function(t)
+ awful.tag.viewprev(t.screen)
+ end),
+ awful.button({}, 5, function(t)
+ awful.tag.viewnext(t.screen)
+ end)
+ ),
+ {},
+ list_update,
+ (settings[THEME].layout_fixed)()
+ )
+end
+return tag_list
diff --git a/config/awesome/widget/tag-list/settings/init.lua b/config/awesome/widget/tag-list/settings/init.lua
new file mode 100644
index 000000000..757944633
--- /dev/null
+++ b/config/awesome/widget/tag-list/settings/init.lua
@@ -0,0 +1,21 @@
+local wibox = require("wibox")
+---@type {floppy: widgetPositioning, default: widgetPositioning}
+local settings = {
+ floppy = {
+ orientation = "horizontal",
+ layout_align = wibox.layout.align.vertical,
+ layout_fixed = wibox.layout.fixed.vertical,
+ },
+ default = {
+ orientation = "vertical",
+ layout_align = wibox.layout.align.horizontal,
+ layout_fixed = wibox.layout.fixed.horizontal,
+ },
+}
+local mt = {
+ __index = function()
+ return settings.default
+ end,
+}
+setmetatable(settings, mt)
+return settings
diff --git a/config/awesome/floppy/widget/task-list/init.lua b/config/awesome/widget/task-list/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/task-list/init.lua
rename to config/awesome/widget/task-list/init.lua
diff --git a/config/awesome/widget/theme-picker-toggle/icons/flask.svg b/config/awesome/widget/theme-picker-toggle/icons/flask.svg
new file mode 100644
index 000000000..dba8a2f08
--- /dev/null
+++ b/config/awesome/widget/theme-picker-toggle/icons/flask.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/config/awesome/widget/theme-picker-toggle/init.lua b/config/awesome/widget/theme-picker-toggle/init.lua
new file mode 100644
index 000000000..fa85e3324
--- /dev/null
+++ b/config/awesome/widget/theme-picker-toggle/init.lua
@@ -0,0 +1,43 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local dpi = require("beautiful").xresources.apply_dpi
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/theme-picker-toggle/icons/"
+local clickable_container = require("widget.clickable-container")
+
+local return_button = function()
+ local widget = wibox.widget({
+ {
+ id = "icon",
+ image = widget_icon_dir .. "flask.svg",
+ widget = wibox.widget.imagebox,
+ resize = true,
+ },
+ layout = wibox.layout.align.horizontal,
+ })
+
+ local widget_button = wibox.widget({
+ {
+ widget,
+ margins = dpi(7),
+ widget = wibox.container.margin,
+ },
+ widget = clickable_container,
+ })
+
+ widget_button:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ local theme_picker = awful.screen.focused().theme_picker
+ if theme_picker.visible then
+ theme_picker.visible = false
+ awesome.emit_signal("theme-picker::closed")
+ else
+ theme_picker.visible = true
+ awesome.emit_signal("theme-picker::opened")
+ end
+ end)))
+
+ return widget_button
+end
+
+return return_button
diff --git a/config/awesome/widget/theme-picker/entities/element.lua b/config/awesome/widget/theme-picker/entities/element.lua
new file mode 100644
index 000000000..94bc7e2c6
--- /dev/null
+++ b/config/awesome/widget/theme-picker/entities/element.lua
@@ -0,0 +1,69 @@
+local name_class = require("widget.shared.components.name")
+local regular_text = require("widget.shared.components.regular-text")
+local setter = require("widget.theme-setter")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local awful = require("awful")
+local gears = require("gears")
+local element = {
+ margin = dpi(5),
+ bg = beautiful.groups_bg,
+ selected_bg = "#FFFFFF",
+ fg = beautiful.fg_modal,
+ selected_fg = "#000000",
+ border_width = dpi(1),
+ border_color = beautiful.border_modal,
+ spacing = dpi(5),
+}
+---@param name string
+---@param description string
+function element:new(name, description)
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ o.name = name
+ o.name_widget = name_class:new(o.name, _, _)
+ o.description_widget = regular_text:new(description or "N/A", _, _)
+ local layout_widget = wibox.widget({
+ o.name_widget,
+ nil,
+ o.description_widget,
+ layout = wibox.layout.flex.horizontal,
+ spacing = o.spacing,
+ })
+ local margin_widget = wibox.container.margin(layout_widget)
+ margin_widget.margins = o.margin
+ o.widget = wibox.container.background(margin_widget, o.bg, _)
+ o:register_events()
+ o.widget:buttons(gears.table.join(awful.button({}, 1, nil, function()
+ o:confirm()
+ end)))
+
+ return o
+end
+function element:confirm()
+ setter:set(string.lower(self.name))
+ -- TODO: do this for screen if possible
+ -- local w = mouse.current_wibox
+ -- self.widget.cursor = "watch"
+ awful.spawn.with_shell("awesome-client 'awesome.restart()'")
+end
+function element:select()
+ self.widget.bg = self.selected_bg
+ self.widget.fg = self.selected_fg
+end
+function element:deselect()
+ self.widget.bg = self.bg
+ self.widget.fg = self.fg
+end
+function element:register_events()
+ self.widget:connect_signal("mouse::enter", function()
+ self:select()
+ end)
+ self.widget:connect_signal("mouse::leave", function()
+ self:deselect()
+ end)
+end
+
+return element
diff --git a/config/awesome/widget/theme-picker/init.lua b/config/awesome/widget/theme-picker/init.lua
new file mode 100644
index 000000000..84cc98e64
--- /dev/null
+++ b/config/awesome/widget/theme-picker/init.lua
@@ -0,0 +1,77 @@
+local wibox = require("wibox")
+local element_class = require("widget.theme-picker.entities.element")
+local beautiful = require("beautiful")
+local awful = require("awful")
+-- make table with arrow keys
+local hot_keys = {
+ up = { Up = true, k = true },
+ down = { Down = true, j = true },
+ exit = { Escape = true, q = true },
+ select = { Return = true },
+}
+local themes = {
+ { name = "Floppy", description = "Floppy was meant to be a clone of the infamous Flurry Desktop." },
+ { name = "GNawesOME", description = "Yes, GNawesOME is a weird name. GNawesOME was meant to be a GNOME clone" },
+ {
+ name = "Surreal",
+ description = "Yes, I copied the macOS Big Sur design.",
+ },
+ { name = "Linear", description = "A setup full of borders and lines. Awesome right?" },
+}
+
+local elements = {}
+local selected = 1
+
+function build(s)
+ local container = wibox.layout.flex.vertical()
+ for index, theme in ipairs(themes) do
+ local curr_el = element_class:new(theme.name, theme.description)
+ table.insert(elements, curr_el)
+ container:add(curr_el.widget)
+ end
+ elements[1]:select()
+ local popup = awful.popup({
+ widget = container,
+ placement = awful.placement.centered,
+ screen = s,
+ visible = false,
+ ontop = true,
+ })
+ return popup
+end
+local key_grabber = awful.keygrabber({
+ auto_start = true,
+ stop_event = "release",
+ keypressed_callback = function(self, mod, key, command)
+ print(key)
+ if hot_keys.down[key] then
+ elements[selected]:deselect()
+ selected = selected + 1
+ if selected > #elements then
+ selected = 1
+ end
+ elements[selected]:select()
+ elseif hot_keys.up[key] then
+ elements[selected]:deselect()
+ selected = selected - 1
+ if selected < 1 then
+ selected = #elements
+ end
+ elements[selected]:select()
+ elseif hot_keys.exit[key] then
+ awful.screen.focused().theme_picker.visible = false
+ awesome.emit_signal("theme-picker::closed")
+ elseif hot_keys.select[key] then
+ elements[selected]:confirm()
+ end
+ end,
+})
+
+awesome.connect_signal("theme-picker::opened", function()
+ key_grabber:start()
+end)
+awesome.connect_signal("theme-picker::closed", function()
+ key_grabber:stop()
+end)
+
+return build
diff --git a/config/awesome/widget/theme-setter/init.lua b/config/awesome/widget/theme-setter/init.lua
new file mode 100644
index 000000000..581adac06
--- /dev/null
+++ b/config/awesome/widget/theme-setter/init.lua
@@ -0,0 +1,19 @@
+local dirs = require("module.directories")
+local txt_path = dirs.widget .. "theme-setter/theme.txt"
+local setter = {}
+function setter:get()
+ -- read theme txt and return theme name
+ local file = io.open(txt_path, "r")
+ local theme = assert(file):read()
+ assert(file):close()
+ return theme
+end
+
+---@param theme themeNames
+function setter:set(theme)
+ -- write theme txt
+ local file = io.open(txt_path, "w")
+ assert(file):write(theme)
+ assert(file):close()
+end
+return setter
diff --git a/config/awesome/widget/theme-setter/theme.txt b/config/awesome/widget/theme-setter/theme.txt
new file mode 100644
index 000000000..d59c06827
--- /dev/null
+++ b/config/awesome/widget/theme-setter/theme.txt
@@ -0,0 +1 @@
+surreal
\ No newline at end of file
diff --git a/config/awesome/floppy/widget/network/icons/airplane-mode-off.svg b/config/awesome/widget/toggles/icons/airplane-mode-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/airplane-mode-off.svg
rename to config/awesome/widget/toggles/icons/airplane-mode-off.svg
diff --git a/config/awesome/floppy/widget/network/icons/airplane-mode.svg b/config/awesome/widget/toggles/icons/airplane-mode.svg
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/airplane-mode.svg
rename to config/awesome/widget/toggles/icons/airplane-mode.svg
diff --git a/config/awesome/linear/widget/blue-light/icons/blue-light-off.svg b/config/awesome/widget/toggles/icons/blue-light-off.svg
similarity index 100%
rename from config/awesome/linear/widget/blue-light/icons/blue-light-off.svg
rename to config/awesome/widget/toggles/icons/blue-light-off.svg
diff --git a/config/awesome/linear/widget/blue-light/icons/blue-light.svg b/config/awesome/widget/toggles/icons/blue-light.svg
similarity index 100%
rename from config/awesome/linear/widget/blue-light/icons/blue-light.svg
rename to config/awesome/widget/toggles/icons/blue-light.svg
diff --git a/config/awesome/floppy/widget/bluetooth/icons/bluetooth-off.svg b/config/awesome/widget/toggles/icons/bluetooth-off.svg
similarity index 100%
rename from config/awesome/floppy/widget/bluetooth/icons/bluetooth-off.svg
rename to config/awesome/widget/toggles/icons/bluetooth-off.svg
diff --git a/config/awesome/gnawesome/widget/bluetooth/icons/bluetooth.svg b/config/awesome/widget/toggles/icons/bluetooth.svg
similarity index 100%
rename from config/awesome/gnawesome/widget/bluetooth/icons/bluetooth.svg
rename to config/awesome/widget/toggles/icons/bluetooth.svg
diff --git a/config/awesome/linear/widget/blur-toggle/icons/effects-off.svg b/config/awesome/widget/toggles/icons/effects-off.svg
similarity index 100%
rename from config/awesome/linear/widget/blur-toggle/icons/effects-off.svg
rename to config/awesome/widget/toggles/icons/effects-off.svg
diff --git a/config/awesome/widget/toggles/icons/init.lua b/config/awesome/widget/toggles/icons/init.lua
new file mode 100644
index 000000000..80fa11835
--- /dev/null
+++ b/config/awesome/widget/toggles/icons/init.lua
@@ -0,0 +1,28 @@
+local gears = require("gears")
+local theme_icons = require("theme.icons")
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_dir = config_dir .. "widget/"
+local toggle_icon_dir = widget_dir .. "toggles/icons/"
+
+---@alias toggle_widet_icons {on : string, off : string}
+---@type table
+local icons = {
+ airplane_mode = {
+ on = toggle_icon_dir .. "airplane-mode.svg",
+ off = toggle_icon_dir .. "airplane-mode-off.svg",
+ },
+
+ bluetooth = {
+ on = toggle_icon_dir .. "bluetooth.svg",
+ off = toggle_icon_dir .. "bluetooth-off.svg",
+ },
+ blue_light = {
+ on = toggle_icon_dir .. "blue-light.svg",
+ off = toggle_icon_dir .. "blue-light-off.svg",
+ },
+ blur_effects = {
+ on = theme_icons.effects,
+ off = toggle_icon_dir .. "effects-off.svg",
+ },
+}
+return icons
diff --git a/config/awesome/floppy/widget/network/icons/loading.svg b/config/awesome/widget/toggles/icons/loading.svg
old mode 100755
new mode 100644
similarity index 100%
rename from config/awesome/floppy/widget/network/icons/loading.svg
rename to config/awesome/widget/toggles/icons/loading.svg
diff --git a/config/awesome/widget/toggles/init.lua b/config/awesome/widget/toggles/init.lua
new file mode 100644
index 000000000..8e237f070
--- /dev/null
+++ b/config/awesome/widget/toggles/init.lua
@@ -0,0 +1,27 @@
+local repo = require("widget.toggles.repo")
+local basic_toggle = require(... .. ".styles.basic")
+local circular_toggle = require(... .. ".styles.circular")
+
+---@type table
+local toggle_widgets = {
+ -- bluetooth = {
+ -- basic = basic_toggle(repo.bluetooth),
+ -- circular = circular_toggle(repo.bluetooth),
+ -- },
+ -- airplane_mode = {
+ -- basic = basic_toggle(repo.airplane_mode),
+ -- circular = circular_toggle(repo.airplane_mode),
+ -- },
+ -- blue_light = {
+ -- basic = basic_toggle(repo.blue_light),
+ -- circular = circular_toggle(repo.blue_light),
+ -- },
+}
+for k, v in pairs(repo) do
+ toggle_widgets[k] = {
+ basic = basic_toggle(v),
+ circular = circular_toggle(v),
+ }
+end
+
+return toggle_widgets
diff --git a/config/awesome/widget/toggles/repo/init.lua b/config/awesome/widget/toggles/repo/init.lua
new file mode 100644
index 000000000..8104c0b0e
--- /dev/null
+++ b/config/awesome/widget/toggles/repo/init.lua
@@ -0,0 +1,139 @@
+local awful = require("awful")
+local naughty = require("naughty")
+local gears = require("gears")
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_dir = config_dir .. "widget/"
+-- 🔧 TODO: move those into icons of this dir
+local icons = require("widget.toggles.icons")
+local scripts = require("widget.toggles.scripts")
+
+---@class toggle_widget_args
+---@field name string
+---@field toggle_on_callback function
+---@field toggle_off_callback function
+---@field toggle_on_icon string
+---@field toggle_off_icon string
+---@field watch_script table | string | nil
+
+-- 🔧 TODO: add function that checks the initial state of wlan and sets the toggle properly
+---@type toggle_widget_args
+local airplane_mode = {
+ name = "Airplane Mode",
+ toggle_off_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.airplane_mode.toggle_off_script, function()
+ naughty.notification({
+ app_name = "Network Manager",
+ title = "Airplane mode disbaled!",
+ message = "Enabling radio devices",
+ icon = icons.airplane_mode.off,
+ })
+ end)
+ end,
+ toggle_on_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.airplane_mode.toggle_on_script, function()
+ naughty.notification({
+ app_name = "Network Manager",
+ title = "Airplane mode enabled!",
+ message = "Disabling radio devices",
+ icon = icons.airplane_mode.on,
+ })
+ end)
+ end,
+ toggle_on_icon = icons.airplane_mode.on,
+ toggle_off_icon = icons.airplane_mode.off,
+ watch_script = scripts.airplane_mode.watch_script,
+}
+
+---@type toggle_widget_args
+local bluetooth = {
+ name = "Bluetooth",
+ toggle_off_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.bluetooth.toggle_off_script, function()
+ naughty.notification({
+ app_name = "Bluetooth Manager",
+ title = " System Notification",
+ message = "The bluetooth device has been disabled!",
+ icon = icons.bluetooth.off,
+ })
+ end)
+ end,
+ toggle_on_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.bluetooth.toggle_on_script, function()
+ naughty.notification({
+ app_name = "Bluetooth Manager",
+ title = " System Notification",
+ message = "The bluetooth device has been enabled!",
+ icon = icons.bluetooth.on,
+ })
+ end)
+ end,
+ toggle_on_icon = icons.bluetooth.on,
+ toggle_off_icon = icons.bluetooth.off,
+ watch_script = scripts.bluetooth.watch_script,
+}
+
+---@type toggle_widget_args
+local blue_light = {
+ name = "Blue Light",
+ toggle_off_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.blue_light.toggle_off_script, function()
+ naughty.notification({
+ app_name = "Blue Light Manager",
+ title = " System Notification",
+ message = "Blue light has been disabled!",
+ icon = icons.blue_light.off,
+ })
+ end)
+ end,
+ toggle_on_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.blue_light.toggle_on_script, function()
+ naughty.notification({
+ app_name = "Blue Light Manager",
+ title = " System Notification",
+ message = "Blue light has been enabled!",
+ icon = icons.blue_light.on,
+ })
+ end)
+ end,
+ toggle_on_icon = icons.blue_light.on,
+ toggle_off_icon = icons.blue_light.off,
+ watch_script = scripts.blue_light.watch_script,
+}
+---@type toggle_widget_args
+local blur_effects = {
+ name = "Blur Effects",
+ toggle_off_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.blur_effects.toggle_off_script, function()
+ naughty.notification({
+ app_name = "Blur Effect Manager",
+ title = " System Notification",
+ message = "Blur effect has been disabled!",
+ icon = icons.blur_effects.off,
+ })
+ end)
+ end,
+ toggle_on_callback = function()
+ awful.spawn.easy_async_with_shell(scripts.blur_effects.toggle_on_script, function(_, stdout, stderr)
+ print(stderr)
+ naughty.notification({
+ app_name = "Blur Effect Manager",
+ title = " System Notification",
+ message = "Blur effect has been enabled!",
+ icon = icons.blur_effects.on,
+ })
+ end)
+ end,
+ toggle_on_icon = icons.blur_effects.on,
+ toggle_off_icon = icons.blur_effects.off,
+ watch_script = scripts.blur_effects.watch_script,
+}
+
+---@alias toggle_widgets "airplane_mode" | "blue_light" |"bluetooth" | "blur_effects"
+---@type table
+local toggle_widgets = {
+ airplane_mode = airplane_mode,
+ bluetooth = bluetooth,
+ blue_light = blue_light,
+ blur_effects = blur_effects,
+}
+return toggle_widgets
diff --git a/config/awesome/widget/toggles/scripts/init.lua b/config/awesome/widget/toggles/scripts/init.lua
new file mode 100644
index 000000000..aa4ddf2f2
--- /dev/null
+++ b/config/awesome/widget/toggles/scripts/init.lua
@@ -0,0 +1,40 @@
+---@alias shell_script string | string[]
+---@alias toggle_scripts { toggle_on_script: shell_script , toggle_off_script: shell_script, watch_script: shell_script}
+---@type table
+local curr_dir = require("__tests__.utils").script_path()
+local sh_dir = curr_dir .. "sh/"
+local sh_blue_light_dir = sh_dir .. "blue_light/"
+
+local scripts = {
+ bluetooth = {
+ watch_script = {
+ "bash",
+ "-c",
+ [[rfkill -J | jq -c '.rfkilldevices | map(select(.type | test( "bluetooth"; "i"))) | map(select(.soft == "unblocked")) | if length != 0 then true else false end']],
+ },
+ toggle_off_script = "rfkill block bluetooth",
+ toggle_on_script = "rfkill unblock bluetooth",
+ },
+ airplane_mode = {
+ watch_script = {
+ "bash",
+ "-c",
+ [[rfkill -J | jq -c '.rfkilldevices | map(select(.type | test( "wlan"; "i"))) | map(select(.soft == "unblocked")) | if length != 0 then false else true end']],
+ },
+ toggle_off_script = "rfkill unblock wlan",
+ toggle_on_script = "rfkill block wlan",
+ },
+ blue_light = {
+ -- 🔧 TODO: implement
+ watch_script = _,
+ toggle_off_script = "redshift -x && pkill redshift && killall redshift",
+ toggle_on_script = "redshift -l 0:0 -t 4500:4500 -r &>/dev/null",
+ },
+ blur_effects = {
+ -- 🔧 TODO: implement
+ watch_script = _,
+ toggle_off_script = "sh " .. sh_blue_light_dir .. "/toggle_off_script.sh",
+ toggle_on_script = "sh " .. sh_blue_light_dir .. "/toggle_on_script.sh",
+ },
+}
+return scripts
diff --git a/config/awesome/widget/toggles/scripts/sh/blue-light/toggle_off_script.sh b/config/awesome/widget/toggles/scripts/sh/blue-light/toggle_off_script.sh
new file mode 100644
index 000000000..3351fa7d7
--- /dev/null
+++ b/config/awesome/widget/toggles/scripts/sh/blue-light/toggle_off_script.sh
@@ -0,0 +1,3 @@
+CONFIG_PATH=$(ps aux | grep -i picom | grep -Po '(?<=config).*')
+killall picom
+picom -b --experimental-backends --blur-method "none" --dbus --config $CONFIG_PATH
diff --git a/config/awesome/widget/toggles/scripts/sh/blue-light/toggle_on_script.sh b/config/awesome/widget/toggles/scripts/sh/blue-light/toggle_on_script.sh
new file mode 100644
index 000000000..8649485d0
--- /dev/null
+++ b/config/awesome/widget/toggles/scripts/sh/blue-light/toggle_on_script.sh
@@ -0,0 +1,3 @@
+CONFIG_PATH=$(ps aux | grep -i picom | grep -Po '(?<=config).*')
+killall picom
+picom -b --experimental-backends --blur-method "dual_kawase" --dbus --config $CONFIG_PATH
diff --git a/config/awesome/widget/toggles/styles/basic.lua b/config/awesome/widget/toggles/styles/basic.lua
new file mode 100644
index 000000000..08d3fbbb6
--- /dev/null
+++ b/config/awesome/widget/toggles/styles/basic.lua
@@ -0,0 +1,29 @@
+local awful = require("awful")
+local naughty = require("naughty")
+local gears = require("gears")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local toggle_component = require("widget.shared.components.toggle")
+local name_component = require("widget.shared.components.name")
+---@param args toggle_widget_args
+local create = function(args)
+ local toggle_widget = toggle_component:new(args.toggle_on_callback, args.toggle_off_callback, args.watch_script)
+ local name_widget = name_component:new(args.name, _, _)
+ return wibox.widget({
+ {
+ name_widget,
+ nil,
+ {
+ toggle_widget,
+ layout = wibox.layout.fixed.horizontal,
+ },
+ layout = wibox.layout.align.horizontal,
+ },
+ left = dpi(24),
+ right = dpi(24),
+ forced_height = dpi(48),
+ widget = wibox.container.margin,
+ })
+end
+return create
diff --git a/config/awesome/widget/toggles/styles/circular.lua b/config/awesome/widget/toggles/styles/circular.lua
new file mode 100644
index 000000000..bfc8327d8
--- /dev/null
+++ b/config/awesome/widget/toggles/styles/circular.lua
@@ -0,0 +1,40 @@
+local awful = require("awful")
+local naughty = require("naughty")
+local gears = require("gears")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local toggle_component = require("widget.shared.components.circular_toggle")
+local name_component = require("widget.shared.components.name")
+---@param args toggle_widget_args
+local create = function(args)
+ local toggle_widget_components = toggle_component:new(
+ args.toggle_on_icon,
+ args.toggle_off_icon,
+ args.toggle_on_callback,
+ args.toggle_off_callback,
+ args.watch_script
+ )
+ ---@diagnostic disable-next-line: deprecated
+ local toggle_widget, status_widget = table.unpack(toggle_widget_components)
+ local name_widget = name_component:new(args.name, _, _)
+ local name_and_status_widget = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ spacing = dpi(5),
+ name_widget,
+ status_widget,
+ })
+ return wibox.widget({
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(10),
+ toggle_widget,
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ name_and_status_widget,
+ nil,
+ },
+ })
+end
+return create
diff --git a/config/awesome/floppy/widget/tray-toggle/icons/left-arrow.svg b/config/awesome/widget/tray-toggle/icons/left-arrow.svg
similarity index 100%
rename from config/awesome/floppy/widget/tray-toggle/icons/left-arrow.svg
rename to config/awesome/widget/tray-toggle/icons/left-arrow.svg
diff --git a/config/awesome/floppy/widget/tray-toggle/icons/right-arrow.svg b/config/awesome/widget/tray-toggle/icons/right-arrow.svg
similarity index 100%
rename from config/awesome/floppy/widget/tray-toggle/icons/right-arrow.svg
rename to config/awesome/widget/tray-toggle/icons/right-arrow.svg
diff --git a/config/awesome/floppy/widget/tray-toggle/init.lua b/config/awesome/widget/tray-toggle/init.lua
similarity index 100%
rename from config/awesome/floppy/widget/tray-toggle/init.lua
rename to config/awesome/widget/tray-toggle/init.lua
diff --git a/config/awesome/widget/user-profile/init.lua b/config/awesome/widget/user-profile/init.lua
new file mode 100644
index 000000000..1463c6252
--- /dev/null
+++ b/config/awesome/widget/user-profile/init.lua
@@ -0,0 +1,128 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local gears = require("gears")
+local naughty = require("naughty")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local apps = require("configuration.apps")
+local clickable_container = require("widget.clickable-container")
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "configuration/user-profile/"
+local user_icon_dir = "/var/lib/AccountsService/icons/"
+
+title_table = {
+ "Hey, I have a message for you",
+ "Listen here you little shit!",
+ "Le' me tell you a secret",
+ "I never lie",
+ "Message received from your boss",
+}
+
+message_table = {
+ "Let me rate your face! Oops... It looks like I can't compute negative numbers. You're ugly af, sorry",
+ "Lookin' good today, now fuck off!",
+ "The last thing I want to do is hurt you. But it’s still on the list.",
+ "If I agreed with you we’d both be wrong.",
+ "I intend to live forever. So far, so good.",
+ "Jesus loves you, but everyone else thinks you’re an asshole.",
+ "Your baby is so ugly, you should have thrown it away and kept the stork.",
+ "If your brain was dynamite, there wouldn’t be enough to blow your hat off.",
+ "You are more disappointing than an unsalted pretzel.",
+ "Your kid is so ugly, he makes his Happy Meal cry.",
+ "Your secrets are always safe with me. I never even listen when you tell me them.",
+ "I only take you everywhere I go just so I don’t have to kiss you goodbye.",
+ "You look so pretty. Not at all gross, today.",
+ "It’s impossible to underestimate you.",
+ "I’m not insulting you, I’m describing you.",
+ "Keep rolling your eyes, you might eventually find a brain.",
+ "You bring everyone so much joy, when you leave the room.",
+ "I thought of you today. It reminded me to take out the trash.",
+ "You are the human version of period cramps.",
+ "You’re the reason God created the middle finger.",
+}
+
+local create_profile = function()
+ local profile_imagebox = wibox.widget({
+ {
+ id = "icon",
+ image = widget_icon_dir .. "default.svg",
+ widget = wibox.widget.imagebox,
+ resize = true,
+ forced_height = dpi(28),
+ clip_shape = function(cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
+ end,
+ },
+ layout = wibox.layout.align.horizontal,
+ })
+
+ profile_imagebox:buttons(gears.table.join(
+ awful.button({}, 1, nil, function()
+ awful.spawn.single_instance("mugshot")
+ end),
+ awful.button({}, 3, nil, function()
+ naughty.notification({
+ app_name = "FBI's ChatBot v69",
+ title = title_table[math.random(#title_table)],
+ message = message_table[math.random(#message_table)] .. "\n\n- xXChatBOT69Xx",
+ urgency = "normal",
+ })
+ end)
+ ))
+
+ local profile_name = wibox.widget({
+ font = "Inter Regular 10",
+ markup = "User",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox,
+ })
+
+ local update_profile_image = function()
+ awful.spawn.easy_async_with_shell(apps.utils.update_profile, function(stdout)
+ stdout = stdout:gsub("%\n", "")
+ if not stdout:match("default") then
+ profile_imagebox.icon:set_image(stdout)
+ else
+ profile_imagebox.icon:set_image(widget_icon_dir .. "default.svg")
+ end
+ end)
+ end
+
+ update_profile_image()
+
+ awful.spawn.easy_async_with_shell(
+ [[
+ sh -c '
+ fullname="$(getent passwd `whoami` | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")"
+ if [ -z "$fullname" ];
+ then
+ printf "$(whoami)@$(hostname)"
+ else
+ printf "$fullname"
+ fi
+ '
+ ]],
+ function(stdout)
+ local stdout = stdout:gsub("%\n", "")
+ profile_name:set_markup(stdout)
+ end
+ )
+
+ local user_profile = wibox.widget({
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ profile_imagebox,
+ nil,
+ },
+ profile_name,
+ })
+
+ return user_profile
+end
+
+return create_profile
diff --git a/config/awesome/widget/volume-slider/init.lua b/config/awesome/widget/volume-slider/init.lua
new file mode 100644
index 000000000..27033cfb6
--- /dev/null
+++ b/config/awesome/widget/volume-slider/init.lua
@@ -0,0 +1,133 @@
+local wibox = require("wibox")
+local gears = require("gears")
+local awful = require("awful")
+local beautiful = require("beautiful")
+local spawn = awful.spawn
+local dpi = beautiful.xresources.apply_dpi
+local icons = require("theme.icons")
+local icon_class = require("widget.meters.entities.icon")
+local name_class = require("widget.meters.entities.name")
+
+local height_map = {
+ floppy = dpi(2),
+}
+local handle_width_map = {
+ floppy = dpi(15),
+}
+
+local action_name = name_class:new("Volume", _, _)
+local icon = icon_class:new(icons.volume, _, true, _)
+
+local slider = wibox.widget({
+ nil,
+ {
+ id = "volume_slider",
+ bar_shape = gears.shape.rounded_rect,
+ bar_height = height_map[THEME] or dpi(24),
+ bar_color = "#ffffff20",
+ bar_active_color = "#f2f2f2EE",
+ handle_color = "#ffffff",
+ handle_shape = gears.shape.circle,
+ handle_width = handle_width_map[THEME] or dpi(24),
+ handle_border_color = "#00000012",
+ handle_border_width = dpi(1),
+ maximum = 100,
+ widget = wibox.widget.slider,
+ },
+ nil,
+ expand = "none",
+ forced_height = dpi(24),
+ layout = wibox.layout.align.vertical,
+})
+
+local volume_slider = slider.volume_slider
+
+volume_slider:connect_signal("property::value", function()
+ local volume_level = volume_slider:get_value()
+
+ spawn("amixer -D pulse sset Master " .. volume_level .. "%", false)
+
+ -- Update volume osd
+ awesome.emit_signal("module::volume_osd", volume_level)
+end)
+
+volume_slider:buttons(gears.table.join(
+ awful.button({}, 4, nil, function()
+ if volume_slider:get_value() > 100 then
+ volume_slider:set_value(100)
+ return
+ end
+ volume_slider:set_value(volume_slider:get_value() + 5)
+ end),
+ awful.button({}, 5, nil, function()
+ if volume_slider:get_value() < 0 then
+ volume_slider:set_value(0)
+ return
+ end
+ volume_slider:set_value(volume_slider:get_value() - 5)
+ end)
+))
+
+local update_slider = function()
+ awful.spawn.easy_async_with_shell([[bash -c "amixer -D pulse sget Master"]], function(stdout)
+ local volume = string.match(stdout, "(%d?%d?%d)%%")
+ volume_slider:set_value(tonumber(volume))
+ end)
+end
+
+-- Update on startup
+update_slider()
+
+local action_jump = function()
+ local sli_value = volume_slider:get_value()
+ local new_value = 0
+
+ if sli_value >= 0 and sli_value < 50 then
+ new_value = 50
+ elseif sli_value >= 50 and sli_value < 100 then
+ new_value = 100
+ else
+ new_value = 0
+ end
+ volume_slider:set_value(new_value)
+end
+
+icon:buttons(awful.util.table.join(awful.button({}, 1, nil, function()
+ action_jump()
+end)))
+
+-- The emit will come from the global keybind
+awesome.connect_signal("widget::volume", function()
+ update_slider()
+end)
+
+-- The emit will come from the OSD
+awesome.connect_signal("widget::volume:update", function(value)
+ volume_slider:set_value(tonumber(value))
+end)
+
+local volume_setting = wibox.widget({
+ layout = wibox.layout.fixed.vertical,
+ forced_height = dpi(48),
+ spacing = dpi(5),
+ action_name,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ spacing = dpi(5),
+ {
+ layout = wibox.layout.align.vertical,
+ expand = "none",
+ nil,
+ {
+ layout = wibox.layout.fixed.horizontal,
+ forced_height = dpi(24),
+ forced_width = dpi(24),
+ icon,
+ },
+ nil,
+ },
+ slider,
+ },
+})
+
+return volume_setting
diff --git a/config/awesome/floppy/widget/weather/icons/d_rain.svg b/config/awesome/widget/weather/icons/d_rain.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/d_rain.svg
rename to config/awesome/widget/weather/icons/d_rain.svg
diff --git a/config/awesome/floppy/widget/weather/icons/dbroken_clouds.svg b/config/awesome/widget/weather/icons/dbroken_clouds.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/dbroken_clouds.svg
rename to config/awesome/widget/weather/icons/dbroken_clouds.svg
diff --git a/config/awesome/floppy/widget/weather/icons/dfew_clouds.svg b/config/awesome/widget/weather/icons/dfew_clouds.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/dfew_clouds.svg
rename to config/awesome/widget/weather/icons/dfew_clouds.svg
diff --git a/config/awesome/floppy/widget/weather/icons/dmist.svg b/config/awesome/widget/weather/icons/dmist.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/dmist.svg
rename to config/awesome/widget/weather/icons/dmist.svg
diff --git a/config/awesome/floppy/widget/weather/icons/dscattered_clouds.svg b/config/awesome/widget/weather/icons/dscattered_clouds.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/dscattered_clouds.svg
rename to config/awesome/widget/weather/icons/dscattered_clouds.svg
diff --git a/config/awesome/floppy/widget/weather/icons/dshower_rain.svg b/config/awesome/widget/weather/icons/dshower_rain.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/dshower_rain.svg
rename to config/awesome/widget/weather/icons/dshower_rain.svg
diff --git a/config/awesome/floppy/widget/weather/icons/dthunderstorm.svg b/config/awesome/widget/weather/icons/dthunderstorm.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/dthunderstorm.svg
rename to config/awesome/widget/weather/icons/dthunderstorm.svg
diff --git a/config/awesome/floppy/widget/weather/icons/moon_icon.svg b/config/awesome/widget/weather/icons/moon_icon.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/moon_icon.svg
rename to config/awesome/widget/weather/icons/moon_icon.svg
diff --git a/config/awesome/floppy/widget/weather/icons/n_rain.svg b/config/awesome/widget/weather/icons/n_rain.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/n_rain.svg
rename to config/awesome/widget/weather/icons/n_rain.svg
diff --git a/config/awesome/floppy/widget/weather/icons/nbroken_clouds.svg b/config/awesome/widget/weather/icons/nbroken_clouds.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/nbroken_clouds.svg
rename to config/awesome/widget/weather/icons/nbroken_clouds.svg
diff --git a/config/awesome/floppy/widget/weather/icons/nfew_clouds.svg b/config/awesome/widget/weather/icons/nfew_clouds.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/nfew_clouds.svg
rename to config/awesome/widget/weather/icons/nfew_clouds.svg
diff --git a/config/awesome/floppy/widget/weather/icons/nmist.svg b/config/awesome/widget/weather/icons/nmist.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/nmist.svg
rename to config/awesome/widget/weather/icons/nmist.svg
diff --git a/config/awesome/floppy/widget/weather/icons/nscattered_clouds.svg b/config/awesome/widget/weather/icons/nscattered_clouds.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/nscattered_clouds.svg
rename to config/awesome/widget/weather/icons/nscattered_clouds.svg
diff --git a/config/awesome/floppy/widget/weather/icons/nshower_rain.svg b/config/awesome/widget/weather/icons/nshower_rain.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/nshower_rain.svg
rename to config/awesome/widget/weather/icons/nshower_rain.svg
diff --git a/config/awesome/floppy/widget/weather/icons/nthunderstorm.svg b/config/awesome/widget/weather/icons/nthunderstorm.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/nthunderstorm.svg
rename to config/awesome/widget/weather/icons/nthunderstorm.svg
diff --git a/config/awesome/floppy/widget/weather/icons/refresh.svg b/config/awesome/widget/weather/icons/refresh.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/refresh.svg
rename to config/awesome/widget/weather/icons/refresh.svg
diff --git a/config/awesome/floppy/widget/weather/icons/snow.svg b/config/awesome/widget/weather/icons/snow.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/snow.svg
rename to config/awesome/widget/weather/icons/snow.svg
diff --git a/config/awesome/floppy/widget/weather/icons/sun_icon.svg b/config/awesome/widget/weather/icons/sun_icon.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/sun_icon.svg
rename to config/awesome/widget/weather/icons/sun_icon.svg
diff --git a/config/awesome/floppy/widget/weather/icons/sunrise.svg b/config/awesome/widget/weather/icons/sunrise.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/sunrise.svg
rename to config/awesome/widget/weather/icons/sunrise.svg
diff --git a/config/awesome/floppy/widget/weather/icons/sunset.svg b/config/awesome/widget/weather/icons/sunset.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/sunset.svg
rename to config/awesome/widget/weather/icons/sunset.svg
diff --git a/config/awesome/floppy/widget/weather/icons/weather-error.svg b/config/awesome/widget/weather/icons/weather-error.svg
similarity index 100%
rename from config/awesome/floppy/widget/weather/icons/weather-error.svg
rename to config/awesome/widget/weather/icons/weather-error.svg
diff --git a/config/awesome/linear/widget/weather/init.lua b/config/awesome/widget/weather/init.lua
similarity index 100%
rename from config/awesome/linear/widget/weather/init.lua
rename to config/awesome/widget/weather/init.lua
diff --git a/config/awesome/widget/xdg-folders/builder/init.lua b/config/awesome/widget/xdg-folders/builder/init.lua
new file mode 100644
index 000000000..b96e2a6b2
--- /dev/null
+++ b/config/awesome/widget/xdg-folders/builder/init.lua
@@ -0,0 +1,68 @@
+local repo = require("widget.xdg-folders.repo")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local button_class = require("widget.xdg-folders.entities.button")
+local helpers = require("widget.xdg-folders.helpers")
+local separator = require("widget.shared.components.separator")
+---@class xdg_folders_builder
+---@field elements table
+---@field separators table
+---@field with_home fun(builder):xdg_folders_builder
+---@field with_downloads fun(builder):xdg_folders_builder
+---@field with_documents fun(builder):xdg_folders_builder
+---@field with_separator fun(builder):xdg_folders_builder
+---@field with_trash fun(builder):xdg_folders_builder
+---@field horizontal fun(builder):xdg_folders_builder
+---@field vertical fun(builder):xdg_folders_builder
+---@field build fun(builder):any
+---@type xdg_folders_builder
+local builder = { elements = {}, separators = {} }
+function builder:add_button(params)
+ table.insert(self.elements, button_class:new(params.name, params.image, params.margins, params.click_cb))
+ return self
+end
+function builder:with_home()
+ return self:add_button(repo.home)
+end
+function builder:with_documents()
+ return self:add_button(repo.documents)
+end
+function builder:with_downloads()
+ return self:add_button(repo.downloads)
+end
+function builder:with_separator()
+ local sep = separator:new()
+ table.insert(self.separators, sep)
+ table.insert(self.elements, sep)
+ return self
+end
+function builder:with_trash()
+ self:add_button(repo.trash)
+ local trash_button = self.elements[#self.elements]
+ helpers.check_trash_list(trash_button)
+ return self
+end
+function builder:change_separators_orientation(orientation)
+ for _, sep in ipairs(self.separators) do
+ print(sep)
+ sep:set_orientation(orientation)
+ end
+end
+function builder:horizontal()
+ self:change_separators_orientation("vertical")
+ self.align_widget = wibox.layout.fixed.horizontal()
+ return self
+end
+function builder:vertical()
+ self:change_separators_orientation("horizontal")
+ self.align_widget = wibox.layout.fixed.vertical()
+ return self
+end
+function builder:build()
+ for i, v in ipairs(self.elements) do
+ self.align_widget:add(v.widget)
+ end
+ return self.align_widget
+end
+return builder
diff --git a/config/awesome/widget/xdg-folders/entities/button.lua b/config/awesome/widget/xdg-folders/entities/button.lua
new file mode 100644
index 000000000..5abbe8ef1
--- /dev/null
+++ b/config/awesome/widget/xdg-folders/entities/button.lua
@@ -0,0 +1,58 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local naughty = require("naughty")
+local gears = require("gears")
+local clickable_container = require("widget.clickable-container")
+local dpi = require("beautiful").xresources.apply_dpi
+
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/xdg-folders/icons/"
+local button = {
+ icon_params = {
+ image = _,
+ resize = true,
+ widget = wibox.widget.imagebox,
+ },
+ margins = dpi(10),
+ click_cb = function() end,
+}
+
+---@param name string
+---@param image string
+---@param margins any
+---@param click_cb function
+function button:new(name, image, margins, click_cb)
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ o.icon_params.image = image
+ o.icon_widget = wibox.widget(o.icon_params)
+ local layout_widget = wibox.layout.fixed.horizontal()
+ layout_widget:add(o.icon_widget)
+ local margin_widget = wibox.container.margin(layout_widget)
+ margin_widget.margins = margins or o.margins
+ o.widget = wibox.widget({
+ margin_widget,
+ widget = clickable_container,
+ })
+ o.widget:buttons(gears.table.join(awful.button({}, 1, nil, click_cb or o.click_cb)))
+ o.tooltip = awful.tooltip({
+ objects = { o.widget },
+ mode = "outside",
+ align = "right",
+ text = name or "N/A",
+ margin_leftright = dpi(8),
+ margin_topbottom = dpi(8),
+ preferred_positions = { "top", "bottom", "right", "left" },
+ })
+ return o
+end
+---@param image string
+function button:set_image(image)
+ self.icon_widget.image = image
+end
+function button:set_markup(image)
+ self.tooltip.markup = image
+end
+
+return button
diff --git a/config/awesome/widget/xdg-folders/helpers/init.lua b/config/awesome/widget/xdg-folders/helpers/init.lua
new file mode 100644
index 000000000..50a7ad95c
--- /dev/null
+++ b/config/awesome/widget/xdg-folders/helpers/init.lua
@@ -0,0 +1,20 @@
+local awful = require("awful")
+local icons = require("widget.xdg-folders.icons")
+local check_trash_list = function(trash_button)
+ awful.spawn.easy_async_with_shell("gio list trash:/// | wc -l", function(stdout)
+ if tonumber(stdout) > 0 then
+ trash_button:set_image(icons.trash_full)
+ awful.spawn.easy_async_with_shell("gio list trash:///", function(stdout)
+ trash_button:set_markup("Trash contains:\n" .. stdout:gsub("\n$", ""))
+ end)
+ else
+ trash_button:set_image(icons.trash_empty)
+ trash_button:set_markup("Trash empty")
+ end
+ end)
+end
+---@type {check_trash_list: function}
+local helpers = {
+ check_trash_list = check_trash_list,
+}
+return helpers
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/folder-documents.svg b/config/awesome/widget/xdg-folders/icons/folder-documents.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/folder-documents.svg
rename to config/awesome/widget/xdg-folders/icons/folder-documents.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/folder-download.svg b/config/awesome/widget/xdg-folders/icons/folder-download.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/folder-download.svg
rename to config/awesome/widget/xdg-folders/icons/folder-download.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/folder-pictures.svg b/config/awesome/widget/xdg-folders/icons/folder-pictures.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/folder-pictures.svg
rename to config/awesome/widget/xdg-folders/icons/folder-pictures.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/folder-videos.svg b/config/awesome/widget/xdg-folders/icons/folder-videos.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/folder-videos.svg
rename to config/awesome/widget/xdg-folders/icons/folder-videos.svg
diff --git a/config/awesome/widget/xdg-folders/icons/init.lua b/config/awesome/widget/xdg-folders/icons/init.lua
new file mode 100644
index 000000000..8ccce9168
--- /dev/null
+++ b/config/awesome/widget/xdg-folders/icons/init.lua
@@ -0,0 +1,14 @@
+local gears = require("gears")
+local config_dir = gears.filesystem.get_configuration_dir()
+local widget_icon_dir = config_dir .. "widget/xdg-folders/icons/"
+---@type table
+local icons = {
+ home = widget_icon_dir .. "user-home.svg",
+ documents = widget_icon_dir .. "folder-documents.svg",
+ downloads = widget_icon_dir .. "folder-download.svg",
+ pictures = widget_icon_dir .. "folder-pictures.svg",
+ videos = widget_icon_dir .. "folder-videos.svg",
+ trash_empty = widget_icon_dir .. "user-trash-empty.svg",
+ trash_full = widget_icon_dir .. "user-trash-full.svg",
+}
+return icons
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/no.svg b/config/awesome/widget/xdg-folders/icons/no.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/no.svg
rename to config/awesome/widget/xdg-folders/icons/no.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/open-folder.svg b/config/awesome/widget/xdg-folders/icons/open-folder.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/open-folder.svg
rename to config/awesome/widget/xdg-folders/icons/open-folder.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/user-home.svg b/config/awesome/widget/xdg-folders/icons/user-home.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/user-home.svg
rename to config/awesome/widget/xdg-folders/icons/user-home.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/user-trash-empty.svg b/config/awesome/widget/xdg-folders/icons/user-trash-empty.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/user-trash-empty.svg
rename to config/awesome/widget/xdg-folders/icons/user-trash-empty.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/user-trash-full.svg b/config/awesome/widget/xdg-folders/icons/user-trash-full.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/user-trash-full.svg
rename to config/awesome/widget/xdg-folders/icons/user-trash-full.svg
diff --git a/config/awesome/floppy/widget/xdg-folders/icons/yes.svg b/config/awesome/widget/xdg-folders/icons/yes.svg
similarity index 100%
rename from config/awesome/floppy/widget/xdg-folders/icons/yes.svg
rename to config/awesome/widget/xdg-folders/icons/yes.svg
diff --git a/config/awesome/widget/xdg-folders/init.lua b/config/awesome/widget/xdg-folders/init.lua
new file mode 100644
index 000000000..63eaeee47
--- /dev/null
+++ b/config/awesome/widget/xdg-folders/init.lua
@@ -0,0 +1,36 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local beautiful = require("beautiful")
+local dpi = beautiful.xresources.apply_dpi
+local home = require("widget.xdg-folders.home")
+local documents = require("widget.xdg-folders.documents")
+local downloads = require("widget.xdg-folders.downloads")
+local button_widgets = require("widget.xdg-folders.repo")
+
+-- local settings = require("widget.xdg-folders.settings")
+-- local create_xdg_widgets = function()
+-- local separator = wibox.widget({
+-- orientation = settings[THEME].orientation,
+-- forced_height = dpi(1),
+-- forced_width = dpi(1),
+-- span_ratio = 0.55,
+-- widget = wibox.widget.separator,
+-- })
+
+-- return wibox.widget({
+-- layout = settings[THEME].layout_align,
+-- {
+-- separator,
+-- button_widgets.home,
+-- button_widgets.documents,
+-- button_widgets.downloads,
+-- -- require('widget.xdg-folders.pictures')(),
+-- -- require("widget.xdg-folders.videos")(),
+-- separator,
+-- require("widget.xdg-folders.trash")(),
+-- layout = settings[THEME].layout_fixed,
+-- },
+-- })
+-- end
+
+-- return create_xdg_widgets
diff --git a/config/awesome/widget/xdg-folders/repo/init.lua b/config/awesome/widget/xdg-folders/repo/init.lua
new file mode 100644
index 000000000..609116263
--- /dev/null
+++ b/config/awesome/widget/xdg-folders/repo/init.lua
@@ -0,0 +1,47 @@
+local awful = require("awful")
+local gears = require("gears")
+local icons = require("widget.xdg-folders.icons")
+local button_widget = require("widget.xdg-folders.entities.button")
+---@alias folder_repo {name: string, image: string, click_cb: function, margins: string}
+---@alias folder_names "home" | "documents" | "downloads" | "pictures" | "videos" | "trash"
+---@type table< folder_names, folder_repo>
+local repo = {
+ home = {
+ image = icons.home,
+ name = "Home",
+ click_cb = function()
+ awful.spawn.with_shell("xdg-open $(xdg-user-dir)")
+ end,
+ margins = _,
+ },
+ documents = {
+ image = icons.documents,
+ name = "Documents",
+ click_cb = function()
+ awful.spawn.with_shell("xdg-open $(xdg-user-dir DOCUMENTS)")
+ end,
+ margins = _,
+ },
+ downloads = {
+ image = icons.downloads,
+ name = "Downloads",
+ click_cb = function()
+ awful.spawn.with_shell("xdg-open $(xdg-user-dir DOWNLOAD)")
+ end,
+ margins = _,
+ },
+ trash = {
+ image = icons.trash_empty,
+ name = "Trash",
+ click_cb = function()
+ awful.spawn({ "gio", "open", "trash:///" }, false)
+ end,
+ margins = _,
+ },
+}
+---@type table
+-- local button_widgets = {}
+-- for i, v in pairs(repo) do
+-- button_widgets[i] = button_widget:new(v.name, v.image, v.margins, v.click_cb)
+-- end
+return repo