# 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. [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