launcher: add content

Also use surfaceContainer as background
This commit is contained in:
2 * r + 2 * t 2025-05-02 14:57:59 +10:00
parent fc87280dcf
commit 651378d496
8 changed files with 111 additions and 21 deletions

View file

@ -59,7 +59,7 @@ Singleton {
}
component Transparency: QtObject {
readonly property bool enabled: true
readonly property bool enabled: false
readonly property real base: 0.78
readonly property real layers: 0.58
}

View file

@ -13,7 +13,7 @@ StyledRect {
}
vertical: BarConfig.vertical
color: Appearance.alpha(Appearance.colours.m3surface, false)
color: Appearance.alpha(Appearance.colours.m3surfaceContainer, false)
anchors.fill: parent
BoxLayout {

View file

@ -107,7 +107,7 @@ BoxLayout {
}
component Pill: PaddedRect {
color: Appearance.alpha(Appearance.colours.m3surface, false)
color: Appearance.alpha(Appearance.colours.m3surfaceContainer, false)
radius: Appearance.rounding.full
padding: BarConfig.vertical ? [Appearance.padding.large, 0] : [0, Appearance.padding.large]

View file

@ -19,7 +19,7 @@ Shape {
ShapePath {
strokeWidth: -1
fillColor: Appearance.colours.m3surface
fillColor: Appearance.colours.m3surfaceContainer
startY: root.wrapperHeight

View file

@ -0,0 +1,68 @@
import "root:/widgets"
import "root:/config"
import Quickshell
import QtQuick
Item {
implicitWidth: LauncherConfig.sizes.width
implicitHeight: search.height + list.height + Appearance.padding.large * 5 // Don't question it
anchors.horizontalCenter: parent.horizontalCenter
StyledRect {
color: Appearance.alpha(Appearance.colours.m3surfaceContainerHigh, true)
radius: Appearance.rounding.large
implicitHeight: list.height + Appearance.padding.large * 2
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: search.top
anchors.bottomMargin: Appearance.spacing.normal
anchors.margins: Appearance.padding.large
ListView {
id: list
model: DesktopEntries.applications.values.filter(x => x.name.toLowerCase().includes(search.text.toLowerCase()))
orientation: Qt.Vertical
verticalLayoutDirection: Qt.BottomToTop
height: 100
width: 100
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: Appearance.padding.large
delegate: PaddedRect {
id: entry
required property DesktopEntry modelData
width: LauncherConfig.sizes.width
StyledText {
text: modelData.name
font.family: Appearance.font.family.sans
font.pointSize: Appearance.font.size.smaller
}
}
}
}
StyledTextField {
id: search
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: Appearance.padding.large
placeholderText: "Type \">\" for commands"
background: StyledRect {
color: Appearance.alpha(Appearance.colours.m3surfaceContainerHigh, true)
radius: Appearance.rounding.large
}
}
}

View file

@ -1,9 +1,7 @@
import "root:/widgets"
import "root:/config"
import Quickshell
import QtQuick
import QtQuick.Shapes
import Qt5Compat.GraphicalEffects
import Quickshell.Wayland
Scope {
id: root
@ -20,6 +18,8 @@ Scope {
id: win
name: "launcher"
keyboardFocus: root.launcherVisible ? WlrKeyboardFocus.Exclusive : WlrKeyboardFocus.None
visible: wrapper.shouldBeVisible
width: content.width + bg.rounding * 2
height: content.implicitHeight
@ -37,17 +37,8 @@ Scope {
launcherVisible: root.launcherVisible
PaddedRect {
Content {
id: content
width: LauncherConfig.sizes.width
padding: Appearance.padding.large
anchors.horizontalCenter: parent.horizontalCenter
StyledText {
text: "Launcher"
font.pointSize: 80
}
}
}
}

View file

@ -5,13 +5,13 @@ Item {
id: root
required property bool launcherVisible
property bool shouldBeVisible
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 0
visible: false
clip: true
@ -21,7 +21,7 @@ Item {
PropertyChanges {
root.height: content.height
root.visible: true
root.shouldBeVisible: true
}
}
@ -33,7 +33,7 @@ Item {
SequentialAnimation {
PropertyAction {
target: root
property: "visible"
property: "shouldBeVisible"
}
NumberAnimation {
target: root
@ -58,7 +58,7 @@ Item {
}
PropertyAction {
target: root
property: "visible"
property: "shouldBeVisible"
}
}
}

View file

@ -0,0 +1,31 @@
pragma ComponentBehavior: Bound
import "root:/config"
import QtQuick
import QtQuick.Controls
TextField {
id: root
renderType: TextField.NativeRendering
color: Appearance.colours.m3onSurface
placeholderTextColor: Appearance.colours.m3outline
font.family: Appearance.font.family.sans
font.pointSize: Appearance.font.size.smaller
Behavior on color {
ColorAnimation {
duration: Appearance.anim.durations.normal
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}
Behavior on placeholderTextColor {
ColorAnimation {
duration: Appearance.anim.durations.normal
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}