mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-11-25 22:15:59 +01:00
Format with mdformat
This commit is contained in:
parent
04bf3f24f9
commit
9819cd6b51
21 changed files with 205 additions and 135 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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`
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
```
|
```
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue