Process: QtObject

import Quickshell.Io

Child process. More

Properties

Functions

Signals

Detailed Description

Example

Process {
  running: true
  command: [ "some-command", "arg" ]
  stdout: SplitParser {
    onRead: data => console.log(`line read: ${data}`)
  }
}

Property Details

clearEnvironment: bool

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.

command: list<string>

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.

ℹ️
You can use ["sh", "-c", <your command>] to execute your command with the system shell.

environment: unknown

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",
})
ℹ️
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.

manageLifetime: bool

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.

⚠️
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.
[readonly]

processId: variant

The process ID of the running process or null if running is false.

running: bool

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.

stdinEnabled: bool

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.

workingDirectory: string

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.

Function Details

void signal(signal: int)

Sends a signal to the process if running is true, otherwise does nothing.

void write(data: string)

Writes to the process’s stdin. Does nothing if running is false.

Signal Details

exited(exitCode: int, exitStatus: unknown)

No details provided.

started()

No details provided.