Pick window transparency from Appearance > Window Transparency, and a Glassy bar background (#14991)
* Pick window transparency from Appearance > Window Transparency Transparent, the default, keeps today's windows. Opaque turns the windows Omarchy makes transparent solid. Glassy is the frosted glass Starship (#14726): its blur behind every see-through window and shell surface, and a see-through, blurred background in the theme's terminal files, since foot turns compositor blur down and a Hyprland opacity rule fades text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Leave window transparency to Appearance when animations are off Turning animations off no longer makes windows opaque. VM installs start with opaque windows instead, and a migration keeps them opaque for anyone who already has animations off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Add a Glassy bar background, under Menu Bar > Bar Background Menu Bar > Bar Background picks Opaque Bar, Glassy Bar or Clear Bar, and Indicators becomes Bar Indicators to match. Glassy keeps the theme background faintly and Hyprland blurs what is behind it, with the same blur as Glassy windows. omarchy bar background opaque|glassy|none|cycle sets it and prints it when given nothing. omarchy bar transparent true|false|toggle stays for compatibility, as none and opaque. Double-clicking the bar cycles through the three backgrounds the same way, from clear to glassy to opaque. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Stop when a saved corner choice can't be removed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Make btop follow glassy windows --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
be7c7bf378
commit
a98e55eb91
32 files changed
+814
-64
No files matched your search
@@ -0,0 +1,7 @@
|
||||
/* GTK asks the compositor to blur behind a see-through window only where a
|
||||
backdrop-filter blur covers it, so Glassy windows load this into GTK apps,
|
||||
such as Ghostty and Nautilus. The compositor's own blur settings decide
|
||||
how it looks. */
|
||||
window {
|
||||
backdrop-filter: blur(20px);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
-- Frosted glass from the glassy Starship (#14726), shared by Glassy windows and
|
||||
-- the Glassy bar: whatever is behind a see-through surface is blurred.
|
||||
return function()
|
||||
hl.config({
|
||||
decoration = {
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 4,
|
||||
passes = 2,
|
||||
new_optimizations = true,
|
||||
xray = false,
|
||||
contrast = 1.0,
|
||||
brightness = 0.75,
|
||||
noise = 0.01,
|
||||
vibrancy = 0.35,
|
||||
vibrancy_darkness = 0.35,
|
||||
popups = true,
|
||||
special = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
@@ -281,7 +281,8 @@ function o.window(match, rules)
|
||||
hl.window_rule(rules)
|
||||
end
|
||||
|
||||
-- Opt a window in to Omarchy's standard active/inactive transparency.
|
||||
-- Opt a window in to Omarchy's standard active/inactive transparency. The tag
|
||||
-- lets Appearance > Window Transparency turn these windows opaque or glassy.
|
||||
function o.transparent_window(match, opacity)
|
||||
o.window(match, { opacity = opacity or "0.985 0.96" })
|
||||
o.window(match, { opacity = opacity or "0.985 0.96", tag = "+transparent-window" })
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
-- The Glassy bar: the shell draws the bar see-through, and Hyprland blurs what
|
||||
-- is behind it.
|
||||
require("default.hypr.glass")()
|
||||
|
||||
hl.layer_rule({
|
||||
match = { namespace = "^omarchy-bar$" },
|
||||
blur = true,
|
||||
ignore_alpha = 0.3,
|
||||
})
|
||||
@@ -1,6 +1,6 @@
|
||||
-- Draw nothing just for show, for machines that render on the CPU, like a VM:
|
||||
-- no animations, blur or shadows, and opaque windows, so nothing behind a
|
||||
-- window has to be blended into it.
|
||||
-- no animations, blur or shadows. How see-through windows are is left to
|
||||
-- Appearance > Window Transparency.
|
||||
hl.config({
|
||||
animations = {
|
||||
enabled = false,
|
||||
@@ -16,5 +16,3 @@ hl.config({
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
o.window(".*", { opacity = "1 1" })
|
||||
@@ -0,0 +1,14 @@
|
||||
-- Frosted glass from the glassy Starship (#14726): whatever is behind a
|
||||
-- see-through window or shell surface is blurred. Terminals get the see-through
|
||||
-- background itself from omarchy-theme-set-glass, which keeps their text crisp.
|
||||
require("default.hypr.glass")()
|
||||
|
||||
-- GTK apps fade as a whole, since GTK draws their backgrounds solid, and get
|
||||
-- their blur from the backdrop-filter Glassy adds to the user's gtk.css.
|
||||
o.window("org\\.gnome\\.Nautilus", { opacity = "0.75 0.75" })
|
||||
|
||||
hl.layer_rule({
|
||||
match = { namespace = "^(omarchy-bar|omarchy-menu|omarchy-notifications|omarchy-osd|omarchy-polkit|omarchy-reminders|omarchy-clipboard|omarchy-emojis|omarchy-image-selector|omarchy-keyboard-panel|omarchy-network-qr)$" },
|
||||
blur = true,
|
||||
ignore_alpha = 0.3,
|
||||
})
|
||||
@@ -0,0 +1,2 @@
|
||||
-- Opaque windows, even those Omarchy makes transparent by default.
|
||||
o.window({ tag = "transparent-window" }, { opacity = "1 1" })
|
||||
@@ -59,9 +59,11 @@
|
||||
"trigger.appearance.top-bar.hide": {"icon":"","label":"Hide Bar","when":"! omarchy-toggle-enabled bar-off","action":"omarchy-toggle-bar"},
|
||||
"trigger.appearance.top-bar.show": {"icon":"","label":"Show Bar","when":"omarchy-toggle-enabled bar-off","action":"omarchy-toggle-bar"},
|
||||
"trigger.appearance.top-bar.position": {"icon":"","label":"Position Bar"},
|
||||
"trigger.appearance.top-bar.transparent": {"icon":"","label":"Transparent Bar","when":"! jq -e .bar.transparent ~/.config/omarchy/shell.json >/dev/null 2>&1","action":"omarchy-bar transparent true"},
|
||||
"trigger.appearance.top-bar.opaque": {"icon":"","label":"Opaque Bar","when":"jq -e .bar.transparent ~/.config/omarchy/shell.json >/dev/null 2>&1","action":"omarchy-bar transparent false"},
|
||||
"trigger.appearance.top-bar.indicators": {"icon":"","label":"Indicators"},
|
||||
"trigger.appearance.top-bar.background": {"icon":"","label":"Bar Background"},
|
||||
"trigger.appearance.top-bar.background.opaque": {"icon":"","label":"Opaque Bar","checked":"[[ $(omarchy-bar background) == \"opaque\" ]]","action":"omarchy-bar background opaque"},
|
||||
"trigger.appearance.top-bar.background.glassy": {"icon":"","label":"Glassy Bar","checked":"[[ $(omarchy-bar background) == \"glassy\" ]]","action":"omarchy-bar background glassy"},
|
||||
"trigger.appearance.top-bar.background.clear": {"icon":"","label":"Clear Bar","checked":"[[ $(omarchy-bar background) == \"none\" ]]","action":"omarchy-bar background none"},
|
||||
"trigger.appearance.top-bar.indicators": {"icon":"","label":"Bar Indicators"},
|
||||
"trigger.appearance.top-bar.indicators.battery-percentage": {"icon":"","label":"Battery Percentage","when":"omarchy-hw-laptop","action":"omarchy-shell omarchy.power togglePercentage"},
|
||||
"trigger.appearance.top-bar.indicators.clock": {"icon":"","label":"Clock"},
|
||||
"trigger.appearance.top-bar.indicators.clock.sunday-24h": {"icon":"","label":"Sunday 14:30","when":"[[ $(omarchy-bar position) != \"left\" && $(omarchy-bar position) != \"right\" ]]","checked":"[[ $(omarchy-bar get omarchy.clock format) == \"dddd HH:mm\" ]]","action":"omarchy-bar set omarchy.clock format \"dddd HH:mm\""},
|
||||
@@ -87,6 +89,10 @@
|
||||
"trigger.appearance.window-corners.theme": {"icon":"","label":"Theme Corners","checked":"[[ $(omarchy-hyprland-corners) == \"theme\" ]]","action":"omarchy-hyprland-corners theme"},
|
||||
"trigger.appearance.window-corners.sharp": {"icon":"","label":"Sharp Corners","checked":"[[ $(omarchy-hyprland-corners) == \"sharp\" ]]","action":"omarchy-hyprland-corners sharp"},
|
||||
"trigger.appearance.window-corners.rounded": {"icon":"","label":"Rounded Corners","checked":"[[ $(omarchy-hyprland-corners) == \"rounded\" ]]","action":"omarchy-hyprland-corners rounded"},
|
||||
"trigger.appearance.window-transparency": {"icon":"","label":"Window Transparency"},
|
||||
"trigger.appearance.window-transparency.opaque": {"icon":"","label":"Opaque Windows","checked":"[[ $(omarchy-hyprland-window-transparency) == \"opaque\" ]]","action":"omarchy-hyprland-window-transparency opaque"},
|
||||
"trigger.appearance.window-transparency.transparent": {"icon":"","label":"Transparent Windows","checked":"[[ $(omarchy-hyprland-window-transparency) == \"transparent\" ]]","action":"omarchy-hyprland-window-transparency transparent"},
|
||||
"trigger.appearance.window-transparency.glassy": {"icon":"","label":"Glassy Windows","checked":"[[ $(omarchy-hyprland-window-transparency) == \"glassy\" ]]","action":"omarchy-hyprland-window-transparency glassy"},
|
||||
"trigger.appearance.one-window-ratio": {"icon":"","label":"1-Window Ratio","action":"omarchy-hyprland-window-single-square-aspect-toggle"},
|
||||
"trigger.appearance.workspace-layout": {"icon":"","label":"Workspace Layout","title":"Default Workspace Layout"},
|
||||
"trigger.appearance.workspace-layout.dwindle": {"icon":"","label":"Tiling","checked":"[[ $(omarchy-hyprland-workspace-layout-default) == \"dwindle\" ]]","action":"omarchy-hyprland-workspace-layout-default dwindle"},
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
[colors-dark]
|
||||
foreground={{ foreground_strip }}
|
||||
background={{ background_strip }}
|
||||
# Blur only applies while the background is see-through, as with Glassy windows,
|
||||
# and foot reads it only at launch, so it is on from the start.
|
||||
blur=yes
|
||||
selection-foreground={{ selection_foreground_strip }}
|
||||
selection-background={{ selection_background_strip }}
|
||||
|
||||
|
||||
@@ -6,6 +6,10 @@ selection_background {{ selection_background }}
|
||||
cursor {{ bright_foreground }}
|
||||
cursor_text_color {{ background }}
|
||||
|
||||
# Lets a reload change the background opacity, as Glassy windows do, since
|
||||
# kitty only allows that when this is on from launch.
|
||||
dynamic_background_opacity yes
|
||||
|
||||
active_border_color {{ accent }}
|
||||
active_tab_background {{ accent }}
|
||||
|
||||
|
||||
Reference in new issue
Block a user