summary refs log tree commit diff
path: root/modules/common.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/common.nix')
-rw-r--r--modules/common.nix38
1 files changed, 29 insertions, 9 deletions
diff --git a/modules/common.nix b/modules/common.nix
index fcaf896..d72502d 100644
--- a/modules/common.nix
+++ b/modules/common.nix
@@ -1,5 +1,16 @@
-{ me, pkgs, auxiliaryPkgs, ... }:
-
+{
+  me,
+  pkgs,
+  auxiliaryPkgs,
+  ...
+}:
+
+let
+  inherit (builtins) filter elem;
+
+  filterUnsupportedPackages =
+    packages: filter (p: elem me.system (p.meta.platforms or [ me.system ])) packages;
+in
 {
   imports = [
     ./nix.nix
@@ -58,10 +69,12 @@
   };
 
   programs = {
-    steam = {
-      enable = true;
-      remotePlay.openFirewall = true;
-    };
+    # steam requires the i386 package set, which obviously does not work on ARM.
+    # TODO: pull out gaming related configuration (like steam) into a seperate module.
+    # steam = {
+    #   enable = true;
+    #   remotePlay.openFirewall = true;
+    # };
     virt-manager.enable = true;
     fish.enable = true;
     git.enable = true;
@@ -81,7 +94,10 @@
     };
   };
 
-  environment.systemPackages = (with pkgs; [
+  # TODO: the filter already does some good work, but we need some way to
+  # pick out x86-only packages, so it is not as opaque as it currently is.
+  # (who knows if muse-sounds-manager is actually installed, for example?)
+  environment.systemPackages = (with pkgs; filterUnsupportedPackages [
     file unzip jq dig htop wget screen
     gnupg pinentry-gnome3 age agenix minisign openssl cryptsetup pamtester
     bitwarden-desktop bitwarden-cli
@@ -94,7 +110,9 @@
     blender inkscape obs-studio darktable davinci-resolve
     orca-slicer
     renderdoc
-    audacity musescore muse-sounds-manager reaper bitwig-studio
+    audacity musescore muse-sounds-manager reaper
+    # bitwigs bubblewrap configuration requires some non-ARM package sets.
+    # bitwig-studio
     ungoogled-chromium librewolf lagrange
     senpai signal-desktop alpaca newsflash
     qemu_full virtiofsd
@@ -129,7 +147,9 @@
   ]) ++ (with auxiliaryPkgs; [
     # TODO: need fixes for 25.05
     # retroarch wine
-    ngfx
+
+    # TODO: ngfx (obviously) does not work on ARM, put it somewhere else
+    # ngfx
   ]);
 
   environment.etc.openvpn.source = "${pkgs.update-resolv-conf}/libexec/openvpn";