Check the installed Quickshell.iconPath overloads before adding fallback behavior.
An icon name still depends on the active icon theme.
FileView and JsonAdapter
JsonAdapter is an adapter owned by FileView.
It does not have a path property and does not infer arbitrary properties from a JSON file.
Declare the adapter properties explicitly.
Read the installed FileView and JsonAdapter pages before enabling writes.
Writing configuration requires an explicit save policy and data-loss handling.
Reload state
PersistentProperties carries declared properties across a Quickshell configuration reload.
It does not provide durable persistence across process restarts.
Use its documented reloadableId behavior and do not describe it as disk storage.
IPC
IpcHandler exposes explicitly typed functions, properties, and signals through qs ipc.
import Quickshell.Io
IpcHandler {
target: "mybar"
function setText(value: string): void {
label.text = value
}
signal changed(value: string)
}
Inspect registrations with qs ipc show.
Call functions with qs ipc call mybar setText "value".
Observe exported signals with the installed CLI's qs ipc wait or qs ipc listen commands.
Do not invent an IpcHandler.ipcBus singleton or use Connections as cross-process IPC.
Function argument and return types must be explicit and supported by the installed version.
# Resources and I/O
Verify these APIs against the installed-version type pages before using them.
## Paths
- `Qt.resolvedUrl("asset.png")` resolves relative to the current QML file.
- `Quickshell.cachePath(...)`, `dataPath(...)`, and `statePath(...)` return shell-specific paths when exposed by the installed version.
- `Quickshell.env("NAME")` reads an environment variable.
Choose cache, data, and state according to XDG semantics.
Do not claim that a path helper itself persists QML properties.
## Icons
```qml
import Quickshell.Widgets
IconImage {
source: Quickshell.iconPath("audio-volume-high-symbolic")
implicitSize: 24
}
```
Check the installed `Quickshell.iconPath` overloads before adding fallback behavior.
An icon name still depends on the active icon theme.
## FileView and JsonAdapter
`JsonAdapter` is an adapter owned by `FileView`.
It does not have a `path` property and does not infer arbitrary properties from a JSON file.
Declare the adapter properties explicitly.
```qml
import Quickshell.Io
FileView {
path: Qt.resolvedUrl("config.json")
watchChanges: true
onFileChanged: reload()
JsonAdapter {
property string accent: "blue"
}
}
```
Read the installed `FileView` and `JsonAdapter` pages before enabling writes.
Writing configuration requires an explicit save policy and data-loss handling.
## Reload state
`PersistentProperties` carries declared properties across a Quickshell configuration reload.
It does not provide durable persistence across process restarts.
Use its documented `reloadableId` behavior and do not describe it as disk storage.
## IPC
`IpcHandler` exposes explicitly typed functions, properties, and signals through `qs ipc`.
```qml
import Quickshell.Io
IpcHandler {
target: "mybar"
function setText(value: string): void {
label.text = value
}
signal changed(value: string)
}
```
- Inspect registrations with `qs ipc show`.
- Call functions with `qs ipc call mybar setText "value"`.
- Observe exported signals with the installed CLI's `qs ipc wait` or `qs ipc listen` commands.
- Do not invent an `IpcHandler.ipcBus` singleton or use `Connections` as cross-process IPC.
Function argument and return types must be explicit and supported by the installed version.