about summary refs log tree commit diff
path: root/home/profiles/multimedia
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2022-01-18 17:38:31 +0900
committersefidel <contact@sefidel.net>2022-01-18 17:38:31 +0900
commit7a372ed81256ce5d6aa608be9bebe173ab4e042e (patch)
tree29c7ee0a316ae0dc21ce3fe22342ec2c36ee0f4c /home/profiles/multimedia
parent2bdc141bebd35cc38396271c42b23b6f89d032a0 (diff)
downloadnixrc-7a372ed81256ce5d6aa608be9bebe173ab4e042e.tar.gz
nixrc-7a372ed81256ce5d6aa608be9bebe173ab4e042e.zip
project: rewrite
Diffstat (limited to 'home/profiles/multimedia')
-rw-r--r--home/profiles/multimedia/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/home/profiles/multimedia/default.nix b/home/profiles/multimedia/default.nix
new file mode 100644
index 0000000..0554258
--- /dev/null
+++ b/home/profiles/multimedia/default.nix
@@ -0,0 +1,49 @@
+{ config, lib, pkgs, ... }:
+let cfg = config.profiles.multimedia;
+in
+{
+    imports = [
+      ../../modules/programs/nixpkgs
+      ../../modules/programs/spotify-tui
+    ];
+
+  options.profiles.multimedia = {
+    enable = lib.mkEnableOption
+      "A profile that enables the system to be used for consuming multimedia contents.";
+  };
+
+  config = lib.mkIf cfg.enable {
+    home.packages = with pkgs; [ playerctl ];
+
+    services.spotifyd = {
+      enable = true;
+
+      package = (pkgs.spotifyd.override { withMpris = true; });
+
+      settings = {
+        global = {
+          username = "9nko3f7puya1e5bbo9c5ifddy";
+          password_cmd = "cat /run/secrets/spotify-password"; # DISCLAIMER: this expects the `spotify` secret to be present (sops-nix)
+        };
+      };
+    };
+
+    programs.spotify-tui = {
+      enable = true;
+
+      settings = {
+        theme = {
+          active = "Cyan";
+          banner = "LightCyan";
+        };
+
+        behavior = {
+          seek_milliseconds = 5000;
+          volume_increment = 10;
+        };
+      };
+    };
+
+    nixpkgs.allowedUnfree = [ "spotify" "spotify-unwrapped" ];
+  };
+}