Files
dotfiles/dot_config/hypr/looknfeel.lua
T

90 lines
3.0 KiB
Lua
Raw Normal View History

-- 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,
-- },
-- })