mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-12-22 09:39:48 +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
|
||||
|
||||
## 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)
|
||||
|
||||
Use the `source` keyword to source another file.
|
||||
|
|
|
@ -34,40 +34,9 @@ the toggleable / numerical options.
|
|||
|
||||
{{< /callout >}}
|
||||
|
||||
## Line style
|
||||
## Language style and syntax
|
||||
|
||||
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.
|
||||
|
||||
### 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
|
||||
```
|
||||
See the [hyprlang page](../Hypr-Ecosystem/hyprlang).
|
||||
|
||||
## Basic configuring
|
||||
|
||||
|
|
|
@ -5,5 +5,100 @@ title: hyprlang
|
|||
|
||||
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/).
|
||||
|
||||
|
|
Loading…
Reference in a new issue