:PROPERTIES: :ID: 228f2e0d-372f-4acf-94f1-22f5f962b6c9 :END: #+title: Command line: Flatpak #+date: "2021-06-04 07:39:11 +08:00" #+date_modified: "2021-08-14 16:04:15 +08:00" #+language: en Flatpak is a cross-Linux-distro deployment system commonly used for packaging desktop applications. * Options Flatpak has a similar interface to Git being composed of subcommands with specific options. - =-v, --verbose= - just print more information Most of the query-related subcommands (e.g., =search=, =list=) has the following options. - =--columns=${COLUMNS}= - print the columns listed; useful for extracting the information you want you can find the related fields from the respective manual page * Subcommands - =info PACKAGE [BRANCH]= prints related information of the package. + =-M, --show-permissions= prints the permissions of the package in a INI-like format. + =-m, --show-metadata= prints the metadata in a INI-like format. * Examples Flatpak has a lot of stuff so we'll bring some examples to get started. ** Basic usage Or at least how I think it would be for a starting user. #+begin_src shell flatpak search ferdi flatpak install ferdi flatpak uninstall ferdi #+end_src ** Package installation interface [[id:4eb1f8b1-bc12-4a6c-8fa4-20e4c3542cf2][fzf]] is the star here. #+begin_src shell flatpak search ${QUERY} --columns=application \ | fzf --multi --prompt "Choose Flatpak package(s) to install > " \ | xargs --replace="{}" flatpak install --noninteractive {} #+end_src ** Package uninstallation interface If there's one for installing packages, there's also one for removing them. #+begin_src shell flatpak list ${QUERY} --columns=application \ | fzf --multi --prompt "Choose Flatpak package(s) to remove > " \ | xargs --replace="{}" flatpak uninstall --noninteractive {} #+end_src