hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.63k stars 827 forks source link

XWayland windows update only top left of window when monitor is scaled #6998

Closed different-name closed 1 month ago

different-name commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 672bf1f8670b200da57e2f6de4e9ed7efd8c98fc (). Date: 2024-07-21 Tag: , commits: 672bf1f8670b200da57e2f6de4e9ed7efd8c98fc flags: (if any) System Information: System name: Linux Node name: sodium Release: 6.9.8-zen1 Version: #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 GPU information: 05:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD104 [GeForce RTX 4070 Ti] [10de:2782] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 555.58.02 Tue Jun 25 01:39:15 UTC 2024 os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20240719.1d9c2c9" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/different/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/wbqwrp6gpf31acmdchik5lsj8zdw2z24-dbus-1.14.10/bin/dbus-update-activation-environment --systemd --all && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target $mod=SUPER source=/nix/store/5nqbr4x6yb7bmny12m1fda75brsh8naz-source/themes/mocha.conf source=/nix/store/mcjgrfgkrrxj9gaz8jb4nfw9711zqxjv-hyprland-red-accent.conf source=/nix/store/aan4vsxbqpg5y6l6nyqw91hk217sbnpq-hyprland-cursors.conf animations { animation=border, 1, 2, default animation=fade, 1, 4, default animation=windows, 1, 3, default, popin 80% animation=workspaces, 1, 2, default, slide enabled=true } debug { disable_logs=false } decoration { blur { brightness=1.000000 contrast=1.000000 enabled=true new_optimizations=on noise=0.010000 passes=4 popups=true popups_ignorealpha=0.200000 size=7 vibrancy=0.200000 vibrancy_darkness=0.500000 } col.shadow=rgba(00000055) dim_inactive=false drop_shadow=true rounding=5 shadow_ignore_window=true shadow_range=8 shadow_render_power=3 } dwindle { preserve_split=true pseudotile=true } general { col.active_border=rgb(ed507c) col.inactive_border=rgba(18192688) gaps_in=3 gaps_out=6 } gestures { workspace_swipe=true workspace_swipe_forever=true } input { touchpad { disable_while_typing=false natural_scroll=true scroll_factor=0.500000 } accel_profile=flat kb_layout=us } misc { disable_autoreload=true force_default_wallpaper=0 no_direct_scanout=false } plugin { hyprexpo { bg_col=rgb(000000) colimns=3 enable_gesture=true gap_size=4 gesture_distance=300 gesture_positive=false } } xwayland { force_zero_scaling=true } bind=$mod SHIFT, E, exec, pkill Hyprland bind=$mod, Q, killactive bind=$mod, F, fullscreen bind=$mod SHIFT, F, fakefullscreen bind=$mod, R, togglesplit, bind=$mod, G, togglefloating, bind=$mod, P, pseudo bind=$mod, T, pin bind=$mod ALT, ,resizeactive bind=CTRL ALT, DELETE, exec, hyprctl kill bind=$mod, Return, exec, kitty bind=$mod, L, exec, pgrep hyprlock || hyprlock bind=$mod, S, exec, rofi -show drun -show-icons bind=$mod, W, exec, brave bind=$mod, E, exec, thunar bind=$mod, left, movefocus, l bind=$mod, right, movefocus, r bind=$mod, up, movefocus, u bind=$mod, down, movefocus, d bind=, Print, exec, pgrep grimblast || grimblast --notify --freeze copy area bind=$mod SHIFT, S, exec, pgrep grimblast || grimblast --notify --freeze copy area bind=CTRL, Print, exec, pgrep grimblast || grimblast --notify --cursor copy output bind=$mod SHIFT CTRL, S, exec, pgrep grimblast || grimblast --notify --cursor copy output bind=$mod, bracketleft, workspace, m-1 bind=$mod, bracketright, workspace, m+1 bind=,mouse:275, workspace, m-1 bind=,mouse:276, workspace, m+1 bind=$mod SHIFT, bracketleft, focusmonitor, l bind=$mod SHIFT, bracketright, focusmonitor, r bind=$mod SHIFT ALT, bracketleft, movecurrentworkspacetomonitor, l bind=$mod SHIFT ALT, bracketright, movecurrentworkspacetomonitor, r bind=$mod, 1, workspace, 1 bind=$mod, 2, workspace, 2 bind=$mod, 3, workspace, 3 bind=$mod, 4, workspace, 4 bind=$mod, 5, workspace, 5 bind=$mod, 6, workspace, 6 bind=$mod, 7, workspace, 7 bind=$mod, 8, workspace, 8 bind=$mod, 9, workspace, 9 bind=$mod SHIFT, 1, movetoworkspace, 1 bind=$mod SHIFT, 2, movetoworkspace, 2 bind=$mod SHIFT, 3, movetoworkspace, 3 bind=$mod SHIFT, 4, movetoworkspace, 4 bind=$mod SHIFT, 5, movetoworkspace, 5 bind=$mod SHIFT, 6, movetoworkspace, 6 bind=$mod SHIFT, 7, movetoworkspace, 7 bind=$mod SHIFT, 8, movetoworkspace, 8 bind=$mod SHIFT, 9, movetoworkspace, 9 binde=$mod CTRL, up, resizeactive, 0 -20 binde=$mod CTRL, down, resizeactive, 0 20 binde=$mod CTRL, left, resizeactive, -20 0 binde=$mod CTRL, right, resizeactive, 20 0 bindl=, XF86AudioPlay, exec, playerctl play-pause bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindl=, XF86AudioMicMute, exec bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 6%+ bindle=, XF86AudioLowerVolume, exec, wpctl set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 6%- bindle=, XF86MonBrightnessUp, exec, brillo -q -u 300000 -A 5 bindle=, XF86MonBrightnessDown, exec, brillo -q -u 300000 -U 5 bindm=$mod, mouse:272, movewindow bindm=$mod, mouse:273, resizewindow bindm=$mod CTRL, mouse:272, resizewindow env=QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env=XCURSOR_SIZE,16 exec-once=nm-applet --indicator exec-once=waybar exec-once=dunst exec-once=goxlr-daemon exec-once=steam -silent layerrule=blur, ^(notifications)$ layerrule=ignorealpha 0.5, ^()$ layerrule=ignorealpha 0.2, ^(notifications)$ monitor=desc:BNQ BenQ EW3270U 5BL00174019, preferred, 0x0, 1.5 monitor=desc:Valve Corporation ANX7530 U 0x00000001, preferred, 0x0, 1, transform, 3 monitor=desc:Sharp Corporation 0x14D1, preferred, 0x0, 1.2 monitor=,preferred,auto,1 windowrulev2=float, class:(org.gnome.Calculator) windowrulev2=size 360 490, class:(org.gnome.Calculator) windowrulev2=float, title:(Picture-in-picture) windowrulev2=pin, title:(Picture-in-picture) windowrulev2=float, class:(xdg-desktop-portal-gtk) windowrulev2=float, class:(pavucontrol) windowrulev2=size 1000 750, class:(pavucontrol) windowrulev2=float, title:(File Operation Progress) windowrulev2=float, title:(MainPicker) Config File: /nix/store/5nqbr4x6yb7bmny12m1fda75brsh8naz-source/themes/mocha.conf: Read Succeeded $rosewater = rgb(f5e0dc) $rosewaterAlpha = f5e0dc $flamingo = rgb(f2cdcd) $flamingoAlpha = f2cdcd $pink = rgb(f5c2e7) $pinkAlpha = f5c2e7 $mauve = rgb(cba6f7) $mauveAlpha = cba6f7 $red = rgb(f38ba8) $redAlpha = f38ba8 $maroon = rgb(eba0ac) $maroonAlpha = eba0ac $peach = rgb(fab387) $peachAlpha = fab387 $yellow = rgb(f9e2af) $yellowAlpha = f9e2af $green = rgb(a6e3a1) $greenAlpha = a6e3a1 $teal = rgb(94e2d5) $tealAlpha = 94e2d5 $sky = rgb(89dceb) $skyAlpha = 89dceb $sapphire = rgb(74c7ec) $sapphireAlpha = 74c7ec $blue = rgb(89b4fa) $blueAlpha = 89b4fa $lavender = rgb(b4befe) $lavenderAlpha = b4befe $text = rgb(cdd6f4) $textAlpha = cdd6f4 $subtext1 = rgb(bac2de) $subtext1Alpha = bac2de $subtext0 = rgb(a6adc8) $subtext0Alpha = a6adc8 $overlay2 = rgb(9399b2) $overlay2Alpha = 9399b2 $overlay1 = rgb(7f849c) $overlay1Alpha = 7f849c $overlay0 = rgb(6c7086) $overlay0Alpha = 6c7086 $surface2 = rgb(585b70) $surface2Alpha = 585b70 $surface1 = rgb(45475a) $surface1Alpha = 45475a $surface0 = rgb(313244) $surface0Alpha = 313244 $base = rgb(1e1e2e) $baseAlpha = 1e1e2e $mantle = rgb(181825) $mantleAlpha = 181825 $crust = rgb(11111b) $crustAlpha = 11111b Config File: /nix/store/mcjgrfgkrrxj9gaz8jb4nfw9711zqxjv-hyprland-red-accent.conf: Read Succeeded $accent=$red $accentAlpha=$redAlpha Config File: /nix/store/aan4vsxbqpg5y6l6nyqw91hk217sbnpq-hyprland-cursors.conf: Read Succeeded env = HYPRCURSOR_THEME,MyCursor env = HYPRCURSOR_SIZE,24 ======Config-End======== ```

Description

Regression: 5979ceb56b165ee35809a0eeda5f4be1aedbb7b6 is the first bad commit

Only the top left of XWayland windows will update when the display is scaled, the rest will only update occasionally, such as when refocused

Below is an example with steam on 1.5x monitor scaling

img

How to reproduce

  1. Use hyprland at 5979ceb56b165ee35809a0eeda5f4be1aedbb7b6 or later
  2. Apply monitor scaling (reproduced here with 1.5x)
  3. Open an XWayland app, and use it normally

Crash reports, logs, images, videos

No response

UjinT34 commented 1 month ago

Seems to be caused by xwayland:force_zero_scaling=true while monitor has some scaling

vaxerski commented 1 month ago

isnt that fixed

different-name commented 1 month ago

Yes, it looks like you fixed it 7 hours ago https://github.com/hyprwm/Hyprland/commit/077494ee85c8fa4c6ae74ad8d749feea826294d2