mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-11-30 00:15:57 +01:00
Merge pull request #1 from 0x4nt/main
hyprland-wiki: Paragraphs and syntax correction
This commit is contained in:
commit
b76e009bc3
5 changed files with 101 additions and 83 deletions
|
@ -14,25 +14,27 @@ or
|
||||||
animation=NAME,ONOFF,SPEED,CURVE
|
animation=NAME,ONOFF,SPEED,CURVE
|
||||||
```
|
```
|
||||||
|
|
||||||
for example:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
animation=workspaces,1,8,default
|
|
||||||
animation=windows,1,10,myepiccurve,slide
|
|
||||||
```
|
|
||||||
|
|
||||||
`ONOFF` can be either 0 or 1, 0 to disable, 1 to enable.
|
`ONOFF` can be either 0 or 1, 0 to disable, 1 to enable.
|
||||||
|
|
||||||
`SPEED` is the amount of ds (1ds = 100ms) the animation will take
|
`SPEED` is the amount of ds (1ds = 100ms) the animation will take
|
||||||
|
|
||||||
`CURVE` is the bezier curve name, see [curves](#curves).
|
`CURVE` is the bezier curve name, see [curves](#curves).
|
||||||
|
|
||||||
`STYLE` (optional) is the animation style
|
`STYLE` is the animation style
|
||||||
|
|
||||||
|
All the parameters are required, exepct the `STYLE` one.
|
||||||
|
|
||||||
The animations are a tree. If an animation is unset, it will inherit its
|
The animations are a tree. If an animation is unset, it will inherit its
|
||||||
parent's values.
|
parent's values.
|
||||||
|
|
||||||
_Animation tree:_
|
### Examples
|
||||||
|
|
||||||
|
```ini
|
||||||
|
animation=workspaces,1,8,default
|
||||||
|
animation=windows,1,10,myepiccurve,slide
|
||||||
|
```
|
||||||
|
|
||||||
|
## Animation tree
|
||||||
|
|
||||||
```
|
```
|
||||||
global
|
global
|
||||||
|
@ -51,7 +53,7 @@ global
|
||||||
↳ specialWorkspace - styles: same as workspaces
|
↳ specialWorkspace - styles: same as workspaces
|
||||||
```
|
```
|
||||||
|
|
||||||
## Extras
|
### Extras
|
||||||
|
|
||||||
For animation style `popin` in `windows`, you can specify a minimum percentage
|
For animation style `popin` in `windows`, you can specify a minimum percentage
|
||||||
to start from. For example:
|
to start from. For example:
|
||||||
|
@ -62,7 +64,7 @@ animation=windows,1,8,default,popin 80%
|
||||||
|
|
||||||
will make the animation 80% -> 100% of the size.
|
will make the animation 80% -> 100% of the size.
|
||||||
|
|
||||||
## Curves
|
### Curves
|
||||||
|
|
||||||
Defining your own Bezier curve can be done with the `bezier` keyword:
|
Defining your own Bezier curve can be done with the `bezier` keyword:
|
||||||
|
|
||||||
|
@ -72,9 +74,10 @@ bezier=NAME,X0,Y0,X1,Y1
|
||||||
|
|
||||||
where `NAME` is the name, and the rest are two points for the Cubic Bezier. A
|
where `NAME` is the name, and the rest are two points for the Cubic Bezier. A
|
||||||
good website to design your bezier can be found
|
good website to design your bezier can be found
|
||||||
[here, on cssportal.com](https://www.cssportal.com/css-cubic-bezier-generator/).
|
[here, on cssportal.com](https://www.cssportal.com/css-cubic-bezier-generator/),
|
||||||
|
if you want to instead choose from a list of beizers, you can check out [easings.net](https://easings.net).
|
||||||
|
|
||||||
Example curve:
|
#### Example
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
bezier=overshot,0.05,0.9,0.1,1.1
|
bezier=overshot,0.05,0.9,0.1,1.1
|
||||||
|
|
|
@ -6,22 +6,20 @@
|
||||||
|
|
||||||
## Window Rules V1
|
## Window Rules V1
|
||||||
|
|
||||||
You can set window rules for various actions. These are applied on window open!
|
You can set window rules to achieve different behaviours from the active container.
|
||||||
|
|
||||||
|
### Syntax
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
windowrule=RULE,WINDOW
|
windowrule=RULE,WINDOW
|
||||||
```
|
```
|
||||||
|
|
||||||
`RULE` is a rule (and a param if applicable)
|
- `RULE` is a rule (and a param if applicable)
|
||||||
|
- `WINDOW` is a RegEx, either:
|
||||||
`WINDOW` is a RegEx, either:
|
- plain RegEx (for matching a window class);
|
||||||
|
|
||||||
- plain regex (for matching a window class)
|
|
||||||
- `title:` followed by a regex (for matching a window's title)
|
- `title:` followed by a regex (for matching a window's title)
|
||||||
|
|
||||||
you can get both by inspecting `hyprctl clients`
|
#### Examples
|
||||||
|
|
||||||
Examples:
|
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
windowrule=float,^(kitty)$
|
windowrule=float,^(kitty)$
|
||||||
|
@ -50,7 +48,13 @@ xwayland - 0/1
|
||||||
floating - 0/1
|
floating - 0/1
|
||||||
```
|
```
|
||||||
|
|
||||||
Keep in mind you do _not_ need to define all of them, but you need to define at least one.
|
Keep in mind that you *have* to declare at least one field, but not all.
|
||||||
|
|
||||||
|
{{< hint type=tip >}}
|
||||||
|
|
||||||
|
To get informations about windows' class, title, if it uses XWayland or its size, you can use `hyprctl client`.
|
||||||
|
|
||||||
|
{{< /hint >}}
|
||||||
|
|
||||||
## Rules
|
## Rules
|
||||||
|
|
||||||
|
@ -77,7 +81,7 @@ Keep in mind you do _not_ need to define all of them, but you need to define at
|
||||||
| pin | pins the window _note: floating only_ |
|
| pin | pins the window _note: floating only_ |
|
||||||
| noanim | disables the animations for the window |
|
| noanim | disables the animations for the window |
|
||||||
|
|
||||||
_Examples_:
|
#### Examples
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
windowrule = move 100 100,^(kitty)$
|
windowrule = move 100 100,^(kitty)$
|
||||||
|
|
|
@ -61,7 +61,7 @@ as a driver and using it for a while might give more insight to the more random
|
||||||
bugs.
|
bugs.
|
||||||
|
|
||||||
When Hyprland crashes, use `coredumpctl` and then `coredumpctl info PID` to see
|
When Hyprland crashes, use `coredumpctl` and then `coredumpctl info PID` to see
|
||||||
the dump.
|
the dump. See the instructions below this paragraph for more info about `coredumpctl`.
|
||||||
|
|
||||||
I also recommend the amazing command
|
I also recommend the amazing command
|
||||||
|
|
||||||
|
@ -71,6 +71,19 @@ watch -n 0.1 "cat /tmp/hypr/$(echo HYPRLAND_INSTANCE_SIGNATURE)/hyprland.log | g
|
||||||
|
|
||||||
for live logs. (replace `hyprland` with `hyprlandd` for debug builds)
|
for live logs. (replace `hyprland` with `hyprlandd` for debug builds)
|
||||||
|
|
||||||
|
|
||||||
|
### How do I get a coredump?
|
||||||
|
|
||||||
|
_These instructions are ONLY for systemd. If you use anything else, you should
|
||||||
|
know what you're doing._
|
||||||
|
|
||||||
|
Launch `coredumpctl` in a terminal. Press <key>END</key> on the keyboard to go
|
||||||
|
to the end. Note the **last** (the one furthest to the bottom) crash that has
|
||||||
|
`/usr/bin/Hyprland` as an executable. Remember the PID of it (the first number
|
||||||
|
after the date in a given line) exit (<key>Ctrl</key>+<key>C</key>) type
|
||||||
|
`coredumpctl info PID` where `PID` is the remembered PID. Send the entire thing
|
||||||
|
as a file.
|
||||||
|
|
||||||
## Nesting Hyprland
|
## Nesting Hyprland
|
||||||
|
|
||||||
Hyprland can run nested in a window. For that, make sure you did the following:
|
Hyprland can run nested in a window. For that, make sure you did the following:
|
||||||
|
|
|
@ -53,7 +53,7 @@ You might try a USB-C to hdmi adapter though, maybe that could route the externa
|
||||||
|
|
||||||
### How do I screenshot?
|
### How do I screenshot?
|
||||||
|
|
||||||
Install `grim-git` and `slurp`
|
Install `grim` and `slurp`
|
||||||
|
|
||||||
Use a keybind (or execute) `grim -g $(slurp)`, select a region. A screenshot
|
Use a keybind (or execute) `grim -g $(slurp)`, select a region. A screenshot
|
||||||
will pop into your `~/Pictures/` (You can configure grim and slurp, see their
|
will pop into your `~/Pictures/` (You can configure grim and slurp, see their
|
||||||
|
@ -72,10 +72,6 @@ Check [Screensharing](../Useful-Utilities/Screen-Sharing).
|
||||||
|
|
||||||
See [Wallpapers](../Useful-Utilities/Wallpapers).
|
See [Wallpapers](../Useful-Utilities/Wallpapers).
|
||||||
|
|
||||||
### My workspace (2, 3, or any other) is like... bugged?
|
|
||||||
|
|
||||||
You did the below, unknowingly.
|
|
||||||
|
|
||||||
### My games work poorly, especially proton ones
|
### My games work poorly, especially proton ones
|
||||||
|
|
||||||
Use `gamescope`, tends to fix any and all issues with wayland/Hyprland.
|
Use `gamescope`, tends to fix any and all issues with wayland/Hyprland.
|
||||||
|
@ -85,42 +81,25 @@ Use `gamescope`, tends to fix any and all issues with wayland/Hyprland.
|
||||||
Not that much heavier than Xorg. If you want maximum performance, consider
|
Not that much heavier than Xorg. If you want maximum performance, consider
|
||||||
turning off the blur and animations.
|
turning off the blur and animations.
|
||||||
|
|
||||||
### Blur makes my GPU cry :(
|
|
||||||
|
|
||||||
You probably forgot to turn on `decoration:blur_new_optimizations`. Thank me
|
|
||||||
later.
|
|
||||||
|
|
||||||
### My monitor no worky
|
### My monitor no worky
|
||||||
|
|
||||||
Try changing the mode in your config. If your preferred one doesn't work, try a
|
Try changing the mode in your config. If your preferred one doesn't work, try a
|
||||||
lower one. A good way to list all modes is to get `wlr-randr` and do a
|
lower one. A good way to list all modes is to get `wlr-randr` and do a
|
||||||
`wlr-randr --dryrun`
|
`wlr-randr --dryrun`
|
||||||
|
|
||||||
### How do I get a coredump?
|
|
||||||
|
|
||||||
_These instructions are ONLY for systemd. If you use anything else, you should
|
|
||||||
know what you're doing._
|
|
||||||
|
|
||||||
Launch `coredumpctl` in a terminal. Press <key>END</key> on the keyboard to go
|
|
||||||
to the end. Note the **last** (the one furthest to the bottom) crash that has
|
|
||||||
`/usr/bin/Hyprland` as an executable. Remember the PID of it (the first number
|
|
||||||
after the date in a given line) exit (<key>Ctrl</key>+<key>C</key>) type
|
|
||||||
`coredumpctl info PID` where `PID` is the remembered PID. Send the entire thing
|
|
||||||
as a file.
|
|
||||||
|
|
||||||
### How do I update?
|
### How do I update?
|
||||||
|
|
||||||
Open a terminal where you cloned the repo.
|
Open a terminal where you cloned the repo.
|
||||||
`git pull && sudo make clear && sudo make cleaninstall`
|
```bash
|
||||||
|
git pull
|
||||||
|
sudo make clear
|
||||||
|
sudo make cleaninstall
|
||||||
|
```
|
||||||
|
|
||||||
If you are using the AUR (hyprland-git) package, you
|
If you are using the AUR (hyprland-git) package, you
|
||||||
will need to cleanbuild to update the package. Paru
|
will need to cleanbuild to update the package. Paru
|
||||||
has been problematic with updating before, use Yay.
|
has been problematic with updating before, use Yay.
|
||||||
|
|
||||||
### Waybar popups render behind the windows??
|
|
||||||
|
|
||||||
You have misconfigured Waybar. Make sure the `layer` in the waybar config is set to `top`, and not `bottom`.
|
|
||||||
|
|
||||||
### How do I screen lock?
|
### How do I screen lock?
|
||||||
|
|
||||||
Use a wayland-compatible locking utility using WLR protocols, e.g. `swaylock`.
|
Use a wayland-compatible locking utility using WLR protocols, e.g. `swaylock`.
|
||||||
|
@ -132,6 +111,8 @@ Use a tool like for example `lxappearance` to change the GTK cursor.
|
||||||
After that, add `exec-once=hyprctl setcursor [THEME] [SIZE]` to your config and
|
After that, add `exec-once=hyprctl setcursor [THEME] [SIZE]` to your config and
|
||||||
restart Hyprland.
|
restart Hyprland.
|
||||||
|
|
||||||
|
If you want to change cursor size on QT, add `XCURSOR_SIZE=[SIZE]` to your wrapper.
|
||||||
|
|
||||||
Alternatively, change the config files manually according to the
|
Alternatively, change the config files manually according to the
|
||||||
[XDG specification (Arch Wiki link)](https://wiki.archlinux.org/title/Cursor_themes#Configuration).
|
[XDG specification (Arch Wiki link)](https://wiki.archlinux.org/title/Cursor_themes#Configuration).
|
||||||
|
|
||||||
|
@ -156,10 +137,6 @@ it with the `exec-once` keyword.
|
||||||
|
|
||||||
Check [Status bars](../Useful-Utilities/Status-Bars).
|
Check [Status bars](../Useful-Utilities/Status-Bars).
|
||||||
|
|
||||||
### Waybar doesn't show the active workspace
|
|
||||||
|
|
||||||
Use the style for `#workspaces button.active`
|
|
||||||
|
|
||||||
### How do I autostart my favorite apps?
|
### How do I autostart my favorite apps?
|
||||||
|
|
||||||
Using the window rules to assign apps to workspace you can setup a session start
|
Using the window rules to assign apps to workspace you can setup a session start
|
||||||
|
@ -188,7 +165,7 @@ exec-once=cleanup_after_start.sh
|
||||||
|
|
||||||
where `cleanup_after_start.sh` script contains:
|
where `cleanup_after_start.sh` script contains:
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
sleep 10
|
sleep 10
|
||||||
hyprctl keyword windowrule "workspace unset,kitty"
|
hyprctl keyword windowrule "workspace unset,kitty"
|
||||||
hyprctl keyword windowrule "workspace unset,Subl"
|
hyprctl keyword windowrule "workspace unset,Subl"
|
||||||
|
@ -211,7 +188,7 @@ exec-once=handle_monitor_connect.sh
|
||||||
|
|
||||||
where `handle_monitor_connect.sh` is: (example)
|
where `handle_monitor_connect.sh` is: (example)
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
function handle {
|
function handle {
|
||||||
|
@ -255,7 +232,7 @@ they might launch before that has happened.
|
||||||
|
|
||||||
In such cases, a script like this:
|
In such cases, a script like this:
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
sleep 4
|
sleep 4
|
||||||
killall xdg-desktop-portal-wlr
|
killall xdg-desktop-portal-wlr
|
||||||
|
@ -267,17 +244,12 @@ sleep 4
|
||||||
|
|
||||||
launched with `exec-once` should fix all issues. Adjust the sleep durations to taste.
|
launched with `exec-once` should fix all issues. Adjust the sleep durations to taste.
|
||||||
|
|
||||||
### My cursor in QT apps is too big
|
|
||||||
|
|
||||||
Oh no! Anyway, the QT cursor size can be fixed by setting the envvar `XCURSOR_SIZE=24`. You
|
|
||||||
should probably add it to your exported envvars.
|
|
||||||
|
|
||||||
### How do I export envvars for Hyprland?
|
### How do I export envvars for Hyprland?
|
||||||
|
|
||||||
As with any Display Server, Xorg included, you should probably make a script to
|
As with any Display Server, Xorg included, you should probably make a script to
|
||||||
launch it, for example:
|
launch it, for example:
|
||||||
|
|
||||||
```ini
|
```bash
|
||||||
export AMONG_US=1
|
export AMONG_US=1
|
||||||
exec Hyprland
|
exec Hyprland
|
||||||
```
|
```
|
||||||
|
@ -297,16 +269,16 @@ Try disabling VFR with `misc:no_vfr=1`.
|
||||||
I assume you already have `damage_tracking` on full. If you don't, change it. It's
|
I assume you already have `damage_tracking` on full. If you don't, change it. It's
|
||||||
heavily advised to use `full` regardless of anything.
|
heavily advised to use `full` regardless of anything.
|
||||||
|
|
||||||
Optimization options:
|
_Useful Optimizations_
|
||||||
|
|
||||||
_feel free to ignore any that you find causing issues_
|
* `decoration:blur_new_optimizations = true`, to use new optimizations for
|
||||||
|
blurring.
|
||||||
|
|
||||||
`decoration:blur_new_optimizations = true`
|
* `decoration:blur = false` & `decoration:drop_shadow = false` to disable
|
||||||
|
fancy but battery hungry effects.
|
||||||
|
|
||||||
`decoration:blur = false`
|
* `misc:no_vfr = false`, since it has been proven that it consumes less power.
|
||||||
|
|
||||||
`decoration:drop_shadow = false`
|
* `misc:disable_autoreload = true` to stop Hyprland from reloading configuration
|
||||||
|
file each time that it changes.
|
||||||
|
|
||||||
`misc:no_vfr = false`
|
|
||||||
|
|
||||||
_possibly_ `misc:disable_autoreload = true`
|
|
||||||
|
|
|
@ -15,24 +15,50 @@ To compile manually:
|
||||||
|
|
||||||
Clone the source, cd into it, then do:
|
Clone the source, cd into it, then do:
|
||||||
|
|
||||||
```sh
|
```bash
|
||||||
sed -i 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp
|
sed -i 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp
|
||||||
|
|
||||||
meson --prefix=/usr --buildtype=plain --auto-features=enabled --wrap-mode=nodownload build
|
meson --prefix=/usr --buildtype=plain --auto-features=enabled --wrap-mode=nodownload build
|
||||||
meson configure -Dexperimental=true build
|
meson configure -Dexperimental=true build
|
||||||
```
|
|
||||||
|
|
||||||
and finally:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo ninja -C build install
|
sudo ninja -C build install
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want to use the workspaces module, it's called `wlr/workspaces`.
|
If you want to use the workspaces module, first, copy the configuration files from
|
||||||
|
`/etc/xdg/waybar/` into `~/.config/waybar/`. Then, in `~/.config/waybar/conf/` replace
|
||||||
|
all the references to `sway/workspaces/` with `wlr/workspaces`.
|
||||||
|
|
||||||
For more info regarding configuration, see
|
For more info regarding configuration, see
|
||||||
[The Waybar Wiki](https://github.com/Alexays/Waybar/wiki).
|
[The Waybar Wiki](https://github.com/Alexays/Waybar/wiki).
|
||||||
|
|
||||||
|
### Waybar popups render behind the windows
|
||||||
|
|
||||||
|
In `~/.config/waybar/config`, make sure that you have the `layer` configuration
|
||||||
|
set to `top` and not `bottom`.
|
||||||
|
|
||||||
|
### Active workspace doesn't show up
|
||||||
|
|
||||||
|
Replace `#workspaces button.focus` with `#wroskapces button.active` in `~/.config/style.css`.
|
||||||
|
|
||||||
|
### Scroll through workspaces
|
||||||
|
|
||||||
|
Since there are a lot of configurations from `sway/workspaces` missing, you
|
||||||
|
should deduce some of them by yourself. In the case of scrolling, configure
|
||||||
|
your module this way:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"wlr/workspaces": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace e-1"
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
### Clicking on workspace doesn't work!
|
||||||
|
|
||||||
|
On the `wlr/workspaces` module, add `"on-click": "activate"`. That's the purpose of
|
||||||
|
the `sed` command we had to apply before building: the default way to select a
|
||||||
|
workspace by clicking uses the `swaymsg`'s way, furthermore it is required to edit
|
||||||
|
this function to make it work with `hyprctl`.
|
||||||
|
|
||||||
## Eww
|
## Eww
|
||||||
|
|
||||||
In order to use [Eww](https://github.com/elkowar/eww), you first have to install
|
In order to use [Eww](https://github.com/elkowar/eww), you first have to install
|
||||||
|
|
Loading…
Reference in a new issue