Flatpak: Difference between revisions

Malix (talk | contribs)
Imperative: enhancement: heading
Minion (talk | contribs)
feat: add directories to persist with impermanence
 
(3 intermediate revisions by one other user 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=Exemples 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>
Line 60: 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>
<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 ];