Flatpak: Difference between revisions
→Per-User: move GUI |
m →Declarative: add exemples request |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 30: | Line 30: | ||
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 38: | ||
Flatpak packages are not cached in the Nix store | Flatpak packages are not cached in the Nix store | ||
It supports flakes or [ | 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 45: | ||
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 [ | 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 === | ||
==== 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 62: | ||
==== 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? | 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 | {{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 ]; | ||