moved to personal fennel config for awesome and added qutebrowser

This commit is contained in:
Chris Cochrun 2020-10-13 17:35:26 -05:00
parent 403cb92b7d
commit 688748f8a6
502 changed files with 8576 additions and 9597 deletions

View file

@ -0,0 +1,65 @@
-- This returns the "Wow, such empty." message.
local wibox = require('wibox')
local dpi = require('beautiful').xresources.apply_dpi
local config_dir = require('gears').filesystem.get_configuration_dir()
local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
local empty_notifbox = wibox.widget {
{
layout = wibox.layout.fixed.vertical,
spacing = dpi(5),
{
expand = 'none',
layout = wibox.layout.align.horizontal,
nil,
{
image = widget_icon_dir .. 'empty-notification' .. '.svg',
resize = true,
forced_height = dpi(35),
forced_width = dpi(35),
widget = wibox.widget.imagebox,
},
nil
},
{
text = 'Wow, such empty.',
font = 'SF Pro Text Bold 14',
align = 'center',
valign = 'center',
widget = wibox.widget.textbox
},
{
text = 'Come back later.',
font = 'SF Pro Text Regular 10',
align = 'center',
valign = 'center',
widget = wibox.widget.textbox
},
},
margins = dpi(20),
widget = wibox.container.margin
}
local separator_for_empty_msg = wibox.widget
{
orientation = 'vertical',
opacity = 0.0,
widget = wibox.widget.separator
}
-- Make empty_notifbox center
local centered_empty_notifbox = wibox.widget {
expand = 'none',
layout = wibox.layout.align.vertical,
separator_for_empty_msg,
empty_notifbox,
separator_for_empty_msg
}
return centered_empty_notifbox

View file

@ -0,0 +1,80 @@
local wibox = require('wibox')
local awful = require('awful')
local gears = require('gears')
local naughty = require('naughty')
local beautiful = require('beautiful')
local dpi = beautiful.xresources.apply_dpi
local config_dir = gears.filesystem.get_configuration_dir()
local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
local empty_notifbox = require('widget.notif-center.build-notifbox.empty-notifbox')
local notifbox_scroller = require('widget.notif-center.build-notifbox.notifbox-scroller')
local notif_core = {}
notif_core.remove_notifbox_empty = true
notif_core.notifbox_layout = wibox.widget {
layout = wibox.layout.fixed.vertical,
spacing = dpi(5),
empty_notifbox
}
notifbox_scroller(notif_core.notifbox_layout)
notif_core.reset_notifbox_layout = function()
notif_core.notifbox_layout:reset()
notif_core.notifbox_layout:insert(1, empty_notifbox)
notif_core.remove_notifbox_empty = true
end
local notifbox_add = function(n, notif_icon, notifbox_color)
if #notif_core.notifbox_layout.children == 1 and notif_core.remove_notifbox_empty then
notif_core.notifbox_layout:reset(notif_core.notifbox_layout)
notif_core.remove_notifbox_empty = false
end
local notifbox_box = require('widget.notif-center.build-notifbox.notifbox-builder')
notif_core.notifbox_layout:insert(
1,
notifbox_box(
n,
notif_icon,
n.title,
n.message,
n.app_name,
notifbox_color
)
)
end
local notifbox_add_expired = function(n, notif_icon, notifbox_color)
n:connect_signal(
'destroyed',
function(self, reason, keep_visble)
if reason == 1 then
notifbox_add(n, notif_icon, notifbox_color)
end
end
)
end
naughty.connect_signal(
"request::display",
function(n)
local notifbox_color = beautiful.groups_bg
if n.urgency == 'critical' then
notifbox_color = n.bg .. '66'
end
local notif_icon = n.icon or n.app_icon
if not notif_icon then
notif_icon = widget_icon_dir .. 'new-notif' .. '.svg'
end
notifbox_add_expired(n, notif_icon, notifbox_color)
end
)
return notif_core

View file

@ -0,0 +1,177 @@
local wibox = require('wibox')
local awful = require('awful')
local gears = require('gears')
local beautiful = require('beautiful')
local dpi = beautiful.xresources.apply_dpi
local builder = require('widget.notif-center.build-notifbox.notifbox-ui-elements')
local notifbox_core = require('widget.notif-center.build-notifbox')
local notifbox_layout = notifbox_core.notifbox_layout
local remove_notifbox_empty = notifbox_core.remove_notifbox_empty
local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
local return_date_time = function(format)
return os.date(format)
end
local parse_to_seconds = function(time)
local hourInSec = tonumber(string.sub(time, 1, 2)) * 3600
local minInSec = tonumber(string.sub(time, 4, 5)) * 60
local getSec = tonumber(string.sub(time, 7, 8))
return (hourInSec + minInSec + getSec)
end
notifbox_box = function(notif, icon, title, message, app, bgcolor)
local time_of_pop = return_date_time('%H:%M:%S')
local exact_time = return_date_time('%I:%M %p')
local exact_date_time = return_date_time('%b %d, %I:%M %p')
local notifbox_timepop = wibox.widget {
id = 'time_pop',
markup = nil,
font = 'SF Pro Text Regular 10',
align = 'left',
valign = 'center',
visible = true,
widget = wibox.widget.textbox
}
local notifbox_dismiss = builder.notifbox_dismiss()
local time_of_popup = gears.timer {
timeout = 60,
call_now = true,
autostart = true,
callback = function()
local time_difference = nil
time_difference = parse_to_seconds(return_date_time('%H:%M:%S')) - parse_to_seconds(time_of_pop)
time_difference = tonumber(time_difference)
if time_difference < 60 then
notifbox_timepop:set_markup('now')
elseif time_difference >= 60 and time_difference < 3600 then
local time_in_minutes = math.floor(time_difference / 60)
notifbox_timepop:set_markup(time_in_minutes .. 'm ago')
elseif time_difference >= 3600 and time_difference < 86400 then
notifbox_timepop:set_markup(exact_time)
elseif time_difference >= 86400 then
notifbox_timepop:set_markup(exact_date_time)
return false
end
collectgarbage('collect')
end
}
local notifbox_template = wibox.widget {
id = 'notifbox_template',
expand = 'none',
{
{
layout = wibox.layout.fixed.vertical,
spacing = dpi(5),
{
expand = 'none',
layout = wibox.layout.align.horizontal,
{
layout = wibox.layout.fixed.horizontal,
spacing = dpi(5),
builder.notifbox_icon(icon),
builder.notifbox_appname(app),
},
nil,
{
notifbox_timepop,
notifbox_dismiss,
layout = wibox.layout.fixed.horizontal
}
},
{
layout = wibox.layout.fixed.vertical,
spacing = dpi(5),
{
builder.notifbox_title(title),
builder.notifbox_message(message),
layout = wibox.layout.fixed.vertical
},
builder.notifbox_actions(notif),
},
},
margins = dpi(10),
widget = wibox.container.margin
},
bg = bgcolor,
shape = function(cr, width, height)
gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
end,
widget = wibox.container.background,
}
-- Put the generated template to a container
local notifbox = wibox.widget {
notifbox_template,
shape = function(cr, width, height)
gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
end,
widget = wibox.container.background
}
-- Delete notification box
local notifbox_delete = function()
notifbox_layout:remove_widgets(notifbox, true)
end
-- Delete notifbox on LMB
notifbox:buttons(
awful.util.table.join(
awful.button(
{},
1,
function()
if #notifbox_layout.children == 1 then
reset_notifbox_layout()
else
notifbox_delete()
end
collectgarbage('collect')
end
)
)
)
-- Add hover, and mouse leave events
notifbox_template:connect_signal(
"mouse::enter",
function()
notifbox.bg = beautiful.groups_bg
notifbox_timepop.visible = false
notifbox_dismiss.visible = true
end
)
notifbox_template:connect_signal(
"mouse::leave",
function()
notifbox.bg = beautiful.tranparent
notifbox_timepop.visible = true
notifbox_dismiss.visible = false
end
)
collectgarbage('collect')
return notifbox
end
return notifbox_box

View file

@ -0,0 +1,33 @@
local wibox = require('wibox')
local awful = require('awful')
local naughty = require('naughty')
local find_widget_in_wibox = function(wb, widget)
local function find_widget_in_hierarchy(h, widget)
if h:get_widget() == widget then
return h
end
local result
for _, ch in ipairs(h:get_children()) do
result = result or find_widget_in_hierarchy(ch, widget)
end
return result
end
local h = wb._drawable._widget_hierarchy
return h and find_widget_in_hierarchy(h, widget)
end
local focused = awful.screen.focused()
local h = find_widget_in_wibox(focused.top_panel, focused.music)
local x, y, width, height = h:get_matrix_to_device():transform_rectangle(0, 0, h:get_size())
-- local geo = focused.mywibox:geometry()
-- x, y = x + geo.x, y + geo.y
-- print(string.format("The widget is inside of the rectangle (%d, %d, %d, %d) on the screen", x, y, width, height)
naughty.notification({message=tostring(height)})

View file

@ -0,0 +1,37 @@
local awful = require('awful')
local gears = require('gears')
local add_button_event = function(widget)
widget:buttons(
gears.table.join(
awful.button(
{},
4,
nil,
function()
if #widget.children == 1 then
return
end
widget:insert(1, widget.children[#widget.children])
widget:remove(#widget.children)
end
),
awful.button(
{},
5,
nil,
function()
if #widget.children == 1 then
return
end
widget:insert(#widget.children + 1, widget.children[1])
widget:remove(1)
end
)
)
)
end
return add_button_event

View file

@ -0,0 +1,136 @@
local wibox = require('wibox')
local beautiful = require('beautiful')
local naughty = require('naughty')
local gears = require('gears')
local dpi = beautiful.xresources.apply_dpi
local config_dir = gears.filesystem.get_configuration_dir()
local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
local clickable_container = require('widget.clickable-container')
local ui_noti_builder = {}
-- Notification icon container
ui_noti_builder.notifbox_icon = function(ico_image)
local noti_icon = wibox.widget {
{
id = 'icon',
resize = true,
forced_height = dpi(25),
forced_width = dpi(25),
widget = wibox.widget.imagebox
},
layout = wibox.layout.fixed.horizontal
}
noti_icon.icon:set_image(ico_image)
return noti_icon
end
-- Notification title container
ui_noti_builder.notifbox_title = function(title)
return wibox.widget {
markup = title,
font = 'SF Pro Text Bold 12',
align = 'left',
valign = 'center',
widget = wibox.widget.textbox
}
end
-- Notification message container
ui_noti_builder.notifbox_message = function(msg)
return wibox.widget {
markup = msg,
font = 'SF Pro Text Regular 11',
align = 'left',
valign = 'center',
widget = wibox.widget.textbox
}
end
-- Notification app name container
ui_noti_builder.notifbox_appname = function(app)
return wibox.widget {
markup = app,
font = 'SF Pro Text Bold 12',
align = 'left',
valign = 'center',
widget = wibox.widget.textbox
}
end
-- Notification actions container
ui_noti_builder.notifbox_actions = function(n)
actions_template = wibox.widget {
notification = n,
base_layout = wibox.widget {
spacing = dpi(0),
layout = wibox.layout.flex.horizontal
},
widget_template = {
{
{
{
{
id = 'text_role',
font = 'SF Pro Text Regular 10',
widget = wibox.widget.textbox
},
widget = wibox.container.place
},
widget = clickable_container
},
bg = beautiful.groups_bg,
shape = gears.shape.rounded_rect,
forced_height = 30,
widget = wibox.container.background
},
margins = 4,
widget = wibox.container.margin
},
style = { underline_normal = false, underline_selected = true },
widget = naughty.list.actions,
}
return actions_template
end
-- Notification dismiss button
ui_noti_builder.notifbox_dismiss = function()
local dismiss_imagebox = wibox.widget {
{
id = 'dismiss_icon',
image = widget_icon_dir .. 'delete.svg',
resize = true,
forced_height = dpi(5),
widget = wibox.widget.imagebox
},
layout = wibox.layout.fixed.horizontal
}
local dismiss_button = wibox.widget {
{
dismiss_imagebox,
margins = dpi(5),
widget = wibox.container.margin
},
widget = clickable_container
}
local notifbox_dismiss = wibox.widget {
dismiss_button,
visible = false,
bg = beautiful.groups_title_bg,
shape = gears.shape.circle,
widget = wibox.container.background
}
return notifbox_dismiss
end
return ui_noti_builder

View file

@ -0,0 +1,61 @@
local awful = require('awful')
local wibox = require('wibox')
local gears = require('gears')
local beautiful = require('beautiful')
local dpi = beautiful.xresources.apply_dpi
local clickable_container = require('widget.clickable-container')
local config_dir = gears.filesystem.get_configuration_dir()
local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
local notifbox_core = require('widget.notif-center.build-notifbox')
local reset_notifbox_layout = notifbox_core.reset_notifbox_layout
local clear_all_imagebox = wibox.widget {
{
image = widget_icon_dir .. 'clear_all.svg',
resize = true,
forced_height = dpi(20),
forced_width = dpi(20),
widget = wibox.widget.imagebox,
},
layout = wibox.layout.fixed.horizontal
}
local clear_all_button = wibox.widget {
{
clear_all_imagebox,
margins = dpi(7),
widget = wibox.container.margin
},
widget = clickable_container
}
clear_all_button:buttons(
gears.table.join(
awful.button(
{},
1,
nil,
function()
reset_notifbox_layout()
end
)
)
)
local clear_all_button_wrapped = wibox.widget {
nil,
{
clear_all_button,
bg = beautiful.groups_bg,
shape = gears.shape.circle,
widget = wibox.container.background
},
nil,
expand = 'none',
layout = wibox.layout.align.vertical
}
return clear_all_button_wrapped

View file

@ -0,0 +1 @@
false

View file

@ -0,0 +1,122 @@
local awful = require('awful')
local naughty = require('naughty')
local wibox = require('wibox')
local gears = require('gears')
local beautiful = require('beautiful')
local dpi = beautiful.xresources.apply_dpi
local clickable_container = require('widget.clickable-container')
local config_dir = gears.filesystem.get_configuration_dir()
local widget_dir = config_dir .. 'widget/notif-center/dont-disturb/'
local widget_icon_dir = config_dir .. 'widget/notif-center/icons/'
_G.dont_disturb = false
local dont_disturb_imagebox = wibox.widget {
{
id = 'icon',
image = widget_icon_dir .. 'dont-disturb-mode.svg',
resize = true,
forced_height = dpi(20),
forced_width = dpi(20),
widget = wibox.widget.imagebox,
},
layout = wibox.layout.fixed.horizontal
}
local function update_icon()
local widget_icon_name = nil
local dd_icon = dont_disturb_imagebox.icon
if dont_disturb then
widget_icon_name = 'toggled-on'
dd_icon:set_image(widget_icon_dir .. 'dont-disturb-mode.svg')
else
widget_icon_name = 'toggled-off'
dd_icon:set_image(widget_icon_dir .. 'notify-mode.svg')
end
end
local check_disturb_status = function()
awful.spawn.easy_async_with_shell(
"cat " .. widget_dir .. "disturb_status",
function(stdout)
local status = stdout
if status:match("true") then
dont_disturb = true
elseif status:match("false") then
dont_disturb = false
else
dont_disturb = false
awful.spawn.with_shell("echo 'false' > " .. widget_dir .. "disturb_status")
end
update_icon()
end
)
end
check_disturb_status()
local toggle_disturb = function()
if dont_disturb then
dont_disturb = false
else
dont_disturb = true
end
awful.spawn.with_shell("echo " .. tostring(dont_disturb) .. " > " .. widget_dir .. "disturb_status")
update_icon()
end
local dont_disturb_button = wibox.widget {
{
dont_disturb_imagebox,
margins = dpi(7),
widget = wibox.container.margin
},
widget = clickable_container
}
dont_disturb_button:buttons(
gears.table.join(
awful.button(
{},
1,
nil,
function()
toggle_disturb()
end
)
)
)
local dont_disturb_wrapped = wibox.widget {
nil,
{
dont_disturb_button,
bg = beautiful.groups_bg,
shape = gears.shape.circle,
widget = wibox.container.background
},
nil,
expand = 'none',
layout = wibox.layout.align.vertical
}
-- Create a notification sound
naughty.connect_signal(
"request::display",
function(n)
if not dont_disturb then
awful.spawn.with_shell('canberra-gtk-play -i message')
end
end
)
return dont_disturb_wrapped

View file

@ -0,0 +1,91 @@
<?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="clear_all.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="1.1346154"
inkscape:cx="-63.016949"
inkscape:cy="104"
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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
AElFTkSuQmCC
"
id="image10"
x="20"
y="20" />
</svg>

After

Width:  |  Height:  |  Size: 3.8 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="240" height="240" viewBox="0 0 24 24"><path fill="#ffffff" d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" /></svg>

After

Width:  |  Height:  |  Size: 421 B

View file

@ -0,0 +1,64 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="512px"
viewBox="-12 0 448 448.04455"
width="512px"
version="1.1"
id="svg6"
sodipodi:docname="dont-disturb-mode.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata12">
<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="defs10" />
<sodipodi:namedview
pagecolor="#252525"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="738"
id="namedview8"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="264.67797"
inkscape:cy="247.32203"
inkscape:window-x="45"
inkscape:window-y="30"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<g
id="g4"
transform="matrix(0.71799041,0,0,0.71799041,59.727137,63.17728)">
<path
d="m 224.02344,448.03125 c 85.71484,0.90234 164.01172,-48.48828 200.11718,-126.23047 -22.72265,9.91406 -47.33203,14.76953 -72.11718,14.23047 -97.15625,-0.10938 -175.89063,-78.84375 -176,-176 C 176.99609,94.3125 213.25781,34.199219 270.93359,2.679688 255.37891,0.699219 239.70312,-0.1875 224.02344,0.03125 c -123.71485,0 -224.0000025,100.28906 -224.0000025,224 0,123.71484 100.2851525,224 224.0000025,224 z m 0,0"
data-original="#000000"
class="active-path"
data-old_color="#000000"
style="fill:#ffffff"
data-darkreader-inline-fill=""
id="path2"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1 @@
<svg height="512pt" viewBox="-17 0 511 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m227.148438 446.128906c0 35.339844-27.96875 64.269532-62.9375 65.800782-.972657.050781-1.949219.070312-2.929688.070312-36.332031 0-65.882812-29.550781-65.882812-65.871094zm0 0" fill="#ff9a00"/><path d="m227.148438 446.128906c0 35.339844-27.96875 64.269532-62.9375 65.800782v-65.800782zm0 0" fill="#e67500"/><path d="m372.617188 150.859375h-84.328126l42.714844-76.324219h-35.386718v-30h86.554687l-42.714844 76.324219h33.160157zm0 0" fill="#6d76e7"/><path d="m468.285156 90.816406h-76.429687l34.035156-60.816406h-22.273437v-30h73.441406l-34.035156 60.816406h25.261718zm0 0" fill="#6d76e7"/><path d="m327.910156 450.921875-163.699218.238281-163.589844.238282-.109375-72.949219-.011719-7.167969 2.339844-3.679688c.109375-.179687 4.5-7.230468 10.171875-19.152343 9.238281-19.378907 21.878906-51.640625 25.007812-88.078125 7.058594-82.152344 52.902344-129.320313 125.769531-129.429688h.421876c38.738281.039063 69.640624 13.1875 91.867187 39.078125 18.871094 22 30.582031 53.109375 33.863281 89.96875 3.269532 36.710938 16.167969 69.140625 25.480469 88.460938 5.609375 11.628906 9.917969 18.511719 10.027344 18.679687l2.332031 3.671875.007812 4.359375.011719 3.289063zm0 0" fill="#ffdb2d"/><path d="m327.910156 450.921875-163.699218.238281v-320.21875c38.738281.039063 69.640624 13.1875 91.867187 39.078125 18.871094 22 30.582031 53.109375 33.863281 89.96875 3.269532 36.710938 16.167969 69.140625 25.480469 88.460938 5.609375 11.628906 9.917969 18.511719 10.027344 18.679687l2.332031 3.671875.007812 4.359375.011719 3.289063zm0 0" fill="#ffaa20"/><path d="m327.800781 378.449219h-327.289062l-.011719-7.167969 2.339844-3.679688c.109375-.179687 4.5-7.230468 10.171875-19.152343h302.410156c5.609375 11.628906 9.917969 18.511719 10.027344 18.679687l2.332031 3.671875.007812 4.359375zm0 0" fill="#fff5cb"/><path d="m327.800781 378.449219h-163.589843v-30h151.210937c5.609375 11.628906 9.917969 18.511719 10.027344 18.679687l2.332031 3.671875.007812 4.359375zm0 0" fill="#ffdba9"/></svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1,15 @@
<svg style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" version="1.1" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
<path d="m17.387 45.391l3.91-5.484h17.453s4.968 0.082 4.968-7.006v-22.292c-0.313-4.851-4.714-5.223-4.714-5.223h-29.298s-5.424 0.318-5.502 5.605v21.91c9e-3 6.902 5.502 7.006 5.502 7.006h2.578l3.523 5.463c0.767 0.894 0.778 0.777 1.58 0.021z" style="fill-opacity:.67"/>
<path d="m17.387 44.002l3.91-5.484h17.453s4.968 0.081 4.968-7.006v-22.293c-0.313-4.851-4.714-5.223-4.714-5.223h-29.298s-5.424 0.318-5.502 5.606v21.91c9e-3 6.902 5.502 7.006 5.502 7.006h2.578l3.523 5.462c0.767 0.895 0.778 0.778 1.58 0.022z" style="fill:url(#_Linear1)"/>
<circle cx="32.84" cy="6.821" r="5.728" style="fill:url(#_Linear2)"/>
<defs>
<linearGradient id="_Linear1" x2="1" gradientTransform="matrix(.799284 -39.6049 39.6049 .799284 498.134 53.5618)" gradientUnits="userSpaceOnUse">
<stop style="stop-color:#888" offset="0"/>
<stop style="stop-color:#fefeff" offset="1"/>
</linearGradient>
<linearGradient id="_Linear2" x2="1" gradientTransform="matrix(7.01453e-16,-11.4556,11.4556,7.01453e-16,87.5702,12.5494)" gradientUnits="userSpaceOnUse">
<stop style="stop-color:#05f" offset="0"/>
<stop style="stop-color:#00a0ff" offset="1"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,91 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="512px"
viewBox="-21 0 512 512"
width="512px"
version="1.1"
id="svg12"
sodipodi:docname="notify-mode.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata18">
<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="defs16" />
<sodipodi:namedview
pagecolor="#252525"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:window-width="1321"
inkscape:window-height="738"
id="namedview14"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-98.711864"
inkscape:cy="256"
inkscape:window-x="45"
inkscape:window-y="30"
inkscape:window-maximized="0"
inkscape:current-layer="svg12" />
<g
id="g10"
transform="matrix(0.75500702,0,0,0.75500702,57.825511,62.718203)">
<path
d="m 448,232.14844 c -11.77734,0 -21.33203,-9.55469 -21.33203,-21.33203 0,-59.83985 -23.29688,-116.074222 -65.60156,-158.402348 -8.33985,-8.339843 -8.33985,-21.820312 0,-30.164062 8.33984,-8.339844 21.82421,-8.339844 30.16406,0 50.37109,50.367188 78.10156,117.33594 78.10156,188.56641 0,11.77734 -9.55469,21.33203 -21.33203,21.33203 z m 0,0"
data-original="#000000"
class="active-path"
style="fill:#ffffff"
data-darkreader-inline-fill=""
data-old_color="#000000"
id="path2"
inkscape:connector-curvature="0" />
<path
d="M 21.332031,232.14844 C 9.558594,232.14844 0,222.59375 0,210.81641 0,139.58594 27.734375,72.617188 78.101562,22.25 c 8.339844,-8.339844 21.824219,-8.339844 30.164068,0 8.34375,8.34375 8.34375,21.824219 0,30.164062 C 65.960938,94.71875 42.667969,150.97656 42.667969,210.81641 c 0,11.77734 -9.558594,21.33203 -21.335938,21.33203 z m 0,0"
data-original="#000000"
class="active-path"
style="fill:#ffffff"
data-darkreader-inline-fill=""
data-old_color="#000000"
id="path4"
inkscape:connector-curvature="0" />
<path
d="M 434.75391,360.8125 C 402.49609,333.54687 384,293.69531 384,251.47656 V 192 C 384,116.92969 328.23437,54.785156 256,44.375 V 21.332031 C 256,9.535156 246.44141,0 234.66797,0 222.89062,0 213.33203,9.535156 213.33203,21.332031 V 44.375 C 141.07812,54.785156 85.332031,116.92969 85.332031,192 v 59.47656 c 0,42.21875 -18.496093,82.07031 -50.941406,109.50391 -8.300781,7.10547 -13.058594,17.42969 -13.058594,28.35156 0,20.58984 16.746094,37.33594 37.335938,37.33594 H 410.66797 c 20.58594,0 37.33203,-16.7461 37.33203,-37.33594 0,-10.92187 -4.75781,-21.24609 -13.24609,-28.51953 z m 0,0"
data-original="#000000"
class="active-path"
style="fill:#ffffff"
data-darkreader-inline-fill=""
data-old_color="#000000"
id="path6"
inkscape:connector-curvature="0" />
<path
d="m 234.66797,512 c 38.63281,0 70.95312,-27.54297 78.3789,-64 H 156.28906 c 7.42188,36.45703 39.74219,64 78.37891,64 z m 0,0"
data-original="#000000"
class="active-path"
style="fill:#ffffff"
data-darkreader-inline-fill=""
data-old_color="#000000"
id="path8"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,38 @@
local wibox = require('wibox')
local dpi = require('beautiful').xresources.apply_dpi
local notif_header = wibox.widget {
text = 'Notification Center',
font = 'SF Pro Text Bold 16',
align = 'left',
valign = 'bottom',
widget = wibox.widget.textbox
}
local notif_center = function(s)
s.dont_disturb = require('widget.notif-center.dont-disturb')
s.clear_all = require('widget.notif-center.clear-all')
s.notifbox_layout = require('widget.notif-center.build-notifbox').notifbox_layout
return wibox.widget {
expand = 'none',
layout = wibox.layout.fixed.vertical,
spacing = dpi(10),
{
expand = 'none',
layout = wibox.layout.align.horizontal,
notif_header,
nil,
{
layout = wibox.layout.fixed.horizontal,
spacing = dpi(5),
s.dont_disturb,
s.clear_all
},
},
s.notifbox_layout
}
end
return notif_center