Format with mdformat

This commit is contained in:
Mihai Fufezan 2022-08-13 02:47:48 +03:00
parent 04bf3f24f9
commit 9819cd6b51
No known key found for this signature in database
GPG key ID: 5899325F2F120900
21 changed files with 205 additions and 135 deletions

View file

@ -1,7 +1,9 @@
this page documents all of the more advanced config options. Binds, curves, this page documents all of the more advanced config options. Binds, curves,
execs, etc. execs, etc.
Please remember, that for ALL arguments separated by a comma, if you want to leave one of them empty, you cannot reduce the number of commas, *unless told otherwise in a specific section*: Please remember, that for ALL arguments separated by a comma, if you want to
leave one of them empty, you cannot reduce the number of commas, *unless told
otherwise in a specific section*:
``` ```
three_param_keyword=A,B,C # OK three_param_keyword=A,B,C # OK
@ -33,15 +35,20 @@ Please remember the offset is calculated with the scaled resolution, meaning if
you want your 4K monitor with scale 2 to the left of your 1080p one, you'd use you want your 4K monitor with scale 2 to the left of your 1080p one, you'd use
the offset `1920x0` for the second screen. (3840 / 2) the offset `1920x0` for the second screen. (3840 / 2)
Leaving the name empty will define a fallback rule to use when no other rules match. Leaving the name empty will define a fallback rule to use when no other rules
match.
You can use `preferred` as a resolution to use the display's preferred size, and `auto` as an offset to let Hyprland decide on an offset for you. You can use `preferred` as a resolution to use the display's preferred size, and
`auto` as an offset to let Hyprland decide on an offset for you.
Recommended rule for easy and quick plugging in of random monitors: Recommended rule for easy and quick plugging in of random monitors:
``` ```
monitor=,preferred,auto,1 monitor=,preferred,auto,1
``` ```
Will make any monitor that was not specified with an explicit rule automatically placed in a sensible location with its preferred resolution.
Will make any monitor that was not specified with an explicit rule automatically
placed in a sensible location with its preferred resolution.
To disable a monitor, use To disable a monitor, use
@ -171,7 +178,9 @@ bind=SUPER,mouse:272,exec,amongus
will bind it to SUPER+LMB. will bind it to SUPER+LMB.
For binding only modkeys, you need to use the TARGET modmask (with the activating mod) and the `r` flag, e.g.: For binding only modkeys, you need to use the TARGET modmask (with the
activating mod) and the `r` flag, e.g.:
``` ```
bindr=SUPERALT,Alt_L,exec,amongus bindr=SUPERALT,Alt_L,exec,amongus
``` ```
@ -208,7 +217,8 @@ bindr=ALT,Alt_L,exec,amongus
## General dispatcher list: ## General dispatcher list:
Please keep in mind some layout-specific dispatchers will be listed in the layout pages (See the sidebar) Please keep in mind some layout-specific dispatchers will be listed in the
layout pages (See the sidebar)
### exec ### exec
@ -279,7 +289,9 @@ fullscreen (keeps the gaps and bar(s))
sets the monitor's dpms status. sets the monitor's dpms status.
**Warning**: it is NOT recommended to set DPMS with a keybind directly, as it might cause undefined behavior. Instead, consider something like **Warning**: it is NOT recommended to set DPMS with a keybind directly, as it
might cause undefined behavior. Instead, consider something like
``` ```
bind = MOD,KEY,exec,sleep 1 && hyprctl dispatch dpms off bind = MOD,KEY,exec,sleep 1 && hyprctl dispatch dpms off
``` ```
@ -485,7 +497,9 @@ workspace that you can toggle on/off on any monitor.
you can execute a shell script on startup of the compositor or on each time it's you can execute a shell script on startup of the compositor or on each time it's
reloaded. reloaded.
**Note**: There currently is a bug with the exec that makes the executed app unable to die if killed, use `SIGKILL` (e.g. `killall name -9`) or launch from a script (`exec-once=~/myscript.sh` and do `myapp &` in the script) **Note**: There currently is a bug with the exec that makes the executed app
unable to die if killed, use `SIGKILL` (e.g. `killall name -9`) or launch from a
script (`exec-once=~/myscript.sh` and do `myapp &` in the script)
`exec-once=command` will execute only on launch `exec-once=command` will execute only on launch
@ -664,7 +678,8 @@ animation=windows,1,10,myepiccurve,slide
`STYLE` (optional) is the animation style `STYLE` (optional) is the animation style
The animations are a tree. If an animation is unset, it will inherit its parent's values. The animations are a tree. If an animation is unset, it will inherit its
parent's values.
_Animation tree:_ _Animation tree:_
@ -685,10 +700,13 @@ global
### Extras ### Extras
For animation style `popin` in `windows`, you can specify a minimum percentage to start from. For example: For animation style `popin` in `windows`, you can specify a minimum percentage
to start from. For example:
``` ```
animation=windows,1,8,default,popin 80% 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.
# Defining variables # Defining variables

View file

@ -5,8 +5,8 @@ This page documents all the "options" of Hyprland. For binds, monitors, execs,
curves, etc. see curves, etc. see
[Advanced Configuring](https://github.com/hyprwm/Hyprland/wiki/Advanced-config). [Advanced Configuring](https://github.com/hyprwm/Hyprland/wiki/Advanced-config).
Please keep in mind some options that are layout-specific will be documented in the layout pages Please keep in mind some options that are layout-specific will be documented in
and not here. (See the Sidebar) the layout pages and not here. (See the Sidebar)
# Variable types # Variable types
@ -14,7 +14,8 @@ Variable types are:
`int` - integer `int` - integer
`bool` - boolean, `true` or `false` (`yes` or `no`, `0` or `1`) - any numerical value that is not `0` or `1` will cause undefined behaviour. `bool` - boolean, `true` or `false` (`yes` or `no`, `0` or `1`) - any numerical
value that is not `0` or `1` will cause undefined behaviour.
`float` - floating point number `float` - floating point number
@ -63,12 +64,14 @@ inactivity to hide it. (default / never is `0`)
`damage_tracking=str` - Makes the compositor redraw only the needed bits of the `damage_tracking=str` - Makes the compositor redraw only the needed bits of the
display. Saves on resources by not redrawing when not needed. Available modes: display. Saves on resources by not redrawing when not needed. Available modes:
`none, monitor, full`. You don't need to know what different modes do, just always use `full`. `none, monitor, full`. You don't need to know what different modes do, just
always use `full`.
`layout=str` - which layout to use. (Available: `dwindle`, `master`, default is `layout=str` - which layout to use. (Available: `dwindle`, `master`, default is
`dwindle`) `dwindle`)
`no_cursor_warps=bool` - if true, will not warp the cursor in many cases (focusing, keybinds, etc) `no_cursor_warps=bool` - if true, will not warp the cursor in many cases
(focusing, keybinds, etc)
## Decoration ## Decoration
@ -101,7 +104,9 @@ The more passes, the more you can up the blur_size without noticing artifacts.
`blur_ignore_opacity=bool` - make the blur layer ignore the opacity of the `blur_ignore_opacity=bool` - make the blur layer ignore the opacity of the
window. window.
`blur_new_optimizations=bool` - whether to enable further optimizations to the blur. Recommended to turn on, as it will massively improve performance, but some people have experienced graphical issues. `blur_new_optimizations=bool` - whether to enable further optimizations to the
blur. Recommended to turn on, as it will massively improve performance, but some
people have experienced graphical issues.
`drop_shadow=bool` - enable drop shadows on windows `drop_shadow=bool` - enable drop shadows on windows
@ -131,11 +136,12 @@ _More about animations is on the Advanced Configuring page._
`kb_layout=str` `kb_variant=str` `kb_model=str` `kb_options=str` `kb_rules=str` `kb_layout=str` `kb_variant=str` `kb_model=str` `kb_options=str` `kb_rules=str`
\- adequate keyboard settings \- adequate keyboard settings
`follow_mouse=int` - (0/1/2/3) enable mouse following (focus on enter new window) `follow_mouse=int` - (0/1/2/3) enable mouse following (focus on enter new
\- Quirk: will always focus on mouse enter if you're entering a floating window window) - Quirk: will always focus on mouse enter if you're entering a floating
from a tiled one, or vice versa. 0 - disabled, 1 - full, 2 - loose. Loose will window from a tiled one, or vice versa. 0 - disabled, 1 - full, 2 - loose. Loose
focus mouse on other windows on focus but not the keyboard. will focus mouse on other windows on focus but not the keyboard. 3 - full loose,
3 - full loose, will not refocus on click, but allow mouse focus to be detached from the keyboard like in 2. will not refocus on click, but allow mouse focus to be detached from the
keyboard like in 2.
`repeat_rate=int` - in ms, the repeat rate for held keys `repeat_rate=int` - in ms, the repeat rate for held keys
@ -197,13 +203,19 @@ revert)
`no_vfr=bool` - disables VFR (variable frame rate) - VFR increases battery life `no_vfr=bool` - disables VFR (variable frame rate) - VFR increases battery life
at the expense of possible issues on a few monitors. (VFR is off by default) at the expense of possible issues on a few monitors. (VFR is off by default)
`damage_entire_on_snapshot=bool` - Damage the entire monitor when rendering snapshots. Recommended with transformed displays. Do not use without transformed displays. `damage_entire_on_snapshot=bool` - Damage the entire monitor when rendering
snapshots. Recommended with transformed displays. Do not use without transformed
displays.
`mouse_move_enables_dpms=bool` - If DPMS is set to off, wake up the monitors if the mouse moves. `mouse_move_enables_dpms=bool` - If DPMS is set to off, wake up the monitors if
the mouse moves.
`always_follow_on_dnd=bool` - By default enabled, will make mouse focus follow the mouse when drag and dropping. Recommended to leave it enabled, especially for people using focus follows mouse at 0. `always_follow_on_dnd=bool` - By default enabled, will make mouse focus follow
the mouse when drag and dropping. Recommended to leave it enabled, especially
for people using focus follows mouse at 0.
`layers_hog_keyboard_focus=bool` - If true, will make keyboard interactive layers keep their focus on mouse move (e.g. wofi, bemenu) `layers_hog_keyboard_focus=bool` - If true, will make keyboard interactive
layers keep their focus on mouse move (e.g. wofi, bemenu)
## Binds ## Binds

View file

@ -1,4 +1,3 @@
The config is located in `~/.config/hypr/hyprland.conf`. The config is located in `~/.config/hypr/hyprland.conf`.
I recommend you copy the `examples/hyprland.conf`, but you can also edit the I recommend you copy the `examples/hyprland.conf`, but you can also edit the

View file

@ -1,6 +1,5 @@
= = Dwindle is a BSPWM-like layout, where every window on a workspace is a member
Dwindle is a BSPWM-like layout, where every window on a workspace is a member of of a binary tree.
a binary tree.
# Quirks # Quirks
@ -61,7 +60,8 @@ the special workspace
`split_width_multiplier=float` - specifies the auto-split width multiplier `split_width_multiplier=float` - specifies the auto-split width multiplier
`no_gaps_when_only=bool` - whether to apply gaps when there is only one window on a workspace. `no_gaps_when_only=bool` - whether to apply gaps when there is only one window
on a workspace.
## Bind Dispatchers ## Bind Dispatchers

View file

@ -1,13 +1,16 @@
Hyprland exposes two powerful sockets for you to use. Hyprland exposes two powerful sockets for you to use.
The first, socket1, can be fully controlled with `hyprctl`, see its usage [here](https://github.com/hyprwm/Hyprland/wiki/Using-hyprctl). The first, socket1, can be fully controlled with `hyprctl`, see its usage
[here](https://github.com/hyprwm/Hyprland/wiki/Using-hyprctl).
The second, socket2, sends events for certain changes / actions and can be used to react to different events. See its description [here](https://github.com/hyprwm/Hyprland/wiki/IPC). The second, socket2, sends events for certain changes / actions and can be used
to react to different events. See its description
[here](https://github.com/hyprwm/Hyprland/wiki/IPC).
## Example script ## Example script
This bash script will change the outer gaps to 20 if the currently focused monitor is DP-1, and 30 otherwise. This bash script will change the outer gaps to 20 if the currently focused
monitor is DP-1, and 30 otherwise.
```bash ```bash
#!/bin/sh #!/bin/sh

View file

@ -1,4 +1,3 @@
The master layout makes one window be the "master", taking the left part of the The master layout makes one window be the "master", taking the left part of the
screen, and tiles the rest on the right. screen, and tiles the rest on the right.
@ -26,7 +25,8 @@ join the slaves.
`new_on_top=bool` - whether a newly open window should be on the top of the `new_on_top=bool` - whether a newly open window should be on the top of the
stack stack
`no_gaps_when_only=bool` - whether to apply gaps when there is only one window on a workspace. `no_gaps_when_only=bool` - whether to apply gaps when there is only one window
on a workspace.
## Dispatchers ## Dispatchers

View file

@ -1,4 +1,3 @@
## Switchable keyboard layouts ## Switchable keyboard layouts
An example of a switchable keyboard layout between US and RU, where you switch An example of a switchable keyboard layout between US and RU, where you switch
@ -22,7 +21,8 @@ The keysym name in Hyprland is the XKB define name without the `XKB_KEY_`.
## Disabling keybinds with one master keybind ## Disabling keybinds with one master keybind
If you want to disable all keybinds with another keybind (make a kaybind toggle of sorts) you can just use a submap with only a keybind to exit it. If you want to disable all keybinds with another keybind (make a kaybind toggle
of sorts) you can just use a submap with only a keybind to exit it.
``` ```
bind=MOD,KEY,submap,clean bind=MOD,KEY,submap,clean

View file

@ -1,4 +1,3 @@
`hyprctl` is a utility for controlling some parts of the compositor from a CLI `hyprctl` is a utility for controlling some parts of the compositor from a CLI
or a script. If you install with `make install`, or any package, it should or a script. If you install with `make install`, or any package, it should
automatically be installed. automatically be installed.
@ -56,11 +55,13 @@ Kind of like xkill.
### setcursor ### setcursor
Sets the cursor theme and reloads the cursor manager. Will set the theme for everything except GTK, because GTK. Sets the cursor theme and reloads the cursor manager. Will set the theme for
everything except GTK, because GTK.
params: theme and size params: theme and size
e.g.: e.g.:
``` ```
hyprctl setcursor Bibata-Modern-Classic 24 hyprctl setcursor Bibata-Modern-Classic 24
``` ```

View file

@ -74,11 +74,18 @@ for live logs. (replace `hyprland` with `hyprlandd` for debug builds)
# 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:
- built in debug
- removed ALL `exec=` and `exec-once=` keywords from your debug config (`hyprlandd.conf`)
- set a resolution and are not using `preferred`
- made sure no keybinds overlap (I recommend using a different mod for your keybinds altogether)
Once you launch, the display will probably be completely garbled. To fix that, in the parent, do a `hyprctl clients` and note the size of the window. Make sure while opening the terminal to not resize the nested window. Note that resolution and use it down to the pixel in your `hyprlandd.conf`. - built in debug
- removed ALL `exec=` and `exec-once=` keywords from your debug config
(`hyprlandd.conf`)
- set a resolution and are not using `preferred`
- made sure no keybinds overlap (I recommend using a different mod for your
keybinds altogether)
If you segfault in `shadowKeybinds`, you probably either are using the same mod as your parent or resized the window. Once you launch, the display will probably be completely garbled. To fix that,
in the parent, do a `hyprctl clients` and note the size of the window. Make sure
while opening the terminal to not resize the nested window. Note that resolution
and use it down to the pixel in your `hyprlandd.conf`.
If you segfault in `shadowKeybinds`, you probably either are using the same mod
as your parent or resized the window.

View file

@ -57,7 +57,8 @@ turning off the blur and animations.
### Blur makes my GPU cry :( ### Blur makes my GPU cry :(
You probably forgot to turn on `decoration:blur_new_optimizations`. Thank me later. You probably forgot to turn on `decoration:blur_new_optimizations`. Thank me
later.
### My monitor no worky! ### My monitor no worky!
@ -99,10 +100,10 @@ Use a wayland-compatible locking utility using WLR protocols, e.g. `swaylock`.
Use a tool like for example `lxappearance` to change the GTK cursor. 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. After that, add `exec-once=hyprctl setcursor [THEME] [SIZE]` to your config and
restart Hyprland.
If that doesn't work, change the config files manually according to If that doesn't work, change the config files manually according to the
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).
Make sure to also edit `~/.config/gtk-4.0/settings.ini` and `~/.gtkrc-2.0` if Make sure to also edit `~/.config/gtk-4.0/settings.ini` and `~/.gtkrc-2.0` if
@ -256,7 +257,8 @@ Try disabling VFR with `misc:no_vfr=1`
### How do I make Hyprland draw as little power as possible on my laptop? ### How do I make Hyprland draw as little power as possible on my laptop?
I assume you already have `damage_tracking` on full. If you don't, do it. It's heavily advised to use `full` regardless of anything. I assume you already have `damage_tracking` on full. If you don't, do it. It's
heavily advised to use `full` regardless of anything.
Optimization options: Optimization options:
@ -269,4 +271,3 @@ Optimization options:
`decoration:drop_shadow = false` `decoration:drop_shadow = false`
`misc:no_vfr = false` `misc:no_vfr = false`

View file

@ -9,41 +9,41 @@ Hyprland.
Arch and NixOS are very supported. For any other distro (not based on Arch/Nix) Arch and NixOS are very supported. For any other distro (not based on Arch/Nix)
you might have varying amounts of success. However, since Hyprland is extremely you might have varying amounts of success. However, since Hyprland is extremely
bleeding-edge, distros like Pop!\_OS, Ubuntu, etc. might have **major** bleeding-edge, distros like Pop!\_OS, Ubuntu, etc. might have **major** issues
issues running Hyprland. running Hyprland.
# Installation # Installation
Installing Hyprland is very easy. Either you install it from your local package Installing Hyprland is very easy. Either you install it from your local package
provider (if they provide pkgs for Hyprland) or you install/build it yourself. provider (if they provide pkgs for Hyprland) or you install/build it yourself.
{{< hint title=Note >}} {{\< hint title=Note >}} This project is under development and is constantly
This project is under development and is constantly changing. If changing. If you want to keep up to date with the latest commits, please
you want to keep up to date with the latest commits, please consider updating consider updating your packages with `yay -Syu --devel`, or your other preferred
your packages with `yay -Syu --devel`, or your other preferred package manager. package manager. {{\< /hint >}}
{{< /hint >}}
## Packages ## Packages
**WARNING:** I do not maintain any packages. If they are broken, try building **WARNING:** I do not maintain any packages. If they are broken, try building
from source first. from source first.
{{< tabs "uniqueid" >}} {{\< tabs "uniqueid" >}}
{{< tab "Arch Linux" >}} {{\< tab "Arch Linux" >}} *If you're on Arch Linux, I* ***heavily*** *recommend
*If you're on Arch Linux, I* ***heavily*** *recommend you use the AUR.* you use the AUR.*
```plain ```plain
hyprland-git - compiles from latest source hyprland-git - compiles from latest source
hyprland - compiles from latest release source hyprland - compiles from latest release source
hyprland-bin - compiled latest release hyprland-bin - compiled latest release
``` ```
{{< /tab >}}
{{< tab "Nix" >}}Read the [Nix page](https://github.com/hyprwm/Hyprland/wiki/Nix).{{< /tab >}} {{\< /tab >}}
{{< tab "Fedora" >}}<https://github.com/hyprwm/Hyprland/discussions/284>{{< /tab >}}
{{< /tabs >}}
{{\< tab "Nix" >}}Read the
[Nix page](https://github.com/hyprwm/Hyprland/wiki/Nix).{{\< /tab >}} {{\< tab
"Fedora" >}}<https://github.com/hyprwm/Hyprland/discussions/284>{{\< /tab >}}
{{\< /tabs >}}
## Manual (Releases) ## Manual (Releases)
@ -96,7 +96,8 @@ ninja -C _build
ninja -C _build install ninja -C _build install
``` ```
Refer to [Debugging](../../Contributing-and-Debugging) to see how to build & debug. Refer to [Debugging](../../Contributing-and-Debugging) to see how to build &
debug.
## Crash on launch ## Crash on launch

View file

@ -1,4 +1,3 @@
After you've installed Hyprland, you can either launch it from a TTY with After you've installed Hyprland, you can either launch it from a TTY with
`Hyprland` or from a login manager. Although login managers aren't officially `Hyprland` or from a login manager. Although login managers aren't officially
supported, I recommend `SDDM`, as it's been working flawlessly with wayland supported, I recommend `SDDM`, as it's been working flawlessly with wayland
@ -9,12 +8,12 @@ autogenerated configs have it bound to <kbd>SUPER</kbd> + <kbd>Q</kbd>).
Alternatively, manually change it in the config before launching Hyprland. Alternatively, manually change it in the config before launching Hyprland.
If you have an Nvidia card, please also take a look at If you have an Nvidia card, please also take a look at
[The Nvidia page](../../Nvidia) before [The Nvidia page](../../Nvidia) before launching. You should **first** make a
launching. You should **first** make a wrapper, as described in the section wrapper, as described in the section below, then follow the instructions from
below, then follow the instructions from the Nvidia page, and then continue the Nvidia page, and then continue on with sections below.
on with sections below.
## Wrapping the launcher (recommended) ## Wrapping the launcher (recommended)
With Xorg, you get the `.xinitrc`. With Hyprland, you can create your own... With Xorg, you get the `.xinitrc`. With Hyprland, you can create your own...
kind of. kind of.
@ -22,6 +21,7 @@ Make an executable file somewhere in your `PATH`, for example `~/.local/bin/`,
called (for example) `wrappedhl` called (for example) `wrappedhl`
In it, put: In it, put:
```bash ```bash
#!/bin/sh #!/bin/sh
@ -36,10 +36,10 @@ exec Hyprland
You can add as many exported envvars as you need (Nvidia users might need a You can add as many exported envvars as you need (Nvidia users might need a
lot), but I recommend having *at least* the shown two. lot), but I recommend having *at least* the shown two.
You should now launch Hyprland with `wrappedhl` instead of `Hyprland`. Make You should now launch Hyprland with `wrappedhl` instead of `Hyprland`. Make sure
sure to edit your `.desktop` file in `/usr/share/wayland-sessions/` if you use to edit your `.desktop` file in `/usr/share/wayland-sessions/` if you use a
a login manager! You might need to put the full path in it, as login managers login manager! You might need to put the full path in it, as login managers are
are usually not ran through the user account. usually not ran through the user account.
## Immediate ## Immediate
@ -81,16 +81,14 @@ example command:
hyprctl keyword monitor DP-3,1920x1080@240,1920x0,1 hyprctl keyword monitor DP-3,1920x1080@240,1920x0,1
``` ```
{{< hint type=important >}} {{\< hint type=important >}} These changes are **not** permanent! If you want to
These changes are **not** permanent! If you want to make those make those changes persist, configure your outputs in the config! {{\< /hint >}}
changes persist, configure your outputs in the config!
{{< /hint >}}
# Proper configuring # Proper configuring
Head onto the Head onto the
[Configuring Hyprland page](../../Configuring/Configuring-Hyprland) [Configuring Hyprland page](../../Configuring/Configuring-Hyprland) to learn all
to learn all about configuring Hyprland to your likings. about configuring Hyprland to your likings.
# Apps / X11 replacements # Apps / X11 replacements
@ -112,9 +110,9 @@ Exit hyprland, and then:
or `HDMI-x` etc are your monitor names. or `HDMI-x` etc are your monitor names.
- edit `~/.config/hypr/hyprland.conf` - edit `~/.config/hypr/hyprland.conf`
- replace the `monitor=` line with `monitor=NAME,RES@Hz,OFFSET,SCALE`, for - replace the `monitor=` line with `monitor=NAME,RES@Hz,OFFSET,SCALE`, for
example `monitor=DP-1,1920x1080@60,0x0,1` (See [Monitors](#monitors) for example `monitor=DP-1,1920x1080@60,0x0,1` (See [Monitors](#monitors) for more
more info about the values). You can also add multiple of those info about the values). You can also add multiple of those for multi-montor
for multi-montor setups. setups.
After this, upon launching Hyprland again, everything should be fine, After this, upon launching Hyprland again, everything should be fine, provided
provided you set an appropriate mode for your monitors. you set an appropriate mode for your monitors.

View file

@ -1,4 +1,3 @@
Hyprland exposes 2 UNIX Sockets, for controlling / getting info about Hyprland Hyprland exposes 2 UNIX Sockets, for controlling / getting info about Hyprland
via code / bash utilities. via code / bash utilities.

View file

@ -1,4 +1,3 @@
**NOTE:** Hyprland is NOT supported on NixOS stable. It may (not) compile or **NOTE:** Hyprland is NOT supported on NixOS stable. It may (not) compile or
work as intended. Please use the flake. work as intended. Please use the flake.
@ -92,11 +91,11 @@ modules set.
## Cachix ## Cachix
A [Hyprland Cachix](https://app.cachix.org/cache/nix-gaming) exists to cache A [Hyprland Cachix](https://app.cachix.org/cache/nix-gaming) exists to cache the
the `wlroots` package and speed up builds. `wlroots` package and speed up builds.
In case you don't plan on changing the Nixpkgs Hyprland builds with, you can In case you don't plan on changing the Nixpkgs Hyprland builds with, you can use
use this cache to speed up your builds. this cache to speed up your builds.
```nix ```nix
# configuration.nix # configuration.nix

View file

@ -1,6 +1,8 @@
## Foreword ## Foreword
There is no _official_ support for Nvidia. Unfortunately, their drivers are so messy, and their products so random, that it's impossible for us to help if these instructions don't work fully.
There is no _official_ support for Nvidia. Unfortunately, their drivers are so
messy, and their products so random, that it's impossible for us to help if
these instructions don't work fully.
Every card seems to be random, and might work perfectly, or not work at all. Every card seems to be random, and might work perfectly, or not work at all.
@ -8,12 +10,17 @@ Nevertheless, it's recommended to at least try this tutorial.
## How to get Hyprland to possibly work on Nvidia ## How to get Hyprland to possibly work on Nvidia
Install the `nvidia-dkms` driver and add it to your initram & kernel parameters, follow the information available here: [https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting](https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting) Install the `nvidia-dkms` driver and add it to your initram & kernel parameters,
follow the information available here:
[https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting](https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting)
_* Note_: If your GPU is listed as supported by the `nvidia-open-dkms` driver, go with that one instead. _\* Note_: If your GPU is listed as supported by the `nvidia-open-dkms` driver,
go with that one instead.
Following the wrapping instructions found at
[The Quick Start Page](https://github.com/hyprwm/Hyprland/wiki/Quick-start#wrapping-the-launcher-recommended),
wrap the launcher and additionally export these:
Following the wrapping instructions found at [The Quick Start Page](https://github.com/hyprwm/Hyprland/wiki/Quick-start#wrapping-the-launcher-recommended), wrap the launcher and additionally export these:
```sh ```sh
export LIBVA_DRIVER_NAME=nvidia export LIBVA_DRIVER_NAME=nvidia
export CLUTTER_BACKEND=wayland export CLUTTER_BACKEND=wayland
@ -28,7 +35,9 @@ export QT_QPA_PLATFORM=wayland
export GDK_BACKEND=wayland export GDK_BACKEND=wayland
``` ```
Install `qt5-wayland`, `qt5ct` and `libva`. Additionally `nvidia-vaapi-driver-git` (AUR) to fix crashes in some Electron-based applications, such as Unity Hub. Install `qt5-wayland`, `qt5ct` and `libva`. Additionally
`nvidia-vaapi-driver-git` (AUR) to fix crashes in some Electron-based
applications, such as Unity Hub.
Reboot your computer Reboot your computer
@ -37,11 +46,15 @@ Launch Hyprland with the wrapper.
It _should_ work now. It _should_ work now.
### Fixing random flickering ### Fixing random flickering
Do note though that this forces performance mode to be active, resulting in increased power-consumption (from 22W idle on a RTX 3070TI, to 74W).
This may not even be needed for some users, only apply these 'fixes' if you in-fact do notice flickering artifacts from being idle for ~5 seconds. Do note though that this forces performance mode to be active, resulting in
increased power-consumption (from 22W idle on a RTX 3070TI, to 74W).
This may not even be needed for some users, only apply these 'fixes' if you
in-fact do notice flickering artifacts from being idle for ~5 seconds.
Make a new file at `/etc/modprobe.d/nvidia.conf` and paste this in: Make a new file at `/etc/modprobe.d/nvidia.conf` and paste this in:
``` ```
options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3" options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"
``` ```

View file

@ -1,6 +1,8 @@
Some clients are known for being a massive pain under Wayland. Here are great
Some clients are known for being a massive pain under Wayland. Here are great replacements for them: replacements for them:
## Discord ## Discord
Use [WebCord](https://github.com/SpacingBat3/WebCord), it has native support for pipewire screensharing, tons of great features and tries to stay infringing as little as possible on the Discord ToS. Use [WebCord](https://github.com/SpacingBat3/WebCord), it has native support for
pipewire screensharing, tons of great features and tries to stay infringing as
little as possible on the Discord ToS.

View file

@ -1,6 +1,9 @@
## Wofi ## Wofi
wofi is a great and customizable launcher just for wayland. [SourceHut](https://hg.sr.ht/~scoopta/wofi).
wofi is a great and customizable launcher just for wayland.
[SourceHut](https://hg.sr.ht/~scoopta/wofi).
## bemenu ## bemenu
bemenu is, maybe for some, the more well-known one. Kinda like dmenu. [GitHub](https://github.com/Cloudef/bemenu)
bemenu is, maybe for some, the more well-known one. Kinda like dmenu.
[GitHub](https://github.com/Cloudef/bemenu)

View file

@ -1,15 +1,17 @@
Screensharing is done through PipeWire WebRTC on Wayland. Screensharing is done through PipeWire WebRTC on Wayland.
## Prereqs ## Prereqs
Make sure you have `pipewire` and `wireplumber` installed, enabled and running if you don't have them yet. Make sure you have `pipewire` and `wireplumber` installed, enabled and running
if you don't have them yet.
Also install `slurp` for monitor selection. Also install `slurp` for monitor selection.
## Screensharing ## Screensharing
Read [this amazing gist by PowerBall253](https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580) for a great tutorial. Read
[this amazing gist by PowerBall253](https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580)
for a great tutorial.
## Caveats ## Caveats

View file

@ -1,15 +1,16 @@
Launch your bar with `exec-once=`. Launch your bar with `exec-once=`.
## Waybar ## Waybar
Waybar is a GTK status bar made specifically for wlroots compositors. Waybar is a GTK status bar made specifically for wlroots compositors.
To use it, it's recommended to either use the AUR package `waybar-hyprland-git`, or compile manually with the `USE_EXPERIMENTAL` flag enabled. To use it, it's recommended to either use the AUR package `waybar-hyprland-git`,
or compile manually with the `USE_EXPERIMENTAL` flag enabled.
To compile manually: To compile manually:
Clone the source, then do: Clone the source, then do:
```sh ```sh
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
@ -18,26 +19,28 @@ meson configure -Dexperimental=true build
``` ```
and finally: and finally:
```sh ```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, it's called `wlr/workspaces`.
For more info regarding configuration, see [The Waybar Wiki](https://github.com/Alexays/Waybar/wiki) For more info regarding configuration, see
[The Waybar Wiki](https://github.com/Alexays/Waybar/wiki)
## eww ## eww
In order to use [eww](https://github.com/elkowar/eww), you first have to In order to use [eww](https://github.com/elkowar/eww), you first have to install
install it, either using your distro's package manager, by searching it, either using your distro's package manager, by searching `eww-wayland`, or
`eww-wayland`, or by manually compiling. In the latter case, you need to by manually compiling. In the latter case, you need to have `cargo` and `rustc`
have `cargo` and `rustc` installed, then follow the [instructions](https://elkowar.github.io/eww). installed, then follow the [instructions](https://elkowar.github.io/eww).
### Configuration ### Configuration
After you've successfully installed eww, you can move onto configuring it. After you've successfully installed eww, you can move onto configuring it. There
There are a few examples listed in the [Readme](https://github.com/elkowar/eww), are a few examples listed in the [Readme](https://github.com/elkowar/eww), we
we highly recommend you to also read through the highly recommend you to also read through the
[Configuration options](https://elkowar.github.io/eww/configuration.html). [Configuration options](https://elkowar.github.io/eww/configuration.html).
**NOTE:** Read **NOTE:** Read

View file

@ -1,14 +1,23 @@
Launch your wallpaper utility with `exec-once=`. Launch your wallpaper utility with `exec-once=`.
## hyprpaper ## hyprpaper
Straight from our oven, `hyprpaper` is a wallpaper utility from the Hypr Development team. See its usage and config by following the README on the [GitHub Page](https://github.com/hyprwm/hyprpaper)
Straight from our oven, `hyprpaper` is a wallpaper utility from the Hypr
Development team. See its usage and config by following the README on the
[GitHub Page](https://github.com/hyprwm/hyprpaper)
## swaybg ## swaybg
Great utility if all you want is one simple static wallpaper that will never change, and don't want to make a config file. Get it over [here](https://github.com/swaywm/swaybg).
Great utility if all you want is one simple static wallpaper that will never
change, and don't want to make a config file. Get it over
[here](https://github.com/swaywm/swaybg).
## wpaperd ## wpaperd
A bit more advanced wallpaper daemon with automatic wallpaper changing options and other fancy stuff. [GitHub](https://github.com/danyspin97/wpaperd)
A bit more advanced wallpaper daemon with automatic wallpaper changing options
and other fancy stuff. [GitHub](https://github.com/danyspin97/wpaperd)
## mpvpaper ## mpvpaper
A neat mpv wrapper to play a video as your wallpaper. [GitHub](https://github.com/GhostNaN/mpvpaper)
A neat mpv wrapper to play a video as your wallpaper.
[GitHub](https://github.com/GhostNaN/mpvpaper)

View file

@ -1,5 +1,5 @@
This category is dedicated to short tutorials on how to get useful utilities for
This category is dedicated to short tutorials on how to get useful utilities for Hyprland working. Hyprland working.
## List of Pages ## List of Pages