diff --git a/pages/Configuring/Animations.md b/pages/Configuring/Animations.md
index 4b01e30..76e63ae 100644
--- a/pages/Configuring/Animations.md
+++ b/pages/Configuring/Animations.md
@@ -1,8 +1,8 @@
-## Table of contents
+# Table of contents
{{< toc >}}
-## General
+# General
Animations are declared with the `animation` keyword.
@@ -23,14 +23,14 @@ animation=NAME,ONOFF,SPEED,CURVE
The animations are a tree. If an animation is unset, it will inherit its
parent's values. See [animation tree](#animation-tree).
-### Examples
+## Examples
```ini
animation=workspaces,1,8,default
animation=windows,1,10,myepiccurve,slide
```
-### Animation tree
+## Animation tree
```txt
@@ -50,7 +50,7 @@ global
↳ specialWorkspace - styles: same as workspaces
```
-## Curves
+# Curves
Defining your own Bezier curve can be done with the `bezier` keyword:
@@ -63,13 +63,13 @@ good website to design your bezier can be found
[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
+## Example
```ini
bezier=overshot,0.05,0.9,0.1,1.1
```
-## Extras
+# Extras
For animation style `popin` in `windows`, you can specify a minimum percentage
to start from. For example:
diff --git a/pages/Configuring/Binds.md b/pages/Configuring/Binds.md
index 4b76ac9..e4c3159 100644
--- a/pages/Configuring/Binds.md
+++ b/pages/Configuring/Binds.md
@@ -1,8 +1,8 @@
-## Table of Contents
+# Table of Contents
{{< toc >}}
-## Basic
+# Basic
```ini
bind=MODS,key,dispatcher,params
@@ -29,7 +29,7 @@ _For a complete mod list, see [Variables](../Variables/#variable-types)._
_The dispatcher list can be found in [Dispatchers](../Dispatchers)._
-## Uncommon syms / binding with a keycode
+# Uncommon syms / binding with a keycode
See the
[xkbcommon-keysyms.h header](https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h)
@@ -49,9 +49,9 @@ bind=SUPER,28,exec,amongus
Will bind SUPER + T. (T is keycode 28.) - You
can also use `xev` or `wev` to find keycodes.
-## Misc
+# Misc
-### Unbind
+## Unbind
You can also unbind with `unbind`, e.g.:
@@ -65,7 +65,7 @@ May be useful for dynamic keybindings with `hyprctl`.
hyprctl keyword unbind SUPER,O
```
-### Mouse buttons
+## Mouse buttons
You can also bind mouse buttons, by prefacing the mouse keycode with `mouse:`,
for example:
@@ -76,7 +76,7 @@ bind=SUPER,mouse:272,exec,amongus
will bind it to SUPER + LMB.
-### Only modkeys
+## Only modkeys
For binding only modkeys, you need to use the TARGET modmask (with the
activating mod) and the `r` flag, e.g.:
@@ -85,7 +85,7 @@ activating mod) and the `r` flag, e.g.:
bindr=SUPERALT,Alt_L,exec,amongus
```
-### Mouse wheel
+## Mouse wheel
You can also bind the mouse wheel with `mouse_up` and `mouse_down`:
@@ -95,7 +95,7 @@ bind=SUPER,mouse_down,workspace,e-1
(control the reset time with `binds:scroll_event_delay`)
-### Switches
+## Switches
Useful for binding e.g. the lid close/open event:
@@ -105,7 +105,7 @@ bindl=,switch:[switch name],exec,swaylock
check out your switches in `hyprctl devices`.
-## Bind flags
+# Bind flags
`bind` supports flags in this format:
@@ -143,7 +143,7 @@ bindr=, SUPER, SUPER_L, exec, pkill wofi || wofi
# See Mouse Binds section for bindm usage
```
-## Mouse Binds
+# Mouse Binds
Mouse binds are binds that heavily rely on a mouse, usually its movement.
They will have one less arg, and look for example like this:
@@ -176,7 +176,7 @@ Mouse binds, despite their name, behave like normal binds. You are free to use
whatever keys / mods you please. When held, the mouse function will be activated.
{{< /hint >}}
-## Binding mods
+# Binding mods
You can bind a mod alone like this:
@@ -184,7 +184,7 @@ You can bind a mod alone like this:
bindr=ALT,Alt_L,exec,amongus
```
-## Global Keybinds
+# Global Keybinds
Yes, you heard this right, Hyprland does support global keybinds for ALL apps,
including OBS, Discord, Firefox, etc.
@@ -224,7 +224,7 @@ they don't work, try removing mods and binding them to e.g. F1.
Combining this with a submap should yield neat and usable results.
{{< /hint >}}
-## Submaps
+# Submaps
If you want keybind submaps, for example if you press ALT +
R, you can enter a "resize" mode, resize with arrow keys, and leave
diff --git a/pages/Configuring/Dispatchers.md b/pages/Configuring/Dispatchers.md
index 438d6c7..f219934 100644
--- a/pages/Configuring/Dispatchers.md
+++ b/pages/Configuring/Dispatchers.md
@@ -1,11 +1,11 @@
-## Table of contents
+# Table of contents
{{< toc >}}
Please keep in mind some layout-specific dispatchers will be listed in the
layout pages (See the sidebar).
-## Parameter explanation
+# Parameter explanation
| Param type | Description |
| ---------- | ----------- |
@@ -17,7 +17,7 @@ layout pages (See the sidebar).
| floatdelta | a float value delta, e.g `-0.2` or `+0.2`. |
| workspaceopt | see below. |
-## List of Dispatchers
+# List of Dispatchers
| Dispatcher | Description | Params |
| ---------- | ----------- | ------ |
@@ -65,7 +65,7 @@ bind = MOD,KEY,exec,sleep 1 && hyprctl dispatch dpms off
{{< /hint >}}
-## Workspaces
+# Workspaces
You have seven choices:
@@ -88,7 +88,7 @@ You have seven choices:
`movetoworkspace`. Any other dispatcher will result in undocumented behavior.
{{< /hint >}}
-## Special Workspace
+# Special Workspace
Special workspace is what is called a "scratchpad" in some other places. A
workspace that you can toggle on/off on any monitor.
@@ -98,7 +98,7 @@ You cannot have floating windows in the Special workspace. Making a window float
will send it to the currently active _real_ workspace.
{{< /hint >}}
-## Workspace options
+# Workspace options
```txt
allfloat -> makes all new windows floating (also floats/unfloats windows on toggle)
diff --git a/pages/Configuring/Dwindle-Layout.md b/pages/Configuring/Dwindle-Layout.md
index d0f93d5..2b313c3 100644
--- a/pages/Configuring/Dwindle-Layout.md
+++ b/pages/Configuring/Dwindle-Layout.md
@@ -1,13 +1,13 @@
Dwindle is a BSPWM-like layout, where every window on a workspace is a member
of a binary tree.
-## Quirks
+# Quirks
Dwindle splits are NOT PERMANENT. The split is determined dynamically with the
W/H ratio of the parent node. If W > H, it's side-by-side. If H > W, it's
top-and-bottom. You can make them permanent by enabling `preserve_split`.
-## Grouped (tabbed) windows
+# Grouped (tabbed) windows
Dwindle allows you to make a group with the `togglegroup` bind dispatcher, and
cycle through it with `changegroupactive`.
@@ -28,7 +28,7 @@ Closing windows within the groups is allowed, however, since the groups in the
backend are still a tree, if you remove a node that makes the original node
container get removed, the group will be broken back to its dwindle form.
-## Config
+# Config
category name: `dwindle`
@@ -44,7 +44,7 @@ category name: `dwindle`
| no_gaps_when_only | whether to apply gaps when there is only one window on a workspace, aka. smart gaps. | bool | false |
| use_active_for_splits | whether to prefer the active window or the mouse position for splits | bool | true |
-## Bind Dispatchers
+# Bind Dispatchers
| dispatcher | description | params |
| ----------------- | ---------------------------------------------------------------------- | ---------------------- |
diff --git a/pages/Configuring/Environment-variables.md b/pages/Configuring/Environment-variables.md
index 9dca00e..bc648bd 100644
--- a/pages/Configuring/Environment-variables.md
+++ b/pages/Configuring/Environment-variables.md
@@ -7,7 +7,7 @@ Please avoid putting those environment variables in /etc/environment. That will
sessions (including Xorg ones) to pick up your wayland-specific environment on traditional
Linux distros.
-## XDG Specifications
+# XDG Specifications
- `XDG_CURRENT_DESKTOP=Hyprland`
- `XDG_SESSION_TYPE=wayland`
@@ -16,7 +16,7 @@ Linux distros.
XDG specific environment variables are often detected through portals and applications that may
set those for you, however it is a good idea to provide them in your wrapper script as a fail-safe.
-## QT Variables
+# QT Variables
- `QT_AUTO_SCREEN_SCALE_FACTOR=1` - [(From the QT documentation)](https://doc.qt.io/qt-5/highdpi.html)
enables automatic scaling, based on the monitor's pixel density
@@ -24,7 +24,7 @@ set those for you, however it is a good idea to provide them in your wrapper scr
- `QT_WAYLAND_DISABLE_WINDOWDECORATION=1` - Disables window decorations on QT applications
- `QT_QPA_PLATFORMTHEME=qt5ct` - Tells QT based applications to pick your theme from qt5ct, use with Kvantum.
-## NVIDIA Specific
+# NVIDIA Specific
To force GBM as a backend, set the following environment variables:
@@ -46,7 +46,7 @@ To force GBM as a backend, set the following environment variables:
- `WLR_DRM_NO_ATOMIC=1` - use legacy DRM interface instead of atomic mode setting. Might fix flickering issues.
-## Toolkit Backend Variables
+# Toolkit Backend Variables
- `SDL_VIDEODRIVER=wayland` - Run SDL2 applications on Wayland. Remove or set to x11 if games that provide older versions of SDL cause
compatibility issues
@@ -57,7 +57,7 @@ To force GBM as a backend, set the following environment variables:
- `GDK_BACKEND` - Force backend for wayland-enabled GTK3 and GTK4 backends. Available options are "wayland" or "x11". If GTK XWayland
applications cause issues when set to "wayland", try "wayland,x11"
-## Theming Related Variables
+# Theming Related Variables
- `GTK_THEME` - Set a GTK theme manually, for those who want to avoid appearance tools lxappearance or nwg-look
- `XCURSOR_THEME` - Set your cursor theme. The theme needs to be installed and readable by your user.
diff --git a/pages/Configuring/Expanding-functionality.md b/pages/Configuring/Expanding-functionality.md
index 50ba019..1a85e4a 100644
--- a/pages/Configuring/Expanding-functionality.md
+++ b/pages/Configuring/Expanding-functionality.md
@@ -7,7 +7,7 @@ The second, socket2, sends events for certain changes / actions and can be used
to react to different events. See its description
[here](../../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.
diff --git a/pages/Configuring/Keywords.md b/pages/Configuring/Keywords.md
index a5badee..bb9eb64 100644
--- a/pages/Configuring/Keywords.md
+++ b/pages/Configuring/Keywords.md
@@ -18,11 +18,11 @@ three_param_keyword = A, B, # OK
{{< /hint >}}
-## Table of contents
+# Table of contents
{{< toc format=html >}}
-## Executing
+# Executing
you can execute a shell script on startup of the compositor or on each time it's
reloaded.
@@ -41,7 +41,7 @@ script (`exec-once=~/myscript.sh` and do `myapp &` in the script)
`exec=command` will execute on each reload
-## Defining variables
+# Defining variables
You can define your own custom variables like this:
@@ -67,7 +67,7 @@ You ARE allowed to do this:
col.active_border=ff$MyRedValue1111
```
-## Sourcing (multi-file)
+# Sourcing (multi-file)
Use the `source` keyword to source another file.
@@ -82,14 +82,14 @@ And Hyprland will enter that file and parse it like a Hyprland config.
Please note it's LINEAR. Meaning lines above the `source=` will be parsed first,
then lines inside `~/.config/hypr/myColors.conf`, then lines below.
-## Gestures
+# Gestures
Use something like
[libinput-gestures](https://github.com/bulletmark/libinput-gestures), with
`hyprctl` if you want to expand Hyprland's gestures beyond what's offered in
[Variables](../Variables).
-## Per-device input configs
+# Per-device input configs
Per-device config options will overwrite your options set in the `input`
section. It's worth noting that ONLY values explicitly changed will be
@@ -139,7 +139,7 @@ hyprctl keyword device:royuan-akko-multi-modes-keyboard-b:kb_layout us
{{< /hint >}}
-## Wallpapers
+# Wallpapers
The hyprland background you see when you first start Hyprland is **NOT A
WALLPAPER**, it's the default image rendered at the bottom of the render stack.
@@ -149,7 +149,7 @@ To set a wallpaper, use a wallpaper utility like
More can be found in [Useful Utilities](../Useful-Utilities).
-## Blurring layerSurfaces
+# Blurring layerSurfaces
LayerSurfaces are not windows. These are for example: Your wallpapers,
notification overlays, bars, etc.
diff --git a/pages/Configuring/Master-Layout.md b/pages/Configuring/Master-Layout.md
index 38ac049..e58215f 100644
--- a/pages/Configuring/Master-Layout.md
+++ b/pages/Configuring/Master-Layout.md
@@ -1,7 +1,7 @@
The master layout makes one window be the "master", taking the left part of the
screen, and tiles the rest on the right.
-## Quirks
+# Quirks
The right, "slave" windows will always be split uniformly. You cannot change
their size.
@@ -12,7 +12,7 @@ However, you can resize the master window.
![master2](https://user-images.githubusercontent.com/43317083/179357863-928b0b5a-ff10-4edc-aa76-3ff88c59c980.gif)
-## Config
+# Config
_category name `master`_
@@ -28,7 +28,7 @@ _category name `master`_
| no_gaps_when_only | whether to apply gaps when there is only one window on a workspace, aka. smart gaps. | bool | false |
| use_active_for_splits | whether to prefer the active window or the mouse position for splits | bool | true |
-## Dispatchers
+# Dispatchers
`layoutmsg` params:
diff --git a/pages/Configuring/Monitors.md b/pages/Configuring/Monitors.md
index a716812..7f9bcbf 100644
--- a/pages/Configuring/Monitors.md
+++ b/pages/Configuring/Monitors.md
@@ -1,8 +1,8 @@
-## Table of contents
+# Table of contents
{{< toc format=html >}}
-## General
+# General
The general config of a monitor looks like this
@@ -67,7 +67,7 @@ For more specific rules, you can also use the output's description
monitor=desc:SDC 0x4154 (eDP-1),preferred,auto,1.5
```
-## Disabling a monitor
+# Disabling a monitor
To disable a monitor, use
@@ -75,7 +75,7 @@ To disable a monitor, use
monitor=name,disable
```
-## Custom reserved area
+# Custom reserved area
If your workflow requires custom reserved area, you can add it with
@@ -87,7 +87,7 @@ Where `TOP` `BOTTOM` `LEFT` `RIGHT` are integers in pixels of the reserved area
to add. This does stack on top of the calculated one, (e.g. bars) but you may
only use one of these rules per monitor in the config.
-## Mirrored displays
+# Mirrored displays
If you want to mirror a display, add a `,mirror,[NAME]` at the end of the monitor
rule, examples:
@@ -102,7 +102,7 @@ second monitor, so if mirroring a 1080p screen onto a 4K one, the resolution
will still be 1080p on the 4K display. This also means squishing and stretching
will occur on non-matching resolutions.
-## Rotating and the default workspace
+# Rotating and the default workspace
{{< hint type=important >}}
@@ -143,7 +143,7 @@ flipped + 180 degrees -> 6
flipped + 270 degrees -> 7
```
-## Binding workspaces to a monitor
+# Binding workspaces to a monitor
A workspace can be bound to a monitor, meaning by default it will ALWAYS open
on the selected monitor. You can do this with
diff --git a/pages/Configuring/Uncommon-tips-&-tricks.md b/pages/Configuring/Uncommon-tips-&-tricks.md
index 32f0762..4d0eba4 100644
--- a/pages/Configuring/Uncommon-tips-&-tricks.md
+++ b/pages/Configuring/Uncommon-tips-&-tricks.md
@@ -1,4 +1,4 @@
-## Switchable keyboard layouts
+# Switchable keyboard layouts
The easiest way to accomplish this is to set this using XKB settings, for example:
@@ -17,7 +17,7 @@ For example: `us,ua` -> config binds would be e.g. `SUPER, A`, while on `ua,us`
{{< /hint >}}
-## 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.
diff --git a/pages/Configuring/Using-hyprctl.md b/pages/Configuring/Using-hyprctl.md
index 7d5780d..cd030dc 100644
--- a/pages/Configuring/Using-hyprctl.md
+++ b/pages/Configuring/Using-hyprctl.md
@@ -8,7 +8,7 @@ the terminal.
If it's not, go to the repo root and `/hyprctl`. Issue a `make all` and then
`sudo cp ./hyprctl /usr/bin`.
-## Using Hyprctl
+# Using Hyprctl
{{< hint type=warning >}}
diff --git a/pages/Configuring/Variables.md b/pages/Configuring/Variables.md
index e130a6a..0e742d6 100644
--- a/pages/Configuring/Variables.md
+++ b/pages/Configuring/Variables.md
@@ -6,7 +6,7 @@ etc. see the sidebar. For anything else, see [Keywords](../Keywords).
Please keep in mind some options that are layout-specific will be documented in
the layout pages and not here. (See the Sidebar for Dwindle and Master layouts)
-## Variable types
+# Variable types
| type | description |
|---|---|
@@ -38,9 +38,9 @@ SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5
{{< /hint >}}
-## Sections
+# Sections
-### General
+## General
| name | description | type | default |
|---|---|---|---|---|
@@ -61,7 +61,7 @@ SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5
Prefer using `input:sensitivity` over `general:sensitivity` to avoid bugs, especially with Wine/Proton apps.
{{< /hint >}}
-### Decoration
+## Decoration
| name | description | type | default |
|---|---|---|---|---|
@@ -102,7 +102,7 @@ Using `blur_new_optimizations` with an animated wallpaper may actually increase
{{< /hint >}}
-### Animations
+# Animations
| name | description | type | default |
| ------- | ----------------- | ---- | ------- |
@@ -114,7 +114,7 @@ _[More about Animations](../Animations)._
{{< /hint >}}
-### Input
+# Input
## Input
@@ -141,7 +141,7 @@ _[More about Animations](../Animations)._
{{< hint type=info >}}
-### Follow Mouse
+## Follow Mouse
- 0 - disabled
- 1 - full
@@ -154,7 +154,7 @@ _[More about Animations](../Animations)._
For switchable keyboard configs, take a look at [the uncommon tips & tricks page entry](../Uncommon-tips--tricks/#switchable-keyboard-layouts).
{{< /hint >}}
-### Touchpad
+## Touchpad
_Subcategory `input:touchpad:`_
@@ -186,7 +186,7 @@ input {
Doing `input:touchpad {` is **invalid**!
{{< /hint >}}
-### Touchdevice
+## Touchdevice
_Subcategory `input:touchdevice:`_
@@ -195,11 +195,11 @@ _Subcategory `input:touchdevice:`_
| transform | transform the input from touchdevices. The possible transformations are the same as [those of the monitors](../Monitors/#rotating-and-the-default-workspace) | int | 0 |
| output | the output to bind touch devices. Empty means unset and will use the current / autodetected. | string | \[EMPTY\] |
-### Per-device input config
+## Per-device input config
Described [here](../Keywords#per-device-input-configs).
-## Gestures
+# Gestures
| name | description | type | default |
|---|---|---|---|---|
@@ -211,7 +211,7 @@ Described [here](../Keywords#per-device-input-configs).
| workspace_swipe_cancel_ratio | (0.0 - 1.0) how much the swipe has to proceed in order to commence it. (0.7 -> if > 0.7 * distance, switch, if less, revert) | float | 0.5 |
| workspace_swipe_create_new | whether a swipe right on the last workspace should create a new one. | bool | true |
-## Misc
+# Misc
| name | description | type | default |
|---|---|---|---|---|
@@ -227,7 +227,7 @@ Described [here](../Keywords#per-device-input-configs).
| enable_swallow | Enable window swallowing | bool | false |
| swallow_regex | The *class* regex to be used for windows that should be swallowed (usually, a terminal) | str | \[EMPTY\] |
-## Binds
+# Binds
| name | description | type | default |
|---|---|---|---|---|
@@ -236,7 +236,7 @@ Described [here](../Keywords#per-device-input-configs).
| workspace_back_and_forth | If enabled, an attempt to switch to the currently focused workspace will instead switch to the previous workspace. Akin to i3's *auto_back_and_forth*. | bool | false |
| allow_workspace_cycles | If enabled, workspaces don't forget their previous workspace, so cycles can be created by switching to the first workspace in a sequence, then endlessly going to the previous workspace. | bool | false |
-## Debug
+# Debug
{{< hint type=warning >}}
@@ -251,7 +251,7 @@ Only for developers.
| disable_logs | self-explanatory | bool | false |
| disable_time | disables time logging | bool | true |
-## More
+# More
There are more config options described in other pages, which are layout- or
circumstance-specific. See the sidebar for more pages.
diff --git a/pages/Configuring/Window-Rules.md b/pages/Configuring/Window-Rules.md
index f7828a5..73d668f 100644
--- a/pages/Configuring/Window-Rules.md
+++ b/pages/Configuring/Window-Rules.md
@@ -2,11 +2,11 @@
{{< toc >}}
-## Window Rules V1
+# Window Rules V1
You can set window rules to achieve different behaviours from the active container.
-### Syntax
+## Syntax
```ini
windowrule=RULE,WINDOW
@@ -17,14 +17,14 @@ windowrule=RULE,WINDOW
- plain RegEx (for matching a window class);
- `title:` followed by a regex (for matching a window's title)
-#### Examples
+### Examples
```ini
windowrule=float,^(kitty)$
windowrule=move 0 0,title:^(Firefox)(.*)$
```
-## Window Rules V2
+# Window Rules V2
In order to allow more flexible rules, while retaining compatibility with the above
rule system, window rules V2 were implemented.
@@ -92,7 +92,7 @@ windowrule = animation popin,^(kitty)$
windowrule = noblur,^(firefox)$
```
-## Notes
+### Notes
{{< hint type=tip >}}
diff --git a/pages/Contributing and Debugging/PR-Guidelines.md b/pages/Contributing and Debugging/PR-Guidelines.md
index d7d7f80..3ae5539 100644
--- a/pages/Contributing and Debugging/PR-Guidelines.md
+++ b/pages/Contributing and Debugging/PR-Guidelines.md
@@ -1,4 +1,4 @@
-## PR Requirements
+# PR Requirements
- Clean, not hacky code
- Described changes and _why_ they were there
diff --git a/pages/Crashes and Bugs/_index.md b/pages/Crashes and Bugs/_index.md
index e92cbba..ce6e686 100644
--- a/pages/Crashes and Bugs/_index.md
+++ b/pages/Crashes and Bugs/_index.md
@@ -1,4 +1,4 @@
-## Getting the log
+# Getting the log
If you are in a TTY, and the hyprland session that crashed was the last one you
launched, the log will be printed with
@@ -15,7 +15,7 @@ if you are in a Hyprland session, and you want the log of the last session, use
cat /tmp/hypr/$(ls -t /tmp/hypr/ | head -n 2 | tail -n 1)/hyprland.log
```
-## Crashes at launch
+# Crashes at launch
Diagnose the issue by what is in the log:
@@ -31,11 +31,11 @@ Diagnose the issue by what is in the log:
in the first point.
- failing on `Hyprland` -> report an issue.
-## Crashes not at launch
+# Crashes not at launch
Report an issue on GitHub or on the Discord server.
-## Bugs
+# Bugs
First of all, **_READ THE [FAQ PAGE](../FAQ)_**
diff --git a/pages/FAQ/_index.md b/pages/FAQ/_index.md
index aa119d2..b0f5e4d 100644
--- a/pages/FAQ/_index.md
+++ b/pages/FAQ/_index.md
@@ -1,8 +1,8 @@
-## Table of Contents
+# Table of Contents
{{< toc format=html >}}
-## Nothing renders / screen is empty / crash on opening first app
+# Nothing renders / screen is empty / crash on opening first app
Possible causes:
@@ -20,13 +20,13 @@ try compiling with LEGACY_RENDERER
_For more info about bugs and crashes, see this_
_[wiki page](../../Crashes-and-Bugs)_
-### Me cursor no render?
+# Me cursor no render?
Are you on NVIDIA? If so, then you have been a naughty boy and haven't listened
to my tips on other pages. Use the `WLR_NO_HARDWARE_CURSORS=1` environment
variable.
-### My external monitor is blank / doesn't render / receives no signal (laptop)
+# My external monitor is blank / doesn't render / receives no signal (laptop)
For Radeon graphics - unfortunately, it's a bug in wlroots, and I can't
do much about it other than wait for the wlroots devs to fix it:
@@ -51,7 +51,7 @@ _Please note these are highly model-specific and might or might not work. If the
You might try a USB-C to hdmi adapter though, maybe that could route the external monitor through the iGPU.
-### How do I screenshot?
+# How do I screenshot?
Install `grim` and `slurp`
@@ -64,30 +64,30 @@ For a more complete utility, try our own screenshotting utility:
For recording videos, wf-recorder or OBS Studio could be used.
-### Screenshare / OBS no worky
+# Screenshare / OBS no worky
Check [Screensharing](../Useful-Utilities/Screen-Sharing).
-### How do I change my wallpaper?
+# How do I change my wallpaper?
See [Wallpapers](../Useful-Utilities/Wallpapers).
-### My games work poorly, especially proton ones
+# My games work poorly, especially proton ones
Use `gamescope`, tends to fix any and all issues with wayland/Hyprland.
-### How heavy is this?
+# How heavy is this?
Not that much heavier than Xorg. If you want maximum performance, consider
turning off the blur and animations.
-### My monitor no worky
+# 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 update?
+# How do I update?
Open a terminal where you cloned the repo.
```bash
@@ -100,11 +100,11 @@ 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.
-### How do I screen lock?
+# How do I screen lock?
Use a wayland-compatible locking utility using WLR protocols, e.g. `swaylock`.
-### How do I change me mouse cursor?
+# How do I change me mouse cursor?
Use a tool like for example `lxappearance` to change the GTK cursor.
@@ -125,21 +125,21 @@ all good!
If it still doesn't work...
-### GTK Settings no work / whatever
+# GTK Settings no work / whatever
[https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland](https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland)
-### My \[program name\] is freezing
+# My \[program name\] is freezing
Make sure you have a notification daemon running, for example `dunst`. Autostart
it with the `exec-once` keyword.
-### Waybar no worky???
+# Waybar no worky???
Waybar has a set of caveats or settings that you need to be aware of. See
[Status bars](../Useful-Utilities/Status-Bars) for solutions.
-### How do I autostart my favorite apps?
+# How do I autostart my favorite apps?
Using the window rules to assign apps to workspace you can setup a session start
script to open a bunch of applications on various workspaces. The following
@@ -177,7 +177,7 @@ hyprctl keyword windowrule "workspace unset,firefox"
in `sleep 10`, the 10 seconds is of course only a suggestion.
-### How do I move my favorite workspaces to a new monitor when I plug it in?
+# How do I move my favorite workspaces to a new monitor when I plug it in?
if you want workspaces to automatically go to a monitor upon connection, use the
following:
@@ -209,13 +209,13 @@ if you want workspaces 1 2 4 5 to go to monitor 1 when connecting it.
Please note this requires `socat` to be installed.
-### My tablet no worky??
+# My tablet no worky??
Use [Open Tablet Driver](https://github.com/OpenTabletDriver/OpenTabletDriver)
to configure your tablet. In the future it will be supported in the config.
Until then, OTD is the way to go.
-### Some of my apps take a really long time to open...?
+# Some of my apps take a really long time to open...?
_~/.config/hypr/hyprland.conf_
@@ -246,7 +246,7 @@ sleep 4
launched with `exec-once` should fix all issues. Adjust the sleep durations to taste.
-### How do I export envvars for Hyprland?
+# How do I export envvars for Hyprland?
As with any Display Server, Xorg included, you should probably make a script to
launch it, for example:
@@ -262,16 +262,16 @@ For Display Manager users, you can replace the `exec` entry in
the `.desktop` file to point to your script. You are recommended
to use absolute paths, such as `/home/username/Script` instead of `~/Script`
-### I get random white flashes
+# I get random white flashes
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, change it. It's
heavily advised to use `full` regardless of anything.
-#### Useful Optimizations
+## Useful Optimizations
* `decoration:blur_new_optimizations = true`, to use new optimizations for
blurring.
diff --git a/pages/Getting Started/Quick-start.md b/pages/Getting Started/Quick-start.md
index 5dc5781..02d129e 100644
--- a/pages/Getting Started/Quick-start.md
+++ b/pages/Getting Started/Quick-start.md
@@ -12,7 +12,7 @@ If you have an Nvidia card, please also take a look at
wrapper, as described in the section below, then follow the instructions from
the Nvidia page, and then continue 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...
kind of.
@@ -47,7 +47,7 @@ the provided one, as many package managers (and `sudo make install`) will **over
the desktop file on updates. If you manually build Hyprland, consider using `sudo make cleaninstall` to preserve `hyprland.deskop`
{{< /hint >}}
-## Immediate
+# Immediate
**OMG MY SCREEN IS BROKEN, FLASHY TEARY!** -> see the bottom of this page
@@ -61,7 +61,7 @@ Paste it into `~/.config/hypr/hyprland.conf`
You can, of course, start from the pregenerated config if you wish to. If you
want the warning to go away, remove the `autogenerated=1` line.
-## Monitors
+# Monitors
Use `hyprctl monitors` to list available outputs. `hyprctl` will _not_ tell you
what your monitor is capable of though, so if you want to check your resolution / refresh rate,
diff --git a/pages/IPC/_index.md b/pages/IPC/_index.md
index 165d8f8..e8170f9 100644
--- a/pages/IPC/_index.md
+++ b/pages/IPC/_index.md
@@ -1,13 +1,13 @@
Hyprland exposes 2 UNIX Sockets, for controlling / getting info about Hyprland
via code / bash utilities.
-## Hyprland Instance Signature (HIS)
+# Hyprland Instance Signature (HIS)
```sh
echo $HYPRLAND_INSTANCE_SIGNATURE
```
-## /tmp/hypr/\[HIS\]/.socket.sock
+# /tmp/hypr/\[HIS\]/.socket.sock
Used for hyprctl-like requests. See the
[Hyprctl page](../Configuring/Using-hyprctl) for
@@ -15,7 +15,7 @@ commands.
basically, write `command args`.
-## /tmp/hypr/\[HIS\]/.socket2.sock
+# /tmp/hypr/\[HIS\]/.socket2.sock
Used for events. Hyprland will write to each connected client live events like
this:
@@ -24,7 +24,7 @@ this:
e.g.: `workspace>>2`
-### Events list
+# Events list
| name | description | data |
| --- | --- | --- |
@@ -51,7 +51,7 @@ A window might do for example 3 requests to be fullscreen'd, which would result
in 3 fullscreen events.
{{< /hint >}}
-## How to use socket2 with bash
+# How to use socket2 with bash
example script using socket2 events with bash and `socat`:
diff --git a/pages/Nix/_index.md b/pages/Nix/_index.md
index a00c259..2ffe641 100644
--- a/pages/Nix/_index.md
+++ b/pages/Nix/_index.md
@@ -1,6 +1,4 @@
-# Hyprland with Nix
-
-## Table of contents
+# Table of contents
{{< toc format=html >}}
@@ -10,7 +8,7 @@ work as intended. Please use the
[flake](https://github.com/hyprwm/Hyprland/blob/main/flake.nix).
{{< /hint >}}
-## Install and configure Hyprland on NixOS
+# Install and configure Hyprland on NixOS
Make sure to check out the options of the
[Nix module](https://github.com/hyprwm/Hyprland/blob/main/nix/module.nix).
@@ -18,7 +16,7 @@ Make sure to check out the options of the
Do note that the Nixpkgs Hyprland package is not actively maintained, and may be outdated
Installation using the Flake is recommended.
-### With flakes
+## With flakes
```nix
# flake.nix
@@ -46,7 +44,7 @@ Installation using the Flake is recommended.
Don't forget to replace `HOSTNAME` with your hostname!
-### Without flakes
+## Without flakes
{{< hint >}}
If you're using Hyprland through an overlay, set
@@ -72,11 +70,11 @@ in {
}
```
-## Install and configure through Home Manager
+# Install and configure through Home Manager
You can use the Home Manager module by adding it to your configuration:
-### With flakes
+## With flakes
```nix
# flake.nix
@@ -108,7 +106,7 @@ You can use the Home Manager module by adding it to your configuration:
Don't forget to replace `USER@HOSTNAME` with your username and hostname!
-### Without flakes
+## Without flakes
```nix
# home config
@@ -130,7 +128,7 @@ in {
For a list of available options, check the
[module file](https://github.com/hyprwm/Hyprland/blob/main/nix/hm-module.nix).
-## Modules mix'n'match
+# Modules mix'n'match
- If you plan on using the HM module alongside the NixOS module, set the NixOS
`programs.hyprland.package = null;`.
@@ -141,9 +139,9 @@ For a list of available options, check the
- If you don't plan on using any module, manually enable whatever options the
modules set.
-## Non-NixOS install
+# Non-NixOS install
-### With flakes
+## With flakes
First, [enable flakes](https://nixos.wiki/wiki/Flakes#Enable_flakes).
@@ -172,7 +170,7 @@ nixGL Hyprland
or by creating a wrapper script that runs the above command inside.
-### Upgrading
+## Upgrading
In order to upgrade all your packages, you can run
@@ -184,12 +182,12 @@ Check the
[nix profile](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-profile.html)
command documentation for other upgrade options.
-## XWayland
+# XWayland
XWayland is enabled by default in the Nix package. You can disable it either
in the package itself, or through the Home Manager module.
-### Package
+## Package
```nix
(inputs.hyprland.packages.${pkgs.default}.default.override {
@@ -197,7 +195,7 @@ in the package itself, or through the Home Manager module.
})
```
-#### HM module
+### HM module
```nix
wayland.windowManager.hyprland = {
@@ -206,7 +204,7 @@ wayland.windowManager.hyprland = {
}
```
-### HiDPI
+## HiDPI
By default, the Nix package includes a patched wlroots that can render HiDPI
XWayland windows.
@@ -238,7 +236,7 @@ to wlroots), you can do so by either using the `hyprland-no-hidpi` package,
or by passing the `hidpiXWayland = false;` flag, the same way as
[disabling XWayland](#package)
-## Cachix
+# Cachix
A [Hyprland Cachix](https://app.cachix.org/cache/hyprland) exists to cache the
`wlroots` package and speed up builds.
@@ -256,7 +254,7 @@ this cache to download the binary directly, instead of building locally.
}
```
-## Overrides
+# Overrides
You can override the package through `.override` or `.overrideAttrs`. This is
easily achievable through NixOS or Home Manager.
diff --git a/pages/Nvidia/_index.md b/pages/Nvidia/_index.md
index cc08340..2eaa8ad 100644
--- a/pages/Nvidia/_index.md
+++ b/pages/Nvidia/_index.md
@@ -1,4 +1,4 @@
-## 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
@@ -8,7 +8,7 @@ Every card seems to be random, and might work perfectly, or not work at all.
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 initramfs & kernel
parameters. Follow the information available here:
@@ -46,7 +46,7 @@ Launch Hyprland with the wrapper.
It _should_ work now.
-### Fixing random flickering, method 1
+## Fixing random flickering, method 1
If you take a look at the wlroots patches in the [nix flake](https://github.com/hyprwm/Hyprland/blob/main/nix/wlroots.nix)
you will find a one-line patch:
@@ -59,7 +59,7 @@ What this means, for non-nix users, is you have to (before building) go to
`submodules/wlroots/render/gles2/renderer.c` and replace all occurrences of `glFlush()`
with `glFinish()`, and then compile Hyprland as usual.
-### Fixing random flickering, method 2 (nuclear)
+## Fixing random flickering, method 2 (nuclear)
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).
diff --git a/pages/Useful Utilities/App-Clients.md b/pages/Useful Utilities/App-Clients.md
index 1cd3672..3ad0cc0 100644
--- a/pages/Useful Utilities/App-Clients.md
+++ b/pages/Useful Utilities/App-Clients.md
@@ -1,14 +1,14 @@
Some clients are known for being a massive pain under Wayland. Here are great
replacements for them:
-## Discord
+# Discord
[WebCord](https://github.com/SpacingBat3/WebCord) is a Discord client based on
the latest Electron, with support for Wayland Ozone platform, as well as
PipeWire screensharing. It has tons of great features and tries not to infringe
on the Discord ToS.
-## Spotify
+# Spotify
It has been reported that Spotify does not follow window rules. This is possibly
because the client sets is class _after_ the window has opened, thus making it "immune"
diff --git a/pages/Useful Utilities/App-Launchers.md b/pages/Useful Utilities/App-Launchers.md
index e31d44c..5f7f491 100644
--- a/pages/Useful Utilities/App-Launchers.md
+++ b/pages/Useful Utilities/App-Launchers.md
@@ -1,14 +1,14 @@
-## Wofi
+# Wofi
Wofi is a GTK-based customizable launcher for wayland.
[SourceHut](https://hg.sr.ht/~scoopta/wofi).
-## Rofi (Wayland fork)
+# Rofi (Wayland fork)
Rofi, but with Wayland support.
[GitHub](https://github.com/lbonn/rofi).
-## bemenu
+# bemenu
bemenu is a Wayland-native replacement for dmenu.
[GitHub](https://github.com/Cloudef/bemenu).
diff --git a/pages/Useful Utilities/Color-Pickers.md b/pages/Useful Utilities/Color-Pickers.md
index f1a48d6..e61f69a 100644
--- a/pages/Useful Utilities/Color-Pickers.md
+++ b/pages/Useful Utilities/Color-Pickers.md
@@ -2,6 +2,6 @@ Color pickers are useful for quickly grabbing a color of _something_ on your scr
We recommend our own solution, which, so far, seems to be the only one that doesn't suck.
-## Hyprpicker
+# Hyprpicker
Dead simple to use. Launch, click, and you're done. [GitHub](https://github.com/hyprwm/hyprpicker)
diff --git a/pages/Useful Utilities/Screen-Sharing.md b/pages/Useful Utilities/Screen-Sharing.md
index b58f6a3..4518b0c 100644
--- a/pages/Useful Utilities/Screen-Sharing.md
+++ b/pages/Useful Utilities/Screen-Sharing.md
@@ -1,13 +1,13 @@
Screensharing is done through PipeWire on Wayland.
-## Prerequsities
+# Prerequsities
Make sure you have `pipewire` and `wireplumber` installed, enabled and running
if you don't have them yet.
Also install `slurp` for monitor selection.
-## Screensharing
+# Screensharing
Read
[this amazing gist by PowerBall253](https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580)
diff --git a/pages/Useful Utilities/Status-Bars.md b/pages/Useful Utilities/Status-Bars.md
index bad2a35..6218378 100644
--- a/pages/Useful Utilities/Status-Bars.md
+++ b/pages/Useful Utilities/Status-Bars.md
@@ -1,10 +1,10 @@
-## Waybar
+# Waybar
Waybar is a GTK status bar made specifically for wlroots compositors.
To use it, it's recommended to use the AUR package `waybar-hyprland-git`.
-### Compiling Manually
+## Compiling Manually
To compile manually:
@@ -24,16 +24,16 @@ 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
+## 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
+## Active workspace doesn't show up
Replace `#workspaces button.focus` with `#wroskapces button.active` in `~/.config/style.css`.
-### Scroll through workspaces
+## 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
@@ -47,21 +47,21 @@ your module this way:
},
```
-### Clicking on workspace doesn't work!
+## Clicking on workspace doesn't work!
On the `wlr/workspaces` module, add `"on-click": "activate"`. That's the purpose of
the `sed` command we had to apply before building: the default way to select a
workspace by clicking uses the `swaymsg`'s way, furthermore it is required to edit
this function to make it work with `hyprctl`.
-## Eww
+# Eww
In order to use [Eww](https://github.com/elkowar/eww), you first have to install
it, either using your distro's package manager, by searching `eww-wayland`, or
by manually compiling. In the latter case, you can follow the
[instructions](https://elkowar.github.io/eww).
-### Configuration
+## Configuration
After you've successfully installed Eww, you can move onto configuring it. There
are a few examples listed in the [Readme](https://github.com/elkowar/eww). We
@@ -74,13 +74,13 @@ Read
carefully before asking why your bar doesn't work.
{{< /hint >}}
-## Hybrid
+# Hybrid
Like Waybar, Hybrid is a GTK status bar mainly focused for wlroots compositors.
You can install it from the AUR by the name `hybrid-bar-git`, do note though that
it builds the bar from source, so it may take a few minutes.
-### Configuration
+## Configuration
The configuration is done through JSON, more information is available [here](https://github.com/vars1ty/HybridBar).
diff --git a/pages/Useful Utilities/Wallpapers.md b/pages/Useful Utilities/Wallpapers.md
index 60b6dda..18d52a4 100644
--- a/pages/Useful Utilities/Wallpapers.md
+++ b/pages/Useful Utilities/Wallpapers.md
@@ -1,28 +1,28 @@
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).
-## 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
[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).
-## mpvpaper
+# mpvpaper
A neat mpv wrapper to play a video as your wallpaper.
[GitHub](https://github.com/GhostNaN/mpvpaper).
-## swww
+# swww
An efficient animated wallpaper daemon for wayland, controlled at runtime,
which means you can change wallpapers without even needing to restart.
diff --git a/pages/Useful Utilities/_index.md b/pages/Useful Utilities/_index.md
index 2e391e7..1067f2a 100644
--- a/pages/Useful Utilities/_index.md
+++ b/pages/Useful Utilities/_index.md
@@ -1,7 +1,7 @@
This category is dedicated to short tutorials on how to get useful utilities for
Hyprland working.
-## List of Pages
+# List of Pages
- **[Status Bars](./Status-Bars)**