-->
import Quickshell.Io
Process {
running: true
command: [ "some-command", "arg" ]
stdout: SplitParser {
onRead: data => console.log(`line read: ${data}`)
}
}
If the process’s environment should be cleared prior to applying environment. Defaults to false.
If true, all environment variables will be removed before the environment
object is applied, meaning the variables listed will be the only ones visible to the process.
This changes the behavior of null
to pass in the system value of the variable if present instead
of removing it.
clearEnvironment: true
environment: ({
ADDED: "value",
PASSED_FROM_SYSTEM: null,
})
If the process is already running changing this property will affect the next started process. If the property has been changed after starting a process it will return the new value, not the one for the currently running process.
The command to execute. Each argument is its own string, which means you don’t have to deal with quoting anything.
If the process is already running changing this property will affect the next started process. If the property has been changed after starting a process it will return the new value, not the one for the currently running process.
WARNING
This does not run command in a shell. All arguments to the command
must be in separate values in the list, e.g. ["echo", "hello"]
and not ["echo hello"]
.
Additionally, shell scripts must be run by your shell,
e.g. ["sh", "script.sh"]
instead of ["script.sh"]
unless the script
has a shebang.
NOTE
You can use ["sh", "-c", <your command>]
to execute your command with
the system shell.
Environment of the executed process.
This is a javascript object (json). Environment variables can be added by setting them to a string and removed by setting them to null (except when clearEnvironment is true, in which case this behavior is inverted, see clearEnvironment for details).
environment: ({
ADDED: "value",
REMOVED: null,
"i'm different": "value",
})
NOTE
You need to wrap the returned object in () otherwise it won’t parse due to javascript ambiguity.
If the process is already running changing this property will affect the next started process. If the property has been changed after starting a process it will return the new value, not the one for the currently running process.
If the process should be killed when the Process object is destroyed or quickshell exits. Defaults to true.
This property may be changed while the process is running and will affect it.
WARNING
If set to false the process will still be killed if the quickshell config reloads. It will not be killed if quickshell exits normally or crashes.
The process ID of the running process or null
if running is false.
If the process is currently running. Defaults to false.
Setting this property to true will start the process if command has at least one element. Setting it to false will send SIGTERM. To immediately kill the process, use signal() with SIGKILL. The process will be killed when quickshell dies.
If you want to run the process in a loop, use the onRunningChanged signal handler to restart the process.
Process {
running: true
onRunningChanged: if (!running) running = true
}
The parser for stderr. If the parser is null the process’s stdout channel will be closed and no further data will be read, even if a new parser is attached.
If stdin is enabled. Defaults to false. If this property is false the process’s stdin channel will be closed and write() will do nothing, even if set back to true.
The parser for stdout. If the parser is null the process’s stdout channel will be closed and no further data will be read, even if a new parser is attached.
The working directory of the process. Defaults to quickshell’s working directory.
If the process is already running changing this property will affect the next started process. If the property has been changed after starting a process it will return the new value, not the one for the currently running process.
Sends a signal to the process if running is true, otherwise does nothing.
Writes to the process’s stdin. Does nothing if running is false.