diff options
Diffstat (limited to 'desktop/modules/autostart')
| -rw-r--r-- | desktop/modules/autostart/AutostartModule.qml | 21 | ||||
| -rw-r--r-- | desktop/modules/autostart/AutostartPage.qml | 7 |
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 |
