blob: 16a93b549868c3c9a4eb5bf5f2aef2ded52bab19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# shells
Every directory in the repo holding a `shell.qml`, with whether `qs list
--all` shows an instance on it, and a Restart (or Start, when it is not
running) per row plus a Restart all. All three run `reload.sh`, so a button
does what the script does from a terminal, wrapped by `restart.sh`, which
then sends one notification naming the shells that came back, or a critical
one naming those that did not. Back means a `qs` instance on the shell's
config path under a pid it did not have before, within 5s: the old instance
can linger in the list for a moment after `qs kill`. It is the process, not
the config: a shell that starts with a broken component counts as back.
The script is started with `Quickshell.execDetached`, which leaves it outside
the desktop shell's process: restarting `desktop` from here kills the process
drawing the page and the script carries on and starts the new one. The
settings window closes with it and is not reopened. The new shell inherits
the desktop shell's environment, which is the one Hyprland's autostart gave
it.
A hung desktop shell cannot be restarted from here, since the page is part of
it. `./reload.sh` from a terminal remains the way out.
|