diff --git a/pages/Configuring/Environment-variables.md b/pages/Configuring/Environment-variables.md index d19bc56..a9a02a6 100644 --- a/pages/Configuring/Environment-variables.md +++ b/pages/Configuring/Environment-variables.md @@ -35,7 +35,7 @@ environment on traditional Linux distros. ## Hyprland Environment Variables -- `HYPRLAND_LOG_WLR=1` - Enables more verbose logging of wlroots. +- `HYPRLAND_TRACE=1` - Enables more verbose logging. - `HYPRLAND_NO_RT=1` - Disables realtime priority setting by Hyprland. - `HYPRLAND_NO_SD_NOTIFY=1` - If systemd, disables the `sd_notify` calls. @@ -98,8 +98,8 @@ To force GBM as a backend, set the following environment variables: - `__GL_VRR_ALLOWED` - Controls if Adaptive Sync should be used. Recommended to set as "0" to avoid having problems on some games. -- `env = WLR_DRM_NO_ATOMIC,1` - use legacy DRM interface instead of atomic mode - setting. Might fix flickering issues. +- `env = AQ_NO_ATOMIC,1` - use legacy DRM interface instead of atomic mode + setting. **NOT** recommended. ## Theming Related Variables diff --git a/pages/Configuring/Multi-GPU.md b/pages/Configuring/Multi-GPU.md index cde5f0c..4d0351c 100644 --- a/pages/Configuring/Multi-GPU.md +++ b/pages/Configuring/Multi-GPU.md @@ -46,7 +46,7 @@ boot and is subject to frequent change, making it unsuitable as a marker for GPU After determining which "card" belongs to which GPU, we now have to tell Hyprland the GPU we want to use primarily. -This is done by setting the `WLR_DRM_DEVICES` environment variable. +This is done by setting the `AQ_DRM_DEVICES` environment variable. {{< callout type=info >}} @@ -59,34 +59,34 @@ with lower and higher power rating GPUs respectively. {{< /callout >}} If you wish to use the integrated GPU to run Hyprland, no further action is -required. wlroots will set `WLR_DRM_DEVICES` to the integrated GPU by default. +required. Aquamarine will set `AQ_DRM_DEVICES` to the integrated GPU by default. If instead you would like to use another GPU, you must first create a symlink to the card from the previous section. -It is not possible to use `~/.config/hypr/card` as wlroots will not expand it correctly. +It is not possible to use `~/.config/hypr/card` as aquamarine will not expand it correctly. You must include full path e.g `$HOME/.config/hypr/card` ``` ln -sf /dev/dri/by-path/pci-0000:06:00.0-card $HOME/.config/hypr/card ``` It is not possible to directly use the `/dev/dri/by-path/pci-0000:06:00.0-card` path, -as wlroots interprets the colon symbols in the path as separators. Escaping +as aquamarine interprets the colon symbols in the path as separators. Escaping characters will not rectify this. -Afterwards, you must set the `WLR_DRM_DEVICES` environment variable in +Afterwards, you must set the `AQ_DRM_DEVICES` environment variable in hyprland.conf to this linked card. ```ini -env = WLR_DRM_DEVICES,$HOME/.config/hypr/card +env = AQ_DRM_DEVICES,$HOME/.config/hypr/card ``` If you want to set a sequence of fallback cards, symlink another card and set the var as a colon separated list in order of priority. ```ini -env = WLR_DRM_DEVICES,$HOME/.config/hypr/card:$HOME/.config/hypr/otherCard +env = AQ_DRM_DEVICES,$HOME/.config/hypr/card:$HOME/.config/hypr/otherCard ``` Here, we tell Hyprland to set priorities. If `card` isn't available for diff --git a/pages/Configuring/Tearing.md b/pages/Configuring/Tearing.md index ef84b8b..f088e60 100644 --- a/pages/Configuring/Tearing.md +++ b/pages/Configuring/Tearing.md @@ -10,8 +10,6 @@ Screen tearing is used to reduce latency and/or jitter in games. To enable tearing: - Set `general:allow_tearing` to `true`. This is a "master toggle" -- Add `env = WLR_DRM_NO_ATOMIC,1` to your Hyprland config. This disables the - usage of a newer kernel DRM API that doesn't support tearing yet. - Add an `immediate` windowrule to your game of choice. This makes sure that Hyprland will tear it. @@ -29,22 +27,9 @@ general { allow_tearing = true } -env = WLR_DRM_NO_ATOMIC,1 - windowrulev2 = immediate, class:^(cs2)$ ``` -{{< callout >}} - -`env = WLR_DRM_NO_ATOMIC,1` is not recommended. If your kernel ver is >= 6.8, -you can remove it. - -For kernels < 6.8, this env is required. - -Check your kernel version with `uname -r`. - -{{< /callout >}} - {{< callout type=warning >}} If you experience graphical issues, you may be out of luck. Tearing support is @@ -66,8 +51,7 @@ monitor is fine) ### Apps that should tear, freeze -Almost definitely means your GPU driver does not support tearing, like e.g. -Intel's, or AMD if you don't use the legacy backend with `env = WLR_DRM_NO_ATOMIC,1` or patch your kernel. +Almost definitely means your GPU driver does not support tearing. Please _do not_ report issues if this is the culprit. @@ -77,13 +61,3 @@ Likely issue with your graphics driver. Please _do not_ report issues if this is the culprit. Unfortunately, it's most likely your GPU driver's fault. - -### Other graphical issues/Hyprland instantly crashes on launch - -Likely issue with `WLR_DRM_NO_ATOMIC`. - -NO_ATOMIC forces the use of a legacy, less tested drm API. - -Please _do not_ report issues if this is the culprit. Unfortunately, you will -have to wait for the Linux kernel to support tearing page flips on the atomic -API. diff --git a/pages/Configuring/Variables.md b/pages/Configuring/Variables.md index fdb129c..1fe4809 100644 --- a/pages/Configuring/Variables.md +++ b/pages/Configuring/Variables.md @@ -426,6 +426,7 @@ _Subcategory `group:groupbar:`_ | enable_hyprcursor | whether to enable hyprcursor support | bool | true | | hide_on_key_press | Hides the cursor when you press any key until the mouse is moved. | bool | false | | hide_on_touch | Hides the cursor when the last input was a touch input until a mouse input is done. | bool | false | +| allow_dumb_copy | Makes HW cursors work on Nvidia, at the cost of a possible hitch whenever the image changes | bool | false | ### Debug diff --git a/pages/Crashes and Bugs/_index.md b/pages/Crashes and Bugs/_index.md index 52e2d68..650e824 100644 --- a/pages/Crashes and Bugs/_index.md +++ b/pages/Crashes and Bugs/_index.md @@ -33,16 +33,13 @@ Attach that file to your issue. Diagnose the issue by what is in the log: -- `sWLRBackend was NULL!` -> launch in the TTY and refer to the wlr logs in RED. +- `backend failed to start` -> launch in the TTY and refer to the logs in RED. - `Monitor X has NO PREFERRED MODE, and an INVALID one was requested` -> your monitor is bork. - Other -> see the coredump. Use `coredumpctl`, find the latest one's PID and do `coredumpctl info PID`. - failing on a driver (e.g. `radeon`) -> try compiling with `make legacyrenderer`, if that doesn't help, report an issue. -- failing on `wlr-xxx` -> try compiling with `make legacyrenderer`, if that - doesn't help, report an issue, and also refer to the TTY wlr logs in RED like - in the first point. - failing on `Hyprland` -> report an issue. ## Crashes not at launch diff --git a/pages/FAQ/_index.md b/pages/FAQ/_index.md index 18f1866..70501a8 100644 --- a/pages/FAQ/_index.md +++ b/pages/FAQ/_index.md @@ -39,7 +39,7 @@ Outside those, there is a way to fix it that _might_ work for you though: **Option 1:** Use _only_ the external monitor -By using `WLR_DRM_DEVICES=/dev/dri/card1` (or `card0`) environment variable you can force Hyprland to +By using `AQ_DRM_DEVICES=/dev/dri/card1` (or `card0`) environment variable you can force Hyprland to use only your dGPU, meaning your laptop's screen will be gone but your external one will work. diff --git a/pages/Getting Started/Installation.md b/pages/Getting Started/Installation.md index e3c7cdc..b007cdb 100644 --- a/pages/Getting Started/Installation.md +++ b/pages/Getting Started/Installation.md @@ -211,15 +211,12 @@ copy hyprctl to `/usr/bin/`. copy hyprpm to `/usr/bin/`. -copy the wlroots .so (`libwlroots.so.XX032`) to `/usr/lib/`. - copy the desktop entry (`example/hyprland.desktop`) to `/usr/share/wayland-sessions/` the example config is in `example/hyprland.conf`. -For updating later on, you can overwrite the binaries (hyprctl, hyprland and -libwlroots), you don't need to update anything else. +For updating later on, you can overwrite the binaries (hyprctl, hyprland, hyprpm ...). You don't need to update anything else. ### Manual (Manual Build) @@ -251,7 +248,7 @@ zypper in gcc-c++ git meson cmake "pkgconfig(cairo)" "pkgconfig(egl)" "pkgconfig ```plain pkg install git pkgconf gmake gcc evdev-proto cmake wayland-protocols wayland libglvnd libxkbcommon libinput cairo pango pixman libxcb -pkg install meson jq `pkg rquery %dn wlroots` hwdata libdisplay-info libliftoff +pkg install meson jq hwdata libdisplay-info libliftoff export CC=gcc CXX=g++ LDFLAGS="-static-libstdc++ -static-libgcc" ``` @@ -261,11 +258,7 @@ export CC=gcc CXX=g++ LDFLAGS="-static-libstdc++ -static-libgcc" refer to the Ubuntu tab above -Please note Hyprland builds `wlroots`. Make sure you have the dependencies of -wlroots installed, you can make sure you have them by installing wlroots -separately (Hyprland doesn't mind) - -Also note that Hyprland uses the C++23 standard, so both your compiler and your +Please note that Hyprland uses the C++23 standard, so both your compiler and your C++ library has to support that (`gcc>=13.0.0` or `clang>=15`). On Clang-based systems libc++ may be used by default, so until libc++ supports C++23 you have to pass `-stdlib=libstdc++` or switch to GCC. @@ -276,6 +269,7 @@ to pass `-stdlib=libstdc++` or switch to GCC. Additionally to those, you will also need a few hypr* dependencies which may or may not be packaged for your distro of choice: + - aquamarine - hyprlang - hyprcursor - hyprwayland-scanner (build-only) @@ -367,7 +361,7 @@ Now, of course, install manually. sudo cp ./build/Hyprland /usr/bin && sudo cp ./example/hyprland.desktop /usr/share/wayland-sessions ``` -Lastly, copy hyprctl, hyprpm, and wlroots as mentioned +Lastly, copy hyprctl, hyprpm, hyprctl, etc as mentioned [here](#manual-releases-linux-only) ## Running In a VM diff --git a/pages/Nvidia/_index.md b/pages/Nvidia/_index.md index 351939b..46b7a96 100644 --- a/pages/Nvidia/_index.md +++ b/pages/Nvidia/_index.md @@ -92,7 +92,9 @@ cursor { {{< callout type=warning >}} Previously used `WLR_NO_HARDWARE_CURSORS` environment variable has been deprecated. -Do not set it in your configs. Use `cursor:no_hardware_cursors` instead. +Do not set it in your configs. Use `cursor:no_hardware_cursors` instead, and enable `cursor:allow_dumb_copy`. + +Please note this may cause small hitches whenever the cursor shape changes. {{< /callout >}}