feat: launcher keyboard nav
Using currentitem and highlight Also fix not closing launcher when clicking app Apps service use only one process
This commit is contained in:
parent
6b848b0f56
commit
587c3a7bc9
3 changed files with 20 additions and 15 deletions
|
|
@ -10,6 +10,7 @@ ListView {
|
|||
|
||||
required property int padding
|
||||
required property string search
|
||||
required property Scope launcher
|
||||
|
||||
model: ScriptModel {
|
||||
values: Apps.fuzzyQuery(root.search)
|
||||
|
|
@ -26,10 +27,16 @@ ListView {
|
|||
anchors.bottom: parent.bottom
|
||||
anchors.margins: root.padding
|
||||
|
||||
highlightMoveDuration: Appearance.anim.durations.normal
|
||||
|
||||
highlight: StyledRect {
|
||||
radius: Appearance.rounding.normal
|
||||
color: Appearance.alpha(Appearance.colours.m3surfaceContainerHighest, true)
|
||||
}
|
||||
|
||||
delegate: AppItem {
|
||||
launcher: root.launcher
|
||||
}
|
||||
// TODO highlight
|
||||
|
||||
ScrollBar.vertical: StyledScrollBar {
|
||||
// Move half out
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ Item {
|
|||
|
||||
padding: root.padding
|
||||
search: search.text
|
||||
launcher: root.launcher
|
||||
}
|
||||
|
||||
EmptyIndicator {
|
||||
|
|
@ -73,6 +74,9 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
Keys.onUpPressed: list.decrementCurrentIndex()
|
||||
Keys.onDownPressed: list.incrementCurrentIndex()
|
||||
|
||||
Keys.onEscapePressed: root.launcher.launcherVisible = false
|
||||
|
||||
Connections {
|
||||
|
|
@ -81,8 +85,10 @@ Item {
|
|||
function onLauncherVisibleChanged(): void {
|
||||
if (root.launcher.launcherVisible)
|
||||
search.forceActiveFocus();
|
||||
else
|
||||
else {
|
||||
search.text = "";
|
||||
list.currentIndex = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import "root:/widgets"
|
|||
import "root:/config"
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import QtQuick
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
|
@ -24,22 +23,15 @@ Singleton {
|
|||
}
|
||||
|
||||
function launch(entry: DesktopEntry): void {
|
||||
launchProc.createObject(root, {
|
||||
entry
|
||||
});
|
||||
launchProc.entry = entry;
|
||||
launchProc.startDetached();
|
||||
}
|
||||
|
||||
Component {
|
||||
Process {
|
||||
id: launchProc
|
||||
|
||||
Process {
|
||||
required property DesktopEntry entry
|
||||
property DesktopEntry entry
|
||||
|
||||
command: ["app2unit", "--", `${entry.id}.desktop`]
|
||||
Component.onCompleted: {
|
||||
startDetached();
|
||||
destroy();
|
||||
}
|
||||
}
|
||||
command: ["app2unit", "--", `${entry.id}.desktop`]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue