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.5k stars 818 forks source link

Ultrawide Screen Scaling Issue #6872

Open YourSandwich opened 1 month ago

YourSandwich commented 1 month ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886 flags: (if any) System Information: System name: Linux Node name: BORKEN Release: 6.9.9-273-tkg-eevdf Version: #1 SMP PREEMPT_DYNAMIC TKG Thu, 11 Jul 2024 21:51:39 +0000 GPU information: 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller]) 18:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c1) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ======Config-Start====== Config File: /home/sandwich/.config/hypr/hyprland.conf: Read Succeeded # Include configuration files (Order is important!) source=~/.config/hypr/latte.conf source=~/.config/hypr/configs/env.conf source=~/.config/hypr/configs/variables.conf source=~/.config/hypr/configs/input.conf source=~/.config/hypr/configs/monitors.conf source=~/.config/hypr/configs/keybinds.conf source=~/.config/hypr/configs/autostart.conf source=~/.config/hypr/configs/window_rules.conf # General settings for layout, borders, and gaps general { gaps_in = 5 # Inner gaps between windows gaps_out = 15 # Outer gaps between windows and screen edge border_size = 2 # Border thickness around windows col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg # Color gradient for active borders col.inactive_border = rgba(595959aa) # Color for inactive borders layout = dwindle # Default window layout allow_tearing = true # Allow tearing } # Decoration settings for window rounding, blur, and shadows decoration { rounding = 10 # Corner rounding for windows blur { enabled = true # Enable window blur size = 3 # Blur size passes = 1 # Number of blur passes } drop_shadow = yes # Enable drop shadows shadow_range = 4 # Shadow range shadow_render_power = 3 # Shadow intensity col.shadow = rgba(1a1a1aee) # Shadow color } # Animation settings animations { enabled = yes # Enable animations # Define custom Bezier curve bezier = myBezier, 0.05, 0.9, 0.1, 1.05 # Animations for windows, borders, fading, and workspaces animation = windows, 1, 5, myBezier animation = windowsOut, 1, 5, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 5, default animation = workspaces, 1, 4, default } # Dwindle layout-specific settings dwindle { pseudotile = yes # Enable pseudotiling, bound to mainMod + P preserve_split = yes # Keep window splits as-is (recommended) } # Master layout-specific settings #master { # new_is_master = true # New windows become the master #} # Xwayland-specific settings xwayland { force_zero_scaling = true # Force zero scaling in Xwayland } # Miscellaneous settings for additional configurations misc { disable_hyprland_logo = true #vrr = 2 mouse_move_enables_dpms = true key_press_enables_dpms = true enable_swallow = true swallow_regex = ^(Alacritty|kitty|konsole)$ } Config File: /home/sandwich/.config/hypr/latte.conf: Read Succeeded $rosewater = rgb(dc8a78) $rosewaterAlpha = dc8a78 $flamingo = rgb(dd7878) $flamingoAlpha = dd7878 $pink = rgb(ea76cb) $pinkAlpha = ea76cb $mauve = rgb(8839ef) $mauveAlpha = 8839ef $red = rgb(d20f39) $redAlpha = d20f39 $maroon = rgb(e64553) $maroonAlpha = e64553 $peach = rgb(fe640b) $peachAlpha = fe640b $yellow = rgb(df8e1d) $yellowAlpha = df8e1d $green = rgb(40a02b) $greenAlpha = 40a02b $teal = rgb(179299) $tealAlpha = 179299 $sky = rgb(04a5e5) $skyAlpha = 04a5e5 $sapphire = rgb(209fb5) $sapphireAlpha = 209fb5 $blue = rgb(1e66f5) $blueAlpha = 1e66f5 $lavender = rgb(7287fd) $lavenderAlpha = 7287fd $text = rgb(4c4f69) $textAlpha = 4c4f69 $subtext1 = rgb(5c5f77) $subtext1Alpha = 5c5f77 $subtext0 = rgb(6c6f85) $subtext0Alpha = 6c6f85 $overlay2 = rgb(7c7f93) $overlay2Alpha = 7c7f93 $overlay1 = rgb(8c8fa1) $overlay1Alpha = 8c8fa1 $overlay0 = rgb(9ca0b0) $overlay0Alpha = 9ca0b0 $surface2 = rgb(acb0be) $surface2Alpha = acb0be $surface1 = rgb(bcc0cc) $surface1Alpha = bcc0cc $surface0 = rgb(ccd0da) $surface0Alpha = ccd0da $base = rgb(eff1f5) $baseAlpha = eff1f5 $mantle = rgb(e6e9ef) $mantleAlpha = e6e9ef $crust = rgb(dce0e8) $crustAlpha = dce0e8 Config File: /home/sandwich/.config/hypr/configs/env.conf: Read Succeeded ### Environment variables ### ## Wayland env = WLR_DRM_NO_ATOMIC,1 ## Theming # Qt env = XCURSOR_SIZE,32 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_QPA_PLATFORM,wayland;xc env = QT_QPA_PLATFORMTHEME,qt6ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION, # GDK env = GTK_THEME,Breeze-Dark env = GDK_BACKEND,wayland,x11,* env = HYPRCURSOR_THEME,ModestLight env = HYPRCURSOR_SIZE,32 ## Electron env = OZONE_PLATFORM,wayland ## XDG env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland Config File: /home/sandwich/.config/hypr/configs/variables.conf: Read Succeeded ## Variable Config ## $terminal = kitty $fileManager = dolphin $menu = pkill rofi || rofi -show drun -modi drun,filebrowser,run,window $locker = hyprlock Config File: /home/sandwich/.config/hypr/configs/input.conf: Read Succeeded ## Input Devices Configuration ## input { kb_layout = us kb_variant = altgr-intl kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { disable_while_typing=0 natural_scroll=1 clickfinger_behavior=1 middle_button_emulation=1 tap-to-click=1 drag_lock=0 } accel_profile=flat sensitivity = 0 # -1.0 to 1.0, 0 means no modification. } device { name = epic-mouse-v1 sensitivity = -0.5 } # Gesture settings for touchpad gestures gestures { workspace_swipe = off # Disable workspace swipe gestures } Config File: /home/sandwich/.config/hypr/configs/monitors.conf: Read Succeeded ### Display Configuration ## ## Monitors $mon1 = LG Electronics LG ULTRAGEAR 110NTGY03711 $mon2 = Samsung Electric Company C27FG70 HTHK400021 ## Output Configuration # monitor = , preferred, auto, 1, mirror, DP-1 monitor = , preferred, auto, auto monitor = desc:$mon1, 3440x1440@144, 0x0, 1.33 monitor = desc:$mon2, 1920x1080@144, -1920x0, 1 ## Workspaces workspace = 1, monitor:desc:$mon2 workspace = 2, monitor:desc:$mon2 workspace = 3, monitor:desc:$mon2, default:true workspace = 4, monitor:desc:$mon2 workspace = 5, monitor:desc:$mon2 workspace = 6, monitor:desc:$mon1, default:true workspace = 7, monitor:desc:$mon1 workspace = 8, monitor:desc:$mon1 workspace = 9, monitor:desc:$mon1 workspace = 10, monitor:desc:$mon1 Config File: /home/sandwich/.config/hypr/configs/keybinds.conf: Read Succeeded ### Keybind Configuration ### # Main modifier key $mainMod = SUPER # Scripts $scriptsDir = $HOME/.config/hypr/scripts ### Windows Management ## Application Launchers and System Commands bind = $mainMod, Q, exec, $terminal # Open terminal bind = , F12, exec, pypr toggle term # Dropdown terminal bind = $mainMod, E, exec, $fileManager # Open file manager bind = $mainMod, D, exec, $menu # Open menu bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # Emoji picker bind = $mainMod ALT, C, exec, $scriptsDir/RofiCalc.sh # RofiCalc bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # ArchWorks's search from Rofi bind = $mainMod, L, exec, $locker # Lock screen bind = $mainMod, C, killactive # Close active window bind = $mainMod SHIFT, B, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings bind = $mainMod, B, exec, killall -SIGUSR1 waybar # Toggle hide/show waybar bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh ## Move focus bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d ## Move and Resize Windows binde = $mainMod SHIFT, right, resizeactive, 50 0 binde = $mainMod SHIFT, left, resizeactive, -50 0 binde = $mainMod SHIFT, up, resizeactive, 0 -50 binde = $mainMod SHIFT, down, resizeactive, 0 50 bind = $mainMod ALT, right, movewindow, r bind = $mainMod ALT, left, movewindow, l bind = $mainMod ALT, up, movewindow, u bind = $mainMod ALT, down, movewindow, d # Move to prev/next Workspace bind = $mainMod CONTROL ALT, left, movetoworkspace, -1 bind = $mainMod CONTROL ALT, right, movetoworkspace, +1 bindm = $mainMod, mouse:272, movewindow # Move window with LMB bindm = $mainMod, mouse:273, resizewindow # Resize window with RMB ## Miscellaneous Windows bind = $mainMod SHIFT, F, fullscreen, 0 # Real fullscreen bind = $mainMod, F, fullscreen, 1 # Fake fullscreen bind = $mainMod, P, pin # Pin floating window bind = $mainMod, J, togglesplit # Toggle split mode bind = $mainMod, V, togglefloating # Toggle floating mode bind = $mainMod, W, exec, rofi -show window # Window switch script ### Workspace Management ## Switch Workspaces bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 bind = $mainMod CONTROL, left, workspace, -1 # Move to the previous workspace bind = $mainMod CONTROL, right, workspace, +1 # Move to the next workspace bind = $mainMod, mouse_down, workspace, e+1 # Scroll to the next workspace bind = $mainMod, mouse_up, workspace, e-1 # Scroll to the previous workspace ## Move Active Windows to Workspaces bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 ### Key pass # OBS bind = ALT, 1, pass ,^(com\.obsproject\.Studio)$ bind = ALT, 2, pass ,^(com\.obsproject\.Studio)$ bind = ALT, 3, pass ,^(com\.obsproject\.Studio)$ bind = CONTROL ALT, right, pass ,^(com\.obsproject\.Studio)$ bind = CONTROL ALT, left, pass ,^(com\.obsproject\.Studio)$ bind = CONTROL ALT, up, pass ,^(com\.obsproject\.Studio)$ bind = CONTROL ALT, down, pass ,^(com\.obsproject\.Studio)$ ### Modes # exit mode bind = SUPER, escape, exec, hyprctl dispatch submap logout; notify-send -a Hyprland -t 3500 $'\ne - exit\n\nr - reboot\n\ns - suspend\n\nS - poweroff\n\nl - lock' -i /usr/share/icons/breeze-dark/actions/32/system-suspend.svg submap = logout bindr = , E, exec, hyprctl dispatch exit bindr = , S, exec, hyprctl dispatch submap reset && systemctl suspend bindr = , R, exec, systemctl reboot bindr = SHIFT, S, exec, systemctl poweroff -i bindr = , L, exec,hyprctl dispatch submap reset && hyprlock bindr = , escape, submap, reset bind = , Return, submap, reset submap=reset ### Features # General bind = $mainMod, slash, exec, $scriptsDir/KeyHints.sh # Small help file bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC panel bind = CONTROL ALT SHIFT, V, exec, sleep 0.3 && wl-paste | xargs -I {} ydotool type -d 0 {} # Type paste bind = $mainMod, A, exec, $scriptsDir/ClipManager.sh # Clipboard manager bind = $mainMod, F1, exec, $scriptsDir/GameMode.sh bind = $mainMod, Z, exec, pypr zoom # Toggle Zoom # Screenshot bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy bind = $mainMod SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --area bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active ### Misc Binds ## Lid Switch Controls bindl = , switch:off:Lid Switch, exec, hyprctl dispatch dpms on eDP-1 # Lid open bindl = , switch:on:Lid Switch, exec, hyprctl dispatch dpms off eDP-1 && hyprlock # Lid closed bindl = , xf86Sleep, exec, systemctl suspend # Sleep button ## Fn Keys # Volume bindel = , XF86AudioRaiseVolume, exec, $scriptsDir/Volume.sh --inc bindel = , XF86AudioLowerVolume, exec, $scriptsDir/Volume.sh --dec bind = , XF86AudioMute, exec, $scriptsDir/Volume.sh --toggle bind = , XF86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # Media bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop bindel = , XF86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc bindel = , XF86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec Config File: /home/sandwich/.config/hypr/configs/autostart.conf: Read Succeeded ### Autostart Configuration ### ## Background exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = waybar & hyprpaper & pypr exec-once = swaync exec-once = wlsunset -T 5500 exec-once = sleep 10; nm-applet --indicator exec-once = blueman-apple exec-once = sleep 10; nextcloud --background exec-once = /bin/kdeconnectd ## Clipbord exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store ## Applications exec-once = [workspace 1 silent] sleep 10; keepassxc exec-once = [workspace 2 silent] sleep 10; thunderbird exec-once = [workspace 3 silent] sleep 10; element-desktop-nightly exec-once = [workspace 6 silent] kitty tmux new-session -s MAIN exec-once = [workspace 7 silent] firefox exec-once = [workspace 10 silent] kitty tmux new-session -s MUSIC 'ncmpcpp' Config File: /home/sandwich/.config/hypr/configs/window_rules.conf: Read Succeeded ## Window Rules Configuration ## # General Window Management Rules windowrulev2 = suppressevent maximize, class:.* # Suppress maximize events for all windows. # General Rules windowrule = float, title:^(Open)$ windowrule = float, title:^(Choose Files)$ windowrule = float, title:^(Save As)$ windowrule = float, title:^(Confirm to replace files)$ windowrule = float, title:^(File Operation Progress)$ windowrule = immediate,^(steam_app)(.*)$ # Floating Rules windowrulev2 = float, class:^(yad)$ windowrulev2 = float, class:^(nm-.*)$ windowrulev2 = float, class:^([Rr]ofi)$ windowrulev2 = float, class:^(blueman-manager)$ windowrulev2 = float, class:^(pavucontrol-qt)$ windowrulev2 = float, class:^(showmethekey-gtk)$ windowrulev2 = float, class:^(nwg-look|qt5ct|qt6ct|mpv)$ windowrulev2 = float, class:^([Ss]team)$,title:^((?![Ss]team).*|[Ss]team [Ss]ettings)$ # Tiling Rules windowrulev2 = tile, class:^(ffplay)$ # Firefox-specific rules windowrulev2 = float, class:^(firefox)$, title:^(Picture-in-Picture)$ # Float PiP windows. windowrulev2 = pin, class:^(firefox)$, title:^(Picture-in-Picture)$ # Pin PiP windows. windowrulev2 = fakefullscreen, class:^(firefox)$, title:^(Picture-in-Picture)$ # Fullscreen in PiP. windowrulev2 = fakefullscreen, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$ windowrulev2 = float, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$ # XwaylandVideoBridge windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$ windowrulev2 = noanim,class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ windowrulev2 = noblur,class:^(xwaylandvideobridge)$ # Force tearing rule # windowrulev2 = immediate, class:^(osu!)$ # Uncomment if needed to force tearing for osu! ## SwayNC Rules layerrule = blur, swaync-control-center layerrule = blur, swaync-notification-window layerrule = ignorezero, swaync-control-center layerrule = ignorezero, swaync-notification-window layerrule = ignorealpha 0.5, swaync-control-center layerrule = ignorealpha 0.5, swaync-notification-window ======Config-End======== ```

Description

When I scale my ultrawide screen to 1.33, it leaves a gap on the right edge of the screen. It looks like the desktop isn't fully extending to the edge.

How to reproduce

  1. Set the screen resolution to 3440x1440.
  2. Change the scaling to 1.33.
  3. Reboot or PowerOff/On the Monitor
  4. Observe the gap on the right edge of the screen.
  5. Change the scaling to below 1.33, for example, to 1.
  6. Change the scaling back to 1.33.
  7. Observe that the gap disappears until the monitor is turned off or the system is rebooted.

Crash reports, logs, images, videos

image

YourSandwich commented 1 month ago

hyprland.log

Fresh log with debugging enabled