Files
dotfiles/dot_config/umbriel/config.toml
T

118 lines
3.2 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]
theme = "capitaine-cursors-light"
size = 24
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.
[appearance.blur]
radius = 3
[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"
# Hyprland's special workspaces show their app tiled over the whole output
# above a dimmed desktop; maximize is the scratchpad equivalent.
[animation.scratchpad]
curve = "spring:0.85,1463"
dim = 0.6
maximize = true