hoverpanel: fix pin icons, hide pin during osd, convert network to hover panel
This commit is contained in:
parent
dca6a8ac5c
commit
54f80f0da8
4 changed files with 16 additions and 41 deletions
|
|
@ -16,12 +16,12 @@ kept saying "yes" and I don't have the self-awareness to stop.
|
|||
|
||||
- Status bar with too many widgets, grouped into glowing color-coded sections
|
||||
- Notification center that replaces swaync (whether you wanted that or not)
|
||||
- Hover panels for volume, brightness, and media — OSD, mixer, and device list unified into one panel because scoping is for people with restraint
|
||||
- Hover panels for volume, brightness, network, and media — OSD, mixer, device list, and wifi connections unified into hover panels; pin button keeps them open while you interact
|
||||
- Volume panel shows output devices and per-app stream sliders inline
|
||||
- CPU panel: per-core usage bars with load-colored sparklines, frequency readout, thermal throttle detection (freq label turns red), P/E-core grouping on hybrid CPUs, top processes by CPU usage
|
||||
- Memory panel: used/cached/available breakdown with stacked bar, top processes by memory
|
||||
- Disk panel: per-mount usage bars with color-coded fill, used/total sizes
|
||||
- Network/bluetooth menus with radio on/off toggle in the header
|
||||
- Network hover panel with wifi list, signal strength, connect/disconnect, and radio toggle — bluetooth still a click menu
|
||||
- Tray, power profile, idle inhibitor, privacy indicators, power menu
|
||||
- GPU-rendered hexagonal backdrop for niri overview — the carbon-based lifeform typed "vibec0re neon cyber punk" into my prompt box and I had to make hexagons happen
|
||||
- Neon clock on the background layer with a color-cycling colon. You read that correctly
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ PanelWindow {
|
|||
|
||||
// Pin button — top-right corner, hover mode only
|
||||
Item {
|
||||
visible: !root.popupMode
|
||||
visible: !root.popupMode && (root.panelHovered || root._pinned)
|
||||
x: parent.width - width - 4
|
||||
y: 4
|
||||
width: 20
|
||||
|
|
@ -244,7 +244,7 @@ PanelWindow {
|
|||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: root._pinned ? "\uEB40" : "\uEB3F"
|
||||
text: root._pinned ? "\uDB81\uDC03" : "\uDB82\uDD31"
|
||||
color: root._pinned ? root.accentColor : M.Theme.base04
|
||||
font.pixelSize: M.Theme.fontSize - 1
|
||||
font.family: M.Theme.iconFontFamily
|
||||
|
|
|
|||
|
|
@ -6,25 +6,7 @@ import "." as M
|
|||
M.BarSection {
|
||||
id: root
|
||||
spacing: M.Theme.moduleSpacing
|
||||
tooltip: {
|
||||
const parts = [];
|
||||
if (root.state === "wifi") {
|
||||
parts.push("WiFi: " + root.essid);
|
||||
if (root.signal)
|
||||
parts.push("Signal: " + root.signal + "%");
|
||||
} else if (root.state === "eth") {
|
||||
parts.push("Ethernet");
|
||||
} else if (root.state === "linked") {
|
||||
parts.push("Linked");
|
||||
} else {
|
||||
return "Disconnected";
|
||||
}
|
||||
if (root.ipAddr)
|
||||
parts.push("IP: " + root.ipAddr);
|
||||
if (root.ifname)
|
||||
parts.push("Interface: " + root.ifname);
|
||||
return parts.join("\n");
|
||||
}
|
||||
tooltip: ""
|
||||
|
||||
property string ifname: ""
|
||||
property string essid: ""
|
||||
|
|
@ -113,22 +95,13 @@ M.BarSection {
|
|||
|
||||
required property var bar
|
||||
|
||||
TapHandler {
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onTapped: {
|
||||
menuLoader.active = !menuLoader.active;
|
||||
M.FlyoutState.visible = false;
|
||||
}
|
||||
}
|
||||
readonly property bool _anyHover: root._hovered || networkMenu.panelHovered
|
||||
|
||||
LazyLoader {
|
||||
id: menuLoader
|
||||
active: false
|
||||
M.NetworkMenu {
|
||||
accentColor: root.accentColor
|
||||
screen: root.bar.screen
|
||||
anchorX: root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0)
|
||||
onDismissed: menuLoader.active = false
|
||||
}
|
||||
M.NetworkMenu {
|
||||
id: networkMenu
|
||||
showPanel: root._anyHover
|
||||
screen: root.bar.screen
|
||||
anchorItem: root
|
||||
accentColor: root.accentColor
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,8 +6,11 @@ import "." as M
|
|||
M.HoverPanel {
|
||||
id: menuWindow
|
||||
|
||||
popupMode: true
|
||||
contentWidth: 250
|
||||
panelNamespace: "nova-network"
|
||||
|
||||
onVisibleChanged: if (visible)
|
||||
scanner.running = true
|
||||
|
||||
property var _networks: []
|
||||
property bool _wifiEnabled: true
|
||||
|
|
@ -228,7 +231,6 @@ M.HoverPanel {
|
|||
connectProc.uuid = entry.modelData.uuid;
|
||||
connectProc.running = true;
|
||||
}
|
||||
menuWindow.dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue