Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration Reference

Complete reference for all configuration options in ~/.config/ashell/config.toml.

Top-Level Options

FieldTypeDefaultDescription
log_levelString"warn"Log level (env_logger syntax)
position"Top" | "Bottom""Bottom"Bar position on screen
layer"Top" | "Bottom" | "Overlay""Bottom"Wayland layer (Bottom = below floating windows)
outputs"All" | "Active" | { Targets = [...] }"All"Which monitors show the bar
enable_esc_keyboolfalseWhether ESC key closes menus

Module Layout

[modules]
left = ["Workspaces"]
center = ["Tempo"]
right = [["SystemInfo", "Settings"], "Tray"]

Module names: "Workspaces", "WindowTitle", "SystemInfo", "KeyboardLayout", "KeyboardSubmap", "Tray", "Clock", "Tempo", "Privacy", "Settings", "MediaPlayer", "Updates", "Custom:name".

Appearance

[appearance]
style = "Islands"               # "Islands", "Solid", or "Gradient"
opacity = 0.9                   # 0.0-1.0
font_name = "JetBrains Mono"   # Optional custom font
scale_factor = 1.0              # DPI scale factor

Colors

# Simple hex color
[appearance]
background = "#1e1e2e"

# Complete color with variants
[appearance.primary]
base = "#cba6f7"
strong = "#dbbcff"
weak = "#a385d8"
text = "#1e1e2e"

Available color fields: background, text, primary, secondary, success, danger.

[appearance.menu]
opacity = 0.95
backdrop_blur = true

Workspace Colors

[appearance]
workspace_colors = ["#cba6f7", "#f38ba8", "#a6e3a1", "#89b4fa"]
special_workspace_colors = ["#fab387"]

Updates Module

[updates]
check_cmd = "checkupdates | wc -l"    # Command to check for updates
update_cmd = "foot -e sudo pacman -Syu" # Command to run updates
interval = 3600                         # Check interval in seconds

If the [updates] section is omitted entirely, the Updates module is disabled.

Workspaces Module

[workspaces]
visibility_mode = "All"              # "All", "MonitorSpecific", "MonitorSpecificExclusive"
group_by_monitor = false
enable_workspace_filling = false     # Fill empty workspace slots
disable_special_workspaces = false
max_workspaces = 10                  # Optional: limit workspace count
workspace_names = ["1", "2", "3"]    # Optional: custom names
enable_virtual_desktops = false

Window Title Module

[window_title]
mode = "Title"                       # "Title", "Class", "InitialTitle", "InitialClass"
truncate_title_after_length = 150

Keyboard Layout Module

[keyboard_layout]
labels = { "English (US)" = "EN", "Italian" = "IT" }

System Info Module

[system_info]
# CPU thresholds
[system_info.cpu]
warn_threshold = 60
alert_threshold = 80

# Memory thresholds
[system_info.memory]
warn_threshold = 60
alert_threshold = 80

# Temperature thresholds
[system_info.temperature]
warn_threshold = 60
alert_threshold = 80

# Disk thresholds
[system_info.disk]
warn_threshold = 60
alert_threshold = 80

Clock Module (Deprecated)

[clock]
format = "%H:%M"    # chrono format string

Tempo Module

[tempo]
format = "%H:%M"
date_format = "%A, %B %d"
timezones = ["America/New_York", "Europe/London"]
weather_location = "Rome"              # Or coordinates
weather_format = "{temp}°C"

Settings Module

[settings]
# Custom buttons in the settings panel
[[settings.custom_buttons]]
icon = "\u{f023}"
label = "VPN"
status_cmd = "vpn-status"
on_click = "vpn-toggle"

Media Player Module

[media_player]
format = "{artist} - {title}"

Custom Modules

[[CustomModule]]
name = "mymodule"
type = "Text"                   # "Text" or "Button"
cmd = "echo Hello"
interval = 5
format = "Result: {}"

[[CustomModule]]
name = "launcher"
type = "Button"
icon = "\u{f0e7}"
on_click = "rofi -show drun"

Custom module fields:

FieldTypeRequiredDescription
nameStringYesUnique identifier
type"Text" | "Button"NoDisplay mode
cmdStringNoCommand to execute for display text
on_clickStringNoCommand on click (Button type)
iconStringNoIcon character
intervalu64NoRefresh interval in seconds
formatStringNoOutput format string

Reference a custom module in the layout as "Custom:name":

[modules]
right = ["Custom:mymodule", "Settings"]