Flatpak: Difference between revisions
imported>Onny mNo edit summary |
added link to manual |
||
(9 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
[https://www.flatpak.org/ Flatpak] is a | [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 | 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>}} | ||
If you'd rather make | 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> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
users.users. | users.users."user" = { | ||
packages = with pkgs; [ | packages = with pkgs; [ | ||
flatpak | flatpak | ||
Line 19: | Line 21: | ||
</nowiki>}} | </nowiki>}} | ||
After adding the desired solution to your configuration file, | 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 | 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 | ||
Line 29: | Line 31: | ||
To start using flatpaks, particularly for flatpak development: | To start using flatpaks, particularly for flatpak development: | ||
<syntaxHighlight> | <syntaxHighlight lang=console> | ||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | ||
flatpak update | $ flatpak update | ||
flatpak search bustle | $ flatpak search bustle | ||
flatpak install flathub org.freedesktop.Bustle | $ flatpak install flathub org.freedesktop.Bustle | ||
flatpak run org.freedesktop.Bustle | $ flatpak run org.freedesktop.Bustle | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== Development == | == Development == | ||
=== Build Flatpak project === | === 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 | 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> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
Line 48: | Line 50: | ||
</nowiki>}} | </nowiki>}} | ||
Clone, build and run the example project. | 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> | <syntaxHighlight lang=console> | ||
flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly. | $ 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 | |||
flatpak install org.gnome.Sdk/x86_64/master org.gnome.Platform/x86_64/master | $ git clone https://gitlab.gnome.org/GNOME/libhandy.git | ||
git clone https://gitlab.gnome.org/GNOME/libhandy.git | $ cd libhandy | ||
cd libhandy | $ flatpak-builder --user --install _flatpak examples/sm.puri.Handy.Demo.json | ||
flatpak-builder --user --install _flatpak examples/sm.puri.Handy.Demo.json | $ flatpak run sm.puri.Handy.Demo | ||
flatpak run sm.puri.Handy.Demo | |||
</syntaxHighlight> | </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 == | == Troubleshooting == | ||
Line 64: | Line 67: | ||
=== Missing themes and cursors === | === Missing themes and cursors === | ||
If you have issues with cursors or themes in general, take a look at [ | If you have issues with cursors or themes in general, take a look at [[Fonts#Flatpak_applications_can't_find_system_fonts]] | ||
[[Category:Software]] | |||
[[Category:NixOS Manual]] |