hyprland-wiki/pages/Configuring/Environment-variables.md
k26pl 4865c66066 Change env vars to hyprland format
Changes env vars to hyperland format making them copy-pastable into config.
QT_QPA_PLATFORM is originally in quotes, i think it is because of bash and ``;`` and works in hypr, but i am not sure.
2024-03-31 14:26:52 +03:00

112 lines
3.6 KiB
Markdown

---
weight: 15
title: Environment variables
---
You can use the `env` keyword to set environment variables prior to the
initialization of the Display Server, e.g.:
```ini
env = GTK_THEME,Nord
```
{{< callout >}}
Hyprland puts the raw string to the envvar with the `env` keyword. You should
_not_ add quotes around the values.
e.g.:
```ini
env = QT_QPA_PLATFORM,wayland
```
and _**NOT**_
```ini
env = QT_QPA_PLATFORM,"wayland"
```
{{< /callout >}}
Please avoid putting those environment variables in /etc/environment. That will
cause all sessions (including Xorg ones) to pick up your wayland-specific
environment on traditional Linux distros.
## Hyprland Environment Variables
- `HYPRLAND_LOG_WLR=1` - Enables more verbose logging of wlroots.
- `HYPRLAND_NO_RT=1` - Disables realtime priority setting by Hyprland.
- `HYPRLAND_NO_SD_NOTIFY=1` - If systemd, disables the `sd_notify` calls.
## Toolkit Backend Variables
- `env = GDK_BACKEND,wayland,x11` - GTK: Use wayland if available, fall back to x11 if
not.
- `env = QT_QPA_PLATFORM,wayland;xcb` - Qt: Use wayland if available, fall back to
x11 if not.
- `env = SDL_VIDEODRIVER,wayland` - Run SDL2 applications on Wayland. Remove or set to
`x11` if games that provide older versions of SDL cause compatibility issues
- `env = CLUTTER_BACKEND,wayland` - Clutter package already has wayland enabled, this
variable will force Clutter applications to try and use the Wayland backend
## XDG Specifications
- `env = XDG_CURRENT_DESKTOP,Hyprland`
- `env = XDG_SESSION_TYPE,wayland`
- `env = XDG_SESSION_DESKTOP,Hyprland`
XDG specific environment variables are often detected through portals and
applications that may set those for you, however it is not a bad idea to set
them explicitly.
## Qt Variables
- `env = 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
- `env = QT_QPA_PLATFORM,wayland;xcb` - Tell Qt applications to use the Wayland
backend, and fall back to x11 if Wayland is unavailable
- `env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1` - Disables window decorations on Qt
applications
- `env = QT_QPA_PLATFORMTHEME,qt5ct` - Tells Qt based applications to pick your theme
from qt5ct, use with Kvantum.
## NVIDIA Specific
To force GBM as a backend, set the following environment variables:
- `env = GBM_BACKEND,nvidia-drm`
- `env = __GLX_VENDOR_LIBRARY_NAME,nvidia`
> See
> [Archwiki Wayland Page](https://wiki.archlinux.org/title/Wayland#Requirements)
> for more details on those variables.
- `env = LIBVA_DRIVER_NAME,nvidia` - Hardware acceleration on NVIDIA GPUs
> See
> [Archwiki Hardware Acceleration Page](https://wiki.archlinux.org/title/Hardware_video_acceleration)
> for details and necessary values before setting this variable.
- `__GL_GSYNC_ALLOWED` - Controls if G-Sync capable monitors should use Variable
Refresh Rate (VRR)
> See
> [Nvidia Documentation](https://download.nvidia.com/XFree86/Linux-32bit-ARM/375.26/README/openglenvvariables.html)
> for details.
- `__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.
## Theming Related Variables
- `GTK_THEME` - Set a GTK theme manually, for those who want to avoid appearance
tools such as lxappearance or nwg-look
- `XCURSOR_THEME` - Set your cursor theme. The theme needs to be installed and
readable by your user.
- `XCURSOR_SIZE` - Set cursor size. See [here](../../FAQ/) for why you might
want this variable set.