quickshell-toki-night/modules/launcher/Wrapper.qml

75 lines
1.6 KiB
QML

import qs.config
import qs.custom
import Quickshell
import Quickshell.Hyprland
import QtQuick
Item {
id: root
required property PersistentProperties uiState
required property Item panels
visible: height > 0
implicitHeight: 0
implicitWidth: content.implicitWidth
states: State {
name: "visible"
when: root.uiState.launcher
PropertyChanges {
root.implicitHeight: content.implicitHeight
}
}
transitions: [
Transition {
from: ""
to: "visible"
Anim {
target: root
property: "implicitHeight"
duration: Config.anim.durations.expressiveDefaultSpatial
easing.bezierCurve: Config.anim.curves.expressiveDefaultSpatial
}
},
Transition {
from: "visible"
to: ""
Anim {
target: root
property: "implicitHeight"
duration: Config.anim.durations.normal
easing.bezierCurve: Config.anim.curves.emphasized
}
}
]
HyprlandFocusGrab {
active: root.uiState.launcher
windows: [QsWindow.window]
onCleared: root.uiState.launcher = false
}
Background {
id: background
visible: false
wrapper: root
}
GlowEffect {
source: background
glowColor: content.color
}
Content {
id: content
uiState: root.uiState
wrapper: root
panels: root.panels
}
}