summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/common.nix38
-rw-r--r--modules/electronics.nix6
-rw-r--r--modules/user.nix9
3 files changed, 39 insertions, 14 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";
diff --git a/modules/electronics.nix b/modules/electronics.nix
index 9b154b1..08fef6a 100644
--- a/modules/electronics.nix
+++ b/modules/electronics.nix
@@ -30,6 +30,8 @@ in
     openocd
   ];
 
+  # TODO: currently disabled packages are not available on ARM.
+  # filter them out automatically.
   environment.systemPackages = [
     # hardware tool support
     hantek
@@ -37,7 +39,7 @@ in
     # the spice of life!
     qucs-s
     ngspice
-    simulide
+    # simulide
     librepcb
 
     # mostly bearable non-commercial cad software
@@ -51,7 +53,7 @@ in
 
     # platform development tools and frameworks
     arduino-cli
-    arduino-ide
+    # arduino-ide
     platformio
     esp-idf-full
     avrdude
diff --git a/modules/user.nix b/modules/user.nix
index e8f658e..55985b6 100644
--- a/modules/user.nix
+++ b/modules/user.nix
@@ -8,16 +8,19 @@
     shell = pkgs.fish;
     extraGroups = [ "wheel" "dialout" "kvm" "networkmanager" "adbusers" ];
     hashedPassword = "$y$j9T$4wGl.YJizIpcfFv0LyvLU0$7LLEkjIFWBOV.XXynReCOczBYNX0EZfMPIDB/bmmhhC";
-    
+
+    # TODO: commented out pacckages are currently not available on ARM, and thus not on the
+    # moissanite machine. filter them out in a better way.
     packages = (with pkgs; [
       firefox
       thunderbird
-      tor-browser
+      # tor-browser
       jetbrains-toolbox
     ]) ++ (with unstablePkgs; [
       godot_4
     ]) ++ (with auxiliaryPkgs; [
-      discord
+      # TODO: get discord (or maybe an alternative client?) to work!
+      # discord
       element-desktop
       obsidian
     ]);