-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Appify 3.0 is a major architectural release. The core engine (isolated profiles, browser detection, launcher generation, Wayland/X11 handling) is unchanged from the mature 2.2.x line, but the entire UI layer was rewritten, and several new capabilities were added on top.
| What stays the same | What changed | |
|---|---|---|
| Data | App list, URLs, kiosk/gamepad flags, extension records, profiles, logins, cookies | Config directory preferred location is now ~/.appify (migration still user-confirmed) |
| Engine | Browser detection, wrapper generation, display-server flags, WebHID, nice/ionice | Improved Chromium text-input fixes, Firefox lock handling, Force X11/XWayland option |
| UI | All previous options remain available | Full rewrite from GTK4/libadwaita → PyQt6 + Griffin Dark/Light theme |
| Catalog | Built-in apps still exist | Now data-driven via remote store.json (no Appify update required to add apps) |
Bottom line for upgraders
- Your existing apps, profiles, and settings are preserved.
- You do not need to reinstall every PWA just because you moved to 3.0.
- You do need to regenerate wrappers (or reinstall) if you want the newest Chromium input fixes, Force X11 mode, or updated Firefox lock handling.
- If you are still on
~/.pwa_manager, use Menu → Migrate to .appify… when ready.
The entire UI was rewritten from GTK4/libadwaita to PyQt6. Functionality is identical; only the toolkit and visual style changed.
- Griffin Dark Theme (default) — deep navy backgrounds, blue accents, matching the rest of the Griffin toolset.
- Griffin Light Theme — fully supported and fixed in 3.0.1+.
- Toggle lives in the toolbar (Dark Mode / Light Mode).
Apps and extension presets are no longer hard-coded inside Appify.
- Catalog is fetched from GitHub (
store.json), validated, and cached locally (~/.appify/store_cache.json). - New default apps and extension presets can ship without an Appify release.
- The official catalog is protected by GitHub CODEOWNERS.
- Menu → Refresh Catalog forces a re-fetch.
- Menu → Restore Default Apps re-applies the catalog (does not touch installed profiles).
A prominent ▶ Launch App button lets you test any installed app directly from the manager without opening your application menu.
All advanced settings are now in a collapsible panel with tooltips:
- Kiosk Mode
- GPU Acceleration
- Force X11/XWayland Mode (new) — routes Chromium-based apps through XWayland to work around upstream Chromium Wayland text-input-v3 bugs
- WebHID Gamepad
- Nice / I/O priority
- Firefox
userChrome.css/userContent.css(now editable as raw text fields, not just file paths)
- On X11, Chromium-based wrappers now export
GTK_IM_MODULE=ximso text fields accept keystrokes instead of only showing a blinking caret. - On Wayland, the new Force X11/XWayland option works around Chromium’s native text-input-v3 issues that can appear or worsen after browser updates.
- Existing apps need Regenerate All Wrappers (or a reinstall) to pick these up.
- Auto-download still works (icon.horse → Google → site favicon).
- You can now browse for a custom PNG/JPEG/GIF/BMP/ICO/SVG.
- “Reset to Auto” discards the custom icon and re-downloads the favicon.
- Custom icons are marked in
profile.jsonso future updates do not overwrite them.
- Sort apps by Name, Category, Recently Used, or Installed First.
- Install All in Category — installs every missing catalog app in a chosen category.
- Backup All Installed Apps.
-
Update Settings (Menu) — check for Appify updates, one-click download & install (AppImage or
.deb), optional systemd timer for automatic checks (hourly / daily / weekly / custom).
- Opening the extension store (or adding a custom extension) while the app is already running now correctly remotes the URL into the existing window instead of showing “Firefox is already running, but is not responding”.
- Stale profile locks from crashes are detected and cleared automatically.
Categories now include (among others):
AI & Search · Productivity · Communication · Social · Streaming · Cloud Gaming · Art & Design · Streaming Tools · Utilities · Shopping · News & Knowledge · Developer Tools · Education · Music · Finance
- Install Appify 3.0 (
.debor AppImage). - Launch it. Your config is read automatically.
- If you are still on
~/.pwa_manager, the migration dialogue appears (or use Menu → Migrate to .appify…). - Optional but recommended: Menu → Regenerate All Wrappers so every installed app picks up the 3.0.2 Chromium input fixes and latest Firefox lock handling.
- (Optional) Open Update Settings and enable automatic update checks if desired.
No per-app reinstall is required for a normal 2.2 → 3.0 upgrade.
- Install Appify 3.0.
- On first launch, the config is migrated (apps, global settings).
- Complete the
.appifydirectory migration if prompted. - Reinstall each installed PWA once (or use Regenerate All Wrappers after the first successful install of one app) so launch scripts are rebuilt with modern browser detection, Wayland/X11 flags, and the new input fixes.
- Re-check Kiosk, Gamepad, and GPU settings for cloud-gaming apps — these flags are reapplied on Install/Update Settings.
- Introduced in 2.2.3, still present and recommended in 3.0.
- User-confirmed only; nothing is deleted.
- After migration, some browser extensions may appear disabled (browser limitation caused by the path change). Open the app’s browser → extension manager → Repair (or toggle off/on). Ad blockers are the most commonly affected.
- Trigger anytime: Menu → Migrate to .appify…
| Item | Path |
|---|---|
| Config | ~/.appify/config.json |
| Profiles | ~/.appify/profiles/<slug>/ |
| Launchers | ~/.appify/scripts/pwa-launch-<slug>.sh |
| Desktop files | ~/.local/share/applications/pwa-<slug>-manager.desktop |
| Icons | ~/.local/share/icons/hicolor/512x512/apps/<slug>.png |
| Backups | ~/.appify/.backup/<slug>/ |
| Store cache | ~/.appify/store_cache.json |
| Launch log | ~/.appify/launch.log |
Legacy path ~/.pwa_manager continues to work until you migrate.
-
Default browser is still auto-detected every startup from
xdg-settings/ mimeapps /gio. - Per-app browser choice is stored in
profile.jsonand is never overwritten by the global default. -
browser_override(hard lock) andrecommended_browser(soft suggestion) from the catalog are respected. - Global GPU / x11_fallback / kiosk / nice / ionice defaults live in
config.json; per-app values live inprofile.json. - Firefox CSS is now stored as the actual CSS text in
profile.json(userChrome/userContent) and written to<profile>/chrome/on every install/regenerate. - Stale Firefox launch args that still contained
--user-data-dirare automatically corrected on startup and wrappers are regenerated.
| Feature | Appify 3.0 | Linux Mint Web App Manager | Browser “Install as App” (Chrome/Edge/Brave) | Nativefier / Pake | WebCatalog | Lycan |
|---|---|---|---|---|---|---|
| Engine | Your already-installed browser (native / Flatpak / Snap) | Your installed browser | Same browser instance | Bundled Electron or system WebView | Bundled / managed Chromium | WebKitGTK (wry) |
| Profile isolation | Full per-app profile | Per-app profile | Shared with main browser profile | Separate app data dir | Multi-profile / workspaces | Per-app profile |
| True isolation (cookies, extensions, storage) | Yes | Partial / limited | No | Yes (separate process) | Yes | Yes |
| Uses existing browser | Yes (no extra Chromium download) | Yes | Yes | No (bundles or WebView) | Usually no | No (WebKit) |
| Browser choice | Firefox, Edge, Brave, Chrome, Chromium, Vivaldi, Opera, Ungoogled | Multiple installed browsers | Only the browser you are using | N/A | Managed | Fixed WebKit |
| Wayland / X11 aware | Full (Ozone flags, compositor detection, Force X11 option) | Basic | Browser’s own | Tool-dependent | Limited on Linux | Basic |
| Extension support | Per-app presets + custom + store launcher | Limited | Shared with main profile | Possible but manual | Limited | Built-in ad/tracker blocker |
| Catalog of popular sites | Data-driven store.json (expandable without release) |
Manual only | None | None | Large commercial catalog | Manual |
| Kiosk / fullscreen | Yes | Limited | Browser dependent | Configurable | Limited | Limited |
| Gamepad / WebHID | Explicit flags + portal check | No | Browser default | No | No | No |
| Custom CSS (Firefox) | userChrome + userContent editors | No | No | No | No | No |
| Custom icons | Auto + manual (many formats) | Yes | Browser icon | Yes | Yes | Yes |
| Backup / export / import | Per-app + full data export/import | No | No | Manual | Cloud sync (paid) | Manual |
| Self-update of the manager | Built-in (deb + AppImage) + optional timer | Distro packages | N/A | Manual | Yes | Manual |
| GUI | Full PyQt6 (Griffin theme) | Simple GTK | Browser UI | CLI / simple | Polished commercial | TUI + CLI |
| Platform | Linux (systemd-based; .deb + AppImage) | Linux Mint (and Debian/Ubuntu via package) | All platforms the browser supports | Cross-platform | Cross-platform (Linux experimental) | Linux |
| License / cost | GPL-3.0, free | GPL, free | Free (browser) | Open-source, free | Freemium | Open-source, free |
| Best for | Power users who want isolation, multi-browser, gaming, and deep control | Simple one-click web apps on Mint | Casual “pin this site” use | Portable standalone binaries | Multi-account / workspace users | Lightweight WebKit-based apps |
Summary
- Browser built-in “Install as App” — simplest, but shares your main profile (no real isolation).
- Linux Mint Web App Manager — excellent for basic use; lighter feature set than Appify.
- Nativefier / Pake — produce standalone binaries; heavier (Electron) or WebView-based; no reuse of your existing browser.
- WebCatalog — strong multi-account / workspace story; commercial; Linux support is secondary.
- Lycan — minimal WebKit-based manager; good if you specifically want WebKit instead of Chromium/Firefox.
- Appify — deepest control on Linux when you already have browsers installed and want true per-app isolation, extension presets, Wayland correctness, cloud-gaming flags, backups, and a modern-themed GUI.
- Confirm session type and browsers in the System banner.
- Migrate to
~/.appifyif you have not already. - Regenerate All Wrappers (especially important for the 3.0.2 text-input fixes).
- Test one or two cloud-gaming or frequently used apps with the new Launch button.
- Optionally enable automatic Appify updates under Update Settings.
- Refresh the catalog if you want the latest default apps and extension presets.
Typing does not work in Chromium-based app windows (blinking caret only)
- On X11: regenerate wrappers (GTK_IM_MODULE=xim is now injected).
- On Wayland: enable Force X11/XWayland Mode in Advanced Options, then regenerate or reinstall the app.
Firefox extension store / custom extension fails with “already running”
Fixed in 3.0. The store now remotes into the existing window or clears stale locks. Regenerate wrappers if you are still on an older wrapper.
Extensions disabled after migrating to ~/.appify
Browser limitation. Open the app → extension manager → Repair / toggle.
Catalog empty or outdated
Menu → Refresh Catalog. Requires network access to GitHub.
Self-update fails
Confirm install type (AppImage vs deb) under Update Settings. AppImage updates overwrite the binary in place; deb uses apt-get via pkexec.
Wrappers still reference old paths after migration
Menu → Regenerate All Wrappers.
| Version | Highlights |
|---|---|
| 1.x | Initial GTK-based manager, hard-coded browser commands |
| 2.0 | Intelligent browser detection, native Wayland/X11, expanded browsers |
| 2.2.x | Categories, profile size, Regenerate Wrappers, .appify migration, Export/Import, userChrome |
| 3.0 | PyQt6 + Griffin theme, store.json catalog, Launch button, custom icons, bulk actions, self-updater |
| 3.0.1 | Light/dark theme fixes |
| 3.0.2 | Chromium X11 input fix + Force X11/XWayland option |
Appify Migration & Architecture Guide — covers v1.x / v2.x → v3.0 (current as of 3.0.2)
https://github.com/bobbycomet/Appify