about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/beets
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/home.legacy/conf/beets/default.nix34
-rw-r--r--modules/home.legacy/conf/beets/plugins.nix24
-rw-r--r--modules/home.legacy/conf/beets/plugins/default.nix5
-rw-r--r--modules/home.legacy/conf/beets/plugins/fuzzy/default.nix15
-rw-r--r--modules/home.legacy/conf/beets/plugins/inline/default.nix45
-rw-r--r--modules/home.legacy/conf/beets/plugins/lastgenre/default.nix16
-rw-r--r--modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix18
-rw-r--r--modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix42
-rw-r--r--modules/home.legacy/conf/beets/replace_override.yaml20
-rw-r--r--pkgs/by-name/i3/i3status-rust-patched/package.nix (renamed from modules/home.legacy/conf/beets/plugins/play/default.nix)23
10 files changed, 40 insertions, 202 deletions
diff --git a/modules/home.legacy/conf/beets/default.nix b/modules/home.legacy/conf/beets/default.nix
index de05ca24..0132a859 100644
--- a/modules/home.legacy/conf/beets/default.nix
+++ b/modules/home.legacy/conf/beets/default.nix
@@ -41,9 +41,12 @@ in {
         color = true;
       };
 
-      include = [
-        "./replace_override.yaml"
-      ];
+      replace = {
+        "[/]" = "\\\\";
+        "[\\x00-\\x1f]" = "";
+        "\\s+$" = "";
+        "^\\s+" = "";
+      };
 
       import = {
         # move, instead of copying or linking the files
@@ -62,15 +65,21 @@ in {
       };
 
       paths = let
-        j = lib.strings.concatStringsSep "/";
+        join = lib.strings.concatStringsSep "/";
       in {
-        default = j ["[Default]" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
-        "albumtype:live" = j ["[Live]" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
-
-        "albumtype:album" = j ["Music" "$genre" "$first_artist" "$album ($albumtype)" "$track $title"];
-        "albumtype::(Single|EP)" = j ["Music" "$genre" "$first_artist_singleton" "$album ($albumtype)" "$track $title"];
-        "albumtype:compilation" = j ["Complilations" "$genre" "Various Artists" "$album ($albumtype)" "$track $title"];
-        "albumtype:soundtrack" = j ["Soundtracks" "$genre" "$first_artist" "$album" "$track $title"];
+        "albumtype:live" = join [
+          "[Live, please delete]"
+          "$genre"
+          "$primary_artist" # (= $albumartists[0]). From inline plugin
+          "$album ($albumtype)"
+          "$track $title"
+        ];
+
+        default = join [
+          "$primary_artist" # (= $albumartists[0]). From inline plugin
+          "$album%aunique{}"
+          "$track $title"
+        ];
       };
 
       inherit plugins;
@@ -96,14 +105,11 @@ in {
     };
 
     mpdIntegration = {
-      enableStats = true;
       enableUpdate = true;
       host = config.home.sessionVariables.MPD_HOST;
     };
   };
 
-  xdg.configFile."beets/replace_override.yaml".source = ./replace_override.yaml;
-
   # Use the json formatter instead of the YAML one, as the YAML formatter mangles the
   # longer python inline strings.
   # YAML is a superset of JSON.
diff --git a/modules/home.legacy/conf/beets/plugins.nix b/modules/home.legacy/conf/beets/plugins.nix
index 09eeac5b..aaeab843 100644
--- a/modules/home.legacy/conf/beets/plugins.nix
+++ b/modules/home.legacy/conf/beets/plugins.nix
@@ -17,39 +17,25 @@
   # <2024-08-07>
   # "scrub"
 
-  # Help submitting stuff to music brainz
-  "mbsubmit"
-
   # Extract things from the music file
   # "xtractor"
 
+  "musicbrainz"
+
   # Calculate replay gain
   "replaygain"
 
   # Check for bad files
   "badfiles"
 
-  # Alows to use inline python for parsing tags
-  "inline"
-
-  # Support player integration
-  "play"
-
   # Show tags on files/queries
   "info"
 
-  # Create playlist from `play_count`/`skip_count` (gathered by the `mpdstats`
-  # plugin)
-  # Note that this should come _before_ the `mpdupdate` plugin, to ensure that
-  # `mpdupgate` can propagate changed playlist to `mpd`.
-  "smartplaylist"
+  "inline"
 
   # Warn, when importing a matching item
   "ihate"
 
-  # Allow fuzzy searching
-  "fuzzy"
-
   # Filter out duplicates
   "duplicates"
 
@@ -59,9 +45,6 @@
   # Download album art
   "fetchart"
 
-  # Fetches tags from `last.fm` and adds them as genres to imported music
-  "lastgenre"
-
   # Run commands on events
   "hook"
 
@@ -71,6 +54,5 @@
   # Allow beets to understand deezer id's
   # "deezer"
 
-  "mpdstats" # Transfer MPD stats to beets
   "mpdupdate" # Update MPD database on import
 ]
diff --git a/modules/home.legacy/conf/beets/plugins/default.nix b/modules/home.legacy/conf/beets/plugins/default.nix
index 65cd935c..2b2bd607 100644
--- a/modules/home.legacy/conf/beets/plugins/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/default.nix
@@ -11,15 +11,10 @@
   imports = [
     ./badfiles
     ./duplicates
-    ./fuzzy
     ./ihate
     ./inline
-    ./lastgenre
     ./lyrics
-    ./mbsubmit
-    ./play
     ./replaygain
-    ./smartplaylist
     # ./xtractor
   ];
 }
diff --git a/modules/home.legacy/conf/beets/plugins/fuzzy/default.nix b/modules/home.legacy/conf/beets/plugins/fuzzy/default.nix
deleted file mode 100644
index de37c4e8..00000000
--- a/modules/home.legacy/conf/beets/plugins/fuzzy/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-# nixos-config - My current NixOS configuration
-#
-# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# This file is part of my nixos-config.
-#
-# You should have received a copy of the License along with this program.
-# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-{...}: {
-  programs.beets.settings.fuzzy = {
-    # The prefix denoting that a search should be run in fuzzy mode
-    prefix = ".";
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/inline/default.nix b/modules/home.legacy/conf/beets/plugins/inline/default.nix
index b5655028..564d5b4c 100644
--- a/modules/home.legacy/conf/beets/plugins/inline/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/inline/default.nix
@@ -8,44 +8,11 @@
 # You should have received a copy of the License along with this program.
 # If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {...}: {
-  programs.beets.settings = {
-    item_fields = {
-      # Taken from https://github.com/trapd00r/configs/blob/4f3dada5700846cca6c2869e6fa6b3c795b87b67/beets/config.yaml
-      first_artist =
-        /*
-        python
-        */
-        ''
-          # import an album to another artists directory, like:
-          # Tom Jones │1999│ Burning Down the House [Single, CD, FLAC]
-          # to The Cardigans/+singles/Tom Jones & the Cardigans │1999│ Burning Down the House [Single, CD, FLAC]
-          # https://github.com/beetbox/beets/discussions/4012#discussioncomment-1021414
-          # beet import --set myartist='The Cardigans'
-          # we must first check to see if myartist is defined, that is, given on
-          # import time, or we raise an NameError exception.
-          try:
-            myartist
-          except NameError:
-            import re
-            return re.split(',|\\s+(feat(.?|uring)|&|(Vs|Ft).)', albumartist, 1, flags=re.IGNORECASE)[0]
-          else:
-            return myartist
-        '';
-
-      first_artist_singleton =
-        /*
-        python
-        */
-        ''
-          try:
-            myartist
-          except NameError:
-            import re
-            return re.split(',|\\s+(feat(.?|uring)|&|(Vs|Ft).)', artist, 1, flags=re.IGNORECASE)[0]
-          else:
-            return myartist
-        '';
-    };
-    album_fields = {};
+  programs.beets.settings.item_fields = {
+    primary_artist =
+      # python
+      ''
+        albumartists[0]
+      '';
   };
 }
diff --git a/modules/home.legacy/conf/beets/plugins/lastgenre/default.nix b/modules/home.legacy/conf/beets/plugins/lastgenre/default.nix
deleted file mode 100644
index 4d3dcfb0..00000000
--- a/modules/home.legacy/conf/beets/plugins/lastgenre/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-# nixos-config - My current NixOS configuration
-#
-# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# This file is part of my nixos-config.
-#
-# You should have received a copy of the License along with this program.
-# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-{...}: {
-  programs.beets.settings.lastgenre = {
-    prefer_specific = false;
-    # Lookup the track, not the album
-    source = "track";
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix b/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
index bdcb3721..e69de29b 100644
--- a/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
@@ -1,18 +0,0 @@
-# nixos-config - My current NixOS configuration
-#
-# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# This file is part of my nixos-config.
-#
-# You should have received a copy of the License along with this program.
-# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-{
-  lib,
-  pkgs,
-  ...
-}: {
-  programs.beets.settings.mbsubmit = {
-    picard_path = lib.getExe pkgs.picard;
-  };
-}
diff --git a/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix b/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix
deleted file mode 100644
index 9b52c1ad..00000000
--- a/modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-# nixos-config - My current NixOS configuration
-#
-# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# This file is part of my nixos-config.
-#
-# You should have received a copy of the License along with this program.
-# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-{config, ...}: {
-  programs.beets.settings.smartplaylist = {
-    relative_to = config.services.mpd.musicDirectory;
-    playlist_dir = config.services.mpd.playlistDirectory;
-    forward_slash = false;
-
-    # Show the real m3u file paths, when running `--pretend`
-    pretend_paths = true;
-
-    playlists = [
-      {
-        name = "artists-$first_artist.m3u";
-        query = "";
-      }
-      {
-        name = "ratings-good.m3u";
-        query = "rating:0.7..1.0";
-      }
-      {
-        name = "ratings-mediocre.m3u";
-        query = "rating:0.4..0.7";
-      }
-      {
-        name = "ratings-bad.m3u";
-        query = "rating:0.0..0.4";
-      }
-      {
-        name = "not_played.m3u";
-        query = "-play_count: artist:";
-      }
-    ];
-  };
-}
diff --git a/modules/home.legacy/conf/beets/replace_override.yaml b/modules/home.legacy/conf/beets/replace_override.yaml
deleted file mode 100644
index aea5e54a..00000000
--- a/modules/home.legacy/conf/beets/replace_override.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-# nixos-config - My current NixOS configuration
-#
-# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# This file is part of my nixos-config.
-#
-# You should have received a copy of the License along with this program.
-# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
----
-replace:
-    '[\\/]': _
-    '^\.': _
-    '[\x00-\x1f]': _
-    '[<>:"\?\*\|]': _
-    '\.$': _
-    '\s+$': ''
-    '^\s+': ''
-    '^-': _
diff --git a/modules/home.legacy/conf/beets/plugins/play/default.nix b/pkgs/by-name/i3/i3status-rust-patched/package.nix
index 9d26f16a..a103e275 100644
--- a/modules/home.legacy/conf/beets/plugins/play/default.nix
+++ b/pkgs/by-name/i3/i3status-rust-patched/package.nix
@@ -8,16 +8,15 @@
 # You should have received a copy of the License along with this program.
 # If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
-  lib,
-  pkgs,
-  config,
-  ...
-}: {
-  programs.beets.settings.play = {
-    command = "${lib.getExe pkgs.mpc} $args add";
-    relative_to = config.services.mpd.musicDirectory;
+  i3status-rust,
+}:
+i3status-rust.overrideAttrs (final: prev: {
+  pname = "${prev.pname}-patched";
 
-    # Run the command with the returned paths as arguments
-    raw = true;
-  };
-}
+  patches =
+    (prev.patches or [])
+    ++ [
+      # Btrfs support for disk_space block.
+      ./patches/0001-disk_space-Support-btrfs-backend.patch
+    ];
+})