-
Notifications
You must be signed in to change notification settings - Fork 1
FAQs
Appify is a Linux desktop utility that turns any website into a real, isolated desktop app using a browser you already have installed (Firefox, Edge, Brave, Chrome, Chromium, Vivaldi, Opera, or Ungoogled Chromium — native, Flatpak, or Snap).
Each app gets:
- Its own browser profile (cookies, logins, storage, and extensions stay separate)
- Its own launcher script and
.desktopfile - Its own icon
- Optional kiosk mode, WebHID/gamepad flags, custom CSS (Firefox), and performance tuning
Installs typically complete in under a second. Everything is managed through a graphical interface — no terminal required for normal use.
Browser “Install as App” / PWA install mostly creates a shortcut that still uses your main browser profile.
That means:
- Cookies, history, and storage are shared with normal browsing
- Extensions load for every site (or none)
- Taskbar/dock entries often still look like the browser itself
- One compromised or misbehaving site can affect everything else in that profile
Appify creates a fully separate profile per app. Nothing is shared with your main browser or with other Appify apps unless you deliberately clone or copy data.
Yes. All Appify data lives locally under ~/.appify/ (or ~/.pwa_manager/ if you have not migrated yet).
Each PWA runs in its own isolated browser profile. Logins, cookies, local storage, and extensions for one app cannot be seen by another app or by your main browser.
Appify itself does not phone home with your browsing data. The only network calls it makes are:
- Fetching the optional app catalog (
store.json) from GitHub - Checking for Appify updates (when you enable that feature)
- Downloading favicons when you install an app
| Item | Location |
|---|---|
| Config | ~/.appify/config.json |
| App profiles | ~/.appify/profiles/<app-slug>/ |
| Launcher scripts | ~/.appify/scripts/ |
| Desktop files | ~/.local/share/applications/ |
| Icons | ~/.local/share/icons/hicolor/512x512/apps/ |
| Backups | ~/.appify/.backup/ |
| Catalog cache | ~/.appify/store_cache.json |
| Launch log | ~/.appify/launch.log |
Older installs may still use ~/.pwa_manager/. Use Menu → Migrate to .appify… to rename the directory in place. Nothing is deleted.
Usually no.
- Your app list, URLs, settings, and profiles are preserved.
- Launch scripts from 2.2.x continue to work.
- For the newest Chromium text-input fixes and Firefox lock handling, run Menu → Regenerate All Wrappers once after upgrading.
If you are coming from 1.x, reinstall (or regenerate wrappers for) each installed app so the launch scripts pick up modern browser detection and Wayland/X11 flags.
This is caused by upstream Chromium bugs in input-method handling.
On X11
Appify 3.0.2+ injects GTK_IM_MODULE=xim into Chromium-based wrappers. Regenerate wrappers (or reinstall the app) to pick it up.
On Wayland
Enable Force X11/XWayland Mode in Advanced Options, then regenerate wrappers or reinstall. This routes the app through XWayland and avoids Chromium’s native Wayland text-input-v3 issues that can appear or worsen after a browser update.
Firefox is not affected by these particular Chromium bugs.
| Browser | Native | Flatpak | Snap |
|---|---|---|---|
| Firefox | ✅ | ✅ | ✅ |
| Microsoft Edge | ✅ | ✅ | ✅ |
| Brave | ✅ | ✅ | ✅ |
| Vivaldi | ✅ | ✅ | ✅ |
| Google Chrome | ✅ | ✅ | ✅ |
| Chromium | ✅ | ✅ | ✅ |
| Opera | ✅ | ✅ | ✅ |
| Ungoogled Chromium | ✅ | — | — |
Appify detects which ones are installed at startup and when you click Rescan Browsers.
Yes. Each app remembers its own browser choice in its profile.json. Changing the global default (or your system default browser) does not overwrite per-app settings.
Some catalog apps may have a hard browser_override (for example, cloud-gaming titles that require Chromium). In that case, the browser dropdown is locked for that app.
- Presets — many catalog apps ship recommended extensions. Use Install Presets to open the correct store pages in the app’s profile.
- Open Store — opens the browser’s extension store inside the selected app’s profile.
- Add Custom — paste a name + HTTPS store URL (Chrome Web Store, Firefox Add-ons, Edge Add-ons, Opera Add-ons, or Google Workspace Marketplace).
Extension files live inside the browser profile. Appify only records the list of names/URLs so it can show them in the UI and warn you before backups/exports.
Important limitations
- Extensions cannot be reliably exported or transferred between machines (browser sandbox restriction).
- Before backing up or exporting, Appify warns you if extensions are present. For the cleanest backup, remove them first, then reinstall afterwards.
| Action | What it does |
|---|---|
| Uninstall | Removes the launcher, desktop file, and “installed” marker. Profile data (logins, etc.) is kept. |
| Delete App | Removes the app entry from the catalog list. You can choose to keep or delete the profile. |
Manually deleting ~/.appify/profiles/<slug>
|
Permanently removes that app’s browser data. |
-
Backup (per app) or Backup Manager creates a timestamped
.tar.gzunder~/.appify/.backup/<slug>/(up to 10 retained per app). - Backup All Installed Apps backs up every installed app in one pass.
- Restore overwrites the current profile for that app.
-
Export All Data zips the entire
~/.appifydirectory (with a warning about extensions). - Import All Data replaces the current data directory after first making a timestamped backup of what you already have, then regenerates wrappers for the current machine.
The profile path changed. Browsers sometimes treat that as a different location and mark extensions as corrupted or disabled. This is a browser limitation, not an Appify bug.
Open the affected app → its extension manager → click Repair (or disable/re-enable). Ad blockers are the most commonly affected.
On Wayland sessions, Chromium’s native text-input handling can drop keystrokes in --app windows (especially after certain Chromium updates). Enabling this option makes Chromium-based Appify apps run through XWayland instead of native Wayland Ozone, which avoids the bug.
It has no effect on X11 sessions or on Firefox. Leave it off unless you hit the typing problem.
Yes. Under Advanced Options you can paste:
-
userChrome.css— styles the browser chrome (tabs, toolbars, address bar) -
userContent.css— styles the page content
These are written into the app’s profile chrome/ directory on install/update/regenerate. They take effect on the next launch.
Note: userChrome.css is fragile. Firefox’s internal UI structure changes between releases and can silently break custom CSS. That is a Firefox limitation.
- Menu → Update Settings…
- Click Check Now.
- If a newer version is available, use Download & Install Update (works for both AppImage and
.debinstalls). - Optionally enable automatic checks on a schedule (hourly / daily / weekly / custom systemd timer).
You can also download releases manually from the GitHub Releases page.
- Check your network connection.
- Menu → Refresh Catalog.
- If it still fails, Appify continues with the last cached catalog (or offline mode). New default apps only appear after a successful fetch of
store.json.
Custom apps you added yourself are stored in your local config and are never removed by a catalog refresh.
Appify only offers browsers it can actually detect. Install the browser, then:
Menu → Rescan Browsers
If the browser is installed under an unusual name or path, detection may still fail. Native, Flatpak, and Snap installs of the supported browsers are recognised.
Desktop shortcuts stopped working after I switched from X11 to Wayland (or changed how a browser is installed)
The launcher scripts embed the session type and browser launch method that were current at install time.
Menu → Regenerate All Wrappers rewrites every installed app’s script and .desktop file for the current session and browser detection state. No profile data is touched.
The size is measured asynchronously from the on-disk profile directory. Apps that have never been launched (or have no profile yet) show a dash. Very large profiles can take a moment to calculate.
Appify itself runs without systemd. The optional automatic update timer requires systemd. Manual update checks and one-click install still work everywhere.
Supported packaging targets are primarily systemd-based distros via .deb and the universal AppImage.
They will update; they just take a moment. Twitch may take longer to display Watch Streak recovery confirmation when running Twitch in Appify's dedicated app window. The recovery itself can still register; the confirmation may appear after Twitch synchronizes the account state. Browser mode may display the confirmation sooner. This behavior originates from Twitch's web application and is not specific to Appify.
How to make sure:
- After watching a VOD or clip, click the same stream streak broke message.
- If the message sends you back to a VOD or clip, wait for 60 seconds, or reload the page
- Click the broken streak message again, and it should say "No available media meets requirements, as you already saved your streak" or a similar message
Not yet. Appify is currently Linux-only. A Windows version is planned but not released.
- Discord (Preferred) – Best for fast support, general questions, feature requests, and security vulnerabilities/exploits (to prevent public exposure before a fix is ready).
- GitHub Issues – For general bugs and public discussion.
When reporting a problem, include:
- Appify version (shown in the window title and About dialog)
- Distro and desktop environment / compositor
- Session type (Wayland or X11) — shown in the System banner
- Browser and install method (native / Flatpak / Snap)
- Relevant lines from
~/.appify/launch.log
| Term | Meaning |
|---|---|
| Profile | Isolated browser user-data directory for one app |
| Wrapper | The small shell script that launches the browser with the correct flags and profile |
| Catalog / store.json | Remote list of default apps and extension presets |
| Regenerate Wrappers | Rebuild all launcher scripts + desktop files without touching profile data |
| Kiosk | Fullscreen, minimal browser UI |
| WebHID / Gamepad | Extra Chromium flags for cloud-gaming controllers |
| Force X11/XWayland | Run Chromium apps through XWayland to avoid Wayland text-input bugs |
Appify FAQ — current as of 3.0.2
https://github.com/bobbycomet/Appify