#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
    address: "127.0.0.1:6600",
    password: None,
    theme: None,
    cache_dir: "/tmp/rmpc",
    on_song_change: ["songinfo"],
    volume_step: 5,
    max_fps: 144,
    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: false,
    browser_song_sort: [Disc, Track, Artist, Title],
    directories_sort: SortFormat(group_by_type: true, reverse: false),
    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,
        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,
    ),
    default_album_art_path: None,
    draw_borders: false,
    show_song_table_header: false,
    symbols: (song: "🎵", dir: "📁", playlist: "🎼", marker: "\u{e0b0}"),
    layout: Split(
        direction: Vertical,
        panes: [
            (
                pane: Pane(Header),
                size: "1",
            ),
            (
                pane: Pane(TabContent),
                size: "100%",
            ),
            (
                pane: Pane(ProgressBar),
                size: "1",
            ),
        ],
    ),
    progress_bar: (
        symbols: ["", "", "⭘", " ", " "],
        track_style: (bg: "#1e2030"),
        elapsed_style: (fg: "#c6a0f6", bg: "#1e2030"),
        thumb_style: (fg: "#c6a0f6", bg: "#1e2030"),
    ),
    scrollbar: (
        symbols: ["│", "█", "▲", "▼"],
        track_style: (),
        ends_style: (),
        thumb_style: (fg: "#b7bdf8"),
    ),
    browser_column_widths: [20, 38, 42],
    text_color: "#cad3f5",
    background_color: "#24273a",
    header_background_color: "#1e2030",
    modal_background_color: None,
    modal_backdrop: false,
    tab_bar: (active_style: (fg: "black", bg: "#c6a0f6", modifiers: "Bold"), inactive_style: ()),
    borders_style: (fg: "#6e738d"),
    highlighted_item_style: (fg: "#c6a0f6", modifiers: "Bold"),
    current_item_style: (fg: "black", bg: "#b7bdf8", modifiers: "Bold"),
    highlight_border_style: (fg: "#b7bdf8"),
    song_table_format: [
        (
            prop: (kind: Property(Artist), style: (fg: "#b7bdf8"), default: (kind: Text("Unknown"))),
            width: "50%",
            alignment: Right,
        ),
        (
            prop: (kind: Text("-"), style: (fg: "#b7bdf8"), default: (kind: Text("Unknown"))),
            width: "1",
            alignment: Center,
        ),
        (
            prop: (kind: Property(Title), style: (fg: "#7dc4e4"), default: (kind: Text("Unknown"))),
            width: "50%",
        ),
    ],
    header: (
        rows: [
            (
                left: [
                    (kind: Text("["), style: (fg: "#b7bdf8", modifiers: "Bold")),
                    (kind: Property(Status(State)), style: (fg: "#b7bdf8", modifiers: "Bold")),
                    (kind: Text("]"), style: (fg: "#b7bdf8", modifiers: "Bold"))
                ],
                center: [
                    (kind: Property(Song(Artist)), style: (fg: "#eed49f", modifiers: "Bold"),
                        default: (kind: Text("Unknown"), style: (fg: "#eed49f", modifiers: "Bold"))
                    ),
                    (kind: Text(" - ")),
                    (kind: Property(Song(Title)), style: (fg: "#7dc4e4", modifiers: "Bold"),
                        default: (kind: Text("No Song"), style: (fg: "#7dc4e4", modifiers: "Bold"))
                    )
                ],
                right: [
                    (kind: Text("Vol: "), style: (fg: "#b7bdf8", modifiers: "Bold")),
                    (kind: Property(Status(Volume)), style: (fg: "#b7bdf8", modifiers: "Bold")),
                    (kind: Text("% "), style: (fg: "#b7bdf8", modifiers: "Bold"))
                ]
            )
        ],
    ),
    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),
        ),
    ],
)

