mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-11-08 06:25:58 +01:00
hyprlang: improve docs
This commit is contained in:
parent
792ec103f6
commit
1155027ccd
3 changed files with 97 additions and 59 deletions
|
@ -37,32 +37,6 @@ You can execute a shell script on:
|
||||||
|
|
||||||
`exec-shutdown = command` will execute only on shutdown
|
`exec-shutdown = command` will execute only on shutdown
|
||||||
|
|
||||||
## Defining variables
|
|
||||||
|
|
||||||
You can define your own custom variables using a dollar sign (`$`):
|
|
||||||
|
|
||||||
```ini
|
|
||||||
$VAR = value
|
|
||||||
```
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
$MyFavoriteGame = Among Us
|
|
||||||
```
|
|
||||||
|
|
||||||
Then you can reference them in the rest of the config. For example:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
col.active_border = $MyColor
|
|
||||||
```
|
|
||||||
|
|
||||||
You are allowed to combine variables in-place with other strings, like this:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
col.active_border = ff$MyRedValue1111
|
|
||||||
```
|
|
||||||
|
|
||||||
## Sourcing (multi-file)
|
## Sourcing (multi-file)
|
||||||
|
|
||||||
Use the `source` keyword to source another file.
|
Use the `source` keyword to source another file.
|
||||||
|
|
|
@ -34,40 +34,9 @@ the toggleable / numerical options.
|
||||||
|
|
||||||
{{< /callout >}}
|
{{< /callout >}}
|
||||||
|
|
||||||
## Line style
|
## Language style and syntax
|
||||||
|
|
||||||
Every config line is a command followed by a value.
|
See the [hyprlang page](../Hypr-Ecosystem/hyprlang).
|
||||||
|
|
||||||
```ini
|
|
||||||
COMMAND = VALUE
|
|
||||||
```
|
|
||||||
|
|
||||||
The command can be a variable, or a special keyword (described further in this
|
|
||||||
page)
|
|
||||||
|
|
||||||
The trailing spaces at the beginning and end of words are not necessary, and are
|
|
||||||
there only for legibility.
|
|
||||||
|
|
||||||
### Comments
|
|
||||||
|
|
||||||
Comments are started with the `#` character.
|
|
||||||
|
|
||||||
If you want to escape it (put an actual `#` and not start a comment) you can use
|
|
||||||
`##`. It will be turned into a single `#` that _will_ be a part of your line.
|
|
||||||
|
|
||||||
### Escaping errors
|
|
||||||
|
|
||||||
If you use plugins, you may want to ignore errors from missing options/keywords
|
|
||||||
so that you don't get an error bar before they are loaded. To do so, do this:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
# hyprlang noerror true
|
|
||||||
|
|
||||||
bind = MOD, KEY, something, amogus
|
|
||||||
someoption = blah
|
|
||||||
|
|
||||||
# hyprlang noerror false
|
|
||||||
```
|
|
||||||
|
|
||||||
## Basic configuring
|
## Basic configuring
|
||||||
|
|
||||||
|
|
|
@ -5,5 +5,100 @@ title: hyprlang
|
||||||
|
|
||||||
hyprlang is a library that implements parsing for the hypr configuration language.
|
hyprlang is a library that implements parsing for the hypr configuration language.
|
||||||
|
|
||||||
|
## Syntax
|
||||||
|
|
||||||
|
### Line style
|
||||||
|
|
||||||
|
Every config line is a command followed by a value.
|
||||||
|
|
||||||
|
```ini
|
||||||
|
COMMAND = VALUE
|
||||||
|
```
|
||||||
|
|
||||||
|
The command can be a variable, or a special keyword (described further in this
|
||||||
|
page)
|
||||||
|
|
||||||
|
The trailing spaces at the beginning and end of words are not necessary, and are
|
||||||
|
there only for legibility.
|
||||||
|
|
||||||
|
### Categories
|
||||||
|
|
||||||
|
Categories can be regular, and "special".
|
||||||
|
|
||||||
|
Both are specified the same:
|
||||||
|
```ini
|
||||||
|
category {
|
||||||
|
variable = value
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Special categories can have other properties, like for example containing a key:
|
||||||
|
```ini
|
||||||
|
special {
|
||||||
|
key = A
|
||||||
|
variable = value
|
||||||
|
}
|
||||||
|
special {
|
||||||
|
key = B
|
||||||
|
variable = value
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This is like defining two "groups", one with the key of A, another with B. Hyprland for
|
||||||
|
example uses those for per-device configs.
|
||||||
|
|
||||||
|
### Defining variables
|
||||||
|
|
||||||
|
Variables can be defined like so:
|
||||||
|
```ini
|
||||||
|
$VAR = myData
|
||||||
|
```
|
||||||
|
|
||||||
|
Later on, you can use them like so:
|
||||||
|
```ini
|
||||||
|
$SUFFIX = -san
|
||||||
|
$NAME = Jeremy
|
||||||
|
greeting = Hello, $NAME$SUFFIX.
|
||||||
|
```
|
||||||
|
|
||||||
|
You do not need spaces to separate values, or spaces around values.
|
||||||
|
|
||||||
|
### Comments
|
||||||
|
|
||||||
|
Comments are started with the `#` character.
|
||||||
|
|
||||||
|
If you want to escape it (put an actual `#` and not start a comment) you can use
|
||||||
|
`##`. It will be turned into a single `#` that _will_ be a part of your line.
|
||||||
|
|
||||||
|
### Escaping errors
|
||||||
|
|
||||||
|
If you use plugins, you may want to ignore errors from missing options/keywords
|
||||||
|
so that you don't get an error bar before they are loaded. To do so, do this:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# hyprlang noerror true
|
||||||
|
|
||||||
|
bind = MOD, KEY, something, amogus
|
||||||
|
someoption = blah
|
||||||
|
|
||||||
|
# hyprlang noerror false
|
||||||
|
```
|
||||||
|
|
||||||
|
### Inline options
|
||||||
|
|
||||||
|
If you want to specify an option inline, without opening and closing a category, the separator is `:`:
|
||||||
|
```ini
|
||||||
|
category:variable = value
|
||||||
|
```
|
||||||
|
|
||||||
|
If the category is special and requires a key, you can do:
|
||||||
|
```ini
|
||||||
|
category[keyvalue]:variable = value
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the syntax used by `hyprctl keyword`, for example.
|
||||||
|
|
||||||
|
## Developer documentation
|
||||||
|
|
||||||
See the documentation at [hyprland.org/hyprlang](https://hyprland.org/hyprlang/).
|
See the documentation at [hyprland.org/hyprlang](https://hyprland.org/hyprlang/).
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue