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 |
|
| Overview | Continuum filmstrip, large workspace preview, cross-workspace search | Live |
|
||||||
| Minimise | `SUPER+SHIFT+X` sends to scratchpad; `SUPER+X` restores | Live |
|
| Minimise | `SUPER+SHIFT+X` sends to scratchpad; `SUPER+X` restores | Live |
|
||||||
| Dock | Quickshell dock with GNOME favourites and intellihide | 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 |
|
| Clipboard history | Vicinae owns capture/storage; Quickshell provides the panel | Live |
|
||||||
| Notifications | Quickshell server, toasts, grouped history, DND, clear actions | 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
| Caffeine | Replaced by a real logind inhibitor in quick settings |
|
||||||
| Blur My Shell / Openbar / User Theme | Replaced by the Prism shell and compositor blur |
|
| Blur My Shell / Openbar / User Theme | Replaced by the Prism shell and compositor blur |
|
||||||
| Bluetooth Quick Connect | Replaced by the full Bluetooth picker |
|
| Bluetooth Quick Connect | Replaced by the full Bluetooth picker |
|
||||||
| Wi-Fi QR | Package and UI support still to be completed |
|
| 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 support is staged |
|
| 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 |
|
| 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 |
|
| 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 |
|
| 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
|
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.
|
a polished general-purpose desktop can go beyond the current shell.
|
||||||
|
|
||||||
1. Calendar events, not just the month grid. The right integration point is
|
1. Home Assistant favourites in a dedicated, secure quick panel. The token must
|
||||||
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
|
|
||||||
stay in the keyring or a private state file, never in this repository.
|
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
|
2. Phone integration through KDE Connect, including battery/share status in the
|
||||||
tray. The package is staged but needs installation and a new pairing.
|
tray. The package is installed and ready for a new pairing.
|
||||||
5. Connected-network QR sharing after `qrencode` is installed. Password access
|
3. A printer administration GUI. CUPS is already active; the
|
||||||
must be on demand and must never enter shell logs.
|
|
||||||
6. A printer administration GUI. CUPS is already active; the staged
|
|
||||||
`system-config-printer` package supplies the missing UI.
|
`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.
|
cannot prove what a remote client sees or whether input is accepted.
|
||||||
|
|
||||||
Packages staged in `setup/packages/hyprland-packages` but not installed in the
|
Supporting packages tracked in `setup/packages/hyprland-packages`:
|
||||||
current session because privilege escalation requires an interactive password:
|
|
||||||
|
|
||||||
```sh
|
```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
|
## 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
|
`E` mail · `I` Panama Settings · `CTRL + SHIFT + Esc` system monitor. GNOME
|
||||||
Settings remains searchable in Vicinae for hardware and account panels.
|
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
|
## Screen Intelligence
|
||||||
|
|
||||||
`SUPER + SHIFT + S` opens the capture picker directly in Selection + Read
|
`SUPER + SHIFT + S` opens the capture picker directly in Selection + Read
|
||||||
|
|||||||
@@ -387,7 +387,7 @@ Allow Quickshell to hot reload, then run:
|
|||||||
```bash
|
```bash
|
||||||
tests/quickshell/calendar-agenda-contract.sh
|
tests/quickshell/calendar-agenda-contract.sh
|
||||||
tests/quickshell/calendar-agenda-helper-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.
|
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.
|
- Consumes: completed helper, service, Daybook, capsule, and test suite.
|
||||||
- Produces: documented live behavior and a pushed sequence of reviewed commits.
|
- 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:
|
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.
|
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
|
||||||
bash -n tests/quickshell/*.sh config/dot/quickshell/scripts/screen-intelligence
|
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`.
|
Expected: every command exits 0 and Hyprland reports `config ok`.
|
||||||
|
|
||||||
- [ ] **Step 3: Run every Quickshell contract**
|
- [x] **Step 3: Run every Quickshell contract**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
for test in tests/quickshell/*.sh; do
|
for test in tests/quickshell/*.sh; do
|
||||||
@@ -765,7 +765,7 @@ done
|
|||||||
|
|
||||||
Expected: all prior contracts plus both calendar contracts report PASS.
|
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:
|
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.
|
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
|
```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 status --short
|
||||||
git diff --stat 5248883..HEAD
|
git diff --stat 5248883..HEAD
|
||||||
git diff --check 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.
|
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:
|
Mark completed checkboxes only after their commands actually passed, then:
|
||||||
|
|
||||||
|
|||||||
@@ -228,8 +228,9 @@ continuous animation.
|
|||||||
`Open Calendar`.
|
`Open Calendar`.
|
||||||
- Malformed event fields are omitted individually rather than crashing the
|
- Malformed event fields are omitted individually rather than crashing the
|
||||||
service.
|
service.
|
||||||
- Event summaries, locations, URLs, and account names are never written to shell
|
- Live event summaries, locations, URLs, and account names are never written to
|
||||||
logs, settings, fixture files, or repository content.
|
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.
|
- The bridge does not access EDS authentication extensions or credential stores.
|
||||||
- URL actions require a user click and only allow `https://` links.
|
- URL actions require a user click and only allow `https://` links.
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ adwaita-sans-fonts
|
|||||||
qt6-qtwayland
|
qt6-qtwayland
|
||||||
nm-connection-editor
|
nm-connection-editor
|
||||||
kde-connect
|
kde-connect
|
||||||
qrencode
|
|
||||||
tesseract
|
tesseract
|
||||||
tesseract-langpack-eng
|
tesseract-langpack-eng
|
||||||
zbar
|
zbar
|
||||||
|
|||||||
Reference in New Issue
Block a user