aboutsummaryrefslogtreecommitdiff
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)
downloadinfra-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
+ ]
+}