flake update, getting adgaurd working on the rockhole.
This commit is contained in:
		
							parent
							
								
									64545c387d
								
							
						
					
					
						commit
						0f9c0b974f
					
				
					 8 changed files with 250 additions and 247 deletions
				
			
		| 
						 | 
				
			
			@ -3,218 +3,178 @@
 | 
			
		|||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  visualizer = false;
 | 
			
		||||
in {
 | 
			
		||||
}: {
 | 
			
		||||
  services.mpd = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    musicDirectory = "${config.home.homeDirectory}/Music";
 | 
			
		||||
    network.startWhenNeeded = true;
 | 
			
		||||
    playlistDirectory = "${config.services.mpd.musicDirectory}/.mpd/playlists";
 | 
			
		||||
    extraConfig =
 | 
			
		||||
      ''
 | 
			
		||||
        restore_paused "yes"
 | 
			
		||||
        auto_update "yes"
 | 
			
		||||
        replaygain "auto"
 | 
			
		||||
        follow_outside_symlinks "yes"
 | 
			
		||||
    extraConfig = ''
 | 
			
		||||
      restore_paused "yes"
 | 
			
		||||
      auto_update "yes"
 | 
			
		||||
      replaygain "auto"
 | 
			
		||||
      follow_outside_symlinks "yes"
 | 
			
		||||
 | 
			
		||||
        audio_output {
 | 
			
		||||
          type "pipewire"
 | 
			
		||||
          name "PipeWire Sound Server"
 | 
			
		||||
        }
 | 
			
		||||
      ''
 | 
			
		||||
      + lib.optionalString visualizer
 | 
			
		||||
      ''
 | 
			
		||||
        #for ncmpcpp visualizer
 | 
			
		||||
        audio_output {
 | 
			
		||||
            type "fifo"
 | 
			
		||||
            name "Visualizer feed"
 | 
			
		||||
            path "/tmp/mpd.fifo"
 | 
			
		||||
            format "44100:16:2"
 | 
			
		||||
        }
 | 
			
		||||
      '';
 | 
			
		||||
      audio_output {
 | 
			
		||||
        type "pipewire"
 | 
			
		||||
        name "PipeWire Sound Server"
 | 
			
		||||
      }
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.mpd-mpris.enable = true;
 | 
			
		||||
 | 
			
		||||
  programs.ncmpcpp = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = lib.mkIf visualizer (pkgs.ncmpcpp.override {visualizerSupport = true;});
 | 
			
		||||
    settings = lib.mkIf visualizer {
 | 
			
		||||
      visualizer_data_source = "/tmp/mpd.fifo";
 | 
			
		||||
      visualizer_output_name = "Visualizer feed";
 | 
			
		||||
      visualizer_in_stereo = "yes";
 | 
			
		||||
      visualizer_type = "spectrum";
 | 
			
		||||
      visualizer_fps = 60;
 | 
			
		||||
      visualizer_autoscale = "no";
 | 
			
		||||
      visualizer_look = "●▮";
 | 
			
		||||
      visualizer_color = "blue, cyan, green, yellow, magenta, red";
 | 
			
		||||
 | 
			
		||||
      ##
 | 
			
		||||
      ## Note: The next few visualization options apply to the spectrum visualizer.
 | 
			
		||||
      ##
 | 
			
		||||
      visualizer_spectrum_smooth_look = "yes";
 | 
			
		||||
 | 
			
		||||
      ## A value between 1 and 5 inclusive. Specifying a larger value makes the
 | 
			
		||||
      ## visualizer look at a larger slice of time, which results in less jumpy
 | 
			
		||||
      ## visualizer output.
 | 
			
		||||
      visualizer_spectrum_dft_size = 2;
 | 
			
		||||
      visualizer_spectrum_gain = 10;
 | 
			
		||||
      visualizer_spectrum_hz_min = 20;
 | 
			
		||||
      visualizer_spectrum_hz_max = 20000;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    mpc-cli
 | 
			
		||||
    playerctl
 | 
			
		||||
    rmpc
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # rmpc config.
 | 
			
		||||
  home.file.".config/rmpc/config.ron".text = ''
 | 
			
		||||
    #![enable(implicit_some)]
 | 
			
		||||
    #![enable(unwrap_newtypes)]
 | 
			
		||||
    #![enable(unwrap_variant_newtypes)]
 | 
			
		||||
    (
 | 
			
		||||
        address: "127.0.0.1:6600",
 | 
			
		||||
        password: None,
 | 
			
		||||
        theme: None,
 | 
			
		||||
        cache_dir: None,
 | 
			
		||||
        on_song_change: None,
 | 
			
		||||
        volume_step: 5,
 | 
			
		||||
        scrolloff: 0,
 | 
			
		||||
        wrap_navigation: false,
 | 
			
		||||
        enable_mouse: true,
 | 
			
		||||
        status_update_interval_ms: 1000,
 | 
			
		||||
        select_current_song_on_change: false,
 | 
			
		||||
        album_art: (
 | 
			
		||||
            method: Auto,
 | 
			
		||||
            max_size_px: (width: 600, height: 600),
 | 
			
		||||
        ),
 | 
			
		||||
        keybinds: (
 | 
			
		||||
            global: {
 | 
			
		||||
                ":":       CommandMode,
 | 
			
		||||
                ",":       VolumeDown,
 | 
			
		||||
                "s":       Stop,
 | 
			
		||||
                ".":       VolumeUp,
 | 
			
		||||
                "c":       ToggleSingle,
 | 
			
		||||
                "<Tab>":   NextTab,
 | 
			
		||||
                "<S-Tab>": PreviousTab,
 | 
			
		||||
                "1":       SwitchToTab("Queue"),
 | 
			
		||||
                "2":       SwitchToTab("Directories"),
 | 
			
		||||
                "3":       SwitchToTab("Artists"),
 | 
			
		||||
                "4":       SwitchToTab("Album Artists"),
 | 
			
		||||
                "5":       SwitchToTab("Albums"),
 | 
			
		||||
                "6":       SwitchToTab("Playlists"),
 | 
			
		||||
                "7":       SwitchToTab("Search"),
 | 
			
		||||
                "q":       Quit,
 | 
			
		||||
                "x":       ToggleRandom,
 | 
			
		||||
                ">":       NextTrack,
 | 
			
		||||
                "<":       PreviousTrack,
 | 
			
		||||
                "f":       SeekForward,
 | 
			
		||||
                "v":       ToggleConsume,
 | 
			
		||||
                "p":       TogglePause,
 | 
			
		||||
                "z":       ToggleRepeat,
 | 
			
		||||
                "b":       SeekBack,
 | 
			
		||||
                "~":       ShowHelp,
 | 
			
		||||
                "I":       ShowCurrentSongInfo,
 | 
			
		||||
                "O":       ShowOutputs,
 | 
			
		||||
            },
 | 
			
		||||
            navigation: {
 | 
			
		||||
                "k":       Up,
 | 
			
		||||
                "j":       Down,
 | 
			
		||||
                "h":       Left,
 | 
			
		||||
                "l":       Right,
 | 
			
		||||
                "<Up>":    Up,
 | 
			
		||||
                "<Down>":  Down,
 | 
			
		||||
                "<Left>":  Left,
 | 
			
		||||
                "<Right>": Right,
 | 
			
		||||
                "<C-k>":   PaneUp,
 | 
			
		||||
                "<C-j>":   PaneDown,
 | 
			
		||||
                "<C-h>":   PaneLeft,
 | 
			
		||||
                "<C-l>":   PaneRight,
 | 
			
		||||
                "<C-u>":   UpHalf,
 | 
			
		||||
                "N":       PreviousResult,
 | 
			
		||||
                "a":       Add,
 | 
			
		||||
                "A":       AddAll,
 | 
			
		||||
                "r":       Rename,
 | 
			
		||||
                "n":       NextResult,
 | 
			
		||||
                "g":       Top,
 | 
			
		||||
                "<Space>": Select,
 | 
			
		||||
                "G":       Bottom,
 | 
			
		||||
                "<CR>":    Confirm,
 | 
			
		||||
                "i":       FocusInput,
 | 
			
		||||
                "J":       MoveDown,
 | 
			
		||||
                "<C-d>":   DownHalf,
 | 
			
		||||
                "/":       EnterSearch,
 | 
			
		||||
                "<C-c>":   Close,
 | 
			
		||||
                "<Esc>":   Close,
 | 
			
		||||
                "K":       MoveUp,
 | 
			
		||||
                "D":       Delete,
 | 
			
		||||
            },
 | 
			
		||||
            queue: {
 | 
			
		||||
                "D":       DeleteAll,
 | 
			
		||||
                "<CR>":    Play,
 | 
			
		||||
                "<C-s>":   Save,
 | 
			
		||||
                "a":       AddToPlaylist,
 | 
			
		||||
                "d":       Delete,
 | 
			
		||||
                "i":       ShowInfo,
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        search: (
 | 
			
		||||
            case_sensitive: false,
 | 
			
		||||
            mode: Contains,
 | 
			
		||||
            tags: [
 | 
			
		||||
                (value: "any",         label: "Any Tag"),
 | 
			
		||||
                (value: "artist",      label: "Artist"),
 | 
			
		||||
                (value: "album",       label: "Album"),
 | 
			
		||||
                (value: "albumartist", label: "Album Artist"),
 | 
			
		||||
                (value: "title",       label: "Title"),
 | 
			
		||||
                (value: "filename",    label: "Filename"),
 | 
			
		||||
                (value: "genre",       label: "Genre"),
 | 
			
		||||
            ],
 | 
			
		||||
        ),
 | 
			
		||||
        tabs: [
 | 
			
		||||
            (
 | 
			
		||||
                name: "Queue",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Split(
 | 
			
		||||
                    direction: Horizontal,
 | 
			
		||||
                    panes: [(size: "40%", pane: Pane(AlbumArt)), (size: "60%", pane: Pane(Queue))],
 | 
			
		||||
                ),
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
                name: "Directories",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Pane(Directories),
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
                name: "Artists",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Pane(Artists),
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
                name: "Album Artists",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Pane(AlbumArtists),
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
                name: "Albums",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Pane(Albums),
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
                name: "Playlists",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Pane(Playlists),
 | 
			
		||||
            ),
 | 
			
		||||
            (
 | 
			
		||||
                name: "Search",
 | 
			
		||||
                border_type: None,
 | 
			
		||||
                pane: Pane(Search),
 | 
			
		||||
            ),
 | 
			
		||||
        ],
 | 
			
		||||
    )
 | 
			
		||||
  '';
 | 
			
		||||
  programs.rmpc = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    config = ''
 | 
			
		||||
      #![enable(implicit_some)]
 | 
			
		||||
      #![enable(unwrap_newtypes)]
 | 
			
		||||
      #![enable(unwrap_variant_newtypes)]
 | 
			
		||||
      (
 | 
			
		||||
          address: "127.0.0.1:6600",
 | 
			
		||||
          password: None,
 | 
			
		||||
          theme: None,
 | 
			
		||||
          cache_dir: None,
 | 
			
		||||
          on_song_change: None,
 | 
			
		||||
          volume_step: 5,
 | 
			
		||||
          scrolloff: 0,
 | 
			
		||||
          wrap_navigation: false,
 | 
			
		||||
          enable_mouse: true,
 | 
			
		||||
          status_update_interval_ms: 1000,
 | 
			
		||||
          select_current_song_on_change: false,
 | 
			
		||||
          album_art: (
 | 
			
		||||
              method: Auto,
 | 
			
		||||
              max_size_px: (width: 600, height: 600),
 | 
			
		||||
          ),
 | 
			
		||||
          keybinds: (
 | 
			
		||||
              global: {
 | 
			
		||||
                  ":":       CommandMode,
 | 
			
		||||
                  ",":       VolumeDown,
 | 
			
		||||
                  "s":       Stop,
 | 
			
		||||
                  ".":       VolumeUp,
 | 
			
		||||
                  "c":       ToggleSingle,
 | 
			
		||||
                  "<Tab>":   NextTab,
 | 
			
		||||
                  "<S-Tab>": PreviousTab,
 | 
			
		||||
                  "1":       SwitchToTab("Queue"),
 | 
			
		||||
                  "2":       SwitchToTab("Directories"),
 | 
			
		||||
                  "3":       SwitchToTab("Artists"),
 | 
			
		||||
                  "4":       SwitchToTab("Album Artists"),
 | 
			
		||||
                  "5":       SwitchToTab("Albums"),
 | 
			
		||||
                  "6":       SwitchToTab("Playlists"),
 | 
			
		||||
                  "7":       SwitchToTab("Search"),
 | 
			
		||||
                  "q":       Quit,
 | 
			
		||||
                  "x":       ToggleRandom,
 | 
			
		||||
                  ">":       NextTrack,
 | 
			
		||||
                  "<":       PreviousTrack,
 | 
			
		||||
                  "f":       SeekForward,
 | 
			
		||||
                  "v":       ToggleConsume,
 | 
			
		||||
                  "p":       TogglePause,
 | 
			
		||||
                  "z":       ToggleRepeat,
 | 
			
		||||
                  "b":       SeekBack,
 | 
			
		||||
                  "~":       ShowHelp,
 | 
			
		||||
                  "I":       ShowCurrentSongInfo,
 | 
			
		||||
                  "O":       ShowOutputs,
 | 
			
		||||
              },
 | 
			
		||||
              navigation: {
 | 
			
		||||
                  "k":       Up,
 | 
			
		||||
                  "j":       Down,
 | 
			
		||||
                  "h":       Left,
 | 
			
		||||
                  "l":       Right,
 | 
			
		||||
                  "<Up>":    Up,
 | 
			
		||||
                  "<Down>":  Down,
 | 
			
		||||
                  "<Left>":  Left,
 | 
			
		||||
                  "<Right>": Right,
 | 
			
		||||
                  "<C-k>":   PaneUp,
 | 
			
		||||
                  "<C-j>":   PaneDown,
 | 
			
		||||
                  "<C-h>":   PaneLeft,
 | 
			
		||||
                  "<C-l>":   PaneRight,
 | 
			
		||||
                  "<C-u>":   UpHalf,
 | 
			
		||||
                  "N":       PreviousResult,
 | 
			
		||||
                  "a":       Add,
 | 
			
		||||
                  "A":       AddAll,
 | 
			
		||||
                  "r":       Rename,
 | 
			
		||||
                  "n":       NextResult,
 | 
			
		||||
                  "g":       Top,
 | 
			
		||||
                  "<Space>": Select,
 | 
			
		||||
                  "G":       Bottom,
 | 
			
		||||
                  "<CR>":    Confirm,
 | 
			
		||||
                  "i":       FocusInput,
 | 
			
		||||
                  "J":       MoveDown,
 | 
			
		||||
                  "<C-d>":   DownHalf,
 | 
			
		||||
                  "/":       EnterSearch,
 | 
			
		||||
                  "<C-c>":   Close,
 | 
			
		||||
                  "<Esc>":   Close,
 | 
			
		||||
                  "K":       MoveUp,
 | 
			
		||||
                  "D":       Delete,
 | 
			
		||||
              },
 | 
			
		||||
              queue: {
 | 
			
		||||
                  "D":       DeleteAll,
 | 
			
		||||
                  "<CR>":    Play,
 | 
			
		||||
                  "<C-s>":   Save,
 | 
			
		||||
                  "a":       AddToPlaylist,
 | 
			
		||||
                  "d":       Delete,
 | 
			
		||||
                  "i":       ShowInfo,
 | 
			
		||||
              },
 | 
			
		||||
          ),
 | 
			
		||||
          search: (
 | 
			
		||||
              case_sensitive: false,
 | 
			
		||||
              mode: Contains,
 | 
			
		||||
              tags: [
 | 
			
		||||
                  (value: "any",         label: "Any Tag"),
 | 
			
		||||
                  (value: "artist",      label: "Artist"),
 | 
			
		||||
                  (value: "album",       label: "Album"),
 | 
			
		||||
                  (value: "albumartist", label: "Album Artist"),
 | 
			
		||||
                  (value: "title",       label: "Title"),
 | 
			
		||||
                  (value: "filename",    label: "Filename"),
 | 
			
		||||
                  (value: "genre",       label: "Genre"),
 | 
			
		||||
              ],
 | 
			
		||||
          ),
 | 
			
		||||
          tabs: [
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Queue",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Split(
 | 
			
		||||
                      direction: Horizontal,
 | 
			
		||||
                      panes: [(size: "40%", pane: Pane(AlbumArt)), (size: "60%", pane: Pane(Queue))],
 | 
			
		||||
                  ),
 | 
			
		||||
              ),
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Directories",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Pane(Directories),
 | 
			
		||||
              ),
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Artists",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Pane(Artists),
 | 
			
		||||
              ),
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Album Artists",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Pane(AlbumArtists),
 | 
			
		||||
              ),
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Albums",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Pane(Albums),
 | 
			
		||||
              ),
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Playlists",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Pane(Playlists),
 | 
			
		||||
              ),
 | 
			
		||||
              (
 | 
			
		||||
                  name: "Search",
 | 
			
		||||
                  border_type: None,
 | 
			
		||||
                  pane: Pane(Search),
 | 
			
		||||
              ),
 | 
			
		||||
          ],
 | 
			
		||||
      )
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue