Nokkvi stores your preferences in ~/.config/nokkvi/config.toml. While most of these can be toggled in the in-app Settings menu (Default: ` backtick), this guide provides a complete technical reference for each key.
Key Default Description server_url""The full URL of your Navidrome server (e.g., https://music.example.com). username""Your Navidrome username. start_view"Queue"The view to show on startup. Options: Queue, Albums, Artists, Songs, Genres, Playlists, Radios. local_music_path""Absolute path to your local music library. If set, Nokkvi will try to open files directly (for things like “Show in File Manager”). library_page_size"default"How many items to fetch per request. Options: small (100), default (500), large (1000), massive (5000). artwork_resolution"default"Quality for large panel artwork. Options: default (1000px), high (1500px), ultra (2000px), original. See note below. show_album_artists_onlytrueIf true, the Artists view shows only album artists and excludes track-level featured artists. suppress_library_refresh_toastsfalseHide the toast notification that appears when Navidrome reports a library refresh. verbose_configfalseIf true, all settings (even defaults) are written to the TOML file. queue_show_starstrueShow the star rating column in the queue. queue_show_albumtrueShow the album column in the queue. queue_show_durationtrueShow the duration column in the queue. queue_show_lovetrueShow the loved/heart column in the queue. queue_show_playsfalseShow the play count column in the queue. albums_show_starsfalseShow the star rating column in the albums view. albums_show_songcounttrueShow the song count column in the albums view. albums_show_playsfalseShow the play count column in the albums view. albums_show_lovetrueShow the loved/heart column in the albums view. songs_show_starsfalseShow the star rating column in the songs view. songs_show_albumtrueShow the album column in the songs view. songs_show_durationtrueShow the duration column in the songs view. songs_show_playsfalseShow the play count column in the songs view. songs_show_lovetrueShow the loved/heart column in the songs view. artists_show_starstrueShow the star rating column in the artists view. artists_show_albumcounttrueShow the album count column in the artists view. artists_show_songcounttrueShow the song count column in the artists view. artists_show_playstrueShow the play count column in the artists view. artists_show_lovetrueShow the loved/heart column in the artists view.
library_page_size: massive
Setting library_page_size to "massive" fetches up to 5,000 items per request. On large libraries this can cause slow initial loads and put significant load on the Navidrome server. Start with "large" and only go higher if you need it.
artwork_resolution: original
"original" disables server-side resizing and streams the raw embedded artwork from each file. On a large library or a slow connection this can cause noticeable delays when browsing albums. "ultra" (2000px) is the practical maximum for most displays.
Key Default Description albums_artwork_overlaytrueShow a text overlay on artwork thumbnails in the Albums view. artists_artwork_overlaytrueShow a text overlay on artwork thumbnails in the Artists view. songs_artwork_overlaytrueShow a text overlay on artwork thumbnails in the Songs view. playlists_artwork_overlaytrueShow a text overlay on artwork thumbnails in the Playlists view.
Key Default Description light_modefalseUse the light variant of the active theme. nav_layout"top"Placement of view tabs. Options: top (horizontal bar), side (vertical sidebar), none (hidden — only the active view and player bar render). nav_display_mode"text_only"Content of tabs. Options: text_only, text_and_icons, icons_only. track_info_display"off"Placement of the metadata strip. Options: off, player_bar, top_bar, progress_track. slot_row_height"default"Row density in lists. Options: compact (50px), default (70px), comfortable (90px), spacious (110px). font_family""Font family override. Leave empty to use system default sans-serif. rounded_modefalseApply rounded corners to all UI elements. opacity_gradienttrueApply a subtle opacity fade to items that are not in the center of the list. slot_text_linkstrueMake artist and album names inside list rows clickable links to their respective views. horizontal_volumefalseStack volume sliders horizontally instead of vertically in the player bar.
Key Default Description artwork_column_mode"auto"Visibility and sizing of the large artwork panel shown alongside list views. Options: auto (size derived from window width; auto-hides when the slot list would have less than 800px), always_native (user-defined width; image stays square and letterboxed vertically), always_stretched (user-defined width; image fills the column non-square per artwork_column_stretch_fit), never (column hidden everywhere). artwork_column_stretch_fit"cover"Fit mode used when artwork_column_mode = "always_stretched". Options: cover (preserve aspect ratio, crop to fill), fill (true stretch — distorts album art). Ignored in other modes. artwork_column_width_pct0.40Artwork column width as a fraction of the window width (0.05 to 0.80). Only consulted in always_native and always_stretched modes.
Key Default Description show_tray_iconfalseRegister a StatusNotifierItem tray icon on the session bus. When off, no tray icon is shown. close_to_trayfalseWhen show_tray_icon is on, the window’s close button hides Nokkvi into the tray instead of quitting. Ignored when the tray icon is disabled.
Key Default Description strip_show_titletrueShow the song title in the metadata strip. strip_show_artisttrueShow the artist name in the metadata strip. strip_show_albumtrueShow the album name in the metadata strip. strip_show_format_infotrueShow technical info (codec/sample rate) in the strip. strip_click_action"go_to_queue"Action on click. Options: go_to_queue, go_to_album, go_to_artist, copy_track_info, do_nothing. strip_merged_modefalseApply strip patterns to the merged artist/album display string rather than individual fields.
Key Default Description stable_viewporttrueClicking an item highlights it in place; the list does not auto-scroll on playback changes. auto_follow_playingtrueThe Queue view auto-scrolls to keep the currently playing track visible as it changes.
Key Default Description enter_behavior"play_all"Action when pressing Enter on a song. Options: play_all (replace queue with the current view), play_single (replace queue with just this track), append_and_play (add to queue and play). crossfade_enabledfalseEnable smooth transitions between tracks. crossfade_duration_secs5Duration of the crossfade in seconds (1 to 12). volume_normalization"off"Volume-normalization mode. Options: off, replay_gain_track, replay_gain_album, agc. See the Audio guide . normalization_level"normal"AGC target level (linear amplitude, not LUFS). Options: quiet (0.6), normal (1.0), loud (1.4). Applies only when volume_normalization = "agc". replay_gain_preamp_db0.0Pre-amp dB applied on top of the resolved ReplayGain value. Range −15 to +15. Typical values: 0 (reference), +6 (modern-loudness target). replay_gain_fallback_db0.0dB applied to tracks with no ReplayGain tags. Range −15 to +15. Ignored when replay_gain_fallback_to_agc is true. replay_gain_fallback_to_agcfalseUntagged tracks fall through to real-time AGC instead of using replay_gain_fallback_db. replay_gain_prevent_clippingtrueClamp the resolved gain so track_peak × gain ≤ 1.0 using the per-track peak tag. visualization_mode"bars"Active visualizer mode. Options: off, bars, lines. Cycle live with the V hotkey — see Visualizer Reference .
Crossfade and normalization
In AGC mode, tracks that differ much in loudness may show a brief level mismatch at the crossfade boundary because each stream’s AGC has not converged yet — see Crossfade and normalization . The two ReplayGain modes use static, pre-computed gains instead, so both sides of a crossfade are already at target level — no convergence delay, no mismatch.
Key Default Description scrobbling_enabledtrueReport listening activity back to the server. scrobble_threshold0.50Percentage of track duration (0.25 to 0.90) needed to trigger a scrobble.
Key Default Description quick_add_to_playlistfalseSkip the “Add to Playlist” dialog and add directly to a remembered default playlist.
Nokkvi features a high-performance PipeWire visualizer with two main modes: bars and lines. For a detailed breakdown of color mapping, peak behaviors, and animations, see the Visualizer Reference .
Key Default Description visualizer.auto_sensitivitytrueAutomatically scale gain to fill the available height. visualizer.noise_reduction0.77Smoothing of the raw FFT data (0.0 to 1.0). visualizer.wavesfalseEnable spline smoothing between bars. visualizer.waves_smoothing4Spline control-point density when waves is on (2 to 16; higher = smoother curves). visualizer.monstercat0.0Monstercat-style energy spread to neighbouring bars. Values below 0.7 snap to 0.0 (disabled); effective range is 0.7 to 1.0. visualizer.lower_cutoff_freq50Bass floor in Hz. Frequencies below this are excluded from the spectrum (minimum 20). visualizer.higher_cutoff_freq10000Treble ceiling in Hz. Capped at the Nyquist limit (22050). visualizer.height_percent0.20Percentage of window height occupied by the visualizer (0.1 to 0.6). visualizer.opacity1.0Transparency of the visualizer (0.0 to 1.0).
Key Default Description visualizer.bars.max_bars2048Maximum number of bars the dynamic layout will try to fit (16 to 2048). visualizer.bars.bar_width_min4.0Minimum bar width in pixels for small windows (1.0 to 10.0). visualizer.bars.bar_width_max4.0Maximum bar width in pixels for large windows. Must be ≥ bar_width_min (up to 20.0). Equal min/max gives uniform bar widths regardless of window size. visualizer.bars.bar_spacing1.0Gap between bars in pixels. visualizer.bars.border_width2.0Border thickness in pixels. Also controls LED segment gaps when led_bars is on (0.0 to 5.0). visualizer.bars.led_barsfalseRender bars as discrete LED segments (VU meter style). visualizer.bars.led_segment_height2.0Height of each LED segment in pixels (LED mode only; 2.0 to 20.0). visualizer.bars.gradient_mode"wave"Color mapping mode. Learn more → visualizer.bars.gradient_orientation"vertical"Axis for color mapping (vertical or horizontal). visualizer.bars.peak_mode"fade"Behavior of peak indicators. Learn more → visualizer.bars.peak_gradient_mode"static"Color mode for peaks (static, cycle, height, match). visualizer.bars.peak_hold_time1000Duration in milliseconds peaks stay at maximum before falling/fading. visualizer.bars.peak_fade_time750Fade-out duration in milliseconds (fade and fall_fade modes only). visualizer.bars.peak_height_ratio50Peak indicator height as a percentage of bar width (10 to 100; ignored in LED mode). visualizer.bars.peak_fall_speed5Peak fall velocity scale (1 = slow, 5 = default, 20 = fast; does not affect fade mode). visualizer.bars.bar_depth_3d0.03D isometric depth in pixels (0.0 disables; up to 20.0).
Key Default Description visualizer.lines.point_count24Number of points used to draw the line (8 to 512). visualizer.lines.line_thickness0.05Thickness of the line as a fraction of visualizer height (0.01 to 0.10). visualizer.lines.outline_thickness2.0Outline border thickness in pixels (0.0 disables; up to 5.0). visualizer.lines.outline_opacity1.0Outline opacity (0.0 to 1.0). visualizer.lines.animation_speed0.25Color cycle speed for the breathing gradient mode (0.05 = very slow, 1.0 = very fast). visualizer.lines.fill_opacity0.0Transparency of the area under the line (0.0 to 1.0). visualizer.lines.mirrorfalseSymmetric oscilloscope mode (extends from center). visualizer.lines.style"smooth"Interpolation style (smooth or angular). visualizer.lines.gradient_mode"breathing"Color mapping mode. Learn more →
These settings drive the internal audio engine and the UI sound effects layer. They are also exposed in the Settings menu.
Key Default Description eq_enabledfalseGlobal bypass for the 10-band equalizer. eq_gains[0.0, ...]List of 10 gain values in dB (one per band: 32, 64, 125, 250, 500, 1k, 2k, 4k, 8k, 16k Hz). Range −12.0 to +12.0 per band. custom_eq_presets[]User-saved EQ presets. Each preset is a { name, gains } object; managed through the in-app EQ panel. sound_effects_enabledtrueGlobal toggle for UI sound effects. sfx_volume0.68Volume for UI sound effects (0.0 to 1.0).
eq_gains must have exactly 10 values
eq_gains expects an array of exactly 10 floats — one per band. If you edit this by hand and provide fewer or more values, the EQ will not load and will silently fall back to flat (all zeros). Use the in-app EQ panel to manage presets safely; it will write the correct array for you.