~ruther/nixos-config

ref: 8f8c847de507bc2d1b25875303e7b9b779544db2 nixos-config/modules/programs/flatpak.nix -rw-r--r-- 1.2 KiB
8f8c847d — Rutherther feat: do not sync doom every time 1 year, 6 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#
# Very janky way of declaring all flatpaks used
# Might cause issues on new system installs
# Only use when you know what you're doing
#

{ pkgs, ...}:

{
  services.flatpak.enable = true;
  system.activationScripts = {
    flatpak.text =
      ''
        flatpaks=(
          "com.github.tchx84.Flatseal"
          "com.moonlight_stream.Moonlight"
          "com.obsproject.Studio"
          "com.ultimaker.cura"
        )

        ${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

        for package in ''${flatpaks[*]}; do
          check=$(${pkgs.flatpak}/bin/flatpak list --app | ${pkgs.gnugrep}/bin/grep $package)
          if [[ -z "$check" ]] then
            ${pkgs.flatpak}/bin/flatpak install -y flathub $package
          fi
        done

        installed=($(${pkgs.flatpak}/bin/flatpak list --app | ${pkgs.gawk}/bin/awk -F$'\t*' '{$1=$3=$4=$5=""; print $0}'))

        for remove in ''${installed[*]}; do
          if [[ ! " ''${flatpaks[*]} " =~ " ''${remove} " ]]; then
            ${pkgs.flatpak}/bin/flatpak uninstall -y $remove
            ${pkgs.flatpak}/bin/flatpak uninstall -y --unused
          fi
        done
      '';
  };
}
Do not follow this link