Install lucid
This commit is contained in:
38 files changed
+6439
-70
No files matched your search
@@ -0,0 +1,253 @@
|
||||
--- a/lucidbar/Clock.qml
|
||||
+++ b/lucidbar/Clock.qml
|
||||
@@ -94,7 +94,7 @@
|
||||
Timer {
|
||||
interval: 1000
|
||||
repeat: true
|
||||
- running: true
|
||||
+ running: root.visible && root.hostWindow !== null && root.hostWindow.visible
|
||||
triggeredOnStart: true
|
||||
onTriggered: root.now = Loc.now()
|
||||
}
|
||||
@@ -477,36 +477,7 @@
|
||||
color: Theme.accent
|
||||
transformOrigin: Item.Top
|
||||
|
||||
- SequentialAnimation on rotation {
|
||||
- loops: Animation.Infinite
|
||||
- running: bell.visible
|
||||
-
|
||||
- NumberAnimation {
|
||||
- from: 0
|
||||
- to: -14
|
||||
- duration: Theme.barMs(100)
|
||||
- easing.type: Easing.OutQuad
|
||||
- }
|
||||
-
|
||||
- NumberAnimation {
|
||||
- from: -14
|
||||
- to: 14
|
||||
- duration: Theme.barMs(160)
|
||||
- easing.type: Easing.InOutQuad
|
||||
- }
|
||||
-
|
||||
- NumberAnimation {
|
||||
- from: 14
|
||||
- to: 0
|
||||
- duration: Theme.barMs(140)
|
||||
- easing.type: Easing.OutQuad
|
||||
- }
|
||||
-
|
||||
- PauseAnimation {
|
||||
- duration: Theme.barMs(2800)
|
||||
- }
|
||||
-
|
||||
- }
|
||||
+
|
||||
|
||||
}
|
||||
|
||||
--- a/lucidbar/Mpris.qml
|
||||
+++ b/lucidbar/Mpris.qml
|
||||
@@ -649,7 +649,7 @@
|
||||
// media card, both closed most of the time. a per-frame interpolation behind
|
||||
// a closed panel measured ~18% of a core, so it waits until something shows it
|
||||
FrameAnimation {
|
||||
- running: root.isPlaying && !trackHitArea.dragging && (root.expanded || root.posWanted)
|
||||
+ running: root.visible && root.hostWindow !== null && root.hostWindow.visible && root.isPlaying && !trackHitArea.dragging && (root.expanded || root.posWanted)
|
||||
onTriggered: root.livePosSec = Math.min(root.lenSec, root.posBase + (Date.now() - root.posTimestamp) / 1000)
|
||||
}
|
||||
|
||||
@@ -731,7 +731,7 @@
|
||||
|
||||
// silence costs the same as sound to capture and parse, so only listen
|
||||
// while the pill's bars can dance or the panel is open on the waveform
|
||||
- running: (root.isPlaying && compactBars.visible) || root.expanded
|
||||
+ running: root.visible && root.hostWindow !== null && root.hostWindow.visible && ((root.isPlaying && compactBars.visible) || root.expanded)
|
||||
command: ["cava", "-p", Quickshell.env('HOME') + "/.config/cava/quickshell.conf"]
|
||||
onRunningChanged: {
|
||||
if (!cavaProc.running && root.bars.length > 0)
|
||||
@@ -948,7 +948,7 @@
|
||||
to: 360
|
||||
duration: 14000
|
||||
loops: Animation.Infinite
|
||||
- running: root.isPlaying && compactArt.visible
|
||||
+ running: root.isPlaying && compactArt.visible && root.hostWindow !== null && root.hostWindow.visible
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2906,7 +2906,7 @@
|
||||
readonly property real segmentWidth: measure.implicitWidth
|
||||
readonly property real naturalWidth: bare.implicitWidth
|
||||
readonly property bool overflowing: mq.naturalWidth > mq.width
|
||||
- readonly property bool animating: mq.scrolling && mq.overflowing
|
||||
+ readonly property bool animating: mq.scrolling && mq.overflowing && mq.visible && mq.opacity > 0
|
||||
property real currentX: 0
|
||||
|
||||
function updateScroll() {
|
||||
--- a/lucidwidgets/WidgetFrame.qml
|
||||
+++ b/lucidwidgets/WidgetFrame.qml
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Item {
|
||||
id: frame
|
||||
+
|
||||
+ property bool updatesEnabled: true
|
||||
|
||||
required property string uid
|
||||
required property string wtype
|
||||
--- a/lucidwidgets/WidgetBody.qml
|
||||
+++ b/lucidwidgets/WidgetBody.qml
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
// set by the frame once the loader is ready
|
||||
property var host: null
|
||||
+ readonly property bool updatesEnabled: !body.host || (body.host.updatesEnabled !== false && body.host.onThisScreen !== false)
|
||||
// a variant that draws straight onto the wallpaper with no container behind it
|
||||
property bool bare: false
|
||||
// a body with nothing worth showing right now: the frame fades the whole card
|
||||
--- a/lucidwidgets/ClockWidget.qml
|
||||
+++ b/lucidwidgets/ClockWidget.qml
|
||||
@@ -43,7 +43,7 @@
|
||||
Timer {
|
||||
interval: 1000
|
||||
repeat: true
|
||||
- running: true
|
||||
+ running: w.updatesEnabled && w.visible
|
||||
triggeredOnStart: true
|
||||
onTriggered: w.now = Loc.now()
|
||||
}
|
||||
--- a/lucidwidgets/SystemWidget.qml
|
||||
+++ b/lucidwidgets/SystemWidget.qml
|
||||
@@ -127,17 +127,23 @@
|
||||
return w.inkAccent;
|
||||
}
|
||||
|
||||
- Component.onCompleted: {
|
||||
- if (!w.preview)
|
||||
- Sys.hold(w.uid || "w", true, w.pollMs);
|
||||
-
|
||||
- }
|
||||
- Component.onDestruction: Sys.hold(w.uid || "w", false)
|
||||
- onPollMsChanged: {
|
||||
- if (!w.preview)
|
||||
- Sys.hold(w.uid || "w", true, w.pollMs);
|
||||
-
|
||||
- }
|
||||
+ property string pollingTag: ""
|
||||
+
|
||||
+ function syncPolling() {
|
||||
+ const tag = w.uid;
|
||||
+ if (w.pollingTag !== "" && w.pollingTag !== tag)
|
||||
+ Sys.hold(w.pollingTag, false);
|
||||
+ w.pollingTag = tag;
|
||||
+ if (tag !== "")
|
||||
+ Sys.hold(tag, !w.preview && w.updatesEnabled, w.pollMs);
|
||||
+ }
|
||||
+
|
||||
+ Component.onCompleted: w.syncPolling()
|
||||
+ Component.onDestruction: Sys.hold(w.pollingTag, false)
|
||||
+ onUidChanged: w.syncPolling()
|
||||
+ onPollMsChanged: w.syncPolling()
|
||||
+ onUpdatesEnabledChanged: w.syncPolling()
|
||||
+ onPreviewChanged: w.syncPolling()
|
||||
|
||||
// rings: one thick m3 ring per reading, the icon inside, the number under it
|
||||
Row {
|
||||
--- a/lucidwidgets/FetchWidget.qml
|
||||
+++ b/lucidwidgets/FetchWidget.qml
|
||||
@@ -49,12 +49,22 @@
|
||||
readonly property var swatches: [Theme.primary, Theme.secondary, Theme.tertiary, Theme.error, Theme.primaryContainer, Theme.secondaryContainer, Theme.tertiaryContainer, Theme.surfaceHighest]
|
||||
|
||||
defaultTone: "surface"
|
||||
- Component.onCompleted: {
|
||||
- if (!w.preview)
|
||||
- Sys.hold("fetch-" + w.uid, true, 5000);
|
||||
-
|
||||
- }
|
||||
- Component.onDestruction: Sys.hold("fetch-" + w.uid, false)
|
||||
+ property string pollingTag: ""
|
||||
+
|
||||
+ function syncPolling() {
|
||||
+ const tag = w.uid === "" ? "" : "fetch-" + w.uid;
|
||||
+ if (w.pollingTag !== "" && w.pollingTag !== tag)
|
||||
+ Sys.hold(w.pollingTag, false);
|
||||
+ w.pollingTag = tag;
|
||||
+ if (tag !== "")
|
||||
+ Sys.hold(tag, !w.preview && w.updatesEnabled, 5000);
|
||||
+ }
|
||||
+
|
||||
+ Component.onCompleted: w.syncPolling()
|
||||
+ Component.onDestruction: Sys.hold(w.pollingTag, false)
|
||||
+ onUidChanged: w.syncPolling()
|
||||
+ onUpdatesEnabledChanged: w.syncPolling()
|
||||
+ onPreviewChanged: w.syncPolling()
|
||||
|
||||
// card: the mark and who you are, then a labelled list
|
||||
Item {
|
||||
--- a/lucidwidgets/VisualiserWidget.qml
|
||||
+++ b/lucidwidgets/VisualiserWidget.qml
|
||||
@@ -50,6 +50,11 @@
|
||||
if (w.preview || w.uid === "")
|
||||
return ;
|
||||
|
||||
+ if (!w.updatesEnabled) {
|
||||
+ Cava.drop(w.filed);
|
||||
+ w.filed = "";
|
||||
+ return;
|
||||
+ }
|
||||
Cava.want(w.uid, w.barCount);
|
||||
w.filed = w.uid;
|
||||
}
|
||||
@@ -124,6 +129,7 @@
|
||||
onWantCountChanged: w.refreshCount()
|
||||
onResizingChanged: w.refreshCount()
|
||||
onBarCountChanged: w.file()
|
||||
+ onUpdatesEnabledChanged: w.file()
|
||||
onUidChanged: {
|
||||
if (w.filed !== "" && w.filed !== w.uid)
|
||||
Cava.drop(w.filed);
|
||||
@@ -158,7 +164,7 @@
|
||||
Timer {
|
||||
interval: 55
|
||||
repeat: true
|
||||
- running: w.preview
|
||||
+ running: w.preview && w.updatesEnabled && w.visible
|
||||
onTriggered: w.phase += 0.055
|
||||
}
|
||||
|
||||
--- a/lucidprefs/ThemePage.qml
|
||||
+++ b/lucidprefs/ThemePage.qml
|
||||
@@ -770,6 +770,9 @@
|
||||
"key": "any",
|
||||
"label": "Any window"
|
||||
}, {
|
||||
+ "key": "non-float",
|
||||
+ "label": "Non-float"
|
||||
+ }, {
|
||||
"key": "fullscreen",
|
||||
"label": "Fullscreen"
|
||||
}, {
|
||||
|
||||
--- a/LiveWall.qml
|
||||
+++ b/LiveWall.qml
|
||||
@@ -42,13 +42,18 @@
|
||||
const out = {};
|
||||
const mons = Hyprland.monitors.values;
|
||||
for (let i = 0; i < mons.length; i++) {
|
||||
const ws = mons[i].activeWorkspace;
|
||||
- const windows = ws ? ws.toplevels.values.length : 0;
|
||||
+ const windows = ws ? ws.toplevels.values : [];
|
||||
let still = Lockscreen.locked || (root.gameMode && Prefs.liveGameMode === "pause");
|
||||
if (Prefs.livePauseUnder === "any")
|
||||
- still = still || windows > 0;
|
||||
+ still = still || windows.length > 0;
|
||||
+ else if (Prefs.livePauseUnder === "non-float")
|
||||
+ still = still || windows.some((t) => {
|
||||
+ const o = t && t.lastIpcObject;
|
||||
+ return o && o.mapped !== false && o.hidden !== true && o.floating !== true;
|
||||
+ });
|
||||
else if (Prefs.livePauseUnder === "fullscreen")
|
||||
still = still || (ws !== null && ws.hasFullscreen);
|
||||
out[mons[i].name] = !still;
|
||||
}
|
||||
Reference in new issue
Block a user