hyprwm / Hyprland

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

Issue: Broken Text in Shared Clipboard When Using FreeRDP on Wayland wind #6630

Closed Chirenovich closed 6 days ago

Chirenovich commented 6 days ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3 (props: bump version to 0.41.1). Date: Thu Jun 13 09:54:06 2024 Tag: v0.41.1, commits: 4818 flags: (if any) System Information: System name: Linux Node name: hiren Release: 6.9.5-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Sun, 16 Jun 2024 19:06:18 +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 cc) (prog-if 00 [VGA controller]) 12:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev cb) (prog-if 00 [VGA controller]) os-release: NAME="Garuda Linux" PRETTY_NAME="Garuda Linux" ID=garuda ID_LIKE=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://garudalinux.org/" DOCUMENTATION_URL="https://wiki.garudalinux.org/" SUPPORT_URL="https://forum.garudalinux.org/" BUG_REPORT_URL="https://gitlab.com/groups/garuda-linux/" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=garudalinux plugins: ======Config-Start====== Config File: /home/hiren/.config/hypr/hyprland.conf: Read Succeeded # _ _ _ _ # | | | |_ _ _ __ _ __| | __ _ _ __ __| | # | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` | # | _ | |_| | |_) | | | | (_| | | | | (_| | # |_| |_|\__, | .__/|_| |_|\__,_|_| |_|\__,_| # |___/|_| # # ----------------------------------------------------- # IMPORTANT: Don't overwrite ML4W configuration. # Create your own custom configuration variation instead. # https://gitlab.com/stephan-raabe/dotfiles#hyprland-configuration-variations # ----------------------------------------------------- # Monitor # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/monitor.conf # ----------------------------------------------------- # Autostart # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/autostart.conf # ----------------------------------------------------- # Cursor # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/cursor.conf # ----------------------------------------------------- # Environment # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/environment.conf # ----------------------------------------------------- # Keyboard # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/keyboard.conf # ----------------------------------------------------- # Load pywal color file # ----------------------------------------------------- source = ~/.cache/wal/colors-hyprland.conf # ----------------------------------------------------- # Load configuration files # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/window.conf source = ~/dotfiles/hypr/conf/decoration.conf source = ~/dotfiles/hypr/conf/layout.conf source = ~/dotfiles/hypr/conf/misc.conf source = ~/dotfiles/hypr/conf/keybinding.conf source = ~/dotfiles/hypr/conf/windowrule.conf # ----------------------------------------------------- # Animation # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/animation.conf # ----------------------------------------------------- # Custom # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/custom.conf # ----------------------------------------------------- # ML4W Configuration # ----------------------------------------------------- source = ~/dotfiles/hypr/conf/ml4w.conf # ----------------------------------------------------- # Environment for xdg-desktop-portal-hyprland # ----------------------------------------------------- exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP Config File: /home/hiren/dotfiles/hypr/conf/monitor.conf: Read Succeeded source = ~/dotfiles/hypr/conf/monitors/default.conf Config File: /home/hiren/dotfiles/hypr/conf/monitors/default.conf: Read Succeeded # ----------------------------------------------------- # Monitor Setup # name: "Default" # ----------------------------------------------------- monitor=,preferred,auto,1 Config File: /home/hiren/dotfiles/hypr/conf/autostart.conf: Read Succeeded # ----------------------------------------------------- # Autostart # ----------------------------------------------------- # Setup XDG for screen sharing exec-once = ~/dotfiles/hypr/scripts/xdg.sh # Start Polkit exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 # Load Dunst Notification Manager exec-once = dunst # Load GTK settings exec-once = ~/dotfiles/hypr/scripts/gtk.sh # Using hypridle to start hyprlock exec-once = hypridle # exec-once = swayidle -w timeout 600 'swaylock -f' timeout 660 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f' # Load cliphist history exec-once = wl-paste --watch cliphist store # Initialize Wallpaper Engine exec-once = ~/dotfiles/hypr/scripts/init-wallpaper-engine.sh # Autostart ML4W App exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh # Load configuration from ML4W Hyprland Settings App exec-once = ~/.config/ml4w-hyprland-settings/hyprctl.sh # Start ewww daemon exec-once = ~/dotfiles/hypr/scripts/eww.sh # Personal exec-once = discord exec-once = steam -silent exec-once = alarm-clock-applet -h # exec-once = vesktop --class=vesktop Config File: /home/hiren/dotfiles/hypr/conf/cursor.conf: Read Succeeded exec-once = hyprctl setcursor Simp1e-Gruvbox-Dark 24 Config File: /home/hiren/dotfiles/hypr/conf/environment.conf: Read Succeeded source = ~/dotfiles/hypr/conf/environments/default.conf Config File: /home/hiren/dotfiles/hypr/conf/environments/default.conf: Read Succeeded # ----------------------------------------------------- # Environment Variables # name: "Default" # ----------------------------------------------------- env = XCURSOR_SIZE,24 env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = QT_QPA_PLATFORM,wayland env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = MOZ_ENABLE_WAYLAND,1 env = GDK_SCALE,1 Config File: /home/hiren/dotfiles/hypr/conf/keyboard.conf: Read Succeeded # ----------------------------------------------------- # Keyboard Layout # https://wiki.hyprland.org/Configuring/Variables/#input # ----------------------------------------------------- input { kb_layout = us,es kb_variant = kb_model = kb_options = grp:caps_toggle # For United States # kb_layout = us # kb_variant = intl # kb_model = pc105 # kb_options = touchpad { natural_scroll = false } sensitivity = -0.7 # -1.0 - 1.0, 0 means no modification. # follow_mouse = 1 # mouse_refocus = false numlock_by_default = true } Config File: /home/hiren/.cache/wal/colors-hyprland.conf: Read Succeeded $background = rgb(050608) $foreground = rgb(b4b7b8) $color0 = rgb(050608) $color1 = rgb(3C4346) $color2 = rgb(4A5254) $color3 = rgb(5B605F) $color4 = rgb(575E60) $color5 = rgb(5B6465) $color6 = rgb(646C6D) $color7 = rgb(b4b7b8) $color8 = rgb(7d8080) $color9 = rgb(3C4346) $color10 = rgb(4A5254) $color11 = rgb(5B605F) $color12 = rgb(575E60) $color13 = rgb(5B6465) $color14 = rgb(646C6D) $color15 = rgb(b4b7b8) Config File: /home/hiren/dotfiles/hypr/conf/window.conf: Read Succeeded source = ~/dotfiles/hypr/conf/windows/default.conf Config File: /home/hiren/dotfiles/hypr/conf/windows/default.conf: Read Succeeded # ----------------------------------------------------- # General window layout and colors # name: "Default" # ----------------------------------------------------- general { gaps_in = 10 gaps_out = 14 border_size = 3 col.active_border = $color11 col.inactive_border = rgba(ffffffff) layout = dwindle } Config File: /home/hiren/dotfiles/hypr/conf/decoration.conf: Read Succeeded source = ~/dotfiles/hypr/conf/decorations/default.conf Config File: /home/hiren/dotfiles/hypr/conf/decorations/default.conf: Read Succeeded # ----------------------------------------------------- # General window decoration # name: "Default" # ----------------------------------------------------- decoration { rounding = 10 blur { enabled = true size = 6 passes = 2 new_optimizations = on ignore_opacity = true xray = true # blurls = waybar } active_opacity = 1.0 inactive_opacity = 0.8 fullscreen_opacity = 1.0 drop_shadow = true shadow_range = 30 shadow_render_power = 3 col.shadow = 0x66000000 } Config File: /home/hiren/dotfiles/hypr/conf/layout.conf: Read Succeeded # ----------------------------------------------------- # Layouts # ----------------------------------------------------- dwindle { pseudotile = true preserve_split = true } master { new_is_master = true } gestures { workspace_swipe = false } Config File: /home/hiren/dotfiles/hypr/conf/misc.conf: Read Succeeded # ----------------------------------------------------- # Misc settings # ----------------------------------------------------- misc { disable_hyprland_logo = true disable_splash_rendering = true } Config File: /home/hiren/dotfiles/hypr/conf/keybinding.conf: Read Succeeded source = ~/dotfiles/hypr/conf/keybindings/main.conf Config File: /home/hiren/dotfiles/hypr/conf/keybindings/main.conf: Read Succeeded # ----------------------------------------------------- # Key bindings # name: "Default" # ----------------------------------------------------- # SUPER KEY $mainMod = SUPER # Applications bind = $mainMod, RETURN, exec, ~/dotfiles/.settings/terminal.sh # bind = $mainMod, B, exec, ~/dotfiles/.settings/browser.sh bind = $mainMod, w, exec, brave # Windows bind = $mainMod, Q, killactive bind = $mainMod, F, fullscreen bind = $mainMod, E, exec, krusader bind = $mainMod, T, togglefloating bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh bind = $mainMod, J, togglesplit bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bind = $mainMod SHIFT, right, resizeactive, 100 0 bind = $mainMod SHIFT, left, resizeactive, -100 0 bind = $mainMod SHIFT, up, resizeactive, 0 -100 bind = $mainMod SHIFT, down, resizeactive, 0 100 # Actions bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh bind = $mainMod CTRL, Q, exec, wlogout bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select bind = $mainMod, space, exec, rofi -show drun bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh bind = $mainMod, 22, exec, ~/dotfiles/scripts/cliphist.sh bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh bind = $mainMod CTRL, S, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/start-settings.sh # 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 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 # bind = $mainMod, mouse_down, workspace, e+1 # bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod CTRL, down, workspace, empty # Fn keys bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioPause, exec, playerctl pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle bind = , XF86Calculator, exec, qalculate-gtk bind = , XF86Lock, exec, swaylock bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/settings/settings.sh # # Passthrough SUPER KEY to Virtual Machine # bind = $mainMod, P, submap, passthru # submap = passthru # bind = SUPER, Escape, submap, reset # submap = reset # env env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORMTHEME,qt5ct env = XDG_CURRENT_DESKTOP,Hyprland Config File: /home/hiren/dotfiles/hypr/conf/windowrule.conf: Read Succeeded source = ~/dotfiles/hypr/conf/windowrules/main.conf Config File: /home/hiren/dotfiles/hypr/conf/windowrules/main.conf: Read Succeeded # ----------------------------------------------------- # Window rules # ----------------------------------------------------- windowrule = tile,^(Microsoft-edge)$ windowrule = tile,^(Brave-browser)$ windowrule = tile,^(Chromium)$ windowrule = float,^(pavucontrol)$ windowrule = float,^(blueman-manager)$ windowrule = float,^(nm-connection-editor)$ # Personal windowrule = workspace 2, discord # windowrulev2=move 0 0,title:^(flameshot) # windowrulev2=nofullscreenrequest,title:^(flameshot) # windowrulev2 = stayfocused,class:(steam),title:(^$) windowrulev2 = stayfocused,class:(Rofi) # windowrulev2 = workspace 3 silent, class:^(vesktop)$, title:^(vesktop)$ Config File: /home/hiren/dotfiles/hypr/conf/animation.conf: Read Succeeded source = ~/dotfiles/hypr/conf/animations/default.conf Config File: /home/hiren/dotfiles/hypr/conf/animations/default.conf: Read Succeeded # ----------------------------------------------------- # Animations # name "Default" # ----------------------------------------------------- animations { enabled = true bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } Config File: /home/hiren/dotfiles/hypr/conf/custom.conf: Read Succeeded # Add your additional Hyprland configurations here # # This is an additional key binding # bind = $mainMod CTRL, up, workspace, empty # # Example for xwayland # xwayland { # force_zero_scaling = true # } # qt5ct environment variable # env = QT_QPA_PLATFORMTHEME,qt5ct Config File: /home/hiren/dotfiles/hypr/conf/ml4w.conf: Read Succeeded # ----------------------------------------------------- # ML4W configurations # ----------------------------------------------------- windowrulev2 = float,class:(com.ml4w.welcome) windowrulev2 = size 700 600,class:(com.ml4w.welcome) windowrulev2 = center,class:(com.ml4w.welcome) windowrulev2 = float,class:(ml4w-welcome.py) windowrulev2 = size 400 500,class:(ml4w-welcome.py) windowrulev2 = center,class:(ml4w-welcome.py) windowrulev2 = float,class:(com.ml4w.dotfilessettings) windowrulev2 = size 700 600,class:(com.ml4w.dotfilessettings) windowrulev2 = move 10% 20%,class:(com.ml4w.dotfilessettings) windowrulev2 = float,class:(ml4w-dotfiles-settings.py) windowrulev2 = size 400 500,class:(ml4w-dotfiles-settings.py) windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py) windowrulev2 = float,class:(com.ml4w.hyprlandsettings) windowrulev2 = size 700 600,class:(com.ml4w.hyprlandsettings) windowrulev2 = center,class:(com.ml4w.hyprlandsettings) windowrulev2 = float,class:(ml4w-hyprland-settings.py) windowrulev2 = size 700 600,class:(ml4w-hyprland-settings.py) windowrulev2 = center,class:(ml4w-hyprland-settings.py) windowrulev2 = float,class:(dotfiles-floating) windowrulev2 = size 1000 800,class:(dotfiles-floating) windowrulev2 = center,class:(dotfiles-floating) env = APPIMAGELAUNCHER_DISABLE,1 ======Config-End======== ```

Description

When using FreeRDP to connect to an X11 desktop environment and attempting to use the shared clipboard feature with the host in a Wayland window, the clipboard text appears broken or corrupted.

A workaround for this is pasting the text in a xwayland application (this will show the text correctly) and copying it again. A permanent solution is to downgrade hyprland to 0.40.0

How to reproduce

  1. xfreerdp3 /v:10.0.0.53 /u:user /p:password /dynamic-resolution
  2. Copy any text
  3. Past in a Wayland window

Crash reports, logs, images, videos

image image

https://github.com/hyprwm/Hyprland/assets/122819615/520ef7b2-6c2d-4969-a9ee-9a24bf380689

ikalco commented 6 days ago

sounds like #6603 wayland and xwayland clipboards aren't synced by Hyprland

vaxerski commented 6 days ago

update

the main clipboard is, this bug has been fixed in git.