Document the Panama calendar agenda
This commit is contained in:
@@ -17,10 +17,11 @@ Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0.
|
||||
| Overview | Continuum filmstrip, large workspace preview, cross-workspace search | Live |
|
||||
| Minimise | `SUPER+SHIFT+X` sends to scratchpad; `SUPER+X` restores | Live |
|
||||
| Dock | Quickshell dock with GNOME favourites and intellihide | Live |
|
||||
| Panel | Workspaces, CPU/RAM/GPU, clock, weather, media, clipboard, tray, status | Live |
|
||||
| Panel | Workspaces, CPU/RAM/GPU, clock, weather, quiet event capsule, media, clipboard, tray, status | Live |
|
||||
| Clipboard history | Vicinae owns capture/storage; Quickshell provides the panel | Live |
|
||||
| Notifications | Quickshell server, toasts, grouped history, DND, clear actions | Live |
|
||||
| Date menu | Notifications, month calendar, weather, conditional media card | Live |
|
||||
| Date menu | Two-column Daybook with EDS agenda, notifications, month calendar, weather, and media | Live |
|
||||
| Calendar agenda | Existing GNOME, Google, iCloud, and Nextcloud sources through Evolution Data Server | Live |
|
||||
| Quick settings | Wi-Fi, Bluetooth, audio input/output, caffeine, night light, focus | Live |
|
||||
| Focus sessions | Persistent workspace-bound timer, DND/caffeine coordination, Signal Glass controls | Live |
|
||||
| Brightness | Appears only when a backlight device exists | Live, not applicable on this monitor |
|
||||
@@ -49,8 +50,8 @@ Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0.
|
||||
| Caffeine | Replaced by a real logind inhibitor in quick settings |
|
||||
| Blur My Shell / Openbar / User Theme | Replaced by the Prism shell and compositor blur |
|
||||
| Bluetooth Quick Connect | Replaced by the full Bluetooth picker |
|
||||
| Wi-Fi QR | Package and UI support still to be completed |
|
||||
| GSConnect | No paired phone profile was present; KDE Connect support is staged |
|
||||
| Wi-Fi QR | Deliberately omitted; it is not useful enough to justify another credential-reading surface |
|
||||
| GSConnect | No paired phone profile was present; KDE Connect is installed and awaiting pairing |
|
||||
| Home Assistant | Useful integration, but needs a purpose-built panel and secure credential migration |
|
||||
| Custom Hot Corners Extended | No action was configured, so there is no behavior to port |
|
||||
| App Hider | Hidden app list is now applied in Vicinae |
|
||||
@@ -61,25 +62,19 @@ Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0.
|
||||
These are not blockers for normal use, but they are the remaining places where
|
||||
a polished general-purpose desktop can go beyond the current shell.
|
||||
|
||||
1. Calendar events, not just the month grid. The right integration point is
|
||||
Evolution Data Server so existing GNOME/Google calendars remain the source
|
||||
of truth.
|
||||
2. Home Assistant favourites in a dedicated, secure quick panel. The token must
|
||||
1. Home Assistant favourites in a dedicated, secure quick panel. The token must
|
||||
stay in the keyring or a private state file, never in this repository.
|
||||
4. Phone integration through KDE Connect, including battery/share status in the
|
||||
tray. The package is staged but needs installation and a new pairing.
|
||||
5. Connected-network QR sharing after `qrencode` is installed. Password access
|
||||
must be on demand and must never enter shell logs.
|
||||
6. A printer administration GUI. CUPS is already active; the staged
|
||||
2. Phone integration through KDE Connect, including battery/share status in the
|
||||
tray. The package is installed and ready for a new pairing.
|
||||
3. A printer administration GUI. CUPS is already active; the
|
||||
`system-config-printer` package supplies the missing UI.
|
||||
7. A real external RustDesk test while hyprlock is active. Local process state
|
||||
4. A real external RustDesk test while hyprlock is active. Local process state
|
||||
cannot prove what a remote client sees or whether input is accepted.
|
||||
|
||||
Packages staged in `setup/packages/hyprland-packages` but not installed in the
|
||||
current session because privilege escalation requires an interactive password:
|
||||
Supporting packages tracked in `setup/packages/hyprland-packages`:
|
||||
|
||||
```sh
|
||||
sudo dnf install kde-connect qrencode system-config-printer tesseract zbar
|
||||
sudo dnf install kde-connect system-config-printer tesseract zbar
|
||||
```
|
||||
|
||||
## Global menu decision
|
||||
|
||||
@@ -187,6 +187,24 @@ The mental model is unchanged from Forge:
|
||||
`E` mail · `I` Panama Settings · `CTRL + SHIFT + Esc` system monitor. GNOME
|
||||
Settings remains searchable in Vicinae for hardware and account panels.
|
||||
|
||||
## Calendar and notifications
|
||||
|
||||
Click the clock to open the two-column Daybook on **Agenda**. The month grid,
|
||||
today's schedule, Up Next, weather, and conditional media controls stay visible
|
||||
together. `SUPER + B` opens **Notifications** in that same surface; returning to
|
||||
Agenda preserves the selected date and visible month.
|
||||
|
||||
Calendar data comes from Evolution Data Server, so the Google, iCloud,
|
||||
Nextcloud, and local calendars already configured for GNOME remain the source
|
||||
of truth. Panama never stores account credentials. Use GNOME Calendar or Online
|
||||
Accounts to add and manage accounts, and click an event in Daybook to hand off
|
||||
editing and full detail to GNOME Calendar.
|
||||
|
||||
The right side of the bar shows a small calendar capsule only from 15 minutes
|
||||
before a timed event until 5 minutes after it starts. It displays relative time
|
||||
(`12m` or `Now`); the event title is available on hover but otherwise stays out
|
||||
of the bar. All-day events never trigger the capsule.
|
||||
|
||||
## Screen Intelligence
|
||||
|
||||
`SUPER + SHIFT + S` opens the capture picker directly in Selection + Read
|
||||
|
||||
@@ -387,7 +387,7 @@ Allow Quickshell to hot reload, then run:
|
||||
```bash
|
||||
tests/quickshell/calendar-agenda-contract.sh
|
||||
tests/quickshell/calendar-agenda-helper-contract.sh
|
||||
qs log -n 80 | rg -i 'calendar|error|warn'
|
||||
qs log -n -t 80 --no-color | rg -i 'calendar|error|warn'
|
||||
```
|
||||
|
||||
Expected: both contracts PASS; no calendar QML error or bridge restart loop.
|
||||
@@ -723,7 +723,7 @@ git commit -m "Add the quiet calendar capsule"
|
||||
- Consumes: completed helper, service, Daybook, capsule, and test suite.
|
||||
- Produces: documented live behavior and a pushed sequence of reviewed commits.
|
||||
|
||||
- [ ] **Step 1: Update parity and operator documentation**
|
||||
- [x] **Step 1: Update parity and operator documentation**
|
||||
|
||||
In DESKTOP-PARITY:
|
||||
|
||||
@@ -742,7 +742,7 @@ In Hyprland README document:
|
||||
|
||||
Remove `qrencode` from `setup/packages/hyprland-packages` only if `rg -n qrencode .` confirms no remaining runtime consumer.
|
||||
|
||||
- [ ] **Step 2: Run static verification**
|
||||
- [x] **Step 2: Run static verification**
|
||||
|
||||
```bash
|
||||
bash -n tests/quickshell/*.sh config/dot/quickshell/scripts/screen-intelligence
|
||||
@@ -755,7 +755,7 @@ git diff --check
|
||||
|
||||
Expected: every command exits 0 and Hyprland reports `config ok`.
|
||||
|
||||
- [ ] **Step 3: Run every Quickshell contract**
|
||||
- [x] **Step 3: Run every Quickshell contract**
|
||||
|
||||
```bash
|
||||
for test in tests/quickshell/*.sh; do
|
||||
@@ -765,7 +765,7 @@ done
|
||||
|
||||
Expected: all prior contracts plus both calendar contracts report PASS.
|
||||
|
||||
- [ ] **Step 4: Verify the live calendar without leaking content**
|
||||
- [x] **Step 4: Verify the live calendar without leaking content**
|
||||
|
||||
Reset fixture mode and refresh:
|
||||
|
||||
@@ -778,10 +778,10 @@ Poll status until `phase` is `ready` or `degraded`. Assert `sourceCount > 0`; re
|
||||
|
||||
Test a Join action only when a recognized URL is already present; opening that URL is an external navigation and requires an explicit click in the local UI. Do not fabricate or modify an event for testing.
|
||||
|
||||
- [ ] **Step 5: Review logs and the complete diff**
|
||||
- [x] **Step 5: Review logs and the complete diff**
|
||||
|
||||
```bash
|
||||
qs log -n 250 | rg -i 'calendar|qml|error|warn'
|
||||
qs log -n -t 250 --no-color | rg -i 'calendar|qml|error|warn'
|
||||
git status --short
|
||||
git diff --stat 5248883..HEAD
|
||||
git diff --check 5248883..HEAD
|
||||
@@ -789,7 +789,7 @@ git diff --check 5248883..HEAD
|
||||
|
||||
Expected: no calendar QML errors, no bridge restart loop, no secrets, and only calendar/planned-roadmap changes beyond the already-approved desktop snapshot.
|
||||
|
||||
- [ ] **Step 6: Mark this plan complete and commit documentation**
|
||||
- [x] **Step 6: Mark this plan complete and commit documentation**
|
||||
|
||||
Mark completed checkboxes only after their commands actually passed, then:
|
||||
|
||||
|
||||
@@ -228,8 +228,9 @@ continuous animation.
|
||||
`Open Calendar`.
|
||||
- Malformed event fields are omitted individually rather than crashing the
|
||||
service.
|
||||
- Event summaries, locations, URLs, and account names are never written to shell
|
||||
logs, settings, fixture files, or repository content.
|
||||
- Live event summaries, locations, URLs, and account names are never written to
|
||||
shell logs, settings, fixture files, or repository content. Synthetic fixture
|
||||
copy is intentionally generic.
|
||||
- The bridge does not access EDS authentication extensions or credential stores.
|
||||
- URL actions require a user click and only allow `https://` links.
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ adwaita-sans-fonts
|
||||
qt6-qtwayland
|
||||
nm-connection-editor
|
||||
kde-connect
|
||||
qrencode
|
||||
tesseract
|
||||
tesseract-langpack-eng
|
||||
zbar
|
||||
|
||||
Reference in New Issue
Block a user