From 5497261f5e8edd8e675cb8f212d76fe43436b7a7 Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Mon, 29 Aug 2022 20:27:32 +0300 Subject: [PATCH] Configuring: add XWayland page --- pages/Configuring/XWayland.md | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 pages/Configuring/XWayland.md diff --git a/pages/Configuring/XWayland.md b/pages/Configuring/XWayland.md new file mode 100644 index 0000000..8dea3ae --- /dev/null +++ b/pages/Configuring/XWayland.md @@ -0,0 +1,42 @@ +XWayland is the bridging mechanism between legacy Xorg programs and Wayland +compositors. + +# HiDPI XWayland + +Currently, XWayland on HiDPI screens looks pixelated/blurry, due to Xorg's +inability to scale. +There are attempts to add a standard scaling mechanism, such as [MR 733](https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733). + +You can use this MR's wlroots implementation in Hyprland by making a few changes. +{{< hint >}} +The following instructions assume you know how to patch programs, either +manually or using your favourite package manager. + +See instructions for [manual patching](https://www.howtogeek.com/415442/how-to-apply-a-patch-to-a-file-and-create-patches-in-linux/) +and [Pacman patching](https://wiki.archlinux.org/title/Patching_packages). +{{< /hint >}} + +1. Have the latest `xwayland` package patched with at least +[the HiDPI patch](https://github.com/hyprwm/Hyprland/blob/main/nix/xwayland-hidpi.patch) +(based on the MR's implementation, but updated). + +2. Make sure you have the required Hyprland `wlroots`, patched with +[the HiDPI xwayland patch](https://gitlab.freedesktop.org/lilydjwg/wlroots/-/commit/6c5ffcd1fee9e44780a6a8792f74ecfbe24a1ca7) +and [this commit](https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/18595000f3a21502fd60bf213122859cc348f9af) +**reverted**. This is important, as not reverting it will make opening XWayland +programs crash Hyprland. + +3. Add this line to your configuration: + ```toml + exec-once=xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2 + ``` + and configure toolkits to scale using their specific mechanisms, such as + ```sh + export GDK_SCALE=2 + export XCURSOR_SIZE=32 + ``` + + {{< hint >}} + The GDK_SCALE variable won't conflict with wayland-native GTK programs. + {{< /hint >}} +