Improve panes system and add battery pane

This commit is contained in:
2026-02-26 02:50:28 -08:00
parent 86cf291663
commit a3ffbc80c5
41 changed files with 528 additions and 273 deletions

157
Panes/Battery.qml Normal file
View File

@@ -0,0 +1,157 @@
import QtQuick
import QtQuick.Shapes
import Quickshell.Services.UPower
Column {
anchors {
top: parent.top
horizontalCenter: parent.horizontalCenter
}
width: childrenRect.width
height: childrenRect.height
anchors.topMargin: 6
Rectangle {
radius: 12
height: 40
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: 6
color: "#181818"
Rectangle {
color: "white"
width: parent.width/3 - anchors.margins
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: 4
x: PowerProfiles.profile * (width + anchors.margins) + anchors.margins
Behavior on x {NumberAnimation {duration: 300; easing.type: Easing.OutQuint}}
radius: 8
}
Row {
id: profilesRow
anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.right: parent.right
component Profile: Rectangle {
id: profile
color: "transparent"
required property var powerProfile
width: parent.width/3
height: 40
Text {
parent: profile
anchors.centerIn: parent
text: PowerProfile.toString(powerProfile)
color: PowerProfiles.profile === powerProfile ? "black" : "white"
Behavior on color { ColorAnimation {duration: 50}}
}
TapHandler {onTapped: PowerProfiles.profile = powerProfile}
}
Profile {powerProfile: PowerProfile.PowerSaver}
Profile {powerProfile: PowerProfile.Balanced}
Profile {powerProfile: PowerProfile.Performance}
}
}
Repeater {
model: UPower.devices.values.filter(dev => dev.model)
delegate: Row {
spacing: 6
Shape {
id: meter
anchors.verticalCenter: parent.verticalCenter
width: 120
height: 120
preferredRendererType: Shape.CurveRenderer
ShapePath {
fillColor: "transparent"
strokeColor: "#444"
strokeWidth: 6
capStyle: ShapePath.RoundCap
PathAngleArc {
centerX: meter.width/2
centerY: meter.height/2
moveToStart: true
radiusX: meter.width/2 - 12
radiusY: meter.height/2 - 12
startAngle: 90
sweepAngle: 270
}
}
ShapePath {
fillColor: "transparent"
strokeColor: "white"
strokeWidth: 6
capStyle: ShapePath.RoundCap
PathAngleArc {
centerX: meter.width/2
centerY: meter.height/2
moveToStart: true
radiusX: meter.width/2 - 12
radiusY: meter.height/2 - 12
startAngle: 90
sweepAngle: modelData.percentage * 270
}
}
Text {
anchors.centerIn: parent
font.pixelSize: 20
color: "white"
text: Math.round(modelData.percentage * 100) + "%"
}
}
Column {
anchors.verticalCenter: parent.verticalCenter
spacing: 6
Text {
x: 4
text: UPowerDeviceType.toString(modelData.type)
font.pixelSize: 20
color: "white"
}
Row {
spacing: 6
component InfoCard: Rectangle {
id: card
required property var data
required property var label
color: "#181818"
height: 60
width: 100
radius: 12
Column {
parent: card
anchors.centerIn: parent
Text {
anchors.horizontalCenter: parent.horizontalCenter
color: "white"
font.pixelSize: 16
text: card.data
}
Text {
anchors.horizontalCenter: parent.horizontalCenter
color: "#aaa"
text: card.label
font.pixelSize: 12
}
}
}
InfoCard {
data: modelData.changeRate + "W"
label: UPowerDeviceState.toString(modelData.state)
}
InfoCard {
property int time: (modelData.timeToEmpty ? modelData.timeToEmpty : modelData.timeToFull)
data: `${Math.floor(time / 60 / 60)}H ${Math.floor((time / 60) % 60)}M`
label: modelData.timeToEmpty ? "to empty" : "to full"
}
InfoCard {
data: Math.round(modelData.healthPercentage) + "%"
label: "healthy"
}
Item {width: 6; height: 1}
}
}
}
}
Item {width: 1; height: 6}
}

View File

@@ -3,7 +3,7 @@ import Quickshell.Io
import Quickshell.Wayland
import QtQuick
import QtQuick.Effects
import "./emojis.mjs" as Emojis
import "../emojis.mjs" as Emojis
Item {
height: currentItems.length ? 180 : 60
@@ -24,6 +24,11 @@ Item {
.filter(item => item.searchPos !== -1)
.sort((a, b) => a.searchPos - b.searchPos)
}
function clear() { input.text = "" }
anchors {
top: parent.top
horizontalCenter: parent.horizontalCenter
}
Rectangle {
anchors {

43
Panes/Status.qml Normal file
View File

@@ -0,0 +1,43 @@
import Quickshell
import QtQuick
import "../Widgets" as Widgets
Item {
width: 800
height: 42
anchors {
top: parent.top
horizontalCenter: parent.horizontalCenter
}
Row {
anchors {
top: parent.top
left: parent.left
bottom: parent.bottom
leftMargin: 0
}
Widgets.Battery {}
}
Widgets.Workspaces {
height: parent.height
anchors {
top: parent.top
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
}
}
Row {
anchors {
top: parent.top
right: parent.right
bottom: parent.bottom
rightMargin: 12
}
Text {
anchors.verticalCenter: parent.verticalCenter
property var clock: SystemClock {}
color: "white"
text: Qt.formatDateTime(clock.date, "ddd MMM dd · hh:mm")
}
}
}

View File

@@ -1,63 +0,0 @@
import Quickshell
import QtQuick
import "./Widgets" as Widgets
Item {
width: 800
height: 36
Row {
anchors {
top: parent.top
left: parent.left
bottom: parent.bottom
}
Item {
anchors {
top: parent.top
bottom: parent.bottom
}
width: height
Rectangle {
anchors {
fill: parent
margins: 4
}
radius: 12
color: parent.hover.hovered ? "#333333" : "#222222"
Image {
anchors.centerIn: parent
width: 20
height: width
source: Qt.resolvedUrl("./arch.svg")
sourceSize {width: width; height: height}
}
}
property var hover: HoverHandler {}
property var click: TapHandler {
onTapped: launcher.open()
}
}
}
Widgets.Workspaces {
height: parent.height
anchors {
top: parent.top
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
}
}
Row {
anchors {
top: parent.top
right: parent.right
bottom: parent.bottom
rightMargin: 12
}
Text {
anchors.verticalCenter: parent.verticalCenter
property var clock: SystemClock {}
color: "white"
text: Qt.formatDateTime(clock.date, "ddd MMM dd · hh:mm")
}
}
}

View File

@@ -7,18 +7,22 @@ import QtQuick.Controls
import QtQuick.Effects
import QtQuick.Shapes
import "." as Shell
import "./Panes" as Panes
PanelWindow {
id: root
anchors {
top: true
}
property var font: {family: "0xProto Nerd Font"}
implicitWidth: 1024
implicitHeight: 200
WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
WlrLayershell.keyboardFocus: (up && !shortcut.pressed) ? WlrKeyboardFocus.Exclusive : WlrKeyboardFocus.None
WlrLayershell.layer: WlrLayer.Overlay
exclusionMode: ExclusionMode.Ignore
color: "transparent"
visible: false
property bool up: false
IpcHandler {
@@ -29,11 +33,35 @@ PanelWindow {
root.up ? close() : open()
}
}
GlobalShortcut {
id: shortcut
name: "topbar"
description: "Hold to peek, tap to toggle topbar"
onPressed: {
root.open()
}
onReleased: {
if (!hover.hovered)
root.close()
}
}
function open() {
background.index = 0
root.visible = true
background.exit.stop()
if (!root.up) background.height = 0
root.up = true
for (const child of background.children) {
child.entry.start()
}
background.entry.start()
}
function close() {
background.entry.stop()
for (const child of background.children) {
child.exit.start()
}
background.exit.start()
}
@@ -55,9 +83,6 @@ PanelWindow {
DefaultTransition on width { }
DefaultTransition on height { }
property int index: 0
HoverHandler { onHoveredChanged: if (!hovered) {
root.close()
}}
onIndexChanged: {
width = children[index].width + radius*2
height = children[index].height
@@ -73,8 +98,8 @@ PanelWindow {
}
}
component Display: Item {
id: display
component Pane: Item {
id: pane
anchors {
top: parent.top
horizontalCenter: parent.horizontalCenter
@@ -85,7 +110,7 @@ PanelWindow {
property var fadeIn: SequentialAnimation {
PauseAnimation {duration: 200}
NumberAnimation {
target: display
target: pane
property: "opacity"
to: 1
duration: 300
@@ -94,23 +119,27 @@ PanelWindow {
onStarted: fadeOut.stop()
}
property var fadeOut: NumberAnimation {
target: display
target: pane
property: "opacity"
to: 0
duration: 300
onStarted: fadeIn.stop()
easing.type: Easing.OutQuint
}
property var entry: NumberAnimation {
target: display
property var entry:
SequentialAnimation {
PauseAnimation {duration: 2}
NumberAnimation {
target: pane
property: "anchors.topMargin"
to: 0
duration: 300
easing.type: Easing.OutQuint
onStarted: exit.stop()
}
}
property var exit: NumberAnimation {
target: display
target: pane
property: "anchors.topMargin"
to: -height
duration: 300
@@ -118,33 +147,22 @@ PanelWindow {
onStarted: entry.stop()
}
}
Display { opacity: 1; Shell.Status {
anchors {
top: parent.top
horizontalCenter: parent.horizontalCenter
}
} }
Display { Shell.Launcher {
Pane { opacity: 1; Panes.Status { }}
Pane { Panes.Launcher {
id: launcher
onShowChanged: if (show) background.index = 1; else background.index = 0
anchors {
top: parent.top
horizontalCenter: parent.horizontalCenter
}
}}
Pane { Panes.Battery {
}}
property var entry: NumberAnimation {
property var entry: SequentialAnimation {
PauseAnimation {duration: 2}
NumberAnimation {
target: background
property: "height"
to: background.children[background.index].height
duration: 300
easing.type: Easing.OutQuint
onStarted: {
root.implicitHeight = 200
background.exit.stop()
root.up = true
for (const child of background.children) {
child.entry.start()
}
}
}
property var exit: NumberAnimation {
@@ -153,20 +171,13 @@ PanelWindow {
to: 0
duration: 300
easing.type: Easing.InQuint
onStarted: {
background.entry.stop()
for (const child of background.children) {
child.exit.start()
}
}
onFinished: {
root.implicitHeight = 1
root.visible = false
root.up = false
background.index = 0
launcher.clear()
}
}
HoverHandler {id: hover}
}
HoverHandler { onHoveredChanged: if (hovered) {
root.open()
}}
}

60
Widgets/Battery.qml Normal file
View File

@@ -0,0 +1,60 @@
import Quickshell.Services.UPower
import Quickshell.Widgets
import QtQuick
import Quickshell
import "." as Widgets
Item {
anchors {
top: parent.top
bottom: parent.bottom
}
width: children[1].width + 20
Rectangle {
anchors.fill: parent
anchors.margins: 4
color: hover.hovered ? "#11ffffff" : "#00ffffff"
radius: 8
bottomLeftRadius: 12
}
Row {
anchors {
verticalCenter: parent.verticalCenter
}
x: 8
spacing: 4
Image {
anchors.verticalCenter: parent.verticalCenter
width: 20
height: width
sourceSize { width: width; height: height }
source: {
if (UPower.displayDevice.state === UPowerDeviceState.Charging)
return Quickshell.shellPath("assets/battery-charging-symbolic.svg")
switch (PowerProfiles.profile) {
case PowerProfile.PowerSaver:
return Quickshell.shellPath("assets/power-saver-symbolic.svg")
break;
case PowerProfile.Balanced:
return Quickshell.shellPath("assets/balanced-symbolic.svg")
break;
case PowerProfile.Performance:
return Quickshell.shellPath("assets/performance-symbolic.svg")
break;
}
return Quickshell.shellPath("assets/battery-performance-symbolic.svg")
}
}
Text {
id: content
anchors.verticalCenter: parent.verticalCenter
x: 10
color: "white"
text: `${Math.round(UPower.displayDevice.percentage * 100)}% · ${Math.round(UPower.displayDevice.changeRate)}W`
}
}
HoverHandler {id: hover}
TapHandler {onTapped: {
background.index = 2
}}
}

View File

@@ -1,36 +1,60 @@
import QtQuick
import QtQuick.Shapes
import Quickshell.Widgets
import Quickshell.Hyprland
import Quickshell
Item {
width: children[0].width
Row {
id: workspaceRow
height: parent.height
anchors.centerIn: parent
spacing: 4
Repeater {
model: 9
delegate: Shape {
height: 14
delegate: Item {
height: parent.height
width: 24
property var workspace: Hyprland.workspaces.values.find(ws => ws.id === modelData+1)
preferredRendererType: Shape.CurveRenderer
anchors.verticalCenter: parent.verticalCenter
ShapePath {
strokeWidth: workspace ? 7 : 4
Behavior on strokeWidth {NumberAnimation {
duration: 150
property var icon: {
const appId = workspace?.toplevels.values[0]?.wayland?.appId
return DesktopEntries.applications.values.find(
app => app.startupClass === appId || app.id === appId
)?.icon;
}
Rectangle {
color: "transparent"
width: workspace?.toplevels.values.length ? (icon ? 0 : 16) : 4
height: width
anchors.centerIn: parent
radius: width/2
border.color: "white"
border.width: workspace?.toplevels.values.length ? (icon ? width/2 : width/4) : width/2
Behavior on width {NumberAnimation {duration: 300; easing.type: Easing.OutQuint}}
}
Image {
width: workspace?.toplevels.values.length && icon ? 24 : 0
Behavior on width {NumberAnimation {duration: 300; easing.type: Easing.InOutQuint}}
height: width
anchors.centerIn: parent
anchors.verticalCenterOffset: 0
source: icon ? Quickshell.iconPath(icon) : source
sourceSize.width: width
sourceSize.height: height
}
}
}
}
Rectangle {
x: (Hyprland.focusedWorkspace.id-1) * (workspaceRow.children[0].width + workspaceRow.spacing) + 2
y: 2
Behavior on x {NumberAnimation {
duration: 300
easing.type: Easing.OutCubic
}}
strokeColor: "white"
fillColor: "transparent"
PathAngleArc {
moveToStart: true
centerX: width/2
centerY: height/2
startAngle: 0
sweepAngle: 360
radiusX: workspace ? 3.5 : 5
Behavior on radiusX {NumberAnimation {
duration: 150
}}
radiusY: radiusX
}
}
}
width: 20
height: 4
radius: height/2
}
}

View File

@@ -1,30 +0,0 @@
import QtQuick
import QtQuick.Shapes
import Quickshell.Hyprland
Row {
Repeater {
model: 9
delegate: Shape {
height: 14
width: 24
property var workspace: Hyprland.workspaces.values.find(ws => ws.id === modelData)
preferredRendererType: Shape.CurveRenderer
anchors.verticalCenter: parent.verticalCenter
ShapePath {
strokeWidth: workspace ? 12 : 4
strokeColor: "white"
fillColor: "transparent"
PathAngleArc {
moveToStart: true
centerX: width/2
centerY: height/2
startAngle: 0
sweepAngle: 360
radiusX: workspace ? 2 : 6
radiusY: radiusX
}
}
}
}
}

View File

@@ -1,99 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.0"
width="200"
height="200"
id="svg2424"
sodipodi:docname="arch.svg"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:zoom="3.5437999"
inkscape:cx="90.862918"
inkscape:cy="132.06163"
inkscape:window-width="1920"
inkscape:window-height="1200"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2424" />
<defs
id="defs2426">
<linearGradient
x1="112.49854"
y1="6.1372099"
x2="112.49853"
y2="129.3468"
id="path1082_2_"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(287,-83)">
<stop
id="stop193"
style="stop-color:#ffffff;stop-opacity:0"
offset="0" />
<stop
id="stop195"
style="stop-color:#ffffff;stop-opacity:0.27450982"
offset="1" />
<midPointStop
offset="0"
style="stop-color:#FFFFFF"
id="midPointStop197" />
<midPointStop
offset="0.5"
style="stop-color:#FFFFFF"
id="midPointStop199" />
<midPointStop
offset="1"
style="stop-color:#000000"
id="midPointStop201" />
</linearGradient>
<linearGradient
x1="541.33502"
y1="104.50665"
x2="606.91248"
y2="303.14029"
id="linearGradient2544"
xlink:href="#path1082_2_"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.3937741,0,0,0.393752,357.51969,122.00151)" />
<linearGradient
id="linearGradient3388">
<stop
id="stop3390"
style="stop-color:#000000;stop-opacity:0"
offset="0" />
<stop
id="stop3392"
style="stop-color:#000000;stop-opacity:0.37113401"
offset="1" />
</linearGradient>
<linearGradient
x1="490.72305"
y1="237.72447"
x2="490.72305"
y2="183.9644"
id="linearGradient4416"
xlink:href="#linearGradient3388"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.749107,0,0,0.749107,-35.459862,91.44108)" />
</defs>
<path
d="M 99.981193,0 C 91.07768,21.824936 85.707513,36.101008 75.79462,57.277171 81.872465,63.718474 89.332733,71.219693 101.44818,79.691613 88.422886,74.332791 79.538039,68.952661 72.898249,63.369687 60.211637,89.837277 40.335363,127.53918 0,200 c 31.702241,-18.29881 56.277255,-29.58023 79.179987,-33.88492 -0.983452,-4.22902 -1.542584,-8.80353 -1.504608,-13.57653 l 0.03762,-1.01542 c 0.503041,-20.30697 11.068695,-35.92303 23.584721,-34.86273 12.51604,1.06029 22.24462,18.39178 21.74159,38.69876 -0.0946,3.82113 -0.5257,7.49701 -1.27892,10.90635 C 144.41446,170.69622 168.7267,181.94875 200,200 c -6.16649,-11.35079 -11.67061,-21.58271 -16.92684,-31.32757 -8.27943,-6.4159 -16.91527,-14.76621 -34.53075,-23.80594 12.10787,3.14554 20.77695,6.77466 27.53432,10.83114 C 122.63513,56.217418 118.3075,42.998551 99.981193,0 Z"
id="path2518"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.20358" />
</svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/archlinux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

9
assets/archlinux.svg Normal file
View File

@@ -0,0 +1,9 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M186.575 162.152C204.721 177.464 234.004 193.426 259.419 203.385C237.557 187.519 215.801 169.636 194.085 146.23C212.161 107.684 233.745 54.4437 255.997 0.0976562C292.277 92.7957 359.897 232.3 450.483 397.816C425.873 384.303 403.575 376.609 380.553 370.664C388.183 375.019 406.218 384.861 417.79 392.772C436.07 405.269 452.988 418.935 468.897 432.021C483.097 458.131 497.471 484.781 512 511.901C439.744 470.064 369.527 436.174 312 425.706C330.833 321.235 257.12 259.599 215.24 326.096C199.114 351.699 194.753 393.883 202.4 425.229C129.667 439.235 58.503 478.44 0 511.902C68.143 388.425 137.038 263.253 186.575 162.152Z" fill="url(#paint0_linear)"/>
<defs>
<linearGradient id="paint0_linear" x1="74.981" y1="436.949" x2="436.88" y2="74.9114" gradientUnits="userSpaceOnUse">
<stop stop-color="#0072FF"/>
<stop offset="1" stop-color="#00E5A1"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 983 B

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.4192 9.00047C20.2792 8.99047 20.0992 8.98047 19.8992 8.98047C19.5092 8.98047 19.1992 9.29047 19.1992 9.68047V14.3305C19.1992 14.7205 19.5092 15.0305 19.8992 15.0305C20.0992 15.0305 20.2692 15.0205 20.4392 15.0105C21.9992 14.8305 21.9992 13.7305 21.9992 12.9305V11.0705C21.9992 10.2705 21.9992 9.17047 20.4192 9.00047Z" fill="#ffffff"/>
<path d="M12.93 4.78906H7.35C3.25 4.78906 2 6.03906 2 10.1391V13.8591C2 17.9591 3.25 19.2091 7.35 19.2091H12.93C17.03 19.2091 18.28 17.9591 18.28 13.8591V10.1391C18.28 6.03906 17.03 4.78906 12.93 4.78906ZM7.1 14.1791C7.02 14.5191 6.71 14.7491 6.37 14.7491C6.31 14.7491 6.25 14.7391 6.19 14.7291C5.79 14.6291 5.54 14.2191 5.64 13.8191C5.94 12.6291 5.94 11.3691 5.64 10.1791C5.54 9.77906 5.78 9.36906 6.19 9.26906C6.6 9.16906 7 9.41906 7.1 9.81906C7.46 11.2491 7.46 12.7491 7.1 14.1791ZM10.6 14.1791C10.52 14.5191 10.21 14.7491 9.87 14.7491C9.81 14.7491 9.75 14.7391 9.69 14.7291C9.29 14.6291 9.04 14.2191 9.14 13.8191C9.44 12.6291 9.44 11.3691 9.14 10.1791C9.04 9.77906 9.28 9.36906 9.69 9.26906C10.09 9.16906 10.5 9.40906 10.6 9.81906C10.96 11.2491 10.96 12.7491 10.6 14.1791Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.4192 9.00047C20.2792 8.99047 20.0992 8.98047 19.8992 8.98047C19.5092 8.98047 19.1992 9.29047 19.1992 9.68047V14.3305C19.1992 14.7205 19.5092 15.0305 19.8992 15.0305C20.0992 15.0305 20.2692 15.0205 20.4392 15.0105C21.9992 14.8305 21.9992 13.7305 21.9992 12.9305V11.0705C21.9992 10.2705 21.9992 9.17047 20.4192 9.00047Z" fill="#ffffff"/>
<path d="M12.93 4.78906H7.35C3.25 4.78906 2 6.03906 2 10.1391V13.8591C2 17.9591 3.25 19.2091 7.35 19.2091H12.93C17.03 19.2091 18.28 17.9591 18.28 13.8591V10.1391C18.28 6.03906 17.03 4.78906 12.93 4.78906ZM12.53 13.6791C12.51 13.7191 12.48 13.7591 12.45 13.7891L10.58 15.9791C10.43 16.1491 10.22 16.2391 10.01 16.2391C9.84 16.2391 9.66 16.1791 9.52 16.0591C9.21 15.7891 9.17 15.3191 9.44 14.9991L11.24 12.8891C11.25 12.8591 11.24 12.8291 11.22 12.7991C11.2 12.7591 11.16 12.7391 11.11 12.7391H9.12C8.53 12.7391 8.01 12.4391 7.71 11.9291C7.42 11.4191 7.42 10.8191 7.71 10.3091L9.42 8.04906C9.67 7.71906 10.14 7.64906 10.47 7.89906C10.8 8.14906 10.87 8.61906 10.62 8.94906L8.97 11.1391C9 11.0991 9 11.1391 9.02 11.1891C9.04 11.2291 9.08 11.2491 9.13 11.2491H11.14C11.73 11.2491 12.25 11.5491 12.55 12.0591C12.82 12.5691 12.82 13.1691 12.53 13.6791Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#ffffff" width="800px" height="800px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg">
<title>brightness</title>
<path d="M0 16q0 0.832 0.576 1.44t1.44 0.576h1.984q0.832 0 1.408-0.576t0.608-1.44-0.608-1.408-1.408-0.576h-1.984q-0.832 0-1.44 0.576t-0.576 1.408zM4.096 25.888q0 0.832 0.608 1.44t1.408 0.576 1.408-0.576l1.408-1.408q0.608-0.608 0.608-1.408t-0.608-1.408-1.408-0.608-1.408 0.608l-1.408 1.408q-0.608 0.576-0.608 1.376zM4.096 6.112q0 0.832 0.608 1.408l1.408 1.408q0.576 0.576 1.408 0.576t1.408-0.576 0.608-1.408-0.608-1.408l-1.408-1.408q-0.576-0.608-1.408-0.608t-1.408 0.608-0.608 1.408zM8 16q0 3.328 2.336 5.664t5.664 2.336 5.664-2.336 2.336-5.664-2.336-5.632-5.664-2.368-5.664 2.368-2.336 5.632zM12 16q0-1.632 1.184-2.816t2.816-1.184 2.816 1.184 1.184 2.816-1.184 2.848-2.816 1.152-2.816-1.152-1.184-2.848zM14.016 28v2.016q0 0.832 0.576 1.408t1.408 0.576 1.408-0.576 0.608-1.408v-2.016q0-0.832-0.608-1.408t-1.408-0.576-1.408 0.576-0.576 1.408zM14.016 4q0 0.832 0.576 1.44t1.408 0.576 1.408-0.576 0.608-1.44v-1.984q0-0.832-0.608-1.408t-1.408-0.608-1.408 0.608-0.576 1.408v1.984zM22.496 24.512q0 0.8 0.576 1.408l1.408 1.408q0.576 0.576 1.408 0.576t1.44-0.576 0.576-1.44-0.576-1.376l-1.408-1.408q-0.608-0.608-1.44-0.608t-1.408 0.608-0.576 1.408zM22.496 7.52q0 0.832 0.576 1.408t1.408 0.576 1.44-0.576l1.408-1.408q0.576-0.576 0.576-1.408t-0.576-1.408-1.44-0.608-1.408 0.608l-1.408 1.408q-0.576 0.576-0.576 1.408zM26.016 16q0 0.832 0.576 1.44t1.408 0.576h2.016q0.8 0 1.408-0.576t0.576-1.44-0.576-1.408-1.408-0.576h-2.016q-0.832 0-1.408 0.576t-0.576 1.408z"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

32
assets/hyprland.svg Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 515.34 673.26">
<defs>
<style>
.cls-1 {
mix-blend-mode: difference;
}
.cls-2 {
isolation: isolate;
}
.cls-3 {
fill: url(#linear-gradient);
}
</style>
<linearGradient id="linear-gradient" x1="8.93" y1="572.38" x2="572.68" y2="102.08" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#ffffff" />
<stop offset="1" stop-color="#ffffff" />
</linearGradient>
</defs>
<g class="cls-2">
<g id="Layer_2" data-name="Layer 2">
<g id="Layer_1-2" data-name="Layer 1">
<g class="cls-1">
<path class="cls-3"
d="m288.53,0c1.99,2.11,3.26,3.13,4.14,4.42,15.97,23.63,31.7,47.44,47.91,70.91,9.33,13.51,19.26,26.61,29.22,39.67,9.63,12.65,19.8,24.88,29.44,37.53,11.15,14.63,22.45,29.18,32.81,44.36,13.27,19.45,26.64,38.94,38.12,59.44,9.76,17.43,17.56,36.05,25.02,54.64,5.28,13.16,8.82,27.06,12.6,40.78,1.75,6.36,2.24,13.07,3.26,19.62,1.26,8.02,3.4,16.04,3.53,24.08.35,20.94,2.17,41.95-1.48,62.8-4.02,22.99-10.75,45-20.76,66.23-10.12,21.45-22.38,41.26-37.39,59.59-13.6,16.61-29.57,30.33-46.84,42.91-12.68,9.23-26.09,17.07-40.36,23.3-12.84,5.6-26.07,10.09-39.69,13.89-30.75,8.56-61.93,10.44-93.33,8.23-18.93-1.33-38.08-3.65-56.11-10.46-14.82-5.6-29.75-11.13-43.92-18.13-11.19-5.52-21.91-12.44-31.73-20.15-12.88-10.11-25.52-20.81-36.67-32.74-9.99-10.68-18.64-22.87-26.4-35.31-8.18-13.13-15.39-27.01-21.58-41.2-6.69-15.32-11.01-31.45-14.53-47.97-5.48-25.71-3.71-51.44-2.59-77.09.64-14.73,4.53-29.47,8.26-43.86,3.93-15.18,8.68-30.26,14.44-44.84,5.77-14.6,12.47-28.96,20.14-42.65,9.63-17.18,20.25-33.85,31.2-50.23,9.94-14.88,20.68-29.24,31.47-43.52,8.69-11.5,18.17-22.41,26.97-33.83,8.9-11.55,17.46-23.36,26.07-35.13,9.11-12.46,18.29-24.87,27.09-37.55,11.16-16.07,21.91-32.43,32.97-48.57,1.58-2.31,3.88-4.14,5.84-6.19.39.22.78.44,1.18.66.08,1.77.23,3.54.23,5.31.01,26.33.15,52.66-.17,78.99-.05,3.86-1.62,8.15-3.72,11.46-8.5,13.45-17.19,26.8-26.38,39.79-8.71,12.31-18.12,24.13-27.22,36.16-7.5,9.91-14.97,19.83-22.52,29.7-5.24,6.85-10.74,13.5-15.86,20.44-7.16,9.72-14.35,19.45-21.03,29.5-8.06,12.12-15.99,24.36-23.23,36.97-5.18,9.02-9.26,18.69-13.59,28.17-2.4,5.26-4.61,10.64-6.36,16.14-3.1,9.76-5.58,19.71-8.68,29.47-8.72,27.42-6.87,55.63-4.92,83.5.99,14.15,6.11,28.15,10.4,41.89,6.01,19.24,16.32,36.3,27.95,52.74,7.94,11.23,16.95,21.38,27.14,30.36,8.39,7.38,17.5,14.17,27.07,19.92,10.89,6.54,22.23,12.77,34.12,17.07,12.69,4.59,26.1,7.99,39.48,9.68,15.93,2.01,32.16,1.58,48.25,2.34,14.94.7,29.43-2.29,43.93-5.14,18.41-3.62,35.23-11.56,51.58-20.26,19.55-10.4,35.98-25.13,50.37-41.73,14.71-16.97,27.06-36.05,34.92-57,8.29-22.1,15.2-44.97,14.15-69.26-.57-13.13.15-26.34-1.06-39.39-.89-9.61-3.62-19.11-6.16-28.5-2.98-11.03-6.03-22.1-10.16-32.73-4.11-10.59-9.36-20.75-14.52-30.9-4.57-8.99-9.32-17.92-14.66-26.46-6.5-10.39-13.38-20.59-20.68-30.43-11.05-14.9-22.74-29.32-33.91-44.12-13.08-17.33-26.13-34.68-38.77-52.33-10.91-15.22-21.31-30.81-31.71-46.39-1.67-2.5-3-5.79-3.03-8.72-.23-28.49-.15-56.98-.13-85.47,0-.95.24-1.91.58-4.44Z" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff" stroke-width="1.512" style="--darkreader-inline-stroke: var(--darkreader-text-ffffff, #ffffff);" data-darkreader-inline-stroke="">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff" stroke-width="1.512" style="--darkreader-inline-stroke: var(--darkreader-text-ffffff, #ffffff);" data-darkreader-inline-stroke="">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff" stroke-width="1.512" style="--darkreader-inline-stroke: var(--darkreader-text-ffffff, #ffffff);" data-darkreader-inline-stroke="">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff" stroke-width="1.512" style="--darkreader-inline-stroke: var(--darkreader-text-ffffff, #ffffff);" data-darkreader-inline-stroke="">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 1.6 KiB

7
assets/logout.svg Normal file
View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 13C2 15.2091 3.79086 17 6 17H6.19669C6.69707 17 7.17928 17.1876 7.54814 17.5257L10.4773 20.2107C11.0311 20.7184 11.755 21 12.5063 21C13.7594 21 14.9494 20.2016 15.2601 18.8803C15.5904 17.476 16 15.1081 16 12C16 8.89192 15.5904 6.52403 15.2601 5.11974C14.9494 3.79838 13.7594 3 12.5063 3C11.755 3 11.0311 3.28161 10.4773 3.78926L7.54813 6.47431C7.17928 6.81243 6.69707 7 6.19669 7H6C3.79086 7 2 8.79086 2 11V13ZM6 15C4.89543 15 4 14.1046 4 13V11C4 9.89543 4.89543 9 6 9H6.19669C7.19745 9 8.16186 8.62486 8.89958 7.94862L11.8287 5.26357C12.0137 5.09404 12.2554 5 12.5063 5C12.9376 5 13.2384 5.25937 13.3132 5.57761C13.6134 6.85393 14 9.06723 14 12C14 14.9328 13.6134 17.1461 13.3132 18.4224C13.2384 18.7406 12.9376 19 12.5063 19C12.2554 19 12.0137 18.906 11.8287 18.7364L8.89958 16.0514C8.16186 15.3751 7.19745 15 6.19669 15H6Z" fill="#ffffff"/>
<path d="M20.5723 6.09607C21.0716 5.85987 21.6677 6.0731 21.9039 6.57232C22.6447 8.13791 22.9979 10.0843 23 11.9889C23.0021 13.8934 22.6531 15.8479 21.9036 17.4285C21.6669 17.9275 21.0706 18.1402 20.5715 17.9036C20.0725 17.6669 19.8598 17.0706 20.0964 16.5715C20.6881 15.3238 21.0018 13.679 21 11.991C20.9981 10.303 20.6808 8.66357 20.0961 7.42768C19.8599 6.92845 20.0731 6.33227 20.5723 6.09607Z" fill="#ffffff"/>
<path d="M17.5528 15.8944C17.0588 15.6474 16.8586 15.0468 17.1056 14.5528C17.9648 12.8343 17.9648 11.1657 17.1056 9.44721C16.8586 8.95324 17.0588 8.35256 17.5528 8.10557C18.0468 7.85858 18.6474 8.05881 18.8944 8.55279C20.0352 10.8343 20.0352 13.1657 18.8944 15.4472C18.6474 15.9412 18.0468 16.1414 17.5528 15.8944Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.9098 2.77366L16.7426 4.0752C17.2829 4.45881 17.7548 4.79385 18.0843 5.10897C18.435 5.44445 18.7501 5.87349 18.7501 6.45834C18.7501 7.04319 18.435 7.47224 18.0843 7.80771C17.7548 8.12283 17.2829 8.45787 16.7426 8.84148L12.2954 11.9996L16.7426 15.1577C17.2829 15.5413 17.7548 15.8764 18.0843 16.1915C18.435 16.527 18.7501 16.956 18.7501 17.5409C18.7501 18.1257 18.435 18.5548 18.0843 18.8902C17.7548 19.2054 17.2829 19.5404 16.7426 19.924L14.9099 21.2255C14.1804 21.7436 13.5645 22.181 13.0536 22.4416C12.5334 22.707 11.8983 22.9067 11.2631 22.5817C10.6261 22.2558 10.4192 21.6227 10.3337 21.0458C10.25 20.4803 10.25 19.7272 10.2501 18.8365L10.2501 13.4401L6.43016 16.114C6.09082 16.3516 5.62318 16.269 5.38564 15.9297C5.1481 15.5904 5.23063 15.1227 5.56997 14.8852L9.69222 11.9996L5.56997 9.11402C5.23063 8.87649 5.1481 8.40884 5.38564 8.0695C5.62318 7.73017 6.09082 7.64764 6.43016 7.88517L10.2501 10.5591V5.22417C10.2501 5.20359 10.2501 5.18309 10.2501 5.16266C10.25 4.27198 10.25 3.51888 10.3337 2.9534C10.4192 2.3765 10.6261 1.74342 11.2631 1.41752C11.8983 1.09254 12.5334 1.29223 13.0536 1.55758C13.5644 1.81817 14.1804 2.25559 14.9098 2.77366ZM11.7501 13.4521V18.775C11.7501 19.7439 11.7521 20.3839 11.8176 20.826C11.8492 21.04 11.8892 21.1526 11.9187 21.2087C11.9317 21.2334 11.94 21.2419 11.9409 21.2429C11.9411 21.2431 11.9414 21.2438 11.9463 21.2463C11.9508 21.2486 11.9521 21.2488 11.953 21.2489C11.955 21.2492 11.968 21.251 11.9966 21.2471C12.0613 21.2381 12.178 21.2044 12.372 21.1054C12.7727 20.901 13.2984 20.5301 14.0911 19.9672L15.8291 18.733C16.4278 18.3078 16.8072 18.036 17.0475 17.8062C17.1612 17.6975 17.212 17.6269 17.2343 17.5863C17.2503 17.5573 17.2501 17.5474 17.2501 17.5418C17.2501 17.5415 17.2501 17.5422 17.2501 17.5418C17.2501 17.5415 17.2501 17.5402 17.2501 17.5399C17.2501 17.5343 17.2503 17.5244 17.2343 17.4955C17.212 17.4548 17.1612 17.3842 17.0475 17.2755C16.8072 17.0457 16.4278 16.7739 15.8291 16.3487L11.7501 13.4521ZM11.7501 10.5471V5.22417C11.7501 4.2553 11.7521 3.61528 11.8176 3.17318C11.8492 2.95922 11.8892 2.84656 11.9187 2.79047C11.9317 2.76583 11.94 2.75725 11.9409 2.75632C11.9411 2.75611 11.9414 2.75541 11.9463 2.75289C11.9508 2.75059 11.9521 2.75042 11.953 2.7503C11.9529 2.75031 11.9531 2.75028 11.953 2.7503C11.955 2.74999 11.968 2.74818 11.9966 2.75212C12.0613 2.76105 12.178 2.79481 12.372 2.89379C12.7727 3.09819 13.2984 3.46908 14.0911 4.03202L15.8291 5.2662C16.4278 5.69138 16.8072 5.96315 17.0475 6.19298C17.1612 6.30172 17.212 6.37233 17.2343 6.41294C17.2503 6.44191 17.2501 6.45181 17.2501 6.45735C17.2501 6.45704 17.2501 6.4577 17.2501 6.45735C17.2501 6.45767 17.2501 6.45898 17.2501 6.45933C17.2501 6.46487 17.2503 6.47477 17.2343 6.50374C17.212 6.54435 17.1612 6.61496 17.0475 6.7237C16.8072 6.95353 16.4278 7.2253 15.8291 7.65048L11.7501 10.5471Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#ffffff" width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12,7.33a1,1,0,0,0,1-1V5.78l6-1.5V7.22L14.7,8.3a1,1,0,0,0,.24,2l.24,0L20.24,9l.07,0,.19-.09.15-.1a.93.93,0,0,0,.13-.15.78.78,0,0,0,.1-.15.55.55,0,0,0,.06-.18.65.65,0,0,0,0-.19A.24.24,0,0,0,21,8V3a1,1,0,0,0-1.24-1l-8,2A1,1,0,0,0,11,5V6.33A1,1,0,0,0,12,7.33Zm9.71,13-9-9h0l-9-9A1,1,0,0,0,2.29,3.71L11,12.41v2.94A3.45,3.45,0,0,0,9.5,15,3.5,3.5,0,1,0,13,18.5V14.41l7.29,7.3a1,1,0,0,0,1.42,0A1,1,0,0,0,21.71,20.29ZM9.5,20A1.5,1.5,0,1,1,11,18.5,1.5,1.5,0,0,1,9.5,20Z"/></svg>

After

Width:  |  Height:  |  Size: 702 B

7
assets/notif.svg Normal file
View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.4192 9.00047C20.2792 8.99047 20.0992 8.98047 19.8992 8.98047C19.5092 8.98047 19.1992 9.29047 19.1992 9.68047V14.3305C19.1992 14.7205 19.5092 15.0305 19.8992 15.0305C20.0992 15.0305 20.2692 15.0205 20.4392 15.0105C21.9992 14.8305 21.9992 13.7305 21.9992 12.9305V11.0705C21.9992 10.2705 21.9992 9.17047 20.4192 9.00047Z" fill="#ffffff"/>
<path d="M12.93 4.78906H7.35C3.25 4.78906 2 6.03906 2 10.1391V13.8591C2 17.9591 3.25 19.2091 7.35 19.2091H12.93C17.03 19.2091 18.28 17.9591 18.28 13.8591V10.1391C18.28 6.03906 17.03 4.78906 12.93 4.78906ZM7.1 14.1791C7.02 14.5191 6.71 14.7491 6.37 14.7491C6.31 14.7491 6.25 14.7391 6.19 14.7291C5.79 14.6291 5.54 14.2191 5.64 13.8191C5.94 12.6291 5.94 11.3691 5.64 10.1791C5.54 9.77906 5.78 9.36906 6.19 9.26906C6.6 9.16906 7 9.41906 7.1 9.81906C7.46 11.2491 7.46 12.7491 7.1 14.1791ZM10.6 14.1791C10.52 14.5191 10.21 14.7491 9.87 14.7491C9.81 14.7491 9.75 14.7391 9.69 14.7291C9.29 14.6291 9.04 14.2191 9.14 13.8191C9.44 12.6291 9.44 11.3691 9.14 10.1791C9.04 9.77906 9.28 9.36906 9.69 9.26906C10.09 9.16906 10.5 9.40906 10.6 9.81906C10.96 11.2491 10.96 12.7491 10.6 14.1791ZM14.1 14.1791C14.02 14.5191 13.71 14.7491 13.37 14.7491C13.31 14.7491 13.25 14.7391 13.19 14.7291C12.79 14.6291 12.54 14.2191 12.64 13.8191C12.94 12.6291 12.94 11.3691 12.64 10.1791C12.54 9.77906 12.78 9.36906 13.19 9.26906C13.59 9.16906 14 9.40906 14.1 9.81906C14.46 11.2491 14.46 12.7491 14.1 14.1791Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#ffffff" width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M21.65,2.24a1,1,0,0,0-.8-.23l-13,2A1,1,0,0,0,7,5V15.35A3.45,3.45,0,0,0,5.5,15,3.5,3.5,0,1,0,9,18.5V10.86L20,9.17v4.18A3.45,3.45,0,0,0,18.5,13,3.5,3.5,0,1,0,22,16.5V3A1,1,0,0,0,21.65,2.24ZM5.5,20A1.5,1.5,0,1,1,7,18.5,1.5,1.5,0,0,1,5.5,20Zm13-2A1.5,1.5,0,1,1,20,16.5,1.5,1.5,0,0,1,18.5,18ZM20,7.14,9,8.83v-3L20,4.17Z"/></svg>

After

Width:  |  Height:  |  Size: 556 B

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.4192 9.00047C20.2792 8.99047 20.0992 8.98047 19.8992 8.98047C19.5092 8.98047 19.1992 9.29047 19.1992 9.68047V14.3305C19.1992 14.7205 19.5092 15.0305 19.8992 15.0305C20.0992 15.0305 20.2692 15.0205 20.4392 15.0105C21.9992 14.8305 21.9992 13.7305 21.9992 12.9305V11.0705C21.9992 10.2705 21.9992 9.17047 20.4192 9.00047Z" fill="#ffffff"/>
<path d="M12.93 4.78906H7.35C3.25 4.78906 2 6.03906 2 10.1391V13.8591C2 17.9591 3.25 19.2091 7.35 19.2091H12.93C17.03 19.2091 18.28 17.9591 18.28 13.8591V10.1391C18.28 6.03906 17.03 4.78906 12.93 4.78906ZM7.1 14.1791C7.02 14.5191 6.71 14.7491 6.37 14.7491C6.31 14.7491 6.25 14.7391 6.19 14.7291C5.79 14.6291 5.54 14.2191 5.64 13.8191C5.94 12.6291 5.94 11.3691 5.64 10.1791C5.54 9.77906 5.78 9.36906 6.19 9.26906C6.59 9.16906 7 9.41906 7.1 9.81906C7.46 11.2491 7.46 12.7491 7.1 14.1791Z" fill="#ffffff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
assets/reboot.svg Normal file
View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 809 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

7
assets/shutdown.svg Normal file
View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 1.0 KiB

7
assets/suspend.svg Normal file
View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"/>

After

Width:  |  Height:  |  Size: 961 B

View File

@@ -4,7 +4,6 @@ import "." as Shell
ShellRoot {
Shell.Wall {}
Shell.Launcher {}
Shell.TopBar {}
Shell.Boateye {}
Shell.Lock {