diff options
Diffstat (limited to 'desktop/modules/autostart/Autostart.js')
| -rw-r--r-- | desktop/modules/autostart/Autostart.js | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/desktop/modules/autostart/Autostart.js b/desktop/modules/autostart/Autostart.js index 81510d7..8fea823 100644 --- a/desktop/modules/autostart/Autostart.js +++ b/desktop/modules/autostart/Autostart.js @@ -115,12 +115,15 @@ function remove(text, e) { return edit(text, e, a => a.splice(e.index, 1)); } -// A new enabled entry before the hook's closing `end)`, indented like the -// last entry. Null if there is no `end)` to put it before. +// A new enabled entry before the closing `end)` of the hyprland.start hook, +// indented like the last entry. Not the file's last `end)`: a +// hyprland.shutdown hook after it would run the entry at logout. Null if +// there is no start hook with an `end)` to put it before. function add(text, cmd) { const a = text.split("\n"); + const start = a.findIndex(l => /^hl\.on\(\s*"hyprland\.start"/.test(l)); let end = -1; - for (let i = a.length - 1; i >= 0; i--) + for (let i = start + 1; start >= 0 && i < a.length; i++) if (/^end\)\s*$/.test(a[i])) { end = i; break; } if (end < 0) return null; const last = parse(text).pop(); |
