Skip to main content

Variables

The configuration file is located at ~/.config/serpantinum/settings.json (or ${XDG_CONFIG_HOME:-$HOME/.config}/serpantinum/settings.json), and changes apply instantly without a reload.

Example settings.json​

{
"general": {
"language": "en"
},
"bar": {
"position": "top",
"width": 100,
"style": "fill",
"modules": {
"left": ["left", "workspaces", "media"],
"center": [["timedate", "info", "weather"]],
"right": ["tray", ["kb", "wifi", "bt", "vol", "bat"]]
}
},
"theme": {
"fontFamily": "Adwaita Mono",
"borderRadius": 10,
"activePreset": "Matugen",
"matugen": true
},
"launcher": {
"position": "center",
"terminalCommand": "kitty -e"
},
"dock": {
"enabled": true,
"position": "bottom"
}
}

Options​

General​

KeyTypeDefaultDescription
general.languagestring"en"Interface language code (en, fr, ua, ru, de, es, it, hy, vi, ko, pt, az, ar, ja, zh, zh_tw, pl, tr, id, nl, fa, hi, bg).
general.avatarPathstring""Absolute path to custom profile picture.
general.quickactionsbooleantrueEnables the floating quick-actions overlay.
general.muteSfxbooleanfalseMutes all sound effects.
general.sfxVolumenumber100UI sound effects volume level (0 to 100).
general.screenshotCaptureOnReleasebooleanfalseImmediately captures region when releasing mouse drag without manual shutter confirmation.
general.weatherIntervalnumber15Weather update polling frequency in minutes (1 to 1440).
general.weatherUnitstring"metric"Temperature unit: "metric", "imperial", or "standard".
general.locationobject{}Geographic coordinates cache (latitude, longitude, city, timezone).

Theme​

KeyTypeDefaultDescription
theme.fontFamilystring"Adwaita Mono"Font family applied globally across all shell surfaces and popouts.
theme.borderRadiusnumber10Global corner radius in pixels (0 to 24).
theme.activePresetstring"Matugen"Active color palette preset name (e.g., "Matugen", "Catppuccin Mocha", "Tokyo Night", "Nord").
theme.matugenbooleantrueEnables automatic Material You color extraction from the current wallpaper.
theme.colorsobject{}Custom hex color overrides for palette roles (base, surface0, surface1, surface2, text, mauve, blue, sapphire, green, peach, red, crust, mantle).
wallpaperDirstring"~/Pictures/Wallpapers"Directory scanned for desktop wallpapers in the wallpaper selector.

Display​

KeyTypeDefaultDescription
display.monitors.<name>.enabledbooleantrueOutput power state toggled via compositor IPC (Hyprland, Sway, Niri).
display.monitors.<name>.scalenumber1.0Output scaling factor (e.g., 1.0, 1.25, 1.5, 2.0).
display.monitors.<name>.autobooleanfalseAutomatically calculates night-light color temperature from local sunrise and sunset.
display.monitors.<name>.temperaturenumber50Night light warmth level (0 to 100).

Widgets​

KeyTypeDefaultDescription
widgets.hideBarInRedactorbooleantrueAutomatically hides the status bar while the desktop widget redactor is open.

Bar​

KeyTypeDefaultDescription
bar.positionstring"top"Screen edge where the bar attaches: "top", "bottom", "left", or "right".
bar.widthnumber100Bar length percentage (10 to 100). Values below 100 render a floating dock-style bar.
bar.opacitynumber100Background opacity percentage (0 to 100).
bar.stylestring"modular"Visual bar style: "modular", "fill", or "solid".
bar.distinctPillsbooleanfalseRenders each module inside an isolated, detached capsule pill.
bar.autohidebooleanfalseAutomatically hides the bar until cursor enters the screen trigger area.
bar.autohideTimeoutnumber1000Delay in milliseconds before hiding the bar after cursor leaves.
bar.workspaceCountnumber8Total number of persistent workspace indicators displayed.
bar.hideEmptyWorkspacesbooleanfalseHides workspace indicators that have no assigned windows.
bar.modules.leftarray["left", "workspaces", "media"]Modules positioned on the left/top section. Sub-arrays group modules into a shared pill.
bar.modules.centerarray[["timedate", "info", "weather"]]Modules positioned on the center section.
bar.modules.rightarray["tray", ["kb", "wifi", "bt", "vol", "bat"]]Modules positioned on the right/bottom section.
bar.groupColorsobject{}Custom hex accent colors mapped to grouped module pill IDs (e.g. {"g_sysmon": "#ffb59c"}).

Bar modules​

KeyTypeDefaultDescription
bar.workspacesStylestring"pills"Workspace indicator style: "pills", "numbers", or "pacman".
bar.timeStylestring"classic"Clock module visual style: "classic", "material", or "badge".
bar.time.formatstring"HH:mm:ss"Qt time format pattern string (e.g., "HH:mm:ss", "HH:mm", "hh:mm AP").
bar.timeShowDatebooleantrueShows calendar date beside time.
bar.visBarCountnumber16Number of spectrum frequency bars rendered (4 to 32).
bar.visAlignmentstring"center"Visualizer spectrum alignment: "center", "left", or "right".
bar.visContinuousbooleanfalseRenders a continuous waveform line instead of discrete frequency bars.
bar.sysmonStylestring"wave"Resource monitor style: "wave", "circle", or "bars".
bar.sysmonStatsarray["cpu", "ram", "temp"]Monitored resource metrics: subset of ["cpu", "ram", "temp", "disk"].
bar.batStylestring"classic"Battery module visual style: "classic", "minimal", or "text".
bar.batShowPercentbooleantrueDisplays numeric percentage charge level.
bar.batShowIconbooleantrueDisplays battery status glyph.
bar.wifiStylestring"button"Wi-Fi module visual style: "button" or "text".
bar.wifiShowIconbooleantrueDisplays wireless signal icon.
bar.wifiShowNamebooleantrueDisplays connected network SSID name.
bar.btStylestring"button"Bluetooth module visual style: "button" or "text".
bar.btShowIconbooleantrueDisplays Bluetooth status icon.
bar.btShowNamebooleantrueDisplays connected Bluetooth device alias.
bar.volStylestring"button"Audio volume module visual style: "button" or "text".
bar.volShowIconbooleantrueDisplays speaker icon.
bar.volShowPercentbooleantrueDisplays numeric volume percentage.
bar.kbStylestring"button"Keyboard layout module visual style: "button" or "text".
bar.kbShowIconbooleantrueDisplays keyboard glyph.

Launcher​

KeyTypeDefaultDescription
launcher.positionstring"top"Screen anchor: "top", "bottom", "left", "right", or "center".
launcher.widthnumber600Width of the launcher search window in pixels.
launcher.itemCountnumber6Maximum visible applications in results list (3 to 15).
launcher.terminalCommandstring"kitty -e"Terminal execution command prefix for CLI applications ("kitty -e", "alacritty -e", "foot -e").
launcher.smartRankingbooleantrueDynamically sorts search results based on launch history and usage frequency.

Dock​

KeyTypeDefaultDescription
dock.enabledbooleantrueMaster toggle for the application dock.
dock.positionstring"bottom"Screen edge where dock attaches: "bottom", "top", "left", or "right".
dock.onTopbooleantrueKeeps dock above normal client windows.
dock.floatingbooleanfalseDetaches dock from screen edge with outer margin padding.
dock.exclusivebooleanfalseReserves screen space via compositor layer-shell so tiled windows do not overlap.
dock.opacitynumber100Dock surface opacity percentage (0 to 100).
dock.elementSizenumber44Base icon size in pixels (24 to 96).
dock.hoverScalenumber120Hover zoom factor percentage (100 to 200).
dock.cascadeScalebooleanfalseApplies parabolic wave magnification to neighboring icons on hover.
dock.autohidebooleanfalseHides the dock until hovered.
dock.smartAutohidebooleantrueAutomatically hides the dock only when a window overlaps its area (intellihide).
dock.autohideTimeoutnumber1000Delay in milliseconds before hiding.
dock.enableScrollingbooleanfalseEnables mouse wheel scrolling when items exceed visible count.
dock.visibleElementsnumber7Maximum number of visible icons when scrolling is enabled.
dock.focusRunningbooleantrueClicking a running application raises and focuses its existing window.
dock.showRunningIndicatorsbooleantrueDisplays indicator dots beneath active running applications.
dock.showRunningAppsbooleanfalseAutomatically adds unpinned active applications to the dock.
dock.runningScopestring"auto"Filters running applications by workspace scope: "auto", "workspace", or "all".
dock.appsarray[]List of pinned application objects ([{"name": "...", "comment": "...", "desktop_id": "...", "icon": "..."}]).

OSD​

KeyTypeDefaultDescription
osd.horizontalPositionnumber50Horizontal coordinate on screen (0 to 100 percent).
osd.verticalPositionnumber90Vertical coordinate on screen (0 to 100 percent).
osd.orientationstring"horizontal"Slider orientation: "horizontal" or "vertical".
osd.showCapsLockbooleantrueDisplays popout banner when toggling CapsLock.
osd.showNumLockbooleantrueDisplays popout banner when toggling NumLock.
osd.showAirplanebooleantrueDisplays popout banner when toggling Airplane mode.
osd.attachToBarbooleantrueAutomatically offsets position relative to status bar when placed near the same edge.

Notifications​

KeyTypeDefaultDescription
notifications.dndbooleanfalseDo Not Disturb mode; suppresses desktop banner popups.
notifications.positionstring"top right"Screen anchor position: "top right", "top center", "top left", "bottom right", "bottom center", "bottom left", or "custom".
notifications.horizontalPositionnumber95Horizontal screen percentage used when position is "custom".
notifications.verticalPositionnumber5Vertical screen percentage used when position is "custom".
notifications.soundbooleantruePlays an audio chime when notifications arrive.
notifications.soundFilestring""Absolute path to custom notification sound file (.wav or .ogg).
notifications.showEmptyGraphicbooleantrueDisplays decorative art in notification center when no notifications remain.

Idle​

KeyTypeDefaultDescription
idle.enabledbooleantrueMaster toggle for the idle power management subsystem.
idle.manualInhibitbooleanfalseCaffeine mode; suppresses all automated idle timeouts.
idle.actions.dimobject{...}Screen dim action (timeout: seconds, enabled: boolean, respectInhibitors: boolean, mprisInhibit: boolean, warningTimeout: seconds, beforeCommand: string, resumeCommand: string).
idle.actions.lockobject{...}Session lock action (timeout: seconds, enabled: boolean, respectInhibitors: boolean, mprisInhibit: boolean, warningTimeout: seconds, warningCommand: string).
idle.actions.dpmsobject{...}Display power off (DPMS) action (timeout: seconds, enabled: boolean, respectInhibitors: boolean, mprisInhibit: boolean).
idle.actions.suspendobject{...}System suspend action (timeout: seconds, enabled: boolean, respectInhibitors: boolean, mprisInhibit: boolean).
idle.customActionsarray[]User-defined custom idle actions with custom triggers and execution commands.

Inputs​

KeyTypeDefaultDescription
inputs.passwordRevealbooleanfalseDisplays a show/hide password toggle button inside password input fields.