diff options
author | Franck Cuny <franck@fcuny.net> | 2022-02-18 17:41:01 -0800 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2022-02-18 17:41:01 -0800 |
commit | f544e22cc0f8107eb1308b8fccb483f09f71e27a (patch) | |
tree | a653063d44b6971fab5db673f9d62094bc9496f5 /users/fcuny/desktop/media | |
parent | xserver: add at-spi2-core package (diff) | |
download | world-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.nix | 11 | ||||
-rw-r--r-- | users/fcuny/desktop/media/mpd.nix | 34 | ||||
-rw-r--r-- | users/fcuny/desktop/media/music.nix | 7 | ||||
-rw-r--r-- | users/fcuny/desktop/media/sync-music.nix | 30 | ||||
-rw-r--r-- | users/fcuny/desktop/media/sync-videos.nix | 29 | ||||
-rw-r--r-- | users/fcuny/desktop/media/videos.nix | 7 |
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 + ] +} |