Files
noctalia-shell/example.toml
T

281 lines
13 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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"
time_format = "{:%H:%M}" # default shell UI time format
date_format = "%A, %x" # default shell UI date format
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
middle_click_opens_widget_settings = true # middle-click bar widgets to open their Settings entry
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
clipboard_image_action_command = "" # image preview action: gimp {path}, or satty -f - via stdin
# 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.panel]
background_blur = true # request compositor blur behind panels
attach_launcher = false # attach launcher to the bar when a suitable bar is available
attach_clipboard = false # attach clipboard history to the bar when a suitable bar is available
attach_control_center = true # attach Control Center to the bar when a suitable bar is available
attach_wallpaper = true # attach wallpaper picker to the bar when a suitable bar is available
[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 color 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_builtin_templates = true
builtin_ids = [] # opt-in; list ids with: noctalia theme --list-builtins
enable_community_templates = true
community_ids = [] # fetched from api.noctalia.dev/templates, cached locally
enable_user_templates = false
user_config = "~/.config/noctalia/user-templates.toml"
# ── Backdrop ──────────────────────────────────────────────────────────────────
[backdrop]
enabled = false
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
layer = "top" # top | overlay
background_opacity = 0.97
# 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 # use weather coordinates instead of manual schedule/location
temperature_day = 6500 # Kelvin
temperature_night = 4000 # Kelvin
# start_time = "20:30" # HH:MM — used when use_weather_location = false
# stop_time = "07:30"
# latitude = 52.5200 # fallback when use_weather_location = false and start/stop are unset
# longitude = 13.4050
# ── Idle ──────────────────────────────────────────────────────────────────────
[idle.behavior.lock]
timeout = 660
command = "noctalia:screen-lock"
enabled = false
# [idle.behavior.screen-off]
# timeout = 600
# command = "noctalia:dpms-off"
# resume_command = "noctalia:dpms-on"
# ── 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
radius = 12
margin_h = 180
margin_v = 10
padding = 14
widget_spacing = 6
scale = 1.0
shadow = true
auto_hide = false
reserve_space = true
attach_panels = 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", "clipboard", "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
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
# ── Control Center ────────────────────────────────────────────────────────────
# Shortcut buttons shown on the right side of the dashboard (up to 6).
# [[control_center.shortcuts]]
# type = "wifi"
# [[control_center.shortcuts]]
# type = "bluetooth"
# [[control_center.shortcuts]]
# type = "nightlight"
# [[control_center.shortcuts]]
# type = "notification"
# [[control_center.shortcuts]]
# type = "wallpaper"
# [[control_center.shortcuts]]
# type = "session"
# ── 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}%\""
# [widget.launcher]
# custom_image = "/path/to/image.png"
# [widget.control-center]
# custom_image = "/path/to/image.png"
# [widget.notifications]
# hide_when_no_unread = true
# [widget.clock]
# format = "{:%H:%M}\n{:%d/%m}"
# vertical_format = "{:%H\n%M}"