summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2026-10-30 13:38:27 -0500
committerTim Keller <tjk@tjkeller.xyz>2026-10-30 13:38:27 -0500
commita2c15fa83f310348ecc991df936462ae113db7e6 (patch)
treeaf98b3d4e59cf512d786cb0f5bc0e8a0c9d74212
parentd479aa84109931d0885e99e5c5566a27b1ca9f5e (diff)
downloadnixos-a2c15fa83f310348ecc991df936462ae113db7e6.tar.xz
nixos-a2c15fa83f310348ecc991df936462ae113db7e6.zip
add music collection software
-rw-r--r--archetypes/collections/music.nix30
-rw-r--r--archetypes/default.nix1
2 files changed, 31 insertions, 0 deletions
diff --git a/archetypes/collections/music.nix b/archetypes/collections/music.nix
new file mode 100644
index 0000000..6302d68
--- /dev/null
+++ b/archetypes/collections/music.nix
@@ -0,0 +1,30 @@
+{ pkgs, lib, config, ... }: let
+ cfg = config._archetypes.collections.music;
+ beetsWithPlugins = pkgs.python3Packages.beets.override {
+ pluginOverrides = {
+ alternatives = {
+ enable = true;
+ propagatedBuildInputs = [ pkgs.python3Packages.beets-alternatives ];
+ };
+ };
+ };
+in {
+ options._archetypes.collections.music = {
+ beets.enable = lib.mkEnableOption "enables beets";
+ cd-tools.enable = lib.mkEnableOption "enables tools for burning, ripping, and converting cds";
+ };
+
+ config = {
+ environment.systemPackages = with pkgs; lib.optionals cfg.beets.enable [
+ beetsWithPlugins
+ ] ++ lib.optionals cfg.cd-tools.enable [
+ abcde
+ cdparanoia
+ cdrdao
+ cuetools
+ flac
+ shntool
+ whipper
+ ];
+ };
+}
diff --git a/archetypes/default.nix b/archetypes/default.nix
index f306073..0b0b838 100644
--- a/archetypes/default.nix
+++ b/archetypes/default.nix
@@ -5,6 +5,7 @@
./collections/development
./collections/filesystems.nix
./collections/fonts.nix
+ ./collections/music.nix
./collections/neovim.nix
./collections/nvidia.nix
./collections/utilities.nix