Added a clear all notifications button and an AGENTS.md file for llms to

test their effectiveness
This commit is contained in:
2026-05-06 18:34:10 -04:00
parent 79f8a99c86
commit e4ee6c6caa
3 changed files with 110 additions and 68 deletions

23
AGENTS.md Normal file
View File

@@ -0,0 +1,23 @@
# Agent Guidance: Quickshell Project
## Core Architecture
- **Type**: Quickshell/QML based UI.
- **State Management**: Heavily reliant on QML Singletons for global state, configuration, and paths.
- **Main Entry**: `shell.qml`.
## Key Singletons
- `GlobalStates.qml`: Manages global UI visibility (e.g., `mediaControlsOpen`, `notificationPanelOpen`).
- `common/Config.qml`: Manages JSON configuration and watches for file changes.
- `common/Directories.qml`: Defines XDG and repository-specific file paths.
- `common/Appearance.qml`: Handles theme, colors, and transparency.
## Component Structure
- `bar/`: Top bar components.
- `osd/`: On-screen display components.
- `background/`: Background/Wallpaper components.
- `common/`: Shared utility and singleton components.
- `settings/`: Settings/Configuration components.
- `settings.qml`: Settings view entry point.
## Development Workflow
- *TBD*: Check for build/lint/test commands (e.g., `npm`, `make`, or direct `quickshell` execution).

View File

@@ -7,6 +7,12 @@ Singleton {
readonly property list<Notification> notifications: server.trackedNotifications.values
readonly property int amountNotifications: notifications.length
function dismissAll() {
for (let i = notifications.length - 1; i >= 0; i--) {
notifications[i].dismiss();
}
}
NotificationServer {
id: server
actionsSupported: true

View File

@@ -5,6 +5,7 @@ import Quickshell.Wayland
import Quickshell.Services.Notifications
import qs
import qs.common
import qs.common.widgets
Scope {
id: root
@@ -35,7 +36,6 @@ Scope {
implicitWidth: root.panelWidth
anchors {
top: true
right: true
@@ -63,11 +63,24 @@ Scope {
onEntered: () => {
hideTimer.stop();
}
ColumnLayout {
id: notifs
anchors.margins: 4
Layout.fillWidth: true
anchors.left: parent.left
anchors.right: parent.right
visible: NotificationService.amountNotifications > 0
// Dismiss All Button
RippleButton {
buttonText: "Dismiss All"
buttonTextColor: Appearance.m3colors.m3onTertiaryContainer
colBackground: Appearance.m3colors.m3tertiaryContainer
releaseAction: NotificationService.dismissAll
buttonRadius: Appearance.rounding.unsharpenmore
}
Repeater {
model: NotificationService.notifications
NotificationItem {