Merge pull request #1 from 0x4nt/main

hyprland-wiki: Paragraphs and syntax correction
This commit is contained in:
NotAShelf 2022-10-19 18:22:59 +03:00 committed by GitHub
commit b76e009bc3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 101 additions and 83 deletions

View file

@ -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

View file

@ -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)$

View file

@ -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:

View file

@ -53,13 +53,13 @@ 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
GitHub pages).
For a more complete utility, try our own
For a more complete utility, try our own
[Grimblast](https://github.com/hyprwm/contrib).
For recording videos, wf-recorder could be used.
@ -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`

View file

@ -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