Compare commits

..

3 Commits

Author SHA1 Message Date
190570da7b qs: improve bar's animations 2026-03-21 07:14:00 +01:00
b677b8aa49 Update asset link in README.md 2026-03-21 06:40:43 +01:00
bb56ae1598 qs: better notes 2026-03-21 06:39:33 +01:00
6 changed files with 46 additions and 41 deletions
+1 -1
View File
@@ -15,7 +15,7 @@
<summary>Niri & Quickshell</summary> <summary>Niri & Quickshell</summary>
https://github.com/user-attachments/assets/af29bcac-7207-4f23-88bb-d8c5d447776a https://github.com/user-attachments/assets/1fd0f3be-e83f-4d1c-9e4f-16cc77e3981b
<figure> <figure>
<img src="https://github.com/Uyanide/backgrounds/blob/master/screenshots/desktop-alt.webp?raw=true"/> <img src="https://github.com/Uyanide/backgrounds/blob/master/screenshots/desktop-alt.webp?raw=true"/>
@@ -23,8 +23,8 @@ Item {
readonly property real viewportHeight: outputHeight > 0 ? outputHeight : height readonly property real viewportHeight: outputHeight > 0 ? outputHeight : height
readonly property real scrollProgress: { readonly property real scrollProgress: {
if (workspaceCount <= 1 || focusedIndex < 0) if (workspaceCount <= 1 || focusedIndex < 0)
return 0; return 0.5;
// Center
return Math.max(0, Math.min(1, (focusedIndex - 1) / (workspaceCount - 1))); return Math.max(0, Math.min(1, (focusedIndex - 1) / (workspaceCount - 1)));
} }
@@ -143,6 +143,7 @@ Item {
Behavior on blur { Behavior on blur {
NumberAnimation { NumberAnimation {
duration: Style.animationSlow duration: Style.animationSlow
easing.type: Easing.InOutCubic
} }
} }
@@ -150,6 +151,7 @@ Item {
Behavior on colorization { Behavior on colorization {
NumberAnimation { NumberAnimation {
duration: Style.animationSlow duration: Style.animationSlow
easing.type: Easing.InOutCubic
} }
} }
@@ -31,6 +31,21 @@ Variants {
top: true top: true
} }
Rectangle {
anchors.fill: parent
color: Colors.mSurface
opacity: BarService.focusMode ? 1 : 0
Behavior on opacity {
NumberAnimation {
duration: Style.animationSlow
easing.type: Easing.InOutCubic
}
}
}
Rectangle { Rectangle {
id: barBackground id: barBackground
@@ -39,30 +54,12 @@ Variants {
gradient: Gradient { gradient: Gradient {
GradientStop { GradientStop {
position: 0 position: 0
color: Qt.rgba(Colors.mSurface.r, Colors.mSurface.g, Colors.mSurface.b, BarService.focusMode ? 1 : 0.8) color: Qt.rgba(Colors.mSurface.r, Colors.mSurface.g, Colors.mSurface.b, 0.8)
Behavior on color {
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.InOutCubic
}
}
} }
GradientStop { GradientStop {
position: 1 position: 1
color: Qt.rgba(Colors.mSurface.r, Colors.mSurface.g, Colors.mSurface.b, BarService.focusMode ? 1 : 0) color: Qt.rgba(Colors.mSurface.r, Colors.mSurface.g, Colors.mSurface.b, 0)
Behavior on color {
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.InOutCubic
}
}
} }
} }
@@ -173,7 +173,7 @@ Scope {
Behavior on opacity { Behavior on opacity {
NumberAnimation { NumberAnimation {
duration: Style.animationSlowest duration: Style.animationSlow
easing.type: Easing.InOutCubic easing.type: Easing.InOutCubic
} }
@@ -107,14 +107,6 @@ Rectangle {
onClicked: NotesService.openNote(model.notePath) onClicked: NotesService.openNote(model.notePath)
} }
FileView {
id: fileView
path: model.notePath
watchChanges: true
onFileChanged: reload()
}
RowLayout { RowLayout {
id: noteLayout id: noteLayout
@@ -124,13 +116,7 @@ Rectangle {
UText { UText {
Layout.fillWidth: true Layout.fillWidth: true
text: { text: model.contentPreview
var t = fileView.text();
if (!t)
return "(empty note)";
return t.trim().split('\n').slice(0, 5).join('\n');
}
wrapMode: Text.Wrap wrapMode: Text.Wrap
elide: Text.ElideRight elide: Text.ElideRight
maximumLineCount: 5 maximumLineCount: 5
@@ -20,7 +20,8 @@ Singleton {
const path = Paths.notesDir + "/" + fileName; const path = Paths.notesDir + "/" + fileName;
createProcess.currentNote = { createProcess.currentNote = {
"notePath": path, "notePath": path,
"colorIdx": strToColor(fileName) "colorIdx": strToColor(fileName),
"contentPreview": ""
}; };
createProcess.command = ["touch", path]; createProcess.command = ["touch", path];
createProcess.running = true; createProcess.running = true;
@@ -124,7 +125,8 @@ Singleton {
root.notesModel.append({ root.notesModel.append({
"notePath": Paths.notesDir + "/" + fileName, "notePath": Paths.notesDir + "/" + fileName,
"colorIdx": strToColor(fileName) "colorIdx": strToColor(fileName),
"contentPreview": ""
}); });
Logger.d("Notes", "Loaded note: " + fileName); Logger.d("Notes", "Loaded note: " + fileName);
} }
@@ -136,6 +138,24 @@ Singleton {
} }
Instantiator {
model: notesModel
delegate: FileView {
path: model.notePath
watchChanges: true
onFileChanged: reload()
onLoaded: {
const content = text();
if (!content)
model.contentPreview = "(empty note)";
else
model.contentPreview = content.trim().split('\n').slice(0, 5).join('\n');
}
}
}
notesModel: ListModel { notesModel: ListModel {
} }