-- 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. -- Omarchy 4's decoration defaults, pinned explicitly. -- -- Stock quattro is flat and cheap: rounding 0, blur off, shadow off -- ($OMARCHY_PATH/default/hypr/looknfeel.lua). Most third-party themes ship a -- hyprland.lua that turns glass on instead -- Cyberdream and Spectra both did -- -- and on this box that is a bad trade: blur at size 6 / 3 passes over an eDP -- panel plus a 5K Studio Display is real frame time on an iGPU sharing system -- memory, and rounded corners plus per-window opacity make the Chromium and -- Electron surfaces (which cannot paint a transparent background themselves) -- show wallpaper where page background should be. -- -- Turning blur off globally also neutralises any layer_rule blur a theme adds -- for the Quickshell surfaces: a layer rule cannot blur while -- decoration:blur:enabled is false. hl.config({ decoration = { rounding = 0, blur = { enabled = 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 with this -- rule; themes re-issue it with deeper values (Cyberdream used 0.98 / 0.92). -- Window rules are last-match-wins, so restating the default here puts every -- window that did not explicitly opt out of the tag back on stock fade. -- Terminals keep their own alpha (kitty's `background_opacity`) on top of it. o.window({ tag = "default-opacity" }, { opacity = "0.985 0.96" }) -- 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, -- }, -- })