Refine shell surfaces, spacing, and Ferese symbol

This commit is contained in:
Samuel Onoja committed 2026-09-26 05:12:01 +01:00
1 parent b3fa82b53b
commit 90e8986d8e
5 files changed
+14 -20

No files matched your search

+4 -4
View File
@@ -166,10 +166,10 @@ target/debug/ferese --backend nested --grant-effects --grant-shell-control -- \
The Ferese mark enters overview, where workspace indicators become available.
The focused app appears on the left; status controls and day/time sit on the
right. The 28px bar has square screen edges, 19px icons, a fine bottom separator,
and no drop shadow. An 8px gap separates it from windows; adjust
`top_bar_window_gap` under `[theme.geometry]` to change it. This is additional to
the workspace outer gap. Its dark startup fallback matches the material palette.
right. The 28px bar has square screen edges, 19px icons, and no border or drop
shadow. Window spacing uses the workspace outer gap; `top_bar_window_gap` under
`[theme.geometry]` adds optional extra space (default 0). Solid and translucent
shell surfaces also omit outlines. The dark startup fallback matches the material palette.
Keyboard and direct-session touchpad settings are applied at startup:
+3 -5
View File
@@ -256,11 +256,9 @@ void main() {
* shadow_values.y * (1.0 - coverage) * alpha;
gl_FragColor = vec4(0.0, 0.0, 0.0, opacity);
} else if (paint_mode > 0.5) {
if (edge_bar > 0.5) {
float bottom = logical_size.y * pixel_scale
- dot(gl_FragCoord.xy - local_origin, local_axes.zw);
float opacity = 0.10 * (1.0 - smoothstep(pixel_scale - 0.5, pixel_scale + 0.5, bottom)) * coverage * alpha;
gl_FragColor = vec4(vec3(opacity), opacity);
// Screen-edge bars and non-glass materials have no outline.
if (edge_bar > 0.5 || glass_edges < 0.5) {
gl_FragColor = vec4(0.0);
return;
}
float border = smoothstep(-pixel_scale - 0.5, -pixel_scale + 0.5, sdf);
+4 -3
View File
@@ -1,4 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">
<path d="M7 20V6a2 2 0 0 1 2-2h10M7 11.5h9"/>
<path d="M4 20h3"/>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" role="img" aria-label="Ferese symbol: tiled F">
<rect x="20" y="20" width="50" height="160" rx="8" fill="currentColor"/>
<rect x="80" y="20" width="100" height="55" rx="8" fill="currentColor"/>
<rect x="80" y="95" width="70" height="45" rx="8" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 341 B

+2 -2
View File
@@ -72,7 +72,7 @@ impl Default for ShellTheme {
shadow: [0, 0, 0, 85],
bar_height: 28.0,
bar_margin_top: 0,
bar_window_gap: 8,
bar_window_gap: 0,
bar_margin_horizontal: 0,
bar_radius: 0.0,
material_radius: 14.0,
@@ -415,7 +415,7 @@ const fn default_bar_height() -> f32 {
28.0
}
const fn default_bar_window_gap() -> i32 {
8
0
}
const fn default_bar_margin_top() -> i32 {
0
+1 -6
View File
@@ -599,13 +599,8 @@ impl FereseShell {
text_color: Some(primary),
icon_color: Some(primary),
border: Border {
color: if compositor_material {
Color::TRANSPARENT
} else {
color_with_opacity(theme.border, p * 0.6)
},
width: 1.0,
radius: theme.material_radius.into(),
..Default::default()
},
// Iced's shadow fills the silhouette behind the quad. With
// transparent client content that fill remains visible over