Skip to content

Types ​

Named types referenced across the config. Every field in /config/ that shows a type like Color or ClickAction links here.

ActiveIndicator ​

Visual indicator style for the active workspace.

ValueMeaning
"background"Entire button gets a colored background.
"underline"Small colored bar under the workspace button.

AnimationType ​

Enter/exit transition style for transient surfaces (OSD, toasts, notifications). Driven per frame by the custom revealer (GskTransform + opacity).

ValueMeaning
"none"No transition; surfaces appear and disappear instantly.
"fade"Cross-fade opacity in and out.
"slide-up"Slide in from / out to the top edge.
"slide-down"Slide in from / out to the bottom edge.
"slide-left"Slide in from / out to the left edge.
"slide-right"Slide in from / out to the right edge.
"swing-up"Slide in from / out to the top edge with a rotating swing.
"swing-down"Slide in from / out to the bottom edge with a rotating swing.
"swing-left"Slide in from / out to the left edge with a rotating swing.
"swing-right"Slide in from / out to the right edge with a rotating swing.
"bounce"Scale in from a shrunken state with an elastic overshoot, then settle.
"genie"Suck in toward / out to the surface's anchored edge (macOS "genie"
minimize, approximated with an affine scale-and-slide). Auto-orients to
the edge the surface sits on.
"zoom"Scale in smoothly from the center with no overshoot.
"rotate"Spin in: rotate into place while scaling up and fading in.
"flip"Card flip: open out from a vertical edge (horizontal scale through zero).

AnimationType2 ​

Enter/exit transition style for transient surfaces (OSD, toasts, notifications). Driven per frame by the custom revealer (GskTransform + opacity).

ValueMeaning
"none"No transition; surfaces appear and disappear instantly.
"fade"Cross-fade opacity in and out.
"slide-up"Slide in from / out to the top edge.
"slide-down"Slide in from / out to the bottom edge.
"slide-left"Slide in from / out to the left edge.
"slide-right"Slide in from / out to the right edge.
"swing-up"Slide in from / out to the top edge with a rotating swing.
"swing-down"Slide in from / out to the bottom edge with a rotating swing.
"swing-left"Slide in from / out to the left edge with a rotating swing.
"swing-right"Slide in from / out to the right edge with a rotating swing.
"bounce"Scale in from a shrunken state with an elastic overshoot, then settle.
"genie"Suck in toward / out to the surface's anchored edge (macOS "genie"
minimize, approximated with an affine scale-and-slide). Auto-orients to
the edge the surface sits on.
"zoom"Scale in smoothly from the center with no overshoot.
"rotate"Spin in: rotate into place while scaling up and fading in.
"flip"Card flip: open out from a vertical edge (horizontal scale through zero).

AppIconSource ​

Icon source for app volume entries in the dropdown.

ValueMeaning
"mapped"lys-shell's curated symbolic icons matched by app name.
"native"Native application icons reported by PulseAudio.

Appearance ​

Light/dark appearance mode.

Auto keeps each provider's own light setting and the configured static palette as-is. Light/Dark force the mode: dynamic providers switch their light flag, and the static palette swaps to its built-in light/dark variant when one exists.

ValueMeaning
"auto"Follow each provider's own setting / the configured palette.
"light"Force the light variant.
"dark"Force the dark variant.

BarButtonVariant ​

Visual style variants for bar buttons.

ValueMeaning
"basic"Icon + label, minimal background.
"block-prefix"Icon in colored pill container that blends into button edge.
"icon-square"Button background with colored icon container inside.

BarCount ​

Frequency bar count clamped to 1-256.

Number in [1, 256].

Serialises as uint16.

BarGroup ​

Named group of modules. The name becomes a CSS ID selector.

FieldDescription
nameUnique name for CSS targeting (becomes #name selector).
modulesModules contained in this group.

BarItem ​

One entry in a bar layout section (left, center, or right).

Three shapes are accepted, all interchangeable in the same list:

  • A plain module name: clock
  • A module with a CSS class for per-instance styling: {module: clock, class: primary}
  • A named group that wraps several modules in a shared container, addressable by CSS ID

Examples ​

yaml
bar:
  layout:
    - monitor: "*"

      # Plain module
      left: [dashboard]

      # Mix of plain and classed modules on the same side
      center:
        - clock
        - {module: clock, class: secondary}

      # Named group (renders inside a GTK container with CSS ID `#status`)
      right:
        - {name: status, modules: [battery, network, volume]}

    # Groups can hold classed modules too
    - monitor: DP-2
      left:
        - name: clocks
          modules:
            - {module: clock, class: local}
            - {module: world-clock, class: remote}

BarLayout ​

Layout configuration for a bar on a specific monitor.

Examples ​

yaml
# Single modules
bar:
  layout:
    - monitor: "*"
      left: [dashboard]
      center: [clock]
      right: [systray]

    # Module with custom CSS class for per-instance styling
    - monitor: DP-1
      left:
        - {module: clock, class: primary-clock}
        - clock
      center: [media]

    # Grouped modules (share a visual container, CSS-targetable by name)
    - monitor: DP-2
      left:
        - {name: status, modules: [battery, network]}

    # Groups can also contain classed modules
    - monitor: DP-3
      left:
        - name: clocks
          modules:
            - {module: clock, class: local}
            - {module: world-clock, class: remote}

    # Inherit from another layout
    - monitor: "*"
      left: [dashboard]
      center: [clock]
      right: [systray]
    - monitor: HDMI-1
      extends: "*"
      right: [volume, systray]  # Override just this section

    # Hide bar on a specific monitor
    - monitor: HDMI-2
      show: false
FieldDescription
monitorMonitor connector name (e.g., "DP-1") or "*" for all monitors.
extendsInherit from another layout by its monitor value (e.g., "*").
showWhether the bar is visible on this monitor.
leftModules in the left section.
centerModules in the center section.
rightModules in the right section.

BarModule ​

Bar module name. Built-in modules or custom modules with a custom-<id> pattern.

One of: "battery", "bitwarden", "bluetooth", "brightness", "cava", "clock", "cpu", "dashboard", "hyprland-workspaces", "idle-inhibit", "keybind-mode", "keyboard-input", "lys-wm-workspaces", "mail", "media", "mango-workspaces", "microphone", "netstat", "network", "nightlight", "niri-workspaces", "notifications", "power", "power-profiles", "ram", "recorder", "screenshot", "separator", "storage", "sway-workspaces", "systray", "treeman", "updates", "volume", "weather", "window-title", "workspaces", "world-clock".

String matching ^custom-[a-z0-9-]+$.

BitwardenPassphrasePreset ​

A passphrase of words from the EFF large wordlist the Bitwarden dropdown's generator makes and copies.

Example ​

yaml
modules: {bitwarden: {generator-passphrases: [{name: Spoken, words: 5, separator: " ", capitalize: false, number: false}]}}
FieldDescription
nameName the generator lists the preset by.
wordsNumber of words, 3-20.
separatorText between the words.
capitalizeCapitalise the first letter of every word.
numberAppend a digit to one of the words.

BitwardenPasswordPreset ​

A random-character password the Bitwarden dropdown's generator makes and copies.

Example ​

yaml
modules: {bitwarden: {generator-passwords: [{name: PIN-safe, length: 12, charsets: [uppercase, digits], avoid-ambiguous: true}]}}
FieldDescription
nameName the generator lists the preset by.
lengthLength in characters, 5-128.
charsetsCharacter classes to draw from; each appears at least once.
avoid-ambiguousLeave out the easily confused characters l, I, O, 0 and 1.

BitwardenServer ​

String.

BorderLocation ​

Border placement for bar buttons.

ValueMeaning
"none"No border.
"top"Border on top edge only.
"bottom"Border on bottom edge only.
"left"Border on left edge only.
"right"Border on right edge only.
"all"Border on all edges.

CavaDirection ​

Bar growth direction relative to the bar's attached screen edge.

ValueMeaning
"normal"Bars grow away from the attached edge.
"reverse"Bars grow toward the attached edge.
"mirror"Bars grow symmetrically from center.

CavaInput ​

Audio capture backend.

ValueMeaning
"pipe-wire"PipeWire multimedia server.
"pulse"PulseAudio sound server.
"alsa"Advanced Linux Sound Architecture.
"jack"JACK Audio Connection Kit.
"fifo"Named pipe (FIFO) input.
"port-audio"PortAudio cross-platform library.
"sndio"sndio audio subsystem (BSD).
"oss"Open Sound System (legacy).
"shmem"Shared memory input.
"winscap"Windows audio capture (WASAPI).

CavaStyle ​

Visualization rendering style.

ValueMeaning
"bars"Rectangular frequency bars.
"wave"Smooth curve connecting bar peaks.
"peaks"Bars with floating peak indicators that decay over time.

ClassedModule ​

A module with an associated CSS class for custom styling.

FieldDescription
moduleThe module type.
classCSS class added to the module's GTK widget.

ClickAction ​

String.

ClipboardHistoryMiB ​

Clipboard history budget in MiB.

Number in [8, 1024].

Serialises as uint32.

ColorValue ​

CSS token, hex color (#rgb, #rgba, #rrggbb, or #rrggbbaa), 'transparent', or 'auto'

ValueMeaning
"bg-base"--bg-base - Application background.
"bg-surface"--bg-surface - Elevated surfaces.
"bg-surface-elevated"--bg-surface-elevated - Subtle elevation from surface (buttons on surface).
"bg-elevated"--bg-elevated - Higher elevation surfaces.
"bg-overlay"--bg-overlay - Popovers, dialogs.
"bg-hover"--bg-hover - Hover state background.
"bg-active"--bg-active - Active/pressed state background.
"bg-selected"--bg-selected - Selected item background.
"fg-default"--fg-default - Primary text color.
"fg-muted"--fg-muted - Secondary text color.
"fg-subtle"--fg-subtle - Tertiary/hint text color.
"fg-on-accent"--fg-on-accent - Text color on accent backgrounds.
"accent"--accent - Primary accent color.
"accent-subtle"--accent-subtle - Subtle accent background.
"accent-hover"--accent-hover - Accent hover state.
"status-error"--status-error - Error state color.
"status-warning"--status-warning - Warning state color.
"status-success"--status-success - Success state color.
"status-info"--status-info - Info state color.
"status-error-subtle"--status-error-subtle - Subtle error background.
"status-warning-subtle"--status-warning-subtle - Subtle warning background.
"status-success-subtle"--status-success-subtle - Subtle success background.
"status-info-subtle"--status-info-subtle - Subtle info background.
"status-error-hover"--status-error-hover - Error hover state.
"red"--red - Red color for stylistic/decorative use.
"yellow"--yellow - Yellow color for stylistic/decorative use.
"green"--green - Green color for stylistic/decorative use.
"blue"--blue - Blue color for stylistic/decorative use.
"border-subtle"--border-subtle - Subtle border color.
"border-default"--border-default - Default border color.
"border-strong"--border-strong - Strong border color.
"border-accent"--border-accent - Accent-colored border.
"border-error"--border-error - Error state border.

One of: "transparent", "auto".

String matching ^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$.

CyclingInterval ​

Cycling interval in minutes, minimum 1.

Number >= 1.

Serialises as uint64.

CyclingMode ​

Wallpaper cycling order.

ValueMeaning
"sequential"Alphabetical order.
"shuffle"Random order.

DisplayMode ​

What identifies a workspace in the UI.

ValueMeaning
"label"Show workspace number or name.
"icon"Show icon from workspace-map (falls back to label if unmapped).
"none"Show nothing - only app icons visible.

Size override for a dropdown foldout panel.

Each field is optional: when unset the dropdown keeps its built-in default width (scaled by the global scale) and the height of its content. The width is a [Size]: a scale multiplier of the built-in base (e.g. 1.5) or an absolute pixel length (e.g. "480px"). The height is a pixel length only.

FieldDescription
widthPanel width override. Unset uses the built-in default width.
heightPanel height cap in pixels (e.g. "400px"): the height a panel grows

DynamicLauncherConfig ​

Launcher installation policy.

FieldDescription
install-token-appsApp ids granted an install token, with which they install

ExecutionMode ​

Execution mode for custom module commands.

ValueMeaning
"poll"Run command at regular intervals defined by interval-ms.

Best for commands that complete quickly and return current state (e.g., reading a file, querying system status). | | "watch" | Spawn long-running process and update display on each stdout line.

Best for event-driven updates without polling overhead (e.g., pactl subscribe, inotifywait, tail -f). Configure restart-policy to control restarts after exit. |

FitMode ​

Image scaling mode.

ValueMeaning
"fill"Scale to cover entire display, cropping excess.
"fit"Scale to fit within display, letterboxing if needed.
"center"Display at original size, centered.
"stretch"Stretch to exactly fill, ignoring aspect ratio.

FitMode2 ​

Image scaling mode.

ValueMeaning
"fill"Scale to cover entire display, cropping excess.
"fit"Scale to fit within display, letterboxing if needed.
"center"Display at original size, centered.
"stretch"Stretch to exactly fill, ignoring aspect ratio.

FontWeightClass ​

Font weight class for typography.

Maps to CSS classes like .weight-normal, .weight-bold, etc. Uses the existing --weight-* tokens defined in the stylesheet.

ValueMeaning
"normal"Normal weight (--weight-normal: 400).
"medium"Medium weight (--weight-medium: 500).
"semibold"Semi-bold weight (--weight-semibold: 600).
"bold"Bold weight (--weight-bold: 700).

Framerate ​

Visualization framerate clamped to 1-360 fps.

Number in [1, 360].

Serialises as uint32.

FrequencyHz ​

Frequency value in Hz, minimum 1 Hz.

Cross-field constraints (high_cutoff > low_cutoff, samplerate/2 > high_cutoff) are validated at the service builder.

Number >= 1.

Serialises as uint32.

HexColor ​

GTK4 CSS hex color (#rgb, #rgba, #rrggbb, or #rrggbbaa)

String matching ^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$.

IconPosition ​

Icon position within bar buttons.

ValueMeaning
"start"Icon before label (left for horizontal, top for vertical bars).
"end"Icon after label (right for horizontal, bottom for vertical bars).

IconSource ​

Source for resolving notification icons.

ValueMeaning
"automatic"Use per-notification images when provided, otherwise lys-shell's mapped icon.
"mapped"Always use lys-shell's mapped icons regardless of what the app provides.
"application"Use the full application icon chain, falling back to mapped if unavailable.

IdleInhibitDuration ​

Idle inhibit duration in whole minutes, 0 for indefinite.

Number in [0, 71582788].

Serialises as uint32.

LabelStrategy ​

What identifies each workspace's label.

ValueMeaning
"index"Always show the index (e.g. 1, 2, 3).
"name-or-index"Show the name when set, fall back to the index.
"name-only"Show only the name; unnamed workspaces show nothing.
"index-and-name"Show both, joined as "1: web". Unnamed workspaces show the index alone.

LauncherCase ​

Case handling (collapses rofi -case-sensitive/-case-smart).

ValueMeaning
"insensitive"Always case-insensitive.
"smart"Sensitive only when the query contains an uppercase char.
"sensitive"Always case-sensitive.

LauncherCombiConfig ​

combi mode settings.

FieldDescription
modesModes merged into the combined list.
display-formatRow template ({mode}, {text}).

LauncherDrunConfig ​

drun (application) mode settings.

FieldDescription
categoriesOnly show apps within these categories (empty = all).
exclude-categoriesHide apps within these categories.
match-fieldsDesktop-entry fields fed to the matcher.
display-formatRow template: {name}, {generic}, {exec}, {categories},
show-actionsExpose desktop-file actions as extra rows.
url-launcherCommand opening Type=Link entries.

LauncherDrunField ​

Desktop-entry fields searched by drun (rofi -drun-match-fields).

ValueMeaning
"name"Localized Name.
"generic"GenericName.
"exec"Exec command line.
"categories"Categories list.
"comment"Comment.
"keywords"Keywords list.

LauncherFileSort ​

File sorting in the file browser (rofi filebrowser sorting-method).

ValueMeaning
"name"By file name.
"mtime"By modification time.
"atime"By access time.
"ctime"By creation time.

LauncherFilebrowserConfig ​

file browser mode settings.

FieldDescription
directoryStart directory ("" = home).
sorting-methodFile ordering.
directories-firstList directories before files.
show-hiddenShow hidden files.
commandCommand opening the picked file ("" = xdg-open).

LauncherHistoryConfig ​

Launch history / frecency settings.

FieldDescription
enableRecord launches and rank frequently used entries first.
max-sizeMaximum remembered entries per mode.

LauncherLocation ​

Launcher surface position (rofi -location 0-8 grid).

ValueMeaning
"center"Centered (rofi location 0).
"north-west"Top-left (1).
"north"Top edge (2).
"north-east"Top-right (3).
"east"Right edge (4).
"south-east"Bottom-right (5).
"south"Bottom edge (6).
"south-west"Bottom-left (7).
"west"Left edge (8).

LauncherMatching ​

Matching method (rofi -matching).

ValueMeaning
"normal"Tokenized substring matching.
"regex"Regular expression.
"glob"Glob patterns per token.
"fuzzy"fzf-style fuzzy matching.
"prefix"Tokenized prefix matching.

A link in the search panel.

FieldDescription
nameName shown and searched.
urlURL to open, with {query} where a query goes if it takes one.
keywordWord that leads a query for this link: gh makes gh rust search it.
iconIcon name or file (empty is a link icon).

LauncherRunConfig ​

run (command) mode settings.

FieldDescription
run-commandPlain accept template ({cmd}).
shell-commandRun-in-terminal template ({terminal}, {cmd}).
list-commandExtra command whose stdout lines add entries.

LauncherSearchConfig ​

The search panel: one ranked list over apps, windows, files and more.

FieldDescription
providersWhat the list searches, and what it leaves out by omission.
web-engineWeb search fallback: the engine's name, shown on the row.
web-urlWeb search fallback: the URL, with {query} where the search goes.
file-rootsDirectories the file index walks (~ allowed). Empty indexes the home
file-excludeDirectory names the file index skips, on top of hidden ones and the
commands-dirDirectory of script commands. Empty uses launcher/commands in the
previewsShow the side pane for files, snippets and clipboard entries.
quicklinksLinks to open by name or keyword.
snippetsText to copy by name or keyword.

LauncherSearchProvider ​

A source of rows in the search panel.

ValueMeaning
"apps"Desktop entries, with their actions.
"windows"Open windows to jump to.
"files"Recent files and the file index.
"calculator"Inline arithmetic and unit conversion.
"system"Lock, suspend, log out, reboot, shut down.
"settings"Pages of lys-settings.
"clipboard"The clipboard history.
"emoji"The emoji table.
"vault"The Bitwarden vault.
"links"Quick links and snippets.
"scripts"Script commands from the commands directory.
"shell">command runs a shell command.
"web"The web search fallback.

LauncherSnippet ​

A piece of text in the search panel.

FieldDescription
nameName shown and searched.
textThe text Enter copies.
keywordExtra word it is found by.

LauncherSorting ​

Result sorting method (rofi -sorting-method).

ValueMeaning
"levenshtein"Levenshtein distance to the query (rofi "normal").
"fzf"fzf match-quality score.

LauncherSshConfig ​

ssh mode settings.

FieldDescription
clientSSH client binary.
commandConnect template ({terminal}, {ssh-client}, {host}).
parse-hostsInclude hosts from /etc/hosts.
parse-known-hostsInclude hosts from ~/.ssh/known_hosts.

LauncherWindowConfig ​

window switcher mode settings.

FieldDescription
formatRow template: {w} workspace, {c} class, {t} title, {n} name,
match-fieldsWindow fields fed to the matcher.
hide-activeHide the currently focused window from the list.
close-on-deleteShift-delete closes the selected window.

LauncherWindowField ​

Window fields searched by window mode (rofi -window-match-fields).

ValueMeaning
"title"Window title.
"class"Application class/app-id.
"name"Window name.
"role"Window role.
"desktop"Workspace/desktop name.

Layer ​

Layer-shell layer a window is placed on, from furthest back to furthest front.

ValueMeaning
"background"Below everything else, used for wallpapers and ambient surfaces.
"bottom"Behind regular application windows.
"top"Above regular application windows.
"overlay"Above everything, including fullscreen application windows.

Location ​

Bar position on screen.

ValueMeaning
"top"Top edge of the screen.
"bottom"Bottom edge of the screen.
"left"Left edge of the screen.
"right"Right edge of the screen.

LockBackground ​

How the lock screen background is rendered.

ValueMeaning
"color"Solid color fill (background-color).
"image"A specific image file (background-image).
"wallpaper"Reuse the current desktop wallpaper.

LockBlur ​

Lock background blur in pixels, 0 for none.

Number in [0, 1000].

Serialises as uint32.

LockdownConfig ​

Features no app may use while set.

FieldDescription
disable-printingRefuse printing.
disable-save-to-diskRefuse saving files through the file chooser.
disable-application-handlersRefuse opening URIs and files in other applications.
disable-locationRefuse location access.
disable-cameraRefuse camera access.
disable-microphoneRefuse microphone access.
disable-sound-outputRefuse sound output.

LoginGreeterConfig ​

Greeter mode: the login screen before login, as the display manager.

FieldDescription
show-user-listShow clickable avatars for the machine's login users.
show-power-buttonsShow the shutdown/reboot buttons at the bottom of the screen.
cursor-themeXcursor theme used on the login screen (empty = system default).
cursor-sizeLogical cursor size on the login screen. Scaled automatically per

LoginLockConfig ​

Lock mode: the login screen locking the session via ext-session-lock-v1.

When enabled, the session locks in response to the logind Lock signal (loginctl lock-session), the lys-shell lock CLI, or the shell IPC lock() method. The lock surface grabs all input and survives client crashes (the compositor shows a solid color), unlike a layer-shell overlay.

FieldDescription
enabledLet lys-shell handle session locking. When off, lock requests are ignored
lock-on-startLock the session as soon as the shell starts. For autologin setups
grace-period-msGrace window after locking during which the screen unlocks without a
blank-timeout-msBlack out the lock screen after this idle time (milliseconds, 0 =
pam-servicePAM service name used to authenticate the unlock. Distro-dependent:

MailAccount ​

One mail account in the modules.mail per-account breakdown.

Each account has its own notmuch query; the dropdown shows the per-account unread counts and the bar shows their sum.

Example ​

yaml
modules: {mail: {accounts: [{name: Work, query: "folder:work/INBOX and tag:unread", provider: gmail}]}}
FieldDescription
nameDisplay name shown in the dropdown.
querynotmuch query whose match count is this account's unread total.
providerProvider, selecting the default brand icon.
iconOptional icon override. Empty uses the provider's default icon.

MailProvider ​

Mail provider, used to pick a default brand icon for an account.

ValueMeaning
"generic"Generic mailbox; uses the plain mail glyph.
"gmail"Gmail.
"outlook"Microsoft Outlook.
"icloud"Apple iCloud Mail.
"proton"Proton Mail.
"fastmail"Fastmail.
"yahoo"Yahoo Mail.

MatugenScheme ​

Matugen color scheme type.

ValueMeaning
"content"Adapts to image content.
"expressive"Bold, dramatic palette.
"fidelity"Stays close to source colors.
"fruit-salad"Playful multi-color palette.
"monochrome"Single-hue grayscale palette.
"neutral"Muted, understated palette.
"rainbow"Broad hue spread.
"tonal-spot"Balanced Material You default.
"vibrant"High-saturation palette.

MediaIconType ​

Icon display mode for the media module.

ValueMeaning
"default"Static icon from icon-name field.
"application"Dynamic icon from media player's desktop entry, falling back to icon-name.
"spinning-disc"Spinning disc icon that animates during playback. Uses slightly more CPU.
"application-mapped"Maps player to icon via glob patterns, with built-in mappings for common players.

ModuleRef ​

Reference to a module, optionally with a custom CSS class.

Examples ​

yaml
# Plain module (just the name)
left: [clock]

# Module with custom CSS class
left:
  - {module: clock, class: primary-clock}

MonitorWallpaperConfig ​

Per-monitor wallpaper configuration.

FieldDescription
nameMonitor name (e.g., "HDMI-1", "DP-1").
fit-modeImage scaling mode for this monitor.
wallpaperWallpaper image path for this monitor.

NightlightTransition ​

Night light transition length in whole minutes, 0 for an instant switch.

Number in [0, 120].

Serialises as uint32.

NormalizedF64 ​

Floating-point value clamped to 0.0-1.0.

Number in [0.0, 1.0].

Serialises as double.

NotificationHistoryMemory ​

Notifications kept in memory.

Number in [10, 1000].

Serialises as uint32.

NotificationHistoryStored ​

Notifications kept on disk.

Number in [1000, 1000000].

Serialises as uint32.

Numbering ​

How workspace numbers are displayed.

ValueMeaning
"absolute"Show actual Hyprland workspace IDs (1, 2, 3, 4, 5, 6...).
"relative"Show numbers relative to monitor's starting workspace.

If monitor has workspaces 4, 5, 6 assigned, they display as 1, 2, 3. Useful when keybinds use per-monitor numbering (Shift+1 for ws 4, etc.). |

OsdMonitor ​

"primary" or a monitor connector name (e.g. "DP-1")

String.

OsdPosition ​

Screen anchor for the OSD overlay.

ValueMeaning
"top-left"Top-left corner.
"top"Top-center edge.
"top-right"Top-right corner.
"right"Right-center edge.
"bottom-right"Bottom-right corner.
"bottom"Bottom-center edge.
"bottom-left"Bottom-left corner.
"left"Left-center edge.

OsdTextAlign ​

Horizontal alignment of OSD toast/toggle content.

ValueMeaning
"start"Align content to the start (left in LTR layouts).
"center"Center content horizontally.
"end"Align content to the end (right in LTR layouts).

PaletteConfig ​

Color palette configuration for the active theme.

FieldDescription
bgBase background color (darkest).
surfaceCard and sidebar background.
elevatedRaised element background.
fgPrimary text color.
fg-mutedSecondary text color.
primaryAccent color for interactive elements.
redRed semantic color.
yellowYellow semantic color.
greenGreen semantic color.
blueBlue semantic color.

PassphraseWords ​

A generated passphrase's number of words, 3-20.

Number in [3, 20].

Serialises as uint32.

PasswordCharset ​

A class of characters a generated password draws from.

ValueMeaning
"lowercase"Lowercase letters, a-z.
"uppercase"Uppercase letters, A-Z.
"digits"Digits, 0-9.
"symbols"The symbols !@#$%^&*.

PasswordCharsets ​

The character classes a generated password draws from, at least one of lowercase, uppercase, digits and symbols (!@#$%^&*). Every class listed appears in the password at least once.

See the schema for valid values.

PasswordLength ​

A generated password's length in characters, 5-128.

Number in [5, 128].

Serialises as uint32.

Percentage ​

Percentage value clamped to 0-100.

Number in [0, 100].

Serialises as uint8.

PixelLength ​

Absolute length in pixels (e.g. "400px").

String matching ^[0-9]+(\.[0-9]+)?px$.

Behavior when the close button is clicked on a popup card.

ValueMeaning
"dismiss"Hide the popup; notification stays in history.
"remove"Remove the notification entirely.

"primary" or a monitor connector name (e.g. "DP-1")

String.

Screen position for notification popups.

ValueMeaning
"top-left"Top-left corner.
"top-center"Top-center edge.
"top-right"Top-right corner.
"bottom-left"Bottom-left corner.
"bottom-center"Bottom-center edge.
"bottom-right"Bottom-right corner.
"center-left"Center-left edge.
"center-right"Center-right edge.
ValueMeaning
"per-app"Popups from the same app share a stack.
"all"Every popup shares one stack.
"off"Every popup is a card of its own.

PywalContrast ​

Pywal contrast ratio clamped to 1.0-21.0 (WCAG range).

Number in [1.0, 21.0].

Serialises as double.

RecorderFormat ​

Container format / codec preset for recordings.

ValueMeaning
"mp4"H.264 in an MP4 container.
"mkv"H.264 in a Matroska container.

RestartDelay ​

Restart delay in milliseconds, clamped to >= 1.

Number >= 1.

Serialises as uint64.

RestartPolicy ​

Restart behavior for watch-mode custom modules.

ValueMeaning
"never"Never restart after exit.
"on-exit"Restart after any exit code (success or failure).
"on-failure"Restart only after non-zero exit codes or signal termination.

RoundingLevel ​

Global rounding preference for UI components.

ValueMeaning
"default"The toolkit's own rounding (lys-ui's corner radius).
"none"Sharp corners (no rounding).
"sm"Subtle rounding.
"md"Moderate rounding.
"lg"Pronounced rounding.
"full"Pill shape (fully rounded ends).

ScaleFactor ​

Scale multiplier clamped to 0.25-3.0.

Number in [0.25, 3.0].

Serialises as float.

SessionAction ​

One action the dashboard session actions

ValueMeaning
"lock"Lock the session
"log-out"Logout of the current session
"reboot"Reboot the machine
"power-off"Power off the machine

ShadowPreset ​

Shadow style for the bar.

ValueMeaning
"none"No shadow.
"drop"Directional shadow opposite the anchor edge.
"floating"All-around shadow.

SharePickerPage ​

Page shown when the screen-share picker opens.

ValueMeaning
"windows"Per-window previews.
"outputs"Per-output (monitor) previews.
"region"Region selection on the shell's region overlay.

SignedNormalizedF64 ​

Floating-point value clamped to -1.0 to 1.0.

Number in [-1.0, 1.0].

Serialises as double.

Size ​

Size as a scale multiplier (number) or absolute pixels (e.g. "24px")

Number >= 0.0.

String matching ^[0-9]+(\.[0-9]+)?px$.

StackingOrder ​

Order in which popups are stacked on screen.

ValueMeaning
"newest-first"Newest notifications appear closest to the configured position.
"oldest-first"Oldest notifications appear closest to the configured position.

StateColors ​

Per-state color overrides for a custom module.

Values are keyed in color-map by the JSON output's alt field, mirroring icon-map. Any field left unset falls back to the module's static color of the same name. Use the "default" key as a fallback state.

FieldDescription
icon-colorIcon foreground color for this state.
icon-bg-colorIcon container background color for this state.
label-colorLabel text color for this state.
button-bg-colorButton background color for this state.
border-colorBorder color for this state.

StorageMountPoint ​

Storage mount targets accepted by mount-point.

Supports a single string for backwards compatibility or an array of paths.

String.

SurfaceAnimation ​

Per-surface enter/exit animation override. Any field left unset falls back to the global [animations] enter/exit, then to transition/duration.

FieldDescription
enterEnter transition for this surface. Unset → global enter, then transition.
exitExit transition for this surface. Unset → global exit, then transition.
enter-durationEnter duration in ms. Unset → global enter-duration, then duration.
exit-durationExit duration in ms. Unset → global exit-duration, then duration.

TemperatureUnit ​

Temperature unit for display.

ValueMeaning
"metric"Celsius (metric).
"imperial"Fahrenheit (imperial).

ThemeProvider ​

Source of color palette values.

Dynamic providers (Matugen, Pywal, Wallust) inject palette tokens at runtime.

ValueMeaning
"lys-shell"Static theming using lys-shell's built-in palettes.
"matugen"Dynamic theming via Matugen.
"pywal"Dynamic theming via Pywal.
"wallust"Dynamic theming via Wallust.

ThresholdEntry ​

A threshold entry that maps a numeric value range to color overrides.

At least one of above or below must be set. When both are set, both conditions must be satisfied (AND logic).

YAML Example ​

yaml
# under modules.cpu
thresholds:
- {above: 70, icon-color: status-warning, label-color: status-warning}
- {above: 90, icon-color: status-error, label-color: status-error}
FieldDescription
aboveActivate when metric value >= this threshold.
belowActivate when metric value <= this threshold.
icon-colorOverride icon color when threshold is active.
label-colorOverride label color when threshold is active.
icon-bg-colorOverride icon background color when threshold is active.
button-bg-colorOverride button background color when threshold is active.
border-colorOverride border color when threshold is active.

TimeFormat ​

Time display format.

ValueMeaning
"12h"12-hour format with AM/PM (e.g., "6:30 AM").
"24h"24-hour format (e.g., "06:30").

ToastPreset ​

A reusable toast preset, triggerable by id with lys-shell toast --preset <id>.

A preset captures a toast's text and icon so it can be fired by name. The label/icon can still be overridden per invocation, and runtime-only fields (--percentage, --duration, --class) are supplied at invoke time, not stored on the preset. Duration always follows the OSD config.

Example ​

yaml
osd: {presets: [{id: saved, label: Saved, icon: ld-check-symbolic}]}

# Fire it: lys-shell toast --preset saved
# With a progress bar: lys-shell toast --preset saved --percentage 80
FieldDescription
idUnique identifier. Trigger with lys-shell toast --preset <id>.
labelToast text. An explicit label on the command line overrides this.
iconSymbolic icon name shown beside the text.

TrayItemOverride ​

Custom icon and color override for tray items matching a pattern.

FieldDescription
nameGlob pattern to match against item ID or title.
iconCustom icon name (symbolic icon).
colorCustom icon color.

UrgencyBarThreshold ​

Minimum urgency level that shows a colored urgency bar on popup cards.

All urgency levels at or above the threshold display the bar. For example, Normal shows bars on both normal and critical popups.

ValueMeaning
"low"Show urgency bars on all popups.
"normal"Show urgency bars on normal and critical popups.
"critical"Show urgency bars on critical popups only.
"none"Never show urgency bars.

UrgentMode ​

Where the urgent pulse animation is applied.

ValueMeaning
"workspace"Pulse the entire workspace.
"application"Pulse only the app icon(s) belonging to the urgent window.

Falls back to workspace when app icons are disabled. |

UserSessionConfig ​

Settings for user session the in dashboard

Examples ​

yaml
modules: {dashboard: {user-session: {actions: [lock, log-out, reboot, power-off]}}}
FieldDescription
actionsSession actions to show on dashboard

VpnShow ​

Whether the VPN indicator is part of the network module.

ValueMeaning
"auto"Show the VPN state only once NetworkManager holds a VPN profile.
"always"Always overlay the VPN state on the network icon.
"never"Never show it; the dropdown still lists VPNs.

WallustBackend ​

Wallust image sampling backend.

ValueMeaning
"full"Reads every pixel.
"resized"Resizes image before sampling.
"wal"Uses ImageMagick convert (pywal method).
"thumb"Fixed 512x512 thumbnail.
"fastresize"SIMD-accelerated resize.
"kmeans"K-means clustering.

WallustColorspace ​

Wallust color space for dominant color selection.

ValueMeaning
"lab"CIELAB perceptual color space.
"labmixed"LAB with mixing for sparse images.
"lch"Cylindrical LAB (hue/chroma/lightness).
"lchmixed"LCH with mixing.
"lchansi"LCH mapped to ANSI color ordering.

WallustPalette ​

Wallust palette mode.

ValueMeaning
"dark16"8 dark colors with 16-color trick.
"dark"8 dark colors, dark background and light contrast.
"darkcomp"Dark with complementary counterparts.
"darkcomp16"Dark complementary with 16-color trick.
"harddark"Dark with hard hue colors.
"harddark16"Hard dark with 16-color trick.
"harddarkcomp"Hard dark complementary variant.
"harddarkcomp16"Hard dark complementary with 16-color trick.
"light"Light background, dark foreground.
"light16"Light with 16-color trick.
"lightcomp"Light with complementary colors.
"lightcomp16"Light complementary with 16-color trick.
"softdark"Lightest colors with dark background.
"softdark16"Soft dark with 16-color trick.
"softdarkcomp"Soft dark complementary variant.
"softdarkcomp16"Soft dark complementary with 16-color trick.
"softlight"Light with soft pastel colors.
"softlight16"Soft light with 16-color trick.
"softlightcomp"Soft light with complementary colors.
"softlightcomp16"Soft light complementary with 16-color trick.
"ansidark"ANSI-ordered dark palette for LS_COLORS.
"ansidark16"ANSI dark with 16-color trick.

WeatherProvider ​

Weather data provider selection.

ValueMeaning
"open-meteo"Open-Meteo (no API key required).
"visual-crossing"Visual Crossing (requires API key).
"weather-api"WeatherAPI.com (requires API key).

WeekStart ​

Which day appears in the first column of the calendar dropdown.

ValueMeaning
"monday"Week starts on Monday.
"tuesday"Week starts on Tuesday.
"wednesday"Week starts on Wednesday.
"thursday"Week starts on Thursday.
"friday"Week starts on Friday.
"saturday"Week starts on Saturday.
"sunday"Week starts on Sunday (default).

WorkspaceClickAction ​

Click/scroll action: focus:this | focus:next | focus:previous | focus:last | dropdown:NAME | shell command | empty for none

String.

WorkspaceMap ​

Per-workspace icon and color overrides, keyed by workspace ID.

Keys are written as strings, so "1" parses into the workspace with ID 1. Negative IDs refer to Hyprland's special workspaces. Keys that don't appear in the map fall back to the default behaviour set by [HyprlandWorkspacesConfig::display_mode].

Examples ​

yaml
# under modules.hyprland-workspaces.workspace-map
"1": {label: Web, icon: ld-globe-symbolic, color: "#4a90d9"}
"2": {icon: ld-terminal-symbolic}
"3": {icon: ld-code-symbolic, color: accent}
"4": {label: Chat, icon: ld-message-square-symbolic, color: status-success}

# Negative IDs target Hyprland special workspaces
"-99": {icon: ld-scratch-symbolic}

WorkspaceStyle ​

Per-workspace styling override.

FieldDescription
iconCustom icon for this workspace. When set, the icon is shown regardless
colorCustom background color for this workspace when active.
labelText shown instead of the workspace's name or index.

Released under the MIT License.