Nord-themed Wayland setup on sway (via uwsm), including: - sway/swayidle/swaylock/swaddle — WM, idle/lock/inhibit - waybar, rofi — bar and launcher - dunst — notifications - foot — terminal - zsh (+fzf, syntax highlighting, autosuggestions) — shell - mpd/rmpc/mpc, mpv — music and video - nvim — editor (lazy.nvim) - ly — login manager - rbw + pinentry-rofi wrapper — Bitwarden/Vaultwarden CLI - per-window-layout, clipvault — helper systemd services
312 lines
12 KiB
Plaintext
312 lines
12 KiB
Plaintext
#![enable(implicit_some)]
|
|
#![enable(unwrap_newtypes)]
|
|
#![enable(unwrap_variant_newtypes)]
|
|
(
|
|
default_album_art_path: None,
|
|
format_tag_separator: " | ",
|
|
browser_column_widths: [0,30,70],
|
|
background_color: None,
|
|
text_color: None,
|
|
header_background_color: None,
|
|
modal_background_color: None,
|
|
modal_backdrop: false,
|
|
preview_label_style: (fg: "#88c0d0"),
|
|
preview_metadata_group_style: (fg: "#88c0d0", modifiers: "Bold"),
|
|
highlighted_item_style: (fg: "#88c0d0", modifiers: "Bold"),
|
|
current_item_style: (fg: "#2e3440", bg: "#88c0d0", modifiers: "Bold"),
|
|
borders_style: (fg: "#88c0d0"),
|
|
highlight_border_style: (fg: "#88c0d0"),
|
|
symbols: (
|
|
song: "S",
|
|
dir: "D",
|
|
playlist: "P",
|
|
marker: "M",
|
|
ellipsis: "...",
|
|
song_style: (fg: "#88c0d0"),
|
|
dir_style: (fg: "#ebcb8b"),
|
|
playlist_style: (fg: "#b48ead"),
|
|
),
|
|
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: (fg: "#4c566a"),
|
|
elapsed_style: (fg: "#88c0d0"),
|
|
thumb_style: (fg: "#5e81ac"),
|
|
use_track_when_empty: true,
|
|
),
|
|
scrollbar: (
|
|
symbols: ["│", "█", "", ""],
|
|
track_style: (),
|
|
ends_style: (),
|
|
thumb_style: (fg: "#88c0d0"),
|
|
),
|
|
tab_bar: (
|
|
active_style: (fg: "#2e3440", bg: "#88c0d0"),
|
|
inactive_style: (fg: "#eceff4", bg: "#2e3440"),),
|
|
lyrics: (
|
|
timestamp: false
|
|
),
|
|
browser_song_format: [
|
|
(
|
|
kind: Group([
|
|
(kind: Property(Track)),
|
|
(kind: Text(" ")),
|
|
])
|
|
),
|
|
(
|
|
kind: Group([
|
|
(kind: Property(Artist)),
|
|
(kind: Text(" - ")),
|
|
(kind: Property(Title)),
|
|
]),
|
|
default: (kind: Property(Filename))
|
|
),
|
|
],
|
|
song_table_format: [
|
|
(
|
|
prop: (kind: Property(Artist), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))
|
|
),
|
|
label_prop: (kind: Text("artist"), style: (fg: "#8fbcbb", modifiers: "Bold")),
|
|
width: "20%",
|
|
),
|
|
(
|
|
prop: (kind: Property(Title), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))
|
|
),
|
|
label_prop: (kind: Text("title"), style: (fg: "#a3be8c", modifiers: "Bold")),
|
|
width: "35%",
|
|
),
|
|
(
|
|
prop: (kind: Property(Album), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))
|
|
),
|
|
label_prop: (kind: Text("album"), style: (fg: "#b48ead", modifiers: "Bold")),
|
|
width: "30%",
|
|
),
|
|
(
|
|
prop: (kind: Property(Duration), style: (fg: "#eceff4"),
|
|
default: (kind: Text("-"), style: (fg: "#eceff4"))
|
|
),
|
|
label_prop: (kind: Text("duration"), style: (fg: "#ebcb8b", modifiers: "Bold")),
|
|
width: "15%",
|
|
alignment: Right,
|
|
),
|
|
],
|
|
layout: Split(
|
|
direction: Vertical,
|
|
panes: [
|
|
(
|
|
size: "1",
|
|
pane: Split(
|
|
direction: Horizontal,
|
|
panes: [
|
|
( pane: Pane(Tabs), size: "70" ),
|
|
( pane: Pane(Empty()), size: "100%" ),
|
|
],
|
|
),
|
|
),
|
|
(
|
|
pane: Pane(TabContent),
|
|
size: "100%",
|
|
),
|
|
(
|
|
size: "1",
|
|
pane: Split(
|
|
direction: Horizontal,
|
|
panes: [
|
|
(
|
|
size: "8",
|
|
pane: Component("input_mode")
|
|
),
|
|
(
|
|
size: "100%",
|
|
pane: Component("progress_bar"),
|
|
),
|
|
(
|
|
size: "20",
|
|
pane: Component("volume_and_state"),
|
|
)
|
|
]
|
|
),
|
|
),
|
|
],
|
|
),
|
|
components: {
|
|
"volume_and_state": Split(
|
|
direction: Horizontal,
|
|
panes: [
|
|
(size: "100%", pane: Component("volume")),
|
|
(size: "7", pane: Component("states")),
|
|
]
|
|
),
|
|
"column1": Split(
|
|
direction: Vertical,
|
|
panes: [
|
|
(size: "1", pane: Component("state")),
|
|
(size: "1", pane: Component("artist")),
|
|
(size: "1", pane: Component("album")),
|
|
(size: "1", pane: Component("track")),
|
|
(size: "1", pane: Component("title")),
|
|
(size: "1", pane: Component("date")),
|
|
(size: "1", pane: Component("elapsed")),
|
|
(size: "1", pane: Component("bitrate")),
|
|
]
|
|
),
|
|
"state": Pane(Property(
|
|
content: [
|
|
(kind: Text("state: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Status(StateV2( ))), style: (fg: "#eceff4")),
|
|
], align: Left, scroll_speed: 1
|
|
)),
|
|
"artist": Pane(Property(
|
|
content: [
|
|
(kind: Text("artist: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Song(Artist)), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))),
|
|
], align: Left, scroll_speed: 1
|
|
)),
|
|
"album": Pane(Property(
|
|
content: [
|
|
(kind: Text("album: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Song(Album)), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))),
|
|
], align: Left, scroll_speed: 1
|
|
)),
|
|
"track": Pane(Property(
|
|
content: [
|
|
(kind: Text("track: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Song(Track)), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))),
|
|
], align: Left, scroll_speed: 1
|
|
)),
|
|
"title": Pane(Property(
|
|
content: [
|
|
(kind: Text("title: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Song(Title)), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))),
|
|
], align: Left, scroll_speed: 1
|
|
)),
|
|
"date": Pane(Property(
|
|
content: [
|
|
(kind: Text("date: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Song(Other("date"))), style: (fg: "#eceff4"),
|
|
default: (kind: Text("unknown"), style: (fg: "#eceff4"))),
|
|
], align: Left, scroll_speed: 1
|
|
)),
|
|
"elapsed": Pane(Property(
|
|
content: [
|
|
(kind: Text("elapsed: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Status(Elapsed)), style: (fg: "#eceff4")),
|
|
(kind: Text(" / ")),
|
|
(kind: Property(Status(Duration)), style: (fg: "#eceff4")),
|
|
],
|
|
align: Left, scroll_speed: 1
|
|
)),
|
|
"bitrate": Pane(Property(
|
|
content: [
|
|
(kind: Text("bitrate: "), style: (fg: "#88c0d0", modifiers: "Bold")),
|
|
(kind: Property(Status(Bitrate)), style: (fg: "#eceff4")),
|
|
(kind: Text(" kbps"), style: (fg: "#eceff4")),
|
|
],
|
|
align: Left, scroll_speed: 1
|
|
)),
|
|
"volume": Split(
|
|
direction: Horizontal,
|
|
panes: [
|
|
(size: "100%", pane: Pane(Volume(kind: Slider(
|
|
symbols: (filled: "█", thumb: "█", track: "█"),
|
|
filled_style: (fg: "#d08770"),
|
|
track_style: (fg: "#4c566a"),
|
|
thumb_style: (fg: "#bf616a"),
|
|
)))),
|
|
], align: Right
|
|
),
|
|
"states": Split(
|
|
direction: Horizontal,
|
|
panes: [
|
|
(
|
|
size: "1",
|
|
pane: Pane(Empty())
|
|
),
|
|
(
|
|
size: "100%",
|
|
pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Right)]))
|
|
),
|
|
(
|
|
size: "1",
|
|
pane: Pane(Empty())
|
|
),
|
|
(
|
|
size: "6",
|
|
pane: Pane(Property(content: [
|
|
(kind: Text(" "), style: (bg: "#4c566a")),
|
|
(kind: Property(Status(RepeatV2(
|
|
on_label: "z",
|
|
off_label: "z",
|
|
on_style: (fg: "#ebcb8b", bg: "#4c566a", modifiers: "Bold"),
|
|
off_style: (fg: "#eceff4", bg: "#4c566a"),
|
|
)))),
|
|
(kind: Property(Status(RandomV2(
|
|
on_label: "x",
|
|
off_label: "x",
|
|
on_style: (fg: "#ebcb8b", bg: "#4c566a", modifiers: "Bold"),
|
|
off_style: (fg: "#eceff4", bg: "#4c566a"),
|
|
)))),
|
|
(kind: Property(Status(ConsumeV2(
|
|
on_label: "c",
|
|
off_label: "c",
|
|
oneshot_label: "c",
|
|
on_style: (fg: "#ebcb8b", bg: "#4c566a", modifiers: "Bold"),
|
|
off_style: (fg: "#eceff4", bg: "#4c566a"),
|
|
oneshot_style: (fg: "#d08770", bg: "#4c566a", modifiers: "Bold"),
|
|
)))),
|
|
(kind: Property(Status(SingleV2(
|
|
on_label: "v",
|
|
off_label: "v",
|
|
oneshot_label: "v",
|
|
on_style: (fg: "#ebcb8b", bg: "#4c566a", modifiers: "Bold"),
|
|
off_style: (fg: "#eceff4", bg: "#4c566a"),
|
|
oneshot_style: (fg: "#d08770", bg: "#4c566a", modifiers: "Bold"),
|
|
)))),
|
|
(kind: Text(" "), style: (bg: "#4c566a")),
|
|
],
|
|
align: Right
|
|
))
|
|
),
|
|
]
|
|
),
|
|
"input_mode": Pane(Property(
|
|
content: [
|
|
(kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [
|
|
(match: "Normal", replace: (kind: Text(" normal "), style: (fg: "#eceff4", bg: "#4c566a"))),
|
|
(match: "Insert", replace: (kind: Text(" insert "), style: (fg: "#2e3440", bg: "#a3be8c"))),
|
|
])))
|
|
], align: Left
|
|
)),
|
|
"progress_bar": Split(
|
|
direction: Horizontal,
|
|
panes: [
|
|
(
|
|
size: "1",
|
|
pane: Pane(Empty())
|
|
),
|
|
(
|
|
size: "100%",
|
|
pane: Pane(ProgressBar)
|
|
),
|
|
(
|
|
size: "1",
|
|
pane: Pane(Empty())
|
|
),
|
|
]
|
|
)
|
|
},
|
|
)
|