From b42283f459ce1829d98ed2affc49f45ff62e99e5 Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Sun, 19 Feb 2023 20:03:05 -0500 Subject: [PATCH] Add nicotine service --- home-manager/linux/default.nix | 1 + home-manager/linux/programs/media.nix | 82 ++++++++++++++++----------- machines/levitation/home.nix | 1 + 3 files changed, 52 insertions(+), 32 deletions(-) diff --git a/home-manager/linux/default.nix b/home-manager/linux/default.nix index f15af37..7cc2211 100644 --- a/home-manager/linux/default.nix +++ b/home-manager/linux/default.nix @@ -71,6 +71,7 @@ with nLib; { media = { enable = mkDefaultOption "Media Applications" (config.nathan.config.isDesktop && pkgs.stdenv.isLinux); + nicotineService = mkDefaultOption "Nicotine service" false; mopidyExtraConfig = mkOption { description = "Extra config files for mopidy"; default = [ ]; diff --git a/home-manager/linux/programs/media.nix b/home-manager/linux/programs/media.nix index ed03c90..b3a2a5d 100644 --- a/home-manager/linux/programs/media.nix +++ b/home-manager/linux/programs/media.nix @@ -12,39 +12,57 @@ let terminal = false; }; in { - config = lib.mkIf config.nathan.programs.media.enable { - # General Packages - home.packages = with pkgs; [ - spotify - unstable.vlc - unstable.plex-media-player - unstable.obs-studio - nicotine-plus - irisDesktopItem - picard - mpc-cli - calibre - ]; - # Mopidy service - # TODO: Add scrobbling - services.mopidy = { - enable = true; - extensionPackages = with pkgs; [ - mopidy-mpd - mopidy-iris - mopidy-scrobbler - mopidy-local + config = lib.mkMerge [ + (lib.mkIf config.nathan.programs.media.enable { + # General Packages + home.packages = with pkgs; [ + spotify + unstable.vlc + unstable.plex-media-player + unstable.obs-studio + nicotine-plus + irisDesktopItem + picard + mpc-cli + calibre ]; - # extraConfigFiles = config.nathan.programs.media.mopidyExtraConfig; - settings = { - file = { media_dirs = [ "~/Music" ]; }; - local = { - enabled = true; - media_dir = "~/Music"; + # Mopidy service + # TODO: Add scrobbling + services.mopidy = { + enable = true; + extensionPackages = with pkgs; [ + mopidy-mpd + mopidy-iris + mopidy-scrobbler + mopidy-local + ]; + # extraConfigFiles = config.nathan.programs.media.mopidyExtraConfig; + settings = { + file = { media_dirs = [ "~/Music" ]; }; + local = { + enabled = true; + media_dir = "~/Music"; + }; + mpd = { enabled = true; }; }; - mpd = { enabled = true; }; + extraConfigFiles = [ nixosConfig.sops.secrets."last.fm".path ]; }; - extraConfigFiles = [ nixosConfig.sops.secrets."last.fm".path ]; - }; - }; + }) + (lib.mkIf (config.nathan.programs.media.enable + && config.nathan.programs.media.nicotineService) { + systemd.user.services.nicotine = { + Unit = { + Description = "Nicotine++"; + After = [ "graphical-session.target" ]; + }; + Service = { + Type = "simple"; + ExecStart = '' + ${pkgs.nicotine-plus}/bin/nicotine -s + ''; + }; + Install = { WantedBy = [ "graphical-session.target" ]; }; + }; + }) + ]; } diff --git a/machines/levitation/home.nix b/machines/levitation/home.nix index 665bbdc..40a64db 100644 --- a/machines/levitation/home.nix +++ b/machines/levitation/home.nix @@ -7,6 +7,7 @@ programs = { util = { wine = true; }; games = { launcher = true; }; + media.nicotineService = true; }; };