Files

123 lines
3.5 KiB
TOML

# Umbriel — scrolling compositor paired with the Noctalia shell.
# Reference: https://docs.noctalia.dev/umbriel/ · check: `umbriel config validate`
#
# Ported from the niri config (layout, rules, binds) plus Hyprland's named
# scratch workspaces, which map onto Umbriel scratchpads (rules.toml). Noctalia
# replaces vicinae, cliphist, and polkit-gnome: its launcher, clipboard history,
# and polkit agent run inside the one shell process.
#
# Included files apply in list order, this file last. Paths resolve against the
# symlink in ~/.config/umbriel, not the chezmoi source.
[include]
files = ["outputs.toml", "rules.toml", "binds.toml"]
# Theme colors, written by Noctalia's umbriel template on every theme change
# (not managed by chezmoi). Its post-hook keeps this entry last in the list.
[include.optional]
files = ["noctalia.toml"]
[general]
# Noctalia brings bar, launcher, notifications, clipboard history, and the
# polkit agent; nothing else is started.
autostart = ["noctalia"]
show_cheatsheet = false
# niri's honor-xdg-activation-with-invalid-serial: Noctalia notification
# actions and apps that hand off to another window (links, file pickers) can
# focus and reveal their target.
focus_on_activate = true
# Umbriel owns XDG_CURRENT_DESKTOP and the session variables.
[environment]
# Default terminal: Noctalia runs Terminal=true launcher entries through
# $TERMINAL before its own fallback list.
TERMINAL = "ghostty"
ELECTRON_OZONE_PLATFORM_HINT = "auto"
QT_QPA_PLATFORM = "wayland"
QT_QPA_PLATFORMTHEME = "kde"
QT_STYLE_OVERRIDE = "Darkly"
[input.keyboard]
layout = "us"
repeat_delay = 400
repeat_rate = 50
numlock_toggle = true
[input.touchpad]
natural_scroll = true
tap = true
tap_button_map = "left_right_middle"
sensitivity = 1.0
[input.tablet]
map_to_output = "eDP-1"
[input.touch]
map_to_output = "eDP-1"
# follows_focus: keyboard focus moves (Mod+H/L across outputs, umbriel-launch)
# take the pointer along, so scratchpads — shown on the pointer's output —
# open where focus is.
[input.cursor]
# Bibata Ghost: dark translucent Bibata (AUR bibata-cursor-translucent). Umbriel
# exports it as XCURSOR_THEME and announces it to X11 apps over XSETTINGS.
theme = "Bibata_Ghost"
size = 28
hide_when_typing = true
follows_focus = true
[layout]
gap = 8
extent_presets = [0.333, 0.5, 0.667]
# New columns take a third of the output; Mod+R cycles 1/3 → 1/2 → 2/3.
[layout.scrolling]
default_extent_fraction = 0.333
center_focused = "never"
center_underfull_strip = true
[appearance]
corner_radius = 10
# niri ran without shadows; also one less pass per window.
[appearance.shadow]
enabled = false
# Optimized blur samples only the wallpaper: cheaper than blurring the windows
# behind each translucent surface. Strong enough that the wallpaper reads as
# color, not shapes: Brave Origin paints its own translucent background, so
# window opacity alone cannot hide what is behind it.
[appearance.blur]
radius = 10
passes = 4
[appearance.tab_bar]
hide_when_single = true
[overview]
zoom = 0.4
# niri's springs: under-damped, high stiffness — short settle, slight overshoot.
[animation.windows_in]
curve = "spring:0.82,1125"
[animation.windows_out]
curve = "spring:0.88,2025"
[animation.windows_move]
curve = "spring:0.85,1463"
[animation.workspaces]
curve = "spring:0.78,1350"
[animation.overview]
curve = "spring:0.85,1463"
workspace_curve = "spring:0.78,1350"
# Scratchpad residents float as a centered square (rules.toml, the last
# window rule) above a dimmed desktop, so maximize stays off here.
[animation.scratchpad]
curve = "spring:0.85,1463"
dim = 0.6
maximize = false