From a3bfa174cdf22bf9366bb511ffb7d461d49b3cf7 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 17 Jul 2025 20:28:21 +0200 Subject: quickshell --- Quickshell.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Quickshell.md (limited to 'Quickshell.md') diff --git a/Quickshell.md b/Quickshell.md new file mode 100644 index 0000000..a0401f4 --- /dev/null +++ b/Quickshell.md @@ -0,0 +1,49 @@ +https://quickshell.org + +XDG standard config paths. Looks for `shell.qml` in all sub-directories unless root dir has one. Target specific config using `quickshell -c configname`. + +# Windows +Requires `import Quickshell`. +Types: +- PanelWindow: for bars, widgets and overlays +- FloatingWindow: standard desktop windows + +[Type reference](https://quickshell.org/docs/types/Quickshell/PanelWindow) + +# Text +[Text](https://doc.qt.io/qt-6/qml-qtquick-text.html) requires `import QtQuick. +Set `id: somename` to reference by `somename`, ie `somename.text = "blaat"` + +Strings can be concat using `+` +# Processes +Requires `import Quickshell.Io` (NOTE the capital I in Io) + +[Process](https://quickshell.org/docs/types/quickshell.io/process) object runs commands. +[StdioCollector](https://quickshell.org/docs/types/Quickshell.Io/StdioCollector) reads process' output. + +Use a [Timer](https://doc.qt.io/qt-6/qml-qtqml-timer.html) to run Process on an interval. + +# Component +A reusable tree of objects. +[Variants](https://quickshell.org/docs/types/Quickshell/Variants) creates instances of a component based on user supplied data. For example this used to create instances of a window based on the monitor list. + +To prevent many of the same processes when we reuse a component many times use `Scope` to move them outside of the reused component. +We can use a [Property Definition](https://quickshell.org/docs/configuration/qml-overview/#property-definitions) on the parent scope to communicate between components in different scopes but in the same parent scope. Properties are reactive. + +# Multiple files +shell.qml is the root. If a filename starts with a capital letter it can be referenced. E.g Bar.qml +``` +Scope { + Bar {} +} +``` + +Other folders can be imported using `import` statements. + +# Singleton +Has only one instance that is accessible from every scope. For example the date process in the bar. + +Set `pragma Singleton` at the top of the file ( before imports ). and Use `Singleton` type. + + +[Clock formatting](https://doc.qt.io/qt-6/qml-qtqml-qt.html#formatDateTime-method) \ No newline at end of file -- cgit v1.2.3 From 1dbacfecb241f5eb6b512f78b0b243615b971c1a Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 17 Jul 2025 21:35:57 +0200 Subject: read more about QML language --- Quickshell.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) (limited to 'Quickshell.md') diff --git a/Quickshell.md b/Quickshell.md index a0401f4..607441f 100644 --- a/Quickshell.md +++ b/Quickshell.md @@ -30,6 +30,29 @@ A reusable tree of objects. To prevent many of the same processes when we reuse a component many times use `Scope` to move them outside of the reused component. We can use a [Property Definition](https://quickshell.org/docs/configuration/qml-overview/#property-definitions) on the parent scope to communicate between components in different scopes but in the same parent scope. Properties are reactive. +# Objects +Properties + +`[required] [readonly] [default] property [: binding]` + +`id` is a special property that can be used to reference an object throughout +the entire current file. Has to be lowercase. + + +Functions + +``` +function ([: ][, ...])[: returntype] { + // multiline expression (note that `return` is required) +} +``` + +Can be invoked in expressions, reactivity is carried through -- so +if the argument value changes all expressions are re-evaluated. + +Lambas `() => ...` + + # Multiple files shell.qml is the root. If a filename starts with a capital letter it can be referenced. E.g Bar.qml ``` @@ -46,4 +69,28 @@ Has only one instance that is accessible from every scope. For example the date Set `pragma Singleton` at the top of the file ( before imports ). and Use `Singleton` type. -[Clock formatting](https://doc.qt.io/qt-6/qml-qtqml-qt.html#formatDateTime-method) \ No newline at end of file +[Clock formatting](https://doc.qt.io/qt-6/qml-qtqml-qt.html#formatDateTime-method) + + +# Signals +Event emitter. +Same rules as properties and function. + +`signal (: [, ...])` + +Objects have implict `on` (note capital S) for each signal defined. + +Connections object can be used to access difficult to reach signal handlers, +such as those from Singletons. + +`Connections { target: id; function onClicked() # example target: button }` +Does that somehow override the onClicked function of the target?? + + +All properties have `propertynameChanged` handler, powering the reactivity. + + +# Attached objects +Every object has `Component` attached, used to run stuff when an Object finishes +initializes using `Component.onCompleted`. + -- cgit v1.2.3 From 8bde51ba29aa23d1b6e01826b6af720b4256bd78 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 24 Jul 2025 21:24:53 +0200 Subject: quickshell --- Quickshell.md | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'Quickshell.md') diff --git a/Quickshell.md b/Quickshell.md index 607441f..c801fee 100644 --- a/Quickshell.md +++ b/Quickshell.md @@ -1,8 +1,14 @@ +[[Item Size Position]] + +--- + +# Quickshell + https://quickshell.org XDG standard config paths. Looks for `shell.qml` in all sub-directories unless root dir has one. Target specific config using `quickshell -c configname`. -# Windows +## Windows Requires `import Quickshell`. Types: - PanelWindow: for bars, widgets and overlays @@ -10,12 +16,12 @@ Types: [Type reference](https://quickshell.org/docs/types/Quickshell/PanelWindow) -# Text +## Text [Text](https://doc.qt.io/qt-6/qml-qtquick-text.html) requires `import QtQuick. Set `id: somename` to reference by `somename`, ie `somename.text = "blaat"` Strings can be concat using `+` -# Processes +## Processes Requires `import Quickshell.Io` (NOTE the capital I in Io) [Process](https://quickshell.org/docs/types/quickshell.io/process) object runs commands. @@ -23,25 +29,24 @@ Requires `import Quickshell.Io` (NOTE the capital I in Io) Use a [Timer](https://doc.qt.io/qt-6/qml-qtqml-timer.html) to run Process on an interval. -# Component +## Component A reusable tree of objects. [Variants](https://quickshell.org/docs/types/Quickshell/Variants) creates instances of a component based on user supplied data. For example this used to create instances of a window based on the monitor list. To prevent many of the same processes when we reuse a component many times use `Scope` to move them outside of the reused component. We can use a [Property Definition](https://quickshell.org/docs/configuration/qml-overview/#property-definitions) on the parent scope to communicate between components in different scopes but in the same parent scope. Properties are reactive. -# Objects +## Objects Properties `[required] [readonly] [default] property [: binding]` -`id` is a special property that can be used to reference an object throughout -the entire current file. Has to be lowercase. +`id` is a special property that can be used to reference an object throughout the entire current file. Has to be lowercase. Functions -``` +```qml function ([: ][, ...])[: returntype] { // multiline expression (note that `return` is required) } @@ -53,9 +58,9 @@ if the argument value changes all expressions are re-evaluated. Lambas `() => ...` -# Multiple files +## Multiple files shell.qml is the root. If a filename starts with a capital letter it can be referenced. E.g Bar.qml -``` +```qml Scope { Bar {} } @@ -63,7 +68,7 @@ Scope { Other folders can be imported using `import` statements. -# Singleton +## Singleton Has only one instance that is accessible from every scope. For example the date process in the bar. Set `pragma Singleton` at the top of the file ( before imports ). and Use `Singleton` type. @@ -72,7 +77,7 @@ Set `pragma Singleton` at the top of the file ( before imports ). and Use `Singl [Clock formatting](https://doc.qt.io/qt-6/qml-qtqml-qt.html#formatDateTime-method) -# Signals +## Signals Event emitter. Same rules as properties and function. @@ -90,7 +95,7 @@ Does that somehow override the onClicked function of the target?? All properties have `propertynameChanged` handler, powering the reactivity. -# Attached objects +## Attached objects Every object has `Component` attached, used to run stuff when an Object finishes initializes using `Component.onCompleted`. -- cgit v1.2.3