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)**