Initial commit
No files matched your search
@@ -0,0 +1 @@
|
||||
false
|
||||
@@ -0,0 +1,35 @@
|
||||
local wibox = require('wibox')
|
||||
|
||||
function build(widget)
|
||||
local container =
|
||||
wibox.widget {
|
||||
widget,
|
||||
widget = wibox.container.background,
|
||||
}
|
||||
local old_cursor, old_wibox
|
||||
container:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
-- Hm, no idea how to get the wibox from this signal's arguments...
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
container:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
return build
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_airplanemode_inactive_48px.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.43457604"
|
||||
inkscape:cx="-392.6819"
|
||||
inkscape:cy="-33.781494"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 135,90 V 35 c 0,-8.3 -6.7,-15 -15,-15 -8.3,0 -15,6.7 -15,15 V 71.8 L 183.25,150.05 215,160 V 140 Z M 35,52.75 84.85,102.6 25,140 v 20 l 80,-25 v 55 l -20,15 v 15 l 35,-10 35,10 V 205 L 135,190 V 152.75 L 192.25,210 205,197.25 47.75,40 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_airplanemode_active_48px.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="0.43457604"
|
||||
inkscape:cx="-51.304834"
|
||||
inkscape:cy="18.788525"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M 120,120"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<path
|
||||
d="M 215,160 V 140 L 135,90 V 35 c 0,-8.3 -6.7,-15 -15,-15 -8.3,0 -15,6.7 -15,15 v 55 l -80,50 v 20 l 80,-25 v 55 l -20,15 v 15 l 35,-10 35,10 v -15 l -20,-15 v -55 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,169 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local watch = awful.widget.watch
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local clickable_container = require('widget.airplane-mode.clickable-container')
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_dir = config_dir .. 'widget/airplane-mode/'
|
||||
local widget_icon_dir = widget_dir .. 'icons/'
|
||||
local icons = require('theme.icons')
|
||||
local ap_state = false
|
||||
|
||||
local action_name = wibox.widget {
|
||||
text = 'Airplane Mode',
|
||||
font = 'Inter Regular 11',
|
||||
align = 'left',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local button_widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = icons.toggled_off,
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
button_widget,
|
||||
top = dpi(7),
|
||||
bottom = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
local update_imagebox = function()
|
||||
if ap_state then
|
||||
button_widget.icon:set_image(icons.toggled_on)
|
||||
else
|
||||
button_widget.icon:set_image(icons.toggled_off)
|
||||
end
|
||||
end
|
||||
|
||||
local check_airplane_mode_state = function()
|
||||
|
||||
local cmd = 'cat ' .. widget_dir .. 'airplane_mode'
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
cmd,
|
||||
function(stdout)
|
||||
local status = stdout
|
||||
|
||||
if status:match("true") then
|
||||
ap_state = true
|
||||
elseif status:match("false") then
|
||||
ap_state = false
|
||||
else
|
||||
ap_state = false
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'echo "false" > ' .. widget_dir .. 'airplane_mode',
|
||||
function(stdout)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
check_airplane_mode_state()
|
||||
|
||||
local ap_off_cmd = [[
|
||||
|
||||
rfkill unblock wlan
|
||||
|
||||
# Create an AwesomeWM Notification
|
||||
awesome-client "
|
||||
naughty = require('naughty')
|
||||
naughty.notification({
|
||||
app_name = 'Network Manager',
|
||||
title = '<b>Airplane mode disabled!</b>',
|
||||
message = 'Initializing network devices',
|
||||
icon = ']] .. widget_icon_dir .. 'airplane-mode-off' .. '.svg' .. [['
|
||||
})
|
||||
"
|
||||
]] .. "echo false > " .. widget_dir .. "airplane_mode" .. [[
|
||||
]]
|
||||
|
||||
local ap_on_cmd = [[
|
||||
|
||||
rfkill block wlan
|
||||
|
||||
# Create an AwesomeWM Notification
|
||||
awesome-client "
|
||||
naughty = require('naughty')
|
||||
naughty.notification({
|
||||
app_name = 'Network Manager',
|
||||
title = '<b>Airplane mode enabled!</b>',
|
||||
message = 'Disabling radio devices',
|
||||
icon = ']] .. widget_icon_dir .. 'airplane-mode' .. '.svg' .. [['
|
||||
})
|
||||
"
|
||||
]] .. "echo true > " .. widget_dir .. "airplane_mode" .. [[
|
||||
]]
|
||||
|
||||
|
||||
local toggle_action = function()
|
||||
if ap_state then
|
||||
awful.spawn.easy_async_with_shell(
|
||||
ap_off_cmd,
|
||||
function(stdout)
|
||||
ap_state = false
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
else
|
||||
awful.spawn.easy_async_with_shell(
|
||||
ap_on_cmd,
|
||||
function(stdout)
|
||||
ap_state = true
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
toggle_action()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
gears.timer {
|
||||
timeout = 5,
|
||||
autostart = true,
|
||||
callback = function()
|
||||
check_airplane_mode_state()
|
||||
end
|
||||
}
|
||||
|
||||
local action_widget = wibox.widget {
|
||||
{
|
||||
action_name,
|
||||
nil,
|
||||
{
|
||||
widget_button,
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
layout = wibox.layout.align.horizontal,
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
return action_widget
|
||||
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="battery-alert.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67v30.67c0 1.47 1.19 2.67 2.67 2.67h14.67c1.47 0 2.67-1.19 2.67-2.67V10.67C34 9.19 32.81 8 31.33 8zM26 36h-4v-4h4v4zm0-8h-4V18h4v10z"
|
||||
id="path2"
|
||||
style="fill:#ff0000;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_battery_alert_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67v30.67c0 1.47 1.19 2.67 2.67 2.67h14.67c1.47 0 2.67-1.19 2.67-2.67V10.67C34 9.19 32.81 8 31.33 8zM26 36h-4v-4h4v4zm0-8h-4V18h4v10z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,75 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="battery-charging-10.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="1.2291667"
|
||||
inkscape:cx="104.49589"
|
||||
inkscape:cy="142.20093"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<g
|
||||
id="g827"
|
||||
transform="matrix(5,0,0,5,-0.025,-960)">
|
||||
<g
|
||||
transform="translate(0,192)"
|
||||
id="g833">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 22,40 v -6 h -8 v 7.33 C 14,42.8 15.19,44 16.67,44 h 14.67 c 1.47,0 2.67,-1.19 2.67,-2.67 V 34 h -8.8 z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.4" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 31.33,8 H 28 V 4 H 20 V 8 H 16.67 C 15.19,8 14,9.19 14,10.67 V 34 h 8 v -5 h -4 l 8,-15 v 11 h 4 l -4.8,9 H 34 V 10.67 C 34,9.19 32.81,8 31.33,8 Z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:0.4" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
id="path2-3"
|
||||
d="m 22,232 v -6 h -8 v 7.33 c 0,1.47 1.19,2.67 2.67,2.67 h 14.67 c 1.47,0 2.67,-1.19 2.67,-2.67 V 226 h -8.8 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_charging_20_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M22 40v-6h-8v7.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V34h-8.8L22 40z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V34h8v-5h-4l8-15v11h4l-4.8 9H34V10.67C34 9.19 32.81 8 31.33 8z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_charging_30_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V29h4l8-15v11h4l-2.13 4H34V10.67C34 9.19 32.81 8 31.33 8z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M22 40V29h-8v12.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V29h-6.13L22 40z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_charging_50_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M28.93 27L22 40V29h-4l1.07-2H14v14.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V27h-5.08z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V27h5.07L26 14v11h4l-1.07 2H34V10.67C34 9.19 32.81 8 31.33 8z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_charging_60_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V22h7.73L26 14v8h8V10.67C34 9.19 32.81 8 31.33 8z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M26 25h4l-8 15V29h-4l3.73-7H14v19.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V22h-8v3z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_charging_80_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V18h9.87L26 14v4h8v-7.33C34 9.19 32.81 8 31.33 8z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M26 25h4l-8 15V29h-4l5.87-11H14v23.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V18h-8v7z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_charging_90_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V16h10.93L26 14v2h8v-5.33C34 9.19 32.81 8 31.33 8z"
|
||||
id="path2"
|
||||
fill-opacity=".3"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M26 25h4l-8 15V29h-4l6.93-13H14v25.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V16h-8v9z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_battery_full_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67v30.67c0 1.47 1.19 2.67 2.67 2.67h14.67c1.47 0 2.67-1.19 2.67-2.67V10.67C34 9.19 32.81 8 31.33 8z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_20_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M14 34v7.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V34H14z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M34 10.67C34 9.19 32.81 8 31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V34h20V10.67z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_30_48px.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">
|
||||
<linearGradient
|
||||
id="linearGradient824"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop822" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M34 10.67C34 9.19 32.81 8 31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V30h20V10.67z"
|
||||
id="path2"
|
||||
style="fill-opacity:0.40000001;fill:#ffffff" />
|
||||
<path
|
||||
d="M14 30v11.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V30H14z"
|
||||
id="path4"
|
||||
style="fill-opacity:1;fill:#ffffff" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_50_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M34 10.67C34 9.19 32.81 8 31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V26h20V10.67z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M14 26v15.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V26H14z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_60_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M34 10.67C34 9.19 32.81 8 31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V22h20V10.67z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M14 22v19.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V22H14z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_80_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M34 10.67C34 9.19 32.81 8 31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V18h20v-7.33z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M14 18v23.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V18H14z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_battery_90_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M34 10.67C34 9.19 32.81 8 31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67V16h20v-5.33z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M14 16v25.33C14 42.8 15.19 44 16.67 44h14.67c1.47 0 2.67-1.19 2.67-2.67V16H14z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_battery_charging_full_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67v30.67c0 1.47 1.19 2.67 2.67 2.67h14.67c1.47 0 2.67-1.19 2.67-2.67V10.67C34 9.19 32.81 8 31.33 8zM22 40V29h-4l8-15v11h4l-8 15z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_battery_unknown_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67v30.67c0 1.47 1.19 2.67 2.67 2.67h14.67c1.47 0 2.67-1.19 2.67-2.67V10.67C34 9.19 32.81 8 31.33 8zM25.9 35.9h-3.8v-3.8h3.8v3.8zm2.7-10.52s-.76.84-1.34 1.42c-.97.97-1.66 2.29-1.66 3.2h-3.2c0-1.66.92-3.05 1.86-3.99l1.86-1.89c.54-.54.88-1.29.88-2.12 0-1.66-1.34-3-3-3s-3 1.34-3 3h-3c0-3.31 2.69-6 6-6s6 2.69 6 6c0 1.32-.53 2.52-1.4 3.38z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_battery_std_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M31.33 8H28V4h-8v4h-3.33C15.19 8 14 9.19 14 10.67v30.67c0 1.47 1.19 2.67 2.67 2.67h14.67c1.47 0 2.67-1.19 2.67-2.67V10.67C34 9.19 32.81 8 31.33 8z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,209 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local awful = require('awful')
|
||||
local gears = require('gears')
|
||||
local naughty = require('naughty')
|
||||
local watch = awful.widget.watch
|
||||
local apps = require('configuration.apps')
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/battery/icons/'
|
||||
|
||||
local return_button = function()
|
||||
|
||||
local battery_imagebox = wibox.widget {
|
||||
nil,
|
||||
{
|
||||
id = 'icon',
|
||||
image = widget_icon_dir .. 'battery' .. '.svg',
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
nil,
|
||||
expand = 'none',
|
||||
layout = wibox.layout.align.vertical
|
||||
}
|
||||
|
||||
local battery_percentage_text = wibox.widget {
|
||||
id = 'percent_text',
|
||||
text = '100%',
|
||||
font = 'Inter Bold 11',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
visible = false,
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
|
||||
local battery_widget = wibox.widget {
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
spacing = dpi(0),
|
||||
battery_imagebox,
|
||||
battery_percentage_text
|
||||
}
|
||||
|
||||
|
||||
local battery_button = wibox.widget {
|
||||
{
|
||||
battery_widget,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
battery_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn(apps.default.power_manager , false)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
local battery_tooltip = awful.tooltip {
|
||||
objects = {battery_button},
|
||||
text = 'None',
|
||||
mode = 'outside',
|
||||
align = 'right',
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8),
|
||||
preferred_positions = {'right', 'left', 'top', 'bottom'}
|
||||
}
|
||||
|
||||
|
||||
local get_battery_info = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'upower -i $(upower -e | grep BAT)',
|
||||
function(stdout)
|
||||
if stdout == nil or stdout == '' then
|
||||
battery_tooltip:set_text('No battery detected!')
|
||||
return
|
||||
end
|
||||
|
||||
-- Remove new line from the last line
|
||||
battery_tooltip:set_text(stdout:sub(1, -2))
|
||||
end
|
||||
)
|
||||
end
|
||||
get_battery_info()
|
||||
|
||||
battery_widget:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
get_battery_info()
|
||||
end
|
||||
)
|
||||
|
||||
local last_battery_check = os.time()
|
||||
local notify_critcal_battery = true
|
||||
|
||||
local show_battery_warning = function()
|
||||
naughty.notification ({
|
||||
icon = widget_icon_dir .. 'battery-alert.svg',
|
||||
app_name = 'System notification',
|
||||
title = 'Battery is dying!',
|
||||
message = 'Hey, I think we have a problem here. Save your work before reaching the oblivion.',
|
||||
urgency = 'critical'
|
||||
})
|
||||
end
|
||||
|
||||
local update_battery = function(status)
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[sh -c "
|
||||
upower -i $(upower -e | grep BAT) | grep percentage | awk '{print \$2}' | tr -d '\n%'
|
||||
"]],
|
||||
function(stdout)
|
||||
local battery_percentage = tonumber(stdout)
|
||||
|
||||
-- Stop if null
|
||||
if not battery_percentage then
|
||||
return
|
||||
end
|
||||
|
||||
battery_widget.spacing = dpi(5)
|
||||
battery_percentage_text.visible = true
|
||||
battery_percentage_text:set_text(battery_percentage .. '%')
|
||||
|
||||
local icon_name = 'battery'
|
||||
|
||||
-- Fully charged
|
||||
if (status == 'fully-charged' or status == 'charging') and battery_percentage == 100 then
|
||||
icon_name = icon_name .. '-' .. 'fully-charged'
|
||||
battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
|
||||
return
|
||||
end
|
||||
|
||||
-- Critical level warning message
|
||||
if (battery_percentage > 0 and battery_percentage < 10) and status == 'discharging' then
|
||||
icon_name = icon_name .. '-' .. 'alert-red'
|
||||
|
||||
if os.difftime(os.time(), last_battery_check) > 300 or notify_critcal_battery then
|
||||
last_battery_check = os.time()
|
||||
notify_critcal_battery = false
|
||||
show_battery_warning()
|
||||
end
|
||||
battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
|
||||
return
|
||||
end
|
||||
|
||||
-- Discharging
|
||||
if battery_percentage > 0 and battery_percentage < 20 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '10'
|
||||
|
||||
elseif battery_percentage >= 20 and battery_percentage < 30 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '20'
|
||||
|
||||
elseif battery_percentage >= 30 and battery_percentage < 50 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '30'
|
||||
|
||||
elseif battery_percentage >= 50 and battery_percentage < 60 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '50'
|
||||
|
||||
elseif battery_percentage >= 60 and battery_percentage < 80 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '60'
|
||||
|
||||
elseif battery_percentage >= 80 and battery_percentage < 90 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '80'
|
||||
|
||||
elseif battery_percentage >= 90 and battery_percentage < 100 then
|
||||
icon_name = icon_name .. '-' .. status .. '-' .. '90'
|
||||
end
|
||||
|
||||
battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. icon_name .. '.svg'))
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
-- Watch status if charging, discharging, fully-charged
|
||||
watch(
|
||||
[[sh -c "
|
||||
upower -i $(upower -e | grep BAT) | grep state | awk '{print \$2}' | tr -d '\n'
|
||||
"]],
|
||||
5,
|
||||
function(widget, stdout)
|
||||
local status = stdout:gsub('%\n', '')
|
||||
|
||||
-- If no output or no battery detected
|
||||
if status == nil or status == '' then
|
||||
battery_widget.spacing = dpi(0)
|
||||
battery_percentage_text.visible = false
|
||||
battery_tooltip:set_text('No battery detected!')
|
||||
battery_imagebox.icon:set_image(gears.surface.load_uncached(widget_icon_dir .. 'battery-unknown' .. '.svg'))
|
||||
return
|
||||
end
|
||||
|
||||
update_battery(status)
|
||||
end
|
||||
)
|
||||
|
||||
return battery_button
|
||||
end
|
||||
|
||||
return return_button
|
||||
@@ -0,0 +1,35 @@
|
||||
local wibox = require('wibox')
|
||||
|
||||
function build(widget)
|
||||
local container =
|
||||
wibox.widget {
|
||||
widget,
|
||||
widget = wibox.container.background,
|
||||
}
|
||||
local old_cursor, old_wibox
|
||||
container:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
-- Hm, no idea how to get the wibox from this signal's arguments...
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
container:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
return build
|
||||
@@ -0,0 +1,124 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local clickable_container = require('widget.blue-light.clickable-container')
|
||||
local icons = require('theme.icons')
|
||||
local blue_light_state = nil
|
||||
|
||||
local action_name = wibox.widget {
|
||||
text = 'Blue Light',
|
||||
font = 'Inter Regular 11',
|
||||
align = 'left',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local button_widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = icons.toggled_off,
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
button_widget,
|
||||
top = dpi(7),
|
||||
bottom = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
|
||||
local update_imagebox = function()
|
||||
local button_icon = button_widget.icon
|
||||
if blue_light_state then
|
||||
button_icon:set_image(icons.toggled_on)
|
||||
else
|
||||
button_icon:set_image(icons.toggled_off)
|
||||
end
|
||||
end
|
||||
|
||||
local kill_state = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
redshift -x
|
||||
kill -9 $(pgrep redshift)
|
||||
]],
|
||||
function(stdout)
|
||||
stdout = tonumber(stdout)
|
||||
if stdout then
|
||||
blue_light_state = false
|
||||
update_imagebox()
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
kill_state()
|
||||
|
||||
local toggle_action = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
if [ ! -z $(pgrep redshift) ];
|
||||
then
|
||||
redshift -x && pkill redshift && killall redshift
|
||||
echo 'OFF'
|
||||
else
|
||||
redshift -l 0:0 -t 4500:4500 -r &>/dev/null &
|
||||
echo 'ON'
|
||||
fi
|
||||
]],
|
||||
function(stdout)
|
||||
if stdout:match('ON') then
|
||||
blue_light_state = true
|
||||
else
|
||||
blue_light_state = false
|
||||
end
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
toggle_action()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
local action_widget = wibox.widget {
|
||||
{
|
||||
action_name,
|
||||
nil,
|
||||
{
|
||||
widget_button,
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
layout = wibox.layout.align.horizontal,
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
awesome.connect_signal(
|
||||
'widget::blue_light:toggle',
|
||||
function()
|
||||
toggle_action()
|
||||
end
|
||||
)
|
||||
|
||||
return action_widget
|
||||
@@ -0,0 +1,35 @@
|
||||
local wibox = require('wibox')
|
||||
|
||||
function build(widget)
|
||||
local container =
|
||||
wibox.widget {
|
||||
widget,
|
||||
widget = wibox.container.background,
|
||||
}
|
||||
local old_cursor, old_wibox
|
||||
container:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
-- Hm, no idea how to get the wibox from this signal's arguments...
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
container:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
return build
|
||||
@@ -0,0 +1,5 @@
|
||||
<?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" baseProfile="full" width="240" height="240" viewBox="0 0 24.00 24.00" enable-background="new 0 0 24.00 24.00" xml:space="preserve">
|
||||
<path fill="#ffffff" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 12.9975,5.83L 14.8775,7.71L 13.2813,9.31125L 14.6925,10.7175L 17.71,7.7L 12.0025,2.0025L 11.0013,2.0025L 11.0013,7.03125L 12.9975,9.02875M 5.41,3.99875L 3.99875,5.41L 10.5912,12.0025L 5,17.5875L 6.41125,18.9988L 11.0013,14.4088L 11.0013,22.0025L 12.0025,22.0025L 16.2887,17.71L 18.5888,20L 20,18.5887M 12.9975,18.1687L 12.9975,14.4088L 14.8775,16.2888"/>
|
||||
</svg>
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_sync_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.61458333"
|
||||
inkscape:cx="-276.66458"
|
||||
inkscape:cy="-76.310045"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 120,47.272727 V 20 L 83.636361,56.363636 120,92.72727 V 65.454545 c 30.13636,0 54.54545,24.409095 54.54545,54.545455 0,9.22727 -2.31818,17.86364 -6.31818,25.5 l 13.27272,13.27273 C 188.54545,147.5 192.72727,134.27273 192.72727,120 192.72727,79.818182 160.18181,47.272727 120,47.272727 Z m 0,127.272723 c -30.136366,0 -54.545457,-24.40909 -54.545457,-54.54545 0,-9.22727 2.318182,-17.86364 6.318182,-25.5 L 58.499998,81.227273 C 51.454543,92.5 47.272725,105.72727 47.272725,120 c 0,40.18182 32.545455,72.72727 72.727275,72.72727 V 220 L 156.36363,183.63636 120,147.27273 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:4.5454545" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,164 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local naughty = require('naughty')
|
||||
local watch = awful.widget.watch
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local clickable_container = require('widget.bluetooth-toggle.clickable-container')
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/bluetooth-toggle/icons/'
|
||||
local icons = require('theme.icons')
|
||||
local device_state = false
|
||||
|
||||
local action_name = wibox.widget {
|
||||
text = 'Bluetooth Connection',
|
||||
font = 'Inter Regular 11',
|
||||
align = 'left',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local button_widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = icons.toggled_off,
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
button_widget,
|
||||
top = dpi(7),
|
||||
bottom = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
local action_widget = wibox.widget {
|
||||
{
|
||||
action_name,
|
||||
nil,
|
||||
{
|
||||
widget_button,
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
layout = wibox.layout.align.horizontal,
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
|
||||
local update_imagebox = function()
|
||||
if device_state then
|
||||
button_widget.icon:set_image(icons.toggled_on)
|
||||
else
|
||||
button_widget.icon:set_image(icons.toggled_off)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local check_device_state = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'rfkill list bluetooth',
|
||||
function(stdout)
|
||||
if stdout:match('Soft blocked: yes') then
|
||||
device_state = false
|
||||
else
|
||||
device_state = true
|
||||
end
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
check_device_state()
|
||||
|
||||
|
||||
local power_on_cmd = [[
|
||||
rfkill unblock bluetooth
|
||||
|
||||
# Create an AwesomeWM Notification
|
||||
awesome-client "
|
||||
naughty = require('naughty')
|
||||
naughty.notification({
|
||||
app_name = 'Bluetooth Manager',
|
||||
title = 'System Notification',
|
||||
message = 'Initializing bluetooth device...',
|
||||
icon = ']] .. widget_icon_dir .. 'loading' .. '.svg' .. [['
|
||||
})
|
||||
"
|
||||
|
||||
# Add a delay here so we can enable the bluetooth
|
||||
sleep 1
|
||||
|
||||
bluetoothctl power on
|
||||
]]
|
||||
|
||||
local power_off_cmd = [[
|
||||
bluetoothctl power off
|
||||
rfkill block bluetooth
|
||||
|
||||
# Create an AwesomeWM Notification
|
||||
awesome-client "
|
||||
naughty = require('naughty')
|
||||
naughty.notification({
|
||||
app_name = 'Bluetooth Manager',
|
||||
title = 'System Notification',
|
||||
message = 'The bluetooth device has been disabled.',
|
||||
icon = ']] .. widget_icon_dir .. 'bluetooth-off' .. '.svg' .. [['
|
||||
})
|
||||
"
|
||||
]]
|
||||
|
||||
|
||||
local toggle_action = function()
|
||||
if device_state then
|
||||
device_state = false
|
||||
awful.spawn.easy_async_with_shell(
|
||||
power_off_cmd,
|
||||
function(stdout)
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
else
|
||||
device_state = true
|
||||
awful.spawn.easy_async_with_shell(
|
||||
power_on_cmd,
|
||||
function(stdout)
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
toggle_action()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
watch(
|
||||
'rfkill list bluetooth',
|
||||
5,
|
||||
function(_, stdout)
|
||||
check_device_state()
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
return action_widget
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="bluetooth-connected.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.86915209"
|
||||
inkscape:cx="-203.9165"
|
||||
inkscape:cy="77.465699"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 70,120 50,100 30,120 50,140 Z M 177.05,77.05 120,20 H 110 V 95.85 L 64.15,50 50,64.15 105.85,120 50,175.85 64.15,190 110,144.15 V 220 h 10 L 177.05,162.95 134.15,120 Z M 130,58.3 148.8,77.1 130,95.85 Z M 148.8,162.95 130,181.7 V 144.1 Z M 190,100 l -20,20 20,20 20,-20 z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,5 @@
|
||||
<?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" baseProfile="full" width="240" height="240" viewBox="0 0 24.00 24.00" enable-background="new 0 0 24.00 24.00" xml:space="preserve">
|
||||
<path fill="#ffffff" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 12.9975,5.83L 14.8775,7.71L 13.2813,9.31125L 14.6925,10.7175L 17.71,7.7L 12.0025,2.0025L 11.0013,2.0025L 11.0013,7.03125L 12.9975,9.02875M 5.41,3.99875L 3.99875,5.41L 10.5912,12.0025L 5,17.5875L 6.41125,18.9988L 11.0013,14.4088L 11.0013,22.0025L 12.0025,22.0025L 16.2887,17.71L 18.5888,20L 20,18.5887M 12.9975,18.1687L 12.9975,14.4088L 14.8775,16.2888"/>
|
||||
</svg>
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="bluetooth-scanning.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.43457604"
|
||||
inkscape:cx="-749.4527"
|
||||
inkscape:cy="-132.18179"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="m 142.4,120.1 23.2,23.2 c 2.8,-7.25 4.4,-15.1 4.4,-23.3 0,-8.15 -1.55,-15.95 -4.3,-23.15 z M 195.3,67.15 182.65,79.8 c 6.25,12.05 9.85,25.7 9.85,40.25 0,14.55 -3.6,28.15 -9.85,40.25 l 12,12 C 204.3,156.8 210,138.65 210,119.15 c 0,-19.1 -5.45,-36.85 -14.7,-52 z M 157.05,77.05 100,20 H 90 V 95.85 L 44.15,50 30,64.15 85.85,120 30,175.85 44.15,190 90,144.15 V 220 h 10 L 157.05,162.95 114.15,120 Z M 110,58.3 128.8,77.1 110,95.85 Z M 128.8,162.95 110,181.7 v -37.6 z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,5 @@
|
||||
<?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" baseProfile="full" width="240" height="240" viewBox="0 0 24.00 24.00" enable-background="new 0 0 24.00 24.00" xml:space="preserve">
|
||||
<path fill="#ffffff" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 14.8783,16.2911L 12.9993,18.1701L 12.9993,14.4121M 12.9993,5.82607L 14.8783,7.70507L 12.9993,9.58407M 17.7063,7.70507L 11.9993,1.99807L 10.9993,1.99807L 10.9993,9.58407L 6.41331,4.99807L 4.99931,6.41207L 10.5853,11.9981L 4.99931,17.5841L 6.41331,18.9981L 10.9993,14.4121L 10.9993,21.9981L 11.9993,21.9981L 17.7063,16.2911L 13.4133,11.9981L 17.7063,7.70507 Z "/>
|
||||
</svg>
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_sync_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.61458333"
|
||||
inkscape:cx="-276.66458"
|
||||
inkscape:cy="-76.310045"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 120,47.272727 V 20 L 83.636361,56.363636 120,92.72727 V 65.454545 c 30.13636,0 54.54545,24.409095 54.54545,54.545455 0,9.22727 -2.31818,17.86364 -6.31818,25.5 l 13.27272,13.27273 C 188.54545,147.5 192.72727,134.27273 192.72727,120 192.72727,79.818182 160.18181,47.272727 120,47.272727 Z m 0,127.272723 c -30.136366,0 -54.545457,-24.40909 -54.545457,-54.54545 0,-9.22727 2.318182,-17.86364 6.318182,-25.5 L 58.499998,81.227273 C 51.454543,92.5 47.272725,105.72727 47.272725,120 c 0,40.18182 32.545455,72.72727 72.727275,72.72727 V 220 L 156.36363,183.63636 120,147.27273 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:4.5454545" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,83 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local naughty = require('naughty')
|
||||
local watch = awful.widget.watch
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
|
||||
local apps = require('configuration.apps')
|
||||
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
|
||||
local widget_icon_dir = config_dir .. 'widget/bluetooth/icons/'
|
||||
|
||||
local return_button = function()
|
||||
|
||||
local widget =
|
||||
wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = widget_icon_dir .. 'bluetooth-off' .. '.svg',
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
widget,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn(apps.default.bluetooth_manager, false)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
local bluetooth_tooltip = awful.tooltip
|
||||
{
|
||||
objects = {widget_button},
|
||||
mode = 'outside',
|
||||
align = 'right',
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8),
|
||||
preferred_positions = {'right', 'left', 'top', 'bottom'}
|
||||
}
|
||||
|
||||
watch(
|
||||
'rfkill list bluetooth',
|
||||
5,
|
||||
function(_, stdout)
|
||||
local widget_icon_name = nil
|
||||
if stdout:match('Soft blocked: yes') then
|
||||
widget_icon_name = 'bluetooth-off'
|
||||
bluetooth_tooltip.markup = 'Bluetooth is off'
|
||||
else
|
||||
widget_icon_name = 'bluetooth'
|
||||
bluetooth_tooltip.markup = 'Bluetooth is on'
|
||||
end
|
||||
widget.icon:set_image(widget_icon_dir .. widget_icon_name .. '.svg')
|
||||
collectgarbage('collect')
|
||||
end,
|
||||
widget
|
||||
)
|
||||
|
||||
return widget_button
|
||||
|
||||
end
|
||||
|
||||
return return_button
|
||||
@@ -0,0 +1,35 @@
|
||||
local wibox = require('wibox')
|
||||
|
||||
function build(widget)
|
||||
local container =
|
||||
wibox.widget {
|
||||
widget,
|
||||
widget = wibox.container.background,
|
||||
}
|
||||
local old_cursor, old_wibox
|
||||
container:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
-- Hm, no idea how to get the wibox from this signal's arguments...
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
container:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
return build
|
||||
@@ -0,0 +1,194 @@
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local beautiful = require('beautiful')
|
||||
local spawn = awful.spawn
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local icons = require('theme.icons')
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
|
||||
local action_name = wibox.widget {
|
||||
text = 'Blur Strength',
|
||||
font = 'Inter Bold 10',
|
||||
align = 'left',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local icon = wibox.widget {
|
||||
layout = wibox.layout.align.vertical,
|
||||
expand = 'none',
|
||||
nil,
|
||||
{
|
||||
image = icons.effects,
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
nil
|
||||
}
|
||||
|
||||
local action_level = wibox.widget {
|
||||
{
|
||||
icon,
|
||||
widget = clickable_container,
|
||||
},
|
||||
bg = beautiful.transparent,
|
||||
shape = gears.shape.circle,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
local slider = wibox.widget {
|
||||
nil,
|
||||
{
|
||||
id = 'blur_strength_slider',
|
||||
bar_shape = gears.shape.rounded_rect,
|
||||
bar_height = dpi(2),
|
||||
bar_color = '#ffffff20',
|
||||
bar_active_color = '#f2f2f2EE',
|
||||
handle_color = '#ffffff',
|
||||
handle_shape = gears.shape.circle,
|
||||
handle_width = dpi(15),
|
||||
handle_border_color = '#00000012',
|
||||
handle_border_width = dpi(1),
|
||||
maximum = 100,
|
||||
widget = wibox.widget.slider,
|
||||
},
|
||||
nil,
|
||||
expand = 'none',
|
||||
forced_height = dpi(24),
|
||||
layout = wibox.layout.align.vertical
|
||||
}
|
||||
|
||||
local blur_slider = slider.blur_strength_slider
|
||||
|
||||
local update_slider_value = function()
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[bash -c "
|
||||
grep -F 'strength =' $HOME/.config/awesome/configuration/picom.conf |
|
||||
awk 'NR==1 {print $3}' | tr -d ';'
|
||||
"]],
|
||||
function(stdout, stderr)
|
||||
local strength = stdout:match('%d+')
|
||||
blur_strength = tonumber(strength) / 20 * 100
|
||||
blur_slider:set_value(tonumber(blur_strength))
|
||||
start_up = false
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
-- Update on startup
|
||||
update_slider_value()
|
||||
|
||||
local action_jump = function()
|
||||
local sli_value = blur_slider:get_value()
|
||||
local new_value = 0
|
||||
|
||||
if sli_value >= 0 and sli_value < 25 then
|
||||
new_value = 25
|
||||
elseif sli_value >= 25 and sli_value < 50 then
|
||||
new_value = 50
|
||||
elseif sli_value >= 50 and sli_value < 100 then
|
||||
new_value = 100
|
||||
else
|
||||
new_value = 0
|
||||
end
|
||||
blur_slider:set_value(new_value)
|
||||
end
|
||||
|
||||
action_level:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
action_jump()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
local adjust_blur = function(power)
|
||||
|
||||
awful.spawn.with_shell(
|
||||
[[bash -c "
|
||||
sed -i 's/.*strength = .*/ strength = ]] .. power .. [[;/g' \
|
||||
$HOME/.config/awesome/configuration/picom.conf
|
||||
"]]
|
||||
)
|
||||
end
|
||||
|
||||
blur_slider:connect_signal(
|
||||
'property::value',
|
||||
function()
|
||||
if not start_up then
|
||||
strength = blur_slider:get_value() / 50 * 10
|
||||
adjust_blur(strength)
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
-- Adjust slider value to change blur strength
|
||||
awesome.connect_signal(
|
||||
'widget::blur:increase',
|
||||
function()
|
||||
|
||||
-- On startup, the slider.value returns nil so...
|
||||
if blur_slider:get_value() == nil then
|
||||
return
|
||||
end
|
||||
|
||||
local blur_value = blur_slider:get_value() + 10
|
||||
|
||||
-- No more than 100!
|
||||
if blur_value > 100 then
|
||||
blur_slider:set_value(100)
|
||||
return
|
||||
end
|
||||
|
||||
blur_slider:set_value(blur_value)
|
||||
end
|
||||
)
|
||||
|
||||
-- Decrease blur
|
||||
awesome.connect_signal(
|
||||
'widget::blur:decrease',
|
||||
function()
|
||||
|
||||
-- On startup, the slider.value returns nil so...
|
||||
if blur_slider:get_value() == nil then
|
||||
return
|
||||
end
|
||||
|
||||
local blur_value = blur_slider:get_value() - 10
|
||||
|
||||
-- No negatives!
|
||||
if blur_value < 0 then
|
||||
blur_slider:set_value(0)
|
||||
return
|
||||
end
|
||||
|
||||
blur_slider:set_value(blur_value)
|
||||
end
|
||||
)
|
||||
|
||||
local volume_setting = wibox.widget {
|
||||
{
|
||||
{
|
||||
action_level,
|
||||
top = dpi(12),
|
||||
bottom = dpi(12),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
slider,
|
||||
spacing = dpi(24),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
return volume_setting
|
||||
@@ -0,0 +1,35 @@
|
||||
local wibox = require('wibox')
|
||||
|
||||
function build(widget)
|
||||
local container =
|
||||
wibox.widget {
|
||||
widget,
|
||||
widget = wibox.container.background,
|
||||
}
|
||||
local old_cursor, old_wibox
|
||||
container:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
-- Hm, no idea how to get the wibox from this signal's arguments...
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
container:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
return build
|
||||
@@ -0,0 +1,139 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local clickable_container = require('widget.blur-toggle.clickable-container')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local filesystem = gears.filesystem
|
||||
local config_dir = filesystem.get_configuration_dir()
|
||||
local icons = require('theme.icons')
|
||||
local apps = require('configuration.apps')
|
||||
local frame_status = nil
|
||||
|
||||
local action_name = wibox.widget {
|
||||
text = 'Blur Effects',
|
||||
font = 'Inter Regular 11',
|
||||
align = 'left',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local button_widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = icons.toggled_off,
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
button_widget,
|
||||
top = dpi(7),
|
||||
bottom = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
local update_imagebox = function()
|
||||
if action_status then
|
||||
button_widget.icon:set_image(icons.toggled_on)
|
||||
else
|
||||
button_widget.icon:set_image(icons.toggled_off)
|
||||
end
|
||||
end
|
||||
|
||||
local check_blur_status = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[bash -c "
|
||||
grep -F 'method = \"none\";' ]] .. config_dir .. [[/configuration/picom.conf | tr -d '[\"\;\=\ ]'
|
||||
"]],
|
||||
function(stdout, stderr)
|
||||
if stdout:match('methodnone') then
|
||||
action_status = false
|
||||
else
|
||||
action_status = true
|
||||
end
|
||||
|
||||
update_imagebox()
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
check_blur_status()
|
||||
|
||||
local toggle_blur = function(togglemode)
|
||||
|
||||
local toggle_blur_script = [[bash -c "
|
||||
# Check picom if it's not running then start it
|
||||
if [ -z $(pgrep picom) ]; then
|
||||
picom -b --experimental-backends --dbus --config ]] .. config_dir .. [[configuration/picom.conf
|
||||
fi
|
||||
|
||||
case ]] .. togglemode .. [[ in
|
||||
'enable')
|
||||
sed -i -e 's/method = \"none\"/method = \"dual_kawase\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
|
||||
;;
|
||||
'disable')
|
||||
sed -i -e 's/method = \"dual_kawase\"/method = \"none\"/g' \"]] .. config_dir .. [[configuration/picom.conf\"
|
||||
;;
|
||||
esac
|
||||
"]]
|
||||
|
||||
-- Run the script
|
||||
awful.spawn.with_shell(toggle_blur_script)
|
||||
|
||||
end
|
||||
|
||||
local toggle_blur_fx = function()
|
||||
local state = nil
|
||||
if action_status then
|
||||
action_status = false
|
||||
state = 'disable'
|
||||
else
|
||||
action_status = true
|
||||
state = 'enable'
|
||||
end
|
||||
toggle_blur(state)
|
||||
update_imagebox()
|
||||
end
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
toggle_blur_fx()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
local action_widget = wibox.widget {
|
||||
{
|
||||
action_name,
|
||||
nil,
|
||||
{
|
||||
widget_button,
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
},
|
||||
layout = wibox.layout.align.horizontal,
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
awesome.connect_signal(
|
||||
'widget::blur:toggle',
|
||||
function()
|
||||
toggle_blur_fx()
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
return action_widget
|
||||
@@ -0,0 +1,180 @@
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local beautiful = require('beautiful')
|
||||
local spawn = awful.spawn
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local icons = require('theme.icons')
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
|
||||
local icon = wibox.widget {
|
||||
layout = wibox.layout.align.vertical,
|
||||
expand = 'none',
|
||||
nil,
|
||||
{
|
||||
image = icons.brightness,
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
nil
|
||||
}
|
||||
|
||||
local action_level = wibox.widget {
|
||||
{
|
||||
icon,
|
||||
widget = clickable_container
|
||||
},
|
||||
bg = beautiful.transparent,
|
||||
shape = gears.shape.circle,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
local slider = wibox.widget {
|
||||
nil,
|
||||
{
|
||||
id = 'brightness_slider',
|
||||
bar_shape = gears.shape.rounded_rect,
|
||||
bar_height = dpi(2),
|
||||
bar_color = '#ffffff20',
|
||||
bar_active_color = '#f2f2f2EE',
|
||||
handle_color = '#ffffff',
|
||||
handle_shape = gears.shape.circle,
|
||||
handle_width = dpi(15),
|
||||
handle_border_color = '#00000012',
|
||||
handle_border_width = dpi(1),
|
||||
maximum = 100,
|
||||
widget = wibox.widget.slider,
|
||||
},
|
||||
nil,
|
||||
expand = 'none',
|
||||
forced_height = dpi(24),
|
||||
layout = wibox.layout.align.vertical
|
||||
}
|
||||
|
||||
|
||||
local brightness_slider = slider.brightness_slider
|
||||
|
||||
brightness_slider:connect_signal(
|
||||
'property::value',
|
||||
function()
|
||||
local brightness_level = brightness_slider:get_value()
|
||||
|
||||
spawn('light -S ' ..
|
||||
math.max(brightness_level, 5),
|
||||
false
|
||||
)
|
||||
|
||||
-- Update brightness osd
|
||||
awesome.emit_signal(
|
||||
'module::brightness_osd',
|
||||
brightness_level
|
||||
)
|
||||
end
|
||||
)
|
||||
|
||||
brightness_slider:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
4,
|
||||
nil,
|
||||
function()
|
||||
if brightness_slider:get_value() > 100 then
|
||||
brightness_slider:set_value(100)
|
||||
return
|
||||
end
|
||||
brightness_slider:set_value(brightness_slider:get_value() + 5)
|
||||
end
|
||||
),
|
||||
awful.button(
|
||||
{},
|
||||
5,
|
||||
nil,
|
||||
function()
|
||||
if brightness_slider:get_value() < 0 then
|
||||
brightness_slider:set_value(0)
|
||||
return
|
||||
end
|
||||
brightness_slider:set_value(brightness_slider:get_value() - 5)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
local update_slider = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'light -G',
|
||||
function(stdout)
|
||||
local brightness = string.match(stdout, '(%d+)')
|
||||
brightness_slider:set_value(tonumber(brightness))
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
-- Update on startup
|
||||
update_slider()
|
||||
|
||||
local action_jump = function()
|
||||
local sli_value = brightness_slider:get_value()
|
||||
local new_value = 0
|
||||
|
||||
if sli_value >= 0 and sli_value < 50 then
|
||||
new_value = 50
|
||||
elseif sli_value >= 50 and sli_value < 100 then
|
||||
new_value = 100
|
||||
else
|
||||
new_value = 0
|
||||
end
|
||||
brightness_slider:set_value(new_value)
|
||||
end
|
||||
|
||||
action_level:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
action_jump()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
-- The emit will come from the global keybind
|
||||
awesome.connect_signal(
|
||||
'widget::brightness',
|
||||
function()
|
||||
update_slider()
|
||||
end
|
||||
)
|
||||
|
||||
-- The emit will come from the OSD
|
||||
awesome.connect_signal(
|
||||
'widget::brightness:update',
|
||||
function(value)
|
||||
brightness_slider:set_value(tonumber(value))
|
||||
end
|
||||
)
|
||||
|
||||
local brightness_setting = wibox.widget {
|
||||
{
|
||||
{
|
||||
action_level,
|
||||
top = dpi(12),
|
||||
bottom = dpi(12),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
slider,
|
||||
spacing = dpi(24),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
return brightness_setting
|
||||
@@ -0,0 +1,59 @@
|
||||
<?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"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="kb-off.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="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="742"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.8333333"
|
||||
inkscape:cx="-6.9661017"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="26"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.33333334" />
|
||||
<path
|
||||
d="M0 0h24v24H0zm0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,59 @@
|
||||
<?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"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="kb.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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs10" />
|
||||
<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="742"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.8333333"
|
||||
inkscape:cx="-6.9661017"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="26"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
<path
|
||||
d="M0 0h24v24H0zm0 0h24v24H0z"
|
||||
fill="none"
|
||||
id="path4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,476 @@
|
||||
----------------------------------------------------------------------------
|
||||
--- Basic Calculator Widget
|
||||
--
|
||||
--
|
||||
-- For more details check my repos README.md
|
||||
--
|
||||
--
|
||||
-- @author manilarome <gerome.matilla07@gmail.com>
|
||||
-- @copyright 2019 manilarome
|
||||
-- @widget calculator
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
-- A basic calculator widget
|
||||
-- Supports keyboard input!
|
||||
-- Just hover your cursor above the calculator widget and start typing
|
||||
-- Stop keygrabbing by leaving the calculator
|
||||
|
||||
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/calculator/icons/'
|
||||
|
||||
local calculator_screen = wibox.widget {
|
||||
{
|
||||
id = 'calcu_screen',
|
||||
text = '0',
|
||||
font = 'Inter Regular 20',
|
||||
align = 'right',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox,
|
||||
},
|
||||
margins = dpi(5),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
-- Evaluate
|
||||
local calculate = function ()
|
||||
|
||||
local calcu_screen = calculator_screen.calcu_screen
|
||||
|
||||
local string_expression = calcu_screen:get_text()
|
||||
|
||||
if string_expression:sub(-1):match('[%+%-%/%*%^%.]') then
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
local func = assert(load('return ' .. string_expression))
|
||||
local ans = tostring(func())
|
||||
|
||||
-- Convert -nan to undefined
|
||||
if ans == '-nan' then
|
||||
calcu_screen:set_text('undefined')
|
||||
return
|
||||
end
|
||||
|
||||
-- Set the answer in textbox
|
||||
calcu_screen:set_text(ans)
|
||||
|
||||
end
|
||||
|
||||
local txt_on_screen = function()
|
||||
|
||||
screen_text = calculator_screen.calcu_screen:get_text()
|
||||
|
||||
return screen_text == 'inf' or screen_text == 'undefined' or screen_text == 'SYNTAX ERROR' or #screen_text == 1
|
||||
end
|
||||
|
||||
-- Delete the last digit in screen
|
||||
|
||||
local delete_value = function()
|
||||
|
||||
calcu_screen = calculator_screen.calcu_screen
|
||||
|
||||
-- Set the screen text to 0 if conditions met
|
||||
if txt_on_screen() then
|
||||
calcu_screen:set_text('0')
|
||||
else
|
||||
-- Delete the last digit
|
||||
calcu_screen:set_text(calcu_screen:get_text():sub(1, -2))
|
||||
end
|
||||
end
|
||||
|
||||
-- Clear screen
|
||||
local clear_screen = function()
|
||||
|
||||
calculator_screen.calcu_screen:set_text('0')
|
||||
end
|
||||
|
||||
-- The one that filters and checks the user input to avoid errors and bugs
|
||||
local format_screen = function(value)
|
||||
|
||||
local calcu_screen = calculator_screen.calcu_screen
|
||||
|
||||
-- If the screen has only 0
|
||||
if calcu_screen:get_text() == '0' then
|
||||
|
||||
-- Check if the button pressed sends a value of either +, -, /, *, ^, .
|
||||
|
||||
if value:sub(-1):match('[%+%/%*%^%.]') then
|
||||
|
||||
calcu_screen:set_text(calcu_screen:get_text() .. tostring(value))
|
||||
|
||||
else
|
||||
|
||||
calcu_screen:set_text(value)
|
||||
|
||||
end
|
||||
|
||||
elseif calcu_screen:get_text() == 'inf' or
|
||||
calcu_screen:get_text() == 'undefined' or
|
||||
calcu_screen:get_text() == 'SYNTAX ERROR' then
|
||||
|
||||
-- Clear screen if an operator is selected
|
||||
if value:sub(-1):match('[%+%/%*%^%.]') then
|
||||
clear_screen()
|
||||
|
||||
else
|
||||
-- Replace screen txt with the number value pressed
|
||||
clear_screen()
|
||||
calcu_screen:set_text(tostring(value))
|
||||
end
|
||||
|
||||
else
|
||||
|
||||
-- Don't let the user to input two or more consecutive arithmetic operators and decimals
|
||||
if calcu_screen:get_text():sub(-1):match('[%+%-%/%*%^%.]') and value:sub(-1):match('[%+%-%/%*%^%.%%]') then
|
||||
|
||||
-- Get the operator from button pressed
|
||||
local string_eval = calcu_screen:get_text():sub(-1):gsub('[%+%-%/%*%^%.]', value)
|
||||
|
||||
-- This will prevent the user to input consecutive operators and decimals
|
||||
-- It will replace the previous operator with the value of input
|
||||
calcu_screen:set_text(calcu_screen:get_text():sub(1, -2))
|
||||
|
||||
-- Concatenate the value operator to the screen string to replace the deleted operator
|
||||
calcu_screen:set_text(calcu_screen:get_text() .. tostring(string_eval))
|
||||
|
||||
else
|
||||
-- Concatenate the value to screen string
|
||||
calcu_screen:set_text(calcu_screen:get_text() .. tostring(value))
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- Shape generator
|
||||
local build_shape = function (position, radius)
|
||||
|
||||
-- Position represents the position of rounded corners
|
||||
if position == 'top' then
|
||||
return function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, true, true, false, false, radius)
|
||||
end
|
||||
|
||||
elseif position == 'top_left' then
|
||||
return function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, true, false, false, false, radius)
|
||||
end
|
||||
|
||||
elseif position == 'top_right' then
|
||||
return function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, false, true, false, false, radius)
|
||||
end
|
||||
|
||||
elseif position == 'bottom_right' then
|
||||
return function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, false, false, true, false, radius)
|
||||
end
|
||||
|
||||
elseif position == 'bottom_left' then
|
||||
return function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, false, false, false, true, radius)
|
||||
end
|
||||
|
||||
else
|
||||
return function(cr, width, height)
|
||||
gears.shape.rounded_rect(cr, width, height, radius)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
-- Themes widgets
|
||||
local decorate_widget = function(widget_arg, pos, rad)
|
||||
return wibox.widget {
|
||||
widget_arg,
|
||||
bg = beautiful.groups_bg,
|
||||
shape = build_shape(pos, rad),
|
||||
widget = wibox.container.background
|
||||
}
|
||||
end
|
||||
|
||||
-- Build a button
|
||||
local build_button_widget = function(text, rcp, rad)
|
||||
|
||||
local value = text
|
||||
|
||||
local build_textbox = wibox.widget {
|
||||
{
|
||||
id = 'btn_name',
|
||||
text = value,
|
||||
font = 'Inter 12',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox,
|
||||
},
|
||||
margins = dpi(5),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
local build_button = wibox.widget {
|
||||
{
|
||||
build_textbox,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
build_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function ()
|
||||
|
||||
if value == 'C' then
|
||||
clear_screen()
|
||||
|
||||
elseif value == '=' then
|
||||
-- Calculate and error handling
|
||||
if not pcall(calculate) then
|
||||
calculator_screen.calcu_screen:set_text('SYNTAX ERROR')
|
||||
end
|
||||
|
||||
elseif value == 'DEL' then
|
||||
delete_value()
|
||||
|
||||
else
|
||||
format_screen(value)
|
||||
|
||||
end
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
return decorate_widget(build_button, rcp, rad)
|
||||
|
||||
end
|
||||
|
||||
local keygrab_running = false
|
||||
|
||||
local kb_imagebox = wibox.widget {
|
||||
|
||||
id = 'kb_icon',
|
||||
image = widget_icon_dir .. 'kb-off' .. '.svg',
|
||||
resize = true,
|
||||
forced_height = dpi(15),
|
||||
widget = wibox.widget.imagebox
|
||||
}
|
||||
|
||||
local kb_button_widget = wibox.widget {
|
||||
{
|
||||
{
|
||||
{
|
||||
layout = wibox.layout.align.horizontal,
|
||||
expand = 'none',
|
||||
nil,
|
||||
kb_imagebox,
|
||||
nil
|
||||
},
|
||||
margins = dpi(10),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
},
|
||||
bg = beautiful.groups_bg,
|
||||
shape = build_shape('bottom_left', beautiful.groups_radius),
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
local toggle_btn_keygrab = function()
|
||||
|
||||
if keygrab_running then
|
||||
kb_imagebox:set_image(widget_icon_dir .. 'kb-off' .. '.svg')
|
||||
awesome.emit_signal('widget::calc_stop_keygrab')
|
||||
keygrab_running = false
|
||||
else
|
||||
kb_imagebox:set_image(widget_icon_dir .. 'kb' .. '.svg')
|
||||
awesome.emit_signal('widget::calc_start_keygrab')
|
||||
keygrab_running = true
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local kb_button = kb_button_widget
|
||||
|
||||
kb_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
toggle_btn_keygrab()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
local calcu_keygrabber = awful.keygrabber {
|
||||
|
||||
auto_start = true,
|
||||
stop_event = 'release',
|
||||
start_callback = function()
|
||||
|
||||
keygrab_running = true
|
||||
kb_imagebox:set_image(widget_icon_dir .. 'kb' .. '.svg')
|
||||
|
||||
end,
|
||||
stop_callback = function()
|
||||
|
||||
keygrab_running = false
|
||||
kb_imagebox:set_image(widget_icon_dir .. 'kb-off' .. '.svg')
|
||||
|
||||
end,
|
||||
keypressed_callback = function(self, mod, key, command)
|
||||
|
||||
if #key == 1 and (key:match('%d+') or key:match('[%+%-%/%*%^%.]')) then
|
||||
format_screen(key)
|
||||
|
||||
elseif key == 'BackSpace' then
|
||||
delete_value()
|
||||
|
||||
elseif key == 'Escape' then
|
||||
clear_screen()
|
||||
|
||||
elseif key == 'x' then
|
||||
awesome.emit_signal('widget::calc_stop_keygrab')
|
||||
|
||||
elseif key == '=' or key == 'Return' then
|
||||
-- Calculate
|
||||
if not pcall(calculate) then
|
||||
calculator_screen.calcu_screen:set_text('SYNTAX ERROR')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end,
|
||||
}
|
||||
|
||||
local calculator_body = wibox.widget {
|
||||
layout = wibox.layout.fixed.vertical,
|
||||
spacing = dpi(1),
|
||||
{
|
||||
spacing = dpi(1),
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
decorate_widget(calculator_screen, 'top', beautiful.groups_radius),
|
||||
},
|
||||
{
|
||||
spacing = dpi(1),
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
build_button_widget('C', 'flat' , 0),
|
||||
build_button_widget('^', 'flat', 0),
|
||||
build_button_widget('/', 'flat', 0),
|
||||
build_button_widget('DEL', 'flat', 0),
|
||||
},
|
||||
{
|
||||
spacing = dpi(1),
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
build_button_widget('7', 'flat', 0),
|
||||
build_button_widget('8', 'flat', 0),
|
||||
build_button_widget('9', 'flat', 0),
|
||||
build_button_widget('*', 'flat', 0),
|
||||
},
|
||||
{
|
||||
spacing = dpi(1),
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
build_button_widget('4', 'flat', 0),
|
||||
build_button_widget('5', 'flat', 0),
|
||||
build_button_widget('6', 'flat', 0),
|
||||
build_button_widget('-', 'flat', 0),
|
||||
},
|
||||
{
|
||||
spacing = dpi(1),
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
build_button_widget('1', 'flat', 0),
|
||||
build_button_widget('2', 'flat', 0),
|
||||
build_button_widget('3', 'flat', 0),
|
||||
build_button_widget('+', 'flat', 0),
|
||||
},
|
||||
{
|
||||
spacing = dpi(1),
|
||||
layout = wibox.layout.flex.horizontal,
|
||||
kb_button,
|
||||
build_button_widget('0', 'flat', 0),
|
||||
build_button_widget('.', 'flat', 0),
|
||||
build_button_widget('=', 'bottom_right', beautiful.groups_radius)
|
||||
},
|
||||
}
|
||||
|
||||
calculator_body:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
-- Start keygrabbing
|
||||
calcu_keygrabber:start()
|
||||
end
|
||||
)
|
||||
|
||||
calculator_body:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
-- Stop keygrabbing
|
||||
calcu_keygrabber:stop()
|
||||
end
|
||||
)
|
||||
|
||||
awesome.connect_signal(
|
||||
'widget::calc_start_keygrab',
|
||||
function()
|
||||
-- Stop keygrabbing
|
||||
calcu_keygrabber:start()
|
||||
end
|
||||
)
|
||||
|
||||
awesome.connect_signal(
|
||||
'widget::calc_stop_keygrab',
|
||||
function()
|
||||
-- Stop keygrabbing
|
||||
calcu_keygrabber:stop()
|
||||
end
|
||||
)
|
||||
|
||||
local calcu_tooltip = awful.tooltip {
|
||||
|
||||
objects = {kb_button},
|
||||
mode = 'outside',
|
||||
align = 'right',
|
||||
delay_show = 1,
|
||||
preferred_positions = {'right', 'left', 'top', 'bottom'},
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8),
|
||||
markup = [[
|
||||
<b>Tips:</b>
|
||||
Enable keyboard support by hovering your mouse above the calculator.
|
||||
Or toggle it on/off by pressing the keyboard button.
|
||||
Only numbers, arithmetic operators, and decimal point is accepted.
|
||||
|
||||
<b>Keyboard bindings:</b>
|
||||
<b>=</b> and <b>Return</b> to get the answer.
|
||||
<b>BackSpace</b> to delete the last digit.
|
||||
<b>Escape</b> clears the screen.
|
||||
<b>x</b> stops keygrabbing.
|
||||
|
||||
<b>Note:</b>
|
||||
While in keygrabbing mode, your keyboard's focus will be on the calculator.
|
||||
So you're AwesomeWM keybinding will stop working.
|
||||
|
||||
<b>Stopping the keygrabbing mode:</b>
|
||||
* Move away your cursor from the calculator.
|
||||
* Toggle it off using the keyboard button.
|
||||
* Press <b>x</b>.
|
||||
]]
|
||||
}
|
||||
|
||||
return calculator_body
|
||||
@@ -0,0 +1,59 @@
|
||||
local wibox = require('wibox')
|
||||
local beautiful = require('beautiful')
|
||||
|
||||
local create_click_events = function(widget)
|
||||
|
||||
local container = wibox.widget {
|
||||
widget,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
-- Old and new widget
|
||||
local old_cursor, old_wibox
|
||||
|
||||
-- Mouse hovers on the widget
|
||||
container:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
container.bg = beautiful.groups_bg
|
||||
-- Hm, no idea how to get the wibox from this signal's arguments...
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
-- Mouse leaves the widget
|
||||
container:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
container.bg = beautiful.leave_event
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
-- Mouse pressed the widget
|
||||
container:connect_signal(
|
||||
'button::press',
|
||||
function()
|
||||
container.bg = beautiful.press_event
|
||||
end
|
||||
)
|
||||
|
||||
-- Mouse releases the widget
|
||||
container:connect_signal(
|
||||
'button::release',
|
||||
function()
|
||||
container.bg = beautiful.release_event
|
||||
end
|
||||
)
|
||||
|
||||
return container
|
||||
end
|
||||
|
||||
return create_click_events
|
||||
@@ -0,0 +1,158 @@
|
||||
local wibox = require('wibox')
|
||||
local awful = require('awful')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
local config = require('configuration.config')
|
||||
local military_mode = config.widget.clock.military_mode or false
|
||||
|
||||
local create_clock = function(s)
|
||||
|
||||
local clock_format = nil
|
||||
if not military_mode then
|
||||
clock_format = '<span font="Inter Bold 11">%I:%M %p</span>'
|
||||
else
|
||||
clock_format = '<span font="Inter Bold 11">%H:%M</span>'
|
||||
end
|
||||
|
||||
s.clock_widget = wibox.widget.textclock(
|
||||
clock_format,
|
||||
1
|
||||
)
|
||||
|
||||
s.clock_widget = wibox.widget {
|
||||
{
|
||||
s.clock_widget,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
s.clock_widget:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
local w = mouse.current_wibox
|
||||
if w then
|
||||
old_cursor, old_wibox = w.cursor, w
|
||||
w.cursor = 'hand1'
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
s.clock_widget:connect_signal(
|
||||
'mouse::leave',
|
||||
function()
|
||||
if old_wibox then
|
||||
old_wibox.cursor = old_cursor
|
||||
old_wibox = nil
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
s.clock_tooltip = awful.tooltip
|
||||
{
|
||||
objects = {s.clock_widget},
|
||||
mode = 'outside',
|
||||
delay_show = 1,
|
||||
preferred_positions = {'right', 'left', 'top', 'bottom'},
|
||||
preferred_alignments = {'middle', 'front', 'back'},
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8),
|
||||
timer_function = function()
|
||||
local ordinal = nil
|
||||
|
||||
local day = os.date('%d')
|
||||
local month = os.date('%B')
|
||||
|
||||
local first_digit = string.sub(day, 0, 1)
|
||||
local last_digit = string.sub(day, -1)
|
||||
|
||||
if first_digit == '0' then
|
||||
day = last_digit
|
||||
end
|
||||
|
||||
if last_digit == '1' and day ~= '11' then
|
||||
ordinal = 'st'
|
||||
elseif last_digit == '2' and day ~= '12' then
|
||||
ordinal = 'nd'
|
||||
elseif last_digit == '3' and day ~= '13' then
|
||||
ordinal = 'rd'
|
||||
else
|
||||
ordinal = 'th'
|
||||
end
|
||||
|
||||
local date_str = 'Today is the ' ..
|
||||
'<b>' .. day .. ordinal ..
|
||||
' of ' .. month .. '</b>.\n' ..
|
||||
'And it\'s fucking ' .. os.date('%A')
|
||||
|
||||
return date_str
|
||||
end,
|
||||
}
|
||||
|
||||
s.clock_widget:connect_signal(
|
||||
'button::press',
|
||||
function(self, lx, ly, button)
|
||||
-- Hide the tooltip when you press the clock widget
|
||||
if s.clock_tooltip.visible and button == 1 then
|
||||
s.clock_tooltip.visible = false
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
s.month_calendar = awful.widget.calendar_popup.month({
|
||||
start_sunday = true,
|
||||
spacing = dpi(5),
|
||||
font = 'Inter Regular 10',
|
||||
long_weekdays = true,
|
||||
margin = dpi(5),
|
||||
screen = s,
|
||||
style_month = {
|
||||
border_width = dpi(0),
|
||||
bg_color = beautiful.background,
|
||||
padding = dpi(20),
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(
|
||||
cr, width, height, true, true, true, true, beautiful.groups_radius
|
||||
)
|
||||
end
|
||||
},
|
||||
style_header = {
|
||||
border_width = 0,
|
||||
bg_color = beautiful.transparent
|
||||
},
|
||||
style_weekday = {
|
||||
border_width = 0,
|
||||
bg_color = beautiful.transparent
|
||||
},
|
||||
style_normal = {
|
||||
border_width = 0,
|
||||
bg_color = beautiful.transparent
|
||||
},
|
||||
style_focus = {
|
||||
border_width = dpi(0),
|
||||
border_color = beautiful.fg_normal,
|
||||
bg_color = beautiful.accent,
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(
|
||||
cr, width, height, true, true, true, true, dpi(4)
|
||||
)
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
s.month_calendar:attach(
|
||||
s.clock_widget,
|
||||
'tc',
|
||||
{
|
||||
on_pressed = true,
|
||||
on_hover = false
|
||||
}
|
||||
)
|
||||
|
||||
return s.clock_widget
|
||||
end
|
||||
|
||||
return create_clock
|
||||
@@ -0,0 +1,74 @@
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local watch = require('awful.widget.watch')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local icons = require('theme.icons')
|
||||
|
||||
local total_prev = 0
|
||||
local idle_prev = 0
|
||||
|
||||
local slider = wibox.widget {
|
||||
nil,
|
||||
{
|
||||
id = 'cpu_usage',
|
||||
max_value = 100,
|
||||
value = 29,
|
||||
forced_height = dpi(2),
|
||||
color = beautiful.fg_normal,
|
||||
background_color = beautiful.groups_bg,
|
||||
shape = gears.shape.rounded_rect,
|
||||
widget = wibox.widget.progressbar
|
||||
},
|
||||
nil,
|
||||
expand = 'none',
|
||||
layout = wibox.layout.align.vertical
|
||||
}
|
||||
|
||||
watch(
|
||||
[[bash -c "
|
||||
cat /proc/stat | grep '^cpu '
|
||||
"]],
|
||||
10,
|
||||
function(_, stdout)
|
||||
local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
|
||||
stdout:match('(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s')
|
||||
|
||||
local total = user + nice + system + idle + iowait + irq + softirq + steal
|
||||
|
||||
local diff_idle = idle - idle_prev
|
||||
local diff_total = total - total_prev
|
||||
local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
|
||||
|
||||
slider.cpu_usage:set_value(diff_usage)
|
||||
|
||||
total_prev = total
|
||||
idle_prev = idle
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
|
||||
local cpu_meter = wibox.widget {
|
||||
{
|
||||
{
|
||||
{
|
||||
image = icons.chart,
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
top = dpi(12),
|
||||
bottom = dpi(12),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
slider,
|
||||
spacing = dpi(24),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
return cpu_meter
|
||||
@@ -0,0 +1,109 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.3188977"
|
||||
inkscape:cx="102.48514"
|
||||
inkscape:cy="104.63006"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g847" />
|
||||
<g
|
||||
id="g877">
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text879"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
id="g856">
|
||||
<g
|
||||
id="g847">
|
||||
<g
|
||||
id="g853">
|
||||
<g
|
||||
id="g841">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
</g>
|
||||
<g
|
||||
id="g843">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
aria-label="1"
|
||||
transform="translate(1.3783569,-0.62932051)"
|
||||
id="text885"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 196.13672,199.49547 h 9.34375 v -45.09375 h -9.375 l -11.65625,8.09375 v 8.375 l 11.5,-7.8125 h 0.1875 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:64px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
id="path933" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-2.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<g
|
||||
id="g854">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text879"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;" />
|
||||
<g
|
||||
id="g846">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="2">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 180.38672,168.12047 h 8.75 c 0,-4.34375 3.40625,-7.375 7.90625,-7.375 4.0625,0 6.84375,2.75 6.84375,6.375 0,3.125 -1.28125,5.28125 -7,10.78125 l -15.96875,15.125 v 6.46875 h 32.78125 v -7.5 h -20.4375 v -0.1875 l 9.46875,-9.0625 c 7.625,-7.28125 10.34375,-10.6875 10.34375,-16.21875 0,-7.5 -6.375,-13.125 -16.03125,-13.125 -9.78125,0 -16.65625,6.03125 -16.65625,14.71875 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-3.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text879"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
id="g853">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<g
|
||||
id="g846">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="3">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 190.96484,179.65172 h 5.15625 c 5.46875,0 8.6875,2.4375 8.65625,6.8125 0,3.8125 -3.25,6.4375 -7.96875,6.4375 -4.96875,0 -8.21875,-2.5 -8.53125,-6.1875 h -9 c 0.40625,8.28125 7.34375,13.78125 17.53125,13.78125 10.46875,0 17.5625,-5.4375 17.5625,-13.625 0,-6.1875 -4.375,-10.15625 -11.0625,-10.78125 v -0.1875 c 5.3125,-1.09375 9.40625,-4.8125 9.40625,-10.5625 0,-7.21875 -6.4375,-11.9375 -15.96875,-11.9375 -9.4375,0 -16,5.28125 -16.46875,13.53125 h 8.65625 c 0.28125,-3.90625 3.375,-6.28125 7.8125,-6.28125 4.5,0 7.03125,2.34375 7.03125,6.03125 0,3.6875 -3.0625,6.25 -7.78125,6.25 h -5.03125 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-4.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text879"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
id="g853">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<g
|
||||
id="g846">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="4">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 200.99609,199.49547 h 8.96875 v -8.28125 h 5.9375 v -7.53125 h -5.9375 v -29.28125 h -13.3125 c -9.25,13.59375 -14.15625,21.46875 -18.09375,28.9375 v 7.875 h 22.4375 z m -14.21875,-15.8125 c 3.59375,-6.71875 7.6875,-13.125 14.21875,-22.53125 h 0.1875 v 22.78125 h -14.40625 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="email-5.svg"
|
||||
id="svg4"
|
||||
version="1.1"
|
||||
viewBox="0 0 240 240"
|
||||
height="240"
|
||||
width="240">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
x="160.68127"
|
||||
y="140.43247"
|
||||
width="72.691548"
|
||||
height="76.821962"
|
||||
id="rect887" />
|
||||
<rect
|
||||
x="180.14568"
|
||||
y="165.94589"
|
||||
width="57.559134"
|
||||
height="42.253372"
|
||||
id="rect881" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="g844"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-x="45"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:pagecheckerboard="false"
|
||||
showgrid="false"
|
||||
id="namedview6"
|
||||
inkscape:window-height="740"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#000000"
|
||||
inkscape:document-rotation="0" />
|
||||
<g
|
||||
id="g877">
|
||||
<g
|
||||
id="g853">
|
||||
<path
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5"
|
||||
id="path2"
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z" />
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text879"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
id="g844">
|
||||
<ellipse
|
||||
style="fill:#e04f5f;stroke-width:0.427111"
|
||||
cx="196.3432"
|
||||
cy="176.31927"
|
||||
rx="40.343189"
|
||||
ry="40.319271"
|
||||
id="ellipse16" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="5">
|
||||
<path
|
||||
id="path842"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 197.52734,200.49547 c 10.34375,0 17.4375,-6.46875 17.4375,-16 0,-8.59375 -6.15625,-14.78125 -14.75,-14.78125 -4.5625,0 -8.28125,1.84375 -10.15625,4.875 h -0.1875 l 1.09375,-12.6875 h 21.28125 v -7.5 h -28.78125 l -2.0625,26.46875 h 8.21875 c 1.53125,-2.71875 4.34375,-4.40625 7.96875,-4.40625 4.9375,0 8.375,3.40625 8.375,8.25 0,4.90625 -3.4375,8.3125 -8.40625,8.3125 -4.34375,0 -7.6875,-2.5625 -8.21875,-6.46875 h -8.71875 c 0.25,8.1875 7.25,13.9375 16.90625,13.9375 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-6.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text879"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
id="g853">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<g
|
||||
id="g846">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="6">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 197.82422,200.49547 c 10.0625,0 17.375,-6.65625 17.375,-16 0,-8.46875 -5.96875,-14.6875 -14.6875,-14.6875 -6.09375,0 -10.53125,3.0625 -12.28125,7.25 h -0.1875 c -0.0312,-9.875 3.21875,-16.21875 9.78125,-16.21875 3.71875,0 6.40625,1.875 7.46875,5.09375 h 9.3125 c -1.25,-7.4375 -8,-12.5625 -16.75,-12.5625 -11.71875,0 -18.84375,9 -18.84375,23.9375 0,15.5625 8.03125,23.1875 18.8125,23.1875 z m -0.125,-7.5 c -4.625,0 -8.25,-3.625 -8.25,-8.28125 0,-4.59375 3.5625,-7.9375 8.34375,-7.9375 4.71875,0 8.21875,3.375 8.21875,8.125 -0.0312,4.53125 -3.6875,8.09375 -8.3125,8.09375 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-7.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<g
|
||||
id="g854">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text879"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;" />
|
||||
<g
|
||||
id="g846">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="7">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 184.24609,199.49547 h 9.90625 l 18.8125,-37.5 v -7.59375 h -32.25 v 7.5 h 22.9375 v 0.1875 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-8.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<g
|
||||
id="g854">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text879"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;" />
|
||||
<g
|
||||
id="g846">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="8">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 197.02734,200.49547 c 10.75,0 18.28125,-5.375 18.28125,-13.1875 0,-5.9375 -4.34375,-10.3125 -10.5,-11.53125 v -0.1875 c 5.28125,-1.3125 8.84375,-5.1875 8.84375,-10.03125 0,-7.0625 -6.84375,-12.15625 -16.625,-12.15625 -9.78125,0 -16.65625,5.125 -16.65625,12.125 0,4.90625 3.59375,8.78125 8.90625,10.0625 v 0.1875 c -6.15625,1.1875 -10.53125,5.5625 -10.53125,11.5 0,7.8125 7.5,13.21875 18.28125,13.21875 z m 0,-27.75 c -4.28125,0 -7.3125,-2.5625 -7.3125,-6.25 0,-3.71875 3.03125,-6.28125 7.3125,-6.28125 4.25,0 7.3125,2.5625 7.3125,6.28125 0,3.6875 -3.0625,6.25 -7.3125,6.25 z m 0,20.875 c -4.96875,0 -8.4375,-2.9375 -8.4375,-7.03125 0,-4.03125 3.46875,-6.96875 8.4375,-6.96875 4.96875,0 8.40625,2.90625 8.40625,6.96875 0,4.09375 -3.4375,7.03125 -8.40625,7.03125 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,104 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-9.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<g
|
||||
id="g858">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text879"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;" />
|
||||
<g
|
||||
id="g849">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:61.3333px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="9+">
|
||||
<path
|
||||
id="path840"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:56px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 178.21484,197.90945 c 10.25391,0 16.46094,-7.875 16.46094,-20.94531 0,-14.41016 -7.76562,-20.28907 -16.46094,-20.28907 -8.80468,0 -15.20312,5.82422 -15.20312,14 0,7.6836 5.76953,12.87891 13.09765,12.87891 5.16797,0 9.07813,-2.57031 10.5,-6.39844 h 0.16407 c 0.0547,8.47656 -2.59766,14.21875 -8.53125,14.21875 -3.3086,0 -5.74219,-1.5039 -6.61719,-4.32031 h -8.14844 c 1.03906,6.39844 7,10.85547 14.73828,10.85547 z m 0.0273,-20.48047 c -4.12891,0 -7.19141,-2.95313 -7.19141,-7.08203 0,-3.99219 3.19922,-7.08203 7.27344,-7.08203 4.04687,0 7.24609,3.14453 7.24609,7.21875 0,4.04687 -3.17187,6.94531 -7.32812,6.94531 z" />
|
||||
<path
|
||||
id="path842"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:56px;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 218.65625,184.70242 h 10.63672 v -6.97266 h -10.63672 v -11.18359 h -7.13672 v 11.18359 h -10.60937 v 6.97266 h 10.60937 v 11.15625 h 7.13672 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,100 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="email-99.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8">
|
||||
<rect
|
||||
id="rect887"
|
||||
height="76.821962"
|
||||
width="72.691548"
|
||||
y="140.43247"
|
||||
x="160.68127" />
|
||||
<rect
|
||||
id="rect881"
|
||||
height="42.253372"
|
||||
width="57.559134"
|
||||
y="165.94589"
|
||||
x="180.14568" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#000000"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0.65098039"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:window-height="740"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:zoom="2.2645626"
|
||||
inkscape:cx="118.93231"
|
||||
inkscape:cy="121.34259"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g877" />
|
||||
<g
|
||||
id="g877">
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect881);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text879"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
id="g891">
|
||||
<path
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z"
|
||||
id="path2"
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<g
|
||||
id="g884">
|
||||
<ellipse
|
||||
id="ellipse16"
|
||||
ry="40.319271"
|
||||
rx="40.343189"
|
||||
cy="176.31927"
|
||||
cx="196.3432"
|
||||
style="fill:#e04f5f;stroke-width:0.427111" />
|
||||
<g
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:61.3333px;line-height:1.25;font-family:'sf pro d';-inkscape-font-specification:'sf pro d';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect887);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text885"
|
||||
transform="translate(0,-0.98869551)"
|
||||
aria-label="9">
|
||||
<path
|
||||
id="path878"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#ffffff"
|
||||
d="m 196.26367,197.99278 c 11.23047,0 18.02864,-8.62499 18.02864,-22.94009 0,-15.78255 -8.50521,-22.22134 -18.02864,-22.22134 -9.64322,0 -16.65103,6.3789 -16.65103,15.33332 0,8.41536 6.31901,14.10546 14.34504,14.10546 5.66016,0 9.94271,-2.8151 11.5,-7.00781 h 0.17969 c 0.0599,9.28385 -2.84506,15.57291 -9.34375,15.57291 -3.6237,0 -6.28906,-1.64713 -7.24739,-4.73177 h -8.92448 c 1.13802,7.00781 7.66667,11.88932 16.14192,11.88932 z m 0.03,-22.43098 c -4.52213,0 -7.8763,-3.23437 -7.8763,-7.7565 0,-4.3724 3.50391,-7.75651 7.96614,-7.75651 4.43229,0 7.9362,3.44401 7.9362,7.90625 0,4.43229 -3.47396,7.60676 -8.02604,7.60676 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,117 @@
|
||||
<?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"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
height="240"
|
||||
width="240"
|
||||
sodipodi:docname="technology.svg"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 239.99999 239.99999"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="Layer_1"
|
||||
version="1.1"><metadata
|
||||
id="metadata90"><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="defs88" /><sodipodi:namedview
|
||||
inkscape:current-layer="Layer_1"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-x="45"
|
||||
inkscape:cy="249.34781"
|
||||
inkscape:cx="44.809353"
|
||||
inkscape:zoom="0.61363547"
|
||||
inkscape:pagecheckerboard="true"
|
||||
showgrid="false"
|
||||
id="namedview86"
|
||||
inkscape:window-height="740"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<g
|
||||
style="fill:#fffffa;fill-opacity:1;opacity:0.8"
|
||||
transform="matrix(0.42613576,0,0,0.42613576,20,19.999787)"
|
||||
id="g53">
|
||||
<g
|
||||
style="fill:#fffffa;fill-opacity:1"
|
||||
id="g51">
|
||||
<path
|
||||
style="fill:#fffffa;fill-opacity:1"
|
||||
id="path49"
|
||||
d="m 465.069,173.152 0.244,-0.305 C 448.222,159.243 427.088,142.408 405,124.8 V 85.334 C 405,61.77 385.897,42.667 362.333,42.667 H 302.188 C 280.769,25.495 265.709,13.345 263.343,11.248 254.869,3.753 244.768,0.004 234.671,0 224.565,-0.004 214.463,3.746 206,11.248 203.634,13.346 188.574,25.495 167.155,42.667 H 106.667 C 83.103,42.667 64,61.77 64,85.334 v 40.003 c -21.846,17.415 -43.059,34.044 -59.979,47.51 l 0.243,0.305 C 1.777,175.152 0,177.923 0,181.195 v 245.452 c 0,23.576 19.112,42.688 42.688,42.688 h 383.979 c 23.564,0 42.667,-19.102 42.667,-42.667 V 181.195 c 0,-3.272 -1.778,-6.043 -4.265,-8.043 z M 220.146,27.225 c 5.667,-5.003 18.75,-9.12 29.052,0.01 1.65,1.46 8.645,7.148 18.924,15.432 h -66.908 c 10.285,-8.287 17.282,-13.98 18.932,-15.442 z m -81.479,79.442 h 191.667 c 5.896,0 10.667,4.771 10.667,10.667 0,5.896 -4.771,10.667 -10.667,10.667 H 138.667 c -5.896,0 -10.667,-4.771 -10.667,-10.667 0,-5.896 4.771,-10.667 10.667,-10.667 z m 0,64 h 191.667 c 5.896,0 10.667,4.771 10.667,10.667 0,5.896 -4.771,10.667 -10.667,10.667 H 138.667 c -5.896,0 -10.667,-4.771 -10.667,-10.667 0,-5.896 4.771,-10.667 10.667,-10.667 z M 288,245.334 c 0,5.896 -4.771,10.667 -10.667,10.667 h -86 c -5.896,0 -10.667,-4.771 -10.667,-10.667 0,-5.896 4.771,-10.667 10.667,-10.667 h 86 c 5.896,0 10.667,4.771 10.667,10.667 z m -38.802,89.82 c -2.573,2.283 -7.938,6.117 -14.865,6.117 -5.063,0 -9.948,-2.052 -14.531,-6.117 C 178.438,298.507 63.305,208.606 27.927,181.092 c 8.322,-6.626 20.974,-16.703 35.74,-28.471 v 24.214 c 0,3.281 1.51,6.385 4.094,8.406 43.469,33.979 122.021,95.844 159.771,128.417 2,1.729 4.49,2.594 6.969,2.594 2.479,0 4.958,-0.865 6.958,-2.583 C 279.021,281.294 357.48,219.617 400.896,185.721 403.49,183.7 405,180.596 405,177.315 V 152.09 c 15.044,11.99 27.953,22.272 36.397,28.996 -35.476,27.544 -151.083,117.663 -192.199,154.068 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g55">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g57">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g59">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g61">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g63">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g65">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g67">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g69">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g71">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g73">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g75">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g77">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g79">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g81">
|
||||
</g>
|
||||
<g
|
||||
style="opacity:0.8"
|
||||
id="g83">
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,56 @@
|
||||
<?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"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="ic_email_48px.svg"
|
||||
id="svg4"
|
||||
version="1.1"
|
||||
viewBox="0 0 240 240"
|
||||
height="240"
|
||||
width="240">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg4"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-x="45"
|
||||
inkscape:cy="85.87193"
|
||||
inkscape:cx="-95.622868"
|
||||
inkscape:zoom="0.75889096"
|
||||
inkscape:pagecheckerboard="true"
|
||||
showgrid="false"
|
||||
id="namedview6"
|
||||
inkscape:window-height="740"
|
||||
inkscape:window-width="1321"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:5"
|
||||
id="path2"
|
||||
d="M 200,40 H 40 C 28.95,40 20.1,48.95 20.1,60 L 20,180 c 0,11.05 8.95,20 20,20 h 160 c 11.05,0 20,-8.95 20,-20 V 60 c 0,-11.05 -8.95,-20 -20,-20 z m 0,40 -80,50 L 40,80 V 60 l 80,50 80,-50 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,410 @@
|
||||
local awful = require('awful')
|
||||
local gears = require('gears')
|
||||
local wibox = require('wibox')
|
||||
local naughty = require('naughty')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/email/icons/'
|
||||
|
||||
local config = require('configuration.config')
|
||||
local secrets = {
|
||||
email_address = config.widget.email.address,
|
||||
app_password = config.widget.email.app_password,
|
||||
imap_server = config.widget.email.imap_server,
|
||||
port = config.widget.email.port
|
||||
}
|
||||
|
||||
local unread_email_count = 0
|
||||
local startup_show = true
|
||||
|
||||
local scroll_container = function(widget)
|
||||
return wibox.widget {
|
||||
widget,
|
||||
id = 'scroll_container',
|
||||
max_size = 345,
|
||||
speed = 75,
|
||||
expand = true,
|
||||
direction = 'h',
|
||||
step_function = wibox.container.scroll
|
||||
.step_functions.waiting_nonlinear_back_and_forth,
|
||||
fps = 30,
|
||||
layout = wibox.container.scroll.horizontal,
|
||||
}
|
||||
end
|
||||
|
||||
local email_icon_widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = widget_icon_dir .. 'email.svg',
|
||||
resize = true,
|
||||
forced_height = dpi(45),
|
||||
forced_width = dpi(45),
|
||||
widget = wibox.widget.imagebox,
|
||||
},
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
}
|
||||
|
||||
local email_from_text = wibox.widget {
|
||||
font = 'Inter Regular 10',
|
||||
markup = 'From:',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local email_recent_from = wibox.widget {
|
||||
font = 'Inter Regular 10',
|
||||
markup = 'loading@stdout.sh',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local email_subject_text = wibox.widget {
|
||||
font = 'Inter Regular 10',
|
||||
markup = 'Subject:',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local email_recent_subject = wibox.widget {
|
||||
font = 'Inter Regular 10',
|
||||
markup = 'Loading data',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local email_date_text = wibox.widget {
|
||||
font = 'Inter Regular 10',
|
||||
markup = 'Local Date:',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local email_recent_date = wibox.widget {
|
||||
font = 'Inter Regular 10',
|
||||
markup = 'Loading date...',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local email_report = wibox.widget{
|
||||
{
|
||||
{
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
spacing = dpi(10),
|
||||
{
|
||||
layout = wibox.layout.align.vertical,
|
||||
expand = 'none',
|
||||
nil,
|
||||
email_icon_widget,
|
||||
nil
|
||||
},
|
||||
{
|
||||
layout = wibox.layout.align.vertical,
|
||||
expand = 'none',
|
||||
nil,
|
||||
{
|
||||
layout = wibox.layout.fixed.vertical,
|
||||
{
|
||||
email_from_text,
|
||||
scroll_container(email_recent_from),
|
||||
spacing = dpi(5),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
},
|
||||
{
|
||||
email_subject_text,
|
||||
scroll_container(email_recent_subject),
|
||||
spacing = dpi(5),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
},
|
||||
{
|
||||
email_date_text,
|
||||
scroll_container(email_recent_date),
|
||||
spacing = dpi(5),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
}
|
||||
},
|
||||
nil
|
||||
}
|
||||
},
|
||||
margins = dpi(10),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
forced_height = dpi(92),
|
||||
bg = beautiful.groups_bg,
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(cr, width, height, true, true, true, true, beautiful.groups_radius)
|
||||
end,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
local email_details_tooltip = awful.tooltip
|
||||
{
|
||||
text = 'Loading...',
|
||||
objects = {email_icon_widget},
|
||||
mode = 'outside',
|
||||
align = 'right',
|
||||
preferred_positions = {'left', 'right', 'top', 'bottom'},
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8)
|
||||
}
|
||||
|
||||
local fetch_email_command = [[
|
||||
python3 - <<END
|
||||
import imaplib
|
||||
import email
|
||||
import datetime
|
||||
import re
|
||||
import sys
|
||||
from email.policy import default
|
||||
|
||||
def process_mailbox(M):
|
||||
rv, data = M.search(None, "(UNSEEN)")
|
||||
if rv != 'OK':
|
||||
print ("No messages found!")
|
||||
return
|
||||
|
||||
for num in reversed(data[0].split()):
|
||||
rv, data = M.fetch(num, '(BODY.PEEK[])')
|
||||
if rv != 'OK':
|
||||
print ("ERROR getting message", num)
|
||||
return
|
||||
|
||||
msg = email.message_from_bytes(data[0][1], policy=default)
|
||||
print ('From:', msg['From'])
|
||||
print ('Subject: %s' % (msg['Subject']))
|
||||
date_tuple = email.utils.parsedate_tz(msg['Date'])
|
||||
if date_tuple:
|
||||
local_date = datetime.datetime.fromtimestamp(email.utils.mktime_tz(date_tuple))
|
||||
print ("Local Date:", local_date.strftime("%a, %H:%M:%S %b %d, %Y") + "\n")
|
||||
# with code below you can process text of email
|
||||
# if msg.is_multipart():
|
||||
# for payload in msg.get_payload():
|
||||
# if payload.get_content_maintype() == 'text':
|
||||
# print payload.get_payload()
|
||||
# else:
|
||||
# print msg.get_payload()
|
||||
|
||||
|
||||
try:
|
||||
M=imaplib.IMAP4_SSL("]] .. secrets.imap_server .. [[", ]] .. secrets.port .. [[)
|
||||
M.login("]] .. secrets.email_address .. [[","]] .. secrets.app_password .. [[")
|
||||
|
||||
status, counts = M.status("INBOX","(MESSAGES UNSEEN)")
|
||||
|
||||
rv, data = M.select("INBOX")
|
||||
if rv == 'OK':
|
||||
unread = re.search(r'UNSEEN\s(\d+)', counts[0].decode('utf-8')).group(1)
|
||||
print ("Unread Count: " + unread)
|
||||
process_mailbox(M)
|
||||
|
||||
M.close()
|
||||
M.logout()
|
||||
|
||||
except Exception as e:
|
||||
if e:
|
||||
print (e)
|
||||
|
||||
END
|
||||
]]
|
||||
|
||||
local notify_all_unread_email = function(email_data)
|
||||
|
||||
local unread_counter = email_data:match('Unread Count: (.-)From:'):sub(1, -2)
|
||||
|
||||
local email_data = email_data:match('(From:.*)'):sub(1, -2)
|
||||
|
||||
local title = nil
|
||||
|
||||
if tonumber(unread_email_count) > 1 then
|
||||
title = 'You have ' .. unread_counter .. ' unread emails!'
|
||||
else
|
||||
title = 'You have ' .. unread_counter .. ' unread email!'
|
||||
end
|
||||
|
||||
naughty.notification ({
|
||||
app_name = 'Email',
|
||||
title = title,
|
||||
message = email_data,
|
||||
timeout = 30,
|
||||
icon = widget_icon_dir .. 'email-unread.svg'
|
||||
})
|
||||
end
|
||||
|
||||
local notify_new_email = function(count, from, subject)
|
||||
if not startup_show and (tonumber(count) > tonumber(unread_email_count)) then
|
||||
unread_email_count = tonumber(count)
|
||||
|
||||
local message = "From: " .. from ..
|
||||
"\nSubject: " .. subject
|
||||
|
||||
naughty.notification ({
|
||||
app_name = 'Email',
|
||||
title = 'You have a new unread email!',
|
||||
message = message,
|
||||
timeout = 10,
|
||||
icon = widget_icon_dir .. 'email-unread.svg'
|
||||
})
|
||||
else
|
||||
unread_email_count = tonumber(count)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local set_email_data_tooltip = function(email_data)
|
||||
local email_data = email_data:match('(From:.*)')
|
||||
local counter = "<span font='Inter Regular 10'>Unread Count: </span>" .. unread_email_count
|
||||
email_details_tooltip:set_markup(counter .. '\n\n' .. email_data)
|
||||
end
|
||||
|
||||
local set_widget_markup = function(from, subject, date, tooltip)
|
||||
|
||||
email_recent_from:set_markup(from:gsub('%\n', ''))
|
||||
email_recent_subject:set_markup(subject:gsub('%\n', ''))
|
||||
email_recent_date:set_markup(date:gsub('%\n', ''))
|
||||
|
||||
if tooltip then
|
||||
email_details_tooltip:set_markup(tooltip)
|
||||
end
|
||||
end
|
||||
|
||||
local set_no_connection_msg = function()
|
||||
set_widget_markup(
|
||||
'message@stderr.sh',
|
||||
'Check network connection!',
|
||||
os.date('%d-%m-%Y %H:%M:%S'),
|
||||
'No internet connection!'
|
||||
)
|
||||
end
|
||||
|
||||
local set_invalid_credentials_msg = function()
|
||||
set_widget_markup(
|
||||
'message@stderr.sh',
|
||||
'Invalid Credentials!',
|
||||
os.date('%d-%m-%Y %H:%M:%S'),
|
||||
'You have an invalid credentials!'
|
||||
)
|
||||
end
|
||||
|
||||
local set_latest_email_data = function(email_data)
|
||||
|
||||
local unread_count = email_data:match('Unread Count: (.-)From:'):sub(1, -2)
|
||||
local recent_from = email_data:match('From: (.-)Subject:'):sub(1, -2)
|
||||
local recent_subject = email_data:match('Subject: (.-)Local Date:'):sub(1, -2)
|
||||
local recent_date = email_data:match('Local Date: (.-)\n')
|
||||
|
||||
recent_from = recent_from:match('<(.*)>') or recent_from:match('<(.*)>') or recent_from
|
||||
|
||||
local count = tonumber(unread_count)
|
||||
if count > 0 and count <= 9 then
|
||||
email_icon_widget.icon:set_image(widget_icon_dir .. 'email-'.. tostring(count) .. '.svg')
|
||||
elseif count > 9 then
|
||||
email_icon_widget.icon:set_image(widget_icon_dir .. 'email-9+.svg')
|
||||
end
|
||||
|
||||
set_widget_markup(
|
||||
recent_from,
|
||||
recent_subject,
|
||||
recent_date
|
||||
)
|
||||
|
||||
notify_new_email(unread_count, recent_from, recent_subject)
|
||||
end
|
||||
|
||||
local set_empty_inbox_msg = function()
|
||||
set_widget_markup(
|
||||
'empty@stdout.sh',
|
||||
'Empty inbox',
|
||||
os.date('%d-%m-%Y %H:%M:%S'),
|
||||
'Empty inbox.'
|
||||
)
|
||||
end
|
||||
|
||||
local fetch_email_data = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
fetch_email_command,
|
||||
function(stdout)
|
||||
stdout = gears.string.xml_escape(stdout:sub(1, -2))
|
||||
|
||||
if stdout:match('Temporary failure in name resolution') then
|
||||
set_no_connection_msg()
|
||||
return
|
||||
elseif stdout:match('Invalid credentials') then
|
||||
set_invalid_credentials_msg()
|
||||
return
|
||||
elseif stdout:match('Unread Count: 0') then
|
||||
email_icon_widget.icon:set_image(widget_icon_dir .. 'email.svg')
|
||||
set_empty_inbox_msg()
|
||||
return
|
||||
elseif not stdout:match('Unread Count: (.-)From:') then
|
||||
return
|
||||
elseif not stdout or stdout == '' then
|
||||
return
|
||||
end
|
||||
|
||||
set_latest_email_data(stdout)
|
||||
set_email_data_tooltip(stdout)
|
||||
|
||||
if startup_show then
|
||||
notify_all_unread_email(stdout)
|
||||
startup_show = false
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local set_missing_secrets_msg = function()
|
||||
set_widget_markup(
|
||||
'message@stderr.sh',
|
||||
'Credentials are missing!',
|
||||
os.date('%d-%m-%Y %H:%M:%S'),
|
||||
'Missing credentials!'
|
||||
)
|
||||
end
|
||||
|
||||
local check_secrets = function()
|
||||
if secrets.email_address == '' or secrets.app_password == '' or secrets.imap_server == '' or secrets.port == '' then
|
||||
set_missing_secrets_msg()
|
||||
return
|
||||
else
|
||||
fetch_email_data()
|
||||
end
|
||||
end
|
||||
|
||||
check_secrets()
|
||||
|
||||
local update_widget_timer = gears.timer {
|
||||
timeout = 30,
|
||||
autostart = true,
|
||||
call_now = true,
|
||||
callback = function()
|
||||
check_secrets()
|
||||
end
|
||||
}
|
||||
|
||||
email_report:connect_signal(
|
||||
'mouse::enter',
|
||||
function()
|
||||
check_secrets()
|
||||
end
|
||||
)
|
||||
|
||||
awesome.connect_signal(
|
||||
'system::network_connected',
|
||||
function()
|
||||
gears.timer.start_new(
|
||||
5,
|
||||
function()
|
||||
check_secrets()
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
|
||||
return email_report
|
||||
@@ -0,0 +1,68 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
local icons = require('theme.icons')
|
||||
|
||||
local create_widget = function()
|
||||
local exit_widget = {
|
||||
{
|
||||
{
|
||||
{
|
||||
image = icons.logout,
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
top = dpi(12),
|
||||
bottom = dpi(12),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
{
|
||||
text = 'End work session',
|
||||
font = 'Inter Regular 12',
|
||||
align = 'left',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
},
|
||||
spacing = dpi(24),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
local exit_button = wibox.widget {
|
||||
{
|
||||
exit_widget,
|
||||
widget = clickable_container
|
||||
|
||||
},
|
||||
bg = beautiful.groups_bg,
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.rounded_rect(cr, width, height, beautiful.groups_radius)
|
||||
end,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
exit_button:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
screen.primary.left_panel:toggle()
|
||||
awesome.emit_signal('module::exit_screen:show')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
return exit_button
|
||||
end
|
||||
|
||||
return create_widget
|
||||
@@ -0,0 +1,61 @@
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
|
||||
local watch = require('awful.widget.watch')
|
||||
local icons = require('theme.icons')
|
||||
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
|
||||
local slider = wibox.widget {
|
||||
nil,
|
||||
{
|
||||
id = 'hdd_usage',
|
||||
max_value = 100,
|
||||
value = 29,
|
||||
forced_height = dpi(2),
|
||||
color = beautiful.fg_normal,
|
||||
background_color = beautiful.groups_bg,
|
||||
shape = gears.shape.rounded_rect,
|
||||
widget = wibox.widget.progressbar
|
||||
},
|
||||
nil,
|
||||
expand = 'none',
|
||||
layout = wibox.layout.align.vertical
|
||||
}
|
||||
|
||||
watch(
|
||||
[[bash -c "df -h /home|grep '^/' | awk '{print $5}'"]],
|
||||
10,
|
||||
function(_, stdout)
|
||||
local space_consumed = stdout:match('(%d+)')
|
||||
slider.hdd_usage:set_value(tonumber(space_consumed))
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
local harddrive_meter = wibox.widget {
|
||||
{
|
||||
{
|
||||
{
|
||||
image = icons.harddisk,
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
top = dpi(12),
|
||||
bottom = dpi(12),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
slider,
|
||||
spacing = dpi(24),
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
|
||||
},
|
||||
left = dpi(24),
|
||||
right = dpi(24),
|
||||
forced_height = dpi(48),
|
||||
widget = wibox.container.margin
|
||||
}
|
||||
|
||||
return harddrive_meter
|
||||
@@ -0,0 +1,128 @@
|
||||
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')
|
||||
|
||||
-- Variable used for switching panel modes
|
||||
right_panel_mode = 'today_mode'
|
||||
|
||||
local active_button = beautiful.groups_title_bg
|
||||
local inactive_button = beautiful.transparent
|
||||
|
||||
local notif_text = wibox.widget
|
||||
{
|
||||
text = 'Notifications',
|
||||
font = 'Inter Bold 11',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local notif_button = clickable_container(
|
||||
wibox.container.margin(
|
||||
notif_text, dpi(0), dpi(0), dpi(7), dpi(7)
|
||||
)
|
||||
)
|
||||
|
||||
local wrap_notif = wibox.widget {
|
||||
notif_button,
|
||||
forced_width = dpi(140),
|
||||
bg = inactive_button,
|
||||
border_width = dpi(1),
|
||||
border_color = beautiful.groups_title_bg,
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(
|
||||
cr, width, height, false, true, true, false, beautiful.groups_radius
|
||||
)
|
||||
end,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
local today_text = wibox.widget {
|
||||
text = 'Today',
|
||||
font = 'Inter Bold 11',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
local today_button = clickable_container(
|
||||
wibox.container.margin(
|
||||
today_text, dpi(0), dpi(0), dpi(7), dpi(7)
|
||||
)
|
||||
)
|
||||
|
||||
local wrap_today = wibox.widget {
|
||||
today_button,
|
||||
forced_width = dpi(140),
|
||||
bg = active_button,
|
||||
border_width = dpi(1),
|
||||
border_color = beautiful.groups_title_bg,
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(
|
||||
cr, width, height, true, false, false, true, beautiful.groups_radius
|
||||
)
|
||||
end,
|
||||
widget = wibox.container.background
|
||||
}
|
||||
|
||||
local switcher = wibox.widget {
|
||||
expand = 'none',
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
wrap_today,
|
||||
wrap_notif
|
||||
}
|
||||
|
||||
function switch_rdb_pane(right_panel_mode)
|
||||
|
||||
local focused = awful.screen.focused()
|
||||
|
||||
if right_panel_mode == 'notif_mode' then
|
||||
|
||||
-- Update button color
|
||||
wrap_notif.bg = active_button
|
||||
wrap_today.bg = inactive_button
|
||||
|
||||
-- Change panel content of right-panel.lua
|
||||
focused.right_panel:switch_pane(right_panel_mode)
|
||||
|
||||
elseif right_panel_mode == 'today_mode' then
|
||||
|
||||
-- Update button color
|
||||
wrap_notif.bg = inactive_button
|
||||
wrap_today.bg = active_button
|
||||
|
||||
-- Change panel content of right-panel.lua
|
||||
focused.right_panel:switch_pane(right_panel_mode)
|
||||
end
|
||||
end
|
||||
|
||||
notif_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
switch_rdb_pane('notif_mode')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
today_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
switch_rdb_pane('today_mode')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
return switcher
|
||||
@@ -0,0 +1,111 @@
|
||||
<?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"
|
||||
id="Capa_1"
|
||||
enable-background="new 0 0 374.706 374.706"
|
||||
height="240"
|
||||
viewBox="0 0 175.64344 175.64344"
|
||||
width="240"
|
||||
class=""
|
||||
version="1.1"
|
||||
sodipodi:docname="notification.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata16">
|
||||
<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="defs14" />
|
||||
<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="namedview12"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="0.4609375"
|
||||
inkscape:cx="256"
|
||||
inkscape:cy="256"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1" />
|
||||
<g
|
||||
id="g9"
|
||||
transform="matrix(0.38752239,0,0,0.38752239,14.249432,12.505775)">
|
||||
<path
|
||||
id="path-1_59_"
|
||||
d="m 80.294,53.529 h 294.412 v 53.529 H 80.294 Z"
|
||||
transform="translate(4,3)"
|
||||
data-original="#000000"
|
||||
class="active-path"
|
||||
data-old_color="#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
d="m 80.294,160.588 h 267.647 v 53.529 H 80.294 Z"
|
||||
data-original="#000000"
|
||||
class="active-path"
|
||||
data-old_color="#000000"
|
||||
id="path3"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path-1_58_"
|
||||
d="m 80.294,267.647 h 294.412 v 53.529 H 80.294 Z"
|
||||
transform="translate(4,11)"
|
||||
data-original="#000000"
|
||||
class="active-path"
|
||||
data-old_color="#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path-2_11_"
|
||||
d="m 0,53.529 h 53.529 v 53.529 H 0 Z"
|
||||
transform="translate(1,3)"
|
||||
data-original="#000000"
|
||||
class="active-path"
|
||||
data-old_color="#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path-2_10_"
|
||||
d="m 0,160.588 h 53.529 v 53.529 H 0 Z"
|
||||
transform="translate(1,7)"
|
||||
data-original="#000000"
|
||||
class="active-path"
|
||||
data-old_color="#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path-2_9_"
|
||||
d="m 0,267.647 h 53.529 v 53.529 H 0 Z"
|
||||
transform="translate(1,11)"
|
||||
data-original="#000000"
|
||||
class="active-path"
|
||||
data-old_color="#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,47 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/info-center-toggle/icons/'
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
|
||||
local return_button = function()
|
||||
|
||||
local widget =
|
||||
wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = widget_icon_dir .. 'info-center.svg',
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
widget,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.screen.focused().right_panel:toggle()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
return widget_button
|
||||
end
|
||||
|
||||
return return_button
|
||||
@@ -0,0 +1,51 @@
|
||||
local wibox = require('wibox')
|
||||
local awful = require('awful')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
|
||||
local layout_box = function(s)
|
||||
local layoutbox = wibox.widget {
|
||||
{
|
||||
awful.widget.layoutbox(s),
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
layoutbox:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
function()
|
||||
awful.layout.inc(1)
|
||||
end
|
||||
),
|
||||
awful.button(
|
||||
{},
|
||||
3,
|
||||
function()
|
||||
awful.layout.inc(-1)
|
||||
end
|
||||
),
|
||||
awful.button(
|
||||
{},
|
||||
4,
|
||||
function()
|
||||
awful.layout.inc(1)
|
||||
end
|
||||
),
|
||||
awful.button(
|
||||
{},
|
||||
5,
|
||||
function()
|
||||
awful.layout.inc(-1)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
return layoutbox
|
||||
end
|
||||
|
||||
return layout_box
|
||||
@@ -0,0 +1,19 @@
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
|
||||
|
||||
local album_cover_img = wibox.widget {
|
||||
{
|
||||
id = 'cover',
|
||||
image = widget_icon_dir .. 'vinyl.svg',
|
||||
resize = true,
|
||||
clip_shape = gears.shape.rounded_rect,
|
||||
widget = wibox.widget.imagebox,
|
||||
},
|
||||
layout = wibox.layout.fixed.vertical
|
||||
}
|
||||
|
||||
return album_cover_img
|
||||
@@ -0,0 +1,9 @@
|
||||
-- Return UI Table
|
||||
return {
|
||||
album_cover = require('widget.mpd.content.album-cover'),
|
||||
progress_bar = require('widget.mpd.content.progress-bar'),
|
||||
track_time = require('widget.mpd.content.track-time'),
|
||||
song_info = require('widget.mpd.content.song-info'),
|
||||
media_buttons = require('widget.mpd.content.media-buttons'),
|
||||
volume_slider = require('widget.mpd.content.volume-slider'),
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
local wibox = require('wibox')
|
||||
local awful = require('awful')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
|
||||
local media_buttons = {}
|
||||
|
||||
media_buttons.play_button_image = wibox.widget {
|
||||
{
|
||||
id = 'play',
|
||||
image = widget_icon_dir .. 'play.svg',
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
media_buttons.next_button_image = wibox.widget {
|
||||
{
|
||||
id = 'next',
|
||||
image = widget_icon_dir .. 'next.svg',
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
media_buttons.prev_button_image = wibox.widget {
|
||||
{
|
||||
id = 'prev',
|
||||
image = widget_icon_dir .. 'prev.svg',
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
media_buttons.repeat_button_image = wibox.widget {
|
||||
{
|
||||
id = 'rep',
|
||||
image = widget_icon_dir .. 'repeat-on.svg',
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
media_buttons.random_button_image = wibox.widget {
|
||||
{
|
||||
id = 'rand',
|
||||
image = widget_icon_dir .. 'random-on.svg',
|
||||
resize = true,
|
||||
widget = wibox.widget.imagebox
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
media_buttons.play_button = wibox.widget {
|
||||
{
|
||||
media_buttons.play_button_image,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
media_buttons.next_button = wibox.widget {
|
||||
{
|
||||
media_buttons.next_button_image,
|
||||
margins = dpi(10),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
media_buttons.prev_button = wibox.widget {
|
||||
{
|
||||
media_buttons.prev_button_image,
|
||||
margins = dpi(10),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
media_buttons.repeat_button = wibox.widget {
|
||||
{
|
||||
media_buttons.repeat_button_image,
|
||||
margins = dpi(10),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
media_buttons.random_button = wibox.widget {
|
||||
{
|
||||
media_buttons.random_button_image,
|
||||
margins = dpi(10),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
media_buttons.navigate_buttons = wibox.widget {
|
||||
expand = 'none',
|
||||
layout = wibox.layout.align.horizontal,
|
||||
media_buttons.repeat_button,
|
||||
{
|
||||
layout = wibox.layout.fixed.horizontal,
|
||||
media_buttons.prev_button,
|
||||
media_buttons.play_button,
|
||||
media_buttons.next_button,
|
||||
forced_height = dpi(35),
|
||||
},
|
||||
media_buttons.random_button,
|
||||
forced_height = dpi(35),
|
||||
}
|
||||
|
||||
return media_buttons
|
||||
@@ -0,0 +1,21 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
|
||||
local progressbar = wibox.widget {
|
||||
{
|
||||
id = 'music_bar',
|
||||
max_value = 100,
|
||||
forced_height = dpi(3),
|
||||
forced_width = dpi(100),
|
||||
color = '#ffffff',
|
||||
background_color = '#ffffff20',
|
||||
shape = gears.shape.rounded_bar,
|
||||
widget = wibox.widget.progressbar
|
||||
},
|
||||
layout = wibox.layout.stack
|
||||
}
|
||||
|
||||
return progressbar
|
||||
@@ -0,0 +1,64 @@
|
||||
local wibox = require('wibox')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local song_info = {}
|
||||
|
||||
song_info.music_title = wibox.widget {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
expand = 'none',
|
||||
nil,
|
||||
{
|
||||
{
|
||||
id = 'title',
|
||||
text = 'The song title is here',
|
||||
font = 'Inter Bold 12',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
ellipsize = 'end',
|
||||
widget = wibox.widget.textbox
|
||||
},
|
||||
id = 'scroll_container',
|
||||
max_size = 345,
|
||||
speed = 75,
|
||||
expand = true,
|
||||
direction = 'h',
|
||||
step_function = wibox.container.scroll
|
||||
.step_functions.waiting_nonlinear_back_and_forth,
|
||||
fps = 60,
|
||||
layout = wibox.container.scroll.horizontal
|
||||
},
|
||||
nil
|
||||
}
|
||||
|
||||
song_info.music_artist = wibox.widget {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
expand = 'none',
|
||||
nil,
|
||||
{
|
||||
{
|
||||
id = 'artist',
|
||||
text = 'The artist name is here',
|
||||
font = 'Inter 10',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
widget = wibox.widget.textbox
|
||||
},
|
||||
id = 'scroll_container',
|
||||
max_size = 345,
|
||||
speed = 75,
|
||||
expand = true,
|
||||
direction = 'h',
|
||||
step_function = wibox.container.scroll
|
||||
.step_functions.waiting_nonlinear_back_and_forth,
|
||||
layout = wibox.container.scroll.horizontal,
|
||||
fps = 60
|
||||
},
|
||||
nil
|
||||
}
|
||||
|
||||
song_info.music_info = wibox.widget {
|
||||
layout = wibox.layout.fixed.vertical,
|
||||
song_info.music_title,
|
||||
song_info.music_artist
|
||||
}
|
||||
|
||||
return song_info
|
||||
@@ -0,0 +1,37 @@
|
||||
local beautiful = require('beautiful')
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
|
||||
local time_info = {}
|
||||
|
||||
time_info.time_status = wibox.widget {
|
||||
id = 'statustime',
|
||||
text = '00:00',
|
||||
font = 'Inter 8',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
forced_height = dpi(10),
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
time_info.time_duration = wibox.widget {
|
||||
id = 'durationtime',
|
||||
text = '00:00',
|
||||
font = 'Inter 8',
|
||||
align = 'center',
|
||||
valign = 'center',
|
||||
forced_height = dpi(10),
|
||||
widget = wibox.widget.textbox
|
||||
}
|
||||
|
||||
time_info.time_track = wibox.widget {
|
||||
expand = 'none',
|
||||
layout = wibox.layout.align.horizontal,
|
||||
time_info.time_status,
|
||||
nil,
|
||||
time_info.time_duration
|
||||
}
|
||||
|
||||
return time_info
|
||||
@@ -0,0 +1,23 @@
|
||||
local wibox = require('wibox')
|
||||
local awful = require('awful')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
|
||||
local slider = {}
|
||||
|
||||
slider.vol_slider = wibox.widget {
|
||||
bar_shape = gears.shape.rounded_rect,
|
||||
bar_height = dpi(5),
|
||||
bar_color = '#ffffff20',
|
||||
bar_active_color = '#f2f2f2EE',
|
||||
handle_color = '#ffffff',
|
||||
handle_shape = gears.shape.circle,
|
||||
handle_width = dpi(15),
|
||||
handle_border_color = '#00000012',
|
||||
handle_border_width = dpi(1),
|
||||
maximum = 100,
|
||||
widget = wibox.widget.slider,
|
||||
}
|
||||
|
||||
return slider
|
||||
@@ -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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
width="240"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="music.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="740"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.61458333"
|
||||
inkscape:cx="-149.03738"
|
||||
inkscape:cy="-9.7452794"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6"
|
||||
inkscape:pagecheckerboard="true" />
|
||||
<path
|
||||
d="m 0,216 h 24 v 24 H 0 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
<path
|
||||
d="m 120,20 v 117.22222 c -6.55555,-3.77778 -14.11111,-6.11111 -22.222221,-6.11111 -24.555555,0 -44.444444,19.88889 -44.444444,44.44445 0,24.55555 19.888889,44.44444 44.444444,44.44444 24.555561,0 44.444441,-19.88889 44.444441,-44.44444 V 64.444444 h 44.44444 V 20 Z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:0.93333333;stroke-width:11.11111069"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_skip_next_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 20,220 161.66667,120 20,20 Z M 186.66667,20 V 220 H 220 V 20 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:8.33333302;fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,59 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240.00001 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_pause_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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"
|
||||
units="px"
|
||||
width="240mm"
|
||||
inkscape:zoom="0.30729167"
|
||||
inkscape:cx="-372.98936"
|
||||
inkscape:cy="-268.78861"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="m 34.285715,220 h 57.14286 V 20 H 34.285715 Z M 148.57142,20 v 200 h 57.14287 V 20 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:7.1428566" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_play_arrow_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 41.42857,20 V 220 L 198.57143,120 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:7.14285707;fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_skip_previous_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.43457604"
|
||||
inkscape:cx="-405.81548"
|
||||
inkscape:cy="18.788525"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 20,20 H 53.333333 V 220 H 20 Z M 78.333333,120 220,220 V 20 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:8.33333302" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -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="svg917"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
sodipodi:docname="random-off.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata923">
|
||||
<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="defs921" />
|
||||
<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="namedview919"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.066875"
|
||||
inkscape:cx="89.045102"
|
||||
inkscape:cy="266.66666"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg917"
|
||||
inkscape:pagecheckerboard="true" />
|
||||
<image
|
||||
width="200"
|
||||
height="200"
|
||||
preserveAspectRatio="none"
|
||||
style="image-rendering:optimizeQuality"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9 kT1Iw1AUhU9TpSIVBzuodMhQnSyIijhqFYpQIdQKrTqYvPQPmjQkKS6OgmvBwZ/FqoOLs64OroIg +APi4uqk6CIl3pcUWsR44fE+zrvn8N59gNCoMM3qGgc03TbTyYSYza2KoVeEISCAIURlZhlzkpSC b33dUyfVXZxn+ff9WX1q3mJAQCSeZYZpE28QT2/aBud94ggrySrxOfGYSRckfuS64vEb56LLAs+M mJn0PHGEWCx2sNLBrGRqxFPEMVXTKV/Ieqxy3uKsVWqsdU/+wnBeX1nmOq0okljEEiSIUFBDGRXY iNOuk2IhTecJH/+w65fIpZCrDEaOBVShQXb94H/we7ZWYXLCSwongO4Xx/kYAUK7QLPuON/HjtM8 AYLPwJXe9lcbwMwn6fW2FjsC+reBi+u2puwBlzvA4JMhm7IrBWkJhQLwfkbflAMGboHeNW9urXOc PgAZmlXqBjg4BEaLlL3u8+6ezrn929Oa3w8RbnKABi2j6gAAAAZiS0dEAFEAUQBRjSJ44QAAAAlw SFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+MMAgEbBnJq4p4AABmzSURBVHja7d1Ze2Rlvcbh5w/N JLBVBKQREASRSQFRkHmGbmj2Pt5fzY+xhWZoEFQGAZFJERUFGwScB2Tu7rUPUlGapIakk9R6V933 dXHCETypWr+8q5KsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgCMoEh6brum1Jbkny QlW9aRHo3Xv0sCS3JTnDGswUxqrvtvjffZgv3SHHfMfoQrGj67pTrQK9uzgfSPJAkr3WYMgE/dBj vhzxbaIOog6C3nbMI+og6iDow4i5qIOog6APJOaiDqIOgj6QmIs6iDoI+kBiLuog6iDoA4m5qIOo g6APJOaiDqIOgj6QmIs6iDoI+kBiLuog6iDoA4m5qIOog6APJOaiDqIOgj6QmIs6iDoI+kBiLuog 6iDoA4m5qIOog6APJOaiDqIOgj6QmIs6iDoI+kBiLuog6iDoA4m5qIOog6APJOaiDqIOgj6QmIs6 iDoI+kBiLuog6iDoA4m5qIOog6APJOaiDqIOix30AcVc1EHUYTGDPsCYizqIOixW0Accc1EHUYfF CPoCxFzUQdRh2EFfoJiLOog6DDPoCxhzUQdRh2EFfYFjLuog6jCMoIu5qIOoQ+NBF3NRB1GHYZzQ bxXzsVHfbgroZdT3JHndGgj6wZ5N8rEv4apR3+mkDr2M+v4k9zupI+gHvzHeTnKvqE88qYs69POk 7vY7gi7qog6iDgMLuqiLOog6DCTooi7qIOowoD/9KuqiDqKOoIu6qAOijqCLuqgDoo6gi7qoA6KO oIu6qIOow2EDf2OIuqiDqCPooi7qgKgj6KIu6oCoI+iiLuqAqCPooi7qIOoIuqiLOgCCLuqiDmyY rusOS3JrkjOsgaCLuqhD2zH/sjUQdFEXdWg35reIOYIu6qIO7cf8TGsg6KIu6iDmCLqoI+owh5hX khvFHEEXdVGH9mN+tjUQdFEXdWg75udYA0EXdVEHMUfQEXVRhznF/AYxR9BFXdSh/Zh/1RoIuqiL Oog5CLqoizrMKebXizmCLuqiDu3GPEmuSXKuNRB0URd1aDfm1yY53xoIuqiLOrR9MhdzBF3URR0a j/kF1kDQRV3UQcxB0EVd1GFOMb9azBF0URd1aD/mF1oDQRd1UYd2Y36VmCPooi7q0H7ML7IGgi7q og7tulzMEXRRF3Vo+3R+eZJLLIGgi7qog5iDoIu6qMOcYv5tMUfQRV3Uof2YX2oJBF3URV3UaTfm 3xJzBF3UEXXaj/k3LYGgizqijpiDoIu6qMOcYn6ZmCPoiLqo03bML05ymSUQdERd1Gk75ldYAkFH 1EWddmP+DTFH0BF1Uaf9mH/HEgg6oi7qiDkIuqiLuqgzp5h/XcwRdNYb9fuS7LPG2KhvNwVbeDK/ 0hIze330D4LOKOpvJdntpD426jud1NmCmF/kZL7mmD+Q5P4ke80h6Bx8Unf7ffJJXdTZrJifn+Qq S6wt5lW1v6oOjMIu6oKOqIs6c435eUmutcTaY/6Ja5eoCzqiLurMPebXWWJmez8dc1EXdERd1HEy by/me1aLuagLOqIu6sw75mWNjYm5qAs6oi7qbHXMvybma/JqxtxmF3VBR9RFnXnG/Doxn9lvkzw0 CvRar12iLuiIuqizKTE/V8zXHPPvryfmoi7oiLqos5kxv17Mty7moi7oiLqos9ExP1vM5xNzURd0 RF3U2aiYfyXJjWI+s99sdMxFXdARdVFnI2J+k+vdmmL+8GbEXNQFHVEXdcR8a7yyWSdzURd0RF3U EfOt8cvRybzbwmuXqAs6oi7qTIz5WWK+5pj/cCtjLuqCjqiLOrPE/GbXt5m9PK+Yi7qgI+qijphv XMx/NM+Yi7qgI+qizqdjfkbcZm8y5qIu6Ii6qLMc89OT3JrkcGvM5Bd9i7moCzqiLupifnqS28S8 /ZiLuqAj6qIu5mI+m5dGMW/h2iXqgo6oi/qCxPw0MV+TF5M82kLMRV3QEXVRX6yY3y7ms8e8qp5o KeaiLuiIuqiLOQd7oaqeaPzaJeqCjqiL+gBj7jb72mL+44Fcu0Rd0BF1UR9IzLePYr7NGosVc1EX dERd1IcT81OS7BDzmT0/tJiLuqAj6qI+jJjvTHKENWaO+ZMDv3aJuqAj6qIu5oP23NBjLuqCjqiL upgvQsyfWrBrl6gLOqIu6j2P+RfFfE2eWbSYi7qgI+qi3kbM7xDzmf2kqp5Z8GuXqAs6oi7qTubN x/ynZhB1QUfURb1PMT95FPMjrSHmoi7oiLqotxnzE8V8TZ4Wc1EXdERd1PsY8zuTHGWNmWP+rBlE XdARdVEX83Y9JeaiLuiIuqj3LeZfEPM1eaKqnjODqAs6oi7qYt6ux6vqRTOIuqAj6qLex5gfbY2Z Y/4zM4i6oCPqoi7m7XpMzEVd0NnsqN+XZJ81Vo367V3XHWOKFTE/QczX5NGq+rkZNjzqe5K8Lujw nzfGW0l2O6mv6qmqet8MB8X8c1n6c65iPnvMXzLDply79ie5f4gndUHnUE/qbr8f7DGnqlVjvivJ Z6wh5j06qQ/u9rugI+piLuZiLuqCDqIu5mIu5qIu6Ii6mA815p8V89nnSvKImIu6oCPqYt7HmN8l 5jPH/AdV9StTiLqgI+piLuZijqinfBnZpAv79iw9DnPbQP8Xfd65esx3JTnWGjPF/OGqesUUvXsd Hz761TZBh0+8MU4ZRf0IJ/PBf62PH53Mj7PGTDF/pKp+bQo2klvubN53i8O8/S7mK2N+3OhkLuaz n8zFHCd0nNTFvHcxvyvJ8daYOeZusyPoiLqYi7mYg6Aj6mK+sTHfleS/rDHVgSQPVdWrpkDQEXUx F/N2Y/5gVb1mCgQdURdzMRdzmMpPubP130W28dPvYr4y5seKuZjjhA4tndTFfPWY3yXmM8d8T1X9 zhQ4oeOkLuZ9ivkxSe4UczHHCR1aOamL+eox35Xk89aYan+WbrOLOYKOqM8x6mIu5oca8z1VtdcU CDoCMr+oi7mYH4p9SR6oqjdMgaDD/KIu5mJ+qDG/v6p+bwrmzQ/F0a/vMLf2B+XEfGXMj87SD8CJ uZjjhA5NnNTFfPWY70pygjVmivl9VfWmKRB0mF/UxVzMxZzBccud/n63uTm338V8ZcyPSnKHmIs5 gg6tRF3MV8b8yCx9Zn6iNcQcQYcWoi7mYi7mDPtaaQIaCtB6P1MX8/ExP8kaM8X83qp6yxQIOswv 6mIu5ofioyS7q+qPpqDv3HKnre9A13b7XcxXj/kdYi7mOKFDKyd1MR8f85OtIeYIOrQQdTEXczFn 4bjlTrvfja5++13MV8Z8W5LbxVzMcUKHFk7qO5I8Learxnxnku3WmCnm91TVn0yBoMP8wnVMVb1v iYM2OWIU81OsMdUHo5P5n02BoAN9O5nvSHKqNab6cBRzJ3MEHRDzhk/md1fVX02BoANiLuYg6ICY z8H7WfoBODFnMPzaGgwn5reLuZjjhA60H/MvWWOmmN9dVX8zBU7oQJ9ifniSW8RczEHQod2YH5bk 1iRnWEPMwS13aDfmt4n5TN7L0mfmYs6gbTMBOJkPPOZ3V9XfTYETOtDHmH/ZGlP9axTzf5qCReAz dGgr5reIuZiDEzq0H/MzrSHmIOgg5mIOA+WWO/Q75pXkRjEXc5jGT7lD/2N+tjVmivn3quodU7Co 3HKHfsf8HGuIOQg6iPnQvZOl2+xizsJzyx36F/MbxHwm/xjF/F1TgBM69DHmX7WGmIOgg5iLOSwg t9yhHzG/Xsxn8vdRzN8zBRzM76HDfGOeJNckOdcaYg6Hwi13mG/Mr01yvjXEHJzQoe2TuZiLOTih Q+Mxv8AaYg6CDmI+dH9Jck9VfWAKmM4td9jamF8t5mIOTujQfswvtIaYgxM6tBvzq8RczMEJHdqP +UXWmOrPSXaLOayPvxQHm+tyMZ855vdU1YemACd06Nvp/PIkl1hCzEHQQczFHJiJH4qDjY/5t8Vc zMEJHdqP+aWWmOoPSe6tqo9MAU7o0LeYf0vMxRyc0KH9mH/TElO9PYr5x6YAQQcxF3PgU9xyh0OL +WViLuYg6NB2zC9OcpklxBz6wC13WH/Mr7DEVG8luU/MwQkd+hjzb4i5mIMTOrQf8+9YYqo3kjxQ VftMAYIOYi7mwIw8bQ1mi/nXxXzmmN9fLine truncated
|
||||
id="image925"
|
||||
x="20"
|
||||
y="20" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -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="svg927"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
sodipodi:docname="random-on.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata933">
|
||||
<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="defs931" />
|
||||
<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="namedview929"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.44250002"
|
||||
inkscape:cx="195.09291"
|
||||
inkscape:cy="266.66666"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg927"
|
||||
inkscape:pagecheckerboard="true" />
|
||||
<image
|
||||
width="200"
|
||||
height="200"
|
||||
preserveAspectRatio="none"
|
||||
style="image-rendering:optimizeQuality"
|
||||
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9 kT1Iw1AUhU9TpSIVBzuodMhQnSyIijhqFYpQIdQKrTqYvPQPmjQkKS6OgmvBwZ/FqoOLs64OroIg +APi4uqk6CIl3pcUWsR44fE+zrvn8N59gNCoMM3qGgc03TbTyYSYza2KoVeEISCAIURlZhlzkpSC b33dUyfVXZxn+ff9WX1q3mJAQCSeZYZpE28QT2/aBud94ggrySrxOfGYSRckfuS64vEb56LLAs+M mJn0PHGEWCx2sNLBrGRqxFPEMVXTKV/Ieqxy3uKsVWqsdU/+wnBeX1nmOq0okljEEiSIUFBDGRXY iNOuk2IhTecJH/+w65fIpZCrDEaOBVShQXb94H/we7ZWYXLCSwongO4Xx/kYAUK7QLPuON/HjtM8 AYLPwJXe9lcbwMwn6fW2FjsC+reBi+u2puwBlzvA4JMhm7IrBWkJhQLwfkbflAMGboHeNW9urXOc PgAZmlXqBjg4BEaLlL3u8+6ezrn929Oa3w8RbnKABi2j6gAAAAZiS0dEAFEAUQBRjSJ44QAAAAlw SFlzAAAN1wAADdcBQiibeAAAAAd0SU1FB+MMAgEaLLDKGgkAACAASURBVHja7d33v2x1fe/x94ci Cmo0MTHGJJrElGtiqrkpKHqkFwHp0kVBuoqiSAsWIIAoovQmCohUlQOIdI0+zI2JqZpmNMVEE8u1 UT2s+8OefRXPnrLP2WWtNc/n48EfwHtm1ut8Z8/MSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA+qBMsHaaptkwyTVJzqyquy0CrXuNPibJ9Um2swYThbGqk21cx0O31jFfmWTbJCubpllh FWjdxfmhJDsPXqvQW4K+9jGfjfiGog6iDoLe7ZhH1EHUQdD7EXNRB1EHQe9JzEUdRB0EvScxF3UQ dRD0nsRc1EHUQdB7EnNRB1EHQe9JzEUdRB0EvScxF3UQdRD0nsRc1EHUQdB7EnNRB1EHQe9JzEUd RB0EvScxF3UQdRD0nsRc1EHUQdB7EnNRB1EHQe9JzEUdRB0EvScxF3UQdRD0nsRc1EHUQdB7EnNR B1EHQe9JzEUdRB0EvScxF3UQdRD0nsRc1EHUQdB7EnNRB1EHQe9JzEUdRB2mO+g9irmog6jDdAa9 hzEXdRB1mK6g9zjmog6iDtMR9CmIuaiDqEO/gz5FMRd1EHXoZ9CnMOaiDqIO/Qr6FMdc1EHUoR9B F3NRB1GHjgddzEUdRB36cUK/TsznjPpNTdNsYgpoZdR3TfIRayDoj3Zykm97CFezUZJbndShlVF/ IMkOTuoI+qNfGJ9IsrWoDz2pe/sd2ntS9/Y7gi7qog6iDj0LuqiLOog69CTooi7qIOrQo59+FXVR B1FH0EVd1AFRR9BFXdQBUUfQRV3UAVFH0EVd1EHUYZ2evzBEXdRB1BF0URd1QNQRdFEXdUDUEXRR F3VA1BF0URd1EHUEXdRFHQBBF3VRBxZM0zSPSXJdku2sgaCLuqhDd2N+bZIXWwNBF3VRh+7G/Jok 21sDQRd1UYduxnz9JB9IsoM1EHRRF3XobsyvSbKjNRB0URd16GbM103yXjFH0EVd1KHbMX9fkj2s gaCLuqhDt0/mL7UGgi7qog7djfnlSfa0BoIu6qIO3Y35e5LsZQ0EXdRFHbod872tgaCLuqhDd2N+ mZgj6KIu6tDdmK+T5NIk+1gDQRd1UYduxrySnJdkX2sg6KIu6tDtmB9kDQRd1EUduhvzc5O80hoI uqiLOnQ35uckOdgaCLqoizp0N+bvTnKINRB0URd16G7M35XkUGsg6KIu6tDdmJ+d5DBrIOiiLurQ 3Zi/M8nh1kDQRV3UobsxPyvJEdZA0EVd1KG7Tk1ypBkQdFEXdeju6fzUJG+wBIIu6qIO3Y35KUmO sQSCLuqiDt2N+clJ3mgJBF3URR26G/O3JjnWEgi6qIu6qNPdmL8lyXGWQNBFHVGnuzF/c5LjLYGg izqiTndj/qYkJ1gCQRd1URd1uhvzk5KcaAla1xgTLMsFYeMktyZ5gjVWc1+S7arqblPQwtfu65Oc ZoneH7462UYndCd1J3WYLOZHizmCjqiLOt2O+euSnG4JBB1RF3W6G/PXJjnDEgg6oi7qdDfmRyV5 myUQdERd1OluzF+T5ExLIOisSdS3S/Jda8wZ9ZuaptnEFCzhyfztlpjYRwb/IegMov6xJFs6qc9p oyS3OqmzBDF/lZP5vGP+kiQ7JFlpjmVsiAlaeUHxPfXhfE+dxXztHZTkfNfGid2aZKeqemCw32OS XJ+Zdxu7fLjyPXQW7Mnkb+rD+Zs6ixXzA8V8zWM+uHY9lGRnJ3VBR9RFneWM+QViPrFbkrzkB2Mu 6oKOqIs6yx3zVziZz8vNg5P5gyOuXaIu6Ii6qLOkMX/54GTuWjiZlUl2HhVzURd0RF3UWeqYH5Dk QtfBiV0/7mQu6oKOqIs6Sx3zlyW5yDVwYtcleWlVPbwG1y5RF3REXdRZlJjvn+Ri17+JXbumMRd1 QUfURZ3Fivl+SS5x7ZvYNUn2rKrvLcC1S9QXuw8m6OyFyY/PDOfHZ5jrNbN7kiuTrGuNiWO+10LE /Iceh9b/+IwflsFJ3Umd9sZ8tyRXiPnEPrAYMXdSF3REXdRZ25hfmWQ9a0zk6iR7L0bMRV3QEXVR Z01jvquYz8v7Fzvmoi7oiLqoM9+Y75LkKjGf2GWDmK9awmuXqAs6oi7qjIz5zoPTpphP5tIkr6iq R5bh2iXqgo6oizpzxnwnMZ+XS5IcuBwxF3VBR9RFnVExvzrJ+taYyMVJDlrOmIv6Am5ogt5e2HxP fTjfU+/nc36bJDck2cAaE7koycFtiPkPPY7L/j1130PHSd1JneWLwNZiPi8XtjHmTuqCjqiLupjf KOYTu6CtMRd1QUfURX16Y76Vk/m8nJ/kkKpqOnDtEnVBR9RFfUpivuXgZP5Ya0zkrCSHdiHmor6G e5lgqi6APig3nA/Kdeu5vEWSD4n5xN5RVUd1+PFe0g/K+VAcTupO6izNxX1zMZ+Xt3c55k7qgo6o i7qYk5xZVa/tybVL1MdtZIKpvTB6+304b7+38zm7SZJbkmxkjYm8raqO7uHzYNHffveWO07qTuos 3kX8+UluFvOJndHHmDupCzqiLurdjvnzBifzx1tjIqdX1et7fu0SdUFH1EW9gzG/VcwndlpVvWFK rl2iLuiIuqh3JOYbO5nPO+bHTNm1S9QFHVEX9ZbH/A/jQ5vzcdK0xVzUBR1RF/VuxPwjYj6xP6qq N035tUvUBR1RF/WWxfwPnMzn5cSqerMZRF3QEXVRb1PMf39wMn+iNSZyQlW9xQyi/v///z0FGHGB 9eMzw/nxmYV9rv12kjuSPNkaEzm+qk42w9Dn01r9+IwflsFJ3UmdNY/57WI+sePE3Eld0BF1UW9b zH9rEPMftcZEjq2qU8wg6nP+P3vYmfDC6+334bz9vmbPqd9McqeYTzZXkqOq6ixTzPt5Nu+3373l jpO6k7qT+vxifoeYTxzz14i5k7qgI+qi3raY/8Yg5j9mjYli/uqqeqcpRF3QEXVRF/PuxvzIqjrb FKI+0f+jh5k1vDC7N/Vw30nyrKr6iike9Zz59cz8zfwp1pgo5odW1fmmWPDn4WOT3JhkqxHx9zd0 pupfux9LsqWT+pwX4mPEfLWL6K8kuU3MJ34OHS7mi3bteiDJDn08qQs6a/PC8Pb76hfiI6rqHFOs FvO7k/ykNSaO+bmmWNRrVy/ffhd0RF3MFzPmv5zkLjGf+Dl0mJiLuqAj6mLexpjfneRp1pjoOXRo VZ1nClFf4/8fDykLeAGfxh+fEfO5nwu/NIj5T1ljrEeSHFBVl5ti2Z6vj/rxGR+Kw792p++kLuZi vrZWibmTuqAj6mLexpj/opiLuagv0/+Dh5FFurD3+XvqviM8OuZPt8ZEMd+3qq4yReuex48dfLVN 0OEHXhh9/Ju6k/ncj/Uzk9yT5BnWmCjm+1fVFaZA0BF1MW/TY/yMQcyfaY2JYr5fVV1pCgQdURfz Nj22P5vkXjGfOObeZkfQEXUxb2XM70nyc9aYKOb7VNX7TYGgI+pi3raY353k560x1sNJ9qiqG0yB oCPqYt6mx/BnBidzMZ8s5rtX1Y2mYLH5HjpL+y/I7nxPXcyHx9zJfDIPJdlNzHFCx0ldzNv2mP30 4GT+C9aYOOYfMgWCjqiLedtifneSZ1ljopjvWlUfNgWCjqiLeZseo6cOYv6/rCHmtJe/obO8/6Js z9/UxXx4zO8S84k8mGQXMccJHSf15Tupi/nomD/bGhPHfKUpEHQEZHmiLuZzPxY/MYj5r1pjrPuT 7FBVt5sCQYflibqYi/naum8Q8ztMgaDD8kRdzOfe/scHMf81a0wU8+2r6k5TIOiwPFEX8+ExvzPJ c6wxUcxfXFV3mQJBh+WJupiLuZjTS762Rnv/tbnwX2kT87lj/uTBP5zEfLzvJtlOzHFCh+U7qYv5 3Ns+KckdSX7HGhPH/B5T4IQOy3NSF/PhMb9dzMUcJ3TowkldzIfH/KNJftcaE8V826q61xQIOixP 1MV87g1/ZHAyF/Pxvplkq6r6lCloO2+5061/gU7+9ruYD4+5k7mY44QOnTipi/nwmN+W5PesMVHM t6yqPzUFwBJEvWmabzWP9kjTNIdZZ7Wtntg0zacaJvGNpmn+t2cNwPJFXczn3mijpmnu1WkxB+hC 1L8p5mK+ADH32QI6y9/Q6Uu4nlpVX7HELine truncated
|
||||
id="image935"
|
||||
x="20"
|
||||
y="20" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_repeat_48px-off.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="1.2291667"
|
||||
inkscape:cx="-133.946"
|
||||
inkscape:cy="65.022819"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="m 70,70 h 100 v 30 L 210,60 170,20 V 50 H 50 v 60 H 70 Z M 170,170 H 70 v -30 l -40,40 40,40 v -30 h 120 v -60 h -20 z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:5;fill:#ffffff;fill-opacity:0.40000001" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_repeat_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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="1.2291667"
|
||||
inkscape:cx="-133.946"
|
||||
inkscape:cy="65.022819"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="m 70,70 h 100 v 30 L 210,60 170,20 V 50 H 50 v 60 H 70 Z M 170,170 H 70 v -30 l -40,40 40,40 v -30 h 120 v -60 h -20 z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:5;fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 421 KiB |
@@ -0,0 +1,73 @@
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local dpi = require('beautiful').xresources.apply_dpi
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
|
||||
local clickable_container = require('widget.clickable-container')
|
||||
local music_box = require('widget.mpd.music-box')
|
||||
local toggle_music_box = music_box.toggle_music_box
|
||||
|
||||
local return_button = function()
|
||||
local widget = wibox.widget {
|
||||
{
|
||||
id = 'icon',
|
||||
image = widget_icon_dir .. 'music.svg',
|
||||
widget = wibox.widget.imagebox,
|
||||
resize = true
|
||||
},
|
||||
layout = wibox.layout.align.horizontal
|
||||
}
|
||||
|
||||
local widget_button = wibox.widget {
|
||||
{
|
||||
widget,
|
||||
margins = dpi(7),
|
||||
widget = wibox.container.margin
|
||||
},
|
||||
widget = clickable_container
|
||||
}
|
||||
|
||||
local music_tooltip = awful.tooltip
|
||||
{
|
||||
objects = {widget_button},
|
||||
text = 'None',
|
||||
mode = 'outside',
|
||||
margin_leftright = dpi(8),
|
||||
margin_topbottom = dpi(8),
|
||||
align = 'right',
|
||||
preferred_positions = {'right', 'left', 'top', 'bottom'}
|
||||
}
|
||||
|
||||
widget_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
music_tooltip.visible = false
|
||||
awesome.emit_signal('widget::music', 'mouse')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
widget_button:connect_signal(
|
||||
"mouse::enter",
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'mpc status',
|
||||
function(stdout)
|
||||
music_tooltip.text = string.gsub(stdout, '\n$', '')
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
return widget_button
|
||||
|
||||
end
|
||||
|
||||
return return_button
|
||||
@@ -0,0 +1,460 @@
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/mpd/icons/'
|
||||
local ui_content = require('widget.mpd.content')
|
||||
|
||||
local album_cover = ui_content.album_cover
|
||||
local prog_bar = ui_content.progress_bar
|
||||
local track_time = ui_content.track_time
|
||||
local song_info = ui_content.song_info
|
||||
local vol_slider = ui_content.volume_slider
|
||||
local media_buttons = ui_content.media_buttons
|
||||
|
||||
local apps = require('configuration.apps')
|
||||
|
||||
local update_cover = function()
|
||||
|
||||
local extract_script = [=[
|
||||
MUSIC_DIR="$(xdg-user-dir MUSIC)"
|
||||
TMP_DIR="/tmp/awesomewm/${USER}/"
|
||||
TMP_COVER_PATH=${TMP_DIR}"cover.jpg"
|
||||
TMP_SONG="${TMP_DIR}current-song"
|
||||
|
||||
CHECK_EXIFTOOL=$(command -v exiftool)
|
||||
|
||||
if [ ! -d "${TMP_DIR}" ]; then
|
||||
mkdir -p "${TMP_DIR}";
|
||||
fi
|
||||
|
||||
if [ ! -z "$CHECK_EXIFTOOL" ]; then
|
||||
|
||||
SONG="$MUSIC_DIR/$(mpc -p 6600 --format "%file%" current)"
|
||||
PICTURE_TAG="-Picture"
|
||||
|
||||
if [[ "$SONG" == *".m4a" ]]; then
|
||||
PICTURE_TAG="-CoverArt"
|
||||
fi
|
||||
|
||||
# Extract album cover using perl-image-exiftool
|
||||
exiftool -b "$PICTURE_TAG" "$SONG" > "$TMP_COVER_PATH"
|
||||
|
||||
else
|
||||
|
||||
#Extract image using ffmpeg
|
||||
cp "$MUSIC_DIR/$(mpc --format %file% current)" "$TMP_SONG"
|
||||
|
||||
ffmpeg \
|
||||
-hide_banner \
|
||||
-loglevel 0 \
|
||||
-y \
|
||||
-i "$TMP_SONG" \
|
||||
-vf scale=300:-1 \
|
||||
"$TMP_COVER_PATH" > /dev/null 2>&1
|
||||
|
||||
rm "$TMP_SONG"
|
||||
fi
|
||||
|
||||
img_data=$(identify $TMP_COVER_PATH 2>&1)
|
||||
|
||||
# Delete the cover.jpg if it's not a valid image
|
||||
if [[ $img_data == *"insufficient"* ]]; then
|
||||
rm $TMP_COVER_PATH
|
||||
fi
|
||||
|
||||
if [ -f $TMP_COVER_PATH ]; then
|
||||
echo $TMP_COVER_PATH;
|
||||
fi
|
||||
]=]
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
extract_script,
|
||||
function(stdout)
|
||||
local album_icon = widget_icon_dir .. 'vinyl.svg'
|
||||
|
||||
if not (stdout == nil or stdout == '') then
|
||||
album_icon = stdout:gsub('%\n', '')
|
||||
end
|
||||
|
||||
album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
|
||||
|
||||
album_cover:emit_signal('widget::redraw_needed')
|
||||
album_cover:emit_signal('widget::layout_changed')
|
||||
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local update_progress_bar = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc status | awk 'NR==2 { split($4, a); print a[1]}' | tr -d '[\%\(\)]'
|
||||
]],
|
||||
function(stdout)
|
||||
local progress_bar = prog_bar.music_bar
|
||||
if stdout ~= nil then
|
||||
progress_bar:set_value(tonumber(stdout))
|
||||
else
|
||||
progress_bar:set_value(0)
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local update_time_progress = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc status | awk 'NR==2 { split($3, a, "/"); print a[1]}' | tr -d '[\%\(\)]'
|
||||
]],
|
||||
function(stdout)
|
||||
local time_status = track_time.time_status
|
||||
if stdout ~= nil then
|
||||
time_status:set_text(tostring(stdout))
|
||||
else
|
||||
time_status:set_text('00:00')
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
local update_time_duration = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc --format %time% current
|
||||
]],
|
||||
function(stdout)
|
||||
local time_duration = track_time.time_duration
|
||||
if stdout ~= nil then
|
||||
time_duration:set_text(tostring(stdout))
|
||||
else
|
||||
time_duration:set_text('99:59')
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local update_file = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc -f %file% current
|
||||
]],
|
||||
function(stdout)
|
||||
file_name = stdout:gsub('%\n','')
|
||||
end
|
||||
)
|
||||
return file_name
|
||||
end
|
||||
|
||||
local update_title = function()
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc -f %title% current
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
-- Remove new lines
|
||||
local title = stdout:gsub('%\n', '')
|
||||
|
||||
local title_widget = song_info.music_title
|
||||
local title_text = song_info.music_title:get_children_by_id('title')[1]
|
||||
|
||||
-- Make sure it's not null
|
||||
if not (title == nil or title == '') then
|
||||
title_text:set_text(title)
|
||||
else
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc -f %file% current
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
if not (stdout == nil or stdout == '') then
|
||||
|
||||
file_name = stdout:gsub('%\n','')
|
||||
|
||||
file_name = file_name:sub(1, title:len() - 5) .. ''
|
||||
|
||||
title_text:set_text(file_name)
|
||||
|
||||
else
|
||||
-- Set title
|
||||
title_text:set_text('Play some music!')
|
||||
|
||||
end
|
||||
title_widget:emit_signal('widget::redraw_needed')
|
||||
title_widget:emit_signal('widget::layout_changed')
|
||||
end
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
title_widget:emit_signal('widget::redraw_needed')
|
||||
title_widget:emit_signal('widget::layout_changed')
|
||||
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local update_artist = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc -f %artist% current
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
-- Remove new lines
|
||||
local artist = stdout:gsub('%\n', '')
|
||||
|
||||
local artist_widget = song_info.music_artist
|
||||
|
||||
local artist_text = artist_widget:get_children_by_id('artist')[1]
|
||||
|
||||
if not (artist == nil or artist == '') then
|
||||
|
||||
artist_text:set_text(artist)
|
||||
|
||||
else
|
||||
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc -f %file% current
|
||||
]],
|
||||
function(stdout)
|
||||
if not (stdout == nil or stdout == '') then
|
||||
|
||||
artist_text:set_text('unknown artist')
|
||||
|
||||
else
|
||||
artist_text:set_text('or play some porn?')
|
||||
|
||||
end
|
||||
artist_widget:emit_signal('widget::redraw_needed')
|
||||
artist_widget:emit_signal('widget::layout_changed')
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
artist_widget:emit_signal('widget::redraw_needed')
|
||||
artist_widget:emit_signal('widget::layout_changed')
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local update_volume_slider = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc volume
|
||||
]],
|
||||
function(stdout)
|
||||
local volume_slider = vol_slider.vol_slider
|
||||
if stdout:match('n/a') then
|
||||
return
|
||||
end
|
||||
volume_slider:set_value(tonumber(stdout:match('%d+')))
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local check_if_playing = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc status | awk 'NR==2' | grep -o playing
|
||||
]],
|
||||
function(stdout)
|
||||
local play_button_img = media_buttons.play_button_image.play
|
||||
if not (stdout == nil or stdout == '') then
|
||||
play_button_img:set_image(widget_icon_dir .. 'pause.svg')
|
||||
update_volume_slider()
|
||||
else
|
||||
play_button_img:set_image(widget_icon_dir .. 'play.svg')
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local check_repeat_status = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc status | sed -n '/random/p' | cut -c23-24 | sed 's/^[ \t]*//'
|
||||
]],
|
||||
function(stdout)
|
||||
local repeat_button_img = media_buttons.repeat_button_image.rep
|
||||
if stdout:match('on') then
|
||||
repeat_button_img:set_image(widget_icon_dir .. 'repeat-on.svg')
|
||||
else
|
||||
repeat_button_img:set_image(widget_icon_dir .. 'repeat-off.svg')
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
local check_random_status = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
mpc status | sed -n '/random/p' | cut -c37-38 | sed 's/^[ \t]*//'
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
local random_button_image = media_buttons.random_button_image.rand
|
||||
|
||||
if stdout:match("on") then
|
||||
random_button_image:set_image(widget_icon_dir .. 'random-on.svg')
|
||||
else
|
||||
random_button_image:set_image(widget_icon_dir .. 'random-off.svg')
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
vol_slider.vol_slider:connect_signal(
|
||||
'property::value',
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'mpc volume ' .. vol_slider.vol_slider:get_value(),
|
||||
function() end
|
||||
)
|
||||
end
|
||||
)
|
||||
|
||||
local update_all_content = function()
|
||||
update_progress_bar()
|
||||
update_time_progress()
|
||||
update_time_duration()
|
||||
update_title()
|
||||
update_artist()
|
||||
update_cover()
|
||||
check_if_playing()
|
||||
check_repeat_status()
|
||||
check_random_status()
|
||||
update_volume_slider()
|
||||
end
|
||||
|
||||
-- Update progress bar and time every N seconds
|
||||
gears.timer.start_new(
|
||||
10,
|
||||
function()
|
||||
update_progress_bar()
|
||||
update_time_progress()
|
||||
return true
|
||||
end
|
||||
)
|
||||
|
||||
local mpd_startup = [[
|
||||
# Let's make sure that MPD is running.
|
||||
if [ -z $(pgrep mpd) ]; then mpd; fi
|
||||
]]
|
||||
|
||||
local mpd_change_event_listener = [[
|
||||
sh -c '
|
||||
mpc idleloop player
|
||||
'
|
||||
]]
|
||||
|
||||
local kill_mpd_change_event_listener = [[
|
||||
ps x |
|
||||
grep "mpc idleloop player" |
|
||||
grep -v grep |
|
||||
awk '{print $1}' |
|
||||
xargs kill
|
||||
]]
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
mpd_startup,
|
||||
function ()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
kill_mpd_change_event_listener,
|
||||
function ()
|
||||
update_all_content()
|
||||
awful.spawn.with_line_callback(
|
||||
mpd_change_event_listener,
|
||||
{
|
||||
stdout = function(line)
|
||||
update_all_content()
|
||||
end
|
||||
}
|
||||
)
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
|
||||
media_buttons.play_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.with_shell('mpc toggle')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
media_buttons.next_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.with_shell('mpc next')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
media_buttons.prev_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.with_shell('mpc prev')
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
media_buttons.repeat_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'mpc repeat',
|
||||
function ()
|
||||
check_repeat_status()
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
media_buttons.random_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
'mpc random',
|
||||
function ()
|
||||
check_random_status()
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,158 @@
|
||||
local awful = require('awful')
|
||||
local wibox = require('wibox')
|
||||
local gears = require('gears')
|
||||
local beautiful = require('beautiful')
|
||||
local dpi = beautiful.xresources.apply_dpi
|
||||
local music_func = {}
|
||||
|
||||
screen.connect_signal('request::desktop_decoration', function(s)
|
||||
|
||||
-- Set music box geometry
|
||||
local music_box_margin = dpi(5)
|
||||
local music_box_height = dpi(375)
|
||||
local music_box_width = dpi(260)
|
||||
local music_box_x = nil
|
||||
|
||||
|
||||
s.musicpop = awful.popup {
|
||||
widget = {
|
||||
-- Removing this block will cause an error...
|
||||
},
|
||||
ontop = true,
|
||||
visible = false,
|
||||
type = 'dock',
|
||||
screen = s,
|
||||
width = music_box_width,
|
||||
height = music_box_height,
|
||||
maximum_width = music_box_width,
|
||||
maximum_height = music_box_height,
|
||||
offset = dpi(5),
|
||||
shape = gears.shape.rectangle,
|
||||
bg = beautiful.transparent,
|
||||
preferred_anchors = {'middle', 'back', 'front'},
|
||||
preferred_positions = {'left', 'right', 'top', 'bottom'},
|
||||
|
||||
}
|
||||
|
||||
local ui_content = require('widget.mpd.content')
|
||||
|
||||
s.album = ui_content.album_cover
|
||||
s.progress_bar = ui_content.progress_bar
|
||||
s.time_track = ui_content.track_time.time_track
|
||||
s.song_info = ui_content.song_info.music_info
|
||||
s.media_buttons = ui_content.media_buttons.navigate_buttons
|
||||
s.volume_slider = ui_content.volume_slider.vol_slider
|
||||
|
||||
s.musicpop : setup {
|
||||
{
|
||||
{
|
||||
layout = wibox.layout.fixed.vertical,
|
||||
expand = 'none',
|
||||
spacing = dpi(8),
|
||||
{
|
||||
s.album,
|
||||
bottom = dpi(5),
|
||||
widget = wibox.container.margin,
|
||||
},
|
||||
{
|
||||
layout = wibox.layout.fixed.vertical,
|
||||
{
|
||||
spacing = dpi(4),
|
||||
layout = wibox.layout.fixed.vertical,
|
||||
s.progress_bar,
|
||||
s.time_track,
|
||||
},
|
||||
s.song_info,
|
||||
s.media_buttons,
|
||||
s.volume_slider,
|
||||
},
|
||||
},
|
||||
top = dpi(15),
|
||||
left = dpi(15),
|
||||
right = dpi(15),
|
||||
widget = wibox.container.margin
|
||||
|
||||
},
|
||||
bg = beautiful.background,
|
||||
shape = function(cr, width, height)
|
||||
gears.shape.partially_rounded_rect(
|
||||
cr, width, height, true, true, true, true, beautiful.groups_radius
|
||||
)
|
||||
end,
|
||||
widget = wibox.container.background()
|
||||
}
|
||||
|
||||
s.backdrop_music = wibox {
|
||||
ontop = true,
|
||||
visible = false,
|
||||
screen = s,
|
||||
type = 'utility',
|
||||
input_passthrough = false,
|
||||
bg = beautiful.transparent,
|
||||
x = s.geometry.x,
|
||||
y = s.geometry.y,
|
||||
width = s.geometry.width,
|
||||
height = s.geometry.height
|
||||
}
|
||||
|
||||
local toggle_music_box = function(type)
|
||||
|
||||
local focused = awful.screen.focused()
|
||||
local music_box = focused.musicpop
|
||||
local music_backdrop = focused.backdrop_music
|
||||
|
||||
if music_box.visible then
|
||||
music_backdrop.visible = not music_backdrop.visible
|
||||
music_box.visible = not music_box.visible
|
||||
|
||||
else
|
||||
|
||||
if type == 'keyboard' then
|
||||
music_backdrop.visible = true
|
||||
music_box.visible = true
|
||||
awful.placement.top_right(
|
||||
music_box,
|
||||
{
|
||||
margins = {
|
||||
top = dpi(5),
|
||||
right = dpi(music_box_x or 5)
|
||||
},
|
||||
honor_workarea = true
|
||||
})
|
||||
else
|
||||
local widget_button = mouse.current_widget_geometry
|
||||
|
||||
music_backdrop.visible = true
|
||||
music_box:move_next_to(widget_button)
|
||||
music_box_x = (focused.geometry.width - music_box.x) - music_box_width
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
awesome.connect_signal(
|
||||
'widget::music',
|
||||
function(type)
|
||||
toggle_music_box(type)
|
||||
end
|
||||
)
|
||||
|
||||
s.backdrop_music:buttons(
|
||||
awful.util.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
toggle_music_box()
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
end)
|
||||
|
||||
|
||||
music_func.toggle_music_box = toggle_music_box
|
||||
|
||||
local mpd_updater = require('widget.mpd.mpd-music-updater')
|
||||
|
||||
return music_func
|
||||
@@ -0,0 +1,324 @@
|
||||
local gears = require('gears')
|
||||
local awful = require('awful')
|
||||
local naughty = require('naughty')
|
||||
|
||||
local config_dir = gears.filesystem.get_configuration_dir()
|
||||
local widget_icon_dir = config_dir .. 'widget/music/icons/'
|
||||
|
||||
local ui_content = require('widget.music.content')
|
||||
|
||||
local album_cover = ui_content.album_cover
|
||||
local prog_bar = ui_content.progress_bar
|
||||
local track_time = ui_content.track_time
|
||||
local song_info = ui_content.song_info
|
||||
local vol_slider = ui_content.volume_slider
|
||||
local media_buttons = ui_content.media_buttons
|
||||
|
||||
-- We can't set/get the data for these
|
||||
-- So let's hide them
|
||||
|
||||
prog_bar.visible = false
|
||||
track_time.time_status.visible = false
|
||||
track_time.time_duration.visible = false
|
||||
media_buttons.repeat_button.visible = false
|
||||
media_buttons.random_button.visible = false
|
||||
|
||||
|
||||
local update_cover = function()
|
||||
local get_art_url = [[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get \
|
||||
string:'org.mpris.MediaPlayer2.Player' string:'Metadata' |
|
||||
egrep -A 1 "artUrl"| egrep -v "artUrl" | awk -F '"' '{print $2}' |
|
||||
sed -e 's/open.spotify.com/i.scdn.co/g'
|
||||
]]
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
get_art_url,
|
||||
function(link)
|
||||
|
||||
local download_art = [[
|
||||
tmp_dir="/tmp/awesomewm/${USER}/"
|
||||
tmp_cover_path=${tmp_dir}"cover.jpg"
|
||||
|
||||
if [ ! -d $tmp_dir ]; then
|
||||
mkdir -p $tmp_dir;
|
||||
fi
|
||||
|
||||
if [ -f $tmp_cover_path]; then
|
||||
rm $tmp_cover_path
|
||||
fi
|
||||
|
||||
wget -O $tmp_cover_path ]] ..link .. [[
|
||||
|
||||
echo $tmp_cover_path
|
||||
]]
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
download_art,
|
||||
function(stdout)
|
||||
|
||||
local album_icon = stdout:gsub('%\n', '')
|
||||
|
||||
album_cover.cover:set_image(gears.surface.load_uncached(album_icon))
|
||||
|
||||
album_cover:emit_signal("widget::redraw_needed")
|
||||
album_cover:emit_signal("widget::layout_changed")
|
||||
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
local update_title = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata' |
|
||||
egrep -A 1 "title" | egrep -v "title" | awk -F '"' '{print $2}'
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
local title = stdout:gsub('%\n', '')
|
||||
|
||||
local title_widget = song_info.music_title
|
||||
|
||||
local title_text = song_info.music_title:get_children_by_id('title')[1]
|
||||
|
||||
title_text:set_text(title)
|
||||
|
||||
title_widget:emit_signal("widget::redraw_needed")
|
||||
title_widget:emit_signal("widget::layout_changed")
|
||||
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
local update_artist = function()
|
||||
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata'|
|
||||
egrep -A 2 "artist" | egrep -v "artist" | egrep -v "array" | awk -F '"' '{print $2}'
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
-- Remove new lines
|
||||
local artist = stdout:gsub('%\n', '')
|
||||
|
||||
if (stdout == nil or stdout == '') then
|
||||
artist = 'Advertisement'
|
||||
end
|
||||
|
||||
local artist_widget = song_info.music_artist
|
||||
|
||||
local artist_text = artist_widget:get_children_by_id('artist')[1]
|
||||
|
||||
artist_text:set_text(artist)
|
||||
|
||||
artist_widget:emit_signal("widget::redraw_needed")
|
||||
artist_widget:emit_signal("widget::layout_changed")
|
||||
|
||||
collectgarbage('collect')
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
local update_volume_slider = function()
|
||||
|
||||
-- Stop. Don't indent.
|
||||
-- It's python. Nuff said
|
||||
local get_volume = [[
|
||||
python - <<END
|
||||
import subprocess
|
||||
import os
|
||||
x=0
|
||||
y=0
|
||||
env = os.environ
|
||||
env['LANG'] = 'en_US'
|
||||
app = '"Spotify"'
|
||||
pactl = subprocess.check_output(['pactl', 'list', 'sink-inputs'], env=env).decode().strip().split()
|
||||
if app in pactl:
|
||||
for e in pactl:
|
||||
x += 1
|
||||
if e == app:
|
||||
break
|
||||
for i in pactl[0 : x -1 ]:
|
||||
y += 1
|
||||
if i == 'Sink' and pactl[y] == 'Input' and '#' in pactl[y + 1]:
|
||||
sink_id = pactl[y+1]
|
||||
if i == 'Volume:' and '%' in pactl[y + 3]:
|
||||
volume = pactl[y + 3]
|
||||
sink_id = sink_id[1: ]
|
||||
volume = volume[ : -1 ]
|
||||
print(volume)
|
||||
END
|
||||
]]
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
get_volume,
|
||||
function(stdout)
|
||||
-- naughty.notification({message=stdout})
|
||||
|
||||
local volume_slider = vol_slider.vol_slider
|
||||
|
||||
volume_slider:set_value(tonumber(stdout:match('%d+')))
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
local check_if_playing = function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'PlaybackStatus' |
|
||||
grep -A 1 "string" | awk -F '"' '{print $2}'
|
||||
]],
|
||||
function(stdout)
|
||||
|
||||
local play_button_img = media_buttons.play_button_image.play
|
||||
|
||||
if stdout:match("Playing") then
|
||||
play_button_img:set_image(widget_icon_dir .. 'pause.svg')
|
||||
update_volume_slider()
|
||||
else
|
||||
play_button_img:set_image(widget_icon_dir .. 'play.svg')
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
local set_spotify_volume = function(value)
|
||||
|
||||
local set_volume = [[
|
||||
python - <<END
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
||||
x=0
|
||||
y=0
|
||||
env = os.environ
|
||||
env['LANG'] = 'en_US'
|
||||
app = '"Spotify"'
|
||||
pactl = subprocess.check_output(['pactl', 'list', 'sink-inputs'], env=env).decode().strip().split()
|
||||
if app in pactl:
|
||||
for e in pactl:
|
||||
x += 1
|
||||
if e == app:
|
||||
break
|
||||
for i in pactl[0 : x -1 ]:
|
||||
y += 1
|
||||
if i == 'Sink' and pactl[y] == 'Input' and '#' in pactl[y + 1]:
|
||||
sink_id = pactl[y+1]
|
||||
sink_id = sink_id[1: ]
|
||||
|
||||
arg = int(]] .. value .. [[)
|
||||
if arg < 0:
|
||||
arg = 0
|
||||
if arg > 100:
|
||||
arg = 100
|
||||
subprocess.run(['pactl', 'set-sink-input-volume', sink_id, str(arg) + '%'])
|
||||
|
||||
END
|
||||
]]
|
||||
|
||||
awful.spawn.easy_async_with_shell(
|
||||
set_volume,
|
||||
function(stdout) end
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
|
||||
vol_slider.vol_slider:connect_signal(
|
||||
'property::value',
|
||||
function()
|
||||
local volume_slider = vol_slider.vol_slider
|
||||
set_spotify_volume(tostring(volume_slider:get_value()))
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
local update_all_content = function()
|
||||
-- Add a delay
|
||||
gears.timer.start_new(2, function()
|
||||
update_title()
|
||||
update_artist()
|
||||
update_cover()
|
||||
check_if_playing()
|
||||
update_volume_slider()
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
update_all_content()
|
||||
|
||||
|
||||
media_buttons.play_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
|
||||
]],
|
||||
function()
|
||||
check_if_playing()
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
media_buttons.next_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
|
||||
]],
|
||||
function()
|
||||
update_all_content()
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
media_buttons.prev_button:buttons(
|
||||
gears.table.join(
|
||||
awful.button(
|
||||
{},
|
||||
1,
|
||||
nil,
|
||||
function()
|
||||
awful.spawn.easy_async_with_shell(
|
||||
[[
|
||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
|
||||
]],
|
||||
function()
|
||||
update_all_content()
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_airplanemode_inactive_48px.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.43457604"
|
||||
inkscape:cx="-392.6819"
|
||||
inkscape:cy="-33.781494"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 135,90 V 35 c 0,-8.3 -6.7,-15 -15,-15 -8.3,0 -15,6.7 -15,15 V 71.8 L 183.25,150.05 215,160 V 140 Z M 35,52.75 84.85,102.6 25,140 v 20 l 80,-25 v 55 l -20,15 v 15 l 35,-10 35,10 V 205 L 135,190 V 152.75 L 192.25,210 205,197.25 47.75,40 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_airplanemode_active_48px.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="0.43457604"
|
||||
inkscape:cx="-51.304834"
|
||||
inkscape:cy="18.788525"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M 120,120"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
<path
|
||||
d="M 215,160 V 140 L 135,90 V 35 c 0,-8.3 -6.7,-15 -15,-15 -8.3,0 -15,6.7 -15,15 v 55 l -80,50 v 20 l 80,-25 v 55 l -20,15 v 15 l 35,-10 35,10 v -15 l -20,-15 v -55 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:5" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,57 @@
|
||||
<?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"
|
||||
width="240"
|
||||
height="240"
|
||||
viewBox="0 0 240 240"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="ic_sync_48px.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<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="defs8" />
|
||||
<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.61458333"
|
||||
inkscape:cx="-276.66458"
|
||||
inkscape:cy="-76.310045"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg4" />
|
||||
<path
|
||||
d="M 120,47.272727 V 20 L 83.636361,56.363636 120,92.72727 V 65.454545 c 30.13636,0 54.54545,24.409095 54.54545,54.545455 0,9.22727 -2.31818,17.86364 -6.31818,25.5 l 13.27272,13.27273 C 188.54545,147.5 192.72727,134.27273 192.72727,120 192.72727,79.818182 160.18181,47.272727 120,47.272727 Z m 0,127.272723 c -30.136366,0 -54.545457,-24.40909 -54.545457,-54.54545 0,-9.22727 2.318182,-17.86364 6.318182,-25.5 L 58.499998,81.227273 C 51.454543,92.5 47.272725,105.72727 47.272725,120 c 0,40.18182 32.545455,72.72727 72.727275,72.72727 V 220 L 156.36363,183.63636 120,147.27273 Z"
|
||||
id="path2"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:4.5454545" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,5 @@
|
||||
<?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" baseProfile="full" width="240" height="240" viewBox="0 0 24.00 24.00" enable-background="new 0 0 24.00 24.00" xml:space="preserve">
|
||||
<path fill="#ffffff" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 2.275,2.9978L 1.00125,4.2675L 2.47125,5.7425C 2.03625,6.01125 1.60625,6.29375 1.20125,6.60125L 2.9975,8.99875C 3.525,8.60375 4.0775,8.2475 4.65875,7.925L 6.885,10.1563C 6.1475,10.4975 5.44375,10.9125 4.8,11.3963L 6.60125,13.7987C 7.3775,13.2175 8.25625,12.7737 9.19875,12.4663L 11.7525,15.02C 10.4975,15.0738 9.34125,15.4937 8.39875,16.2013L 12.0025,21.0012L 14.4575,17.725L 17.735,21.0012L 18.9988,19.7213M 12.0025,2.9978C 9.85375,2.9978 7.8025,3.38354 5.89875,4.0725L 8.29125,6.465C 9.4775,6.1625 10.7175,6.00125 12.0025,6.00125C 15.3763,6.00125 18.4912,7.11375 21.0013,8.99875L 22.8025,6.60125C 19.79,4.34125 16.055,2.9978 12.0025,2.9978 Z M 12.0025,8.99875C 11.6212,8.99875 11.25,9.01875 10.8788,9.0525L 14.0675,12.2463C 15.2925,12.5337 16.4262,13.0662 17.4025,13.7987L 19.1988,11.3963C 17.1975,9.8925 14.7025,8.99875 12.0025,8.99875 Z "/>
|
||||
</svg>
|
||||
@@ -0,0 +1,71 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="wifi-strength-1-alert.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<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="defs12" />
|
||||
<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="namedview10"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="2.4583334"
|
||||
inkscape:cx="72.138642"
|
||||
inkscape:cy="106.67249"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg8" />
|
||||
<g
|
||||
id="g832"
|
||||
transform="matrix(0.23231214,0,0,0.23231214,-3.8774568,-3.8774563)">
|
||||
<path
|
||||
style="fill:none"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path2"
|
||||
d="m 19.79,176.45967 h 26 v 24 h -26 z" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:0.4;stroke-width:7.9459672"
|
||||
id="path4"
|
||||
d="M 209.48294,87.216134 220.21,73.866904 c -3.89352,-2.86055 -42.35201,-34.326578 -100.03973,-34.326578 -57.687723,0 -96.146206,31.466028 -99.96027,34.326578 l 99.88081,124.433846 0.0795,0.15892 0.0795,-0.0795 55.54231,-69.20938 V 87.216094 Z" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:7.9459672"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6"
|
||||
d="m 75.196095,142.4406 44.974175,55.93961 v 0.0795 -0.0795 l 44.97418,-56.01907 c -1.74812,-1.27135 -18.99087,-15.41518 -44.97418,-15.41518 -25.983313,0 -43.226063,14.14383 -44.974175,15.49464 z m 116.487885,56.01907 h 15.89193 v -15.89193 h -15.89193 z m 0,-95.35161 v 63.56774 h 15.89193 v -63.56774 z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_signal_wifi_1_bar_lock_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
d="M41 19c.7 0 1.4.1 2.1.2l4.2-5.2c-.9-.7-9.8-8-23.3-8S1.6 13.3.7 14L24 43l7-8.7V29c0-5.5 4.5-10 10-10z"
|
||||
id="path2"
|
||||
opacity=".3"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001;opacity:1" />
|
||||
<path
|
||||
d="M46 32v-3c0-2.8-2.2-5-5-5s-5 2.2-5 5v3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm-2 0h-6v-3c0-1.7 1.3-3 3-3s3 1.3 3 3v3zm-30.7-2.3l9 11.2L24 43l7-8.8V29c0-.5 0-1 .1-1.4-1.8-.8-4.2-1.6-7.1-1.6-6.1 0-10.1 3.3-10.7 3.7z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_signal_wifi_1_bar_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="24"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M24.02 42.98L47.28 14c-.9-.68-9.85-8-23.28-8S1.62 13.32.72 14l23.26 28.98.02.02.02-.02z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M13.34 29.72l10.65 13.27.01.01.01-.01 10.65-13.27C34.13 29.31 30.06 26 24 26s-10.13 3.31-10.66 3.72z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,71 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="wifi-strength-2-alert.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<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="defs12" />
|
||||
<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="namedview10"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="69.967175"
|
||||
inkscape:cy="30.177599"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg8" />
|
||||
<g
|
||||
id="g832"
|
||||
transform="matrix(1.7907692,0,0,1.7907692,0.7200004,-384.29538)">
|
||||
<path
|
||||
style="fill:none"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path2"
|
||||
d="m 0,216 h 26 v 24 H 0 Z" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:0.4"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4"
|
||||
d="m 24.24,224 1.35,-1.68 C 25.1,221.96 20.26,218 13,218 5.74,218 0.9,221.96 0.42,222.32 L 12.99,237.98 13,238 13.01,237.99 20,229.28 V 224 Z" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6"
|
||||
d="m 5.45,228.59 7.54,9.4 0.01,0.01 0.01,-0.01 6.99,-8.71 v -1.09 C 18.93,227.46 16.41,226 13,226 c -4.36,0 -7.26,2.38 -7.55,2.59 z M 22,226 v 8 h 2 v -8 z m 0,12 h 2 v -2 h -2 z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_signal_wifi_2_bar_lock_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
opacity=".3"
|
||||
d="M41 19c.7 0 1.4.1 2.1.2l4.2-5.2c-.9-.7-9.9-8-23.3-8S1.6 13.3.7 14L24 43l7-8.7V29c0-5.5 4.5-10 10-10z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001;opacity:1" />
|
||||
<path
|
||||
d="M46 32v-3c0-2.8-2.2-5-5-5s-5 2.2-5 5v3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm-2 0h-6v-3c0-1.7 1.3-3 3-3s3 1.3 3 3v3zM9.6 25L24 43l7-8.7V29c0-2.6 1-5 2.7-6.8C31.2 21 27.9 20 24 20c-8.2 0-13.7 4.5-14.4 5z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,61 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_signal_wifi_2_bar_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
fill-opacity=".3"
|
||||
d="M24.02 42.98L47.28 14c-.9-.68-9.85-8-23.28-8S1.62 13.32.72 14l23.26 28.98.02.02.02-.02z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.40000001" />
|
||||
<path
|
||||
d="M9.58 25.03l14.41 17.95.01.02.01-.02 14.41-17.95C37.7 24.47 32.2 20 24 20s-13.7 4.47-14.42 5.03z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,71 @@
|
||||
<?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"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="wifi-strength-3-alert.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<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="defs12" />
|
||||
<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="namedview10"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166666"
|
||||
inkscape:cx="36.415019"
|
||||
inkscape:cy="-31.408761"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg8" />
|
||||
<g
|
||||
id="g824"
|
||||
transform="matrix(1.7907692,0,0,1.7907692,0.7200004,-384.29538)">
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:0.4"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path2"
|
||||
d="m 24.24,224 1.35,-1.68 C 25.1,221.96 20.26,218 13,218 5.74,218 0.9,221.96 0.42,222.32 L 12.99,237.98 13,238 13.01,237.99 20,229.28 V 224 Z" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4"
|
||||
d="m 20,229.28 v -4.57 C 18.35,223.87 15.94,223 13,223 c -5.44,0 -9.07,2.97 -9.44,3.24 l 9.43,11.75 0.01,0.01 0.01,-0.01 z m 2,6.72 h 2 v 2 h -2 z m 0,-10 h 2 v 8 h -2 z" />
|
||||
<path
|
||||
style="fill:none"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path6"
|
||||
d="m 0,216 h 26 v 24 H 0 Z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg6"
|
||||
sodipodi:docname="ic_signal_wifi_3_bar_lock_48px.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="#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="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:zoom="4.9166667"
|
||||
inkscape:cx="-14.542373"
|
||||
inkscape:cy="24"
|
||||
inkscape:window-x="45"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg6" />
|
||||
<path
|
||||
opacity=".3"
|
||||
enable-background="new"
|
||||
d="M41 19c.7 0 1.4.1 2.1.2l4.2-5.2c-.9-.7-9.8-8-23.3-8S1.6 13.3.7 14L24 43l7-8.7V29c0-5.5 4.5-10 10-10z"
|
||||
id="path2"
|
||||
style="fill:#ffffff;fill-opacity:0.3764706;opacity:1" />
|
||||
<path
|
||||
d="M46 32v-3c0-2.8-2.2-5-5-5s-5 2.2-5 5v3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm-2 0h-6v-3c0-1.7 1.3-3 3-3s3 1.3 3 3v3zM7.1 21.9L24 43l7-8.7V29c0-4.3 2.7-8 6.5-9.4C34.6 18 29.9 16 24 16c-9.6 0-16.1 5.2-16.9 5.9z"
|
||||
id="path4"
|
||||
style="fill:#ffffff;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |