diff --git a/57384097.jpg b/57384097.jpg
new file mode 100644
index 0000000..9c54dfc
Binary files /dev/null and b/57384097.jpg differ
diff --git a/awesome/awesome/bindings/bindtotags.lua b/awesome/awesome/bindings/bindtotags.lua
new file mode 100644
index 0000000..27df697
--- /dev/null
+++ b/awesome/awesome/bindings/bindtotags.lua
@@ -0,0 +1,69 @@
+-- Awesome Libs
+local awful = require("awful")
+local gears = require("gears")
+
+local _M = {}
+local modkey = RC.vars.modkey
+
+function _M.get(globalkeys)
+ for i = 1, 9 do
+ globalkeys = gears.table.join(globalkeys,
+
+ -- View tag only
+ awful.key(
+ {modkey},
+ "#" .. i + 9,
+ function()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ tag:view_only()
+ end
+ end,
+ {description = "View Tag " .. i, group = "Tag"}
+ ),
+ -- Brings the window over without chaning the tag, reverts automatically on tag change
+ awful.key(
+ {modkey, "Control"},
+ "#" .. i + 9,
+ function()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end,
+ {description = "Toggle Tag " .. i, group = "Tag"}
+ ),
+ -- Brings the window over without chaning the tag, reverts automatically on tag change
+ awful.key(
+ {modkey, "Shift"},
+ "#" .. i + 9,
+ function()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end,
+ {description = "Move focused client on tag " .. i, group = "Tag"}
+ ),
+ -- Brings the window over without chaning the tag, reverts automatically on tag change
+ awful.key(
+ {modkey, "Control", "Shift"},
+ "#" .. i + 9,
+ function()
+ local screen = awful.screen.focused()
+ local tag = screen.tags[i]
+ if tag then
+ awful.tag.viewtoggle(tag)
+ end
+ end,
+ {description = "Move focused client on tag " .. i, group = "Tag"}
+ )
+ )
+ end
+ return globalkeys
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/bindings/clientbuttons.lua b/awesome/awesome/bindings/clientbuttons.lua
new file mode 100644
index 0000000..12f54e4
--- /dev/null
+++ b/awesome/awesome/bindings/clientbuttons.lua
@@ -0,0 +1,25 @@
+-- Awesome Libs
+local awful = require("awful")
+local gears = require("gears")
+
+local _M = {}
+local modkey = RC.vars.modkey
+
+function _M.get()
+ local clientbuttons = gears.table.join(
+ awful.button({ }, 1, function (c)
+ c:emit_signal("request::activate", "mouse_click", { raise = true })
+ end),
+ awful.button({ modkey }, 1, function (c)
+ c:emit_signal("request::activate", "mouse_click", { raise = true })
+ awful.mouse.client.move(c)
+ end),
+ awful.button({ modkey }, 3, function (c)
+ c:emit_signal("request::activate", "mouse_click", { raise = true })
+ awful.mouse.client.resize(c)
+ end)
+ )
+ return clientbuttons
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/bindings/clientkeys.lua b/awesome/awesome/bindings/clientkeys.lua
new file mode 100644
index 0000000..23aea1e
--- /dev/null
+++ b/awesome/awesome/bindings/clientkeys.lua
@@ -0,0 +1,47 @@
+-- Awesome Libs
+local awful = require("awful")
+local gears = require("gears")
+
+local _M = {}
+local modkey = RC.vars.modkey
+
+function _M.get()
+ local clientkeys = gears.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 window", group = "Client" }
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "space",
+ function (c)
+ c.floating = not c.floating
+ end,
+ { description = "Toggle floating window", group = "Client" }
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "r",
+ function (c)
+ awesome.restart()
+ end,
+ { description = "Restart awesome", group = "Client" }
+ )
+ )
+ return clientkeys
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/bindings/globalbuttons.lua b/awesome/awesome/bindings/globalbuttons.lua
new file mode 100644
index 0000000..f11a43d
--- /dev/null
+++ b/awesome/awesome/bindings/globalbuttons.lua
@@ -0,0 +1,19 @@
+-- Awesome Libs
+local gears = require("gears")
+local awful = require("awful")
+
+local _M = {}
+local modkey = RC.vars.modkey
+
+function _M.get()
+ local globalbuttons = gears.table.join(
+ awful.button({ }, 3, function()
+ RC.mainmenu:toggle()
+ end),
+ awful.button({ }, 4, awful.tag.viewnext),
+ awful.button({ }, 5, awful.tag.viewprev)
+ )
+ return globalbuttons
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/bindings/globalkeys.lua b/awesome/awesome/bindings/globalkeys.lua
new file mode 100644
index 0000000..6e73ef5
--- /dev/null
+++ b/awesome/awesome/bindings/globalkeys.lua
@@ -0,0 +1,349 @@
+-- Awesome Libs
+local gears = require("gears")
+local awful = require("awful")
+local hotkeys_popup = require("awful.hotkeys_popup")
+
+-- Resource Configuration
+local modkey = RC.vars.modkey
+local terminal = RC.vars.terminal
+
+local _M = {}
+
+function _M.get()
+ local globalkeys = gears.table.join(
+ awful.key(
+ { modkey },
+ "s",
+ hotkeys_popup.show_help,
+ {description="Cheet Sheet", group="Awesome"}
+ ),
+ -- Tag browsing
+ awful.key(
+ { modkey },
+ "Left",
+ awful.tag.viewprev,
+ {description = "View previous", group = "Tag"}
+ ),
+ awful.key(
+ { modkey },
+ "Right",
+ awful.tag.viewnext,
+ {description = "View next", group = "Tag"}
+ ),
+ awful.key(
+ { modkey },
+ "Escape",
+ awful.tag.history.restore,
+ {description = "Go back", group = "Tag"}
+ ),
+ awful.key(
+ { modkey },
+ "j",
+ function ()
+ awful.client.focus.byidx( 1)
+ end,
+ {description = "Focus next by index", group = "Client"}
+ ),
+ awful.key(
+ { modkey },
+ "k",
+ function ()
+ awful.client.focus.byidx(-1)
+ end,
+ {description = "Focus previous by index", group = "Client"}
+ ),
+ awful.key(
+ { modkey },
+ "w",
+ function ()
+ RC.mainmenu:show()
+ end,
+ {description = "Show main menu", group = "Awesome"}
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "j",
+ function ()
+ awful.client.swap.byidx( 1)
+ end,
+ {description = "Swap with next client by index", group = "Client"}
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "k",
+ function ()
+ awful.client.swap.byidx( -1)
+ end,
+ {description = "Swap with previous client by index", group = "Client"}
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "j",
+ function ()
+ awful.screen.focus_relative( 1)
+ end,
+ {description = "Focus the next screen", group = "Screen"}
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "k",
+ function ()
+ awful.screen.focus_relative(-1)
+ end,
+ {description = "Focus the previous screen", group = "Screen"}
+ ),
+ 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 },
+ "Return",
+ function ()
+ awful.spawn(terminal)
+ end,
+ {description = "Open terminal", group = "Launcher"}
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "r",
+ awesome.restart,
+ {description = "Reload awesome", group = "Awesome"}
+ ),
+ awful.key(
+ { modkey },
+ "l",
+ function ()
+ awful.tag.incmwfact( 0.05)
+ end,
+ {description = "Increase master width factor", group = "Layout"}
+ ),
+ awful.key(
+ { modkey },
+ "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", group = "Layout"}
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "n",
+ function ()
+ local c = awful.client.restore()
+ -- Focus restored client
+ if c then
+ c:emit_signal(
+ "request::activate", "key.unminimize", {raise = true}
+ )
+ end
+ end,
+ {description = "Restore minimized", group = "Client"}
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "Up",
+ function ()
+ awful.client.moveresize( 0, 0, 0, -20)
+ end
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "Down",
+ function ()
+ awful.client.moveresize( 0, 0, 0, 20)
+ end
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "Left",
+ function ()
+ awful.client.moveresize( 0, 0, -20, 0)
+ end
+ ),
+ awful.key(
+ { modkey, "Control" },
+ "Right",
+ function ()
+ awful.client.moveresize( 0, 0, 20, 0)
+ end
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "Down",
+ function ()
+ awful.client.moveresize( 0, 20, 0, 0)
+ end
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "Up",
+ function ()
+ awful.client.moveresize( 0, -20, 0, 0)
+ end
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "Left",
+ function ()
+ awful.client.moveresize(-20, 0, 0, 0)
+ end
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "Right",
+ function ()
+ awful.client.moveresize( 20, 0, 0, 0)
+ end
+ ),
+ awful.key(
+ { modkey },
+ "d",
+ function ()
+ awful.spawn("rofi -show drun")
+ end,
+ { descripton = "Start a Application", group = "Application" }
+ ),
+ awful.key(
+ { modkey },
+ "Tab",
+ function ()
+ awful.spawn("rofi -show window")
+ end,
+ { descripton = "Start a Application", group = "Application" }
+ ),
+ awful.key(
+ { modkey },
+ "e",
+ function ()
+ awful.spawn('nautilus')
+ end,
+ { descripton = "Start a Application", group = "Application" }
+ ),
+ awful.key(
+ { },
+ "Print",
+ function ()
+ awful.spawn("flameshot gui")
+ end
+ ),
+ awful.key(
+ { },
+ "XF86AudioLowerVolume",
+ function (c)
+ awful.spawn("amixer sset Master 5%-")
+ awesome.emit_signal("widget::volume")
+ awesome.emit_signal("module::volume_osd:show", true)
+ awesome.emit_signal("module::slider:update")
+ awesome.emit_signal("widget::volume_osd:rerun")
+ end
+ ),
+ awful.key(
+ { },
+ "XF86AudioRaiseVolume",
+ function (c)
+ awful.spawn("amixer sset Master 5%+")
+ awesome.emit_signal("widget::volume")
+ awesome.emit_signal("module::volume_osd:show", true)
+ awesome.emit_signal("module::slider:update")
+ awesome.emit_signal("widget::volume_osd:rerun")
+ end
+ ),
+ awful.key(
+ { },
+ "XF86AudioMute",
+ function (c)
+ awful.spawn("pactl -- set-sink-mute @DEFAULT_SINK@ toggle")
+ awesome.emit_signal("widget::volume")
+ awesome.emit_signal("module::volume_osd:show", true)
+ awesome.emit_signal("module::slider:update")
+ awesome.emit_signal("widget::volume_osd:rerun")
+
+ end
+ ),
+ awful.key(
+ { modkey },
+ "F5",
+ function (c)
+ awful.spawn("xbacklight -inc 10")
+ awesome.emit_signal("module::brightness_osd:show", true)
+ awesome.emit_signal("module::brightness_slider:update")
+ awesome.emit_signal("widget::brightness_osd:rerun")
+ end
+ ),
+ awful.key(
+ { modkey },
+ "F4",
+ function (c)
+ awful.spawn("xbacklight -dec 10")
+ awesome.emit_signal("module::brightness_osd:show", true)
+ awesome.emit_signal("module::brightness_slider:update")
+ awesome.emit_signal("widget::brightness_osd:rerun")
+ end
+ ),
+ awful.key(
+ { modkey, "Shift" },
+ "q",
+ function ()
+ local t = awful.screen.focused().selected_tag
+ t:delete()
+ end
+ )
+ )
+
+ return globalkeys
+end
+
+return setmetatable({ }, { __call = function(_, ...) return _M.get(...) end })
\ No newline at end of file
diff --git a/awesome/awesome/deco/statusbar.lua b/awesome/awesome/deco/statusbar.lua
new file mode 100644
index 0000000..0eb0153
--- /dev/null
+++ b/awesome/awesome/deco/statusbar.lua
@@ -0,0 +1,244 @@
+--------------------------------------------------------------------------------------------------------------
+-- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen --
+--------------------------------------------------------------------------------------------------------------
+-- Awesome Libs
+local awful = require("awful")
+local beautiful = require("beautiful")
+local colors = require ("theme.crylia.colors")
+local dpi = beautiful.xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+local tasklist = require("theme.crylia.widgets.tasklist")
+local taglist = require("theme.crylia.widgets.taglist")
+
+awful.screen.connect_for_each_screen(
+ function (s)
+
+ -- Bar for the layoutbox, taglist and newtag button
+ s.top_left = awful.popup {
+ widget = {
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ ontop = false,
+ bg = colors.color["Grey900"],
+ stretch = false,
+ visible = true,
+ placement = function (c)
+ awful.placement.top_left(c, {margins = dpi(10)})
+ end,
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end
+ }
+
+ -- Bar for the tasklist
+ s.top_center = awful.popup{
+ widget = {
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ ontop = false,
+ bg = colors.color["Grey900"],
+ visible = true,
+ stretch = false,
+ maximum_width = 600,
+ placement = function (c)
+ awful.placement.top(c, {margins = dpi(10)})
+ end,
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ layout = wibox.layout.flex.horizontal
+ }
+
+ -- Bar for all the widgets
+ s.top_right = awful.popup {
+ widget = {
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ ontop = false,
+ bg = "#212121",
+ visible = true,
+ placement = function (c)
+ awful.placement.top_right(c, {margins = dpi(10)})
+ end,
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end
+ }
+
+ -- Calendar OSD container
+ s.calendar_osd_container = awful.popup{
+ widget = {},
+ ontop = true,
+ bg = "#00000000",
+ border_width = dpi(1),
+ border_color = "#454545",
+ shape = function (cr, height, width)
+ gears.shape.rounded_rect(cr, dpi(500), dpi(300))
+ end,
+ placement = function (c)
+ awful.placement.top_left(c, {margins = dpi(10)})
+ end,
+ }
+
+ -- OSD Container
+ s.osd_container = awful.popup{
+ widget = {
+ margins = dpi(10),
+ widget = wibox.container.margin
+ },
+ ontop = true,
+ bg = "#00000000",
+ border_width = dpi(1),
+ border_color = "#454545",
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 10)
+ end,
+ placement = function (c)
+ awful.placement.bottom_right(c, {margins = dpi(10)})
+ end,
+ }
+
+ -- All the modules and widgets
+ s.volume_osd = require("theme.crylia.modules.volume_osd")()
+ s.brightness_osd = require("theme.crylia.modules.brightness_osd")()
+ s.battery = require("theme.crylia.widgets.battery")()
+ s.network = require("theme.crylia.widgets.network")()
+ s.audio = require("theme.crylia.widgets.audio")()
+ s.date = require("theme.crylia.widgets.date")()
+ s.clock = require("theme.crylia.widgets.clock")()
+ s.bluetooth = require("theme.crylia.widgets.bluetooth")()
+ s.calendar_osd = require("theme.crylia.modules.calendar_osd")()
+ s.addtag = require("theme.crylia.widgets.addtag")()
+ s.layoutlist = require("theme.crylia.widgets.layout_list")()
+
+
+ s.top_left:setup {
+ nil,
+ nil,
+ {
+ {
+ s.layoutlist,
+ margins = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ taglist(s),
+ margins = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ s.addtag,
+ margins = dpi(7),
+ widget = wibox.container.margin
+ },
+ forced_height = 45,
+ layout = wibox.layout.fixed.horizontal
+ },
+ layout = wibox.layout.align.horizontal
+ }
+
+ -- This is the space from top down till the window starts
+ s.top_left:struts{
+ top = 55
+ }
+
+ s.top_center:setup{
+ {
+ tasklist(s),
+ margins = dpi(6),
+ widget = wibox.container.margin
+ },
+ forced_height = 45,
+ layout = wibox.layout.align.horizontal
+ }
+
+ s.top_right:setup {
+ nil,
+ nil,
+ {
+ {
+ s.battery,
+ left = dpi(6),
+ right = dpi(3),
+ top = dpi(6),
+ bottom = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ s.network,
+ left = dpi(3),
+ right = dpi(3),
+ top = dpi(6),
+ bottom = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ s.bluetooth,
+ left = dpi(3),
+ right = dpi(3),
+ top = dpi(6),
+ bottom = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ s.audio,
+ left = dpi(3),
+ right = dpi(3),
+ top = dpi(6),
+ bottom = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ s.date,
+ left = dpi(3),
+ right = dpi(3),
+ top = dpi(6),
+ bottom = dpi(6),
+ widget = wibox.container.margin
+ },
+ {
+ s.clock,
+ left = dpi(3),
+ right = dpi(6),
+ top = dpi(6),
+ bottom = dpi(6),
+ widget = wibox.container.margin
+ },
+ forced_height = 45,
+ layout = wibox.layout.fixed.horizontal
+ },
+ layout = wibox.layout.align.horizontal
+ }
+
+ s.osd_container:setup{
+ {
+ s.volume_osd,
+ layout = wibox.layout.fixed.horizontal
+ },
+ spacing = dpi(10),
+ {
+ s.brightness_osd,
+ layout = wibox.layout.fixed.horizontal
+
+ },
+ layout = wibox.layout.align.vertical
+ }
+ --[[ s.calendar_osd_container:setup{
+ s.calendar_osd,
+ layout = wibox.layout.align.horizontal
+ } ]]
+
+ -- Signals
+ awesome.connect_signal(
+ "hide_centerbar",
+ function (hide)
+ s.top_center.visible = hide
+ end
+ )
+ end
+)
\ No newline at end of file
diff --git a/awesome/awesome/deco/taglist.lua b/awesome/awesome/deco/taglist.lua
new file mode 100644
index 0000000..11b6a10
--- /dev/null
+++ b/awesome/awesome/deco/taglist.lua
@@ -0,0 +1,64 @@
+-- This function does currently nothing
+-- Awesome Libs
+local gears = require("gears")
+local awful = require("awful")
+
+local _M = { }
+
+function _M.get()
+ local taglist_buttons = gears.table.join(
+ awful.button(
+ { },
+ 1,
+ function (t)
+ t:view_only()
+ end
+ ),
+ awful.button(
+ { modkey },
+ 1,
+ function (t)
+ if client.focus then
+ client.focus:move_to_tag(t)
+ end
+ end
+ ),
+ awful.button(
+ { },
+ 3,
+ function (t)
+ if client.focus then
+ client.focus:toggle_tag(t)
+ end
+ end
+ ),
+ awful.button(
+ { modkey },
+ 3,
+ function (t)
+ if client.focus then
+ client.focus:toggle_tag(t)
+ end
+ end
+ ),
+ awful.button(
+ { },
+ 4,
+ function (t)
+ awful.tag.viewnext(t.screen)
+ end
+ ),
+ awful.button(
+ { },
+ 5,
+ function (t)
+ if client.focus then
+ awful.tag.viewprev(t.screen)
+ end
+ end
+ )
+ )
+ return taglist_buttons
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/deco/tasklist.lua b/awesome/awesome/deco/tasklist.lua
new file mode 100644
index 0000000..e099256
--- /dev/null
+++ b/awesome/awesome/deco/tasklist.lua
@@ -0,0 +1,50 @@
+-- This function does currently nothing
+-- Default awesome libraries
+local gears = require("gears")
+local awful = require("awful")
+
+local _M = {}
+
+function _M.get()
+ local tasklist_buttons = gears.table.join(
+ awful.button(
+ { },
+ 1,
+ function (c)
+ if c == client.focus then
+ c.minimized = true
+ else
+ c:emit_signal(
+ "request::activate",
+ "tasklist",
+ {raise = true}
+ )
+ end
+ end
+ ),
+ awful.button(
+ { },
+ 3,
+ function()
+ awful.menu.client_list({ theme = { width = 250 } })
+ end
+ ),
+ awful.button(
+ { },
+ 4,
+ function ()
+ awful.client.focus.byidx(1)
+ end
+ ),
+ awful.button(
+ { },
+ 5,
+ function ()
+ awful.client.focus.byidx(-1)
+ end
+ )
+ )
+ return tasklist_buttons
+end
+
+return setmetatable({}, { __call = function(_, ...) return _M.get(...) end })
\ No newline at end of file
diff --git a/awesome/awesome/deco/wallpaper.lua b/awesome/awesome/deco/wallpaper.lua
new file mode 100644
index 0000000..8c48c24
--- /dev/null
+++ b/awesome/awesome/deco/wallpaper.lua
@@ -0,0 +1,18 @@
+---------------------------------------
+-- This function sets your wallpaper --
+---------------------------------------
+-- Awesome Libs
+local gears = require("gears")
+local beautiful = require("beautiful")
+
+function Set_wallpaper(s)
+ if beautiful.wallpaper then
+ local wallpaper = beautiful.wallpaper
+ if type(wallpaper) == "function" then
+ wallpaper = wallpaper(s)
+ end
+ gears.wallpaper.maximized(wallpaper, s, true)
+ end
+end
+
+screen.connect_signal("property::geometry", Set_wallpaper)
\ No newline at end of file
diff --git a/awesome/awesome/main/error_handling.lua b/awesome/awesome/main/error_handling.lua
new file mode 100644
index 0000000..3036f68
--- /dev/null
+++ b/awesome/awesome/main/error_handling.lua
@@ -0,0 +1,33 @@
+----------------------------------------------------------------
+-- This class is to output an error if you fuck up the config --
+----------------------------------------------------------------
+-- Awesome Libs
+local naughty = require("naughty")
+
+if awesome.startup_errors then
+ naughty.notify({
+ preset = naughty.config.presets.critical,
+ title = "ERROR in Awesome config!",
+ text = awesome.startup_errors
+ })
+end
+
+do
+ local in_error = false
+ awesome.connect_signal(
+ "debug::error",
+ function (err)
+ if in_error then
+ return
+ end
+ in_error = true
+
+ naughty.notify({
+ preset = naughty.config.presets.critical,
+ title = "ERROR",
+ text = tostring(err)
+ })
+ in_error = false
+ end
+ )
+end
\ No newline at end of file
diff --git a/awesome/awesome/main/layouts.lua b/awesome/awesome/main/layouts.lua
new file mode 100644
index 0000000..33b4b29
--- /dev/null
+++ b/awesome/awesome/main/layouts.lua
@@ -0,0 +1,18 @@
+------------------------------------------------------------------------------------------
+-- Layout class, if you want to add or remove layouts from the list do it in this table --
+------------------------------------------------------------------------------------------
+-- Awesome Libs
+local awful = require("awful")
+
+local _M = { }
+
+function _M.get()
+ local layouts = {
+ awful.layout.suit.tile,
+ awful.layout.suit.floating,
+ }
+
+ return layouts
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/main/menu.lua b/awesome/awesome/main/menu.lua
new file mode 100644
index 0000000..5deb118
--- /dev/null
+++ b/awesome/awesome/main/menu.lua
@@ -0,0 +1,46 @@
+--------------------------------------------------------------
+-- Menu class, this is where you change the rightclick menu --
+--------------------------------------------------------------
+-- Awesome Libs
+local awful = require("awful")
+
+-- Menu Namespace
+local M = { }
+
+-- Module Namespace
+local _M = { }
+
+local terminal = RC.vars.terminal
+
+M.session = {
+ { "Logout", function () awesome.quit() end },
+ { "Shutdown", function () awful.spawn.with_shell('shutdown now') end },
+ { "Reboot", function () awful.spawn.with_shell('reboot') end },
+}
+
+M.applications = {
+ { "Brave", "brave-browser" },
+ { "VS Code", "code" },
+ { "Blender", "blender" },
+ { "Steam", "steam" },
+ { "Lutris", "lutris" },
+}
+
+M.settings = {
+ { "General Settings", "gnome-control-center" },
+ { "Power Settings", "xfce4-power-manager-settings" },
+ { "Display Settings", "arandr" }
+}
+
+function _M.get()
+ local menu_items = {
+ { "Power Menu", M.session },
+ { "Applications", M.applications },
+ { "Open Terminal", terminal },
+ { "Settings", M.settings },
+ }
+
+ return menu_items
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/main/rules.lua b/awesome/awesome/main/rules.lua
new file mode 100644
index 0000000..1eb11c1
--- /dev/null
+++ b/awesome/awesome/main/rules.lua
@@ -0,0 +1,52 @@
+-------------------------------------------------------------------------------------------------
+-- This class contains rules for float exceptions or special themeing for certain applications --
+-------------------------------------------------------------------------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local beautiful = require("beautiful")
+
+local _M = { }
+
+function _M.get(clientkeys, clientbuttons)
+ local rules = {
+ {
+ rule = { },
+ properties = {
+ border_width = beautiful.border_width,
+ border_color = beautiful.border_normal,
+ focus = awful.client.focus.filter,
+ raise = true,
+ keys = clientkeys,
+ buttons = clientbuttons,
+ screen = awful.screen.preferred,
+ placement = awful.placement.no_overlap+awful.placement.no_offscreen
+ }
+ },
+ {
+ rule_any = {
+ instance = { },
+ class = {
+ "Arandr",
+ "Tor Browser"
+ },
+ name = { },
+ role = {
+ "AlarmWindow",
+ "ConfigManager",
+ "pop-up"
+ }
+ },
+ properties = { floating = true }
+ },
+ {
+ rule_any = {
+ type = { "normal", "dialog" }
+ },
+ properties = { titlebars_enabled = false }
+ }
+ }
+ return rules
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/main/signals.lua b/awesome/awesome/main/signals.lua
new file mode 100644
index 0000000..a25997a
--- /dev/null
+++ b/awesome/awesome/main/signals.lua
@@ -0,0 +1,40 @@
+-- Awesome Libs
+local awful = require("awful")
+local beautiful = require("beautiful")
+local naughty = require("naughty")
+client.connect_signal(
+ "manage",
+ function (c)
+ if awesome.startup and not c.size_hints.user_porition and not c.size_hints.program_position then
+ awful.placement.no_offscreen(c)
+ end
+ local screen = mouse.screen
+ local s = awful.client.focus.history.get(screen, 0)
+ if not (c == nil) then
+ client.focus = c
+ c:raise()
+ end
+ end
+)
+
+client.connect_signal(
+ "unmanage",
+ function ()
+ local screen = mouse.screen
+ local c = awful.client.focus.history.get(screen, 0)
+ if not (c == nil) then
+ client.focus = c
+ c:raise()
+ end
+ end
+)
+
+-- Workaround for focused border color, why in the love of god doesnt it work with
+-- beautiful.border_focus
+client.connect_signal("focus", function (c)
+ c.border_color = "#bdbdbd"
+end)
+
+client.connect_signal("unfocus", function (c)
+ c.border_color = beautiful.border_normal
+end)
\ No newline at end of file
diff --git a/awesome/awesome/main/tags.lua b/awesome/awesome/main/tags.lua
new file mode 100644
index 0000000..7fd2f88
--- /dev/null
+++ b/awesome/awesome/main/tags.lua
@@ -0,0 +1,27 @@
+-----------------------------------------------------------------------------------------------------
+-- Here are the ammount of tags generated, edit the awful.tag args if you want a different ammount --
+-----------------------------------------------------------------------------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+
+local _M = { }
+
+function _M.get()
+ local tags = {}
+ awful.screen.connect_for_each_screen(
+ function (s)
+ tags[s] = awful.tag(
+ {
+ "1", "2", "3", "4"
+ },
+ s,
+ RC.layouts[1]
+ )
+ end
+ )
+
+ return tags
+end
+
+return _M.get
\ No newline at end of file
diff --git a/awesome/awesome/main/theme.lua b/awesome/awesome/main/theme.lua
new file mode 100644
index 0000000..a7a83dd
--- /dev/null
+++ b/awesome/awesome/main/theme.lua
@@ -0,0 +1,19 @@
+local awful = require("awful")
+local beautiful = require("beautiful")
+local gears = require("gears")
+local home = os.getenv("HOME")
+
+beautiful.init(home .. "/.config/awesome/theme/crylia/theme.lua")
+
+if(RC.vars.wallpaper) then
+ local wallpaper = RC.vars.wallpaper
+ if awful.util.file_readable(wallpaper) then
+ Theme.wallpaper = wallpaper
+ end
+end
+
+if beautiful.wallpaper then
+ for s = 1, screen.count() do
+ gears.wallpaper.maximized(beautiful.wallpaper, s, true)
+ end
+end
\ No newline at end of file
diff --git a/awesome/awesome/main/user_variables.lua b/awesome/awesome/main/user_variables.lua
new file mode 100644
index 0000000..03250a9
--- /dev/null
+++ b/awesome/awesome/main/user_variables.lua
@@ -0,0 +1,13 @@
+-------------------------------------------
+-- Uservariables are stored in this file --
+-------------------------------------------
+local home = os.getenv("HOME")
+
+-- If you want different default programs, wallpaper path or modkey; edit this file.
+local _M = {
+ terminal = "alacritty",
+ modkey = "Mod4",
+ wallpaper = home .. "/.config/awesome/theme/crylia/assets/wallpaper.jpg"
+}
+
+return _M
\ No newline at end of file
diff --git a/awesome/awesome/rc.lua b/awesome/awesome/rc.lua
new file mode 100644
index 0000000..d28fcac
--- /dev/null
+++ b/awesome/awesome/rc.lua
@@ -0,0 +1,93 @@
+-----------------------------------------------------------------------------------------
+-- █████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗██╗ ██╗███╗ ███╗ --
+-- ██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝██║ ██║████╗ ████║ --
+-- ███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗ ██║ █╗ ██║██╔████╔██║ --
+-- ██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝ ██║███╗██║██║╚██╔╝██║ --
+-- ██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗╚███╔███╔╝██║ ╚═╝ ██║ --
+-- ╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ --
+-----------------------------------------------------------------------------------------
+-- Default Awesome Libs
+local awful = require("awful")
+local beautiful = require("beautiful")
+local gears = require("gears")
+local menubar = require("menubar")
+
+-- Global Namespace
+RC = {}
+RC.vars = require("main.user_variables")
+
+-- Error Handling
+require("main.error_handling")
+
+-- Default Theme and Custom Wallpaper
+beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
+beautiful.wallpaper = RC.vars.wallpaper
+modkey = RC.vars.modkey
+
+require("main.theme")
+
+-- Load Local User Libs
+local main = {
+ layouts = require("main.layouts"),
+ tags = require("main.tags"),
+ menu = require("main.menu"),
+ rules = require("main.rules")
+}
+
+-- Load all Shortcuts from Local User Libs
+local bindings = {
+ globalbuttons = require("bindings.globalbuttons"),
+ clientbuttons = require("bindings.clientbuttons"),
+ globalkeys = require("bindings.globalkeys"),
+ bindtotags = require("bindings.bindtotags"),
+ clientkeys = require("bindings.clientkeys")
+}
+
+-- Sets the local layout to Aweful.layout.inc
+RC.layouts = main.layouts()
+awful.layout.layouts = main.layouts()
+
+-- Tag table which holds all screen tags
+RC.tags = main.tags()
+
+-- Creates a launcher widget and a main menu
+RC.mainmenu = awful.menu({
+ items = main.menu()
+})
+
+-- A Variable needed in Statusbar (helper)
+RC.launcher = awful.widget.launcher({
+ image = beautiful.awesome_icon,
+ menu = RC.mainmenu
+})
+
+-- Menubar configuration
+menubar.utils.terminal = RC.vars.terminal
+
+-- Sets the user Keybindings
+RC.globalkeys = bindings.globalkeys()
+RC.globalkeys = bindings.bindtotags(RC.globalkeys)
+
+-- Set root
+root.buttons(bindings.globalbuttons())
+root.keys(RC.globalkeys)
+
+-- Keymap
+mykeyboardlayout = awful.widget.keyboardlayout()
+
+-- Default statusbar, uncomment if you dont use a third party tool like polybar
+require("deco.statusbar")
+
+-- Rules to apply to new clients
+awful.rules.rules = main.rules(
+ bindings.clientkeys(),
+ bindings.clientbuttons()
+)
+
+-- Signals
+require("main.signals")
+
+-- Autostart programs
+awful.spawn.with_shell("~/.screenlayout/screen.sh")
+awful.spawn.with_shell("picom --experimental-backends")
+awful.spawn.with_shell("xfce4-power-manager")
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/ArchLogo.png b/awesome/awesome/theme/crylia/assets/icons/ArchLogo.png
new file mode 100644
index 0000000..143dc53
Binary files /dev/null and b/awesome/awesome/theme/crylia/assets/icons/ArchLogo.png differ
diff --git a/awesome/awesome/theme/crylia/assets/icons/addtag/JetBrainsMono.zip b/awesome/awesome/theme/crylia/assets/icons/addtag/JetBrainsMono.zip
new file mode 100644
index 0000000..68d4727
Binary files /dev/null and b/awesome/awesome/theme/crylia/assets/icons/addtag/JetBrainsMono.zip differ
diff --git a/awesome/awesome/theme/crylia/assets/icons/addtag/plus.svg b/awesome/awesome/theme/crylia/assets/icons/addtag/plus.svg
new file mode 100644
index 0000000..2c21839
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/addtag/plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/audio/volume-high.svg b/awesome/awesome/theme/crylia/assets/icons/audio/volume-high.svg
new file mode 100644
index 0000000..a002372
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/audio/volume-high.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/audio/volume-low.svg b/awesome/awesome/theme/crylia/assets/icons/audio/volume-low.svg
new file mode 100644
index 0000000..cddf5b8
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/audio/volume-low.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/audio/volume-medium.svg b/awesome/awesome/theme/crylia/assets/icons/audio/volume-medium.svg
new file mode 100644
index 0000000..80c54ee
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/audio/volume-medium.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/audio/volume-mute.svg b/awesome/awesome/theme/crylia/assets/icons/audio/volume-mute.svg
new file mode 100644
index 0000000..7cdff75
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/audio/volume-mute.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/audio/volume-off.svg b/awesome/awesome/theme/crylia/assets/icons/audio/volume-off.svg
new file mode 100644
index 0000000..01e450f
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/audio/volume-off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-alert.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-alert.svg
new file mode 100644
index 0000000..23a4f32
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-alert.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-10.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-10.svg
new file mode 100644
index 0000000..a234828
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-10.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-100.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-100.svg
new file mode 100644
index 0000000..2190190
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-100.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-20.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-20.svg
new file mode 100644
index 0000000..b7c63aa
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-20.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-30.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-30.svg
new file mode 100644
index 0000000..e943778
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-30.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-40.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-40.svg
new file mode 100644
index 0000000..9391fbe
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-40.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-50.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-50.svg
new file mode 100644
index 0000000..2a51a07
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-50.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-60.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-60.svg
new file mode 100644
index 0000000..0c5b758
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-60.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-70.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-70.svg
new file mode 100644
index 0000000..06345cb
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-70.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-80.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-80.svg
new file mode 100644
index 0000000..bf0892a
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-80.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-90.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-90.svg
new file mode 100644
index 0000000..f79ffa5
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-90.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-outline.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-outline.svg
new file mode 100644
index 0000000..41e981d
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging-outline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging.svg
new file mode 100644
index 0000000..2a5da64
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-charging.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-10.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-10.svg
new file mode 100644
index 0000000..8569269
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-10.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-20.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-20.svg
new file mode 100644
index 0000000..ab31690
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-20.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-30.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-30.svg
new file mode 100644
index 0000000..fd11566
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-30.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-40.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-40.svg
new file mode 100644
index 0000000..2e6a314
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-40.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-50.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-50.svg
new file mode 100644
index 0000000..b5aa185
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-50.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-60.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-60.svg
new file mode 100644
index 0000000..ee359e2
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-60.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-70.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-70.svg
new file mode 100644
index 0000000..077fbdb
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-70.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-80.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-80.svg
new file mode 100644
index 0000000..a74b05c
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-80.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-90.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-90.svg
new file mode 100644
index 0000000..39e3c8f
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-discharging-90.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-off.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-off.svg
new file mode 100644
index 0000000..4ba32e4
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-outline.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-outline.svg
new file mode 100644
index 0000000..e05e71b
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-outline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery-unknown.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery-unknown.svg
new file mode 100644
index 0000000..8e117be
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery-unknown.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/battery/battery.svg b/awesome/awesome/theme/crylia/assets/icons/battery/battery.svg
new file mode 100644
index 0000000..950597a
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/battery/battery.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/bluetooth/bluetooth-off.svg b/awesome/awesome/theme/crylia/assets/icons/bluetooth/bluetooth-off.svg
new file mode 100644
index 0000000..4a8775a
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/bluetooth/bluetooth-off.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/bluetooth/bluetooth-on.svg b/awesome/awesome/theme/crylia/assets/icons/bluetooth/bluetooth-on.svg
new file mode 100644
index 0000000..2d7ae3a
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/bluetooth/bluetooth-on.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-high.svg b/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-high.svg
new file mode 100644
index 0000000..0f22d78
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-high.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-low.svg b/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-low.svg
new file mode 100644
index 0000000..d5a1c15
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-low.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-medium.svg b/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-medium.svg
new file mode 100644
index 0000000..e4e223c
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/brightness/brightness-medium.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/clock/clock.svg b/awesome/awesome/theme/crylia/assets/icons/clock/clock.svg
new file mode 100644
index 0000000..d77dd69
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/clock/clock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/date/calendar.svg b/awesome/awesome/theme/crylia/assets/icons/date/calendar.svg
new file mode 100644
index 0000000..d694669
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/date/calendar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/ethernet.svg b/awesome/awesome/theme/crylia/assets/icons/network/ethernet.svg
new file mode 100644
index 0000000..7e53db2
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/ethernet.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/no-internet.svg b/awesome/awesome/theme/crylia/assets/icons/network/no-internet.svg
new file mode 100644
index 0000000..2adb79c
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/no-internet.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-1.svg b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-1.svg
new file mode 100644
index 0000000..7966383
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-2.svg b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-2.svg
new file mode 100644
index 0000000..393ca82
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-3.svg b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-3.svg
new file mode 100644
index 0000000..4f470d9
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-4.svg b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-4.svg
new file mode 100644
index 0000000..3974275
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-off-outline.svg b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-off-outline.svg
new file mode 100644
index 0000000..fe6d7bd
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-off-outline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-outline.svg b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-outline.svg
new file mode 100644
index 0000000..3d54780
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/icons/network/wifi-strength-outline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/assets/layout/dwindle.svg b/awesome/awesome/theme/crylia/assets/layout/dwindle.svg
new file mode 100644
index 0000000..9e59058
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/layout/dwindle.svg
@@ -0,0 +1,64 @@
+
+
+
+
diff --git a/awesome/awesome/theme/crylia/assets/layout/floating.svg b/awesome/awesome/theme/crylia/assets/layout/floating.svg
new file mode 100644
index 0000000..5dcd846
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/layout/floating.svg
@@ -0,0 +1,64 @@
+
+
+
+
diff --git a/awesome/awesome/theme/crylia/assets/layout/fullscreen.svg b/awesome/awesome/theme/crylia/assets/layout/fullscreen.svg
new file mode 100644
index 0000000..6ba320b
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/layout/fullscreen.svg
@@ -0,0 +1,62 @@
+
+
diff --git a/awesome/awesome/theme/crylia/assets/layout/max.svg b/awesome/awesome/theme/crylia/assets/layout/max.svg
new file mode 100644
index 0000000..f1b2b2d
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/layout/max.svg
@@ -0,0 +1,62 @@
+
+
diff --git a/awesome/awesome/theme/crylia/assets/layout/tile.svg b/awesome/awesome/theme/crylia/assets/layout/tile.svg
new file mode 100644
index 0000000..ea62c5d
--- /dev/null
+++ b/awesome/awesome/theme/crylia/assets/layout/tile.svg
@@ -0,0 +1,64 @@
+
+
+
+
diff --git a/awesome/awesome/theme/crylia/assets/wallpaper.png b/awesome/awesome/theme/crylia/assets/wallpaper.png
new file mode 100644
index 0000000..f806d10
Binary files /dev/null and b/awesome/awesome/theme/crylia/assets/wallpaper.png differ
diff --git a/awesome/awesome/theme/crylia/colors.lua b/awesome/awesome/theme/crylia/colors.lua
new file mode 100644
index 0000000..39a1607
--- /dev/null
+++ b/awesome/awesome/theme/crylia/colors.lua
@@ -0,0 +1,198 @@
+-----------------------------------------------------
+-- This is a table with almost all Material colors --
+-----------------------------------------------------
+local _M = { }
+
+_M.color = {
+ ['White'] = '#ffffffdd',
+ ['Black'] = '#000000',
+
+ ['Grey50'] = '#fafafa',
+ ['Grey100'] = '#f5f5f5',
+ ['Grey200'] = '#eeeeee',
+ ['Grey300'] = '#e0e0e0',
+ ['Grey400'] = '#bdbdbd',
+ ['Grey500'] = '#9e9e9e',
+ ['Grey600'] = '#757575',
+ ['Grey700'] = '#616161',
+ ['Grey800'] = '#424242',
+ ['Grey900'] = '#212121',
+
+ ['Red50'] = '#ffebee',
+ ['Red100'] = '#ffcdd2',
+ ['Red200'] = '#ef9a9a',
+ ['Red300'] = '#e57373',
+ ['Red400'] = '#ef5350',
+ ['Red500'] = '#f44336',
+ ['Red600'] = '#e53935',
+ ['Red700'] = '#d32f2f',
+ ['Red800'] = '#c62828',
+ ['Red900'] = '#b71c1c',
+ ['RedA100'] = '#ff8a80',
+ ['RedA200'] = '#ff5252',
+ ['RedA400'] = '#ff1744',
+ ['RedA700'] = '#d50000',
+
+ ['Pink50'] = '#fce4ec',
+ ['Pink100'] = '#f8bbd0',
+ ['Pink200'] = '#f48fb1',
+ ['Pink300'] = '#f06292',
+ ['Pink400'] = '#ec407a',
+ ['Pink500'] = '#e91e63',
+ ['Pink600'] = '#d81b60',
+ ['Pink700'] = '#c2185b',
+ ['Pink800'] = '#ad1457',
+ ['Pink900'] = '#880e4f',
+ ['PinkA100'] = '#ff80ab',
+ ['PinkA200'] = '#ff4081',
+ ['PinkA400'] = '#f50057',
+ ['PinkA700'] = '#c51162',
+
+ ['Blue50'] = '#e3f2fd',
+ ['Blue100'] = '#bbdefb',
+ ['Blue200'] = '#90caf9',
+ ['Blue300'] = '#64b5f6',
+ ['Blue400'] = '#42a5f5',
+ ['Blue500'] = '#2196f3',
+ ['Blue600'] = '#1e88e5',
+ ['Blue700'] = '#1976d2',
+ ['Blue800'] = '#1565c0',
+ ['Blue900'] = '#0d47a1',
+ ['BlueA100'] = '#82b1ff',
+ ['BlueA200'] = '#448aff',
+ ['BlueA400'] = '#2979ff',
+ ['BlueA700'] = '#2962ff',
+
+ ['Yellow50'] = '#fffde7',
+ ['Yellow100'] = '#fff9c4',
+ ['Yellow200'] = '#fff59d',
+ ['Yellow300'] = '#fff176',
+ ['Yellow400'] = '#ffee58',
+ ['Yellow500'] = '#ffeb3b',
+ ['Yellow600'] = '#fdd835',
+ ['Yellow700'] = '#fbc02d',
+ ['Yellow800'] = '#f9a825',
+ ['Yellow900'] = '#f57f17',
+ ['YellowA100'] = '#ffff8d',
+ ['YellowA200'] = '#ffff00',
+ ['YellowA400'] = '#ffea00',
+ ['YellowA700'] = '#ffd600',
+
+ ['Teal50'] = '#e0f2f1',
+ ['Teal100'] = '#b2dfdb',
+ ['Teal200'] = '#80cbc4',
+ ['Teal300'] = '#4db6ac',
+ ['Teal400'] = '#26a69a',
+ ['Teal500'] = '#009688',
+ ['Teal600'] = '#00897b',
+ ['Teal700'] = '#00796b',
+ ['Teal800'] = '#00695c',
+ ['Teal900'] = '#004d40',
+ ['TealA100'] = '#a7ffeb',
+ ['TealA200'] = '#64ffda',
+ ['TealA400'] = '#1de9b6',
+ ['TealA700'] = '#00bfa5',
+
+ ['Green50'] = '#e8f5e9',
+ ['Green100'] = '#c8e6c9',
+ ['Green200'] = '#a5d6a7',
+ ['Green300'] = '#81c784',
+ ['Green400'] = '#66bb6a',
+ ['Green500'] = '#4caf50',
+ ['Green600'] = '#43a047',
+ ['Green700'] = '#388e3c',
+ ['Green800'] = '#2e7d32',
+ ['Green900'] = '#1b5e20',
+ ['GreenA100'] = '#b9f6ca',
+ ['GreenA200'] = '#69f0ae',
+ ['GreenA400'] = '#00e676',
+ ['GreenA700'] = '#00c853',
+
+ ['Orange50'] = '#fff3e0',
+ ['Orange100'] = '#ffe0b2',
+ ['Orange200'] = '#ffcc80',
+ ['Orange300'] = '#ffb74d',
+ ['Orange400'] = '#ffa726',
+ ['Orange500'] = '#ff9800',
+ ['Orange600'] = '#fb8c00',
+ ['Orange700'] = '#f57c00',
+ ['Orange800'] = '#ef6c00',
+ ['Orange900'] = '#e65100',
+ ['OrangeA100'] = '#ffd180',
+ ['OrangeA200'] = '#ffab40',
+ ['OrangeA400'] = '#ff9100',
+ ['OrangeA700'] = '#ff6d00',
+
+ ['DeepOrange50'] = '#fbe9e7',
+ ['DeepOrange100'] = '#ffccbc',
+ ['DeepOrange200'] = '#ffab91',
+ ['DeepOrange300'] = '#ff8a65',
+ ['DeepOrange400'] = '#ff7043',
+ ['DeepOrange500'] = '#ff5722',
+ ['DeepOrange600'] = '#f4511e',
+ ['DeepOrange700'] = '#e64a19',
+ ['DeepOrange800'] = '#d84315',
+ ['DeepOrange900'] = '#bf360c',
+ ['DeepOrangeA100'] = '#ff9e80',
+ ['DeepOrangeA200'] = '#ff6e40',
+ ['DeepOrangeA400'] = '#ff3d00',
+ ['DeepOrangeA700'] = '#dd2c00',
+
+ ['Purple50'] = '#F3E5F5',
+ ['Purple100'] = '#E1BEE7',
+ ['Purple200'] = '#CE93D8',
+ ['Purple300'] = '#BA68C8',
+ ['Purple400'] = '#AB47BC',
+ ['Purple500'] = '#9C27B0',
+ ['Purple600'] = '#8E24AA',
+ ['Purple700'] = '#7B1FA2',
+ ['Purple800'] = '#6A1B9A',
+ ['Purple900'] = '#4A148C',
+ ['PurpleA100'] = '#EA80FC',
+ ['PurpleA200'] = '#E040FB',
+ ['PurpleA500'] = '#D500F9',
+ ['PurpleA700'] = '#AA00FF',
+
+ ['DeepPurple50'] = '#EDE7F6',
+ ['DeepPurple100'] = '#D1C4E9',
+ ['DeepPurple200'] = '#B39DDB',
+ ['DeepPurple300'] = '#9575CD',
+ ['DeepPurple400'] = '#7E57C2',
+ ['DeepPurple500'] = '#673AB7',
+ ['DeepPurple600'] = '#5E35B1',
+ ['DeepPurple700'] = '#512DA8',
+ ['DeepPurple800'] = '#4527A0',
+ ['DeepPurple900'] = '#311B92',
+ ['DeepPurpleA100'] = '#B388FF',
+ ['DeepPurpleA200'] = '#7C4DFF',
+ ['DeepPurpleA400'] = '#651FFF',
+ ['DeepPurpleA700'] = '#6200EA',
+
+ ['LightBlue50'] = '#E1F5FE',
+ ['LightBlue100'] = '#B3E5FC',
+ ['LightBlue200'] = '#81D4FA',
+ ['LightBlue300'] = '#4FC3F7',
+ ['LightBlue400'] = '#29B6F6',
+ ['LightBlue500'] = '#03A9F4',
+ ['LightBlue600'] = '#039BE5',
+ ['LightBlue700'] = '#0288D1',
+ ['LightBlue800'] = '#0277BD',
+ ['LightBlue900'] = '#01579B',
+ ['LightBlueA100'] = '#80D8FF',
+ ['LightBlueA200'] = '#40C4FF',
+ ['LightBlueA400'] = '#00B0FF',
+ ['LightBlueA700'] = '#0091EA',
+
+ ['BlueGrey50'] = '#ECEFF1',
+ ['BlueGrey100'] = '#CFD8DC',
+ ['BlueGrey200'] = '#B0BEC5',
+ ['BlueGrey300'] = '#90A4AE',
+ ['BlueGrey400'] = '#78909C',
+ ['BlueGrey500'] = '#607D8B',
+ ['BlueGrey600'] = '#546E7A',
+ ['BlueGrey700'] = '#455A64',
+ ['BlueGrey800'] = '#37474F',
+ ['BlueGrey900'] = '#263238'
+}
+
+return _M
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/layouts.lua b/awesome/awesome/theme/crylia/layouts.lua
new file mode 100644
index 0000000..67b1197
--- /dev/null
+++ b/awesome/awesome/theme/crylia/layouts.lua
@@ -0,0 +1,14 @@
+--Awesome Libs
+local color = require("theme.crylia.colors")
+local gears = require("gears")
+
+-- Icon directory path
+local layout_path = Theme_path .. "assets/layout/"
+
+-- Here are the icons for the layouts defined, if you want to add more layouts go to main/layouts.lua
+Theme.layout_floating = gears.color.recolor_image(layout_path .. "floating.svg", color.color["Grey900"])
+Theme.layout_tile = gears.color.recolor_image(layout_path .. "tile.svg", color.color["Grey900"])
+Theme.layout_dwindle = gears.color.recolor_image(layout_path .. "dwindle.svg", color.color["Grey900"])
+Theme.layout_fairh = gears.color.recolor_image(layout_path .. "fairh.svg", color.color["Grey900"])
+Theme.layout_fullscreen = gears.color.recolor_image(layout_path .. "fullscreen.svg", color.color["Grey900"])
+Theme.layout_max = gears.color.recolor_image(layout_path .. "max.svg", color.color["Grey900"])
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/modules/brightness_osd.lua b/awesome/awesome/theme/crylia/modules/brightness_osd.lua
new file mode 100644
index 0000000..88ab0dc
--- /dev/null
+++ b/awesome/awesome/theme/crylia/modules/brightness_osd.lua
@@ -0,0 +1,198 @@
+---------------------------------------
+-- This is the brightness_osd module --
+---------------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/brightness/"
+
+--TODO: fix backlight keys and osd not working correctly
+return function ()
+
+ local brightness_osd_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ id = "label",
+ text = "Brightness",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ nil,
+ {
+ ic = "value",
+ text = "0%",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ id = "label_value_layout",
+ forced_height = dpi(48),
+ layout = wibox.layout.align.horizontal,
+ },
+ {
+ {
+ {
+ id = "icon",
+ image = gears.color.recolor_image(icondir .. "brightness-high.svg", color.color["White"]),
+ widget = wibox.widget.imagebox
+ },
+ id = "icon_margin",
+ top = dpi(12),
+ bottom = dpi(12),
+ widget = wibox.container.margin
+ },
+ {
+ {
+ id = "brightness_slider",
+ bar_shape = gears.shape.rounded_rect,
+ bar_height = dpi(2),
+ bar_color = color.color["White"],
+ bar_active_color = color.color["White"],
+ handle_color = color.color["White"],
+ handle_shape = gears.shape.circle,
+ handle_width = dpi(15),
+ handle_border_color = color.color["White"],
+ handle_border_width = dpi(1),
+ maximum = 100,
+ widget = wibox.widget.slider
+ },
+ id = "slider_layout",
+ forced_height = dpi(24),
+ widget = wibox.container.place
+ },
+ id = "icon_slider_layout",
+ spacing = dpi(24),
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "osd_layout",
+ layout = wibox.layout.fixed.vertical
+ },
+ id = "container",
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Grey900"] .. '44',
+ widget = wibox.container.background,
+ ontop = true,
+ visible = false,
+ type = "notification",
+ forced_height = dpi(100),
+ forced_width = dpi(300),
+ offset = dpi(5),
+ }
+
+ brightness_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.brightness_slider:connect_signal(
+ "property::value",
+ function ()
+ local brightness_value = brightness_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.brightness_slider:get_value()
+
+ -- Performance is horrible, or it overrides and executes at the same time as the keybindings
+ awful.spawn("xbacklight -set " .. brightness_value .. "%", false)
+ brightness_osd_widget.container.osd_layout.label_value_layout.value:set_text(brightness_value .. "%")
+
+ awesome.emit_signal(
+ "widget::brightness:update",
+ brightness_value
+ )
+
+ if awful.screen.focused().show_brightness_osd then
+ awesome.emit_signal(
+ "module::brightness_osd:show",
+ true
+ )
+ end
+
+ local icon = icondir .. "brightness"
+ if brightness_value >= 0 and brightness_value < 34 then
+ icon = icon .. "-low"
+ elseif brightness_value >= 34 and brightness_value < 67 then
+ icon = icon .. "-medium"
+ elseif brightness_value >= 67 then
+ icon = icon .. "-high"
+ end
+ brightness_osd_widget.container.osd_layout.icon_slider_layout.icon_margin.icon:set_image(gears.color.recolor_image(icon .. ".svg", color.color["White"]))
+ end
+ )
+
+ local update_slider = function ()
+ awful.spawn.easy_async_with_shell(
+ [[ xbacklight -get ]],
+ function (stdout)
+ stdout = stdout:sub(1,-9)
+ brightness_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.brightness_slider:set_value(tonumber(stdout))
+ end
+ )
+ end
+
+ local hide_osd = gears.timer{
+ timeout = 5,
+ autostart = true,
+ callback = function ()
+ brightness_osd_widget.visible = false
+ end
+ }
+
+ -- Signals
+ brightness_osd_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ brightness_osd_widget.visible = true
+ hide_osd:stop()
+ end
+ )
+
+ brightness_osd_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ brightness_osd_widget.visible = true
+ hide_osd:again()
+ end
+ )
+
+ awesome.connect_signal(
+ "widget::brightness_osd:rerun",
+ function ()
+ if hide_osd.started then
+ hide_osd:again()
+ else
+ hide_osd:start()
+ end
+ end
+ )
+
+ update_slider()
+
+ awesome.connect_signal(
+ "module::brightness_slider:update",
+ function ()
+ update_slider()
+ end
+ )
+
+ awesome.connect_signal(
+ "widget::brightness:update",
+ function (value)
+ brightness_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.brightness_slider:set_value(tonumber(value))
+ end
+ )
+
+ awesome.connect_signal(
+ "module::brightness_osd:show",
+ function ()
+ brightness_osd_widget.visible = true
+ end
+ )
+
+ update_slider()
+ return brightness_osd_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/modules/calendar_osd.lua b/awesome/awesome/theme/crylia/modules/calendar_osd.lua
new file mode 100644
index 0000000..a6374e8
--- /dev/null
+++ b/awesome/awesome/theme/crylia/modules/calendar_osd.lua
@@ -0,0 +1,98 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local naughty = require("naughty")
+local dpi = require("beautiful").xresources.apply_dpi
+local watch = awful.widget.watch
+local color = require("theme.crylia.colors")
+
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/date/"
+
+local calendar_osd = function ()
+
+ local calendar_osd_time = wibox.widget{
+ {
+ widget = wibox.widget.textbox,
+ text = os.date("%H-%M-%S"),
+ id = "clock",
+ font = "digital-7 italic",
+ forced_height = dpi(50)
+ },
+ layout = wibox.layout.align.horizontal
+ }
+
+
+--[[ local create_calendar = function (widget, date)
+ 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 color.color["Grey900"]
+ local container = wibox.widget {
+ {
+ widget,
+ margins = dpi(2),
+ widget = wibox.container.margin
+ },
+ shape = function (cr, height, width)
+ gears.shape.rounded_rect(cr, height, widget)
+ end,
+ shape_border_width = dpi(1),
+ shape_border_color = color.color["Grey800"],
+ fg = color.color["White"],
+ bg = color.color["Grey900"],
+ widget = wibox.container.background
+ }
+ end ]]
+
+ local calendar = wibox.widget{
+ font = "digital-7 italic",
+ date = os.date("*t"),
+ spacing = dpi(15),
+ --fn_embed = create_calendar,
+ widget = wibox.widget.calendar.month()
+ }
+
+ local current_month = calendar:get_date().month
+
+ local update_active_month = function (i)
+ local date = calendar:get_date()
+ date.month = date.month + i,
+ 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 calendar_widget = wibox.widget{
+ {
+ calendar_osd_time,
+ calendar,
+ layout = wibox.layout.fixed.vertical
+ },
+ bg = color.color["White"] .. "00",
+ shape = function (cr, height, width)
+ gears.shape.rounded_rect(cr, dpi(500), dpi(300))
+ end,
+ widget = wibox.container.background
+ }
+
+ return calendar_widget
+end
+
+return calendar_osd
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/modules/volume_osd.lua b/awesome/awesome/theme/crylia/modules/volume_osd.lua
new file mode 100644
index 0000000..6fff566
--- /dev/null
+++ b/awesome/awesome/theme/crylia/modules/volume_osd.lua
@@ -0,0 +1,209 @@
+-----------------------------------
+-- This is the volume_old module --
+-----------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/audio/"
+
+-- Returns the volume_osd
+return function ()
+
+ local volume_osd_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ id = "label",
+ text = "Volume",
+ align = "left",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ nil,
+ {
+ id = "value",
+ text = "0%",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ id = "label_value_layout",
+ forced_height = dpi(48),
+ layout = wibox.layout.align.horizontal,
+ },
+ {
+ {
+ {
+ id = "icon",
+ image = gears.color.recolor_image(icondir .. "volume-high.svg", color.color["White"]),
+ widget = wibox.widget.imagebox
+ },
+ id = "icon_margin",
+ top = dpi(12),
+ bottom = dpi(12),
+ widget = wibox.container.margin
+ },
+ {
+ {
+ id = "volume_slider",
+ bar_shape = gears.shape.rounded_rect,
+ bar_height = dpi(2),
+ bar_color = color.color["White"],
+ bar_active_color = color.color["White"],
+ handle_color = color.color["White"],
+ handle_shape = gears.shape.circle,
+ handle_width = dpi(15),
+ handle_border_color = color.color["White"],
+ handle_border_width = dpi(1),
+ maximum = 100,
+ widget = wibox.widget.slider
+ },
+ id = "slider_layout",
+ forced_height = dpi(24),
+ widget = wibox.container.place
+ },
+ id = "icon_slider_layout",
+ spacing = dpi(24),
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "osd_layout",
+ layout = wibox.layout.fixed.vertical
+ },
+ id = "container",
+ left = dpi(24),
+ right = dpi(24),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Grey900"] .. '44',
+ widget = wibox.container.background,
+ ontop = true,
+ visible = false,
+ type = "notification",
+ forced_height = dpi(100),
+ forced_width = dpi(300),
+ offset = dpi(5),
+ }
+
+ volume_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.volume_slider:connect_signal(
+ "property::value",
+ function ()
+ local volume_level = volume_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.volume_slider:get_value()
+
+ awful.spawn("amixer sset Master ".. volume_level .. "%", false)
+ awesome.emit_signal("widget::volume")
+ volume_osd_widget.container.osd_layout.label_value_layout.value:set_text(volume_level .. "%")
+
+ awesome.emit_signal(
+ "widget::volume:update",
+ volume_level
+ )
+
+ if awful.screen.focused().show_volume_osd then
+ awesome.emit_signal(
+ "module::volume_osd:show",
+ true
+ )
+ end
+
+ local icon = icondir .. "volume"
+ if volume_level < 1 then
+ icon = icon .. "-mute"
+ elseif volume_level >= 1 and volume_level < 34 then
+ icon = icon .. "-low"
+ elseif volume_level >= 34 and volume_level < 67 then
+ icon = icon .. "-medium"
+ elseif volume_level >= 67 then
+ icon = icon .. "-high"
+ end
+ volume_osd_widget.container.osd_layout.icon_slider_layout.icon_margin.icon:set_image(gears.color.recolor_image(icon .. ".svg", color.color["White"]))
+ end
+ )
+
+ local update_slider = function ()
+ awful.spawn.easy_async_with_shell(
+ [[ awk -F"[][]" '/dB/ { print $6 }' <(amixer sget Master) ]],
+ function (stdout)
+ if stdout:match("off") then
+ volume_osd_widget.container.osd_layout.label_value_layout.value:set_text("0%")
+ --volume_osd_slider.volume_slider:set_value(0)
+ volume_osd_widget.container.osd_layout.icon_slider_layout.icon_margin.icon:set_image(gears.color.recolor_image(icondir .. "volume-mute" .. ".svg", color.color["White"]))
+ else
+ awful.spawn.easy_async_with_shell(
+ [[ awk -F"[][]" '/dB/ { print $2 }' <(amixer sget Master) ]],
+ function (stdout)
+ stdout = stdout:sub(1, -3)
+ volume_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.volume_slider:set_value(tonumber(stdout))
+ end
+ )
+ end
+ end
+ )
+ end
+
+ local hide_osd = gears.timer{
+ timeout = 5,
+ autostart = true,
+ callback = function ()
+ volume_osd_widget.visible = false
+ end
+ }
+
+ -- Signals
+ awesome.connect_signal(
+ "module::slider:update",
+ function ()
+ update_slider()
+ end
+ )
+
+ awesome.connect_signal(
+ "widget::volume:update",
+ function (value)
+ volume_osd_widget.container.osd_layout.icon_slider_layout.slider_layout.volume_slider:set_value(tonumber(value))
+ end
+ )
+
+ awesome.connect_signal(
+ "module::volume_osd:show",
+ function ()
+ volume_osd_widget.visible = true
+ end
+ )
+
+ volume_osd_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ volume_osd_widget.visible = true
+ hide_osd:stop()
+ end
+ )
+
+ volume_osd_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ volume_osd_widget.visible = true
+ hide_osd:again()
+ end
+ )
+
+ awesome.connect_signal(
+ "widget::volume_osd:rerun",
+ function ()
+ if hide_osd.started then
+ hide_osd:again()
+ else
+ hide_osd:start()
+ end
+ end
+ )
+
+ update_slider()
+ return volume_osd_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/theme.lua b/awesome/awesome/theme/crylia/theme.lua
new file mode 100644
index 0000000..9976e97
--- /dev/null
+++ b/awesome/awesome/theme/crylia/theme.lua
@@ -0,0 +1,21 @@
+--------------------------------------------------
+-- ██████╗██████╗ ██╗ ██╗██╗ ██╗ █████╗ --
+-- ██╔════╝██╔══██╗╚██╗ ██╔╝██║ ██║██╔══██╗ --
+-- ██║ ██████╔╝ ╚████╔╝ ██║ ██║███████║ --
+-- ██║ ██╔══██╗ ╚██╔╝ ██║ ██║██╔══██║ --
+-- ╚██████╗██║ ██║ ██║ ███████╗██║██║ ██║ --
+-- ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝╚═╝ ╚═╝ --
+--------------------------------------------------
+local awful = require("awful")
+
+Theme_path = awful.util.getdir("config") .. "/theme/crylia/"
+Theme = { }
+
+dofile(Theme_path .. "theme_variables.lua")
+dofile(Theme_path .. "layouts.lua")
+
+Theme.wallpaper = Theme_path .. "assets/wallpaper.png"
+Theme.awesome_icon = Theme_path .. "assets/icons/icon.png"
+Theme.awesome_subicon = Theme_path .. "assets/icons/icon.png"
+
+return Theme
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/theme_variables.lua b/awesome/awesome/theme/crylia/theme_variables.lua
new file mode 100644
index 0000000..6cfd91c
--- /dev/null
+++ b/awesome/awesome/theme/crylia/theme_variables.lua
@@ -0,0 +1,62 @@
+------------------------------------------------------------------------------------------
+-- This is the main themeing file, here are most colors changed --
+-- If you want to change individual widget colors you will need to edit them seperately --
+------------------------------------------------------------------------------------------
+
+-- Awesome Libs
+local colors = require("theme.crylia.colors")
+local dpi = require("beautiful.xresources").apply_dpi
+local gears = require("gears")
+
+-- Note that most variables wont change anything since almost everything you see is individually themed
+
+Theme.font = "JetBrains Mono, Bold"
+
+Theme.bg_normal = colors.color["Grey900"]
+Theme.bg_focus = colors.color["Grey900"]
+Theme.bg_urgent = colors.color["RedA200"]
+Theme.bg_minimize = colors.color["White"]
+Theme.bg_systray = colors.color["White"]
+
+Theme.fg_normal = colors.color["White"]
+Theme.fg_focus = colors.color["White"]
+Theme.fg_urgent = colors.color["White"]
+Theme.fg_minimize = colors.color["White"]
+
+Theme.useless_gap = dpi(5) -- Change this if you dont like window gaps
+Theme.border_width = dpi(1) -- Change this if you dont like borders
+Theme.border_normal = colors.color["Grey600"]
+--Theme.border_focus = colors.color["Red"] -- Doesnt work, no idea why; workaround is in signals.lua
+Theme.border_marked = colors.color["Red400"]
+
+Theme.menu_submenu_icon = Theme_path .. "assets.ArchLogo.png"
+Theme.menu_height = dpi(30)
+Theme.menu_width = dpi(200)
+Theme.menu_bg_normal = colors.color["Grey900"]
+Theme.menu_bg_focus = colors.color["Grey800"]
+Theme.menu_fg_focus = colors.color["White"]
+Theme.menu_border_color = colors.color["Grey600"]
+Theme.menu_border_width = dpi(1)
+
+Theme.taglist_fg_focus = colors.color["Grey900"]
+Theme.taglist_bg_focus = colors.color["White"]
+
+Theme.tooltip_border_color = colors.color["Grey800"]
+Theme.tooltip_bg = colors.color["White"] .. "00"
+Theme.tooltip_fg = colors.color["White"]
+Theme.tooltip_border_width = dpi(1)
+Theme.tooltip_shape = function (cr, width, heigth)
+ gears.shape.rounded_rect(cr, width, heigth, 10)
+end
+
+Theme.notification_bg = colors.color["Grey900"]
+Theme.notification_fg = colors.color["White"]
+Theme.notification_border_width = dpi(1)
+Theme.notification_border_color = colors.color["Grey800"]
+Theme.notification_shape = function (cr, width, heigth)
+ gears.shape.rounded_rect(cr, width, heigth, 10)
+end
+Theme.notification_margin = dpi(10)
+Theme.notification_max_width = dpi(400)
+Theme.notification_max_height = dpi(1000)
+Theme.notification_icon_size = dpi(40)
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/addtag.lua b/awesome/awesome/theme/crylia/widgets/addtag.lua
new file mode 100644
index 0000000..e53dd5d
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/addtag.lua
@@ -0,0 +1,91 @@
+-------------------------------------------------------------
+-- This is a button widget to add a new tag to the taglist --
+-------------------------------------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- User Libs
+local color = require("theme.crylia.colors")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/addtag/"
+
+-- Returns the add tag button widget
+return function ()
+
+ -- This is the widget that gets dispayed
+ local add_tag_button = wibox.widget{
+ {
+ {
+ image = gears.color.recolor_image(icondir .. "plus.svg", color.color["White"]),
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ margins = dpi(4),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.container.background
+ }
+
+ -- Keybindings and Mouse click bindings
+ add_tag_button:buttons(
+ gears.table.join(
+ -- Add a new tag
+ awful.button(
+ { },
+ 1,
+ nil,
+ function ()
+ awful.tag.add()
+ end
+ )
+ )
+ )
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ add_tag_button:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = add_tag_button.bg
+ add_tag_button.bg = "#ffffff" .. "12"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+ add_tag_button:connect_signal(
+ "button::press",
+ function ()
+ add_tag_button.bg = "#ffffff" .. "24"
+ end
+ )
+ add_tag_button:connect_signal(
+ "button::release",
+ function ()
+ add_tag_button.bg = "#ffffff" .. "12"
+ end
+ )
+ add_tag_button:connect_signal(
+ "mouse::leave",
+ function ()
+ add_tag_button.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ return add_tag_button
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/audio.lua b/awesome/awesome/theme/crylia/widgets/audio.lua
new file mode 100644
index 0000000..87cbed6
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/audio.lua
@@ -0,0 +1,156 @@
+------------------------------
+-- This is the audio widget --
+------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/audio/"
+
+-- Returns the audio widget
+return function ()
+
+ local audio_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ {
+ id = "icon",
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ id = "icon_layout",
+ widget = wibox.container.place
+ },
+ top = dpi(2),
+ widget = wibox.container.margin,
+ id = "icon_margin"
+ },
+ spacing = dpi(6),
+ {
+ id = "label",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ id = "audio_layout",
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "container",
+ left = dpi(5),
+ right = dpi(10),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Yellow200"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local get_volume = function ()
+ awful.spawn.easy_async_with_shell(
+ [[ awk -F"[][]" '/dB/ { print $2 }' <(amixer sget Master) ]],
+ function (stdout)
+ local icon = icondir .. "volume"
+ stdout = stdout:gsub("%%", "")
+ local volume = tonumber(stdout) or 0
+ audio_widget.container.audio_layout.spacing = dpi(5)
+ audio_widget.container.audio_layout.label.visible = true
+ if volume < 1 then
+ icon = icon .. "-mute"
+ audio_widget.container.audio_layout.spacing = dpi(0)
+ audio_widget.container.audio_layout.label.visible = false
+ elseif volume >= 1 and volume < 34 then
+ icon = icon .. "-low"
+ elseif volume >= 34 and volume < 67 then
+ icon = icon .. "-medium"
+ elseif volume >= 67 then
+ icon = icon .. "-high"
+ end
+ audio_widget.container.audio_layout.label:set_text(volume .. "%")
+ audio_widget.container.audio_layout.icon_margin.icon_layout.icon:set_image(gears.color.recolor_image(icon .. ".svg", color.color["Grey900"]))
+ end
+ )
+ end
+
+ local check_muted = function ()
+ awful.spawn.easy_async_with_shell(
+ [[ awk -F"[][]" '/dB/ { print $6 }' <(amixer sget Master) ]],
+ function (stdout)
+ if stdout:match("off") then
+ audio_widget.container.audio_layout.label.visible = false
+ audio_widget.container:set_right(0)
+ audio_widget.container.audio_layout.icon_margin.icon_layout.icon:set_image(gears.color.recolor_image(icondir .. "volume-mute" .. ".svg", color.color["Grey900"]))
+ else
+ audio_widget.container:set_right(10)
+ get_volume()
+ end
+ end
+ )
+ end
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ audio_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = audio_widget.bg
+ audio_widget.bg = color.color["Yellow200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ audio_widget:connect_signal(
+ "button::press",
+ function ()
+ audio_widget.bg = color.color["Yellow200"] .. "bb"
+ end
+ )
+
+ audio_widget:connect_signal(
+ "button::release",
+ function ()
+ audio_widget.bg = color.color["Yellow200"] .. "dd"
+ end
+ )
+
+ audio_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ audio_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ audio_widget:connect_signal(
+ "button::press",
+ function ()
+ awesome.emit_signal("module::volume_osd:show", true)
+ end
+ )
+
+ awesome.connect_signal(
+ "widget::volume",
+ function (c)
+ check_muted()
+ end
+ )
+
+ check_muted()
+ return audio_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/battery.lua b/awesome/awesome/theme/crylia/widgets/battery.lua
new file mode 100644
index 0000000..1c7ac03
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/battery.lua
@@ -0,0 +1,238 @@
+--------------------------------
+-- This is the battery widget --
+--------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local naughty = require("naughty")
+local watch = awful.widget.watch
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/battery/"
+
+-- Returns the battery widget
+return function ()
+ local battery_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ {
+ id = "icon",
+ image = gears.color.recolor_image(icondir .. "battery-unknown.svg", "#212121"),
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ id = "icon_layout",
+ widget = wibox.container.place
+ },
+ id = "icon_margin",
+ top = dpi(2),
+ widget = wibox.container.margin
+ },
+ spacing = dpi(8),
+ {
+ visible = false,
+ align = 'center',
+ valign = 'center',
+ id = "label",
+ widget = wibox.widget.textbox
+ },
+ id = "battery_layout",
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "container",
+ left = dpi(5),
+ right = dpi(10),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Purple200"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local battery_tooltip = awful.tooltip{
+ objects = {battery_widget},
+ text = "",
+ mode = "inside",
+ align = "right",
+ margins = dpi(10)
+ }
+
+ local get_battery_info = function ()
+ awful.spawn.easy_async_with_shell(
+ [[ upower -i $(upower -e | grep BAT) | grep "time to " ]],
+ function (stdout)
+ if stdout == nil or stdout == '' then
+ battery_tooltip:set_text('No Battery Found')
+ return
+ end
+ local rem_time = ""
+ if stdout:match("hour") then
+ rem_time = "Hours"
+ else
+ rem_time = "Minutes"
+ end
+ if stdout:match("empty") then
+ battery_tooltip:set_text("Remaining battery time: " .. stdout:match("%d+,%d") .. " " .. rem_time)
+ elseif stdout:match("time to full") then
+
+ battery_tooltip:set_text("Battery fully charged in: " .. stdout:match("%d+,%d") .. " " .. rem_time)
+ end
+ end
+ )
+ end
+ get_battery_info()
+
+ local last_battery_check = os.time()
+ local notify_critical_battery = true
+
+ local battery_warning = function ()
+ naughty.notify({
+ icon = gears.color.recolor_image(icondir .. "battery-alert.svg", color.color["White"]),
+ app_name = "System notification",
+ title = "Battery is low",
+ message = "Battery is almost battery_labelempty",
+ 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)
+
+ if not battery_percentage then
+ return
+ end
+
+ battery_widget.container.battery_layout.spacing = dpi(5)
+ battery_widget.container.battery_layout.label.visible = true
+ battery_widget.container.battery_layout.label:set_text(battery_percentage .. '%')
+
+ local icon = 'battery'
+
+ if status == 'fully-charged' or status == 'charging' and battery_percentage == 100 then
+ icon = icon .. '-' .. 'charging'
+ battery_widget.container.battery_layout.icon_margin.icon_layout.icon:set_image(gears.surface.load_uncached(gears.color.recolor_image(icondir .. icon .. '.svg', "#212121")))
+ return
+ end
+
+ if battery_percentage > 0 and battery_percentage < 10 and status == 'discharging' then
+ icon = icon .. '-' .. 'alert'
+ if(os.difftime(os.time(), last_battery_check) > 300 or notify_critical_battery) then
+ last_battery_check = os.time()
+ notify_critical_battery = false
+ battery_warning()
+ end
+ battery_widget.container.battery_layout.icon_margin.icon_layout.icon:set_image(gears.surface.load_uncached(gears.color.recolor_image(icondir .. icon .. '.svg', "#212121")))
+ return
+ end
+
+ if battery_percentage > 0 and battery_percentage < 10 then
+ icon = icon .. '-' .. status .. '-' .. 'outline'
+ elseif battery_percentage >= 10 and battery_percentage < 20 then
+ icon = icon .. '-' .. status .. '-' .. '10'
+ elseif battery_percentage >= 20 and battery_percentage < 30 then
+ icon = icon .. '-' .. status .. '-' .. '20'
+ elseif battery_percentage >= 30 and battery_percentage < 40 then
+ icon = icon .. '-' .. status .. '-' .. '30'
+ elseif battery_percentage >= 40 and battery_percentage < 50 then
+ icon = icon .. '-' .. status .. '-' .. '40'
+ elseif battery_percentage >= 50 and battery_percentage < 60 then
+ icon = icon .. '-' .. status .. '-' .. '50'
+ elseif battery_percentage >= 60 and battery_percentage < 70 then
+ icon = icon .. '-' .. status .. '-' .. '60'
+ elseif battery_percentage >= 70 and battery_percentage < 80 then
+ icon = icon .. '-' .. status .. '-' .. '70'
+ elseif battery_percentage >= 80 and battery_percentage < 90 then
+ icon = icon .. '-' .. status .. '-' .. '80'
+ elseif battery_percentage >=90 and battery_percentage < 100 then
+ icon = icon .. '-' .. status .. '-' .. '90'
+ end
+
+ battery_widget.container.battery_layout.icon_margin.icon_layout.icon:set_image(gears.surface.load_uncached(gears.color.recolor_image(icondir .. icon .. '.svg', "#212121")))
+
+ end
+ )
+ end
+
+ local old_wibox, old_cursor, old_bg
+ battery_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = battery_widget.bg
+ battery_widget.bg = color.color["Purple200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ -- Signals
+ battery_widget:connect_signal(
+ "button::press",
+ function ()
+ battery_widget.bg = color.color["Purple200"] .. "bb"
+ end
+ )
+
+ battery_widget:connect_signal(
+ "button::release",
+ function ()
+ battery_widget.bg = color.color["Purple200"] .. "dd"
+ end
+ )
+
+ battery_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ battery_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ battery_widget:connect_signal(
+ 'button::press',
+ function ()
+ awful.spawn("xfce4-power-manager-settings")
+ end
+ )
+
+ battery_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ get_battery_info()
+ end
+ )
+
+ 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 status == nil or status == '' then
+ battery_widget.container.battery_layout.spacing = dpi(0)
+ battery_widget.container.battery_layout.label.visible = false
+ battery_tooltip:set_text('No battery found')
+ battery_widget.container.battery_layout.icon_margin.icon_layout.icon:set_image(gears.surface.load_uncached(gears.color.recolor_image(icondir .. 'battery-off' .. '.svg', "#212121")))
+ end
+ update_battery(status)
+ end
+ )
+
+ return battery_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/bluetooth.lua b/awesome/awesome/theme/crylia/widgets/bluetooth.lua
new file mode 100644
index 0000000..e7feb23
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/bluetooth.lua
@@ -0,0 +1,155 @@
+----------------------------------
+-- This is the bluetooth widget --
+----------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/bluetooth/"
+
+-- Returns the bluetooth widget
+return function ()
+ local bluetooth_widget = wibox.widget{
+ {
+ {
+ {
+ id = "icon",
+ image = gears.color.recolor_image(icondir .. "bluetooth-off.svg"),
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ id = "icon_layout",
+ widget = wibox.container.place
+ },
+ id = "icon_margin",
+ left = dpi(5),
+ right = dpi(5),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Blue200"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local bluetooth_tooltip = awful.tooltip{
+ objects = {bluetooth_widget},
+ text = "",
+ mode = "inside",
+ align = "right",
+ margins = dpi(10)
+ }
+
+ local bluetooth_state = "off"
+ local connected_device = "nothing"
+
+ local get_bluetooth_information = function ()
+ awful.spawn.easy_async_with_shell(
+ [[ bluetoothctl show | grep Powered | awk '{print $2}' ]],
+ function (stdout)
+ local icon = icondir .. "bluetooth"
+ stdout = stdout:gsub("\n", "")
+ if stdout == "yes" then
+ icon = icon .. "-on"
+ bluetooth_state = "on"
+ awful.spawn.easy_async_with_shell(
+ [[ bluetoothctl info | grep Name: | awk '{ first = $1; $1 = ""; print $0 }' ]],
+ function (stdout2)
+ if stdout2 == nil or stdout2:gsub("\n", "") == "" then
+ bluetooth_tooltip:set_text("Bluetooth is turned " .. bluetooth_state .. "\n" .. "You are currently not connected")
+ else
+ bluetooth_tooltip:set_text("Bluetooth is turned " .. bluetooth_state .. "\n" .. "You are currently connected to:" .. connected_device)
+ connected_device = stdout2
+ end
+ end
+ )
+ else
+ icon = icon .. "-off"
+ bluetooth_state = "off"
+ bluetooth_tooltip:set_text("Bluetooth is turned " .. bluetooth_state .. "\n")
+ end
+ bluetooth_widget.icon_margin.icon_layout.icon:set_image(gears.color.recolor_image(icon .. ".svg", color.color["Grey900"]))
+ end
+ )
+ end
+
+ local bluetooth_update = gears.timer{
+ timeout = 5,
+ autostart = true,
+ call_now = true,
+ callback = function ()
+ get_bluetooth_information()
+ end
+ }
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ bluetooth_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = bluetooth_widget.bg
+ bluetooth_widget.bg = color.color["Blue200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ bluetooth_widget:connect_signal(
+ "button::press",
+ function ()
+ bluetooth_widget.bg = color.color["Blue200"] .. "bb"
+ end
+ )
+
+ bluetooth_widget:connect_signal(
+ "button::release",
+ function ()
+ bluetooth_widget.bg = color.color["Blue200"] .. "dd"
+ end
+ )
+
+ bluetooth_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ bluetooth_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ bluetooth_widget:connect_signal(
+ "button::press",
+ function ()
+ if bluetooth_state == "on" then
+ awful.spawn.easy_async_with_shell(
+ "bluetoothctl power off",
+ function (stdout)
+ get_bluetooth_information()
+ end
+ )
+ else
+ awful.spawn.easy_async_with_shell(
+ "bluetoothctl power on",
+ function (stdout)
+ get_bluetooth_information()
+ end
+ )
+ end
+ end
+ )
+
+ get_bluetooth_information()
+ return bluetooth_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/clock.lua b/awesome/awesome/theme/crylia/widgets/clock.lua
new file mode 100644
index 0000000..a7bb12e
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/clock.lua
@@ -0,0 +1,115 @@
+------------------------------
+-- This is the clock widget --
+------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/clock/"
+
+-- Returns the clock widget
+return function ()
+
+ local clock_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ {
+ id = "icon",
+ image = gears.color.recolor_image(icondir .. "clock.svg", color.color["Grey900"]),
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ id = "icon_layout",
+ widget = wibox.container.place
+ },
+ id = "icon_margin",
+ top = dpi(2),
+ widget = wibox.container.margin
+ },
+ spacing = dpi(10),
+ {
+ id = "label",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ id = "clock_layout",
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "container",
+ left = dpi(10),
+ right = dpi(10),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Orange200"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local set_clock = function ()
+ clock_widget.container.clock_layout.label:set_text(os.date("%H:%M"))
+ end
+
+ -- Updates the clock every 5 seconds, worst case you are 5 seconds behind
+ -- ¯\_(ツ)_/¯
+ local clock_update = gears.timer {
+ timeout = 5,
+ autostart = true,
+ call_now = true,
+ callback = function ()
+ set_clock()
+ end
+ }
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ clock_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = clock_widget.bg
+ clock_widget.bg = color.color["Orange200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ clock_widget:connect_signal(
+ "button::press",
+ function ()
+ clock_widget.bg = color.color["Orange200"] .. "bb"
+ end
+ )
+
+ clock_widget:connect_signal(
+ "button::release",
+ function ()
+ clock_widget.bg = color.color["Orange200"] .. "dd"
+ end
+ )
+
+ clock_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ clock_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ return clock_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/date.lua b/awesome/awesome/theme/crylia/widgets/date.lua
new file mode 100644
index 0000000..ab3c4b1
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/date.lua
@@ -0,0 +1,114 @@
+-----------------------------
+-- This is the date widget --
+-----------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/date/"
+
+-- Returns the date widget
+return function ()
+
+ local date_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ {
+ id = "icon",
+ image = gears.color.recolor_image(icondir .. "calendar.svg", color.color["Grey900"]),
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ id = "icon_layout",
+ widget = wibox.container.place
+ },
+ id = "icon_margin",
+ top = dpi(2),
+ widget = wibox.container.margin
+ },
+ spacing = dpi(10),
+ {
+ id = "label",
+ align = "center",
+ valign = "center",
+ widget = wibox.widget.textbox
+ },
+ id = "date_layout",
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "container",
+ left = dpi(10),
+ right = dpi(10),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Teal200"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local set_date = function ()
+ date_widget.container.date_layout.label:set_text(os.date("%a, %b %d"))
+ end
+
+ -- Updates the date every minute, dont blame me if you miss silvester
+ local date_updater = gears.timer {
+ timeout = 60,
+ autostart = true,
+ call_now = true,
+ callback = function ()
+ set_date()
+ end
+ }
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ date_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = date_widget.bg
+ date_widget.bg = color.color["Teal200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ date_widget:connect_signal(
+ "button::press",
+ function ()
+ date_widget.bg = color.color["Teal200"] .. "bb"
+ end
+ )
+
+ date_widget:connect_signal(
+ "button::release",
+ function ()
+ date_widget.bg = color.color["Teal200"] .. "dd"
+ end
+ )
+
+ date_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ date_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ return date_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/layout_list.lua b/awesome/awesome/theme/crylia/widgets/layout_list.lua
new file mode 100644
index 0000000..d17a454
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/layout_list.lua
@@ -0,0 +1,70 @@
+----------------------------------
+-- This is the layoutbox widget --
+----------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local wibox = require("wibox")
+
+-- Returns the layoutbox widget
+return function ()
+
+ local layout = wibox.widget{
+ {
+ awful.widget.layoutbox(),
+ margins = dpi(3),
+ forced_width = dpi(33),
+ widget = wibox.container.margin
+ },
+ bg = color.color["LightBlue200"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.container.background
+ }
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ layout:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = layout.bg
+ layout.bg = color.color["LightBlue200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ layout:connect_signal(
+ "button::press",
+ function ()
+ layout.bg = color.color["LightBlue200"] .. "bb"
+ end
+ )
+
+ layout:connect_signal(
+ "button::release",
+ function ()
+ layout.bg = color.color["LightBlue200"] .. "dd"
+ end
+ )
+
+ layout:connect_signal(
+ "mouse::leave",
+ function ()
+ layout.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ return layout
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/network.lua b/awesome/awesome/theme/crylia/widgets/network.lua
new file mode 100644
index 0000000..f828d84
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/network.lua
@@ -0,0 +1,373 @@
+--------------------------------
+-- This is the network widget --
+--------------------------------
+
+-- Awesome Libs
+local awful = require("awful")
+local color = require("theme.crylia.colors")
+local dpi = require("beautiful").xresources.apply_dpi
+local gears = require("gears")
+local naughty = require("naughty")
+local wibox = require("wibox")
+
+-- Icon directory path
+local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/network/"
+
+-- Insert your interfaces here, get the from ip a
+local interfaces = {
+ wlan_interface = "wlo1",
+ lan_interface = "enx00e04c89ce6f"
+}
+
+local network_mode = nil
+
+-- Returns the network widget
+return function ()
+ local startup = true
+ local reconnect_startup = true
+
+ local network_widget = wibox.widget{
+ {
+ {
+ {
+ {
+ {
+ id = 'icon',
+ image = gears.color.recolor_image(icondir .. "no-internet" .. ".svg", color.color["Grey900"]),
+ widget = wibox.widget.imagebox,
+ resize = false
+ },
+ id = "icon_layout",
+ widget = wibox.container.place
+ },
+ id = "icon_margin",
+ top = dpi(2),
+ widget = wibox.container.margin
+ },
+ spacing = dpi(8),
+ {
+ id = "label",
+ visible = false,
+ valign = "center",
+ align = "center",
+ widget = wibox.widget.textbox
+ },
+ id = "network_layout",
+ layout = wibox.layout.fixed.horizontal
+ },
+ id = "container",
+ left = dpi(10),
+ right = dpi(10),
+ widget = wibox.container.margin
+ },
+ bg = color.color["Red200"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local network_tooltip = awful.tooltip{
+ text = "Loading",
+ objects = {network_widget},
+ mode = "inside",
+ align = "right",
+ margins = dpi(10)
+ }
+
+ local check_for_internet = [=[
+ 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
+ ]=]
+
+ local update_startup = function ()
+ if startup then
+ startup = false
+ end
+ end
+
+ local update_reconnect_startup = function (status)
+ reconnect_startup = status
+ end
+
+ local update_tooltip = function (message)
+ network_tooltip:set_markup(message)
+ end
+
+ local network_notify = function (message, title, app_name, icon)
+ naughty.notify({
+ text = message,
+ title = title,
+ app_name = app_name,
+ icon = gears.color.recolor_image(icon, color.color["White"]),
+ timeout = 3
+ })
+ end
+
+ local update_wireless = function ()
+ network_mode = "wireless"
+
+ local notify_connected = function (essid)
+ local message = "You are now connected to ".. essid
+ local title = "Connection successfull"
+ local app_name = "System Notification"
+ local icon = icondir .. "wifi-strength-4.svg"
+ network_notify(message, title, app_name, icon)
+ end
+
+ 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 .. "\nSignal strength " .. tostring(wifi_strength) .. "%\n" .. "Bit rate " .. tostring(bitrate) .. ""
+
+ if healthy then
+ update_tooltip(message)
+ else
+ update_tooltip("You are connected but have no internet" .. message)
+ end
+
+ if reconnect_startup or startup then
+ notify_connected(essid)
+ update_reconnect_startup(false)
+ end
+ end
+ )
+ end
+
+ local update_wireless_icon = function (strength)
+ awful.spawn.easy_async_with_shell(
+ check_for_internet,
+ function (stdout)
+ local icon = "wifi-strength"
+ if not stdout:match("Connected but no internet") then
+ if startup or reconnect_startup then
+ awesome.emit_signal("system::network_connected")
+ end
+ icon = icon .. '-' .. tostring(strength)
+ update_wireless_data(wifi_strength_rounded, true)
+ else
+ icon = icon .. "-" .. tostring(strength)
+ update_wireless_data(wifi_strength_rounded, false)
+ end
+ network_widget.container.network_layout.spacing = dpi(8)
+ network_widget.container.network_layout.icon_margin.icon_layout.icon:set_image(gears.color.recolor_image(icondir .. icon .. ".svg", color.color["Grey900"]))
+ end
+ )
+ end
+
+ 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)
+ network_widget.container.network_layout.spacing = dpi(10)
+ network_widget.container.network_layout.label.visible = true
+ network_widget.container.network_layout.label:set_text(tostring(wifi_strength))
+ 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 = "You are now connected to ".. interfaces.lan_interface
+ local title = "Connection successfull"
+ local app_name = "System Notification"
+ local icon = icondir .. "ethernet.svg"
+ network_notify(message, title, app_name, icon)
+ end
+
+ awful.spawn.easy_async_with_shell(
+ check_for_internet,
+ function (stdout)
+ local icon = "ethernet"
+
+ if stdout:match("Connected but no internet") then
+ icon = "no-internet"
+ update_tooltip(
+ "No internet"
+ )
+ else
+ update_tooltip("You are connected to:\nEthernet Interface " .. interfaces.lan_interface .. "")
+ if startup or reconnect_startup then
+ awesome.emit_signal("system::network_connected")
+ notify_connected()
+ update_startup()
+ end
+ update_reconnect_startup(false)
+ end
+ network_widget.container.network_layout.label.visible = false
+ network_widget.container.network_layout.spacing = dpi(0)
+ network_widget.container.network_layout.icon_margin.icon_layout.icon:set_image(icondir .. icon .. ".svg")
+ end
+ )
+
+ end
+
+ local update_disconnected = function ()
+ local notify_wireless_disconnected = function (essid)
+ local message = "WiFi has been disconnected"
+ local title = "Connection lost"
+ local app_name = "System Notification"
+ local icon = icondir .. "wifi-strength-off-outline.svg"
+ network_notify(message, title, app_name, icon)
+ end
+ local notify_wired_disconnected = function (essid)
+ local message = "Ethernet has been unplugged"
+ local title = "Connection lost"
+ local app_name = "System Notification"
+ local icon = icondir .. "no-internet.svg"
+ network_notify(message, title, app_name, icon)
+ end
+ local icon = "wifi-strength-off-outline"
+ if network_mode == "wireless" then
+ icon = "wifi-strength-off-outline"
+ if not reconnect_startup then
+ update_reconnect_startup(true)
+ notify_wireless_disconnected()
+ end
+ elseif network_mode == "wired" then
+ icon = "no-internet"
+ if not reconnect_startup then
+ update_reconnect_startup(true)
+ notify_wired_disconnected()
+ end
+ end
+ network_widget.container.network_layout.label.visible = false
+ update_tooltip("Network unreachable")
+ network_widget.test.test2.spacing = dpi(0)
+ network_widget.container.network_layout.icon_margin.icon_layout.icon:set_image(gears.color.recolor_image(icondir .. icon .. ".svg", color.color["Grey900"]))
+ 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/"
+ wireless_state="down"
+ wired_state="down"
+ network_mode=""
+ function check_network_state(){
+ if [[ "${wireless_state}" == "up" ]];
+ then
+ network_mode="wireless"
+ elif [[ "${wired_state}" == "up" ]];
+ then
+ network_mode="wired"
+ else
+ network_mode="No internet connected"
+ fi
+ }
+ 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
+ }
+ function print_network_mode(){
+ check_network_directory
+ print "${network_mode}"
+ }
+ print_network_mode
+ ]=],
+ function (stdout)
+ local mode = stdout:gsub("%\n", "")
+ if stdout:match("No internet connected") 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
+ }
+
+ -- Signals
+ local old_wibox, old_cursor, old_bg
+ network_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = network_widget.bg
+ network_widget.bg = color.color["Red200"] .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ network_widget:connect_signal(
+ "button::press",
+ function ()
+ network_widget.bg = color.color["Red200"] .. "bb"
+ end
+ )
+
+ network_widget:connect_signal(
+ "button::release",
+ function ()
+ network_widget.bg = color.color["Red200"] .. "dd"
+ end
+ )
+
+ network_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ network_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ network_widget:connect_signal(
+ "button::press",
+ function ()
+ awful.spawn("gnome-control-center wlan")
+ end
+ )
+
+ return network_widget
+end
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/taglist.lua b/awesome/awesome/theme/crylia/widgets/taglist.lua
new file mode 100644
index 0000000..7de0db7
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/taglist.lua
@@ -0,0 +1,216 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local gears = require("gears")
+local dpi = require("beautiful").xresources.apply_dpi
+local color = require("theme.crylia.colors")
+
+local list_update = function (widget, buttons, label, data, objects)
+ widget:reset()
+
+ for i, object in ipairs(objects) do
+
+ local tag_icon = wibox.widget{
+ nil,
+ {
+ id = "icon",
+ resize = true,
+ widget = wibox.widget.imagebox
+ },
+ nil,
+ layout = wibox.layout.align.horizontal
+ }
+
+ local tag_icon_margin = wibox.widget{
+ tag_icon,
+ forced_width = dpi(33),
+ margins = dpi(3),
+ widget = wibox.container.margin
+ }
+
+ local tag_label = wibox.widget{
+ text = "",
+ align = "center",
+ valign = "center",
+ visible = true,
+ font = "JetBrains Mono ExtraBold, 14",
+ forced_width = dpi(25),
+ widget = wibox.widget.textbox
+ }
+
+ local tag_label_margin = wibox.widget{
+ tag_label,
+ left = dpi(5),
+ right = dpi(5),
+ widget = wibox.container.margin
+ }
+
+ local tag_widget = wibox.widget {
+ {
+ id = "widget_margin",
+ {
+ id = "container",
+ tag_label_margin,
+ --tag_icon_margin,
+ layout = wibox.layout.fixed.horizontal
+ },
+ margins = dpi(0),
+ widget = wibox.container.margin
+ },
+ fg = color.color["White"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ tag_widget:buttons(buttons, object)
+
+ --local text, bg_color, bg_image, icon, args = label(object, tag_label)
+
+ tag_label:set_text(i)
+
+ if object == awful.screen.focused().selected_tag then
+ tag_widget:set_bg(color.color["White"])
+ tag_widget:set_fg(color.color["Grey900"])
+ else
+ tag_widget:set_bg("#3A475C")
+ end
+
+ for _, client in ipairs(object:clients()) do
+ if client.icon then
+ tag_label_margin:set_right(0)
+ local icon = wibox.widget{
+ {
+ id = "icon_container",
+ {
+ id = "icon",
+ resize = true,
+ widget = wibox.widget.imagebox
+ },
+ widget = wibox.container.place
+ },
+ tag_icon,
+ forced_width = dpi(33),
+ margins = dpi(6),
+ widget = wibox.container.margin
+ }
+ icon.icon_container.icon:set_image(client.icon)
+ tag_widget.widget_margin.container:setup({
+ icon,
+ layout = wibox.layout.align.horizontal
+ })
+ else
+ tag_icon_margin:set_margins(0)
+ tag_icon:set_forced_width(0)
+ end
+ end
+
+ local old_wibox, old_cursor, old_bg
+ tag_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = tag_widget.bg
+ tag_widget.bg = "#3A475C" .. "dd"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ tag_widget:connect_signal(
+ "button::press",
+ function ()
+ tag_widget.bg = "#3A475C" .. "bb"
+ end
+ )
+
+ tag_widget:connect_signal(
+ "button::release",
+ function ()
+ tag_widget.bg = "#3A475C" .. "dd"
+ end
+ )
+
+ tag_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ tag_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+
+ widget:add(tag_widget)
+ widget:set_spacing(dpi(6))
+ end
+
+end
+
+local tag_list = function (s)
+ return awful.widget.taglist(
+ s,
+ awful.widget.taglist.filter.all,
+ gears.table.join(
+ awful.button(
+ { },
+ 1,
+ function (t)
+ t:view_only()
+ end
+ ),
+ awful.button(
+ { modkey },
+ 1,
+ function (t)
+ if client.focus then
+ client.focus:move_to_tag(t)
+ end
+ end
+ ),
+ awful.button(
+ { },
+ 3,
+ function (t)
+ if client.focus then
+ client.focus:toggle_tag(t)
+ end
+ end
+ ),
+ awful.button(
+ { modkey },
+ 3,
+ function (t)
+ if client.focus then
+ client.focus:toggle_tag(t)
+ end
+ end
+ ),
+ awful.button(
+ { },
+ 4,
+ function (t)
+ awful.tag.viewnext(t.screen)
+ end
+ ),
+ awful.button(
+ { },
+ 5,
+ function (t)
+ if client.focus then
+ awful.tag.viewprev(t.screen)
+ end
+ end
+ )
+ )
+ ,
+ {},
+ list_update,
+ wibox.layout.fixed.horizontal()
+ )
+end
+
+return tag_list
\ No newline at end of file
diff --git a/awesome/awesome/theme/crylia/widgets/tasklist.lua b/awesome/awesome/theme/crylia/widgets/tasklist.lua
new file mode 100644
index 0000000..330b1a8
--- /dev/null
+++ b/awesome/awesome/theme/crylia/widgets/tasklist.lua
@@ -0,0 +1,171 @@
+local awful = require('awful')
+local wibox = require('wibox')
+local dpi = require('beautiful').xresources.apply_dpi
+local gears = require('gears')
+local color = require('theme.crylia.colors')
+local naughty = require("naughty")
+
+local list_update = function (widget, buttons, label, data, objects)
+ widget:reset()
+
+ for i, object in ipairs(objects) do
+
+ local task_icon = wibox.widget{
+ nil,
+ {
+ id = "icon",
+ resize = true,
+ widget = wibox.widget.imagebox
+ },
+ nil,
+ layout = wibox.layout.align.horizontal
+ }
+
+ local task_icon_margin = wibox.widget{
+ task_icon,
+ forced_width = dpi(33),
+ margins = dpi(3),
+ widget = wibox.container.margin
+ }
+
+ local task_title = wibox.widget{
+ text = "",
+ align = "center",
+ valign = "center",
+ visible = true,
+ widget = wibox.widget.textbox
+ }
+
+ local task_widget = wibox.widget{
+ {
+ {
+ task_icon_margin,
+ task_title,
+ layout = wibox.layout.fixed.horizontal
+ },
+ margins = dpi(0),
+ widget = wibox.container.margin
+ },
+ bg = color.color["White"],
+ fg = color.color["Grey900"],
+ shape = function (cr, width, height)
+ gears.shape.rounded_rect(cr, width, height, 5)
+ end,
+ widget = wibox.widget.background
+ }
+
+ local task_tool_tip = awful.tooltip{
+ objects = {task_widget},
+ mode = "inside",
+ align = "right",
+ delay_show = 1
+ }
+
+ task_widget:buttons(buttons, object)
+
+ local text, bg, bg_image, icon, args = label(object, task_title)
+
+ if object == client.focus then
+ if text == nil or text == '' then
+ task_title:set_margins(0)
+ else
+ local text_full = text:match('>(.-)<')
+ if text_full then
+ text = text_full
+ task_tool_tip:set_text(text_full)
+ task_tool_tip:add_to_object(task_widget)
+ else
+ task_tool_tip:remove_from_object(task_widget)
+ end
+ end
+ task_widget:set_bg(color.color["White"])
+ task_widget:set_fg(color.color["Grey900"])
+ task_title:set_text(text)
+ else
+ task_widget:set_bg("#3A475C")
+ task_title:set_text('')
+ end
+
+ if icon then
+ task_icon.icon:set_image(icon)
+ else
+ task_icon_margin:set_margins(0)
+ end
+
+ widget:add(task_widget)
+ widget:set_spacing(dpi(6))
+
+ local old_wibox, old_cursor, old_bg
+ task_widget:connect_signal(
+ "mouse::enter",
+ function ()
+ old_bg = task_widget.bg
+ task_widget.bg = "#ffffff" .. "bb"
+ local w = mouse.current_wibox
+ if w then
+ old_cursor, old_wibox = w.cursor, w
+ w.cursor = "hand1"
+ end
+ end
+ )
+
+ task_widget:connect_signal(
+ "button::press",
+ function ()
+ task_widget.bg = "#ffffff" .. "aa"
+ end
+ )
+
+ task_widget:connect_signal(
+ "button::release",
+ function ()
+ task_widget.bg = "#ffffff" .. "bb"
+ end
+ )
+
+ task_widget:connect_signal(
+ "mouse::leave",
+ function ()
+ task_widget.bg = old_bg
+ if old_wibox then
+ old_wibox.cursor = old_cursor
+ old_wibox = nil
+ end
+ end
+ )
+ end
+
+ if (widget.children and #widget.children or 0) == 0 then
+ awesome.emit_signal("hide_centerbar", false)
+ else
+ awesome.emit_signal("hide_centerbar", true)
+ end
+ return widget
+end
+
+return function(s)
+ return awful.widget.tasklist(
+ s,
+ awful.widget.tasklist.filter.currenttags,
+ gears.table.join(
+ awful.button(
+ {},
+ 1,
+ function (c)
+ if c == client.focus then
+ c.minimized = true
+ else
+ c.minimized = false
+ if not c.invisible() and c.first_tag then
+ c:emit_signal("request::activate")
+ c:raise()
+ end
+ end
+ end
+ )
+ ),
+ {},
+ list_update,
+ wibox.layout.fixed.horizontal()
+ )
+end
\ No newline at end of file
diff --git a/rofi/config.rasi b/rofi/config.rasi
index d5bba3d..3cb7cb2 100644
--- a/rofi/config.rasi
+++ b/rofi/config.rasi
@@ -1,90 +1,119 @@
configuration {
- modi: "run,drun,window";
- width: 30;
- font: "UbuntuMono Nerd Font Regular Mono 12";
- terminal: "alacritty";
- line-margin: 0;
- line-padding: 0;
- separator-style: "solid";
- hide-scrollbar: true;
- display-drun: "Apps";
- display-run: "Run";
- display-window: "Windows";
- show-icons: true;
+ modi: "run,drun,window";
+ font: "JetBrainsMono Nerd Font 14";
+ terminal: "alacritty";
+ icon-theme: "Papirus";
+ line-margin: 0;
+ line-padding: 0;
+ separator-style: "solid";
+ hide-scrollbar: true;
+ display-drun: "ﬓ";
+ display-run: "";
+ display-window: "缾";
+ show-icons: true;
}
-/*
-background = #1d212a
-foreground = #a6bcfa
-yellow = #fee38f
-red = #fc8995
-green = #8ae19c
-blue = #a6bcfa
-purple = #de95d5
-strongpurple = #EAA3FC
-cyan = #81d4ef
-pink = #F3D1F4
-bluegreen = #A8E6CF
-*/
* {
- bg: #1d212a;
- fg: #a6bcfa;
- background-color: @bg;
- text-color: @fg;
- separatorcolor: #fc8995;
+ background: #21212166;
+ background-alt: #00000000;
+ background-bar: #f2f2f215;
+ foreground: #f2f2f2EE;
+ accent: #3DAEE966;
}
window {
- padding: 10px;
- border-radius: 5px;
- border: 1px;
- border-color: #a6bcfa;
-}
-
-prompt, entry {
- text-color: #fc8995;
- padding: 0px;
-}
-
-entry {
- border-radius: 4px;
- margin: 0 0 10px 10px;
-}
-
-mainbox {
- background-color: #8ae19c;
-}
-
-listview {
- padding: 10px 0 0 0;
+ background-color: @background;
+ text-color: @foreground;
+ border: 0px;
+ border-color: @border;
+ border-radius: 0px;
+ width: 100%;
+ height: 100%;
}
prompt {
- background-color: #fc8995;
- text-color: @bg;
- margin: 0 0 10px 0;
- border-radius: 4px;
- padding: 1px 4px 1px 4px;
+ enabled: true;
+ padding: 0 0.5% 0 0.5%;
+ margin: 0 1% 0 0;
+ background-color: @background-alt;
+ text-color: @foreground;
+ font: "JetBrainsMono Nerd Font 24";
+
+}
+
+entry {
+ background-color: @background-alt;
+ text-color: @foreground;
+ placeholder-color: @foreground;
+ expand: true;
+ horizontal-align: 0;
+ placeholder: "Search";
+ padding: 1% 0 1% 0;
+ blink: true;
+}
+
+inputbar {
+ children: [ prompt, entry ];
+ background-color: @background-bar;
+ text-color: @foreground;
+ expand: false;
+ border: 0% 0% 0% 0%;
+ border-radius: 5px;
+ border-color: @accent;
+ margin: 0% 25% 0% 25%;
+ padding: 0.2% 0.5% 0.2% 0.5%;
+}
+
+listview {
+ background-color: @background-alt;
+ columns: 3;
+ spacing: 0%;
+ cycle: false;
+ dynamic: true;
+ layout: vertical;
+}
+
+mainbox {
+ background-color: @background-alt;
+ border: 0% 0% 0% 0%;
+ border-radius: 0% 0% 0% 0%;
+ border-color: @accent;
+ children: [ inputbar, listview ];
+ spacing: 8%;
+ padding: 10% 12.5% 10% 12.5%;
+}
+
+element-icon {
+ background-color: @background;
+ text-color: inherit;
+ horizontal-align: 0.5;
+ vertical-align: 0.5;
+ border: 0px;
+}
+
+element-text {
+ background-color: @background;
+ text-color: inherit;
+ expand: true;
+ horizontal-align: 0.5;
+ vertical-align: 0.5;
+ margin: 0;
}
element {
- border-radius: 4px;
- text-color: #a6bcfa;
- padding: 4px;
-}
-
-element selected{
- background-color: @fg;
- text-color: @bg;
-}
-
-button {
- padding: 10px;
-}
-
-button selected {
- background-color: #fff;
- text-color: @bg;
- padding: 20px;
+ children: [element-icon, element-text];
+ orientation: vertical;
+ background-color: @background-alt;
+ text-color: @foreground;
+ padding: 1.5% 0.5% 1.5% 0.5%;
+ margin: 0.3% 1% 0.3% 1%;
+ font: "JetBrainsMono Nerd Font 20";
}
+element selected {
+ background-color: @background-bar;
+ text-color: @foreground;
+ border-radius: 5px;
+ border: 0px;
+ border-color: #90CAF9;
+}
\ No newline at end of file