Ethernet details in the panel, smaller maps, no tray in workspace peeks

- control.rs: Menu::Ethernet; the panel morphs into the card's details
  (gathered off the drawing thread first) instead of a separate popup;
  prompt::copy now takes a callback so both use wl-copy the same way
- prompt.rs: the Details popup is gone
- map.rs: 920x460, at most 8 nodes, lighter nearness pull (simulated:
  no label overlaps up to 8 nodes while drifting)
- workspaces.rs: a peek on a workspace change shows the workspaces alone
This commit is contained in:
server2
2026-10-13 05:40:44 +02:00
parent 1e99d7264c
commit a7c49a16c0
5 changed files with 139 additions and 132 deletions
+4 -4
View File
@@ -47,10 +47,10 @@ pub fn view(monitor: &Monitor) -> LayerWindow {
let hover = Hover::read();
// hidden on a fullscreen monitor until wanted, or for a moment on a workspace change (edge.rs)
let (slide, switched) = {
let (slide, switched, peeking) = {
let edge = Edge::read();
(edge::hidden_by(edge.part(Part::Workspaces, &monitor.name), 0.0, HIDE_H), edge.switched(&monitor.name))
(edge::hidden_by(edge.part(Part::Workspaces, &monitor.name), 0.0, HIDE_H), edge.switched(&monitor.name), edge.shown(&monitor.name) == 0.0)
};
// special workspaces (scratchpads) aren't places to switch to
@@ -81,8 +81,8 @@ pub fn view(monitor: &Monitor) -> LayerWindow {
return window(LEFT + width + SHADOW).click_through().child(Rectangle::new().width(0.0).height(0.0));
}
// the tray's pill right of this one (tray.rs), when an app has an icon there
let tray = tray::pill(&monitor.name, LEFT + width + TRAY_GAP);
// the tray's pill right of this one (tray.rs), when an app has an icon there; a peek at a workspace change shows the workspaces alone
let tray = if peeking { None } else { tray::pill(&monitor.name, LEFT + width + TRAY_GAP) };
let tray_w = tray.as_ref().map_or(0.0, |(_, tray_w)| TRAY_GAP + tray_w);
let window = window(LEFT + width + tray_w + SHADOW);