NixOS configuration files

Add rmpc and mpd

Signed-off-by: Naomi Roberts <mia@naomieow.xyz>

lesbian.skin ee6fcfde 9a1df3d6

verified
+198
+198
modules/media/music.nix
··· 1 + { 2 + flake.modules.homeManager.media = { 3 + services.mpd = { 4 + enable = true; 5 + # close enough to music :shrug: 6 + musicDirectory = "~/Audiobooks"; 7 + }; 8 + 9 + programs.rmpc = { 10 + enable = true; 11 + config = '' 12 + #![enable(implicit_some)] 13 + #![enable(unwrap_newtypes)] 14 + #![enable(unwrap_variant_newtypes)] 15 + ( 16 + address: "127.0.0.1:6600", 17 + password: None, 18 + theme: Some("nord"), 19 + cache_dir: None, 20 + on_song_change: None, 21 + volume_step: 5, 22 + max_fps: 30, 23 + scrolloff: 0, 24 + wrap_navigation: false, 25 + enable_mouse: true, 26 + enable_config_hot_reload: true, 27 + status_update_interval_ms: 1000, 28 + rewind_to_start_sec: None, 29 + keep_state_on_song_change: true, 30 + reflect_changes_to_playlist: false, 31 + select_current_song_on_change: false, 32 + ignore_leading_the: false, 33 + browser_song_sort: [Disc, Track, Artist, Title], 34 + directories_sort: SortFormat(group_by_type: true, reverse: false), 35 + album_art: ( 36 + method: Auto, 37 + max_size_px: (width: 1200, height: 1200), 38 + disabled_protocols: ["http://", "https://"], 39 + vertical_align: Center, 40 + horizontal_align: Center, 41 + ), 42 + keybinds: ( 43 + global: { 44 + ":": CommandMode, 45 + ",": VolumeDown, 46 + "s": Stop, 47 + ".": VolumeUp, 48 + "<Tab>": NextTab, 49 + "<S-Tab>": PreviousTab, 50 + "1": SwitchToTab("Queue"), 51 + "2": SwitchToTab("Directories"), 52 + "3": SwitchToTab("Artists"), 53 + "4": SwitchToTab("Album Artists"), 54 + "5": SwitchToTab("Albums"), 55 + "6": SwitchToTab("Playlists"), 56 + "7": SwitchToTab("Search"), 57 + "q": Quit, 58 + ">": NextTrack, 59 + "p": TogglePause, 60 + "<": PreviousTrack, 61 + "f": SeekForward, 62 + "z": ToggleRepeat, 63 + "x": ToggleRandom, 64 + "c": ToggleConsume, 65 + "v": ToggleSingle, 66 + "b": SeekBack, 67 + "~": ShowHelp, 68 + "u": Update, 69 + "U": Rescan, 70 + "I": ShowCurrentSongInfo, 71 + "O": ShowOutputs, 72 + "P": ShowDecoders, 73 + "R": AddRandom, 74 + }, 75 + navigation: { 76 + "k": Up, 77 + "j": Down, 78 + "h": Left, 79 + "l": Right, 80 + "<Up>": Up, 81 + "<Down>": Down, 82 + "<Left>": Left, 83 + "<Right>": Right, 84 + "<C-k>": PaneUp, 85 + "<C-j>": PaneDown, 86 + "<C-h>": PaneLeft, 87 + "<C-l>": PaneRight, 88 + "<C-u>": UpHalf, 89 + "N": PreviousResult, 90 + "a": Add, 91 + "A": AddAll, 92 + "r": Rename, 93 + "n": NextResult, 94 + "g": Top, 95 + "<Space>": Select, 96 + "<C-Space>": InvertSelection, 97 + "G": Bottom, 98 + "<CR>": Confirm, 99 + "i": FocusInput, 100 + "J": MoveDown, 101 + "<C-d>": DownHalf, 102 + "/": EnterSearch, 103 + "<C-c>": Close, 104 + "<Esc>": Close, 105 + "K": MoveUp, 106 + "D": Delete, 107 + "B": ShowInfo, 108 + "<C-z>": ContextMenu(), 109 + "<C-s>": Save(kind: Modal(all: false, duplicates_strategy: Ask)), 110 + }, 111 + queue: { 112 + "D": DeleteAll, 113 + "<CR>": Play, 114 + "a": AddToPlaylist, 115 + "d": Delete, 116 + "C": JumpToCurrent, 117 + "X": Shuffle, 118 + }, 119 + ), 120 + search: ( 121 + case_sensitive: false, 122 + ignore_diacritics: false, 123 + search_button: false, 124 + mode: Contains, 125 + tags: [ 126 + (value: "any", label: "Any Tag"), 127 + (value: "artist", label: "Artist"), 128 + (value: "album", label: "Album"), 129 + (value: "albumartist", label: "Album Artist"), 130 + (value: "title", label: "Title"), 131 + (value: "filename", label: "Filename"), 132 + (value: "genre", label: "Genre"), 133 + ], 134 + ), 135 + artists: ( 136 + album_display_mode: SplitByDate, 137 + album_sort_by: Date, 138 + album_date_tags: [Date], 139 + ), 140 + tabs: [ 141 + ( 142 + name: "Queue", 143 + pane: Split( 144 + direction: Horizontal, 145 + panes: [ 146 + ( 147 + size: "40%", 148 + pane: Split( 149 + direction: Vertical, 150 + panes: [ 151 + ( 152 + size: "3", 153 + pane: Pane(Lyrics) 154 + ), 155 + ( 156 + size: "100%", 157 + pane: Pane(AlbumArt) 158 + ), 159 + ], 160 + ), 161 + ), 162 + ( 163 + size: "60%", 164 + pane: Pane(Queue) 165 + ), 166 + ], 167 + ), 168 + ), 169 + ( 170 + name: "Directories", 171 + pane: Pane(Directories), 172 + ), 173 + ( 174 + name: "Artists", 175 + pane: Pane(Artists), 176 + ), 177 + ( 178 + name: "Album Artists", 179 + pane: Pane(AlbumArtists), 180 + ), 181 + ( 182 + name: "Albums", 183 + pane: Pane(Albums), 184 + ), 185 + ( 186 + name: "Playlists", 187 + pane: Pane(Playlists), 188 + ), 189 + ( 190 + name: "Search", 191 + pane: Pane(Search), 192 + ), 193 + ], 194 + ) 195 + ''; 196 + }; 197 + }; 198 + }