added unnecessary stuff to gitignore

This commit is contained in:
Xanazf 2024-09-28 02:59:02 +03:00
parent 0969bc72ec
commit 7aa68e4b64
222 changed files with 5 additions and 15443 deletions

5
.gitignore vendored
View file

@ -5,6 +5,7 @@ dist/
# dependencies
node_modules/
.yarn/
# logs
npm-debug.log*
@ -22,3 +23,7 @@ pnpm-debug.log*
# jetbrains setting folder
.idea/
.vscode/
modules/
modules_old/

View file

@ -1,4 +0,0 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

11
.vscode/launch.json vendored
View file

@ -1,11 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

Binary file not shown.

View file

@ -1,31 +0,0 @@
{
"name": "DBusMenuHandle",
"module": "Quickshell.DBusMenu",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Handle to a DBusMenu tree.",
"details": "Handle to a menu tree provided by a remote process.\n",
"flags": [
"uncreatable"
],
"properties": {
"menu": {
"type": {
"type": "local",
"module": "Quickshell.DBusMenu",
"name": "DBusMenuItem"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,49 +0,0 @@
{
"name": "DBusMenuItem",
"module": "Quickshell.DBusMenu",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuEntry"
},
"description": "Menu item shared by an external program.",
"details": "Menu item shared by an external program via the\n[DBusMenu specification](https://github.com/AyatanaIndicators/libdbusmenu/blob/master/libdbusmenu-glib/dbus-menu.xml).\n",
"flags": [
"uncreatable"
],
"properties": {
"menuHandle": {
"type": {
"type": "local",
"module": "Quickshell.DBusMenu",
"name": "DBusMenuHandle"
},
"details": "Handle to the root of this menu.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "updateLayout",
"id": "updateLayout",
"details": "Refreshes the menu contents.\n\nUsually you shouldn't need to call this manually but some applications providing\nmenus do not update them correctly. Call this if menus don't update their state.\n\nThe TYPE99VlayoutUpdated99Tsignal99TYPE signal will be sent when a response is received.\n",
"params": []
}
],
"signals": {
"layoutUpdated": {
"name": "layoutUpdated",
"details": null,
"params": []
}
},
"variants": {}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.DBusMenu",
"description": "Types related to DBusMenu (used in system tray)",
"details": ""
}

View file

@ -1,71 +0,0 @@
{
"name": "GlobalShortcut",
"module": "Quickshell.Hyprland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Hyprland global shortcut.",
"details": "Global shortcut implemented with [hyprland_global_shortcuts_v1].\n\nYou can use this within hyprland as a global shortcut:\n```\nbind = <modifiers>, <key>, global, <appid>:<name>\n```\nSee [the wiki] for details.\n\n> [!WARNING] The shortcuts protocol does not allow duplicate appid + name pairs.\n> Within a single instance of quickshell this is handled internally, and both\n> users will be notified, but multiple instances of quickshell or XDPH may collide.\n>\n> If that happens, whichever client that tries to register the shortcuts last will crash.\n\n> [!NOTE] This type does *not* use the xdg-desktop-portal global shortcuts protocol,\n> as it is not fully functional without flatpak and would cause a considerably worse\n> user experience from other limitations. It will only work with Hyprland.\n> Note that, as this type bypasses xdg-desktop-portal, XDPH is not required.\n\n[hyprland_global_shortcuts_v1]: https://github.com/hyprwm/hyprland-protocols/blob/main/protocols/hyprland-global-shortcuts-v1.xml\n[the wiki]: https://wiki.hyprland.org/Configuring/Binds/#dbus-global-shortcuts\n",
"properties": {
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The name of the shortcut.\nYou cannot change this at runtime.\n"
},
"pressed": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the keybind is currently pressed.\n",
"flags": [
"readonly"
]
},
"triggerDescription": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Have not seen this used ever, but included for completeness. Safe to ignore.\n"
},
"description": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The description of the shortcut that appears in `hyprctl globalshortcuts`.\nYou cannot change this at runtime.\n"
},
"appid": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The appid of the shortcut. Defaults to `quickshell`.\nYou cannot change this at runtime.\n\nIf you have more than one shortcut we recommend subclassing\nGlobalShortcut to set this.\n"
}
},
"functions": [],
"signals": {
"pressed": {
"name": "pressed",
"details": "Fired when the keybind is pressed.\n",
"params": []
},
"released": {
"name": "released",
"details": "Fired when the keybind is released.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,163 +0,0 @@
{
"name": "Hyprland",
"module": "Quickshell.Hyprland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": null,
"flags": [
"singleton"
],
"properties": {
"focusedMonitor": {
"type": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandMonitor"
},
"details": "The currently focused hyprland monitor. May be null.\n",
"flags": [
"readonly"
]
},
"requestSocketPath": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Path to the request socket (.socket.sock)\n",
"flags": [
"readonly"
]
},
"monitors": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandMonitor"
}
},
"details": "All hyprland monitors.\n",
"flags": [
"readonly"
]
},
"eventSocketPath": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Path to the event socket (.socket2.sock)\n",
"flags": [
"readonly"
]
},
"workspaces": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandWorkspace"
}
},
"details": "All hyprland workspaces.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "dispatch",
"id": "dispatch",
"details": "Execute a hyprland [dispatcher](https://wiki.hyprland.org/Configuring/Dispatchers).\n",
"params": [
{
"name": "request",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandMonitor"
},
"name": "monitorFor",
"id": "monitorFor",
"details": "Get the HyprlandMonitor object that corrosponds to a quickshell screen.\n",
"params": [
{
"name": "screen",
"type": {
"type": "local",
"module": "Quickshell",
"name": "ShellScreen"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "refreshMonitors",
"id": "refreshMonitors",
"details": "Refresh monitor information.\n\nMany actions that will invalidate monitor state don't send events,\nso this function is available if required.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "refreshWorkspaces",
"id": "refreshWorkspaces",
"details": "Refresh workspace information.\n\nMany actions that will invalidate workspace state don't send events,\nso this function is available if required.\n",
"params": []
}
],
"signals": {
"rawEvent": {
"name": "rawEvent",
"details": "Emitted for every event that comes in through the hyprland event socket (socket2).\n\nSee [Hyprland Wiki: IPC](https://wiki.hyprland.org/IPC/) for a list of events.\n",
"params": [
{
"name": "event",
"type": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandEvent"
}
}
]
}
},
"variants": {}
}

View file

@ -1,68 +0,0 @@
{
"name": "HyprlandEvent",
"module": "Quickshell.Hyprland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Live Hyprland IPC event.",
"details": "Live Hyprland IPC event. Holding this object after the\nsignal handler exits is undefined as the event instance\nis reused.\n\nEmitted by TYPE99MQS_Quickshell_Hyprland99NHyprland99VrawEvent99Tsignal99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The name of the event.\n\nSee [Hyprland Wiki: IPC](https://wiki.hyprland.org/IPC/) for a list of events.\n",
"flags": [
"readonly"
]
},
"data": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The unparsed data of the event.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"name": "parse",
"id": "parse",
"details": "Parse this event with a known number of arguments.\n\nArgument count is required as some events can contain commas\nin the last argument, which can be ignored as long as the count is known.\n",
"params": [
{
"name": "argumentCount",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
}
],
"signals": {},
"variants": {}
}

View file

@ -1,44 +0,0 @@
{
"name": "HyprlandFocusGrab",
"module": "Quickshell.Hyprland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Input focus grabber",
"details": "Object for managing input focus grabs via the [hyprland_focus_grab_v1]\nwayland protocol.\n\nWhen enabled, all of the windows listed in the `windows` property will\nreceive input normally, and will retain keyboard focus even if the mouse\nis moved off of them. When areas of the screen that are not part of a listed\nwindow are clicked or touched, the grab will become inactive and emit the\ncleared signal.\n\nThis is useful for implementing dismissal of popup type windows.\n```qml\nimport Quickshell\nimport Quickshell.Hyprland\nimport QtQuick.Controls\n\nShellRoot {\n FloatingWindow {\n id: window\n\n Button {\n anchors.centerIn: parent\n text: grab.active ? \"Remove exclusive focus\" : \"Take exclusive focus\"\n onClicked: grab.active = !grab.active\n }\n\n HyprlandFocusGrab {\n id: grab\n windows: [ window ]\n }\n }\n}\n```\n\n[hyprland_focus_grab_v1]: https://github.com/hyprwm/hyprland-protocols/blob/main/protocols/hyprland-global-shortcuts-v1.xml\n",
"properties": {
"active": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the focus grab is active. Defaults to false.\n\nWhen set to true, an input grab will be created for the listed windows.\n\nThis property will change to false once the grab is dismissed.\nIt will not change to true until the grab begins, which requires\nat least one visible window.\n"
},
"windows": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
"details": "The list of windows to whitelist for input.\n"
}
},
"functions": [],
"signals": {
"cleared": {
"name": "cleared",
"details": "Sent whenever the compositor clears the focus grab.\n\nThis may be in response to all windows being removed\nfrom the list or simultaneously hidden, in addition to\na normal clear.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,130 +0,0 @@
{
"name": "HyprlandMonitor",
"module": "Quickshell.Hyprland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": null,
"flags": [
"uncreatable"
],
"properties": {
"x": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
},
"y": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
},
"scale": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
},
"height": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
},
"lastIpcObject": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "Last json returned for this monitor, as a javascript object.\n\n> [!WARNING] This is *not* updated unless the monitor object is fetched again from\n> Hyprland. If you need a value that is subject to change and does not have a dedicated\n> property, run TYPE99MQS_Quickshell_Hyprland99NHyprland99VrefreshMonitors99Tfunc99TYPE and wait for this property to update.\n",
"flags": [
"readonly"
]
},
"description": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"activeWorkspace": {
"type": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandWorkspace"
},
"details": "The currently active workspace on this monitor. May be null.\n",
"flags": [
"readonly"
]
},
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"width": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,64 +0,0 @@
{
"name": "HyprlandWorkspace",
"module": "Quickshell.Hyprland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": null,
"flags": [
"uncreatable"
],
"properties": {
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
},
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"monitor": {
"type": {
"type": "local",
"module": "Quickshell.Hyprland",
"name": "HyprlandMonitor"
},
"details": null,
"flags": [
"readonly"
]
},
"lastIpcObject": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "Last json returned for this workspace, as a javascript object.\n\n> [!WARNING] This is *not* updated unless the workspace object is fetched again from\n> Hyprland. If you need a value that is subject to change and does not have a dedicated\n> property, run TYPE99MQS_Quickshell_Hyprland99NHyprland99VrefreshWorkspaces99Tfunc99TYPE and wait for this property to update.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Hyprland",
"description": "Hyprland specific Quickshell types",
"details": ""
}

View file

@ -1,28 +0,0 @@
{
"name": "DataStream",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Data source that can be streamed into a parser.",
"details": "See also: TYPE99MQS_Quickshell_Io99NDataStreamParser99TYPE\n",
"flags": [
"uncreatable"
],
"properties": {
"parser": {
"type": {
"type": "local",
"module": "Quickshell.Io",
"name": "DataStreamParser"
},
"details": "The parser to stream data from this source into.\nIf the parser is null no data will be read.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,34 +0,0 @@
{
"name": "DataStreamParser",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Parser for streamed input data.",
"details": "See also: TYPE99MQS_Quickshell_Io99NDataStream99TYPE, TYPE99MQS_Quickshell_Io99NSplitParser99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {},
"functions": [],
"signals": {
"read": {
"name": "read",
"details": "Emitted when data is read from the stream.\n",
"params": [
{
"name": "data",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
}
},
"variants": {}
}

View file

@ -1,111 +0,0 @@
{
"name": "FileView",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Simplified reader for small files.",
"details": "A reader for small to medium files that don't need seeking/cursor access,\nsuitable for most text files.\n\n#### Example: Reading a JSON\n```qml\nFileView {\n id: jsonFile\n path: Qt.resolvedUrl(\"./your.json\")\n // Forces the file to be loaded by the time we call JSON.parse().\n // see blockLoading's property documentation for details.\n blockLoading: true\n}\n\nreadonly property var jsonData: JSON.parse(jsonFile.text())\n```\n",
"properties": {
"blockAllReads": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If TYPE99Vtext99Tfunc99TYPE and TYPE99Vdata99Tfunc99TYPE should block all operations while a file loads. Defaults to false.\n\nThis is nearly identical to TYPE99VblockLoading99Tprop99TYPE, but will additionally block when\na file is loaded and TYPE99Vpath99Tprop99TYPE changes.\n\n> [!WARNING] We cannot think of a valid use case for this.\n> You almost definitely want TYPE99VblockLoading99Tprop99TYPE.\n"
},
"blockLoading": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If TYPE99Vtext99Tfunc99TYPE and TYPE99Vdata99Tfunc99TYPE should block all operations until the file is loaded. Defaults to false.\n\nIf the file is already loaded, no blocking will occur.\nIf a file was loaded, and TYPE99Vpath99Tprop99TYPE was changed to a new file, no blocking will occur.\n\n> [!WARNING] Blocking operations should be used carefully to avoid stutters and other performance\n> degradations. Blocking means that your interface **WILL NOT FUNCTION** during the call.\n>\n> **We recommend you use a blocking load ONLY for files loaded before the windows of your shell\n> are loaded, which happens after `Component.onCompleted` runs for the root component of your shell.**\n>\n> The most reasonable use case would be to load things like configuration files that the program\n> must have available.\n"
},
"preload": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the file should be loaded in the background immediately when set. Defaults to true.\n\nThis may either increase or decrease the amount of time it takes to load the file\ndepending on how large the file is, how fast its storage is, and how you access its data.\n"
},
"loaded": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If a file is currently loaded, which may or may not be the one currently specified by TYPE99Vpath99Tprop99TYPE.\n\n> [!NOTE] If a file is loaded, TYPE99Vpath99Tprop99TYPE is changed, and a new file is loaded,\n> this property will stay true the whole time.\n> If TYPE99Vpath99Tprop99TYPE is set to an empty string to unload the file it will become false.\n",
"flags": [
"readonly"
]
},
"path": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The path to the file that should be read, or an empty string to unload the file.\n"
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"name": "blockUntilLoaded",
"id": "blockUntilLoaded",
"details": "Block all operations until the currently running load completes.\n\n> [!WARNING] See TYPE99VblockLoading99Tprop99TYPE for an explanation and warning about blocking.\n",
"params": []
},
{
"ret": {
"type": "unknown",
"module": "",
"name": ""
},
"name": "data",
"id": "data",
"details": "Returns the data of the file specified by TYPE99Vpath99Tprop99TYPE as an [ArrayBuffer].\n\nIf TYPE99VblockAllReads99Tprop99TYPE is true, all changes to TYPE99Vpath99Tprop99TYPE will cause the program to block\nwhen this function is called.\n\nIf TYPE99VblockLoading99Tprop99TYPE is true, reading this property before the file has been loaded\nwill block, but changing TYPE99Vpath99Tprop99TYPE or calling TYPE99Vreload99Tfunc99TYPE will return the old data\nuntil the load completes.\n\nIf neither is true, an empty buffer will be returned if no file is loaded,\notherwise it will behave as in the case above.\n\n> [!NOTE] Due to technical limitations, TYPE99Vdata99Tfunc99TYPE could not be a property,\n> however you can treat it like a property, it will trigger property updates\n> as a property would, and the signal `dataChanged()` is present.\n\n[ArrayBuffer]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "reload",
"id": "reload",
"details": "Unload the loaded file and reload it, usually in response to changes.\n\nThis will not block if TYPE99VblockLoading99Tprop99TYPE is set, only if TYPE99VblockAllReads99Tprop99TYPE is true.\nIt acts the same as changing TYPE99Vpath99Tprop99TYPE to a new file, except loading the same file.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "text",
"id": "text",
"details": "Returns the data of the file specified by TYPE99Vpath99Tprop99TYPE as text.\n\nIf TYPE99VblockAllReads99Tprop99TYPE is true, all changes to TYPE99Vpath99Tprop99TYPE will cause the program to block\nwhen this function is called.\n\nIf TYPE99VblockLoading99Tprop99TYPE is true, reading this property before the file has been loaded\nwill block, but changing TYPE99Vpath99Tprop99TYPE or calling TYPE99Vreload99Tfunc99TYPE will return the old data\nuntil the load completes.\n\nIf neither is true, an empty string will be returned if no file is loaded,\notherwise it will behave as in the case above.\n\n> [!NOTE] Due to technical limitations, TYPE99Vtext99Tfunc99TYPE could not be a property,\n> however you can treat it like a property, it will trigger property updates\n> as a property would, and the signal `textChanged()` is present.\n",
"params": []
}
],
"signals": {
"loadFailed": {
"name": "loadFailed",
"details": "! Fires if the file failed to load. A warning will be printed in the log.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,174 +0,0 @@
{
"name": "Process",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Child process.",
"details": "#### Example\n```qml\nProcess {\n running: true\n command: [ \"some-command\", \"arg\" ]\n stdout: SplitParser {\n onRead: data => console.log(`line read: ${data}`)\n }\n}\n```\n",
"properties": {
"workingDirectory": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The working directory of the process. Defaults to [quickshell's working directory].\n\nIf the process is already running changing this property will affect the next\nstarted process. If the property has been changed after starting a process it will\nreturn the new value, not the one for the currently running process.\n\n[quickshell's working directory]: ../../quickshell/quickshell#prop.workingDirectory\n"
},
"command": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "The command to execute. Each argument is its own string, which means you don't have\nto deal with quoting anything.\n\nIf the process is already running changing this property will affect the next\nstarted process. If the property has been changed after starting a process it will\nreturn the new value, not the one for the currently running process.\n\n> [!NOTE] You can use `[\"sh\", \"-c\", <your command>]` to execute your command with\n> the system shell.\n"
},
"manageLifetime": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the process should be killed when the Process object is destroyed or quickshell exits.\nDefaults to true.\n\nThis property may be changed while the process is running and will affect it.\n\n> [!WARNING] If set to false the process will still be killed if the quickshell config reloads.\n> It will not be killed if quickshell exits normally or crashes.\n"
},
"environment": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "Environment of the executed process.\n\nThis is a javascript object (json). Environment variables can be added by setting\nthem to a string and removed by setting them to null (except when TYPE99VclearEnvironment99Tprop99TYPE is true,\nin which case this behavior is inverted, see TYPE99VclearEnvironment99Tprop99TYPE for details).\n\n\n```qml\nenvironment: ({\n ADDED: \"value\",\n REMOVED: null,\n \"i'm different\": \"value\",\n})\n```\n\n> [!NOTE] You need to wrap the returned object in () otherwise it won't parse due to javascript ambiguity.\n\nIf the process is already running changing this property will affect the next\nstarted process. If the property has been changed after starting a process it will\nreturn the new value, not the one for the currently running process.\n"
},
"stdinEnabled": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If stdin is enabled. Defaults to false. If this property is false the process's stdin channel\nwill be closed and TYPE99Vwrite99Tfunc99TYPE will do nothing, even if set back to true.\n"
},
"processId": {
"type": {
"type": "qt",
"module": "qml",
"name": "variant"
},
"details": "The process ID of the running process or `null` if TYPE99Vrunning99Tprop99TYPE is false.\n",
"flags": [
"readonly"
]
},
"clearEnvironment": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the process's environment should be cleared prior to applying TYPE99Venvironment99Tprop99TYPE.\nDefaults to false.\n\nIf true, all environment variables will be removed before the TYPE99Venvironment99Tprop99TYPE\nobject is applied, meaning the variables listed will be the only ones visible to the process.\nThis changes the behavior of `null` to pass in the system value of the variable if present instead\nof removing it.\n\n```qml\nclearEnvironment: true\nenvironment: ({\n ADDED: \"value\",\n PASSED_FROM_SYSTEM: null,\n})\n```\n\nIf the process is already running changing this property will affect the next\nstarted process. If the property has been changed after starting a process it will\nreturn the new value, not the one for the currently running process.\n"
},
"stdout": {
"type": {
"type": "local",
"module": "Quickshell.Io",
"name": "DataStreamParser"
},
"details": "The parser for stdout. If the parser is null the process's stdout channel will be closed\nand no further data will be read, even if a new parser is attached.\n"
},
"stderr": {
"type": {
"type": "local",
"module": "Quickshell.Io",
"name": "DataStreamParser"
},
"details": "The parser for stderr. If the parser is null the process's stdout channel will be closed\nand no further data will be read, even if a new parser is attached.\n"
},
"running": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the process is currently running. Defaults to false.\n\nSetting this property to true will start the process if command has at least\none element.\nSetting it to false will send SIGTERM. To immediately kill the process,\nuse TYPE99Vsignal99Tfunc99TYPE with SIGKILL. The process will be killed when\nquickshell dies.\n\nIf you want to run the process in a loop, use the onRunningChanged signal handler\nto restart the process.\n```qml\nProcess {\n running: true\n onRunningChanged: if (!running) running = true\n}\n```\n"
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "signal",
"id": "signal",
"details": "Sends a signal to the process if TYPE99Vrunning99Tprop99TYPE is true, otherwise does nothing.\n",
"params": [
{
"name": "signal",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "write",
"id": "write",
"details": "Writes to the process's stdin. Does nothing if TYPE99Vrunning99Tprop99TYPE is false.\n",
"params": [
{
"name": "data",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
}
],
"signals": {
"exited": {
"name": "exited",
"details": null,
"params": [
{
"name": "exitCode",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
},
{
"name": "exitStatus",
"type": {
"type": "unknown",
"module": "",
"name": ""
}
}
]
},
"started": {
"name": "started",
"details": null,
"params": []
}
},
"variants": {}
}

View file

@ -1,80 +0,0 @@
{
"name": "Socket",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell.Io",
"name": "DataStream"
},
"description": "Unix socket listener.",
"details": "",
"properties": {
"path": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The path to connect this socket to when TYPE99Vconnected99Tprop99TYPE is set to true.\n\nChanging this property will have no effect while the connection is active.\n"
},
"connected": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "Returns if the socket is currently connected.\n\nWriting to this property will set the target connection state and will not\nupdate the property immediately. Setting the property to false will begin disconnecting\nthe socket, and setting it to true will begin connecting the socket if path is not empty.\n"
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "flush",
"id": "flush",
"details": "Flush any queued writes to the socket.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "write",
"id": "write",
"details": "Write data to the socket. Does nothing if not connected.\n\nRemember to call flush after your last write.\n",
"params": [
{
"name": "data",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
}
],
"signals": {
"error": {
"name": "error",
"details": "This signal is sent whenever a socket error is encountered.\n",
"params": [
{
"name": "error",
"type": {
"type": "unknown",
"module": "",
"name": ""
}
}
]
}
},
"variants": {}
}

View file

@ -1,41 +0,0 @@
{
"name": "SocketServer",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Unix socket server.",
"details": "#### Example\n```qml\nSocketServer {\n active: true\n path: \"/path/too/socket.sock\"\n handler: Socket {\n onConnectedChanged: {\n console.log(connected ? \"new connection!\" : \"connection dropped!\")\n }\n parser: SplitParser {\n onRead: message => console.log(`read message from socket: ${message}`)\n }\n }\n}\n```\n",
"properties": {
"active": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the socket server is currently active. Defaults to false.\n\nSetting this to false will destory all active connections and delete\nthe socket file on disk.\n\nIf path is empty setting this property will have no effect.\n"
},
"handler": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "Component"
},
"details": "Connection handler component. Must creeate a TYPE99MQS_Quickshell_Io99NSocket99TYPE.\n\nThe created socket should not set TYPE99Vconnected99Tprop99TYPE or TYPE99Vpath99Tprop99TYPE or the incoming\nsocket connection will be dropped (they will be set by the socket server.)\nSetting `connected` to false on the created socket after connection will\nclose and delete it.\n"
},
"path": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The path to create the socket server at.\n\nSetting this property while the server is active will have no effect.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,25 +0,0 @@
{
"name": "SplitParser",
"module": "Quickshell.Io",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell.Io",
"name": "DataStreamParser"
},
"description": "Parser for delimited data streams.",
"details": "Parser for delimited data streams. TYPE99Vread99Tfunc99TYPE is emitted once per delimited chunk of the stream.\n",
"properties": {
"splitMarker": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The delimiter for parsed data. May be multiple characters. Defaults to `\\n`.\n\nIf the delimiter is empty read lengths may be arbitrary (whatever is returned by the\nunderlying read call.)\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Io",
"description": "Io types",
"details": ""
}

View file

@ -1,291 +0,0 @@
{
"name": "Greetd",
"module": "Quickshell.Services.Greetd",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": "This object provides access to a running greetd instance if present.\nWith it you can authenticate a user and launch a session.\n\nSee [the greetd wiki] for instructions on how to set up a graphical greeter.\n\n[the greetd wiki]: https://man.sr.ht/~kennylevinsen/greetd/#setting-up-greetd-with-gtkgreet\n",
"flags": [
"singleton"
],
"properties": {
"state": {
"type": {
"type": "local",
"module": "Quickshell.Services.Greetd",
"name": "GreetdState"
},
"details": "The current state of the greetd connection.\n",
"flags": [
"readonly"
]
},
"available": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the greetd socket is available.\n",
"flags": [
"readonly"
]
},
"user": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The currently authenticating user.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "cancelSession",
"id": "cancelSession",
"details": "Cancel the active greetd session.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "createSession",
"id": "createSession",
"details": "Create a greetd session for the given user.\n",
"params": [
{
"name": "user",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "launch",
"id": "launch",
"details": "Launch the session, exiting quickshell.\nTYPE99Vstate99Tprop99TYPE must be `GreetdState.ReadyToLaunch` to call this function.\n",
"params": [
{
"name": "command",
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "launch",
"id": "launch",
"details": "Launch the session, exiting quickshell.\nTYPE99Vstate99Tprop99TYPE must be `GreetdState.ReadyToLaunch` to call this function.\n",
"params": [
{
"name": "command",
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
},
{
"name": "environment",
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "launch",
"id": "launch",
"details": "Launch the session, exiting quickshell if TYPE99Vquit99Tprop99TYPE is true.\nTYPE99Vstate99Tprop99TYPE must be `GreetdState.ReadyToLaunch` to call this function.\n\nThe TYPE99Vlaunched99Tprop99TYPE signal can be used to perform an action after greetd has acknowledged\nthe desired session.\n\n> [!WARNING] Note that greetd expects the greeter to terminate as soon as possible\n> after setting a target session, and waiting too long may lead to unexpected behavior\n> such as the greeter restarting.\n>\n> Performing animations and such should be done *before* calling TYPE99Vlaunch99Tprop99TYPE.\n",
"params": [
{
"name": "command",
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
},
{
"name": "environment",
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
},
{
"name": "quit",
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "respond",
"id": "respond",
"details": "Respond to an authentication message.\n\nMay only be called in response to an TYPE99VauthMessage99Tsignal99TYPE with `responseRequired` set to true.\n",
"params": [
{
"name": "response",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
}
],
"signals": {
"launched": {
"name": "launched",
"details": "Greetd has acknowledged the launch request and the greeter should quit as soon as possible.\n\nThis signal is sent right before quickshell exits automatically if the launch was not specifically\nrequested not to exit. You usually don't need to use this signal.\n",
"params": []
},
"error": {
"name": "error",
"details": "Greetd has encountered an error.\n",
"params": [
{
"name": "error",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
"authFailure": {
"name": "authFailure",
"details": "Authentication has failed an the session has terminated.\n\nUsually this is something like a timeout or a failed password entry.\n",
"params": [
{
"name": "message",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
"readyToLaunch": {
"name": "readyToLaunch",
"details": "Authentication has finished successfully and greetd can now launch a session.\n",
"params": []
},
"authMessage": {
"name": "authMessage",
"details": "An authentication message has been sent by greetd.\n- `message` - the text of the message\n- `error` - if the message should be displayed as an error\n- `responseRequired` - if a response via `respond()` is required for this message\n- `echoResponse` - if the response should be displayed in clear text to the user\n\nNote that `error` and `responseRequired` are mutually exclusive.\n\nErrors are sent through `authMessage` when they are recoverable, such as a fingerprint scanner\nnot being able to read a finger correctly, while definite failures such as a bad password are\nsent through `authFailure`.\n",
"params": [
{
"name": "message",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
{
"name": "error",
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
}
},
{
"name": "responseRequired",
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
}
},
{
"name": "echoResponse",
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
}
}
]
}
},
"variants": {}
}

View file

@ -1,56 +0,0 @@
{
"name": "GreetdState",
"module": "Quickshell.Services.Greetd",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "State of the Greetd connection.",
"details": "See TYPE99MQS_Quickshell_Services_Greetd99NGreetd99Vstate99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Greetd",
"name": "GreetdState"
}
}
]
}
],
"signals": {},
"variants": {
"Authenticating": {
"details": null
},
"Launched": {
"details": null
},
"Launching": {
"details": null
},
"Inactive": {
"details": null
},
"ReadyToLaunch": {
"details": null
}
}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.Greetd",
"description": "Greetd integration",
"details": ""
}

View file

@ -1,36 +0,0 @@
{
"name": "Mpris",
"module": "Quickshell.Services.Mpris",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": null,
"flags": [
"singleton"
],
"properties": {
"players": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisPlayer"
}
},
"details": "All connected MPRIS players.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,50 +0,0 @@
{
"name": "MprisLoopState",
"module": "Quickshell.Services.Mpris",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Loop state of an MprisPlayer",
"details": "See TYPE99MQS_Quickshell_Services_Mpris99NMprisPlayer99VloopState99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "status",
"type": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisLoopState"
}
}
]
}
],
"signals": {},
"variants": {
"Playlist": {
"details": null
},
"Track": {
"details": null
},
"None": {
"details": null
}
}
}

View file

@ -1,50 +0,0 @@
{
"name": "MprisPlaybackState",
"module": "Quickshell.Services.Mpris",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Playback state of an MprisPlayer",
"details": "See TYPE99MQS_Quickshell_Services_Mpris99NMprisPlayer99VplaybackState99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "status",
"type": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisPlaybackState"
}
}
]
}
],
"signals": {},
"variants": {
"Paused": {
"details": null
},
"Stopped": {
"details": null
},
"Playing": {
"details": null
}
}
}

View file

@ -1,539 +0,0 @@
{
"name": "MprisPlayer",
"module": "Quickshell.Services.Mpris",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A media player exposed over MPRIS.",
"details": "A media player exposed over MPRIS.\n\n> [!WARNING] Support for various functionality and general compliance to\n> the MPRIS specification varies wildly by player.\n> Always check the associated `canXyz` and `xyzSupported` properties if available.\n\n> [!NOTE] The TrackList and Playlist interfaces were not implemented as we could not\n> find any media players using them to test against.\n",
"flags": [
"uncreatable"
],
"properties": {
"trackArtUrl": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The current track's art url, or `\"\"` if none was provided.\n",
"flags": [
"readonly"
]
},
"playbackState": {
"type": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisPlaybackState"
},
"details": "The playback state of the media player.\n\n- If TYPE99VcanPlay99Tprop99TYPE is false, you cannot assign the `Playing` state.\n- If TYPE99VcanPause99Tprop99TYPE is false, you cannot assign the `Paused` state.\n- If TYPE99VcanControl99Tprop99TYPE is false, you cannot assign the `Stopped` state.\n(or any of the others, though their repsective properties will also be false)\n"
},
"canSeek": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"trackAlbumArtist": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The current track's album artist, or \"Unknown Artist\" if none was provided.\n",
"flags": [
"readonly"
]
},
"length": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The length of the playing track, as seconds, with millisecond precision,\nor the value of TYPE99Vposition99Tprop99TYPE if TYPE99VlengthSupported99Tprop99TYPE is false.\n",
"flags": [
"readonly"
]
},
"trackTitle": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The title of the current track, or \"Unknown Track\" if none was provided.\n",
"flags": [
"readonly"
]
},
"identity": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The human readable name of the media player.\n",
"flags": [
"readonly"
]
},
"canGoPrevious": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"trackAlbum": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The current track's album, or \"Unknown Album\" if none was provided.\n",
"flags": [
"readonly"
]
},
"maxRate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
},
"canTogglePlaying": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"shuffleSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"lengthSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canQuit": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"volumeSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"desktopEntry": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The name of the desktop entry for the media player, or an empty string if not provided.\n",
"flags": [
"readonly"
]
},
"fullscreen": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the player is currently shown in fullscreen.\n\nMay only be written to if TYPE99VcanSetFullscreen99Tprop99TYPE is true.\n"
},
"shuffle": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the play queue is currently being shuffled, or false if TYPE99VshuffleSupported99Tprop99TYPE is false.\n\nMay only be written if TYPE99VcanControl99Tprop99TYPE and TYPE99VshuffleSupported99Tprop99TYPE are true.\n"
},
"loopState": {
"type": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisLoopState"
},
"details": "The loop state of the media player, or `None` if TYPE99VloopSupported99Tprop99TYPE is false.\n\nMay only be written to if TYPE99VcanControl99Tprop99TYPE and TYPE99VloopSupported99Tprop99TYPE are true.\n"
},
"volume": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The volume of the playing track from 0.0 to 1.0, or 1.0 if TYPE99VvolumeSupported99Tprop99TYPE is false.\n\nMay only be written to if TYPE99VcanControl99Tprop99TYPE and TYPE99VvolumeSupported99Tprop99TYPE are true.\n"
},
"canGoNext": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"supportedMimeTypes": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "Mime types supported by TYPE99VopenUri99Tfunc99TYPE.\n",
"flags": [
"readonly"
]
},
"canPlay": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canControl": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"metadata": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "Metadata of the current track.\n\nA map of common properties is available [here](https://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata).\nDo not count on any of them actually being present.\n\nNote that the TYPE99VtrackTitle99Tprop99TYPE, TYPE99VtrackAlbum99Tprop99TYPE, TYPE99VtrackAlbumArtist99Tprop99TYPE, TYPE99VtrackArtists99Tprop99TYPE and TYPE99VtrackArtUrl99Tprop99TYPE\nproperties have extra logic to guard against bad players sending weird metadata, and should\nbe used over grabbing the properties directly from the metadata.\n",
"flags": [
"readonly"
]
},
"rate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The speed the song is playing at, as a multiplier.\n\nOnly values between TYPE99VminRate99Tprop99TYPE and TYPE99VmaxRate99Tprop99TYPE (inclusive) may be written to the property.\nAdditionally, It is recommended that you only write common values such as `0.25`, `0.5`, `1.0`, `2.0`\nto the property, as media players are free to ignore the value, and are more likely to\naccept common ones.\n"
},
"supportedUriSchemes": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "Uri schemes supported by TYPE99VopenUri99Tfunc99TYPE.\n",
"flags": [
"readonly"
]
},
"trackArtists": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "The current track's artists, or an empty list if none were provided.\n",
"flags": [
"readonly"
]
},
"uniqueId": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "An opaque identifier for the current track unique within the current player.\n\n> [!WARNING] This is NOT `mpris:trackid` as that is sometimes missing or nonunique\n> in some players.\n",
"flags": [
"readonly"
]
},
"loopSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"position": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The current position in the playing track, as seconds, with millisecond precision,\nor `0` if TYPE99VpositionSupported99Tprop99TYPE is false.\n\nMay only be written to if TYPE99VcanSeek99Tprop99TYPE and TYPE99VpositionSupported99Tprop99TYPE are true.\n\n> [!WARNING] To avoid excessive property updates wasting CPU while `position` is not\n> actively monitored, `position` usually will not update reactively, unless a nonlinear\n> change in position occurs, however reading it will always return the current position.\n>\n> If you want to actively monitor the position, the simplest way it to emit the TYPE99VpositionChanged99Tsignal99TYPE\n> signal manually for the duration you are monitoring it, Using a TYPE99MQT_qml_QtQuick99NFrameAnimation99TYPE if you need\n> the value to update smoothly, such as on a slider, or a TYPE99MQT_qml_QtQuick99NTimer99TYPE if not, as shown below.\n>\n> ```qml {filename=\"Using a FrameAnimation\"}\n> FrameAnimation {\n> // only emit the signal when the position is actually changing.\n> running: player.playbackState == MprisPlaybackState.Playing\n> // emit the positionChanged signal every frame.\n> onTriggered: player.positionChanged()\n> }\n> ```\n>\n> ```qml {filename=\"Using a Timer\"}\n> Timer {\n> // only emit the signal when the position is actually changing.\n> running: player.playbackState == MprisPlaybackState.Playing\n> // Make sure the position updates at least once per second.\n> interval: 1000\n> repeat: true\n> // emit the positionChanged signal every second.\n> onTriggered: player.positionChanged()\n> }\n> ```\n"
},
"canRaise": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"positionSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"minRate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
},
"canPause": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canSetFullscreen": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "next",
"id": "next",
"details": "Play the next song.\n\nMay only be called if TYPE99VcanGoNext99Tprop99TYPE is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "openUri",
"id": "openUri",
"details": "Open the given URI in the media player.\n\nMany players will silently ignore this, especially if the uri\ndoes not match TYPE99VsupportedUriSchemes99Tprop99TYPE and TYPE99VsupportedMimeTypes99Tprop99TYPE.\n",
"params": [
{
"name": "uri",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "pause",
"id": "pause",
"details": "Equivalent to setting TYPE99VplaybackState99Tprop99TYPE to `Paused`.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "play",
"id": "play",
"details": "Equivalent to setting TYPE99VplaybackState99Tprop99TYPE to `Playing`.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "previous",
"id": "previous",
"details": "Play the previous song, or go back to the beginning of the current one.\n\nMay only be called if TYPE99VcanGoPrevious99Tprop99TYPE is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "quit",
"id": "quit",
"details": "Quit the media player.\n\nMay only be called if TYPE99VcanQuit99Tprop99TYPE is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "raise",
"id": "raise",
"details": "Bring the media player to the front of the window stack.\n\nMay only be called if TYPE99VcanRaise99Tprop99TYPE is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "seek",
"id": "seek",
"details": "Change `position` by an offset.\n\nEven if TYPE99VpositionSupported99Tprop99TYPE is false and you cannot set `position`,\nthis function may work.\n\nMay only be called if TYPE99VcanSeek99Tprop99TYPE is true.\n",
"params": [
{
"name": "offset",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "stop",
"id": "stop",
"details": "Equivalent to setting TYPE99VplaybackState99Tprop99TYPE to `Stopped`.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "togglePlaying",
"id": "togglePlaying",
"details": "Equivalent to calling TYPE99Vplay99Tfunc99TYPE if not playing or TYPE99Vpause99Tfunc99TYPE if playing.\n\nMay only be called if TYPE99VcanTogglePlaying99Tprop99TYPE is true, which is equivalent to\nTYPE99VcanPlay99Tprop99TYPE or TYPE99VcanPause99Tfunc99TYPE depending on the current playback state.\n",
"params": []
}
],
"signals": {},
"variants": {}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.Mpris",
"description": "Mpris Service",
"details": ""
}

View file

@ -1,236 +0,0 @@
{
"name": "Notification",
"module": "Quickshell.Services.Notifications",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A notification emitted by a NotificationServer.",
"details": "A notification emitted by a NotificationServer.\n\n> [!NOTE] This type is TYPE99MQS_Quickshell99NRetainable99TYPE. It\n> can be retained after destruction if necessary.\n",
"flags": [
"uncreatable"
],
"properties": {
"hasActionIcons": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If actions associated with this notification have icons available.\n\nSee TYPE99MQS_Quickshell_Services_Notifications99NNotificationAction99Videntifier99Tprop99TYPE for details.\n",
"flags": [
"readonly"
]
},
"expireTimeout": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Time in seconds the notification should be valid for\n",
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "Id of the notification as given to the client.\n",
"flags": [
"readonly"
]
},
"hints": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "All hints sent by the client application as a javascript object.\nMany common hints are exposed via other properties.\n",
"flags": [
"readonly"
]
},
"transient": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If true, the notification should skip any kind of persistence function like a notification area.\n",
"flags": [
"readonly"
]
},
"appName": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The sending application's name.\n",
"flags": [
"readonly"
]
},
"body": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"lastGeneration": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If this notification was carried over from the last generation\nwhen quickshell reloaded.\n\nNotifications from the last generation will only be emitted\nif TYPE99MQS_Quickshell_Services_Notifications99NNotificationServer99VkeepOnReload99Tprop99TYPE is true.\n",
"flags": [
"readonly"
]
},
"resident": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If true, the notification will not be destroyed after an action is invoked.\n",
"flags": [
"readonly"
]
},
"summary": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The image associated with this notification, or \"\" if none.\n",
"flags": [
"readonly"
]
},
"appIcon": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The sending application's icon. If none was provided, then the icon from an associated\ndesktop entry will be retrieved. If none was found then \"\".\n",
"flags": [
"readonly"
]
},
"actions": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "NotificationAction"
}
},
"details": "Actions that can be taken for this notification.\n",
"flags": [
"readonly"
]
},
"tracked": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the notification is tracked by the notification server.\n\nSetting this property to false is equivalent to calling TYPE99Vdismiss99Tfunc99TYPE.\n"
},
"urgency": {
"type": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "NotificationUrgency"
},
"details": null,
"flags": [
"readonly"
]
},
"desktopEntry": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The name of the sender's desktop entry or \"\" if none was supplied.\n",
"flags": [
"readonly"
]
},
"image": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "An image associated with the notification.\n\nThis image is often something like a profile picture in instant messaging applications.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "dismiss",
"id": "dismiss",
"details": "Destroy the notification and hint to the remote application that it was\nexplicitly closed by the user.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "expire",
"id": "expire",
"details": "Destroy the notification and hint to the remote application that it has\ntimed out an expired.\n",
"params": []
}
],
"signals": {
"closed": {
"name": "closed",
"details": "Sent when a notification has been closed.\n\nThe notification object will be destroyed as soon as all signal handlers exit.\n",
"params": [
{
"name": "reason",
"type": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "NotificationCloseReason"
}
}
]
}
},
"variants": {}
}

View file

@ -1,54 +0,0 @@
{
"name": "NotificationAction",
"module": "Quickshell.Services.Notifications",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "An action associated with a Notification.",
"details": "See TYPE99MQS_Quickshell_Services_Notifications99NNotification99Vactions99Tprop99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {
"identifier": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The identifier of the action.\n\nWhen TYPE99MQS_Quickshell_Services_Notifications99NNotification99VhasActionIcons99Tprop99TYPE is true, this property will be an icon name.\nWhen it is false, this property is irrelevant.\n",
"flags": [
"readonly"
]
},
"text": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The localized text that should be displayed on a button.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "invoke",
"id": "invoke",
"details": "Invoke the action. If TYPE99MQS_Quickshell_Services_Notifications99NNotification99Vresident99Tprop99TYPE is false it will be dismissed.\n",
"params": []
}
],
"signals": {},
"variants": {}
}

View file

@ -1,50 +0,0 @@
{
"name": "NotificationCloseReason",
"module": "Quickshell.Services.Notifications",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "The reason a Notification was closed.",
"details": "See TYPE99MQS_Quickshell_Services_Notifications99NNotification99Vclosed99Tsignal99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "NotificationCloseReason"
}
}
]
}
],
"signals": {},
"variants": {
"CloseRequested": {
"details": "The remote application requested the notification be removed.\n"
},
"Expired": {
"details": "The notification expired due to a timeout.\n"
},
"Dismissed": {
"details": "The notification was explicitly dismissed by the user.\n"
}
}
}

View file

@ -1,133 +0,0 @@
{
"name": "NotificationServer",
"module": "Quickshell.Services.Notifications",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Desktop Notifications Server.",
"details": "An implementation of the [Desktop Notifications Specification] for receiving notifications\nfrom external applications.\n\nThe server does not advertise most capabilities by default. See the individual properties for details.\n\n[Desktop Notifications Specification]: https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html\n",
"properties": {
"actionIconsSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notification actions should be advertised as supporting the display of icons. Defaults to false.\n"
},
"trackedNotifications": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "Notification"
}
},
"details": "All notifications currently tracked by the server.\n",
"flags": [
"readonly"
]
},
"bodyHyperlinksSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notification body text should be advertised as supporting hyperlinks as described in [the specification]\nDefaults to false.\n\nNote that returned notifications may still contain hyperlinks if this property is false, as it is only a hint.\n\n[the specification]: https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html#hyperlinks\n"
},
"extraHints": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "Extra hints to expose to notification clients.\n"
},
"bodySupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notification body text should be advertised as supported by the notification server.\nDefaults to true.\n\nNote that returned notifications are likely to return body text even if this property is false,\nas it is only a hint.\n"
},
"actionsSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notification actions should be advertised as supported by the notification server. Defaults to false.\n"
},
"bodyImagesSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notification body text should be advertised as supporting images as described in [the specification]\nDefaults to false.\n\nNote that returned notifications may still contain images if this property is false, as it is only a hint.\n\n[the specification]: https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html#images\n"
},
"bodyMarkupSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notification body text should be advertised as supporting markup as described in [the specification]\nDefaults to false.\n\nNote that returned notifications may still contain markup if this property is false,\nas it is only a hint. By default Text objects will try to render markup. To avoid this\nif any is sent, change TYPE99MQT_qml_QtQuick99NText99VtextFormat99Tprop99TYPE to `PlainText`.\n"
},
"imageSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the notification server should advertise that it supports images. Defaults to false.\n"
},
"keepOnReload": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If notifications should be re-emitted when quickshell reloads. Defaults to true.\n\nThe TYPE99MQS_Quickshell_Services_Notifications99NNotification99VlastGeneration99Tprop99TYPE flag will be\nset on notifications from the prior generation for further filtering/handling.\n"
},
"persistenceSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the notification server should advertise that it can persist notifications in the background\nafter going offscreen. Defaults to false.\n"
}
},
"functions": [],
"signals": {
"notification": {
"name": "notification",
"details": "Sent when a notification is received by the server.\n\nIf this notification should not be discarded, set its `tracked` property to true.\n",
"params": [
{
"name": "notification",
"type": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "Notification"
}
}
]
}
},
"variants": {}
}

View file

@ -1,50 +0,0 @@
{
"name": "NotificationUrgency",
"module": "Quickshell.Services.Notifications",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "The urgency level of a Notification.",
"details": "See TYPE99MQS_Quickshell_Services_Notifications99NNotification99Vurgency99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Notifications",
"name": "NotificationUrgency"
}
}
]
}
],
"signals": {},
"variants": {
"Low": {
"details": null
},
"Normal": {
"details": null
},
"Critical": {
"details": null
}
}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.Notifications",
"description": "Types for implementing a notification daemon",
"details": ""
}

View file

@ -1,170 +0,0 @@
{
"name": "PamContext",
"module": "Quickshell.Services.Pam",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Connection to pam.",
"details": "Connection to pam. See [the module documentation](../) for pam configuration advice.\n",
"properties": {
"user": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The user to authenticate as. If unset the current user will be used.\n\nThis property may not be set while TYPE99Vactive99Tprop99TYPE is true.\n"
},
"responseRequired": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If pam currently wants a response.\n\nResponses can be returned with the TYPE99Vrespond99Tfunc99TYPE function.\n",
"flags": [
"readonly"
]
},
"messageIsError": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the last message should be shown as an error.\n",
"flags": [
"readonly"
]
},
"active": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the pam context is actively performing an authentication.\n\nSetting this value behaves exactly the same as calling TYPE99Vstart99Tfunc99TYPE and TYPE99Vabort99Tfunc99TYPE.\n"
},
"configDirectory": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The pam configuration directory to use. Defaults to \"/etc/pam.d\".\n\nThe configuration directory is resolved relative to the current file if not an absolute path.\n\nThis property may not be set while TYPE99Vactive99Tprop99TYPE is true.\n"
},
"message": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The last message sent by pam.\n",
"flags": [
"readonly"
]
},
"config": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The pam configuration to use. Defaults to \"login\".\n\nThe configuration should name a file inside TYPE99VconfigDirectory99Tprop99TYPE.\n\nThis property may not be set while TYPE99Vactive99Tprop99TYPE is true.\n"
},
"responseVisible": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the user's response should be visible. Only valid when TYPE99VresponseRequired99Tprop99TYPE is true.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "abort",
"id": "abort",
"details": "Abort a running authentication session.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "respond",
"id": "respond",
"details": "Respond to pam.\n\nMay not be called unless TYPE99VresponseRequired99Tprop99TYPE is true.\n",
"params": [
{
"name": "response",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"name": "start",
"id": "start",
"details": "Start an authentication session. Returns if the session was started successfully.\n",
"params": []
}
],
"signals": {
"completed": {
"name": "completed",
"details": "Emitted whenever authentication completes.\n",
"params": [
{
"name": "result",
"type": {
"type": "local",
"module": "Quickshell.Services.Pam",
"name": "PamResult"
}
}
]
},
"pamMessage": {
"name": "pamMessage",
"details": "Emitted whenever pam sends a new message, after the change signals for\n`message`, `messageIsError`, and `responseRequired`.\n",
"params": []
},
"error": {
"name": "error",
"details": "Emitted if pam fails to perform authentication normally.\n\nA `completed(PamResult.Error)` will be emitted after this event.\n",
"params": [
{
"name": "error",
"type": {
"type": "local",
"module": "Quickshell.Services.Pam",
"name": "PamError"
}
}
]
}
},
"variants": {}
}

View file

@ -1,50 +0,0 @@
{
"name": "PamError",
"module": "Quickshell.Services.Pam",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "An error that occurred during an authentication.",
"details": "See TYPE99MQS_Quickshell_Services_Pam99NPamContext99Verror99Tsignal99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Pam",
"name": "PamError"
}
}
]
}
],
"signals": {},
"variants": {
"InternalError": {
"details": "An error occurred inside quickshell's pam interface.\n"
},
"StartFailed": {
"details": "Failed to start the pam session.\n"
},
"TryAuthFailed": {
"details": "Failed to try to authenticate the user.\nThis is not the same as the user failing to authenticate.\n"
}
}
}

View file

@ -1,53 +0,0 @@
{
"name": "PamResult",
"module": "Quickshell.Services.Pam",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "The result of an authentication.",
"details": "See TYPE99MQS_Quickshell_Services_Pam99NPamContext99Vcompleted99Tsignal99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Pam",
"name": "PamResult"
}
}
]
}
],
"signals": {},
"variants": {
"MaxTries": {
"details": "The authentication method ran out of tries and should not be used again.\n"
},
"Failed": {
"details": "Authentication failed.\n"
},
"Success": {
"details": "Authentication was successful.\n"
},
"Error": {
"details": "An error occurred while trying to authenticate.\n"
}
}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.Pam",
"description": "Pam authentication",
"details": "## Writing pam configurations\n\nIt is a good idea to write pam configurations specifically for quickshell\nif you want to do anything other than match the default login flow.\n\nA good example of this is having a configuration that allows entering a password\nor fingerprint in any order.\n\n### Structure of a pam configuration.\nPam configuration files are a list of rules, each on a new line in the following form:\n```\n<type> <control_flag> <module_path> [options]\n```\n\nEach line runs in order.\n\nPamContext currently only works with the `auth` type, as other types require root\naccess to check.\n\n#### Control flags\nThe control flags you're likely to use are `required` and `sufficient`.\n- `required` rules must pass for authentication to succeed.\n- `sufficient` rules will bypass any remaining rules and return on success.\n\nNote that you should have at least one required rule or pam will fail with an undocumented error.\n\n#### Modules\nPam works with a set of modules that handle various authentication mechanisms.\nSome common ones include `pam_unix.so` which handles passwords and `pam_fprintd.so`\nwhich handles fingerprints.\n\nThese modules have options but none are required for basic functionality.\n\n### Examples\n\nAuthenticate with only a password:\n```\nauth required pam_unix.so\n```\n\nAuthenticate with only a fingerprint:\n```\nauth required pam_fprintd.so\n```\n\nTry to authenticate with a fingerprint first, but if that fails fall back to a password:\n```\nauth sufficient pam_fprintd.so\nauth required pam_unix.so\n```\n\nRequire both a fingerprint and a password:\n```\nauth required pam_fprintd.so\nauth required pam_unix.so\n```\n\n\nSee also: [Oracle: PAM configuration file](https://docs.oracle.com/cd/E19683-01/816-4883/pam-32/index.html)"
}

View file

@ -1,90 +0,0 @@
{
"name": "Pipewire",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Contains links to all pipewire objects.",
"details": "",
"flags": [
"singleton"
],
"properties": {
"defaultAudioSource": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The default audio source or `null`.\n",
"flags": [
"readonly"
]
},
"linkGroups": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkGroup"
}
},
"details": "All pipewire link groups.\n",
"flags": [
"readonly"
]
},
"defaultAudioSink": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The default audio sink or `null`.\n",
"flags": [
"readonly"
]
},
"links": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLink"
}
},
"details": "All pipewire links.\n",
"flags": [
"readonly"
]
},
"nodes": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
}
},
"details": "All pipewire nodes.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,164 +0,0 @@
{
"name": "PwAudioChannel",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Audio channel of a pipewire node.",
"details": "See TYPE99MQS_Quickshell_Services_Pipewire99NPwNodeAudio99Vchannels99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": "Print a human readable representation of the given channel,\nincluding aux and custom channel ranges.\n",
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwAudioChannel"
}
}
]
}
],
"signals": {},
"variants": {
"TopCenter": {
"details": null
},
"Mono": {
"details": null
},
"AuxRangeEnd": {
"details": "The end of the aux channel range.\n\nValues between AuxRangeStart and AuxRangeEnd are valid.\n"
},
"TopRearLeft": {
"details": null
},
"TopRearRight": {
"details": null
},
"FrontLeftHigh": {
"details": null
},
"RearRightCenter": {
"details": null
},
"TopSideLeft": {
"details": null
},
"LowFrequencyEffects": {
"details": null
},
"FrontCenterHigh": {
"details": null
},
"BottomRightCenter": {
"details": null
},
"FrontCenter": {
"details": null
},
"FrontRightCenter": {
"details": null
},
"LowFrequencyEffectsRight": {
"details": null
},
"RearLeft": {
"details": null
},
"RearLeftCenter": {
"details": null
},
"FrontLeftCenter": {
"details": null
},
"RearRight": {
"details": null
},
"FrontRightHigh": {
"details": null
},
"TopFrontCenter": {
"details": null
},
"Unknown": {
"details": null
},
"TopFrontLeft": {
"details": null
},
"BottomCenter": {
"details": null
},
"TopFrontRightCenter": {
"details": null
},
"FrontRightWide": {
"details": null
},
"FrontRight": {
"details": null
},
"LowFrequencyEffects2": {
"details": null
},
"FrontLeftWide": {
"details": null
},
"LowFrequencyEffectsLeft": {
"details": null
},
"FrontLeft": {
"details": null
},
"TopFrontRight": {
"details": null
},
"SideLeft": {
"details": null
},
"SideRight": {
"details": null
},
"RearCenter": {
"details": null
},
"TopFrontLeftCenter": {
"details": null
},
"TopRearCenter": {
"details": null
},
"AuxRangeStart": {
"details": "The start of the aux channel range.\n\nValues between AuxRangeStart and AuxRangeEnd are valid.\n"
},
"TopSideRight": {
"details": null
},
"NA": {
"details": null
},
"BottomLeftCenter": {
"details": null
},
"CustomRangeStart": {
"details": "The end of the custom channel range.\n\nValues starting at CustomRangeStart are valid.\n"
}
}
}

View file

@ -1,64 +0,0 @@
{
"name": "PwLink",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A connection between pipewire nodes.",
"details": "Note that there is one link per *channel* of a connection between nodes.\nYou usually want TYPE99MQS_Quickshell_Services_Pipewire99NPwLinkGroup99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {
"state": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkState"
},
"details": "The current state of the link.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n",
"flags": [
"readonly"
]
},
"source": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *sending* information. (the source)\n",
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "The pipewire object id of the link.\n\nMainly useful for debugging. you can inspect the link directly\nwith `pw-cli i <id>`.\n",
"flags": [
"readonly"
]
},
"target": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *receiving* information. (the sink)\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,53 +0,0 @@
{
"name": "PwLinkGroup",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A group of connections between pipewire nodes.",
"details": "A group of connections between pipewire nodes, one per source->target pair.\n",
"flags": [
"uncreatable"
],
"properties": {
"target": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *receiving* information. (the sink)\n",
"flags": [
"readonly"
]
},
"source": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *sending* information. (the source)\n",
"flags": [
"readonly"
]
},
"state": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkState"
},
"details": "The current state of the link group.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,62 +0,0 @@
{
"name": "PwLinkState",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "State of a pipewire link.",
"details": "See TYPE99MQS_Quickshell_Services_Pipewire99NPwLink99Vstate99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkState"
}
}
]
}
],
"signals": {},
"variants": {
"Unlinked": {
"details": null
},
"Error": {
"details": null
},
"Init": {
"details": null
},
"Allocating": {
"details": null
},
"Paused": {
"details": null
},
"Negotiating": {
"details": null
},
"Active": {
"details": null
}
}
}

View file

@ -1,108 +0,0 @@
{
"name": "PwNode",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A node in the pipewire connection graph.",
"details": "",
"flags": [
"uncreatable"
],
"properties": {
"nickname": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The node's nickname, corrosponding to the object's `node.nickname` property.\n\nMay be empty. Generally but not always more human readable than TYPE99Vdescription99Tprop99TYPE.\n",
"flags": [
"readonly"
]
},
"audio": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNodeAudio"
},
"details": "Extra information present only if the node sends or receives audio.\n",
"flags": [
"readonly"
]
},
"isSink": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If `true`, then the node accepts audio input from other nodes,\nif `false` the node outputs audio to other nodes.\n",
"flags": [
"readonly"
]
},
"isStream": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If `true` then the node is likely to be a program, if false it is liekly to be hardware.\n",
"flags": [
"readonly"
]
},
"properties": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "The property set present on the node, as an object containing key-value pairs.\nYou can inspect this directly with `pw-cli i <id>`.\n\nA few properties of note, which may or may not be present:\n- `application.name` - A suggested human readable name for the node.\n- `application.icon-name` - The name of an icon recommended to display for the node.\n- `media.name` - A description of the currently playing media.\n (more likely to be present than `media.title` and `media.artist`)\n- `media.title` - The title of the currently playing media.\n- `media.artist` - The artist of the currently playing media.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n",
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "The pipewire object id of the node.\n\nMainly useful for debugging. you can inspect the node directly\nwith `pw-cli i <id>`.\n",
"flags": [
"readonly"
]
},
"description": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The node's description, corrosponding to the object's `node.description` property.\n\nMay be empty. Generally more human readable than TYPE99Vname99Tprop99TYPE.\n",
"flags": [
"readonly"
]
},
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The node's name, corrosponding to the object's `node.name` property.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,65 +0,0 @@
{
"name": "PwNodeAudio",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Audio specific properties of pipewire nodes.",
"details": "Extra properties of a TYPE99MQS_Quickshell_Services_Pipewire99NPwNode99TYPE if the node is an audio node.\n\nSee TYPE99MQS_Quickshell_Services_Pipewire99NPwNode99Vaudio99Tprop99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {
"volume": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The average volume over all channels of the node.\nSetting this property modifies the volume of all channels proportionately.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n"
},
"channels": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwAudioChannel"
}
},
"details": "The audio channels present on the node.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n",
"flags": [
"readonly"
]
},
"muted": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the node is currently muted. Setting this property changes the mute state.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n"
},
"volumes": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "real"
}
},
"details": "The volumes of each audio channel individually. Each entry corrosponds to\nthe volume of the channel at the same index in TYPE99Vchannels99Tprop99TYPE. TYPE99Vvolumes99Tprop99TYPE and TYPE99Vchannels99Tprop99TYPE\nwill always be the same length.\n\n> [!WARNING] This property is invalid unless the node is [bound](../pwobjecttracker).\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,41 +0,0 @@
{
"name": "PwNodeLinkTracker",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Tracks all link connections to a given node.",
"details": "",
"properties": {
"linkGroups": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkGroup"
}
},
"details": "Link groups connected to the given node.\n\nIf the node is a sink, links which target the node will be tracked.\nIf the node is a source, links which source the node will be tracked.\n",
"flags": [
"readonly"
]
},
"node": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node to track connections to.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,30 +0,0 @@
{
"name": "PwObjectTracker",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Binds pipewire objects.",
"details": "If the object list of at least one PwObjectTracker contains a given pipewire object,\nit will become *bound* and you will be able to interact with bound-only properties.\n",
"properties": {
"objects": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
"details": "The list of objects to bind.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.Pipewire",
"description": "Pipewire API",
"details": ""
}

View file

@ -1,36 +0,0 @@
{
"name": "SystemTray",
"module": "Quickshell.Services.SystemTray",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "System tray",
"details": "Referencing the SystemTray singleton will make quickshell start tracking\nsystem tray contents, which are updated as the tray changes, and can be\naccessed via the TYPE99Vitems99Tprop99TYPE property.\n",
"flags": [
"singleton"
],
"properties": {
"items": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.SystemTray",
"name": "SystemTrayItem"
}
},
"details": "List of all system tray icons.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,18 +0,0 @@
{
"name": "SystemTrayCategory",
"module": "Quickshell.Services.SystemTray",
"type": "enum",
"description": "Category of a SystemTrayItem.",
"details": "See TYPE99MQS_Quickshell_Services_SystemTray99NSystemTrayItem99Vcategory99Tprop99TYPE.\n",
"variants": {
"Hardware": {
"details": "Hardware controls like battery indicators or volume control.\n"
},
"ApplicationStatus": {
"details": "The fallback category for general applications or anything that does\nnot fit into a different category.\n"
},
"SystemServices": {
"details": "System services such as IMEs or disk indexing.\n"
}
}
}

View file

@ -1,217 +0,0 @@
{
"name": "SystemTrayItem",
"module": "Quickshell.Services.SystemTray",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "An item in the system tray.",
"details": "A system tray item, roughly conforming to the [kde/freedesktop spec]\n(there is no real spec, we just implemented whatever seemed to actually be used).\n\n[kde/freedesktop spec]: https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem/\n",
"flags": [
"uncreatable"
],
"properties": {
"category": {
"type": {
"type": "local",
"module": "Quickshell.Services.SystemTray",
"name": "SystemTrayCategory"
},
"details": null,
"flags": [
"readonly"
]
},
"onlyMenu": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If this tray item only offers a menu and activation will do nothing.\n",
"flags": [
"readonly"
]
},
"hasMenu": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If this tray item has an associated menu accessible via TYPE99Vdisplay99Tfunc99TYPE or TYPE99Vmenu99Tprop99TYPE.\n",
"flags": [
"readonly"
]
},
"title": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Text that describes the application.\n",
"flags": [
"readonly"
]
},
"menu": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuHandle"
},
"details": "A handle to the menu associated with this tray item, if any.\n\nCan be displayed with TYPE99MQS_Quickshell99NQsMenuAnchor99TYPE or TYPE99MQS_Quickshell99NQsMenuOpener99TYPE.\n",
"flags": [
"readonly"
]
},
"tooltipTitle": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"status": {
"type": {
"type": "local",
"module": "Quickshell.Services.SystemTray",
"name": "SystemTrayStatus"
},
"details": null,
"flags": [
"readonly"
]
},
"tooltipDescription": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "A name unique to the application, such as its name.\n",
"flags": [
"readonly"
]
},
"icon": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Icon source string, usable as an Image source.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "activate",
"id": "activate",
"details": "Primary activation action, generally triggered via a left click.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "display",
"id": "display",
"details": "Display a platform menu at the given location relative to the parent window.\n",
"params": [
{
"name": "parentWindow",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "relativeX",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
},
{
"name": "relativeY",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "scroll",
"id": "scroll",
"details": "Scroll action, such as changing volume on a mixer.\n",
"params": [
{
"name": "delta",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
},
{
"name": "horizontal",
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "secondaryActivate",
"id": "secondaryActivate",
"details": "Secondary activation action, generally triggered via a middle click.\n",
"params": []
}
],
"signals": {},
"variants": {}
}

View file

@ -1,36 +0,0 @@
{
"name": "SystemTrayMenuWatcher",
"module": "Quickshell.Services.SystemTray",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Accessor for SystemTrayItem menus.",
"details": "> [!ERROR] Deprecated in favor of TYPE99MQS_Quickshell99NQsMenuOpener99Vmenu99Tprop99TYPE,\n> which now supports directly accessing a tray menu via TYPE99MQS_Quickshell_Services_SystemTray99NSystemTrayItem99Vmenu99Tprop99TYPE.\n\nSystemTrayMenuWatcher provides access to the associated\nTYPE99MQS_Quickshell_DBusMenu99NDBusMenuItem99TYPE for a tray item.\n",
"properties": {
"menu": {
"type": {
"type": "local",
"module": "Quickshell.DBusMenu",
"name": "DBusMenuItem"
},
"details": "The menu associated with the tray item. Will be null if TYPE99VtrayItem99Tprop99TYPE is null\nor has no associated menu.\n",
"flags": [
"readonly"
]
},
"trayItem": {
"type": {
"type": "local",
"module": "Quickshell.Services.SystemTray",
"name": "SystemTrayItem"
},
"details": "The tray item to watch.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,18 +0,0 @@
{
"name": "SystemTrayStatus",
"module": "Quickshell.Services.SystemTray",
"type": "enum",
"description": "Statis of a SystemTrayItem.",
"details": "See TYPE99MQS_Quickshell_Services_SystemTray99NSystemTrayItem99Vstatus99Tprop99TYPE.\n",
"variants": {
"Passive": {
"details": "A passive item does not convey important information and can be considered idle. You may want to hide these.\n"
},
"NeedsAttention": {
"details": "An item that needs attention conveys very important information such as low battery.\n"
},
"Active": {
"details": "An active item may have information more important than a passive one and you probably do not want to hide it.\n"
}
}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.SystemTray",
"description": "Types for implementing a system tray",
"details": ""
}

View file

@ -1,58 +0,0 @@
{
"name": "UPower",
"module": "Quickshell.Services.UPower",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": null,
"flags": [
"singleton"
],
"properties": {
"devices": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.UPower",
"name": "UPowerDevice"
}
},
"details": "All connected UPower devices.\n",
"flags": [
"readonly"
]
},
"onBattery": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the system is currently running on battery power, or discharging.\n",
"flags": [
"readonly"
]
},
"displayDevice": {
"type": {
"type": "local",
"module": "Quickshell.Services.UPower",
"name": "UPowerDevice"
},
"details": "UPower's DisplayDevice for your system. Can be `null`.\n\nThis is an aggregate device and not a physical one, meaning you will not find it in TYPE99Vdevices99Tprop99TYPE.\nIt is typically the device that is used for displaying information in desktop environments.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,185 +0,0 @@
{
"name": "UPowerDevice",
"module": "Quickshell.Services.UPower",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A device exposed through the UPower system service.",
"details": "",
"flags": [
"uncreatable"
],
"properties": {
"type": {
"type": {
"type": "local",
"module": "Quickshell.Services.UPower",
"name": "UPowerDeviceType"
},
"details": "The type of device.\n",
"flags": [
"readonly"
]
},
"healthSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"percentage": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Current charge level as a percentage.\n\nThis would be equivalent to TYPE99Venergy99Tprop99TYPE / TYPE99VenergyCapacity99Tprop99TYPE.\n",
"flags": [
"readonly"
]
},
"timeToEmpty": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Estimated time until the device is fully discharged, in seconds.\n\nWill be set to `0` if charging.\n",
"flags": [
"readonly"
]
},
"energy": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Current energy level of the device in watt-hours.\n",
"flags": [
"readonly"
]
},
"state": {
"type": {
"type": "local",
"module": "Quickshell.Services.UPower",
"name": "UPowerDeviceState"
},
"details": "Current state of the device.\n",
"flags": [
"readonly"
]
},
"isPresent": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the power source is present in the bay or slot, useful for hot-removable batteries.\n\nIf the device `type` is not `Battery`, then the property will be invalid.\n",
"flags": [
"readonly"
]
},
"healthPercentage": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Health of the device as a percentage of its original health.\n",
"flags": [
"readonly"
]
},
"nativePath": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Native path of the device specific to your OS.\n",
"flags": [
"readonly"
]
},
"energyCapacity": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Maximum energy capacity of the device in watt-hours\n",
"flags": [
"readonly"
]
},
"timeToFull": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Estimated time until the device is fully charged, in seconds.\n\nWill be set to `0` if discharging.\n",
"flags": [
"readonly"
]
},
"isLaptopBattery": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the device is a laptop battery or not. Use this to check if your device is a valid battery.\n\nThis will be equivalent to TYPE99Vtype99Tprop99TYPE == Battery && TYPE99VpowerSupply99Tprop99TYPE == true.\n",
"flags": [
"readonly"
]
},
"changeRate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "Rate of energy change in watts (positive when charging, negative when discharging).\n",
"flags": [
"readonly"
]
},
"iconName": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Name of the icon representing the current state of the device, or an empty string if not provided.\n",
"flags": [
"readonly"
]
},
"powerSupply": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the device is a power supply for your computer and can provide charge.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,62 +0,0 @@
{
"name": "UPowerDeviceState",
"module": "Quickshell.Services.UPower",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Power state of a UPower device.",
"details": "See TYPE99MQS_Quickshell_Services_UPower99NUPowerDevice99Vstate99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "status",
"type": {
"type": "local",
"module": "Quickshell.Services.UPower",
"name": "UPowerDeviceState"
}
}
]
}
],
"signals": {},
"variants": {
"Empty": {
"details": null
},
"Unknown": {
"details": null
},
"Charging": {
"details": null
},
"Discharging": {
"details": null
},
"FullyCharged": {
"details": null
},
"PendingCharge": {
"details": "The device is waiting to be charged after it was plugged in.\n"
},
"PendingDischarge": {
"details": "The device is waiting to be discharged after being unplugged.\n"
}
}
}

View file

@ -1,128 +0,0 @@
{
"name": "UPowerDeviceType",
"module": "Quickshell.Services.UPower",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Type of a UPower device.",
"details": "See TYPE99MQS_Quickshell_Services_UPower99NUPowerDevice99Vtype99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "type",
"type": {
"type": "local",
"module": "Quickshell.Services.UPower",
"name": "UPowerDeviceType"
}
}
]
}
],
"signals": {},
"variants": {
"Battery": {
"details": null
},
"Speakers": {
"details": null
},
"Phone": {
"details": null
},
"GamingInput": {
"details": null
},
"Headphones": {
"details": null
},
"Camera": {
"details": null
},
"Unknown": {
"details": null
},
"Ups": {
"details": null
},
"Mouse": {
"details": null
},
"Pda": {
"details": null
},
"MediaPlayer": {
"details": null
},
"Touchpad": {
"details": null
},
"OtherAudio": {
"details": null
},
"RemoteControl": {
"details": null
},
"Wearable": {
"details": null
},
"Headset": {
"details": null
},
"Network": {
"details": null
},
"Tablet": {
"details": null
},
"LinePower": {
"details": null
},
"Printer": {
"details": null
},
"Scanner": {
"details": null
},
"Toy": {
"details": null
},
"BluetoothGeneric": {
"details": null
},
"Computer": {
"details": null
},
"Video": {
"details": null
},
"Keyboard": {
"details": null
},
"Monitor": {
"details": null
},
"Modem": {
"details": null
},
"Pen": {
"details": null
}
}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Services.UPower",
"description": "UPower Service",
"details": ""
}

View file

@ -1,165 +0,0 @@
{
"name": "Toplevel",
"module": "Quickshell.Wayland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Window from another application.",
"details": "A window/toplevel from another application, retrievable from\nthe TYPE99MQS_Quickshell_Wayland99NToplevelManager99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {
"fullscreen": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window is currently fullscreen.\n\nFullscreen can be requested by setting this property, though it may\nbe ignored by the compositor.\nFullscreen can be requested on a specific screen with the TYPE99VfullscreenOn99Tfunc99TYPE function.\n"
},
"parent": {
"type": {
"type": "local",
"module": "Quickshell.Wayland",
"name": "Toplevel"
},
"details": "Parent toplevel if this toplevel is a modal/dialog, otherwise null.\n",
"flags": [
"readonly"
]
},
"maximized": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window is currently maximized.\n\nMaximization can be requested by setting this property, though it may\nbe ignored by the compositor.\n"
},
"activated": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window is currently activated or focused.\n\nActivation can be requested with the TYPE99Vactivate99Tfunc99TYPE function.\n",
"flags": [
"readonly"
]
},
"title": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"minimized": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window is currently minimized.\n\nMinimization can be requested by setting this property, though it may\nbe ignored by the compositor.\n"
},
"appId": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "activate",
"id": "activate",
"details": "Request that this toplevel is activated.\nThe request may be ignored by the compositor.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "fullscreenOn",
"id": "fullscreenOn",
"details": "Request that this toplevel is fullscreened on a specific screen.\nThe request may be ignored by the compositor.\n",
"params": [
{
"name": "screen",
"type": {
"type": "local",
"module": "Quickshell",
"name": "ShellScreen"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "setRectangle",
"id": "setRectangle",
"details": "Provide a hint to the compositor where the visual representation\nof this toplevel is relative to a quickshell window.\nThis hint can be used visually in operations like minimization.\n",
"params": [
{
"name": "window",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "rect",
"type": {
"type": "qt",
"module": "qml",
"name": "rect"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "unsetRectangle",
"id": "unsetRectangle",
"details": null,
"params": []
}
],
"signals": {
"closed": {
"name": "closed",
"details": null,
"params": []
}
},
"variants": {}
}

View file

@ -1,47 +0,0 @@
{
"name": "ToplevelManager",
"module": "Quickshell.Wayland",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Exposes a list of Toplevels.",
"details": "Exposes a list of windows from other applications as TYPE99MQS_Quickshell_Wayland99NToplevel99TYPEs via the\n[zwlr-foreign-toplevel-management-v1](https://wayland.app/protocols/wlr-foreign-toplevel-management-unstable-v1)\nwayland protocol.\n",
"flags": [
"singleton"
],
"properties": {
"activeToplevel": {
"type": {
"type": "local",
"module": "Quickshell.Wayland",
"name": "Toplevel"
},
"details": "Active toplevel or null.\n\n> [!NOTE] If multiple are active, this will be the most recently activated one.\n> Usually compositors will not report more than one toplevel as active at a time.\n",
"flags": [
"readonly"
]
},
"toplevels": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Wayland",
"name": "Toplevel"
}
},
"details": "All toplevel windows exposed by the compositor.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,47 +0,0 @@
{
"name": "WlSessionLock",
"module": "Quickshell.Wayland",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "Reloadable"
},
"description": "Wayland session locker.",
"details": "Wayland session lock implemented using the [ext_session_lock_v1] protocol.\n\nWlSessionLock will create an instance of its `surface` component for every screen when\n`locked` is set to true. The `surface` component must create a TYPE99MQS_Quickshell_Wayland99NWlSessionLockSurface99TYPE\nwhich will be displayed on each screen.\n\nThe below example will create a session lock that disappears when the button is clicked.\n```qml\nWlSessionLock {\n id: lock\n\n WlSessionLockSurface {\n Button {\n text: \"unlock me\"\n onClicked: lock.locked = false\n }\n }\n}\n\n// ...\nlock.locked = true\n```\n\n> [!WARNING] If the WlSessionLock is destroyed or quickshell exits without setting `locked`\n> to false, conformant compositors will leave the screen locked and painted with a solid\n> color.\n>\n> This is what makes the session lock secure. The lock dying will not expose your session,\n> but it will render it inoperable.\n\n[ext_session_lock_v1]: https://wayland.app/protocols/ext-session-lock-v1\n",
"properties": {
"surface": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "Component"
},
"details": "The surface that will be created for each screen. Must create a TYPE99MQS_Quickshell_Wayland99NWlSessionLockSurface99TYPE.\n",
"flags": [
"default"
]
},
"locked": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "Controls the lock state.\n\n> [!WARNING] Only one WlSessionLock may be locked at a time. Attempting to enable a lock while\n> another lock is enabled will do nothing.\n"
},
"secure": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "The compositor lock state.\n\nThis is set to true once the compositor has confirmed all screens are covered with locks.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,97 +0,0 @@
{
"name": "WlSessionLockSurface",
"module": "Quickshell.Wayland",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "Reloadable"
},
"description": "Surface to display with a `WlSessionLock`.",
"details": "Surface displayed by a TYPE99MQS_Quickshell_Wayland99NWlSessionLock99TYPE when it is locked.\n",
"properties": {
"contentItem": {
"type": {
"type": "qt",
"module": "qml.QtQuick",
"name": "Item"
},
"details": null,
"flags": [
"readonly"
]
},
"height": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
},
"screen": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ShellScreen"
},
"details": "The screen that the surface is displayed on.\n",
"flags": [
"readonly"
]
},
"visible": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the surface has been made visible.\n\nNote: SessionLockSurfaces will never become invisible, they will only be destroyed.\n",
"flags": [
"readonly"
]
},
"color": {
"type": {
"type": "qt",
"module": "qml",
"name": "color"
},
"details": "The background color of the window. Defaults to white.\n\n> [!WARNING] This seems to behave weirdly when using transparent colors on some systems.\n> Using a colored content item over a transparent window is the recommended way to work around this:\n> ```qml\n> ProxyWindow {\n> Rectangle {\n> anchors.fill: parent\n> color: \"#20ffffff\"\n>\n> // your content here\n> }\n> }\n> ```\n> ... but you probably shouldn't make a transparent lock,\n> and most compositors will ignore an attempt to do so.\n"
},
"data": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
"details": null,
"flags": [
"default",
"readonly"
]
},
"width": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,18 +0,0 @@
{
"name": "WlrKeyboardFocus",
"module": "Quickshell.Wayland",
"type": "enum",
"description": "WlrLayershell keyboard focus mode",
"details": "See TYPE99MQS_Quickshell_Wayland99NWlrLayershell99VkeyboardFocus99Tprop99TYPE.\n",
"variants": {
"OnDemand": {
"details": "Access to the keyboard as determined by the operating system.\n\n> [!WARNING] On some systems, `OnDemand` may cause the shell window to\n> retain focus over another window unexpectedly.\n> You should try `None` if you experience issues.\n"
},
"None": {
"details": "No keyboard input will be accepted.\n"
},
"Exclusive": {
"details": "Exclusive access to the keyboard, locking out all other windows.\n\n> [!WARNING] You **CANNOT** use this to make a secure lock screen.\n>\n> If you want to make a lock screen, use TYPE99MQS_Quickshell_Wayland99NWlSessionLock99TYPE.\n"
}
}
}

View file

@ -1,21 +0,0 @@
{
"name": "WlrLayer",
"module": "Quickshell.Wayland",
"type": "enum",
"description": "WlrLayershell layer.",
"details": "See TYPE99MQS_Quickshell_Wayland99NWlrLayershell99Vlayer99Tprop99TYPE.\n",
"variants": {
"Background": {
"details": "Below bottom\n"
},
"Top": {
"details": "Commonly used for panels, app launchers, and docks.\nUsually renders over normal windows and below fullscreen windows.\n"
},
"Overlay": {
"details": "Usually renders over fullscreen windows\n"
},
"Bottom": {
"details": "Above background, usually below windows\n"
}
}
}

View file

@ -1,41 +0,0 @@
{
"name": "WlrLayershell",
"module": "Quickshell.Wayland",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "PanelWindow"
},
"description": "Wlroots layershell window",
"details": "Decorationless window that can be attached to the screen edges using the [zwlr_layer_shell_v1] protocol.\n\n#### Attached object\n`WlrLayershell` works as an attached object of TYPE99MQS_Quickshell99NPanelWindow99TYPE which you should use instead if you can,\nas it is platform independent.\n\n```qml\nPanelWindow {\n // When PanelWindow is backed with WlrLayershell this will work\n WlrLayershell.layer: WlrLayer.Bottom\n}\n```\n\nTo maintain platform compatibility you can dynamically set layershell specific properties.\n```qml\nPanelWindow {\n Component.onCompleted: {\n if (this.WlrLayershell != null) {\n this.WlrLayershell.layer = WlrLayer.Bottom;\n }\n }\n}\n```\n\n[zwlr_layer_shell_v1]: https://wayland.app/protocols/wlr-layer-shell-unstable-v1\n",
"properties": {
"keyboardFocus": {
"type": {
"type": "local",
"module": "Quickshell.Wayland",
"name": "WlrKeyboardFocus"
},
"details": "The degree of keyboard focus taken. Defaults to `KeyboardFocus.None`.\n"
},
"layer": {
"type": {
"type": "local",
"module": "Quickshell.Wayland",
"name": "WlrLayer"
},
"details": "The shell layer the window sits in. Defaults to `WlrLayer.Top`.\n"
},
"namespace": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Similar to the class property of windows. Can be used to identify the window to external tools.\n\nCannot be set after windowConnected.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,5 +0,0 @@
{
"name": "Quickshell.Wayland",
"description": "Wayland specific Quickshell types",
"details": ""
}

View file

@ -1,74 +0,0 @@
{
"name": "BoundComponent",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQuick",
"name": "Item"
},
"description": "Component loader that allows setting initial properties.",
"details": "Component loader that allows setting initial properties, primarily useful for\nescaping cyclic dependency errors.\n\nProperties defined on the BoundComponent will be applied to its loaded component,\nincluding required properties, and will remain reactive. Functions created with\nthe names of signal handlers will also be attached to signals of the loaded component.\n\n```qml {filename=\"MyComponent.qml\"}\nMouseArea {\n required property color color;\n width: 100\n height: 100\n\n Rectangle {\n anchors.fill: parent\n color: parent.color\n }\n}\n```\n\n```qml\nBoundComponent {\n source: \"MyComponent.qml\"\n\n // this is the same as assigning to `color` on MyComponent if loaded normally.\n property color color: \"red\";\n\n // this will be triggered when the `clicked` signal from the MouseArea is sent.\n function onClicked() {\n color = \"blue\";\n }\n}\n```\n",
"properties": {
"implicitHeight": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
},
"implicitWidth": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
},
"item": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"details": "The loaded component. Will be null until it has finished loading.\n",
"flags": [
"readonly"
]
},
"bindValues": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If property values should be bound after they are initially set. Defaults to `true`.\n"
},
"source": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The source to load, as a Url.\n"
},
"sourceComponent": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "Component"
},
"details": "The source to load, as a Component.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,76 +0,0 @@
{
"name": "DesktopAction",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": "An action of a TYPE99MQS_Quickshell99NDesktopEntry99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"execString": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The raw `Exec` string from the desktop entry. You probably want TYPE99Vexecute99Tfunc99TYPE.\n",
"flags": [
"readonly"
]
},
"icon": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "execute",
"id": "execute",
"details": "Run the application. Currently ignores TYPE99MQS_Quickshell99NDesktopEntry99VrunInTerminal99Tprop99TYPE and field codes.\n",
"params": []
}
],
"signals": {},
"variants": {}
}

View file

@ -1,57 +0,0 @@
{
"name": "DesktopEntries",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Desktop entry index.",
"details": "Index of desktop entries according to the [desktop entry specification].\n\nPrimarily useful for looking up icons and metadata from an id, as there is\ncurrently no mechanism for usage based sorting of entries and other launcher niceties.\n\n[desktop entry specification]: https://specifications.freedesktop.org/desktop-entry-spec/latest/\n",
"flags": [
"singleton"
],
"properties": {
"applications": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell",
"name": "DesktopEntry"
}
},
"details": "All desktop entries of type Application that are not Hidden or NoDisplay.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "local",
"module": "Quickshell",
"name": "DesktopEntry"
},
"name": "byId",
"id": "byId",
"details": "Look up a desktop entry by name. Includes NoDisplay entries. May return null.\n",
"params": [
{
"name": "id",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
}
],
"signals": {},
"variants": {}
}

View file

@ -1,179 +0,0 @@
{
"name": "DesktopEntry",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": "A desktop entry. See TYPE99MQS_Quickshell99NDesktopEntries99TYPE for details.\n",
"flags": [
"uncreatable"
],
"properties": {
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Name of the specific application, such as \"Firefox\".\n",
"flags": [
"readonly"
]
},
"comment": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Long description of the application, such as \"View websites on the internet\". May be empty.\n",
"flags": [
"readonly"
]
},
"execString": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The raw `Exec` string from the desktop entry. You probably want TYPE99Vexecute99Tfunc99TYPE.\n",
"flags": [
"readonly"
]
},
"keywords": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": null,
"flags": [
"readonly"
]
},
"categories": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": null,
"flags": [
"readonly"
]
},
"runInTerminal": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the application should run in a terminal.\n",
"flags": [
"readonly"
]
},
"workingDirectory": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The working directory to execute from.\n",
"flags": [
"readonly"
]
},
"actions": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell",
"name": "DesktopAction"
}
},
"details": null,
"flags": [
"readonly"
]
},
"icon": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Name of the icon associated with this application. May be empty.\n",
"flags": [
"readonly"
]
},
"genericName": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Short description of the application, such as \"Web Browser\". May be empty.\n",
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": null,
"flags": [
"readonly"
]
},
"noDisplay": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If true, this application should not be displayed in menus and launchers.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "execute",
"id": "execute",
"details": "Run the application. Currently ignores TYPE99VrunInTerminal99Tprop99TYPE and field codes.\n",
"params": []
}
],
"signals": {},
"variants": {}
}

View file

@ -1,154 +0,0 @@
{
"name": "EasingCurve",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Easing curve.",
"details": "Directly accessible easing curve as used in property animations.\n",
"properties": {
"curve": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "Easing curve settings. Works exactly the same as\n[PropertyAnimation.easing](https://doc.qt.io/qt-6/qml-qtquick-propertyanimation.html#easing-prop).\n"
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "real"
},
"name": "interpolate",
"id": "interpolate",
"details": "Interpolates between two values using the given X coordinate.\n",
"params": [
{
"name": "x",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
},
{
"name": "a",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
},
{
"name": "b",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "point"
},
"name": "interpolate",
"id": "interpolate",
"details": "Interpolates between two points using the given X coordinate.\n",
"params": [
{
"name": "x",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
},
{
"name": "a",
"type": {
"type": "qt",
"module": "qml",
"name": "point"
}
},
{
"name": "b",
"type": {
"type": "qt",
"module": "qml",
"name": "point"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "rect"
},
"name": "interpolate",
"id": "interpolate",
"details": "Interpolates two rects using the given X coordinate.\n",
"params": [
{
"name": "x",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
},
{
"name": "a",
"type": {
"type": "qt",
"module": "qml",
"name": "rect"
}
},
{
"name": "b",
"type": {
"type": "qt",
"module": "qml",
"name": "rect"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "real"
},
"name": "valueAt",
"id": "valueAt",
"details": "Returns the Y value for the given X value on the curve\nfrom 0.0 to 1.0.\n",
"params": [
{
"name": "x",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
}
]
}
],
"signals": {},
"variants": {}
}

View file

@ -1,24 +0,0 @@
{
"name": "Edges",
"module": "Quickshell",
"type": "enum",
"description": "Top Left Right Bottom flags.",
"details": "Edge flags can be combined with the `|` operator.\n",
"variants": {
"Top": {
"details": null
},
"Left": {
"details": null
},
"None": {
"details": null
},
"Bottom": {
"details": null
},
"Right": {
"details": null
}
}
}

View file

@ -1,83 +0,0 @@
{
"name": "ElapsedTimer",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Measures time between events",
"details": "The ElapsedTimer measures time since its last restart, and is useful\nfor determining the time between events that don't supply it.\n",
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "real"
},
"name": "elapsed",
"id": "elapsed",
"details": "Return the number of seconds since the timer was last\nstarted or restarted, with nanosecond precision.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "int"
},
"name": "elapsedMs",
"id": "elapsedMs",
"details": "Return the number of milliseconds since the timer was last\nstarted or restarted.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "int"
},
"name": "elapsedNs",
"id": "elapsedNs",
"details": "Return the number of nanoseconds since the timer was last\nstarted or restarted.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "real"
},
"name": "restart",
"id": "restart",
"details": "Restart the timer, returning the number of seconds since\nthe timer was last started or restarted, with nanosecond precision.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "int"
},
"name": "restartMs",
"id": "restartMs",
"details": "Restart the timer, returning the number of milliseconds since\nthe timer was last started or restarted.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "int"
},
"name": "restartNs",
"id": "restartNs",
"details": "Restart the timer, returning the number of nanoseconds since\nthe timer was last started or restarted.\n",
"params": []
}
],
"signals": {},
"variants": {}
}

View file

@ -1,18 +0,0 @@
{
"name": "ExclusionMode",
"module": "Quickshell",
"type": "enum",
"description": "Panel exclusion mode",
"details": "See TYPE99MQS_Quickshell99NPanelWindow99VexclusionMode99Tprop99TYPE.\n",
"variants": {
"Auto": {
"details": "Decide the exclusion zone based on the window dimensions and anchors.\n\nWill attempt to reseve exactly enough space for the window and its margins if\nexactly 3 anchors are connected.\n"
},
"Normal": {
"details": "Respect the exclusion zone of other shell layers and optionally set one\n"
},
"Ignore": {
"details": "Ignore exclusion zones of other shell layers. You cannot set an exclusion zone in this mode.\n"
}
}
}

View file

@ -1,16 +0,0 @@
{
"name": "FloatingWindow",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "QsWindow"
},
"description": "Standard toplevel operating system window that looks like any other application.",
"details": "",
"properties": {},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,21 +0,0 @@
{
"name": "Intersection",
"module": "Quickshell",
"type": "enum",
"description": "Intersection strategy for Regions.",
"details": "See TYPE99MQS_Quickshell99NRegion99Vintersection99Tprop99TYPE.\n",
"variants": {
"Intersect": {
"details": "Create an intersection of this region and the other, leaving only\nthe area covered by both. (opposite of `Xor`)\n"
},
"Combine": {
"details": "Combine this region, leaving a union of this and the other region. (opposite of `Subtract`)\n"
},
"Xor": {
"details": "Create an intersection of this region and the other, leaving only\nthe area not covered by both. (opposite of `Intersect`)\n"
},
"Subtract": {
"details": "Subtract this region, cutting this region out of the other. (opposite of `Combine`)\n"
}
}
}

View file

@ -1,71 +0,0 @@
{
"name": "LazyLoader",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "Reloadable"
},
"description": "Asynchronous component loader.",
"details": "The LazyLoader can be used to prepare components that don't need to be\ncreated immediately, such as windows that aren't visible until triggered\nby another action. It works on creating the component in the gaps between\nframe rendering to prevent blocking the interface thread.\nIt can also be used to preserve memory by loading components only\nwhen you need them and unloading them afterward.\n\nNote that when reloading the UI due to changes, lazy loaders will always\nload synchronously so windows can be reused.\n\n#### Example\nThe following example creates a PopupWindow asynchronously as the bar loads.\nThis means the bar can be shown onscreen before the popup is ready, however\ntrying to show the popup before it has finished loading in the background\nwill cause the UI thread to block.\n\n```qml\nimport QtQuick\nimport QtQuick.Controls\nimport Quickshell\n\nShellRoot {\n PanelWindow {\n id: window\n height: 50\n\n anchors {\n bottom: true\n left: true\n right: true\n }\n\n LazyLoader {\n id: popupLoader\n\n // start loading immediately\n loading: true\n\n // this window will be loaded in the background during spare\n // frame time unless active is set to true, where it will be\n // loaded in the foreground\n PopupWindow {\n // position the popup above the button\n parentWindow: window\n relativeX: window.width / 2 - width / 2\n relativeY: -height\n\n // some heavy component here\n\n width: 200\n height: 200\n }\n }\n\n Button {\n anchors.centerIn: parent\n text: \"show popup\"\n\n // accessing popupLoader.item will force the loader to\n // finish loading on the UI thread if it isn't finished yet.\n onClicked: popupLoader.item.visible = !popupLoader.item.visible\n }\n }\n}\n```\n\n> [!WARNING] Components that internally load other components must explicitly\n> support asynchronous loading to avoid blocking.\n>\n> Notably, TYPE99MQS_Quickshell99NVariants99TYPE does not corrently support asynchronous\n> loading, meaning using it inside a LazyLoader will block similarly to not\n> having a loader to start with.\n\n> [!WARNING] LazyLoaders do not start loading before the first window is created,\n> meaning if you create all windows inside of lazy loaders, none of them will ever load.\n",
"properties": {
"item": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"details": "The fully loaded item if the loader is TYPE99Vloading99Tprop99TYPE or TYPE99Vactive99Tprop99TYPE, or `null`\nif neither TYPE99Vloading99Tprop99TYPE nor TYPE99Vactive99Tprop99TYPE.\n\nNote that the item is owned by the LazyLoader, and destroying the LazyLoader\nwill destroy the item.\n\n> [!WARNING] If you access the `item` of a loader that is currently loading,\n> it will block as if you had set `active` to true immediately beforehand.\n>\n> You can instead set TYPE99Vloading99Tprop99TYPE and listen to TYPE99VactiveChanged99Tsignal99TYPE signal to\n> ensure loading happens asynchronously.\n",
"flags": [
"readonly"
]
},
"source": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The URI to load the component from. Mutually exclusive to TYPE99Vcomponent99Tprop99TYPE.\n"
},
"active": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the component is fully loaded.\n\nSetting this property to `true` will force the component to load to completion,\nblocking the UI, and setting it to `false` will destroy the component, requiring\nit to be loaded again.\n\nSee also: TYPE99VactiveAsync99Tprop99TYPE.\n"
},
"loading": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the loader is actively loading.\n\nIf the component is not loaded, setting this property to true will start\nloading it asynchronously. If the component is already loaded, setting\nthis property has no effect.\n\nSee also: TYPE99VactiveAsync99Tprop99TYPE.\n"
},
"activeAsync": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the component is fully loaded.\n\nSetting this property to true will asynchronously load the component similarly to\nTYPE99Vloading99Tprop99TYPE. Reading it or setting it to false will behanve\nthe same as TYPE99Vactive99Tprop99TYPE.\n"
},
"component": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "Component"
},
"details": "The component to load. Mutually exclusive to TYPE99Vsource99Tprop99TYPE.\n",
"flags": [
"default"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,146 +0,0 @@
{
"name": "ObjectModel",
"module": "Quickshell",
"type": "class",
"super": {
"type": "unknown",
"module": "",
"name": ""
},
"description": "View into a list of objets",
"details": "Typed view into a list of objects.\n\nAn ObjectModel works as a QML [Data Model], allowing efficient interaction with\ncomponents that act on models. It has a single role named `modelData`, to match the\nbehavior of lists.\nThe same information contained in the list model is available as a normal list\nvia the `values` property.\n\n#### Differences from a list\nUnlike with a list, the following property binding will never be updated when `model[3]` changes.\n```qml\n// will not update reactively\nproperty var foo: model[3]\n```\n\nYou can work around this limitation using the TYPE99Vvalues99Tprop99TYPE property of the model to view it as a list.\n```qml\n// will update reactively\nproperty var foo: model.values[3]\n```\n\n[Data Model]: https://doc.qt.io/qt-6/qtquick-modelviewsdata-modelview.html#qml-data-models\n",
"flags": [
"uncreatable"
],
"properties": {
"values": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
"details": "The content of the object model, as a QML list.\nThe values of this property will always be of the type of the model.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "int"
},
"name": "indexOf",
"id": "indexOf",
"details": null,
"params": [
{
"name": "object",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
}
]
}
],
"signals": {
"objectInsertedPost": {
"name": "objectInsertedPost",
"details": "Sent immediately after an object is inserted into the list.\n",
"params": [
{
"name": "object",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "index",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
},
"objectInsertedPre": {
"name": "objectInsertedPre",
"details": "Sent immediately before an object is inserted into the list.\n",
"params": [
{
"name": "object",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "index",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
},
"objectRemovedPost": {
"name": "objectRemovedPost",
"details": "Sent immediately after an object is removed from the list.\n",
"params": [
{
"name": "object",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "index",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
},
"objectRemovedPre": {
"name": "objectRemovedPre",
"details": "Sent immediately before an object is removed from the list.\n",
"params": [
{
"name": "object",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "index",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
}
},
"variants": {}
}

View file

@ -1,35 +0,0 @@
{
"name": "ObjectRepeater",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel"
},
"description": "A Repeater / for loop / map for non Item derived objects.",
"details": "> [!CAUTION] Removed in favor of TYPE99MQT_qml_QtQml_Models99NInstantiator99TYPE\n\nThe ObjectRepeater creates instances of the provided delegate for every entry in the\ngiven model, similarly to a TYPE99MQT_qml_QtQuick99NRepeater99TYPE but for non visual types.\n",
"flags": ["uncreatable"],
"properties": {
"model": {
"type": {
"type": "qt",
"module": "qml",
"name": "variant"
},
"details": "The model providing data to the ObjectRepeater.\n\nCurrently accepted model types are `list<T>` lists, javascript arrays,\nand [QAbstractListModel] derived models, though only one column will be repeated\nfrom the latter.\n\nNote: TYPE99MQS_Quickshell99NObjectModel99TYPE is a [QAbstractListModel] with a single column.\n\n[QAbstractListModel]: https://doc.qt.io/qt-6/qabstractlistmodel.html\n"
},
"delegate": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "Component"
},
"details": "The delegate component to repeat.\n\nThe delegate is given the same properties as in a Repeater, except `index` which\nis not currently implemented.\n\nIf the model is a `list<T>` or javascript array, a `modelData` property will be\nexposed containing the entry from the model. If the model is a [QAbstractListModel],\nthe roles from the model will be exposed.\n\nNote: TYPE99MQS_Quickshell99NObjectModel99TYPE has a single role named `modelData` for compatibility with normal lists.\n\n[QAbstractListModel]: https://doc.qt.io/qt-6/qabstractlistmodel.html\n",
"flags": ["default"]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,103 +0,0 @@
{
"name": "PanelWindow",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "QsWindow"
},
"description": "Decorationless window attached to screen edges by anchors.",
"details": "Decorationless window attached to screen edges by anchors.\n\n#### Example\nThe following snippet creates a white bar attached to the bottom of the screen.\n\n```qml\nPanelWindow {\n anchors {\n left: true\n bottom: true\n right: true\n }\n\n Text {\n anchors.centerIn: parent\n text: \"Hello!\"\n }\n}\n```\n",
"properties": {
"exclusiveZone": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "The amount of space reserved for the shell layer relative to its anchors.\nSetting this property sets TYPE99VexclusionMode99Tprop99TYPE to `ExclusionMode.Normal`.\n\n> [!NOTE] Either 1 or 3 anchors are required for the zone to take effect.\n"
},
"exclusionMode": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ExclusionMode"
},
"details": "Defaults to `ExclusionMode.Auto`.\n"
},
"margins": {
"type": {
"gadget": {
"left": {
"type": "qt",
"module": "qml",
"name": "int"
},
"bottom": {
"type": "qt",
"module": "qml",
"name": "int"
},
"right": {
"type": "qt",
"module": "qml",
"name": "int"
},
"top": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
},
"details": "Offsets from the sides of the screen.\n\n> [!NOTE] Only applies to edges with anchors\n"
},
"focusable": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the panel should accept keyboard focus. Defaults to false.\n\nNote: On Wayland this property corrosponds to TYPE99MQS_Quickshell_Wayland99NWlrLayershell99VkeyboardFocus99Tprop99TYPE.\n"
},
"aboveWindows": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the panel should render above standard windows. Defaults to true.\n\nNote: On Wayland this property corrosponds to TYPE99MQS_Quickshell_Wayland99NWlrLayershell99Vlayer99Tprop99TYPE.\n"
},
"anchors": {
"type": {
"gadget": {
"right": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"left": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"bottom": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"top": {
"type": "qt",
"module": "qml",
"name": "bool"
}
}
},
"details": "Anchors attach a shell window to the sides of the screen.\nBy default all anchors are disabled to avoid blocking the entire screen due to a misconfiguration.\n\n> [!NOTE] When two opposite anchors are attached at the same time, the corrosponding dimension\n> (width or height) will be forced to equal the screen width/height.\n> Margins can be used to create anchored windows that are also disconnected from the monitor sides.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,27 +0,0 @@
{
"name": "PersistentProperties",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "Reloadable"
},
"description": "Object that holds properties that can persist across a config reload.",
"details": "PersistentProperties holds properties declated in it across a reload, which is\noften useful for things like keeping expandable popups open and styling them.\n\nBelow is an example of using `PersistentProperties` to keep track of the state\nof an expandable panel. When the configuration is reloaded, the `expanderOpen` property\nwill be saved and the expandable panel will stay in the open/closed state.\n\n```qml\nPersistentProperties {\n id: persist\n reloadableId: \"persistedStates\"\n\n property bool expanderOpen: false\n}\n\nButton {\n id: expanderButton\n anchors.centerIn: parent\n text: \"toggle expander\"\n onClicked: persist.expanderOpen = !persist.expanderOpen\n}\n\nRectangle {\n anchors.top: expanderButton.bottom\n anchors.left: expanderButton.left\n anchors.right: expanderButton.right\n height: 100\n\n color: \"lightblue\"\n visible: persist.expanderOpen\n}\n```\n",
"properties": {},
"functions": [],
"signals": {
"loaded": {
"name": "loaded",
"details": "Called every time the reload stage completes.\nWill be called every time, including when nothing was loaded from an old instance.\n",
"params": []
},
"reloaded": {
"name": "reloaded",
"details": "Called every time the properties are reloaded.\nWill not be called if no old instance was loaded.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,42 +0,0 @@
{
"name": "PopupAdjustment",
"module": "Quickshell",
"type": "enum",
"description": "Adjustment strategy for popups that do not fit on screen.",
"details": "Adjustment strategy for popups. See TYPE99MQS_Quickshell99NPopupAnchor99Vadjustment99Tprop99TYPE.\n\nAdjustment flags can be combined with the `|` operator.\n\n`Flip` will be applied first, then `Slide`, then `Resize`.\n",
"variants": {
"FlipY": {
"details": "If the Y axis is constrained, the popup will invert its vertical gravity if any.\n"
},
"ResizeX": {
"details": "If the X axis is constrained, the width of the popup will be reduced to fit on screen.\n"
},
"Resize": {
"details": "Alias for `ResizeX | ResizeY`\n"
},
"ResizeY": {
"details": "If the Y axis is constrained, the height of the popup will be reduced to fit on screen.\n"
},
"All": {
"details": "Alias for `Flip | Slide | Resize`.\n"
},
"Slide": {
"details": "Alias for `SlideX | SlideY`.\n"
},
"SlideX": {
"details": "If the X axis is constrained, the popup will slide along the X axis until it fits onscreen.\n"
},
"SlideY": {
"details": "If the Y axis is constrained, the popup will slide along the Y axis until it fits onscreen.\n"
},
"Flip": {
"details": "Alias for `FlipX | FlipY`.\n"
},
"None": {
"details": null
},
"FlipX": {
"details": "If the X axis is constrained, the popup will invert its horizontal gravity if any.\n"
}
}
}

View file

@ -1,89 +0,0 @@
{
"name": "PopupAnchor",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Anchorpoint or positioner for popup windows.",
"details": "",
"flags": [
"uncreatable"
],
"properties": {
"edges": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "Edges"
},
"details": "The point on the anchor rectangle the popup should anchor to.\nOpposing edges suchs as `Edges.Left | Edges.Right` are not allowed.\n\nDefaults to `Edges.Top | Edges.Left`.\n"
},
"adjustment": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "PopupAdjustment"
},
"details": "The strategy used to adjust the popup's position if it would otherwise not fit on screen,\nbased on the anchor TYPE99Vrect99Tprop99TYPE, preferred TYPE99Vedges99Tprop99TYPE, and TYPE99Vgravity99Tprop99TYPE.\n\nSee the documentation for TYPE99MQS_Quickshell99NPopupAdjustment99TYPE for details.\n"
},
"gravity": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "Edges"
},
"details": "The direction the popup should expand towards, relative to the anchorpoint.\nOpposing edges suchs as `Edges.Left | Edges.Right` are not allowed.\n\nDefaults to `Edges.Bottom | Edges.Right`.\n"
},
"rect": {
"type": {
"gadget": {
"x": {
"type": "qt",
"module": "qml",
"name": "int"
},
"y": {
"type": "qt",
"module": "qml",
"name": "int"
},
"w": {
"type": "qt",
"module": "qml",
"name": "int"
},
"h": {
"type": "qt",
"module": "qml",
"name": "int"
},
"width": {
"type": "qt",
"module": "qml",
"name": "int"
},
"height": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
},
"details": "The anchorpoints the popup will attach to. Which anchors will be used is\ndetermined by the TYPE99Vedges99Tprop99TYPE, TYPE99Vgravity99Tprop99TYPE, and TYPE99Vadjustment99Tprop99TYPE.\n\nIf you leave TYPE99Vedges99Tprop99TYPE, TYPE99Vgravity99Tprop99TYPE and TYPE99Vadjustment99Tprop99TYPE at their default values,\nsetting more than `x` and `y` does not matter.\n\n> [!NOTE] The anchor rect cannot be smaller than 1x1 pixels.\n"
},
"window": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"details": "The window to anchor / attach the popup to.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,71 +0,0 @@
{
"name": "PopupWindow",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "QsWindow"
},
"description": "Popup window.",
"details": "Popup window that can display in a position relative to a floating\nor panel window.\n\n#### Example\nThe following snippet creates a panel with a popup centered over it.\n\n```qml\nPanelWindow {\n id: toplevel\n\n anchors {\n bottom: true\n left: true\n right: true\n }\n\n PopupWindow {\n parentWindow: toplevel\n relativeX: parentWindow.width / 2 - width / 2\n relativeY: parentWindow.height\n width: 500\n height: 500\n visible: true\n }\n}\n```\n",
"properties": {
"parentWindow": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"details": "> [!CAUTION] Deprecated in favor of `anchor.window`.\n\nThe parent window of this popup.\n\nChanging this property reparents the popup.\n"
},
"visible": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window is shown or hidden. Defaults to false.\n\nThe popup will not be shown until TYPE99Vanchor99Tprop99TYPE is valid, regardless of this property.\n"
},
"anchor": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "PopupAnchor"
},
"details": "The popup's anchor / positioner relative to another window. The popup will not be\nshown until it has a valid anchor relative to a window and TYPE99Vvisible99Tprop99TYPE is true.\n\nYou can set properties of the anchor like so:\n```qml\nPopupWindow {\n anchor.window: parentwindow\n // or\n anchor {\n window: parentwindow\n }\n}\n```\n",
"flags": [
"readonly"
]
},
"relativeX": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "> [!CAUTION] Deprecated in favor of `anchor.rect.x`.\n\nThe X position of the popup relative to the parent window.\n"
},
"relativeY": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "> [!CAUTION] Deprecated in favor of `anchor.rect.y`.\n\nThe Y position of the popup relative to the parent window.\n"
},
"screen": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ShellScreen"
},
"details": "The screen that the window currently occupies.\n\nThis may be modified to move the window to the given screen.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,81 +0,0 @@
{
"name": "QsMenuAnchor",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Display anchor for platform menus.",
"details": "",
"properties": {
"anchor": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "PopupAnchor"
},
"details": "The menu's anchor / positioner relative to another window. The menu will not be\nshown until it has a valid anchor.\n\n> [!NOTE] *The following is subject to change and NOT a guarantee of future behavior.*\n>\n> A snapshot of the anchor at the time TYPE99Vopened99Tsignal99TYPE is emitted will be\n> used to position the menu. Additional changes to the anchor after this point\n> will not affect the placement of the menu.\n\nYou can set properties of the anchor like so:\n```qml\nQsMenuAnchor {\n anchor.window: parentwindow\n // or\n anchor {\n window: parentwindow\n }\n}\n```\n",
"flags": [
"readonly"
]
},
"menu": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuHandle"
},
"details": "The menu that should be displayed on this anchor.\n\nSee also: TYPE99MQS_Quickshell_Services_SystemTray99NSystemTrayItem99Vmenu99Tprop99TYPE.\n"
},
"visible": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the menu is currently open and visible.\n\nSee also: TYPE99Vopen99Tfunc99TYPE, TYPE99Vclose99Tfunc99TYPE.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "close",
"id": "close",
"details": "Close the open menu.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "open",
"id": "open",
"details": "Open the given menu on this menu Requires that TYPE99Vanchor99Tprop99TYPE is valid.\n",
"params": []
}
],
"signals": {
"closed": {
"name": "closed",
"details": "Sent when the menu is closed.\n",
"params": []
},
"opened": {
"name": "opened",
"details": "Sent when the menu is displayed onscreen which may be after TYPE99Vvisible99Tprop99TYPE\nbecomes true.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,50 +0,0 @@
{
"name": "QsMenuButtonType",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Button type associated with a QsMenuEntry.",
"details": "See TYPE99MQS_Quickshell99NQsMenuEntry99VbuttonType99Tprop99TYPE.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuButtonType"
}
}
]
}
],
"signals": {},
"variants": {
"None": {
"details": "This menu item does not have a checkbox or a radiobutton associated with it.\n"
},
"CheckBox": {
"details": "This menu item should draw a checkbox.\n"
},
"RadioButton": {
"details": "This menu item should draw a radiobutton.\n"
}
}
}

View file

@ -1,140 +0,0 @@
{
"name": "QsMenuEntry",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuHandle"
},
"description": null,
"details": null,
"flags": [
"uncreatable"
],
"properties": {
"enabled": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"hasChildren": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If this menu item has children that can be accessed through a TYPE99MQS_Quickshell99NQsMenuOpener99TYPE.\n",
"flags": [
"readonly"
]
},
"isSeparator": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If this menu item should be rendered as a separator between other items.\n\nNo other properties have a meaningful value when TYPE99VisSeparator99Tprop99TYPE is true.\n",
"flags": [
"readonly"
]
},
"buttonType": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuButtonType"
},
"details": "If this menu item has an associated checkbox or radiobutton.\n",
"flags": [
"readonly"
]
},
"icon": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Url of the menu item's icon or `\"\"` if it doesn't have one.\n\nThis can be passed to [Image.source](https://doc.qt.io/qt-6/qml-qtquick-image.html#source-prop)\nas shown below.\n\n```qml\nImage {\n source: menuItem.icon\n // To get the best image quality, set the image source size to the same size\n // as the rendered image.\n sourceSize.width: width\n sourceSize.height: height\n}\n```\n",
"flags": [
"readonly"
]
},
"checkState": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "The check state of the checkbox or radiobutton if applicable, as a\n[Qt.CheckState](https://doc.qt.io/qt-6/qt.html#CheckState-enum).\n",
"flags": [
"readonly"
]
},
"text": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Text of the menu item.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "display",
"id": "display",
"details": "Display a platform menu at the given location relative to the parent window.\n",
"params": [
{
"name": "parentWindow",
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
{
"name": "relativeX",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
},
{
"name": "relativeY",
"type": {
"type": "qt",
"module": "qml",
"name": "int"
}
}
]
}
],
"signals": {
"triggered": {
"name": "triggered",
"details": "Send a trigger/click signal to the menu entry.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,19 +0,0 @@
{
"name": "QsMenuHandle",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Menu handle for QsMenuOpener",
"details": "See TYPE99MQS_Quickshell99NQsMenuOpener99TYPE.\n",
"flags": [
"uncreatable"
],
"properties": {},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,41 +0,0 @@
{
"name": "QsMenuOpener",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Provides access to children of a QsMenuEntry",
"details": "",
"properties": {
"menu": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuHandle"
},
"details": "The menu to retrieve children from.\n"
},
"children": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell",
"name": "QsMenuEntry"
}
},
"details": "The children of the given menu.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,124 +0,0 @@
{
"name": "QsWindow",
"module": "Quickshell",
"type": "class",
"super": {
"type": "local",
"module": "Quickshell",
"name": "Reloadable"
},
"description": "Base class of Quickshell windows",
"details": "Base class of Quickshell windows\n### Attached properties\n`QSWindow` can be used as an attached object of anything that subclasses TYPE99MQT_qml_QtQuick99NItem99TYPE.\nIt provides the following properties\n- `window` - the `QSWindow` object.\n- `contentItem` - the `contentItem` property of the window.\n",
"flags": [
"uncreatable"
],
"properties": {
"mask": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "Region"
},
"details": "The clickthrough mask. Defaults to null.\n\nIf non null then the clickable areas of the window will be determined by the provided region.\n\n```qml\nShellWindow {\n // The mask region is set to `rect`, meaning only `rect` is clickable.\n // All other clicks pass through the window to ones behind it.\n mask: Region { item: rect }\n\n Rectangle {\n id: rect\n\n anchors.centerIn: parent\n width: 100\n height: 100\n }\n}\n```\n\nIf the provided region's intersection mode is `Combine` (the default),\nthen the region will be used as is. Otherwise it will be applied on top of the window region.\n\nFor example, setting the intersection mode to `Xor` will invert the mask and make everything in\nthe mask region not clickable and pass through clicks inside it through the window.\n\n```qml\nShellWindow {\n // The mask region is set to `rect`, but the intersection mode is set to `Xor`.\n // This inverts the mask causing all clicks inside `rect` to be passed to the window\n // behind this one.\n mask: Region { item: rect; intersection: Intersection.Xor }\n\n Rectangle {\n id: rect\n\n anchors.centerIn: parent\n width: 100\n height: 100\n }\n}\n```\n"
},
"height": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null
},
"width": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": null
},
"windowTransform": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"details": "Opaque property that will receive an update when factors that affect the window's position\nand transform changed.\n\nThis property is intended to be used to force a binding update,\nalong with map[To|From]Item (which is not reactive).\n",
"flags": [
"readonly"
]
},
"contentItem": {
"type": {
"type": "qt",
"module": "qml.QtQuick",
"name": "Item"
},
"details": null,
"flags": [
"readonly"
]
},
"screen": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ShellScreen"
},
"details": "The screen that the window currently occupies.\n\nThis may be modified to move the window to the given screen.\n"
},
"data": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
"details": null,
"flags": [
"default",
"readonly"
]
},
"visible": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window should be shown or hidden. Defaults to true.\n"
},
"color": {
"type": {
"type": "qt",
"module": "qml",
"name": "color"
},
"details": "The background color of the window. Defaults to white.\n\n> [!WARNING] This seems to behave weirdly when using transparent colors on some systems.\n> Using a colored content item over a transparent window is the recommended way to work around this:\n> ```qml\n> ProxyWindow {\n> color: \"transparent\"\n> Rectangle {\n> anchors.fill: parent\n> color: \"#20ffffff\"\n>\n> // your content here\n> }\n> }\n> ```\n"
},
"backingWindowVisible": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the window is currently shown. You should generally prefer [visible](#prop.visible).\n\nThis property is useful for ensuring windows spawn in a specific order, and you should\nnot use it in place of [visible](#prop.visible).\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {
"windowConnected": {
"name": "windowConnected",
"details": null,
"params": []
}
},
"variants": {}
}

View file

@ -1,149 +0,0 @@
{
"name": "Quickshell",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": null,
"details": null,
"flags": [
"singleton"
],
"properties": {
"screens": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell",
"name": "ShellScreen"
}
},
"details": "All currently connected screens.\n\nThis property updates as connected screens change.\n\n#### Reusing a window on every screen\n```qml\nShellRoot {\n Variants {\n // see Variants for details\n variants: Quickshell.screens\n PanelWindow {\n property var modelData\n screen: modelData\n }\n }\n}\n```\n\nThis creates an instance of your window once on every screen.\nAs screens are added or removed your window will be created or destroyed on those screens.\n",
"flags": [
"readonly"
]
},
"watchFiles": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If true then the configuration will be reloaded whenever any files change.\nDefaults to true.\n"
},
"processId": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "Quickshell's process id.\n",
"flags": [
"readonly"
]
},
"workingDirectory": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Quickshell's working directory. Defaults to whereever quickshell was launched from.\n"
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "variant"
},
"name": "env",
"id": "env",
"details": "Returns the string value of an environment variable or null if it is not set.\n",
"params": [
{
"name": "variable",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "iconPath",
"id": "iconPath",
"details": "Returns a string usable for a TYPE99MQT_qml_QtQuick99NImage99Vsource99Tprop99TYPE for a given system icon.\n",
"params": [
{
"name": "icon",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "reload",
"id": "reload",
"details": "Reload the shell.\n\n`hard` - perform a hard reload. If this is false, Quickshell will attempt to reuse windows\nthat already exist. If true windows will be recreated.\n\nSee TYPE99MQS_Quickshell99NReloadable99TYPE for more information on what can be reloaded and how.\n",
"params": [
{
"name": "hard",
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
}
}
]
}
],
"signals": {
"reloadCompleted": {
"name": "reloadCompleted",
"details": "The reload sequence has completed successfully.\n",
"params": []
},
"reloadFailed": {
"name": "reloadFailed",
"details": "The reload sequence has failed.\n",
"params": [
{
"name": "errorString",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
"lastWindowClosed": {
"name": "lastWindowClosed",
"details": "Sent when the last window is closed.\n\nTo make the application exit when the last window is closed run `Qt.quit()`.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,42 +0,0 @@
{
"name": "QuickshellSettings",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Accessor for some options under the Quickshell type.",
"details": "",
"flags": [
"uncreatable"
],
"properties": {
"workingDirectory": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "Quickshell's working directory. Defaults to whereever quickshell was launched from.\n"
},
"watchFiles": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If true then the configuration will be reloaded whenever any files change.\nDefaults to true.\n"
}
},
"functions": [],
"signals": {
"lastWindowClosed": {
"name": "lastWindowClosed",
"details": "Sent when the last window is closed.\n\nTo make the application exit when the last window is closed run `Qt.quit()`.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,101 +0,0 @@
{
"name": "Region",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A composable region used as a mask.",
"details": "See TYPE99MQS_Quickshell99NQsWindow99Vmask99Tprop99TYPE.\n",
"properties": {
"shape": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "RegionShape"
},
"details": "Defaults to `Rect`.\n"
},
"regions": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell",
"name": "Region"
}
},
"details": "Regions to apply on top of this region.\n\nRegions can be nested to create a more complex region.\nFor example this will create a square region with a cutout in the middle.\n```qml\nRegion {\n width: 100; height: 100;\n\n Region {\n x: 50; y: 50;\n width: 50; height: 50;\n intersection: Intersection.Subtract\n }\n}\n```\n",
"flags": [
"default",
"readonly"
]
},
"height": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "Defaults to 0. Does nothing if TYPE99Vitem99Tprop99TYPE is set.\n"
},
"item": {
"type": {
"type": "qt",
"module": "qml.QtQuick",
"name": "Item"
},
"details": "The item that determines the geometry of the region.\n`item` overrides TYPE99Vx99Tprop99TYPE, TYPE99Vy99Tprop99TYPE, TYPE99Vwidth99Tprop99TYPE and TYPE99Vheight99Tprop99TYPE.\n"
},
"width": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "Defaults to 0. Does nothing if TYPE99Vitem99Tprop99TYPE is set.\n"
},
"intersection": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "Intersection"
},
"details": "The way this region interacts with its parent region. Defaults to `Combine`.\n"
},
"x": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "Defaults to 0. Does nothing if TYPE99Vitem99Tprop99TYPE is set.\n"
},
"y": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "Defaults to 0. Does nothing if TYPE99Vitem99Tprop99TYPE is set.\n"
}
},
"functions": [],
"signals": {
"childrenChanged": {
"name": "childrenChanged",
"details": null,
"params": []
},
"changed": {
"name": "changed",
"details": null,
"params": []
}
},
"variants": {}
}

View file

@ -1,15 +0,0 @@
{
"name": "RegionShape",
"module": "Quickshell",
"type": "enum",
"description": "Shape of a Region.",
"details": "See TYPE99MQS_Quickshell99NRegion99Vshape99Tprop99TYPE.\n",
"variants": {
"Rect": {
"details": null
},
"Ellipse": {
"details": null
}
}
}

View file

@ -1,28 +0,0 @@
{
"name": "Reloadable",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "The base class of all types that can be reloaded.",
"details": "Reloadables will attempt to take specific state from previous config revisions if possible.\nSome examples are TYPE99MQS_Quickshell99NProxyWindowBase99TYPE and TYPE99MQS_Quickshell99NPersistentProperties99TYPE\n",
"flags": [
"uncreatable"
],
"properties": {
"reloadableId": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "An additional identifier that can be used to try to match a reloadable object to its\nprevious state.\n\nSimply keeping a stable identifier across config versions (saves) is\nenough to help the reloader figure out which object in the old revision corrosponds to\nthis object in the current revision, and facilitate smoother reloading.\n\nNote that identifiers are scoped, and will try to do the right thing in context.\nFor example if you have a TYPE99MQS_Quickshell99NVariants99TYPE wrapping an object with an identified element inside,\na scope is created at the variant level.\n\n```qml\nVariants {\n // multiple variants of the same object tree\n variants: [ { foo: 1 }, { foo: 2 } ]\n\n // any non `Reloadable` object\n QtObject {\n FloatingWindow {\n // this FloatingWindow will now be matched to the same one in the previous\n // widget tree for its variant. \"myFloatingWindow\" refers to both the variant in\n // `foo: 1` and `foo: 2` for each tree.\n reloadableId: \"myFloatingWindow\"\n\n // ...\n }\n }\n}\n```\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -1,76 +0,0 @@
{
"name": "Retainable",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Attached object for types that can have delayed destruction.",
"details": "Retainable works as an attached property that allows objects to be\nkept around (retained) after they would normally be destroyed, which\nis especially useful for things like exit transitions.\n\nAn object that is retainable will have TYPE99MQS_Quickshell99NRetainable99TYPE as an attached property.\nAll retainable objects will say that they are retainable on their respective\ntypeinfo pages.\n\n> [!NOTE] Working directly with TYPE99MQS_Quickshell99NRetainable99TYPE is often overly complicated and\n> error prone. For this reason TYPE99MQS_Quickshell99NRetainableLock99TYPE should\n> usually be used instead.\n",
"flags": [
"uncreatable"
],
"properties": {
"retained": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the object is currently in a retained state.\n",
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "forceUnlock",
"id": "forceUnlock",
"details": "Forcibly remove all locks, destroying the object.\n\nTYPE99Vunlock99Tfunc99TYPE should usually be preferred.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "lock",
"id": "lock",
"details": "Hold a lock on the object so it cannot be destroyed.\n\nA counter is used to ensure you can lock the object from multiple places\nand it will not be unlocked until the same number of unlocks as locks have occurred.\n\n> [!WARNING] It is easy to forget to unlock a locked object.\n> Doing so will create what is effectively a memory leak.\n>\n> Using TYPE99MQS_Quickshell99NRetainableLock99TYPE is recommended as it will help\n> avoid this scenario and make misuse more obvious.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "unlock",
"id": "unlock",
"details": "Remove a lock on the object. See TYPE99Vlock99Tfunc99TYPE for more information.\n",
"params": []
}
],
"signals": {
"dropped": {
"name": "dropped",
"details": "This signal is sent when the object would normally be destroyed.\n\nIf all signal handlers return and no locks are in place, the object will be destroyed.\nIf at least one lock is present the object will be retained until all are removed.\n",
"params": []
},
"aboutToDestroy": {
"name": "aboutToDestroy",
"details": "This signal is sent immediately before the object is destroyed.\nAt this point destruction cannot be interrupted.\n",
"params": []
}
},
"variants": {}
}

View file

@ -1,55 +0,0 @@
{
"name": "RetainableLock",
"module": "Quickshell",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A helper for easily using Retainable.",
"details": "A RetainableLock provides extra safety and ease of use for locking\nTYPE99MQS_Quickshell99NRetainable99TYPE objects. A retainable object can be locked by multiple\nlocks at once, and each lock re-exposes relevant properties\nof the retained objects.\n\n#### Example\nThe code below will keep a retainable object alive for as long as the\nRetainableLock exists.\n\n```qml\nRetainableLock {\n object: aRetainableObject\n locked: true\n}\n```\n",
"properties": {
"retained": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the object is currently in a retained state.\n",
"flags": [
"readonly"
]
},
"object": {
"type": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"details": "The object to lock. Must be TYPE99MQS_Quickshell99NRetainable99TYPE.\n"
},
"locked": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the object should be locked.\n"
}
},
"functions": [],
"signals": {
"dropped": {
"name": "dropped",
"details": "Rebroadcast of the object's TYPE99MQS_Quickshell99NRetainable99Vdropped99Tsignal99TYPE.\n",
"params": []
},
"aboutToDestroy": {
"name": "aboutToDestroy",
"details": "Rebroadcast of the object's TYPE99MQS_Quickshell99NRetainable99VaboutToDestroy99Tsignal99TYPE.\n",
"params": []
}
},
"variants": {}
}

Some files were not shown because too many files have changed in this diff Show more