aboutsummaryrefslogtreecommitdiffstats
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/Drawer.qml30
-rw-r--r--desktop/README.md10
-rw-r--r--desktop/shell.qml7
3 files changed, 33 insertions, 14 deletions
diff --git a/desktop/Drawer.qml b/desktop/Drawer.qml
index 2151547..0458418 100644
--- a/desktop/Drawer.qml
+++ b/desktop/Drawer.qml
@@ -176,10 +176,38 @@ Scope {
UserRow {
id: user
- anchors { top: parent.top; left: parent.left; right: parent.right }
+ anchors { top: parent.top; left: parent.left; right: gear.left; rightMargin: 8 }
onClicked: root.show("user")
}
+ // The settings window, beside the user header: it is not
+ // a quick setting, so it is not a tile.
+ Rectangle {
+ id: gear
+ anchors { top: parent.top; right: parent.right; topMargin: (user.height - height) / 2 }
+ width: 40; height: 40; radius: 20
+ color: gearArea.containsMouse ? Qt.alpha(Theme.accent, 0.22) : "transparent"
+
+ Text {
+ anchors.centerIn: parent
+ // nf-fa-gear, present in Inconsolata Nerd Font.
+ text: "\uf013"
+ font { family: Theme.iconFamily; pixelSize: 20 }
+ color: Theme.text
+ }
+
+ MouseArea {
+ id: gearArea
+ anchors.fill: parent
+ hoverEnabled: true
+ cursorShape: Qt.PointingHandCursor
+ onClicked: {
+ root.close();
+ root.settingsWindow?.show("");
+ }
+ }
+ }
+
// The notification engine's space. The live queue lists
// here while the drawer is open; the balloons stand down
// because the drawer flag above is set.
diff --git a/desktop/README.md b/desktop/README.md
index fe189a0..1c7d781 100644
--- a/desktop/README.md
+++ b/desktop/README.md
@@ -30,7 +30,7 @@ The drawer is the quick area: live state, and things toggled often. Pages
that are set once and left alone live in a settings window instead, a normal
Hyprland window rather than a layer surface, with those pages listed down its
left. A module joins it with `settings: true`, which also drops its tile. The
-gear tile opens it, and so does IPC:
+gear beside the user header opens it, as do SUPER+Return and IPC:
qs -p ./desktop ipc call settings open autostart
qs -p ./desktop ipc call settings toggle
@@ -97,9 +97,8 @@ which: it reads those properties and does the obvious thing. A page is wrapped
in `Page.qml` for the header and back arrow, and a tile with no page is
fire-and-forget, so its click calls `activate()` and closes the drawer.
-The settings gear in `shell.qml` is the smallest complete example: a name, an
-icon, and an `activate()` that opens the settings window, with no page and no
-service. Sound, mail, vm, network, bluetooth and kdeconnect each add a service
+A tile with no page is the smallest complete example: a name, an icon, and an
+`activate()`, with no page and no service. Sound, mail, vm, network, bluetooth and kdeconnect each add a service
and a page on top of that same shape; `modules/appearance/ThemeModule.qml` is
a small settings page.
@@ -148,8 +147,7 @@ below it sits where it will sit once notifications arrive. The bottom is a
fourth row scrolls inside that box rather than pushing into the notification
space, and a thin accent bar in the margin shows only when a row is hidden.
The order is Sound, Network, Bluetooth, KDE Connect, Mail, Status,
-Performance, Clipboard, VMs, AI, then the settings gear, the everyday ones
-first.
+Performance, Clipboard, VMs, AI, the everyday ones first.
A page can close the whole drawer by emitting `dismiss` from its `Page`, as
the clipboard does after a copy; `back` returns to the grid.
diff --git a/desktop/shell.qml b/desktop/shell.qml
index bb8c1df..3cbfe51 100644
--- a/desktop/shell.qml
+++ b/desktop/shell.qml
@@ -74,13 +74,6 @@ ShellRoot {
AiModule {},
UserModule {},
NotesModule {},
- // The settings window's entry point, a tile like the others.
- Module {
- name: "settings"
- // nf-fa-gear, present in Inconsolata Nerd Font.
- icon: "\uf013"
- function activate() { settings.show(""); }
- },
WallpaperModule {},
ThemeModule {},
IconsModule {},