theme: strip the remaining Persona punch from Hyprland and the popouts
Hyprland: - Windows round at 8px, concentric with the porthole's 18px corners at the 10px gap, instead of square corners inside a rounded opening. - Group tabs are solid hull slabs; the titles used to float over the wallpaper. The current tab is lifted a step with its title in the light. - Motion rewritten to glide and settle: no overshoot curve, gentler popin, workspaces slide-fade a short way instead of sweeping the whole screen, and layers only fade so they never stack on quickshell's own slides. Quickshell: - Album art in the bar and the media popout is square in a hairline frame, not masked to a leaning chamfered shape; the accent slab under the popout art is gone, and a track change dips the title instead of tilting the art. - The bar's equaliser is a five-hairline signal meter that rests as dots. - Segment meters (system, battery, OSD) are 4px rows instead of 10-12px blocks; the toast fuse is a hairline; the clock's accent slab is a neutral divider. - No hover pops: rail icons, tray icons, media transport buttons and P5Button no longer scale up or lunge sideways; the icon bump is reduced. Terminal: ANSI bright black drops to #464d44. TUIs use it as a panel fill, and at the outline grey it read as a flat light slab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a27dd6f93b
commit
ae6539218e
18 files changed
+144
-177
No files matched your search
+35
-27
@@ -1,11 +1,13 @@
|
||||
-- https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
--
|
||||
-- Quick and clean. Motion should get out of the way, not perform.
|
||||
-- YoRHa motion: calm and mechanical. Things glide in, settle and stop; nothing
|
||||
-- overshoots, nothing pops. Matches Theme.easeSnap / easeGlide in
|
||||
-- ~/.config/quickshell/config/Theme.qml.
|
||||
--
|
||||
-- An earlier pass overdid it: a 1.56 overshoot on every window, an 88% popin
|
||||
-- scale, and a borderangle looping forever so the focused border was in
|
||||
-- constant motion. The bounce is dialled back to a hint, the popin barely
|
||||
-- scales, and the border angle does not animate at all.
|
||||
-- Windows fade in from a hair smaller, the way a NieR menu panel resolves
|
||||
-- rather than arrives. Workspaces slide a short way and fade instead of
|
||||
-- sweeping the whole screen across, which on a 2560px panel is a lot of
|
||||
-- motion for "you are somewhere else now". The border angle never animates.
|
||||
|
||||
hl.config({
|
||||
animations = {
|
||||
@@ -14,34 +16,40 @@ hl.config({
|
||||
})
|
||||
|
||||
-- ------------------------------------------------------------------- curves
|
||||
hl.curve("snap", { type = "bezier", points = { { 0.16, 1.00 }, { 0.30, 1.00 } } })
|
||||
hl.curve("overshoot", { type = "bezier", points = { { 0.34, 1.12 }, { 0.64, 1.00 } } })
|
||||
hl.curve("hard", { type = "bezier", points = { { 0.55, 0.00 }, { 0.90, 0.35 } } })
|
||||
-- outQuint: fast off the mark, long quiet settle.
|
||||
hl.curve("glide", { type = "bezier", points = { { 0.22, 1.00 }, { 0.36, 1.00 } } })
|
||||
-- Material standard, for things that move from one place to another.
|
||||
hl.curve("standard", { type = "bezier", points = { { 0.40, 0.00 }, { 0.20, 1.00 } } })
|
||||
-- Leaving: ease in, so the exit gathers pace and is gone.
|
||||
hl.curve("exit", { type = "bezier", points = { { 0.55, 0.00 }, { 0.90, 0.35 } } })
|
||||
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
||||
|
||||
-- --------------------------------------------------------------------- tree
|
||||
-- speed is in ds (1ds = 100ms). Unset leaves inherit their parent.
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 4, bezier = "snap" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5, bezier = "snap" })
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 4, bezier = "glide" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 4, bezier = "glide" })
|
||||
hl.animation({ leaf = "borderangle", enabled = false })
|
||||
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4, bezier = "snap" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4, bezier = "overshoot", style = "popin 96%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 2.6, bezier = "hard", style = "popin 97%" })
|
||||
hl.animation({ leaf = "windowsMove", enabled = true, speed = 3.6, bezier = "snap" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4, bezier = "glide" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4, bezier = "glide", style = "popin 94%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 2.4, bezier = "exit", style = "popin 96%" })
|
||||
hl.animation({ leaf = "windowsMove", enabled = true, speed = 4, bezier = "standard" })
|
||||
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "snap" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 2.4, bezier = "snap" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.8, bezier = "hard" })
|
||||
hl.animation({ leaf = "fadeSwitch", enabled = true, speed = 2, bezier = "snap" })
|
||||
hl.animation({ leaf = "fadeShadow", enabled = true, speed = 3, bezier = "snap" })
|
||||
hl.animation({ leaf = "fadeDim", enabled = true, speed = 2.4, bezier = "snap" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.4, bezier = "glide" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 3.4, bezier = "glide" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 2.2, bezier = "exit" })
|
||||
hl.animation({ leaf = "fadeSwitch", enabled = true, speed = 3, bezier = "glide" })
|
||||
hl.animation({ leaf = "fadeShadow", enabled = true, speed = 3.4, bezier = "glide" })
|
||||
hl.animation({ leaf = "fadeDim", enabled = true, speed = 3, bezier = "glide" })
|
||||
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3, bezier = "snap" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "snap", style = "slide" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 2, bezier = "hard", style = "slide" })
|
||||
-- Quickshell animates its own surfaces; the compositor only fades them, so the
|
||||
-- two motions never stack.
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 2.6, bezier = "glide" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 2.6, bezier = "glide", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 2, bezier = "exit", style = "fade" })
|
||||
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 3, bezier = "snap", style = "slidevert" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 3, bezier = "snap", style = "slidevert" })
|
||||
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 2.4, bezier = "hard", style = "slidevert" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 4, bezier = "glide", style = "slidefadevert 12%" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 4, bezier = "glide", style = "slidefadevert 12%" })
|
||||
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 3, bezier = "exit", style = "slidefadevert 12%" })
|
||||
|
||||
hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "snap", style = "slidevert" })
|
||||
hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 4, bezier = "glide", style = "slidefadevert 20%" })
|
||||
+31
-15
@@ -35,9 +35,12 @@ hl.config({
|
||||
},
|
||||
|
||||
decoration = {
|
||||
-- NieR panels are plain rectangles. The only curve on screen is the
|
||||
-- porthole the quickshell hull cuts round the desktop.
|
||||
rounding = 0,
|
||||
-- Concentric with the porthole: the opening's corners are 18px and
|
||||
-- the windows sit 10px inside them, so 8px keeps every gap the same
|
||||
-- width all the way round the curve. Matches Theme.frameRadius -
|
||||
-- gaps_out; change one and the other has to follow.
|
||||
rounding = 8,
|
||||
rounding_power = 2,
|
||||
|
||||
-- Fully opaque, both states. Flat ink on flat ground.
|
||||
active_opacity = 1.0,
|
||||
@@ -76,27 +79,40 @@ hl.config({
|
||||
group = {
|
||||
col = {
|
||||
border_active = c.activeBorder,
|
||||
border_inactive = c.surfaceAlt,
|
||||
border_inactive = c.overlay,
|
||||
},
|
||||
|
||||
-- Tabs are solid slabs of the hull, not titles painted over the
|
||||
-- wallpaper. Hyprland paints a tab's fill and its indicator from the
|
||||
-- same colour, so the current tab is told apart by being lifted a step
|
||||
-- and by its title taking the light, not by an accent fill — a light
|
||||
-- fill would swallow its own title.
|
||||
groupbar = {
|
||||
font_family = "JetBrainsMono Nerd Font",
|
||||
font_size = 11,
|
||||
font_family = "Noto Sans",
|
||||
font_size = 10,
|
||||
font_weight_active = "medium",
|
||||
font_weight_inactive = "normal",
|
||||
|
||||
height = 24,
|
||||
gradients = false,
|
||||
height = 22,
|
||||
indicator_height = 1,
|
||||
indicator_gap = 0,
|
||||
gradients = true,
|
||||
rounding = 6,
|
||||
gradient_rounding = 6,
|
||||
round_only_edges = true,
|
||||
gradient_round_only_edges = true,
|
||||
keep_upper_gap = false,
|
||||
gaps_in = 2,
|
||||
gaps_out = 0,
|
||||
|
||||
-- --- Active tab ---
|
||||
col = {
|
||||
active = c.accent,
|
||||
active = c.overlay,
|
||||
inactive = c.surface,
|
||||
locked_active = c.alarm,
|
||||
locked_inactive = c.surface,
|
||||
},
|
||||
text_color = c.ink,
|
||||
|
||||
-- --- Inactive tab ---
|
||||
text_color = c.accent,
|
||||
text_color_inactive = c.muted,
|
||||
|
||||
indicator_height = 3,
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
Reference in new issue
Block a user