aboutsummaryrefslogtreecommitdiffstats
path: root/modules/home.legacy/conf/beets
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/home.legacy/conf/beets/default.nix28
-rw-r--r--modules/home.legacy/conf/beets/plugins.nix9
-rw-r--r--modules/home.legacy/conf/beets/plugins/default.nix1
-rw-r--r--modules/home.legacy/conf/beets/plugins/ihate/default.nix1
-rw-r--r--modules/home.legacy/conf/beets/plugins/inline/default.nix4
-rw-r--r--modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix0
-rw-r--r--modules/home.legacy/conf/beets/plugins/smartplaylist/default.nix42
7 files changed, 20 insertions, 65 deletions
diff --git a/modules/home.legacy/conf/beets/default.nix b/modules/home.legacy/conf/beets/default.nix
index 2fec6881..43d6bff9 100644
--- a/modules/home.legacy/conf/beets/default.nix
+++ b/modules/home.legacy/conf/beets/default.nix
@@ -14,7 +14,6 @@
...
}: let
plugins = import ./plugins.nix {};
-
# TODO: Enable xtractor again <2025-03-29>
# package = pkgs.beets.override {
# pluginOverrides = {
@@ -23,7 +22,6 @@
# propagatedBuildInputs = [pkgs.beetsExtraPlugins.xtractor];
# };
# };
- package = pkgs.beets;
in {
imports = [
./plugins
@@ -31,7 +29,14 @@ in {
programs.beets = {
enable = true;
- inherit package;
+ package = pkgs.python3.pkgs.toPythonApplication (pkgs.python3.pkgs.beets.override
+ {
+ ffmpeg = pkgs.ffmpeg-headless;
+ keyfinder-cli = pkgs.keyfinder-cli.override {
+ ffmpeg =
+ pkgs.ffmpeg-headless;
+ };
+ });
settings = {
library = "${config.xdg.dataHome}/beets/library.db";
@@ -105,18 +110,17 @@ in {
};
mpdIntegration = {
- enableStats = true;
enableUpdate = true;
host = config.home.sessionVariables.MPD_HOST;
};
};
- # 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.
- xdg.configFile."beets/config.yaml".source =
- lib.mkForce
- ((pkgs.formats.json {}).generate
- "beets-config"
- config.programs.beets.settings);
+ # # 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.
+ # xdg.configFile."beets/config.yaml".source =
+ # lib.mkForce
+ # ((pkgs.formats.json {}).generate
+ # "beets-config"
+ # config.programs.beets.settings);
}
diff --git a/modules/home.legacy/conf/beets/plugins.nix b/modules/home.legacy/conf/beets/plugins.nix
index ed78b49e..aaeab843 100644
--- a/modules/home.legacy/conf/beets/plugins.nix
+++ b/modules/home.legacy/conf/beets/plugins.nix
@@ -20,6 +20,8 @@
# Extract things from the music file
# "xtractor"
+ "musicbrainz"
+
# Calculate replay gain
"replaygain"
@@ -29,12 +31,6 @@
# 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
@@ -58,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 d22369be..2b2bd607 100644
--- a/modules/home.legacy/conf/beets/plugins/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/default.nix
@@ -15,7 +15,6 @@
./inline
./lyrics
./replaygain
- ./smartplaylist
# ./xtractor
];
}
diff --git a/modules/home.legacy/conf/beets/plugins/ihate/default.nix b/modules/home.legacy/conf/beets/plugins/ihate/default.nix
index 51cb6f11..2356ec3b 100644
--- a/modules/home.legacy/conf/beets/plugins/ihate/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/ihate/default.nix
@@ -11,6 +11,7 @@
programs.beets.settings.ihate = {
warn = [
"title:commentary"
+ "title:live"
"albumtype:live"
];
};
diff --git a/modules/home.legacy/conf/beets/plugins/inline/default.nix b/modules/home.legacy/conf/beets/plugins/inline/default.nix
index 564d5b4c..8dccdc20 100644
--- a/modules/home.legacy/conf/beets/plugins/inline/default.nix
+++ b/modules/home.legacy/conf/beets/plugins/inline/default.nix
@@ -11,8 +11,6 @@
programs.beets.settings.item_fields = {
primary_artist =
# python
- ''
- albumartists[0]
- '';
+ ''dict(enumerate(albumartists)).get(0, artist)'';
};
}
diff --git a/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix b/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
deleted file mode 100644
index e69de29b..00000000
--- a/modules/home.legacy/conf/beets/plugins/mbsubmit/default.nix
+++ /dev/null
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:";
- }
- ];
- };
-}