disable modules, README, warning fixes

This commit is contained in:
Damocles 2026-04-12 12:19:30 +02:00
parent ed68b9fd93
commit 5ad933c03b
9 changed files with 215 additions and 24 deletions

View file

@ -5,7 +5,7 @@ import "." as M
M.BarSection {
id: root
spacing: M.Theme.moduleSpacing
visible: percent > 0
visible: M.Modules.backlight && percent > 0
tooltip: "Brightness: " + root.percent + "%"
property int percent: 0

View file

@ -39,8 +39,8 @@ PanelWindow {
anchors.verticalCenter: parent.verticalCenter
spacing: M.Theme.barSpacing
M.Clock {}
M.Notifications {}
M.Clock { visible: M.Modules.clock }
M.Notifications { visible: M.Modules.notifications }
}
// ---- left ----
@ -52,9 +52,11 @@ PanelWindow {
M.Tray {
bar: bar
visible: M.Modules.tray
}
M.WindowTitle {
Layout.maximumWidth: 400
visible: M.Modules.windowTitle
}
}
@ -69,19 +71,19 @@ PanelWindow {
Layout.fillWidth: true
}
M.Mpris {}
M.Volume {}
M.Volume { visible: M.Modules.volume }
M.Bluetooth {}
M.Backlight {}
M.Network {}
M.PowerProfile {}
M.IdleInhibitor {}
M.Weather {}
M.Temperature {}
M.Cpu {}
M.Memory {}
M.Disk {}
M.Network { visible: M.Modules.network }
M.PowerProfile { visible: M.Modules.powerProfile }
M.IdleInhibitor { visible: M.Modules.idleInhibitor }
M.Weather { visible: M.Modules.weather }
M.Temperature { visible: M.Modules.temperature }
M.Cpu { visible: M.Modules.cpu }
M.Memory { visible: M.Modules.memory }
M.Disk { visible: M.Modules.disk }
M.Battery {}
M.Wlogout {}
M.Wlogout { visible: M.Modules.wlogout }
}
}
}

View file

@ -5,7 +5,7 @@ import "." as M
M.BarSection {
id: root
spacing: M.Theme.moduleSpacing
visible: UPower.displayDevice?.isLaptopBattery ?? false
visible: M.Modules.battery && (UPower.displayDevice?.isLaptopBattery ?? false)
tooltip: {
const state = root.charging ? "Charging" : "Discharging";
const t = root.charging ? root.dev?.timeToFull : root.dev?.timeToEmpty;

View file

@ -5,7 +5,7 @@ import "." as M
M.BarSection {
id: root
spacing: M.Theme.moduleSpacing
visible: root.state !== "unavailable"
visible: M.Modules.bluetooth && root.state !== "unavailable"
tooltip: {
if (root.state === "off") return "Bluetooth: off";
if (root.state === "connected") return "Bluetooth: " + root.device;
@ -61,10 +61,9 @@ M.BarSection {
anchors.verticalCenter: parent.verticalCenter
}
MouseArea {
anchors.fill: parent
TapHandler {
cursorShape: Qt.PointingHandCursor
onClicked: {
onTapped: {
toggle.cmd = root.state === "off" ? "on" : "off";
toggle.running = true;
}

48
modules/Modules.qml Normal file
View file

@ -0,0 +1,48 @@
pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
QtObject {
id: root
property bool tray: true
property bool windowTitle: true
property bool clock: true
property bool notifications: true
property bool mpris: true
property bool volume: true
property bool bluetooth: true
property bool backlight: true
property bool network: true
property bool powerProfile: true
property bool idleInhibitor: true
property bool weather: true
property bool temperature: true
property bool cpu: true
property bool memory: true
property bool disk: true
property bool battery: true
property bool wlogout: true
property FileView _file: FileView {
path: (Quickshell.env("XDG_CONFIG_HOME") || (Quickshell.env("HOME") + "/.config")) + "/nova-shell/modules.json"
watchChanges: true
onFileChanged: reload()
onLoaded: root._apply(text())
}
function _apply(raw) {
let data;
try {
data = JSON.parse(raw);
} catch (e) {
return;
}
for (const k of Object.keys(data)) {
if (k in root && typeof root[k] === "boolean")
root[k] = data[k];
}
}
}

View file

@ -5,7 +5,7 @@ import "." as M
M.BarSection {
id: root
spacing: M.Theme.moduleSpacing
visible: player !== null
visible: M.Modules.mpris && player !== null
tooltip: {
const p = root.player;
if (!p)
@ -14,7 +14,7 @@ M.BarSection {
if (p.trackTitle)
parts.push(p.trackTitle);
if (p.trackArtists?.length)
parts.push(p.trackArtists.join(", "));
parts.push(Array.isArray(p.trackArtists) ? p.trackArtists.join(", ") : p.trackArtists);
if (p.trackAlbum)
parts.push(p.trackAlbum);
return parts.join("\n") || p.identity;

View file

@ -1,6 +1,7 @@
module modules
singleton Theme 1.0 Theme.qml
singleton FlyoutState 1.0 FlyoutState.qml
singleton Modules 1.0 Modules.qml
Bar 1.0 Bar.qml
BarSection 1.0 BarSection.qml
Flyout 1.0 Flyout.qml