* Give scratchpad a Quake-style presentation
* Keep the Quake scratchpad from restyling every window
The presentation was bought with global decoration defaults: rounding went
0 -> 5 and both shadow and blur were switched back on for every window on
the system, undoing 935283c8. Blur in particular is close to invisible
here, since every window is already tagged 0.985/0.96 opacity and no layer
rule asks for it, so it was GPU load on every frame for almost nothing.
Put the globals back and scope the rounding to the scratchpad with a window
rule, the same way popped windows already get theirs. The inset, dim_special
and the slide carry the effect on their own. dim_special only applies while
a special workspace is open, so it stays.
Also drop the four workspace-rule booleans that only restated Hyprland's
defaults, fold the stale scratchpad rows in the hotkey table into the new
ones, and give the binding assertions their own fixture instead of borrowing
the bar-panel one.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Omabot <david@hey.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
149 lines
5.0 KiB
Lua
149 lines
5.0 KiB
Lua
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
|
|
|
local active_border_color = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 }
|
|
local inactive_border_color = "rgba(595959aa)"
|
|
|
|
hl.config({
|
|
general = {
|
|
gaps_in = 5,
|
|
gaps_out = 10,
|
|
border_size = 2,
|
|
|
|
col = {
|
|
active_border = active_border_color,
|
|
inactive_border = inactive_border_color,
|
|
},
|
|
|
|
resize_on_border = false,
|
|
allow_tearing = false,
|
|
layout = "dwindle",
|
|
},
|
|
|
|
decoration = {
|
|
rounding = 0,
|
|
|
|
-- Dimming only kicks in while a special workspace is open, so the
|
|
-- scratchpad gets its overlay separation without costing anything the
|
|
-- rest of the time.
|
|
dim_special = 0.6,
|
|
|
|
shadow = {
|
|
enabled = false,
|
|
},
|
|
|
|
blur = {
|
|
enabled = false,
|
|
},
|
|
},
|
|
|
|
group = {
|
|
col = {
|
|
border_active = active_border_color,
|
|
border_inactive = inactive_border_color,
|
|
},
|
|
|
|
groupbar = {
|
|
font_size = 12,
|
|
font_family = "monospace",
|
|
font_weight_active = "ultraheavy",
|
|
font_weight_inactive = "normal",
|
|
indicator_height = 1,
|
|
indicator_gap = 5,
|
|
height = 22,
|
|
gaps_in = 5,
|
|
gaps_out = 0,
|
|
text_color = "rgb(ffffff)",
|
|
text_color_inactive = "rgba(ffffff90)",
|
|
col = {
|
|
active = "rgba(00000040)",
|
|
inactive = "rgba(00000020)",
|
|
},
|
|
gradients = true,
|
|
gradient_rounding = 0,
|
|
gradient_round_only_edges = false,
|
|
},
|
|
},
|
|
|
|
animations = {
|
|
enabled = true,
|
|
},
|
|
})
|
|
|
|
-- Give the scratchpad a floating Quake-console presentation. Shadow and blur
|
|
-- stay off globally (they cost GPU on every frame for almost no visual gain,
|
|
-- and windows are near-opaque anyway), so the inset, the dimming, and the
|
|
-- slide carry the effect.
|
|
hl.workspace_rule({
|
|
workspace = "special:scratchpad",
|
|
gaps_out = 80,
|
|
gaps_in = 40,
|
|
})
|
|
|
|
-- Round just the scratchpad, so the global default can stay square.
|
|
hl.window_rule({ match = { workspace = "special:scratchpad" }, rounding = 8 })
|
|
|
|
-- Default animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
|
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
|
|
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
|
|
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
|
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } })
|
|
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
|
|
|
|
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
|
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
|
hl.animation({ leaf = "windows", enabled = true, speed = 3.79, bezier = "easeOutQuint" })
|
|
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, bezier = "easeOutQuint", style = "popin 87%" })
|
|
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
|
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
|
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
|
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
|
hl.animation({ leaf = "fadeSwitch", enabled = false })
|
|
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
|
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
|
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
|
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
|
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
|
hl.animation({ leaf = "workspaces", enabled = false })
|
|
-- The direction names the edge the offset is measured from, not where the
|
|
-- workspace goes: "slide top" drops it down into view, and "slide bottom"
|
|
-- retracts it back up the way a Quake console does.
|
|
hl.animation({ leaf = "specialWorkspaceIn", enabled = true, speed = 3, bezier = "easeOutQuint", style = "slide top" })
|
|
hl.animation({ leaf = "specialWorkspaceOut", enabled = true, speed = 2, bezier = "easeInOutCubic", style = "slide bottom" })
|
|
|
|
hl.config({
|
|
dwindle = {
|
|
preserve_split = true,
|
|
force_split = 2,
|
|
},
|
|
|
|
scrolling = {
|
|
column_width = 0.49,
|
|
},
|
|
|
|
master = {
|
|
new_status = "master",
|
|
},
|
|
|
|
misc = {
|
|
disable_hyprland_logo = true,
|
|
disable_splash_rendering = true,
|
|
disable_scale_notification = true,
|
|
focus_on_activate = true,
|
|
anr_missed_pings = 3,
|
|
on_focus_under_fullscreen = 1,
|
|
initial_workspace_tracking = 0,
|
|
-- Let a fresh shell re-acquire the session lock after the lock client
|
|
-- died, so omarchy-restart-shell can recover the LOCK failsafe.
|
|
allow_session_lock_restore = true,
|
|
},
|
|
|
|
cursor = {
|
|
hide_on_key_press = true,
|
|
warp_on_change_workspace = 1,
|
|
},
|
|
|
|
binds = {
|
|
hide_special_on_workspace_change = true,
|
|
},
|
|
})
|