aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake/nixosConfigurations/common.nix15
-rw-r--r--modules/by-name/mp/mpd/module.nix86
-rw-r--r--modules/by-name/mp/mpd/mpc.nix37
-rw-r--r--modules/by-name/mp/mpd/mpdconf.example (renamed from modules/home.legacy/conf/mpd/mpdconf.example)0
-rw-r--r--modules/home.legacy/conf/default.nix1
-rw-r--r--modules/home.legacy/conf/mpd/default.nix50
-rw-r--r--modules/home.legacy/pkgs/default.nix15
-rwxr-xr-xpkgs/by-name/mp/mpp-beetrm/mpp-beetrm.sh (renamed from pkgs/by-name/mp/mpc-beetrm/mpc-beetrm.sh)0
-rw-r--r--pkgs/by-name/mp/mpp-beetrm/package.nix (renamed from pkgs/by-name/mp/mpc-beetrm/package.nix)4
-rwxr-xr-xpkgs/by-name/mp/mpp-lyrics/mpp-lyrics.sh (renamed from pkgs/by-name/mp/mpc-lyrics/mpc-lyrics.sh)0
-rw-r--r--pkgs/by-name/mp/mpp-lyrics/package.nix (renamed from pkgs/by-name/mp/mpc-lyrics/package.nix)4
-rwxr-xr-xpkgs/by-name/mp/mpp-searchadd/mpp-searchadd.sh (renamed from pkgs/by-name/mp/mpc-searchadd/mpc-searchadd.sh)0
-rw-r--r--pkgs/by-name/mp/mpp-searchadd/package.nix (renamed from pkgs/by-name/mp/mpc-searchadd/package.nix)4
-rwxr-xr-xpkgs/by-name/mp/mpp/mpp.sh6
14 files changed, 147 insertions, 75 deletions
diff --git a/flake/nixosConfigurations/common.nix b/flake/nixosConfigurations/common.nix
index d4660ef7..f2df9957 100644
--- a/flake/nixosConfigurations/common.nix
+++ b/flake/nixosConfigurations/common.nix
@@ -35,6 +35,21 @@
user = "soispha";
};
fwupd.enable = true;
+ mpd = {
+ enable = true;
+ directories = let
+ data = "${config.home-manager.users.soispha.xdg.dataHome}/mpd";
+ in {
+ inherit data;
+ playlists = "${data}/playlists";
+ runtime = "/run/user/${builtins.toString config.users.users.soispha.uid}/mpd";
+ music = config.home-manager.users.soispha.programs.beets.settings.directory;
+ };
+ mpc = {
+ enable = true;
+ beetsPkg = config.home-manager.users.soispha.programs.beets.package;
+ };
+ };
postgresql.enable = false;
printing.enable = true;
scanning.enable = true;
diff --git a/modules/by-name/mp/mpd/module.nix b/modules/by-name/mp/mpd/module.nix
new file mode 100644
index 00000000..6f045f9f
--- /dev/null
+++ b/modules/by-name/mp/mpd/module.nix
@@ -0,0 +1,86 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ cfg = config.soispha.services.mpd;
+in {
+ imports = [
+ ./mpc.nix
+ ];
+
+ options.soispha.services.mpd = {
+ enable = lib.mkEnableOption "mpd";
+
+ directories = {
+ runtime = lib.mkOption {
+ type = lib.types.path;
+ description = "The directory to put the sockets and such things.";
+ };
+ playlists = lib.mkOption {
+ type = lib.types.path;
+ description = "The directory to put the playlists.";
+ default = "${cfg.directories.data}/playlists";
+ };
+ data = lib.mkOption {
+ type = lib.types.path;
+ description = "The directory to put general data.";
+ };
+ music = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The directory to search for music files.
+
+ # Info
+ This should be the same value as [`config.home-manager.users.soispha.beets.settings.directory`], if you use beets.
+ '';
+ };
+ };
+ };
+
+ config.home-manager.users.soispha = let
+ socketPath = "${cfg.directories.runtime}/socket";
+ in
+ lib.mkIf cfg.enable {
+ home.sessionVariables = {
+ MPD_HOST = socketPath;
+ };
+
+ systemd.user.services.mpd.Service.ExecStartPre = lib.mkForce ''
+ ${pkgs.coreutils}/bin/mkdir --parents "${cfg.directories.data}" "${cfg.directories.playlists}" "${cfg.directories.runtime}"
+ '';
+
+ services.mpd = {
+ enable = true;
+ network = {
+ listenAddress = socketPath;
+ };
+ dataDir = cfg.directories.data;
+ playlistDirectory = cfg.directories.playlists;
+ musicDirectory = cfg.directories.music;
+
+ extraConfig = ''
+ metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc,comment"
+ # Updated by the beets `mpdupdate` plugin
+ auto_update "no"
+
+ audio_output {
+ type "pipewire"
+ name "pipewire"
+ }
+
+ replaygain "track"
+ replaygain_limit "yes"
+
+ #database {
+ # plugin "simple"
+ # path "~/.local/share/mpd/db
+ # cache_directory "~/.local/share/mpd/cache"
+ #}
+
+ filesystem_charset "UTF-8"
+ '';
+ };
+ };
+}
diff --git a/modules/by-name/mp/mpd/mpc.nix b/modules/by-name/mp/mpd/mpc.nix
new file mode 100644
index 00000000..031465fe
--- /dev/null
+++ b/modules/by-name/mp/mpd/mpc.nix
@@ -0,0 +1,37 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.soispha.services.mpd.mpc;
+ parentCfg = config.soispha.services.mpd;
+in {
+ options.soispha.services.mpd.mpc = {
+ enable = lib.mkEnableOption "mpc with extensions";
+
+ beetsPkg = lib.mkOption {
+ type = lib.types.package;
+ description = "The package to use, when calling `beet`";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ home-manager.users.soispha.home.packages = [
+ pkgs.mpp # Wrapper around `mpc` that allows the usage of `mpc-{beetsrm,lyrics,searchadd}` (below) without the `-`
+
+ # Removes the currently playing song from the disk and storage
+ (pkgs.mpp-beetrm.override {
+ beets = cfg.beetsPkg;
+ })
+ # Works like normal `mpc searchadd` but uses the `beets` query syntax
+ (pkgs.mpp-searchadd.override {
+ beets = cfg.beetsPkg;
+ })
+ # Displays the lyrics of the currently playing song
+ (pkgs.mpp-lyrics.override {
+ mpd_music_dir = parentCfg.directories.music;
+ })
+ ];
+ };
+}
diff --git a/modules/home.legacy/conf/mpd/mpdconf.example b/modules/by-name/mp/mpd/mpdconf.example
index eaa5e641..eaa5e641 100644
--- a/modules/home.legacy/conf/mpd/mpdconf.example
+++ b/modules/by-name/mp/mpd/mpdconf.example
diff --git a/modules/home.legacy/conf/default.nix b/modules/home.legacy/conf/default.nix
index e943f7b6..9d6d00ed 100644
--- a/modules/home.legacy/conf/default.nix
+++ b/modules/home.legacy/conf/default.nix
@@ -17,7 +17,6 @@
./mail
./mako
./mbsync
- ./mpd
./mpv
./mumble
./neomutt
diff --git a/modules/home.legacy/conf/mpd/default.nix b/modules/home.legacy/conf/mpd/default.nix
deleted file mode 100644
index b30f6995..00000000
--- a/modules/home.legacy/conf/mpd/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- config,
- pkgs,
- lib,
- osConfig,
- ...
-}: let
- dataDir = "${config.xdg.dataHome}/mpd";
- playlistDirectory = "${dataDir}/playlists";
- runtimeDir = "/run/user/${builtins.toString osConfig.users.users.soispha.uid}/mpd";
-in {
- home.sessionVariables = {
- MPD_HOST = "/run/user/${builtins.toString osConfig.users.users.soispha.uid}/mpd/socket";
- };
-
- systemd.user.services.mpd.Service.ExecStartPre = lib.mkForce ''
- ${pkgs.coreutils}/bin/mkdir --parents "${dataDir}" "${playlistDirectory}" "${runtimeDir}"
- '';
-
- services.mpd = {
- enable = true;
- inherit dataDir playlistDirectory;
- musicDirectory = config.programs.beets.settings.directory;
- network = {
- listenAddress = "${runtimeDir}/socket";
- };
-
- extraConfig = ''
- metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc,comment"
- # Updated by the beets `mpdupdate` plugin
- auto_update "no"
-
- audio_output {
- type "pipewire"
- name "pipewire"
- }
-
- replaygain "track"
- replaygain_limit "yes"
-
- #database {
- # plugin "simple"
- # path "~/.local/share/mpd/db
- # cache_directory "~/.local/share/mpd/cache"
- #}
-
- filesystem_charset "UTF-8"
- '';
- };
-}
diff --git a/modules/home.legacy/pkgs/default.nix b/modules/home.legacy/pkgs/default.nix
index 2018805f..3d48287f 100644
--- a/modules/home.legacy/pkgs/default.nix
+++ b/modules/home.legacy/pkgs/default.nix
@@ -121,21 +121,6 @@ with pkgs; let
Listen = [
spodi # Wrapper around `spotdl`.
sort_song # Sorts songs in the current directory.
-
- mpp # Wrapper around `mpc` that allows the usage of `mpc-{beetsrm,lyrics,searchadd}` (below) without the `-`
-
- # Removes the currently playing song from the disk and storage
- (mpc-beetrm.override {
- beets = config.programs.beets.package;
- })
- # Works like normal `mpc searchadd` but uses the `beets` query syntax
- (mpc-searchadd.override {
- beets = config.programs.beets.package;
- })
- # Displays the lyrics of the currently playing song
- (mpc-lyrics.override {
- mpd_music_dir = config.services.mpd.musicDirectory;
- })
];
};
diff --git a/pkgs/by-name/mp/mpc-beetrm/mpc-beetrm.sh b/pkgs/by-name/mp/mpp-beetrm/mpp-beetrm.sh
index 3209503c..3209503c 100755
--- a/pkgs/by-name/mp/mpc-beetrm/mpc-beetrm.sh
+++ b/pkgs/by-name/mp/mpp-beetrm/mpp-beetrm.sh
diff --git a/pkgs/by-name/mp/mpc-beetrm/package.nix b/pkgs/by-name/mp/mpp-beetrm/package.nix
index 99ca8bbd..24b56606 100644
--- a/pkgs/by-name/mp/mpc-beetrm/package.nix
+++ b/pkgs/by-name/mp/mpp-beetrm/package.nix
@@ -4,8 +4,8 @@
beets,
}:
sysLib.writeShellScript {
- name = "mpc-beetrm";
- src = ./mpc-beetrm.sh;
+ name = "mpp-beetrm";
+ src = ./mpp-beetrm.sh;
generateCompletions = false;
keepPath = false;
diff --git a/pkgs/by-name/mp/mpc-lyrics/mpc-lyrics.sh b/pkgs/by-name/mp/mpp-lyrics/mpp-lyrics.sh
index 004c67c7..004c67c7 100755
--- a/pkgs/by-name/mp/mpc-lyrics/mpc-lyrics.sh
+++ b/pkgs/by-name/mp/mpp-lyrics/mpp-lyrics.sh
diff --git a/pkgs/by-name/mp/mpc-lyrics/package.nix b/pkgs/by-name/mp/mpp-lyrics/package.nix
index 08cc8e48..76b590c7 100644
--- a/pkgs/by-name/mp/mpc-lyrics/package.nix
+++ b/pkgs/by-name/mp/mpp-lyrics/package.nix
@@ -8,8 +8,8 @@
mpd_music_dir ? "\${XDG_MUSIC_DIR}",
}:
sysLib.writeShellScript {
- name = "mpc-lyrics";
- src = ./mpc-lyrics.sh;
+ name = "mpp-lyrics";
+ src = ./mpp-lyrics.sh;
generateCompletions = false;
keepPath = false;
diff --git a/pkgs/by-name/mp/mpc-searchadd/mpc-searchadd.sh b/pkgs/by-name/mp/mpp-searchadd/mpp-searchadd.sh
index 3fe9a6b6..3fe9a6b6 100755
--- a/pkgs/by-name/mp/mpc-searchadd/mpc-searchadd.sh
+++ b/pkgs/by-name/mp/mpp-searchadd/mpp-searchadd.sh
diff --git a/pkgs/by-name/mp/mpc-searchadd/package.nix b/pkgs/by-name/mp/mpp-searchadd/package.nix
index fd9f94e6..a98472d1 100644
--- a/pkgs/by-name/mp/mpc-searchadd/package.nix
+++ b/pkgs/by-name/mp/mpp-searchadd/package.nix
@@ -4,8 +4,8 @@
beets,
}:
sysLib.writeShellScript {
- name = "mpc-searchadd";
- src = ./mpc-searchadd.sh;
+ name = "mpp-searchadd";
+ src = ./mpp-searchadd.sh;
generateCompletions = false;
keepPath = false;
diff --git a/pkgs/by-name/mp/mpp/mpp.sh b/pkgs/by-name/mp/mpp/mpp.sh
index 0d636ac5..538a56ee 100755
--- a/pkgs/by-name/mp/mpp/mpp.sh
+++ b/pkgs/by-name/mp/mpp/mpp.sh
@@ -6,15 +6,15 @@ SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH
case "$1" in
"searchadd")
shift 1
- mpc-searchadd "$@"
+ mpp-searchadd "$@"
;;
"lyrics")
shift 1
- mpc-lyrics "$@"
+ mpp-lyrics "$@"
;;
"beetrm")
shift 1
- mpc-beetrm "$@"
+ mpp-beetrm "$@"
;;
*)
mpc "$@"