aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/autostart
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/modules/autostart')
-rw-r--r--desktop/modules/autostart/AutostartModule.qml21
-rw-r--r--desktop/modules/autostart/AutostartPage.qml7
2 files changed, 24 insertions, 4 deletions
diff --git a/desktop/modules/autostart/AutostartModule.qml b/desktop/modules/autostart/AutostartModule.qml
index ef4c005..24c69da 100644
--- a/desktop/modules/autostart/AutostartModule.qml
+++ b/desktop/modules/autostart/AutostartModule.qml
@@ -9,24 +9,41 @@
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
+import Quickshell
+import Quickshell.Io
import QtQuick
import "../.."
+import "Autostart.js" as A
// What Hyprland launches at login, from hypr-theme's autostart.lua. Set once
// and left alone, so it lives in the settings window, not on a tile.
Module {
+ id: am
name: "autostart"
label: "Autostart"
// nf-fa-rocket, present in Inconsolata Nerd Font.
- icon: "\uf135"
+ icon: ""
settings: true
keywords: ["login", "startup", "launch", "exec", "daemon", "session",
"workspace", "silent", "scratchpad", "autostart.lua", "hyprland"]
+ readonly property string file: (Quickshell.env("XDG_CONFIG_HOME") || Quickshell.env("HOME") + "/.config")
+ + "/hypr/sections/autostart.lua"
+
+ // Every entry, as the page lists it; key is the row's objectName there.
+ function refresh() { fv.reload(); }
+ property FileView fv: FileView {
+ path: am.file
+ printErrors: false
+ watchChanges: true
+ onFileChanged: reload()
+ onLoaded: am.searchItems = A.parse(text()).map(e => ({ text: e.cmd, key: e.cmd }))
+ }
+
page: Component {
Page {
title: "Autostart"
- AutostartPage { width: parent.width }
+ AutostartPage { width: parent.width; file: am.file }
}
}
}
diff --git a/desktop/modules/autostart/AutostartPage.qml b/desktop/modules/autostart/AutostartPage.qml
index 1289a93..e0fa2c9 100644
--- a/desktop/modules/autostart/AutostartPage.qml
+++ b/desktop/modules/autostart/AutostartPage.qml
@@ -29,6 +29,8 @@ Column {
spacing: 6
readonly property string home: Quickshell.env("HOME")
+ // autostart.lua, from the module.
+ required property string file
property var entries: []
// Entry index -> the program's resolved path, "" when it is not found.
property var found: ({})
@@ -48,8 +50,7 @@ Column {
FileView {
id: fv
- path: (Quickshell.env("XDG_CONFIG_HOME") || page.home + "/.config")
- + "/hypr/sections/autostart.lua"
+ path: page.file
// Hyprland reloads its config on every change, so a half-written file
// would reach it.
atomicWrites: true
@@ -253,6 +254,8 @@ Column {
readonly property var parts: A.split(modelData.cmd)
readonly property var where: A.workspace(parts.rule)
readonly property string path: page.found[modelData.index] ?? "?"
+ // What a search hit scrolls to (AutostartModule's searchItems key).
+ objectName: modelData.cmd
width: page.width
height: 44