Add config files for awesomewm, alacritty, picom and rofi

This commit is contained in:
crylia
2021-09-12 22:59:41 +02:00
commit b380e753b1
94 changed files with 4445 additions and 0 deletions

107
alacritty/alacritty.yml Normal file
View File

@@ -0,0 +1,107 @@
################################################
# ██████╗██████╗ ██╗ ██╗██╗ ██╗ █████╗ #
# ██╔════╝██╔══██╗╚██╗ ██╔╝██║ ██║██╔══██╗ #
# ██║ ██████╔╝ ╚████╔╝ ██║ ██║███████║ #
# ██║ ██╔══██╗ ╚██╔╝ ██║ ██║██╔══██║ #
# ╚██████╗██║ ██║ ██║ ███████╗██║██║ ██║ #
# ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝╚═╝ ╚═╝ #
################################################
# Set the window Width and Height in console columns.
# The window size will change if the font size changes.
window:
dimensions:
columns: 110
lines: 30
decorations: full
startup_mode: Windowed
title: "Alacritty Terminal"
dynamic_title: true
# Scrolling history and multiplier
scrolling:
history: 10000
multiplier: 3
# Font family and style
font:
normal:
family: "MesloLGS NF"
style: Regular
bold:
family: "MesloLGS NF"
style: Bold
italic:
family: "MesloLGS NF"
style: italic
bold_italic:
family: "MesloLGS NF"
style: Bold Italic
size: 12.0
offset:
x: 0
y: 0
draw_bold_text_with_bright_colors: false
# Background opacity from 0.0 transparent, 1.0 Opaque
background_opacity: 0.4
# Terminal colors
colors:
primary:
background: '#000000'
foreground: '#FFFFFF'
cursor:
cursor: '#00b8ff'
search:
matches:
foreground: '#000000'
background: '#EA80FC'
focus_match:
foreground: '#000000'
background: '#E040FB'
bar:
foreground: '#B388FF'
background: '#121212'
selection:
text: '#EA80FC'
background: '#121212'
normal:
black: '#121212'
red: '#ff5252'
green: '#8BC34A'
yellow: '#FFFF00'
blue: '#82B1FF'
magenta: '#EA80FC'
cyan: '#84FFFF'
white: '#FFFFFF'
bright:
black: '#363636'
red: '#ef9a9a'
green: '#A5D6A7'
yellow: '#FFF59D'
blue: '#90CAF9'
magenta: '#CE93D8'
cyan: '#80DEEA'
white: '#FFFFFF'
# Cursor styling
cursor:
style: Beam
thickness: 0.2
unfocused_hollow: false
blink_interval: 750
################################################################################
# ███████╗██╗ ██╗ ██████╗ ██████╗ ████████╗ ██████╗██╗ ██╗████████╗███████╗ #
# ██╔════╝██║ ██║██╔═══██╗██╔══██╗╚══██╔══╝██╔════╝██║ ██║╚══██╔══╝██╔════╝ #
# ███████╗███████║██║ ██║██████╔╝ ██║ ██║ ██║ ██║ ██║ ███████╗ #
# ╚════██║██╔══██║██║ ██║██╔══██╗ ██║ ██║ ██║ ██║ ██║ ╚════██║ #
# ███████║██║ ██║╚██████╔╝██║ ██║ ██║ ╚██████╗╚██████╔╝ ██║ ███████║ #
# ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝ #
################################################################################
# Mouse
mouse_bindings:
- { mouse: Right, action: Paste }
# Keyboard
key_bindings:
- { key: C, mods: Control|Shift, action: Copy }
- { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control, mode: Vi, action: ClearSelection }

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,45 @@
-- 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",
awful.client.floating.toggle,
{ 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

View File

@@ -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

View File

@@ -0,0 +1,357 @@
-- 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, "Shift" },
"space",
function ()
awful.layout.inc(-1)
end,
{description = "Select previous", 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 run")
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 })

244
awesome/deco/statusbar.lua Normal file
View File

@@ -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
)

64
awesome/deco/taglist.lua Normal file
View File

@@ -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 setmetatable({ }, { __call = function(_, ...) return _M.get(...) end})

50
awesome/deco/tasklist.lua Normal file
View File

@@ -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 })

View File

@@ -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)

View File

@@ -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

18
awesome/main/layouts.lua Normal file
View File

@@ -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

46
awesome/main/menu.lua Normal file
View File

@@ -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 () awful.spawn.with_shell('logout') 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

52
awesome/main/rules.lua Normal file
View File

@@ -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

22
awesome/main/signals.lua Normal file
View File

@@ -0,0 +1,22 @@
-- Awesome Libs
local awful = require("awful")
local beautiful = require("beautiful")
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
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)

27
awesome/main/tags.lua Normal file
View File

@@ -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

19
awesome/main/theme.lua Normal file
View File

@@ -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

View File

@@ -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

93
awesome/rc.lua Normal file
View File

@@ -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")

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" /></svg>

After

Width:  |  Height:  |  Size: 336 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" /></svg>

After

Width:  |  Height:  |  Size: 510 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M7,9V15H11L16,20V4L11,9H7Z" /></svg>

After

Width:  |  Height:  |  Size: 321 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M5,9V15H9L14,20V4L9,9M18.5,12C18.5,10.23 17.5,8.71 16,7.97V16C17.5,15.29 18.5,13.76 18.5,12Z" /></svg>

After

Width:  |  Height:  |  Size: 387 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z" /></svg>

After

Width:  |  Height:  |  Size: 432 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,4L9.91,6.09L12,8.18M4.27,3L3,4.27L7.73,9H3V15H7L12,20V13.27L16.25,17.53C15.58,18.04 14.83,18.46 14,18.7V20.77C15.38,20.45 16.63,19.82 17.68,18.96L19.73,21L21,19.73L12,10.73M19,12C19,12.94 18.8,13.82 18.46,14.64L19.97,16.15C20.62,14.91 21,13.5 21,12C21,7.72 18,4.14 14,3.23V5.29C16.89,6.15 19,8.83 19,12M16.5,12C16.5,10.23 15.5,8.71 14,7.97V10.18L16.45,12.63C16.5,12.43 16.5,12.21 16.5,12Z" /></svg>

After

Width:  |  Height:  |  Size: 687 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M13 14H11V8H13M13 18H11V16H13M16.7 4H15V2H9V4H7.3C6.6 4 6 4.6 6 5.3V20.6C6 21.4 6.6 22 7.3 22H16.6C17.3 22 17.9 21.4 17.9 20.7V5.3C18 4.6 17.4 4 16.7 4Z" /></svg>

After

Width:  |  Height:  |  Size: 447 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23.05,11H20.05V4L15.05,14H18.05V22M12,18H4L4.05,6H12.05M12.72,4H11.05V2H5.05V4H3.38A1.33,1.33 0 0,0 2.05,5.33V20.67C2.05,21.4 2.65,22 3.38,22H12.72C13.45,22 14.05,21.4 14.05,20.67V5.33A1.33,1.33 0 0,0 12.72,4Z" /></svg>

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23,11H20V4L15,14H18V22M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23.05,11H20.05V4L15.05,14H18.05V22M12.05,17H4.05V6H12.05M12.72,4H11.05V2H5.05V4H3.38A1.33,1.33 0 0,0 2.05,5.33V20.67C2.05,21.4 2.65,22 3.38,22H12.72C13.45,22 14.05,21.4 14.05,20.67V5.33A1.33,1.33 0 0,0 12.72,4Z" /></svg>

After

Width:  |  Height:  |  Size: 506 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,15H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4M23,11H20V4L15,14H18V22L23,11Z" /></svg>

After

Width:  |  Height:  |  Size: 471 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M13 4H11V2H5V4H3C2.4 4 2 4.4 2 5V21C2 21.6 2.4 22 3 22H13C13.6 22 14 21.6 14 21V5C14 4.4 13.6 4 13 4M12 14.5H4V6H12V14.5M23 11H20V4L15 14H18V22" /></svg>

After

Width:  |  Height:  |  Size: 438 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23,11H20V4L15,14H18V22M12,13H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 465 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,11H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4M23,11H20V4L15,14H18V22L23,11Z" /></svg>

After

Width:  |  Height:  |  Size: 471 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,10H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4M23,11H20V4L15,14H18V22L23,11Z" /></svg>

After

Width:  |  Height:  |  Size: 471 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23,11H20V4L15,14H18V22M12,9H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 464 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23,11H20V4L15,14H18V22M12,8H4V6H12M12.67,4H11V2H5V4H3.33A1.33,1.33 0 0,0 2,5.33V20.67C2,21.4 2.6,22 3.33,22H12.67C13.4,22 14,21.4 14,20.67V5.33A1.33,1.33 0 0,0 12.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 464 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23.05,11H20.05V4L15.05,14H18.05V22M12,20H4L4.05,6H12.05M12.72,4H11.05V2H5.05V4H3.38A1.33,1.33 0 0,0 2.05,5.33V20.67C2.05,21.4 2.65,22 3.38,22H12.72C13.45,22 14.05,21.4 14.05,20.67V5.33A1.33,1.33 0 0,0 12.72,4Z" /></svg>

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.66C17.4,22 18,21.4 18,20.67V5.33C18,4.6 17.4,4 16.67,4M11,20V14.5H9L13,7V12.5H15" /></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,18H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,17H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,15H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,14H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,13H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,12H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,10H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,9H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 439 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,8H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 439 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M18 14.8L7.21 4H9V2H15V4H16.67A1.34 1.34 0 0 1 18 5.33M18 17.35L3.38 2.73L2.11 4L6 7.89V20.67A1.34 1.34 0 0 0 7.33 22H16.67A1.34 1.34 0 0 0 18 20.67V19.89L20.84 22.73L22.11 21.46Z" /></svg>

After

Width:  |  Height:  |  Size: 474 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16,20H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M15.07,12.25L14.17,13.17C13.63,13.71 13.25,14.18 13.09,15H11.05C11.16,14.1 11.56,13.28 12.17,12.67L13.41,11.41C13.78,11.05 14,10.55 14,10C14,8.89 13.1,8 12,8A2,2 0 0,0 10,10H8A4,4 0 0,1 12,6A4,4 0 0,1 16,10C16,10.88 15.64,11.68 15.07,12.25M13,19H11V17H13M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.67C17.4,22 18,21.4 18,20.66V5.33C18,4.59 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 682 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z" /></svg>

After

Width:  |  Height:  |  Size: 427 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M13,5.83L14.88,7.71L13.28,9.31L14.69,10.72L17.71,7.7L12,2H11V7.03L13,9.03M5.41,4L4,5.41L10.59,12L5,17.59L6.41,19L11,14.41V22H12L16.29,17.71L18.59,20L20,18.59M13,18.17V14.41L14.88,16.29" /></svg>

After

Width:  |  Height:  |  Size: 479 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12L17.71,7.71Z" /></svg>

After

Width:  |  Height:  |  Size: 460 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,8A4,4 0 0,0 8,12A4,4 0 0,0 12,16A4,4 0 0,0 16,12A4,4 0 0,0 12,8M12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31L23.31,12L20,8.69Z" /></svg>

After

Width:  |  Height:  |  Size: 537 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,15.31L23.31,12L20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31Z" /></svg>

After

Width:  |  Height:  |  Size: 471 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,18V6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,15.31L23.31,12L20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31Z" /></svg>

After

Width:  |  Height:  |  Size: 443 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12 20C16.4 20 20 16.4 20 12S16.4 4 12 4 4 7.6 4 12 7.6 20 12 20M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M17 13.9L16.3 15.2L11 12.3V7H12.5V11.4L17 13.9Z" /></svg>

After

Width:  |  Height:  |  Size: 481 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M7,10H12V15H7M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z" /></svg>

After

Width:  |  Height:  |  Size: 418 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M7,15H9V18H11V15H13V18H15V15H17V18H19V9H15V6H9V9H5V18H7V15M4.38,3H19.63C20.94,3 22,4.06 22,5.38V19.63A2.37,2.37 0 0,1 19.63,22H4.38C3.06,22 2,20.94 2,19.63V5.38C2,4.06 3.06,3 4.38,3Z" /></svg>

After

Width:  |  Height:  |  Size: 477 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z" /></svg>

After

Width:  |  Height:  |  Size: 525 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L15.61,13.81C14.5,13.28 13.25,13 12,13C10.75,13 9.5,13.28 8.39,13.8L3.27,7.44C5.91,5.85 8.93,5 12,5Z" /></svg>

After

Width:  |  Height:  |  Size: 544 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L17.5,11.43C16.26,10.74 14.37,10 12,10C9.62,10 7.74,10.75 6.5,11.43L3.27,7.44C5.91,5.85 8.93,5 12,5Z" /></svg>

After

Width:  |  Height:  |  Size: 544 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L18.77,9.88C17.26,9 14.88,8 12,8C9,8 6.68,9 5.21,9.84L3.27,7.44C5.91,5.85 8.93,5 12,5Z" /></svg>

After

Width:  |  Height:  |  Size: 530 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3Z" /></svg>

After

Width:  |  Height:  |  Size: 410 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M3.27,1.44L2,2.72L4.05,4.77C2.75,5.37 1.5,6.11 0.38,7C4.2,11.8 8.14,16.67 12,21.5L15.91,16.63L19.23,19.95L20.5,18.68C14.87,13.04 3.27,1.44 3.27,1.44M12,3C10.6,3 9.21,3.17 7.86,3.5L9.56,5.19C10.37,5.07 11.18,5 12,5C15.07,5 18.09,5.86 20.71,7.45L16.76,12.38L18.18,13.8C20.08,11.43 22,9 23.65,7C20.32,4.41 16.22,3 12,3M5.57,6.29L14.5,15.21L12,18.3L3.27,7.44C4,7 4.78,6.61 5.57,6.29Z" /></svg>

After

Width:  |  Height:  |  Size: 674 B

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,3C7.79,3 3.7,4.41 0.38,7H0.36C4.24,11.83 8.13,16.66 12,21.5C15.89,16.66 19.77,11.83 23.64,7H23.65C20.32,4.41 16.22,3 12,3M12,5C15.07,5 18.09,5.86 20.71,7.45L12,18.3L3.27,7.44C5.9,5.85 8.92,5 12,5Z" /></svg>

After

Width:  |  Height:  |  Size: 495 B

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
width="240"
height="240"
viewBox="0 0 240 240"
sodipodi:docname="dwindle.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="740"
id="namedview4"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="3.4570311"
inkscape:cx="-12.438419"
inkscape:cy="34.133335"
inkscape:window-x="45"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<image
width="200"
height="200"
preserveAspectRatio="none"
style="image-rendering:optimizeQuality"
xlink:href="data:image/png;base64,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 YII= "
id="image10"
x="20"
y="20" />
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
width="240"
height="240"
viewBox="0 0 240 240"
sodipodi:docname="floating.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="740"
id="namedview4"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="3.4570311"
inkscape:cx="-20.682487"
inkscape:cy="34.133335"
inkscape:window-x="45"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<image
width="200"
height="200"
preserveAspectRatio="none"
style="image-rendering:optimizeQuality"
xlink:href="data:image/png;base64,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 TkSuQmCC "
id="image10"
x="20"
y="20" />
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 240 240"
height="240"
width="240"
id="svg2"
version="1.1"
sodipodi:docname="fullscreen.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="740"
id="namedview6"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="3.6875"
inkscape:cx="-19.389831"
inkscape:cy="32.196194"
inkscape:window-x="45"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<image
y="20"
x="20"
id="image10"
xlink:href="data:image/png;base64,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 3+5uvgnyAAAAAElFTkSuQmCC "
style="image-rendering:optimizeQuality"
preserveAspectRatio="none"
height="200"
width="200" />
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 240 240"
height="240"
width="240"
id="svg2"
version="1.1"
sodipodi:docname="max.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="740"
id="namedview6"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="0.16296602"
inkscape:cx="-1772.3129"
inkscape:cy="60.603641"
inkscape:window-x="45"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<image
y="20"
x="20"
id="image10"
xlink:href="data:image/png;base64,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 AAAAAElFTkSuQmCC "
style="image-rendering:optimizeQuality"
preserveAspectRatio="none"
height="200"
width="200" />
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
width="240"
height="240"
viewBox="0 0 240 240"
sodipodi:docname="tile.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata8">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs6" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="740"
id="namedview4"
showgrid="false"
inkscape:pagecheckerboard="true"
inkscape:zoom="3.4570311"
inkscape:cx="113.41698"
inkscape:cy="20.959299"
inkscape:window-x="45"
inkscape:window-y="28"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<image
width="200"
height="200"
preserveAspectRatio="none"
style="image-rendering:optimizeQuality"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAC63pUWHRSYXcgcHJvZmlsZSB0eXBl IGV4aWYAAHja7ZdtktwoDIb/c4ocAUkIieNgPqpygz1+XrDd0z2Z3SS1+2er2pQBC1nI7wP0TBh/ fZ/hGy4qmUNS81xyjrhSSYUrOh7Pq+yaYtr1vtI1hOcXe3gMMEyCVs5Hq5d/hV0/XrjnoOPVHvwa Yb8CXQN3QFkzMzr9OUnY+bTTlUko4+zk4vac6sFn2+6U/eOed1p2Nus5PBuSQaWumEiYh5DEXfuZ gZx3xS27ZvhFMfSTSEDD25VOQV4+725jfBboReS7Fz6r/+h9Ep/rZZdPWuZLI3S+HCD9Wvwt8dPE 8siIXwdM7lBfiDy7zznOr6spQ9F8ragtNt1h4HhActmvZRTDrejbLgXFY40NyHts8UBpVIhBZQZK 1KnSpLHbRg0pJh5saJkby7a5GBduoERghEKTTYp0ccBqPAJQJuFHLrTnLXu+Ro6ZO8GVCcEIr/xt Cf80+CclzNmWRBT9oRXy4rWukcYit2p4AQjNi5tuge9y4Y9P62ct1QS3JbPjA2s8zhCH0sfaks1Z 4Kdozy1EwfoVABJhbkUyJCAQM4lSpmjMRgQdHYAqMmdJfIAAqXJHkowNgvPI2HnNjXeMti8rZ15m nE0AoZKxnxyEKmClpFg/lhxrqKpoUtWsph60aM2SU9acs+V1yFUTS6aWzcytWHXx5OrZzd2L18JF cAZqycWKl1Jq5VAxUUWsCv8Ky8GHHOnQIx92+FGO2rB8WmracrPmrbTauUvHMdFzt+699DooDJwU Iw0dedjwUUadWGtTZpo687Tps8z6oHZR/an8ATW6qPEmtfzsQQ3WYHaHoHWc6GIGYpwIxG0RwILm xSw6pcSL3GIWC2NTKCNJXWxCp0UMCNMg1kkPdh/kfotbUP8tbvwrcmGh+y/IBaD7mdsX1Pr6nWub 2LkLl6ZRsPvgU9kD7hhR/dv2Hegd6B3oHegd6B3oHej/H0gm/njAP7HhB3u4nbY7yMH4AAABhWlD Q1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw1AUhU9TtSIVBwuKOGSoLloQFXHUKhShQqgVWnUweemP0KQh SXFxFFwLDv4sVh1cnHV1cBUEwR8QJ0cnRRcp8b6k0CLGC4/3cd49h/fuA4RaiWlW2xig6baZSsTF THZFDL0iiAD6MIIOmVnGrCQl4Vtf99RLdRfjWf59f1a3mrMYEBCJZ5hh2sTrxFObtsF5nzjCirJK fE48atIFiR+5rnj8xrngssAzI2Y6NUccIRYLLay0MCuaGvEkcVTVdMoXMh6rnLc4a6UKa9yTvzCc 05eXuE5rEAksYBESRCioYAMl2IjRrpNiIUXncR//gOuXyKWQawOMHPMoQ4Ps+sH/4PdsrfzEuJcU jgPtL47zMQSEdoF61XG+jx2nfgIEn4Ervekv14DpT9KrTS16BPRsAxfXTU3ZAy53gP4nQzZlVwrS EvJ54P2MvikL9N4CXave3BrnOH0A0jSr5A1wcAgMFyh7zefdna1z+7enMb8fKAtyidNZ3ucAAAAG YktHRAAAAAAAAPlDu38AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfkAwEXKxzFBfpSAAAA pUlEQVR42u3bQQpAIQgFwIzuf+X+Cdp8KgzHZaDQQC4eFHPOVrl6K14AqgOMxfnfxRCvzesbh696 U8+zAwAAAAAAAAAAAAAAAADgUMXm3q3zxiXoyDrPEwBQvG7tgKcywSyXX/XKBO0AAAAAAAAAAAAA AAAAvAAgE2wyQTsAQNaSCSa+/KpXJmgHAAAAAAAAAAAAAAAA4ARA6gxv97zwd9gTAFC6PgsFG4ct jyRYAAAAAElFTkSuQmCC "
id="image10"
x="20"
y="20" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 KiB

View File

@@ -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

View File

@@ -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"])

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 <b>" .. essid .. "</b>\nSignal strength <b>" .. tostring(wifi_strength) .. "%</b>\n" .. "Bit rate <b>" .. tostring(bitrate) .. "</b>"
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 <b>" .. interfaces.lan_interface .. "</b>")
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

View File

@@ -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

View File

@@ -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

155
picom.conf Normal file
View File

@@ -0,0 +1,155 @@
# ░█▀█░▀█▀░█▀▀░█▀█░█▄█░░░░█▀▀░█▀█░█▀█░█▀▀
# ░█▀▀░░█░░█░░░█░█░█░█░░░░█░░░█░█░█░█░█▀▀
# ░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░░▀▀▀░▀▀▀░▀░▀░▀░░
#
# X compositor configuration
# ░█▀▀░█░█░█▀█░█▀▄░█▀█░█░█
# ░▀▀█░█▀█░█▀█░█░█░█░█░█▄█
# ░▀▀▀░▀░▀░▀░▀░▀▀░░▀▀▀░▀░▀
shadow = true;
shadow-radius = 12;
shadow-opacity = 0.65;
shadow-offset-x = -5;
shadow-offset-y = -6;
# shadow-red = 0
# shadow-green = 0
# shadow-blue = 0
shadow-color = "#000000";
shadow-exclude = [
#"name = 'Notification'",
"class_g = 'Conky'",
#"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
#"class_g = 'slop'",
#"name = 'Dunst'",
#"name = 'dmenu'",
#"class_g = 'Rofi'",
"_GTK_FRAME_EXTENTS@:c",
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;
# ░█▀▀░█▀█░█▀▄░▀█▀░█▀█░█▀▀
# ░█▀▀░█▀█░█░█░░█░░█░█░█░█
# ░▀░░░▀░▀░▀▀░░▀▀▀░▀░▀░▀▀▀
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-delta = 4;
fade-exclude = [
"name *= 'polybar'"
];
no-fading-openclose = false;
no-fading-destroyed-argb = true;
# ░█▀█░█▀█░█▀█░█▀▀░▀█▀░▀█▀░█░█
# ░█░█░█▀▀░█▀█░█░░░░█░░░█░░░█░
# ░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀░░▀░░░▀░
inactive-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
active-opacity = 1.0;
inactive-dim = 0.0;
focus-exclude = [
"class_g = 'Cairo-clock'",
"class_g ?= 'rofi'",
"class_g ?= 'slop'",
"class_g ?= 'Steam'"
];
# inactive-dim-fixed = 1.0;
opacity-rule = [
"80:class_g = 'URxvt'",
"80:class_g = 'UXTerm'",
"80:class_g = 'XTerm'"
]
# ░█▀▄░█░░░█░█░█▀▄░█▀▄░▀█▀░█▀█░█▀▀
# ░█▀▄░█░░░█░█░█▀▄░█▀▄░░█░░█░█░█░█
# ░▀▀░░▀▀▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀
blur: {
method = "kawase";
strength = 5.0;
deviation = 1.0;
kernel = "11x11gaussian";
}
blur-background = false;
blur-background-frame = true;
blur-background-fixed = true;
# blur-kern = "3x3box";
blur-background-exclude = [
#"name *= 'polybar'",
"_GTK_FRAME_EXTENTS@:c"
];
# ░█▀▀░█▀▀░█▀█░█▀▀░█▀▄░█▀█░█░░░░░█▀▀░█▀▀░▀█▀░▀█▀░▀█▀░█▀█░█▀▀░█▀▀
# ░█░█░█▀▀░█░█░█▀▀░█▀▄░█▀█░█░░░░░▀▀█░█▀▀░░█░░░█░░░█░░█░█░█░█░▀▀█
# ░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀
corner-radius = 10.0
rounded-corners-exclude = [
"name *= 'Awesome drawin'",
"name *= 'polybar'",
"name *= 'rofi'",
"name *= 'Dunst'",
"name *= 'dmenu'",
"_GTK_FRAME_EXTENTS@:c"
]
round-borders = 1
daemon = false;
backend = "glx";
vsync = true;
dbus = false;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
# use-ewmh-active-win = true;
# unredir-if-possible = false;
# unredir-if-possible-delay = 0;
unredir-if-possible-exclude = [];
detect-transient = true;
detect-client-leader = true;
resize-damage = 1;
invert-color-include = [];
glx-no-stencil = true;
# glx-no-rebind-pixmap = false;
use-damage = true;
# xrender-sync-fence = true;
# glx-fshader-win = "";
# force-win-blend = false;
# no-ewmh-fullscreen = false;
# max-brightness = 1.0;
transparent-clipping = false;
show-all-xerrors = true;
wintypes: {
tooltip = { fade = true; shadow = false; focus = false; };
normal = { shadow = true; };
dock = { shadow = false; };
desktop = { shadow = true; blur-background = false; };
};

90
rofi/config.rasi Normal file
View File

@@ -0,0 +1,90 @@
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;
}
/*
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;
}
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;
}
prompt {
background-color: #fc8995;
text-color: @bg;
margin: 0 0 10px 0;
border-radius: 4px;
padding: 1px 4px 1px 4px;
}
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;
}

3
rofi/crylia.rasi Normal file
View File

@@ -0,0 +1,3 @@
{
background-color: #fff;
}

14
rofi/run_rofi.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
options="one
two
three"
theme=${1:-$HOME/.config/rofi/config.rasi}
selection=$(echo -e "${options}" | rofi -dmenu -config $theme)
case "${selection}" in
"one")
notify-send "run_rofi.sh" "one";;
"two")
notify-send "run_rofi.sh" "two";;
"three")
notify-send "run_rofi.sh" "three";;
esac