# Noctalia configuration — all settings at their defaults. # Copy to ~/.config/noctalia/config.toml and edit what you need. # Changes are hot-reloaded via inotify — no restart required. # ── Shell ───────────────────────────────────────────────────────────────────── [shell] ui_scale = 1.0 font_family = "sans-serif" offline_mode = false # block all outgoing HTTP when true telemetry_enabled = false # send an anonymous usage ping on startup polkit_agent = false password_style = "default" # default | random settings_show_advanced = false # show advanced settings by default in Settings show_location = true # hide weather location text in shell UI when false clipboard_auto_paste = "auto" # off | auto | ctrl_v | ctrl_shift_v | shift_insert # avatar_path = "~/Pictures/avatar.png" # lang = "en" [shell.animation] enabled = true speed = 1.0 # 0.5 = 2× slower, 2.0 = 2× faster [shell.shadow] blur = 12 # global surface shadow blur radius offset_x = 2 offset_y = 2 # positive = down alpha = 0.55 # multiplied by each component's background opacity [shell.mpris] blacklist = [] # ignore MPRIS players by bus/identity/desktop entry token # ── Wallpaper ───────────────────────────────────────────────────────────────── [wallpaper] enabled = true fill_mode = "crop" # center | crop | fit | stretch | repeat fill_color = "" # optional fallback/fill color: #RRGGBB, #RRGGBBAA, or theme role transition = ["fade", "wipe", "disc", "stripes", "zoom", "honeycomb"] transition_duration = 1500 # milliseconds edge_smoothness = 0.3 directory = "~/Pictures/Wallpapers" directory_light = "" # optional day-mode directory directory_dark = "" # optional night-mode directory [wallpaper.automation] enabled = false interval_minutes = 0 # 0 = disabled order = "random" # random | alphabetical recursive = true # include subdirectories when picking random wallpapers # ── Theme ───────────────────────────────────────────────────────────────────── [theme] mode = "dark" # dark | light | auto source = "builtin" # builtin | wallpaper | community builtin = "Noctalia" # Ayu | Catppuccin | Dracula | Eldritch | Gruvbox | # Kanagawa | Noctalia | Nord | Rosé Pine | Tokyo-Night # community_palette = "Noctalia" # fetched from api.noctalia.dev, cached locally # wallpaper_scheme = "m3-content" # m3-tonal-spot | m3-content | m3-fruit-salad | # m3-rainbow | m3-monochrome | vibrant | faithful | # dysfunctional | muted [theme.templates] enable_builtins = true builtin_ids = [] # opt-in; list ids with: noctalia theme --list-builtins enable_user_templates = false user_config = "~/.config/noctalia/user-templates.toml" # ── Overview ────────────────────────────────────────────────────────────────── [overview] enabled = false unload_when_not_in_use = true blur_intensity = 0.5 # 0.0 = no blur, 1.0 = maximum tint_intensity = 0.3 # 0.0 = no tint, 1.0 = opaque # ── Notifications ───────────────────────────────────────────────────────────── [notification] enable_daemon = true background_opacity = 0.97 background_blur = true # IPC examples: # noctalia msg notification-clear-active # noctalia msg notification-clear-history # ── OSD ─────────────────────────────────────────────────────────────────────── [osd] position = "top_right" # top_right | top_left | top_center | bottom_right | bottom_left | bottom_center # ── System Monitor ──────────────────────────────────────────────────────────── [system.monitor] enabled = true # sample CPU, memory, network, load, temperature, and disk statistics # ── Weather ─────────────────────────────────────────────────────────────────── [weather] enabled = false auto_locate = false # resolve location from IP when true address = "Toronto, ON" # geocoded when auto_locate = false refresh_minutes = 30 unit = "celsius" # celsius | fahrenheit # ── Audio ───────────────────────────────────────────────────────────────────── [audio] enable_overdrive = false # allow volume above 100% (up to 150%) enable_sounds = false # master toggle for UI feedback sounds sound_volume = 0.5 # 0.0 - 1.0 volume_change_sound = "" # empty = bundled sounds/volume-change.wav notification_sound = "" # empty = bundled sounds/notification.wav # ── Brightness ──────────────────────────────────────────────────────────────── [brightness] enable_ddcutil = false # ignore_mmids = [] # skip these monitors from ddcutil; run: ddcutil --verbose detect # Per-monitor backend override: # [brightness.monitor.eDP-1] # backend = "backlight" # auto | none | backlight | ddcutil # [brightness.monitor.DP-1] # backend = "ddcutil" # ── Night Light ─────────────────────────────────────────────────────────────── [nightlight] enabled = false force = false use_weather_location = true temperature_day = 6500 # Kelvin temperature_night = 4000 # Kelvin # start_time = "20:30" # HH:MM — explicit schedule takes priority over geolocation # stop_time = "07:30" # latitude = 52.5200 # longitude = 13.4050 # ── Idle ────────────────────────────────────────────────────────────────────── [idle.behavior.lock] timeout = 660 command = "noctalia:lock" enabled = false # [idle.behavior.screen-off] # timeout = 32 # command = "noctalia:dpms-off" # ── Keybinds ────────────────────────────────────────────────────────────────── [keybinds] validate = ["return", "kp_enter"] cancel = ["escape"] left = ["left"] right = ["right"] up = ["up"] down = ["down"] # ── Bar ─────────────────────────────────────────────────────────────────────── [bar.main] position = "top" # top | bottom | left | right thickness = 34 background_opacity = 1.0 background_blur = true # ext-background-effect-v1 (niri); inert on other compositors radius = 12 margin_h = 180 margin_v = 10 padding = 14 widget_spacing = 6 scale = 1.0 shadow = true auto_hide = false reserve_space = true capsule = false # capsule_fill = "surface_variant" # capsule_opacity = 1.0 # capsule_border = "outline" # uncomment for a border on all widgets start = ["launcher", "wallpaper", "workspaces"] center = ["clock"] end = ["media", "tray", "notifications", "network", "bluetooth", "volume", "brightness", "battery", "control-center", "session"] # Per-monitor override example — only the fields you list are overridden: # [bar.main.monitor.dp1] # match = "DP-1" # thickness = 44 # ── Dock ────────────────────────────────────────────────────────────────────── [dock] enabled = false # set true to activate position = "bottom" # top | bottom | left | right icon_size = 48 padding = 8 item_spacing = 6 background_opacity = 0.88 background_blur = true radius = 16 margin_h = 0 margin_v = 8 shadow = true show_running = true auto_hide = false reserve_space = false active_scale = 1.0 inactive_scale = 0.85 active_opacity = 1.0 inactive_opacity = 0.85 show_instance_count = true active_monitor_only = false pinned = [] # e.g. ["firefox", "code", "kitty"] # ── Desktop Widgets ─────────────────────────────────────────────────────────── [desktop_widgets] enabled = false # ── Hooks ───────────────────────────────────────────────────────────────────── [hooks] battery_low_percent_threshold = 0 # set to e.g. 15 to enable battery_under_threshold hook # started = "notify-send 'Noctalia' 'Shell started'" # wallpaper_changed = [] # colors_changed = [] # session_locked = [] # session_unlocked = [] # logging_out = [] # rebooting = [] # shutting_down = [] # wifi_enabled = [] # wifi_disabled = [] # bluetooth_enabled = [] # bluetooth_disabled = [] # battery_state_changed = "notify-send 'Power' \"Battery: $NOCTALIA_BATTERY_STATE\"" # battery_under_threshold = "notify-send 'Power' \"Battery at ${NOCTALIA_BATTERY_PERCENT}%\""