summaryrefslogtreecommitdiffstats
path: root/rmpc-config.nix
blob: c7ca759e79dc560fe0590a73e9309ac979207c6c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
{
  config,
  pkgs,
  ...
}: {
  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,
          max_fps: 30,
          scrolloff: 0,
          wrap_navigation: false,
          enable_mouse: true,
          enable_config_hot_reload: true,
          status_update_interval_ms: 1000,
          rewind_to_start_sec: None,
          reflect_changes_to_playlist: false,
          select_current_song_on_change: true,
          browser_song_sort: [Disc, Track, Artist, Title],
          directories_sort: SortFormat(group_by_type: true, reverse: false),
          album_art: (
      	method: Auto,
      	max_size_px: (width: 1200, height: 1200),
      	disabled_protocols: ["http://", "https://"],
      	vertical_align: Center,
      	horizontal_align: Center,
          ),
          keybinds: (
      	global: {
      	    ":":       CommandMode,
      	    ",":       VolumeDown,
      	    "s":       Stop,
      	    ".":       VolumeUp,
      	    "<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,
      	    ">":       NextTrack,
      	    "p":       TogglePause,
      	    "<":       PreviousTrack,
      	    "f":       SeekForward,
      	    "z":       ToggleRepeat,
      	    "x":       ToggleRandom,
      	    "c":       ToggleConsume,
      	    "v":       ToggleSingle,
      	    "b":       SeekBack,
      	    "~":       ShowHelp,
      	    "u":       Update,
      	    "U":       Rescan,
      	    "I":       ShowCurrentSongInfo,
      	    "O":       ShowOutputs,
      	    "P":       ShowDecoders,
      	    "R":       AddRandom,
      	},
      	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,
      	    "<C-Space>": InvertSelection,
      	    "G":         Bottom,
      	    "<CR>":      Confirm,
      	    "i":         FocusInput,
      	    "J":         MoveDown,
      	    "<C-d>":     DownHalf,
      	    "/":         EnterSearch,
      	    "<C-c>":     Close,
      	    "<Esc>":     Close,
      	    "K":         MoveUp,
      	    "D":         Delete,
      	    "B":         ShowInfo,
      	},
      	queue: {
      	    "D":       DeleteAll,
      	    "<CR>":    Play,
      	    "<C-s>":   Save,
      	    "a":       AddToPlaylist,
      	    "d":       Delete,
      	    "C":       JumpToCurrent,
      	    "X":       Shuffle,
      	},
          ),
          search: (
      	case_sensitive: false,
      	ignore_diacritics: 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"),
      	],
          ),
          artists: (
      	album_display_mode: SplitByDate,
      	album_sort_by: Date,
      	album_date_tags: [Date],
          ),
          tabs: [
          (
      	name: "Queue",
      	pane: Split(
      	    direction: Horizontal,
      	    panes: [(size: "60%", pane: Pane(Queue)), (size: "40%", pane: Pane(AlbumArt))],
      	),
          ),
          (
      	name: "Directories",
      	pane: Pane(Directories),
          ),
          (
      	name: "Artists",
      	pane: Pane(Artists),
          ),
          (
      	name: "Album Artists",
      	pane: Pane(AlbumArtists),
          ),
          (
      	name: "Albums",
      	pane: Pane(Albums),
          ),
          (
      	name: "Playlists",
      	pane: Pane(Playlists),
          ),
          (
      	name: "Search",
      	pane: Pane(Search),
          ),
      	],
      )
    '';
  };
}