# 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, 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 | | 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 | Package and UI support still to be completed | | GSConnect | No paired phone profile was present; KDE Connect support is staged | | 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. 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 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 `system-config-printer` package supplies the missing UI. 7. 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: ```sh sudo dnf install kde-connect qrencode 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: - - 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.