mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
282 lines
13 KiB
TOML
282 lines
13 KiB
TOML
# 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 # prefer weather coordinates; requires weather auto_locate or address
|
||
temperature_day = 6500 # Kelvin
|
||
temperature_night = 4000 # Kelvin
|
||
# start_time = "20:30" # HH:MM — manual/fallback schedule
|
||
# stop_time = "07:30"
|
||
# latitude = 52.5200 # manual/fallback location when 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_radius = 8.0 # omit/blank in Settings for automatic pill radius
|
||
# 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}"
|