Flatpak: Difference between revisions

Malix (talk | contribs)
Per-User: move GUI
 
(7 intermediate revisions by 4 users not shown)
Line 23: Line 23:
{{file|3=export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share|name=.profile|lang=}}
{{file|3=export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share|name=.profile|lang=}}
This is also required when installing <code>flatpak</code> on a per-user basis.
This is also required when installing <code>flatpak</code> on a per-user basis.
=== With Impermanence ===
If you're using [[Impermanence]], you'll need to make sure you persist the directories that flatpak will be using
* <code>/var/lib/flatpak</code> (for system configuration, repositories, etc.)
* <code>~/.var/app</code> (for app data)
* <code>~/.local/share/flatpak</code> (for user-specific configuration)
The directories in your home (starting with <code>~</code>) will need to be persisted for every user who will use flatpak


== Usage ==
== Usage ==
Line 30: Line 39:


In the event of a Nix rollback, both modules will reinstall the previously declared Flatpak packages
In the event of a Nix rollback, both modules will reinstall the previously declared Flatpak packages
{{Expand|reason=Examples are missing|scope=section}}


==== [https://github.com/gmodena/nix-flatpak nix-flatpak] ====
==== [https://github.com/gmodena/nix-flatpak nix-flatpak] ====
Line 36: Line 47:
Flatpak packages are not cached in the Nix store
Flatpak packages are not cached in the Nix store


It supports flakes or [https://github.com/nix-community/home-manager home-manager], but doesn't support non-flakes only
It supports flakes or [[Home Manager|home-manager]], but doesn't support non-flakes only


<small>For more details, see [https://github.com/gmodena/nix-flatpak/discussions/168 nix-flatpak/discussions/168]</small>
<small>For more details, see [https://github.com/gmodena/nix-flatpak/discussions/168 nix-flatpak/discussions/168]</small>
Line 43: Line 54:
A congruent approach to Flatpak management where changes are designed to be atomic, ensuring that either they succeed or nothing happens. This module uses a temporary installation and then overwrites the current one.
A congruent approach to Flatpak management where changes are designed to be atomic, ensuring that either they succeed or nothing happens. This module uses a temporary installation and then overwrites the current one.


It supports non-flake, flakes, and [https://github.com/nix-community/home-manager home-manager]
It supports non-flake, flakes, and [[Home Manager|home-manager]]


<small>For more details, see [https://github.com/in-a-dil-emma/declarative-flatpak/issues/44 declarative-flatpak/issues/44]</small>
<small>For more details, see [https://github.com/in-a-dil-emma/declarative-flatpak/issues/44 declarative-flatpak/issues/44]</small>


=== Imperative ===
=== Imperative ===
To manage Flatpak imperatively, you can use [https://docs.flatpak.org/en/latest/using-flatpak.html the <code>flatpak</code> CLI] ([https://docs.flatpak.org/en/latest/flatpak-command-reference.html <code>flatpak</code> CLI Reference Documentation])


==== Example ====
==== Terminal User Interface ====
To manage Flatpak imperatively, you can use [https://docs.flatpak.org/en/latest/using-flatpak.html the <code>flatpak</code> command] ([https://docs.flatpak.org/en/latest/flatpak-command-reference.html <code>flatpak</code> Command Reference Documentation])
 
===== Example =====
<syntaxhighlight lang="console">$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
<syntaxhighlight lang="console">$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
$ flatpak update
$ flatpak update
Line 58: Line 71:


==== Graphical User Interface ====
==== Graphical User Interface ====
To install Flatpaks graphically, you can use [https://apps.gnome.org/en-GB/Software/ the GNOME Software Application] ([https://search.nixos.org/packages?channel=unstable&show=gnome-software&type=packages <code>gnome-software</code> in nixpkgs])
To install Flatpaks graphically, you can use [https://apps.gnome.org/en-GB/Software/ the GNOME Software Application] ([https://search.nixos.org/packages?show=gnome-software <code>gnome-software</code> in nixpkgs])
 
<small>'''Note''': installing Flatpaks through it is imperative</small>


==== Configure Repositories Globally ====
==== Configure Repositories Globally ====
To automatically configure Flatpak repositories for all users, this needs to be added to <code>configuration.nix</code>:{{file|3=systemd.services.flatpak-repo = {
{{Warning|This assumes you are not installing Flatpak packages [https://wiki.nixos.org/wiki/Flatpak#Declarative declaratively] (using [https://wiki.nixos.org/wiki/Flatpak#nix-flatpak nix-flatpak] or [https://wiki.nixos.org/wiki/Flatpak#declarative-flatpak declarative-flatpak])
 
Otherwise, the following section could conflict with them
 
If you are, prefer using [https://wiki.nixos.org/wiki/Flatpak#nix-flatpak nix-flatpak]'s <code>services.flatpak.remotes</code> or [https://wiki.nixos.org/wiki/Flatpak#declarative-flatpak declarative-flatpak]'s <code>services.flatpak.remotes</code> instead}}
To automatically configure Flatpak repositories for all users, one can add this snippet to <code>configuration.nix</code>:{{file|3=systemd.services.flatpak-repo = {
     wantedBy = [ "multi-user.target" ];
     wantedBy = [ "multi-user.target" ];
     path = [ pkgs.flatpak ];
     path = [ pkgs.flatpak ];
Line 105: Line 125:


If you have issues with cursors or themes in general, take a look at [[Fonts#Flatpak_applications_can't_find_system_fonts]]
If you have issues with cursors or themes in general, take a look at [[Fonts#Flatpak_applications_can't_find_system_fonts]]
=== Uninstalling an application and wiping its data ===
{{Warning|This involves deleting application data of flatpak applications, make sure to keep backed up any flatpak application data you want before proceeding.}}
Sometimes, flatpak applications may glitch (like fonts in Flatseal<ref>https://github.com/tchx84/Flatseal/issues/501</ref>) and wiping their data may solve the issue. To do so, you have two options.
==== Option 1: Delete application and its data in a single command ====
This is useful if you have installed the flatpak application '''imperatively'''. Use the <code>--delete-data</code> flag when uninstalling the offending application, (like <code>flatpak uninstall <application> --delete-data</code> ). Then re-install the offending application (like <code>flatpak install <application></code> ).
==== Option 2: Delete application and then delete its data ====
This is useful if you have set up flatpak '''declaratively'''<ref>[[Flatpak#Declarative]]</ref>. First remove the application from your configuration and rebuild. Then run <code>flatpak uninstall --unused --delete-data</code> to both delete '''all''' leftover applications and wipe the data of anything previously deleted. This will ask you to delete the data of each application individually, delete only the data of the offending application. Then re-add the offending application in your configuration and rebuild.


[[Category:Software]]
[[Category:Software]]
[[Category:NixOS Manual]]
[[Category:NixOS Manual]]