adding automatic flatpak management
This commit is contained in:
33
system/extras/flatpak.nix
Normal file
33
system/extras/flatpak.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
grep = pkgs.gnugrep;
|
||||
desiredFlatpaks = [
|
||||
"com.spotify.Client"
|
||||
"io.github.huderlem.porymap"
|
||||
];
|
||||
in {
|
||||
system.userActivationScripts.flatpakManagement = {
|
||||
text = ''
|
||||
${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub \
|
||||
https://flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
installedFlatpaks=$(${pkgs.flatpak}/bin/flatpak list --app --columns=application)
|
||||
|
||||
for installed in $installedFlatpaks; do
|
||||
if ! echo ${toString desiredFlatpaks} | ${grep}/bin/grep -q $installed; then
|
||||
echo "Removing $installed because it's not in the desiredFlatpaks list."
|
||||
${pkgs.flatpak}/bin/flatpak uninstall -y --noninteractive $installed
|
||||
fi
|
||||
done
|
||||
|
||||
for app in ${toString desiredFlatpaks}; do
|
||||
echo "Ensuring $app is installed."
|
||||
${pkgs.flatpak}/bin/flatpak install -y flathub $app
|
||||
done
|
||||
|
||||
${pkgs.flatpak}/bin/flatpak uninstall --unused -y
|
||||
|
||||
${pkgs.flatpak}/bin/flatpak update -y
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -17,6 +17,7 @@
|
||||
wsl.enable = true;
|
||||
wsl.defaultUser = "autumn";
|
||||
networking.hostName = "wsl-hive";
|
||||
networking.extraHosts = "10.0.0.217 hoardfrost";
|
||||
environment.systemPackages = [pkgs.git];
|
||||
programs.zsh.enable = true;
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
@@ -18,12 +18,17 @@
|
||||
|
||||
#system packages
|
||||
../packages/sddm/sddm.nix
|
||||
|
||||
#flatpaks
|
||||
../extras/flatpak.nix
|
||||
];
|
||||
|
||||
networking.hostName = "yukigekko"; # Define your hostname.
|
||||
networking.networkmanager.enable = true;
|
||||
networking.extraHosts = "10.0.0.217 hoardfrost";
|
||||
|
||||
services.logind.lidSwitchExternalPower = "ignore";
|
||||
services.blueman.enable = true;
|
||||
|
||||
time.timeZone = "${timezone}";
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0f1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user