feat: reserved screen space keybind and pinning windows for watching shows in the background;

refactor: waybar adjustments;
refactor: swaync idle inhibitor now handles idle state correctly;
feat: rmpc config
This commit is contained in:
2025-09-22 17:48:56 +03:00
parent c1766c3aac
commit b40afea717
18 changed files with 386 additions and 1137 deletions

138
rmpc/config.ron Normal file
View File

@@ -0,0 +1,138 @@
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
address: "127.0.0.1:6600",
password: "kapuchinamusica",
theme: "kolinux",
cache_dir: None,
on_song_change: None,
volume_step: 5,
max_fps: 30,
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: 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("Dirs"),
"3": SwitchToTab("Artists"),
"4": SwitchToTab("Albums"),
"5": SwitchToTab("Playlists"),
"q": Quit,
">": NextTrack,
"p": TogglePause,
"<": PreviousTrack,
"f": SeekForward,
"z": ToggleRepeat,
"x": ToggleRandom,
"c": ToggleConsume,
"v": ToggleSingle,
"b": SeekBack,
"~": ShowHelp,
"I": ShowCurrentSongInfo,
"O": ShowOutputs,
"P": ShowDecoders,
},
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,
},
queue: {
"D": DeleteAll,
"<CR>": Play,
"<C-s>": Save,
"a": AddToPlaylist,
"d": Delete,
"i": ShowInfo,
"o": JumpToCurrent,
},
),
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: "100%", pane: Pane(Queue))],
),
),
(
name: "Dirs",
pane: Pane(Directories),
),
(
name: "Artists",
pane: Pane(Artists),
),
(
name: "Albums",
pane: Pane(Albums),
),
(
name: "Playlists",
pane: Pane(Playlists),
),
],
)

182
rmpc/themes/kolinux.ron Normal file
View File

@@ -0,0 +1,182 @@
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: "/home/greg/Pictures/Fetch/atheism_paint.png",
show_song_table_header: true,
draw_borders: true,
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
text_color: None,
header_background_color: None,
modal_background_color: None,
modal_backdrop: false,
preview_label_style: (fg: "yellow"),
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
tab_bar: (
enabled: true,
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
inactive_style: (),
),
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
borders_style: (fg: "blue"),
highlight_border_style: (fg: "blue"),
symbols: (
song: "S",
dir: "D",
playlist: "P",
marker: "M",
ellipsis: "...",
song_style: None,
dir_style: None,
playlist_style: None,
),
level_styles: (
info: (fg: "blue", bg: "black"),
warn: (fg: "yellow", bg: "black"),
error: (fg: "red", bg: "black"),
debug: (fg: "light_green", bg: "black"),
trace: (fg: "magenta", bg: "black"),
),
progress_bar: (
symbols: ["🬋", "󰃚 ", "⠔"],
track_style: (),
elapsed_style: (fg: "blue"),
thumb_style: (fg: "blue"),
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
track_style: (),
ends_style: (),
thumb_style: (fg: "blue"),
),
song_table_format: [
(
prop: (kind: Property(Title),
default: (kind: Property(Filename))
),
width: "60%",
),
(
prop: (kind: Property(Artist),
default: (kind: Text(""))
),
width: "25%",
),
(
prop: (kind: Property(Duration),
default: (kind: Text("-"))
),
width: "15%",
alignment: Right,
),
],
components: {},
layout: Split(
direction: Vertical,
panes: [
(
size: "3",
pane: Split(
direction: Horizontal,
panes: [
(
size: "5",
pane: Pane(AlbumArt),
),
(
size: "99%",
pane: Split(
direction: Vertical,
panes: [
(
size: "5",
pane: Pane(Header),
),
(
size: "1",
pane: Pane(ProgressBar),
),
]
)
),
]
),
),
(
size: "100%",
pane: Pane(TabContent),
),
],
),
header: (
rows: [
(
left: [
(kind: Property(Status(StateV2(playing_label: "  Playing", paused_label: "  Paused", stopped_label: "  Stopped"))), style: (fg: "yellow", modifiers: "Bold")),
],
center: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
default: (kind: Property(Song(Filename)), style: (modifiers: "Bold"))
)
],
right: [
(kind: Property(Widget(ScanStatus)), style: (fg: "blue")),
(kind: Property(Widget(Volume)), style: (fg: "blue"))
]
),
(
left: [
(kind: Property(Status(Elapsed))),
(kind: Text(" / ")),
(kind: Property(Status(Duration))),
],
center: [
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
default: (kind: Text(""), style: (fg: "yellow", modifiers: "Bold"))
),
],
right: [
(kind: Text("[ ")),
(kind: Property(Status(RepeatV2(
on_label: "", off_label: "",
on_style: (fg: "blue", modifiers: "Bold"), off_style: (fg: "yellow", modifiers: "Bold"))))),
(kind: Text(" | ")),
(kind: Property(Status(RandomV2(
on_label: "", off_label: "",
on_style: (fg: "blue", modifiers: "Bold"), off_style: (fg: "yellow", modifiers: "Bold"))))),
(kind: Text(" | ")),
(kind: Property(Status(ConsumeV2(
on_label: "󰮯", off_label: "󰮯", oneshot_label: "󰮯󰇊",
on_style: (fg: "blue", modifiers: "Bold"), off_style: (fg: "yellow", modifiers: "Bold"))))),
(kind: Text(" | ")),
(kind: Property(Status(SingleV2(
on_label: "󰎤", off_label: "󰎤",
on_style: (fg: "blue", modifiers: "Bold"), off_style: (fg: "yellow", modifiers: "Bold"))))),
(kind: Text(" ]")),
]
),
],
),
browser_song_format: [
(
kind: Group([
(kind: Property(Track)),
(kind: Text(" ")),
])
),
(
kind: Group([
(kind: Property(Artist)),
(kind: Text(" - ")),
(kind: Property(Title)),
]),
default: (kind: Property(Filename))
),
],
lyrics: (
timestamp: false
)
)