about summary refs log tree commit diff
path: root/users/fcuny/desktop/media
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-02-18 17:41:01 -0800
committerFranck Cuny <franck@fcuny.net>2022-02-18 17:41:01 -0800
commitf544e22cc0f8107eb1308b8fccb483f09f71e27a (patch)
treea653063d44b6971fab5db673f9d62094bc9496f5 /users/fcuny/desktop/media
parentxserver: add at-spi2-core package (diff)
downloadworld-f544e22cc0f8107eb1308b8fccb483f09f71e27a.tar.gz
media: reorganize in multiples modules
Add two new modules to synchronize videos and musics to the NAS.
Diffstat (limited to 'users/fcuny/desktop/media')
-rw-r--r--users/fcuny/desktop/media/default.nix11
-rw-r--r--users/fcuny/desktop/media/mpd.nix34
-rw-r--r--users/fcuny/desktop/media/music.nix7
-rw-r--r--users/fcuny/desktop/media/sync-music.nix30
-rw-r--r--users/fcuny/desktop/media/sync-videos.nix29
-rw-r--r--users/fcuny/desktop/media/videos.nix7
6 files changed, 118 insertions, 0 deletions
diff --git a/users/fcuny/desktop/media/default.nix b/users/fcuny/desktop/media/default.nix
new file mode 100644
index 0000000..23c2fae
--- /dev/null
+++ b/users/fcuny/desktop/media/default.nix
@@ -0,0 +1,11 @@
+{ ... }:
+
+{
+  imports = [
+    ./mpd.nix
+    ./music.nix
+    ./sync-music.nix
+    ./sync-videos.nix
+    ./videos.nix
+  ];
+}
diff --git a/users/fcuny/desktop/media/mpd.nix b/users/fcuny/desktop/media/mpd.nix
new file mode 100644
index 0000000..b46b232
--- /dev/null
+++ b/users/fcuny/desktop/media/mpd.nix
@@ -0,0 +1,34 @@
+{ config, pkgs, ... }:
+
+{
+  home.packages = [
+    pkgs.mpd
+    pkgs.ncmpcpp
+  ];
+
+  xdg.configFile."ncmpcpp/config".source = ../configs/ncmpcpp/config;
+
+  services.mpd = {
+    enable = true;
+    musicDirectory = config.xdg.userDirs.music;
+    network.startWhenNeeded = true;
+    extraConfig = ''
+      auto_update "yes"
+      filesystem_charset "UTF-8"
+      zeroconf_enabled "no"
+      input {
+        plugin "curl"
+      }
+      audio_output {
+        type "pipewire"
+        name "PipeWire Sound Server"
+      }
+      audio_output {
+        type   "fifo"
+        name   "visualizer"
+        path   "/tmp/mpd.fifo"
+        format "44100:16:2"
+      }
+    '';
+  };
+}
diff --git a/users/fcuny/desktop/media/music.nix b/users/fcuny/desktop/media/music.nix
new file mode 100644
index 0000000..ada357a
--- /dev/null
+++ b/users/fcuny/desktop/media/music.nix
@@ -0,0 +1,7 @@
+{ config, pkgs, ... }:
+
+{
+  home.packages = [
+    pkgs.pavucontrol
+  ];
+}
diff --git a/users/fcuny/desktop/media/sync-music.nix b/users/fcuny/desktop/media/sync-music.nix
new file mode 100644
index 0000000..85e795a
--- /dev/null
+++ b/users/fcuny/desktop/media/sync-music.nix
@@ -0,0 +1,30 @@
+{ config, pkgs, ... }:
+
+{
+  systemd.user.services.sync-music = {
+    Unit = {
+      Description = "synchronize my music collection to the NAS";
+      Documentation = "man:rsync(1)";
+      ConditionFileIsExecutable = "${pkgs.rsync}/bin/rsync";
+      ConditionHost = "carmel";
+    };
+    Service = {
+      Type = "oneshot";
+      ExecStart = "${pkgs.rsync}/bin/rysnc -avz -t %h/media/music/ nas.home:/data/music";
+    };
+  };
+
+  systemd.user.timers.sync-music = {
+    Unit = {
+      Description = "synchronize my music collection to the NAS";
+      Documentation = "man:rsync(1)";
+    };
+    Timer = {
+      OnBootSec = "120m";
+      OnUnitActiveSec = "1d";
+      RandomizedDelaySec = "1800";
+      Persistent = true;
+    };
+    Install = { WantedBy = [ "timers.target" ]; };
+  };
+}
diff --git a/users/fcuny/desktop/media/sync-videos.nix b/users/fcuny/desktop/media/sync-videos.nix
new file mode 100644
index 0000000..ced319d
--- /dev/null
+++ b/users/fcuny/desktop/media/sync-videos.nix
@@ -0,0 +1,29 @@
+{ config, pkgs, ... }:
+
+{
+  systemd.user.services.sync-videos = {
+    Unit = {
+      Description = "synchronize my videos to the NAS";
+      Documentation = "man:rsync(1)";
+      ConditionFileIsExecutable = "${pkgs.rsync}/bin/rsync";
+    };
+    Service = {
+      Type = "oneshot";
+      ExecStart = "${pkgs.rsync}/bin/rysnc -avz -t %h/media/videos/ nas.home:/data/videos/incoming";
+    };
+  };
+
+  systemd.user.timers.sync-videos = {
+    Unit = {
+      Description = "synchronize my videos to the NAS";
+      Documentation = "man:rsync(1)";
+    };
+    Timer = {
+      OnBootSec = "120m";
+      OnUnitActiveSec = "1d";
+      RandomizedDelaySec = "1800";
+      Persistent = true;
+    };
+    Install = { WantedBy = [ "timers.target" ]; };
+  };
+}
diff --git a/users/fcuny/desktop/media/videos.nix b/users/fcuny/desktop/media/videos.nix
new file mode 100644
index 0000000..a4d0709
--- /dev/null
+++ b/users/fcuny/desktop/media/videos.nix
@@ -0,0 +1,7 @@
+{ config, pkgs, ... }:
+
+{
+  home.packages = [
+    pkgs.vlc
+  ]
+}