Desktop applications
Where an app comes from:
| The app | Get it from |
|---|---|
| A desktop app, especially a proprietary one (chat, office suites, browsers, music, video calls, IDEs) | Flathub, for the person (--user): no password, no system rebuild, its own updates |
| A command-line tool, a service, a driver, anything system-wide | nixpkgs, through the system configuration (see the slateos-system skill) |
An .AppImage the person downloaded | run it directly: chmod +x file.AppImage && ./file.AppImage |
| Another downloaded Linux program | usually runs as is (nix-ld provides the usual libraries); if it does not, look for it on Flathub or in nixpkgs |
Find
flatpak search <words> # name, ID, version, branch
flatpak remote-info --user flathub <ID> # fails if Flathub has no build for this computer's architecture
Tier: observe. Some proprietary apps exist only for x86_64 (Chrome, WPS Office, Spotify); on an ARM computer say so and offer an alternative.
Install
flatpak install --user -y --noninteractive flathub <ID> # e.g. com.tencent.WeChat
Tier: confirm. Say what it is and how big the download is (the first app of a kind also downloads its runtime, often several hundred MB). The app appears in the launcher and can be pinned to the dock; start it with desktop_launch and flatpak run <ID> as the command. A first start can take a while: when desktop_launch says the app is still starting, wait and check desktop_windows rather than starting it again or from your shell (what you start from your shell opens on your background screen); when it says the app exited, its output says why. The person can also browse Flathub in the Software app (Bazaar) on the dock.
Use a Flatpak app
The desktop tools work on Flatpak apps as on any other; what they can do depends on the app's toolkit, not on Flatpak:
- GTK, Qt and Electron apps (Flatseal, Obsidian, VS Code) have an accessibility tree: start with
desktop_elementsanddesktop_element_click. - Apps that draw their own interface (WeChat, most games) have no tree: work from window screenshots with
desktop_clickanddesktop_type. - Your seat's keyboard and pointer work in all of them, with one exception: an Electron app the user opened listens only to theirs (there, element actions, or
seat: "user"when you must type). One you open in the background listens only to yours; close it when you are done (see the windows skill). - An app's files live in
~/.var/app/<ID>; files elsewhere reach it only through the file chooser or the folders it was granted (flatpak info --show-permissions <ID>).
Update / remove
flatpak update --user -y
flatpak list --user --app
flatpak uninstall --user -y <ID> # its data in ~/.var/app/<ID> stays
Tier: update reversible; uninstall confirm.
Verify
flatpak list --user --app shows the ID.