Jump to content

Flatpak: Difference between revisions

added link to manual
imported>Phrogg
(Added a new Section for issues)
(added link to manual)
 
(17 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[https://www.flatpak.org/ Flatpak] is a linux application sandboxing and distribution framework  
[https://www.flatpak.org/ Flatpak] is a Linux application sandboxing and distribution framework.
 
This article extends the documentation in the [https://nixos.org/manual/nixos/stable/#module-services-flatpak NixOS manual].


== Usage ==
== Usage ==


Using this configuration, <code>flatpak</code> will be installed and ready for use:
Using this configuration, <code>flatpak</code> will be installed and ready to use globally for all users:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
services.flatpak.enable = true;
services.flatpak.enable = true;
</nowiki>}}
</nowiki>}}


After adding this line to your configuration file, flatpak will be installed, however it is not always added yo your path directly, e.g. when you are using sway it will be not.
If you'd rather make Flatpak available to a specific user, add <code>flatpak</code> to that user's packages. To be able to install Flatpaks graphically, add the <code>gnome.gnome-software</code> package. The result will look something like this:
 
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
  users.users."user" = {
    packages = with pkgs; [
      flatpak
      gnome.gnome-software
    ];
  };
</nowiki>}}
 
After adding the desired solution to your configuration file, Flatpak will be installed, but it is not always added to your path directly, e.g. when you are using Sway.


To manually add it to path while using a [https://nixos.wiki/wiki/Greetd greetd] login manager and [https://nixos.wiki/wiki/Sway Sway] create a <code>.profile</code> file with an override for your <code>XDG_DATA_DIRS</code> path, e.g.:
To manually add it to the path while using the [[Greetd]] login manager and [[Sway]], create a <code>.profile</code> file with an override for your <code>XDG_DATA_DIRS</code> path, e.g.:
{{file|.profile|nix|<nowiki>
{{file|.profile|nix|<nowiki>
export XDG_DATA_DIRS:$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share
export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share
</nowiki>}}
</nowiki>}}
This is also required when installing <code>flatpak</code> on a per-user basis.
To start using flatpaks, particularly for flatpak development:
<syntaxHighlight lang=console>
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak update
$ flatpak search bustle
$ flatpak install flathub org.freedesktop.Bustle
$ flatpak run org.freedesktop.Bustle
</syntaxHighlight>
== Development ==
=== Build a Flatpak project ===
The following example builds a demo project of the [https://gitlab.gnome.org/GNOME/libhandy libhandy] repository using <code>flatpak-builder</code>, installs it locally in the user space and runs it. First install <code>flatpak</code> and <code>flatpak-builder</code> on your system
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
services.flatpak.enable = true;
environment.systemPackages = [ pkgs.flatpak-builder ];
</nowiki>}}
Clone, build and run the example project. For now, [https://gitlab.gnome.org/GNOME/libhandy/-/merge_requests/844 a patch] for libhandy might be required to fix a bug in the build process.
<syntaxHighlight lang=console>
$ flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
$ flatpak install org.gnome.Sdk/x86_64/master org.gnome.Platform/x86_64/master
$ git clone https://gitlab.gnome.org/GNOME/libhandy.git
$ cd libhandy
$ flatpak-builder --user --install _flatpak examples/sm.puri.Handy.Demo.json
$ flatpak run sm.puri.Handy.Demo
</syntaxHighlight>
Note that the <code>gnome-nightly</code> repository and its dependencies are especially required for this specific project and might be different for other Flatpak projects.
== Troubleshooting ==
=== Missing themes and cursors ===


If you have issues with cursors or themes in general, take a look at [[Fonts#Flatpak_applications_can't_find_system_fonts]]


== Issues ==
[[Category:Software]]
If you have issues with cursors or themes in general, take a look at [https://nixos.wiki/wiki/Fonts Fonts]
[[Category:NixOS Manual]]
trusted
602

edits