mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-11-26 06:25:59 +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
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
`SPEED` is the amount of ds (1ds = 100ms) the animation will take
|
||||
|
||||
`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
|
||||
parent's values.
|
||||
|
||||
_Animation tree:_
|
||||
### Examples
|
||||
|
||||
```ini
|
||||
animation=workspaces,1,8,default
|
||||
animation=windows,1,10,myepiccurve,slide
|
||||
```
|
||||
|
||||
## Animation tree
|
||||
|
||||
```
|
||||
global
|
||||
|
@ -51,7 +53,7 @@ global
|
|||
↳ specialWorkspace - styles: same as workspaces
|
||||
```
|
||||
|
||||
## Extras
|
||||
### Extras
|
||||
|
||||
For animation style `popin` in `windows`, you can specify a minimum percentage
|
||||
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.
|
||||
|
||||
## Curves
|
||||
### Curves
|
||||
|
||||
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
|
||||
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
|
||||
bezier=overshot,0.05,0.9,0.1,1.1
|
||||
|
|
|
@ -6,22 +6,20 @@
|
|||
|
||||
## 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
|
||||
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:
|
||||
- plain RegEx (for matching a window class);
|
||||
- `title:` followed by a regex (for matching a window's title)
|
||||
|
||||
`WINDOW` is a RegEx, either:
|
||||
|
||||
- plain regex (for matching a window class)
|
||||
- `title:` followed by a regex (for matching a window's title)
|
||||
|
||||
you can get both by inspecting `hyprctl clients`
|
||||
|
||||
Examples:
|
||||
#### Examples
|
||||
|
||||
```ini
|
||||
windowrule=float,^(kitty)$
|
||||
|
@ -50,7 +48,13 @@ xwayland - 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
|
||||
|
||||
|
@ -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_ |
|
||||
| noanim | disables the animations for the window |
|
||||
|
||||
_Examples_:
|
||||
#### Examples
|
||||
|
||||
```ini
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
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?
|
||||
|
||||
Install `grim-git` and `slurp`
|
||||
Install `grim` and `slurp`
|
||||
|
||||
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
|
||||
|
@ -72,10 +72,6 @@ Check [Screensharing](../Useful-Utilities/Screen-Sharing).
|
|||
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
`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?
|
||||
|
||||
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
|
||||
will need to cleanbuild to update the package. Paru
|
||||
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?
|
||||
|
||||
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
|
||||
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
|
||||
[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).
|
||||
|
||||
### Waybar doesn't show the active workspace
|
||||
|
||||
Use the style for `#workspaces button.active`
|
||||
|
||||
### How do I autostart my favorite apps?
|
||||
|
||||
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:
|
||||
|
||||
```sh
|
||||
```bash
|
||||
sleep 10
|
||||
hyprctl keyword windowrule "workspace unset,kitty"
|
||||
hyprctl keyword windowrule "workspace unset,Subl"
|
||||
|
@ -211,7 +188,7 @@ exec-once=handle_monitor_connect.sh
|
|||
|
||||
where `handle_monitor_connect.sh` is: (example)
|
||||
|
||||
```sh
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
function handle {
|
||||
|
@ -255,7 +232,7 @@ they might launch before that has happened.
|
|||
|
||||
In such cases, a script like this:
|
||||
|
||||
```sh
|
||||
```bash
|
||||
#!/bin/bash
|
||||
sleep 4
|
||||
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.
|
||||
|
||||
### 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?
|
||||
|
||||
As with any Display Server, Xorg included, you should probably make a script to
|
||||
launch it, for example:
|
||||
|
||||
```ini
|
||||
```bash
|
||||
export AMONG_US=1
|
||||
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
|
||||
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:
|
||||
|
||||
```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
|
||||
|
||||
meson --prefix=/usr --buildtype=plain --auto-features=enabled --wrap-mode=nodownload build
|
||||
meson configure -Dexperimental=true build
|
||||
```
|
||||
|
||||
and finally:
|
||||
|
||||
```sh
|
||||
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
|
||||
[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
|
||||
|
||||
In order to use [Eww](https://github.com/elkowar/eww), you first have to install
|
||||
|
|
Loading…
Reference in a new issue