Compare commits
No commits in common. "579af752fa88747229969612ec3fb8ba10067001" and "f3f45d68f05dbe401dee2faa469f40e036d58e0a" have entirely different histories.
579af752fa
...
f3f45d68f0
10 changed files with 0 additions and 347 deletions
|
|
@ -1,128 +0,0 @@
|
||||||
import QtQuick
|
|
||||||
import QtQuick.Layouts
|
|
||||||
import Quickshell
|
|
||||||
|
|
||||||
Scope {
|
|
||||||
id: root
|
|
||||||
property bool failed
|
|
||||||
property string errorString
|
|
||||||
|
|
||||||
// Connect to the Quickshell global to listen for the reload signals.
|
|
||||||
Connections {
|
|
||||||
target: Quickshell
|
|
||||||
|
|
||||||
function onReloadCompleted() {
|
|
||||||
Quickshell.inhibitReloadPopup();
|
|
||||||
root.failed = false;
|
|
||||||
popupLoader.loading = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onReloadFailed(error: string) {
|
|
||||||
Quickshell.inhibitReloadPopup();
|
|
||||||
// Close any existing popup before making a new one.
|
|
||||||
popupLoader.active = false;
|
|
||||||
|
|
||||||
root.failed = true;
|
|
||||||
root.errorString = error;
|
|
||||||
popupLoader.loading = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Keep the popup in a loader because it isn't needed most of the timeand will take up
|
|
||||||
// memory that could be used for something else.
|
|
||||||
LazyLoader {
|
|
||||||
id: popupLoader
|
|
||||||
|
|
||||||
PanelWindow {
|
|
||||||
id: popup
|
|
||||||
|
|
||||||
anchors {
|
|
||||||
top: true
|
|
||||||
left: true
|
|
||||||
}
|
|
||||||
|
|
||||||
margins {
|
|
||||||
top: 25
|
|
||||||
left: 25
|
|
||||||
}
|
|
||||||
|
|
||||||
implicitWidth: rect.width
|
|
||||||
implicitHeight: rect.height
|
|
||||||
|
|
||||||
// color blending is a bit odd as detailed in the type reference.
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: rect
|
|
||||||
color: failed ? "#40802020" : "#40009020"
|
|
||||||
|
|
||||||
implicitHeight: layout.implicitHeight + 50
|
|
||||||
implicitWidth: layout.implicitWidth + 30
|
|
||||||
|
|
||||||
// Fills the whole area of the rectangle, making any clicks go to it,
|
|
||||||
// which dismiss the popup.
|
|
||||||
MouseArea {
|
|
||||||
id: mouseArea
|
|
||||||
anchors.fill: parent
|
|
||||||
onClicked: popupLoader.active = false
|
|
||||||
|
|
||||||
// makes the mouse area track mouse hovering, so the hide animation
|
|
||||||
// can be paused when hovering.
|
|
||||||
hoverEnabled: true
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
id: layout
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
topMargin: 20
|
|
||||||
horizontalCenter: parent.horizontalCenter
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
text: root.failed ? "Reload failed." : "Reloaded completed!"
|
|
||||||
color: "white"
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
text: root.errorString
|
|
||||||
color: "white"
|
|
||||||
// When visible is false, it also takes up no space.
|
|
||||||
visible: root.errorString != ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// A progress bar on the bottom of the screen, showing how long until the
|
|
||||||
// popup is removed.
|
|
||||||
Rectangle {
|
|
||||||
id: bar
|
|
||||||
color: "#20ffffff"
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.left: parent.left
|
|
||||||
height: 20
|
|
||||||
|
|
||||||
PropertyAnimation {
|
|
||||||
id: anim
|
|
||||||
target: bar
|
|
||||||
property: "width"
|
|
||||||
from: rect.width
|
|
||||||
to: 0
|
|
||||||
duration: failed ? 10000 : 2000
|
|
||||||
onFinished: popupLoader.active = false
|
|
||||||
|
|
||||||
// Pause the animation when the mouse is hovering over the popup,
|
|
||||||
// so it stays onscreen while reading. This updates reactively
|
|
||||||
// when the mouse moves on and off the popup.
|
|
||||||
paused: mouseArea.containsMouse
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// We could set `running: true` inside the animation, but the width of the
|
|
||||||
// rectangle might not be calculated yet, due to the layout.
|
|
||||||
// In the `Component.onCompleted` event handler, all of the component's
|
|
||||||
// properties and children have been initialized.
|
|
||||||
Component.onCompleted: anim.start()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert-icon lucide-triangle-alert"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 376 B |
|
|
@ -1 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-dashed-icon lucide-triangle-dashed"><path d="M10.17 4.193a2 2 0 0 1 3.666.013"/><path d="M14 21h2"/><path d="m15.874 7.743 1 1.732"/><path d="m18.849 12.952 1 1.732"/><path d="M21.824 18.18a2 2 0 0 1-1.835 2.824"/><path d="M4.024 21a2 2 0 0 1-1.839-2.839"/><path d="m5.136 12.952-1 1.732"/><path d="M8 21h2"/><path d="m8.102 7.743-1 1.732"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 558 B |
|
|
@ -1 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-icon lucide-triangle"><path d="M13.73 4a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 318 B |
|
|
@ -1,35 +0,0 @@
|
||||||
import QtQuick
|
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Wayland
|
|
||||||
import "../../widgets"
|
|
||||||
|
|
||||||
Variants {
|
|
||||||
model: Quickshell.screens
|
|
||||||
|
|
||||||
StyledWindow {
|
|
||||||
id: background
|
|
||||||
|
|
||||||
required property ShellScreen modelData
|
|
||||||
|
|
||||||
screen: modelData
|
|
||||||
name: "background"
|
|
||||||
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
|
||||||
WlrLayershell.layer: WlrLayer.Background
|
|
||||||
color: "black"
|
|
||||||
|
|
||||||
anchors.top: true
|
|
||||||
anchors.bottom: true
|
|
||||||
anchors.left: true
|
|
||||||
anchors.right: true
|
|
||||||
|
|
||||||
Image {
|
|
||||||
id: wallpaper
|
|
||||||
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
opacity: 1
|
|
||||||
|
|
||||||
source: "/home/baobeld/Wallpapers/bailey-zindel-NRQV-hBF10M-unsplash.jpg"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
import QtQuick
|
|
||||||
import Quickshell
|
|
||||||
import "components"
|
|
||||||
import "../../config"
|
|
||||||
|
|
||||||
Scope {
|
|
||||||
PanelWindow {
|
|
||||||
id: root
|
|
||||||
|
|
||||||
anchors {
|
|
||||||
top: true
|
|
||||||
left: true
|
|
||||||
right: true
|
|
||||||
}
|
|
||||||
|
|
||||||
implicitHeight: 30
|
|
||||||
|
|
||||||
color: 'transparent'
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
color: Colours.palette.base100
|
|
||||||
}
|
|
||||||
|
|
||||||
Row {
|
|
||||||
id: leftbar
|
|
||||||
|
|
||||||
spacing: 6
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.margins: 2
|
|
||||||
|
|
||||||
Workspaces {
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row {
|
|
||||||
id: centerbar
|
|
||||||
|
|
||||||
spacing: 6
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
|
|
||||||
Clock {}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row {
|
|
||||||
id: rightbar
|
|
||||||
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.right: parent.left
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Io
|
|
||||||
import QtQuick
|
|
||||||
|
|
||||||
Item {
|
|
||||||
id: clock
|
|
||||||
|
|
||||||
implicitWidth: 200
|
|
||||||
implicitHeight: 30
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
anchors.fill: parent
|
|
||||||
color: "#333"
|
|
||||||
opacity: 0.5
|
|
||||||
radius: 5
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: text
|
|
||||||
anchors.centerIn: parent
|
|
||||||
|
|
||||||
color: "white"
|
|
||||||
|
|
||||||
Process {
|
|
||||||
// give the process object an id so we can talk
|
|
||||||
// about it from the timer
|
|
||||||
id: dateProc
|
|
||||||
|
|
||||||
command: ["date"]
|
|
||||||
running: true
|
|
||||||
|
|
||||||
stdout: StdioCollector {
|
|
||||||
onStreamFinished: text.text = this.text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// use a timer to rerun the process at an interval
|
|
||||||
Timer {
|
|
||||||
// 1000 milliseconds is 1 second
|
|
||||||
interval: 1000
|
|
||||||
|
|
||||||
// start the timer immediately
|
|
||||||
running: true
|
|
||||||
|
|
||||||
// run the timer again when it ends
|
|
||||||
repeat: true
|
|
||||||
|
|
||||||
// when the timer is triggered, set the running property of the
|
|
||||||
// process to true, which reruns it if stopped.
|
|
||||||
onTriggered: dateProc.running = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
import QtQuick
|
|
||||||
import QtQuick.Controls
|
|
||||||
import QtQuick.VectorImage
|
|
||||||
import Quickshell.Hyprland
|
|
||||||
import "../../../config"
|
|
||||||
|
|
||||||
Row {
|
|
||||||
id: root
|
|
||||||
|
|
||||||
spacing: 4
|
|
||||||
|
|
||||||
Repeater {
|
|
||||||
|
|
||||||
model: Hyprland.workspaces
|
|
||||||
|
|
||||||
Item {
|
|
||||||
id: workspace
|
|
||||||
|
|
||||||
required property HyprlandWorkspace modelData
|
|
||||||
|
|
||||||
visible: modelData.id > 0
|
|
||||||
|
|
||||||
width: 25
|
|
||||||
height: 25
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: rectangle
|
|
||||||
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
anchors.fill: parent
|
|
||||||
color: "#161212"
|
|
||||||
radius: 8
|
|
||||||
}
|
|
||||||
|
|
||||||
Button {
|
|
||||||
id: button
|
|
||||||
anchors.centerIn: parent
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
rotation: workspace.modelData.active ? 0 : 180
|
|
||||||
|
|
||||||
icon.source: "/home/baobeld/dotfiles/quickshell/shell/assets/triangle.svg"
|
|
||||||
icon.color: "#1fb854"
|
|
||||||
|
|
||||||
// palette.button: QtColor.
|
|
||||||
|
|
||||||
onClicked: workspace.modelData.activate()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
import Quickshell
|
|
||||||
import "modules/background"
|
|
||||||
import "modules/bar"
|
|
||||||
|
|
||||||
ShellRoot {
|
|
||||||
ReloadPopup {}
|
|
||||||
|
|
||||||
// Background {}
|
|
||||||
Bar {}
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
import Quickshell
|
|
||||||
import Quickshell.Wayland
|
|
||||||
|
|
||||||
PanelWindow {
|
|
||||||
required property string name
|
|
||||||
|
|
||||||
WlrLayershell.namespace: `lux-${name}`
|
|
||||||
color: "transparent"
|
|
||||||
}
|
|
||||||
Loading…
Add table
Reference in a new issue