97 lines
5.6 KiB
Markdown
97 lines
5.6 KiB
Markdown
# Panama desktop parity
|
|
|
|
This is the living inventory for the GNOME-to-Hyprland transition. It records
|
|
real behavior, not a one-for-one count of extensions: an enabled extension with
|
|
no configured action is not treated as missing functionality.
|
|
|
|
Last live audit: 2026-08-17, Fedora 44, Hyprland 0.56.2, Quickshell 0.3.0.
|
|
|
|
## Daily desktop surfaces
|
|
|
|
| Capability | Panama implementation | Status |
|
|
|---|---|---|
|
|
| App launcher and run dialog | Vicinae; Wofi emergency fallback | Live |
|
|
| App grid | Vicinae applications provider | Live |
|
|
| Hidden applications | GNOME App Hider list in Vicinae provider config | Live |
|
|
| Tiling and dynamic workspaces | Hyprland Lua config, Forge keymap preserved | Live |
|
|
| 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, 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 | 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 |
|
|
| AppIndicator / tray | Native StatusNotifierItem host and themed menus | Live |
|
|
| Screenshot and recording | Quickshell picker, grim/slurp/satty/wf-recorder | Live |
|
|
| Screen text and code recognition | Local Tesseract/ZBar Read mode, selectable Prism result sheet | Live after package install |
|
|
| Lock, idle, and power | hyprlock, hypridle, login1, Quickshell power menu | Live |
|
|
| Wallpaper | hyprpaper | Live |
|
|
| Keyring and authorization | gnome-keyring and hyprpolkitagent | Live |
|
|
| Portals and screen sharing | xdg-desktop-portal-hyprland plus GTK portal | Live |
|
|
| Removable media | udiskie plus udisks notifications | Live |
|
|
| Autostart apps | Nextcloud, Bitwarden, and RustDesk system service/tray | Live |
|
|
| System settings | Panama Settings for display policy, appearance, desktop, sound, focus, shortcuts, and services; labelled GNOME hardware/account handoffs | Live |
|
|
|
|
## GNOME extension migration
|
|
|
|
| GNOME extension | Result |
|
|
|---|---|
|
|
| Forge | Replaced by Hyprland tiling and the original keymap |
|
|
| Dash to Dock | Replaced by the Quickshell dock |
|
|
| AppIndicator | Replaced by the Quickshell system tray |
|
|
| Clipboard Indicator | Replaced by the bar clipboard panel and Vicinae history |
|
|
| Emoji Copy | Replaced by Vicinae emoji search on `SUPER+.` |
|
|
| Vitals | Replaced by the CPU, memory, and GPU bar readouts |
|
|
| Weather O'Clock | Replaced by bar weather and the date-menu weather card |
|
|
| 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 | 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 |
|
|
| Allow Locked Remote Desktop | Mutter-specific patch; RustDesk is independent, but lock-screen access needs a real remote test |
|
|
|
|
## System UI still worth adding
|
|
|
|
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. 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.
|
|
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.
|
|
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.
|
|
|
|
Supporting packages tracked in `setup/packages/hyprland-packages`:
|
|
|
|
```sh
|
|
sudo dnf install kde-connect system-config-printer tesseract zbar
|
|
```
|
|
|
|
## Global menu decision
|
|
|
|
A macOS-style global application menu is not being shipped. Quickshell can
|
|
render a `DBusMenu` that an application already exports, but it does not provide
|
|
an application-menu registrar or a reliable focused-window-to-menu association.
|
|
Hyprland has no cross-toolkit global-menu protocol, and the daily applications
|
|
audited here do not consistently export one: GTK 4/Nautilus and Electron apps
|
|
are the important failures.
|
|
|
|
That would produce a premium-looking empty strip for most windows and a working
|
|
menu for a minority, which is worse than omitting it. Relevant references:
|
|
|
|
- <https://quickshell.org/docs/v0.3.0/types/Quickshell/DBusMenu/>
|
|
- <https://github.com/hyprwm/Hyprland/discussions/1358>
|
|
|
|
A future focused-window menu could expose compositor actions such as float,
|
|
move, fullscreen, and close. It should not be labelled as an application menu.
|