-- Change the default Omarchy look'n'feel. -- -- Load order is Omarchy defaults -> current theme's hyprland.lua -> this file -- (see $OMARCHY_PATH/default/hypr/omarchy.lua), so whatever is set here is the -- last writer and wins over the theme. That is the point of this file: a theme -- picks colours, the compositor's feel stays ours. -- Flat by default, glass for terminals only. -- -- Stock quattro is rounding 0, blur off, shadow off -- ($OMARCHY_PATH/default/hypr/looknfeel.lua); themes that ship a hyprland.lua -- turn all three on for every window (Cyberdream and Spectra both did), which -- on this box is a bad trade: blur over an eDP panel plus a 5K Studio Display -- is real frame time on an iGPU sharing system memory, and Chromium/Electron -- windows cannot paint a transparent background, so fading them just shows -- wallpaper where page background should be. -- -- Blur has to be enabled globally to exist at all -- there is no positive -- `blur` window rule, only `no_blur`, and kitty's own `background_blur` (the -- ext-background-effect-v1 protocol, which Hyprland 0.56 does implement) is a -- no-op while decoration:blur:enabled is false. So: switch it on here, then -- opt every window out again except the terminals below. hl.config({ general = { -- Master instead of Omarchy's dwindle. Per-workspace layouts saved by -- omarchy-hyprland-workspace-layout-toggle (~/.local/state/omarchy/ -- workspace-layouts/*.lua) still win for the workspaces they name. layout = "master", }, decoration = { rounding = 0, blur = { enabled = true, -- Cheaper than the themes' size 6 / 3 passes; with only terminals -- blurred this is a handful of quads per frame, not the whole screen. size = 5, passes = 2, brightness = 0.8, contrast = 1.1, vibrancy = 0.15, noise = 0.01, new_optimizations = true, popups = false, }, shadow = { enabled = false, }, }, group = { groupbar = { -- Square tab plates, to match rounding = 0 above. gradient_rounding = 0, }, }, }) -- Omarchy tags every mapped window `default-opacity` and fades it to -- 0.985 / 0.96; themes deepen that (Cyberdream used 0.98 / 0.92). Rules are -- last-match-wins, so this pins every window opaque and blur-free. An opaque -- window has nothing visible behind it, so the pass above never runs for it. o.window({ tag = "default-opacity" }, { opacity = "1.0 1.0", no_blur = true }) -- The exception: terminals carry their own alpha (kitty's -- `background_opacity`, 0.9 in ~/.config/kitty/kitty.conf), so they are the one -- surface where blurring the backdrop buys anything. Full class list because -- the kitty hosts run under their own app-ids (kitty-herdr, kitty-tmux, -- kitty-goliath) and Omarchy tags nothing as `terminal`. o.window( "^(kitty(-.*)?|Alacritty|com\\.mitchellh\\.ghostty|foot|org\\.codeberg\\.dnkl\\.foot|wezterm)$", { no_blur = false } ) -- Themes are also free to re-enable the workspace slide (Spectra sets -- `workspaces` with its "flow" bezier); Omarchy's default is off. Restate it. -- workspacesIn/workspacesOut are not overridden anywhere, so they inherit this. hl.animation({ leaf = "workspaces", enabled = false }) -- https://wiki.hypr.land/Configuring/Basics/Variables/#general -- hl.config({ -- general = { -- -- No gaps between windows or borders. -- gaps_in = 0, -- gaps_out = 0, -- border_size = 0, -- -- -- Change to niri-like side-scrolling layout. -- layout = "scrolling", -- }, -- }) -- https://wiki.hypr.land/Configuring/Basics/Variables/#animations -- hl.config({ -- animations = { -- -- Disable all animations. -- enabled = false, -- }, -- }) -- https://wiki.hypr.land/Configuring/Basics/Variables/#layout -- hl.config({ -- layout = { -- -- Avoid overly wide single-window layouts on wide screens. -- single_window_aspect_ratio = { 1, 1 }, -- }, -- }) -- https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ -- hl.config({ -- scrolling = { -- -- See only one column per screen instead of two. -- column_width = 0.97, -- }, -- })