Modules/Rmpc: Configure rmpc layout and theme
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) rmpc;
|
inherit (config.modules) rmpc color;
|
||||||
in {
|
in {
|
||||||
options.modules.rmpc = import ./options.nix {inherit lib mylib;};
|
options.modules.rmpc = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
@ -20,7 +20,14 @@ in {
|
|||||||
|
|
||||||
programs.rmpc.enable = true;
|
programs.rmpc.enable = true;
|
||||||
|
|
||||||
home.file = {
|
home.packages = with pkgs; [
|
||||||
|
cava
|
||||||
|
python313Packages.syncedlyrics
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file = let
|
||||||
|
themeName = "chriphost";
|
||||||
|
in {
|
||||||
".config/rmpc/config.ron".text = ''
|
".config/rmpc/config.ron".text = ''
|
||||||
#![enable(implicit_some)]
|
#![enable(implicit_some)]
|
||||||
#![enable(unwrap_newtypes)]
|
#![enable(unwrap_newtypes)]
|
||||||
@ -28,9 +35,9 @@ in {
|
|||||||
(
|
(
|
||||||
address: "127.0.0.1:${builtins.toString config.services.mpd.network.port}",
|
address: "127.0.0.1:${builtins.toString config.services.mpd.network.port}",
|
||||||
password: None,
|
password: None,
|
||||||
theme: "chriphost",
|
theme: "${themeName}",
|
||||||
cache_dir: None,
|
cache_dir: None,
|
||||||
on_song_change: None,
|
on_song_change: None, // TODO: notify-send song title or sth.
|
||||||
volume_step: 5,
|
volume_step: 5,
|
||||||
max_fps: 30,
|
max_fps: 30,
|
||||||
scrolloff: 0,
|
scrolloff: 0,
|
||||||
@ -39,6 +46,7 @@ in {
|
|||||||
enable_config_hot_reload: true,
|
enable_config_hot_reload: true,
|
||||||
status_update_interval_ms: 1000,
|
status_update_interval_ms: 1000,
|
||||||
rewind_to_start_sec: 30,
|
rewind_to_start_sec: 30,
|
||||||
|
lyrics_dir: "${config.home.homeDirectory}/Music/.lyrics",
|
||||||
|
|
||||||
// Keep this on false, otherwise queue changes will be applied to the current playlist
|
// Keep this on false, otherwise queue changes will be applied to the current playlist
|
||||||
reflect_changes_to_playlist: false,
|
reflect_changes_to_playlist: false,
|
||||||
@ -53,25 +61,155 @@ in {
|
|||||||
vertical_align: Center,
|
vertical_align: Center,
|
||||||
horizontal_align: Center,
|
horizontal_align: Center,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
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"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
|
||||||
|
artists: (
|
||||||
|
album_display_mode: SplitByDate,
|
||||||
|
album_sort_by: Date,
|
||||||
|
),
|
||||||
|
|
||||||
|
tabs: [
|
||||||
|
(
|
||||||
|
name: "Queue",
|
||||||
|
pane: Split(
|
||||||
|
borders: "NONE",
|
||||||
|
direction: Horizontal,
|
||||||
|
panes: [
|
||||||
|
// Left Column (Queue + Cava)
|
||||||
|
(
|
||||||
|
size: "70%",
|
||||||
|
borders: "NONE",
|
||||||
|
pane: Split(
|
||||||
|
direction: Vertical,
|
||||||
|
panes: [
|
||||||
|
(
|
||||||
|
size: "75%",
|
||||||
|
borders: "ALL",
|
||||||
|
pane: Pane(Queue),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
size: "25%",
|
||||||
|
borders: "ALL",
|
||||||
|
pane: Pane(Cava),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
// Right Column (AlbumArt + Lyrics)
|
||||||
|
(
|
||||||
|
size: "30%",
|
||||||
|
borders: "NONE",
|
||||||
|
pane: Split(
|
||||||
|
direction: Vertical,
|
||||||
|
panes: [
|
||||||
|
(
|
||||||
|
size: "75%",
|
||||||
|
borders: "ALL",
|
||||||
|
pane: Pane(AlbumArt),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
size: "25%",
|
||||||
|
borders: "ALL",
|
||||||
|
pane: Pane(Lyrics),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Albums",
|
||||||
|
pane: Pane(Albums),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Artists",
|
||||||
|
pane: Pane(Artists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Playlists",
|
||||||
|
pane: Pane(Playlists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Search",
|
||||||
|
pane: Pane(Search),
|
||||||
|
),
|
||||||
|
// (
|
||||||
|
// name: "Album Artists",
|
||||||
|
// pane: Pane(AlbumArtists),
|
||||||
|
// ),
|
||||||
|
// (
|
||||||
|
// name: "Directories",
|
||||||
|
// pane: Pane(Directories),
|
||||||
|
// ),
|
||||||
|
// (
|
||||||
|
// name: "Visualizer",
|
||||||
|
// pane: Pane(Cava),
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
|
||||||
|
cava: (
|
||||||
|
framerate: 60, // default 60
|
||||||
|
autosens: true, // default true
|
||||||
|
sensitivity: 100, // default 100
|
||||||
|
lower_cutoff_freq: 50, // not passed to cava if not provided
|
||||||
|
higher_cutoff_freq: 10000, // not passed to cava if not provided
|
||||||
|
|
||||||
|
input: (
|
||||||
|
method: Fifo,
|
||||||
|
source: "/tmp/mpd.fifo",
|
||||||
|
sample_rate: 44100,
|
||||||
|
channels: 2,
|
||||||
|
sample_bits: 16,
|
||||||
|
),
|
||||||
|
|
||||||
|
smoothing: (
|
||||||
|
noise_reduction: 77, // default 77
|
||||||
|
monstercat: false, // default false
|
||||||
|
waves: false, // default false
|
||||||
|
),
|
||||||
|
|
||||||
|
// this is a list of floating point numbers thats directly passed to cava
|
||||||
|
// they are passed in order that they are defined
|
||||||
|
eq: [],
|
||||||
|
),
|
||||||
|
|
||||||
keybinds: (
|
keybinds: (
|
||||||
global: {
|
global: {
|
||||||
":": CommandMode,
|
"q": Quit,
|
||||||
",": VolumeDown,
|
"p": TogglePause,
|
||||||
"s": Stop,
|
"s": Stop,
|
||||||
|
">": NextTrack,
|
||||||
|
"<": PreviousTrack,
|
||||||
|
",": VolumeDown,
|
||||||
".": VolumeUp,
|
".": VolumeUp,
|
||||||
|
":": CommandMode,
|
||||||
|
|
||||||
"<Tab>": NextTab,
|
"<Tab>": NextTab,
|
||||||
"<S-Tab>": PreviousTab,
|
"<S-Tab>": PreviousTab,
|
||||||
"1": SwitchToTab("Queue"),
|
"1": SwitchToTab("Queue"),
|
||||||
"2": SwitchToTab("Directories"),
|
"2": SwitchToTab("Albums"),
|
||||||
"3": SwitchToTab("Artists"),
|
"3": SwitchToTab("Artists"),
|
||||||
"4": SwitchToTab("Album Artists"),
|
"4": SwitchToTab("Playlists"),
|
||||||
"5": SwitchToTab("Albums"),
|
"5": SwitchToTab("Search"),
|
||||||
"6": SwitchToTab("Playlists"),
|
// " ": SwitchToTab("Visualizer"),
|
||||||
"7": SwitchToTab("Search"),
|
// " ": SwitchToTab("Directories"),
|
||||||
"q": Quit,
|
// " ": SwitchToTab("Album Artists"),
|
||||||
">": NextTrack,
|
|
||||||
"p": TogglePause,
|
|
||||||
"<": PreviousTrack,
|
|
||||||
"f": SeekForward,
|
"f": SeekForward,
|
||||||
"z": ToggleRepeat,
|
"z": ToggleRepeat,
|
||||||
"x": ToggleRandom,
|
"x": ToggleRandom,
|
||||||
@ -95,28 +233,30 @@ in {
|
|||||||
"<Down>": Down,
|
"<Down>": Down,
|
||||||
"<Left>": Left,
|
"<Left>": Left,
|
||||||
"<Right>": Right,
|
"<Right>": Right,
|
||||||
|
|
||||||
|
"g": Top,
|
||||||
|
"G": Bottom,
|
||||||
|
"<C-u>": UpHalf,
|
||||||
|
"<C-d>": DownHalf,
|
||||||
|
"J": MoveDown,
|
||||||
|
"K": MoveUp,
|
||||||
|
|
||||||
"<C-k>": PaneUp,
|
"<C-k>": PaneUp,
|
||||||
"<C-j>": PaneDown,
|
"<C-j>": PaneDown,
|
||||||
"<C-h>": PaneLeft,
|
"<C-h>": PaneLeft,
|
||||||
"<C-l>": PaneRight,
|
"<C-l>": PaneRight,
|
||||||
"<C-u>": UpHalf,
|
|
||||||
"N": PreviousResult,
|
"N": PreviousResult,
|
||||||
"a": Add,
|
"a": Add,
|
||||||
"A": AddAll,
|
"A": AddAll,
|
||||||
"r": Rename,
|
"r": Rename,
|
||||||
"n": NextResult,
|
"n": NextResult,
|
||||||
"g": Top,
|
|
||||||
"<Space>": Select,
|
"<Space>": Select,
|
||||||
"<C-Space>": InvertSelection,
|
"<C-Space>": InvertSelection,
|
||||||
"G": Bottom,
|
|
||||||
"<CR>": Confirm,
|
"<CR>": Confirm,
|
||||||
"i": FocusInput,
|
"i": FocusInput,
|
||||||
"J": MoveDown,
|
|
||||||
"<C-d>": DownHalf,
|
|
||||||
"/": EnterSearch,
|
"/": EnterSearch,
|
||||||
"<C-c>": Close,
|
"<C-c>": Close,
|
||||||
"<Esc>": Close,
|
"<Esc>": Close,
|
||||||
"K": MoveUp,
|
|
||||||
"D": Delete,
|
"D": Delete,
|
||||||
"B": ShowInfo,
|
"B": ShowInfo,
|
||||||
},
|
},
|
||||||
@ -130,60 +270,19 @@ in {
|
|||||||
"X": Shuffle,
|
"X": Shuffle,
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
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"),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
artists: (
|
|
||||||
album_display_mode: SplitByDate,
|
|
||||||
album_sort_by: Date,
|
|
||||||
),
|
|
||||||
tabs: [
|
|
||||||
(
|
|
||||||
name: "Queue",
|
|
||||||
pane: Split(
|
|
||||||
direction: Horizontal,
|
|
||||||
panes: [(size: "40%", pane: Pane(AlbumArt)), (size: "60%", pane: Pane(Queue))],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
|
||||||
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),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
".config/rmpc/themes/chriphost.ron".text = ''
|
".config/rmpc/themes/${themeName}.ron".text = let
|
||||||
|
light = color.hex.light;
|
||||||
|
dark = color.hex.dark;
|
||||||
|
|
||||||
|
bg = light.base;
|
||||||
|
text = light.text;
|
||||||
|
accent = dark.mauve;
|
||||||
|
accentHL = dark.red;
|
||||||
|
surface = dark.base;
|
||||||
|
in ''
|
||||||
#![enable(implicit_some)]
|
#![enable(implicit_some)]
|
||||||
#![enable(unwrap_newtypes)]
|
#![enable(unwrap_newtypes)]
|
||||||
#![enable(unwrap_variant_newtypes)]
|
#![enable(unwrap_variant_newtypes)]
|
||||||
@ -193,32 +292,39 @@ in {
|
|||||||
draw_borders: true,
|
draw_borders: true,
|
||||||
format_tag_separator: " | ",
|
format_tag_separator: " | ",
|
||||||
browser_column_widths: [20, 38, 42],
|
browser_column_widths: [20, 38, 42],
|
||||||
|
modal_backdrop: false,
|
||||||
|
|
||||||
|
// Don't set backgrounds so it doesn't look super shitty in dark terminals
|
||||||
background_color: None,
|
background_color: None,
|
||||||
text_color: None,
|
|
||||||
header_background_color: None,
|
header_background_color: None,
|
||||||
modal_background_color: None,
|
modal_background_color: None,
|
||||||
modal_backdrop: false,
|
|
||||||
|
text_color: "#${text}",
|
||||||
preview_label_style: (fg: "yellow"),
|
preview_label_style: (fg: "yellow"),
|
||||||
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
|
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
|
||||||
|
|
||||||
tab_bar: (
|
tab_bar: (
|
||||||
enabled: true,
|
enabled: true,
|
||||||
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
active_style: (fg: "#${text}", bg: "#${accent}", modifiers: "Bold|Italic"),
|
||||||
inactive_style: (),
|
inactive_style: (),
|
||||||
),
|
),
|
||||||
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
|
|
||||||
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
|
highlighted_item_style: (fg: "#${accentHL}", modifiers: "Bold|Italic"), // Currently playing
|
||||||
borders_style: (fg: "blue"),
|
current_item_style: (fg: "#${text}", bg: "#${accentHL}", modifiers: "Bold"), // Tracks list cursor
|
||||||
highlight_border_style: (fg: "blue"),
|
borders_style: (fg: "#${accent}", modifiers: "Bold"),
|
||||||
|
highlight_border_style: (fg: "#${accent}", modifiers: "Bold"),
|
||||||
|
|
||||||
symbols: (
|
symbols: (
|
||||||
song: "S",
|
song: "",
|
||||||
dir: "D",
|
dir: "",
|
||||||
playlist: "P",
|
playlist: "",
|
||||||
marker: "M",
|
marker: "+",
|
||||||
ellipsis: "...",
|
ellipsis: "",
|
||||||
song_style: None,
|
song_style: None,
|
||||||
dir_style: None,
|
dir_style: None,
|
||||||
playlist_style: None,
|
playlist_style: None,
|
||||||
),
|
),
|
||||||
|
|
||||||
level_styles: (
|
level_styles: (
|
||||||
info: (fg: "blue", bg: "black"),
|
info: (fg: "blue", bg: "black"),
|
||||||
warn: (fg: "yellow", bg: "black"),
|
warn: (fg: "yellow", bg: "black"),
|
||||||
@ -226,46 +332,60 @@ in {
|
|||||||
debug: (fg: "light_green", bg: "black"),
|
debug: (fg: "light_green", bg: "black"),
|
||||||
trace: (fg: "magenta", bg: "black"),
|
trace: (fg: "magenta", bg: "black"),
|
||||||
),
|
),
|
||||||
|
|
||||||
progress_bar: (
|
progress_bar: (
|
||||||
symbols: ["[", "-", ">", " ", "]"],
|
// symbols: ["[", "-", ">", " ", "]"],
|
||||||
track_style: (fg: "#1e2030"),
|
symbols: ["█", "█", "█", "█", "█"],
|
||||||
elapsed_style: (fg: "blue"),
|
track_style: (fg: "#${surface}"),
|
||||||
thumb_style: (fg: "blue", bg: "#1e2030"),
|
elapsed_style: (fg: "#${accent}"),
|
||||||
|
thumb_style: (fg: "#${accentHL}"), // "The draggable part"
|
||||||
),
|
),
|
||||||
|
|
||||||
scrollbar: (
|
scrollbar: (
|
||||||
symbols: ["│", "█", "▲", "▼"],
|
symbols: ["│", "█", "▲", "▼"],
|
||||||
track_style: (),
|
track_style: (fg: "#${surface}"),
|
||||||
ends_style: (),
|
ends_style: (fg: "#${accentHL}"),
|
||||||
thumb_style: (fg: "blue"),
|
thumb_style: (fg: "#${accentHL}"), // "The draggable part"
|
||||||
),
|
),
|
||||||
|
|
||||||
song_table_format: [
|
song_table_format: [
|
||||||
(
|
(
|
||||||
prop: (kind: Property(Artist),
|
prop: (
|
||||||
|
kind: Property(Artist),
|
||||||
|
style: (fg: "#${text}"),
|
||||||
default: (kind: Text("Unknown"))
|
default: (kind: Text("Unknown"))
|
||||||
),
|
),
|
||||||
width: "20%",
|
width: "20%",
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
prop: (kind: Property(Title),
|
prop: (
|
||||||
|
kind: Property(Title),
|
||||||
|
style: (fg: "#${text}"),
|
||||||
default: (kind: Text("Unknown"))
|
default: (kind: Text("Unknown"))
|
||||||
),
|
),
|
||||||
width: "35%",
|
width: "35%",
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
prop: (kind: Property(Album), style: (fg: "white"),
|
prop: (
|
||||||
|
kind: Property(Album),
|
||||||
|
style: (fg: "#${text}"),
|
||||||
default: (kind: Text("Unknown Album"), style: (fg: "white"))
|
default: (kind: Text("Unknown Album"), style: (fg: "white"))
|
||||||
),
|
),
|
||||||
width: "30%",
|
width: "30%",
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
prop: (kind: Property(Duration),
|
prop: (
|
||||||
|
kind: Property(Duration),
|
||||||
|
style: (fg: "#${text}"),
|
||||||
default: (kind: Text("-"))
|
default: (kind: Text("-"))
|
||||||
),
|
),
|
||||||
width: "15%",
|
width: "15%",
|
||||||
alignment: Right,
|
alignment: Right,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
||||||
components: {},
|
components: {},
|
||||||
|
|
||||||
layout: Split(
|
layout: Split(
|
||||||
direction: Vertical,
|
direction: Vertical,
|
||||||
panes: [
|
panes: [
|
||||||
@ -287,54 +407,117 @@ in {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
header: (
|
header: (
|
||||||
rows: [
|
rows: [
|
||||||
|
// Top Row
|
||||||
(
|
(
|
||||||
left: [
|
left: [
|
||||||
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
|
(
|
||||||
(kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))), style: (fg: "yellow", modifiers: "Bold")),
|
kind: Text("["),
|
||||||
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold"))
|
style: (fg: "#${accentHL}", modifiers: "Bold")
|
||||||
],
|
),
|
||||||
center: [
|
(
|
||||||
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
|
kind: Property(Status(StateV2(
|
||||||
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
|
playing_label: "Playing",
|
||||||
|
paused_label: "Paused",
|
||||||
|
stopped_label: "Stopped"))
|
||||||
|
),
|
||||||
|
style: (fg: "#${accentHL}", modifiers: "Bold")
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Text("]"),
|
||||||
|
style: (fg: "#${accentHL}", modifiers: "Bold")
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
||||||
|
center: [
|
||||||
|
(
|
||||||
|
kind: Property(Song(Title)),
|
||||||
|
style: (fg: "#${accentHL}", modifiers: "Bold"),
|
||||||
|
default: (
|
||||||
|
kind: Text("No Song"),
|
||||||
|
style: (fg: "#${text}", modifiers: "Bold")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
],
|
||||||
|
|
||||||
right: [
|
right: [
|
||||||
(kind: Property(Widget(ScanStatus)), style: (fg: "blue")),
|
(
|
||||||
(kind: Property(Widget(Volume)), style: (fg: "blue"))
|
kind: Property(Widget(ScanStatus)),
|
||||||
]
|
style: (fg: "#${accentHL}")
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
kind: Property(Widget(Volume)),
|
||||||
|
style: (fg: "#${accentHL}")
|
||||||
|
)
|
||||||
|
]
|
||||||
|
),
|
||||||
|
|
||||||
|
// Bottom Row
|
||||||
(
|
(
|
||||||
left: [
|
left: [
|
||||||
(kind: Property(Status(Elapsed))),
|
(
|
||||||
(kind: Text(" / ")),
|
kind: Property(Status(Elapsed)),
|
||||||
(kind: Property(Status(Duration))),
|
style: (fg: "#${text}")
|
||||||
(kind: Text(" (")),
|
),
|
||||||
(kind: Property(Status(Bitrate))),
|
(
|
||||||
(kind: Text(" kbps)"))
|
kind: Text(" / "),
|
||||||
|
style: (fg: "#${text}")
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Property(Status(Duration)),
|
||||||
|
style: (fg: "#${text}")
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Text(" ("),
|
||||||
|
style: (fg: "#${text}")
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Property(Status(Bitrate)),
|
||||||
|
style: (fg: "#${text}")
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Text(" kbps)"),
|
||||||
|
style: (fg: "#${text}")
|
||||||
|
)
|
||||||
],
|
],
|
||||||
center: [
|
center: [
|
||||||
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
|
(
|
||||||
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))
|
kind: Property(Song(Artist)),
|
||||||
|
style: (fg: "#${text}", modifiers: "Bold"),
|
||||||
|
default: (
|
||||||
|
kind: Text("Unknown"),
|
||||||
|
style: (fg: "#${text}", modifiers: "Bold")
|
||||||
|
)
|
||||||
),
|
),
|
||||||
(kind: Text(" - ")),
|
(
|
||||||
(kind: Property(Song(Album)),
|
kind: Text(" - "),
|
||||||
default: (kind: Text("Unknown Album"))
|
style: (fg: "#${text}")
|
||||||
|
),
|
||||||
|
(
|
||||||
|
kind: Property(Song(Album)),
|
||||||
|
style: (fg: "#${text}"),
|
||||||
|
default: (
|
||||||
|
kind: Text("Unknown Album"),
|
||||||
|
style: (fg: "#${text}")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
right: [
|
right: [
|
||||||
(
|
(
|
||||||
kind: Property(Widget(States(
|
kind: Property(Widget(States(
|
||||||
active_style: (fg: "white", modifiers: "Bold"),
|
active_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
|
||||||
separator_style: (fg: "white")))
|
inactive_style: (fg: "#${text}"),
|
||||||
),
|
separator_style: (fg: "#${text}")))
|
||||||
style: (fg: "dark_gray")
|
)
|
||||||
|
// style: (fg: "dark_gray")
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
browser_song_format: [
|
browser_song_format: [
|
||||||
(
|
(
|
||||||
kind: Group([
|
kind: Group([
|
||||||
@ -351,9 +534,59 @@ in {
|
|||||||
default: (kind: Property(Filename))
|
default: (kind: Property(Filename))
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
||||||
lyrics: (
|
lyrics: (
|
||||||
timestamp: false
|
timestamp: false
|
||||||
)
|
),
|
||||||
|
|
||||||
|
cava: (
|
||||||
|
// symbols that will be used to draw the bar in the visualiser, in ascending order of
|
||||||
|
// fill fraction
|
||||||
|
bar_symbols: ['▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'],
|
||||||
|
// similar to bar_symbols but these are used for the top-down rendering, meaning for orientation
|
||||||
|
// "Horizontal" and "Top"
|
||||||
|
inverted_bar_symbols: ['▔', '🮂', '🮃', '▀', '🮄', '🮅', '🮆', '█'],
|
||||||
|
|
||||||
|
// bg_color: "black", // background color, defaults to rmpc's bg color if not provided
|
||||||
|
bar_width: 1, // width of a single bar in columns
|
||||||
|
bar_spacing: 1, // free space between bars in columns
|
||||||
|
|
||||||
|
// Possible values are "Top", "Bottom" and "Horizontal". Top makes the bars go from top to
|
||||||
|
// bottom, "Bottom" is from bottom up, and "Horizontal" is split in the middle with bars going
|
||||||
|
// both down and up from there.
|
||||||
|
// Using non-default symbols with "Top" and "Horizontal" may produce undesired output.
|
||||||
|
orientation: Bottom,
|
||||||
|
|
||||||
|
// Colors can be configured in three different ways: a single color, different colors
|
||||||
|
// per row and a gradient. You can use the same colors as everywhere else. Only specify
|
||||||
|
// one of these:
|
||||||
|
|
||||||
|
// Every bar symbol will be red
|
||||||
|
// bar_color: Single("red"),
|
||||||
|
|
||||||
|
// The first two rows(two lowest amplitudes) will be red, after that two green rows
|
||||||
|
// and the rest will be blue. You can have as many as you want here. The last value
|
||||||
|
// will be used if the height exceeds the length of this array.
|
||||||
|
// bar_color: Rows([
|
||||||
|
// "red",
|
||||||
|
// "red",
|
||||||
|
// "green",
|
||||||
|
// "green",
|
||||||
|
// "blue",
|
||||||
|
// ]),
|
||||||
|
|
||||||
|
// A simple color gradient. This is a map where keys are percent values of the height
|
||||||
|
// where the color starts. After that it is linearly interpolated towards the next value.
|
||||||
|
// In this example, the color will start at green for the lowest amplitudes, go towards
|
||||||
|
// blue at half amplitudes and finishing as red for the highest values. Keys must be between
|
||||||
|
// 0 and 100 and if the first or last key are not 0 and 100 respectively, the lowest and highest
|
||||||
|
// value will be used as 0 and 100. Only hex and RGB colors are supported here and your terminal
|
||||||
|
// must support them as well!
|
||||||
|
bar_color: Gradient({
|
||||||
|
0: "#${accent}",
|
||||||
|
100: "#${accentHL}",
|
||||||
|
}),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user