How to make a bindsym on sway only work if a window is xwayland

Communist@lemmy.ml to Linux@lemmy.ml – 33 points –

I'm trying to improve the clipboard sync situation, i've realized that if I can make it so that a bindsym only applies when an xwayland window is in focus, I can basically do

bindsym --release Control+c exec "xclip -o | wl-copy"

And it'll automatically sync the clipboard... however, I can't find a way to make the bindsym only run on xwayland windows, as, if this runs on a wayland window, it'll just overwrite the wayland clipboard with the last xwayland clipboard.

I've discovered you can match all xwayland windows with "swaymsg [shell='xwayland']" but I can't figure out how to make a bindsym only work if that is in focus

edit: I figured out the following:

bindsym --release Control+c exec swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | .shell' | grep -Eq 'xwayland' && xclip -o | wl-copy

^^ that SHOULD WORK in theory, but it doesn't, because xclip outputs what it remembers as soon as the command starts, and as a result, the string gets messed up... I cannot figure out for the life of me why running "xclip -o | wl-copy" fixes it but not that. please help.

bindsym --release Control+c exec swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | .shell' | grep -Eq 'xwayland' && [xclip -o | wl-copy]

^^does not fix it, unfortunately

here's an issue tracker: https://github.com/swaywm/sway/issues/7958

6

I'm just guessing, but you can try brackets around xclip -o | wl-copy in the long command.

HOLY SHIT IT WORKS

WHY DOES THAT WORK?

I googled what the brackets do but I still don't understand why that fixes it, but it does. Thank you so much. You cannot imagine how much annoyance this issue has caused me over the years.

edit: SCRATCH THAT

I've found a situation where xclip -o outputs the correct thing, but wl-paste is outputting something different and incorrect, even if I run my bindsym

xclip -o | wl-copy would fix this, if i ran it from alacritty, however, sway isn't doing it right.

Sigh.

1 more...

Not answering your question, but since i haven't noticed any clipboard issues on GNOME does Sway maybe have an option to fix the Wayland<->xwayland sync ?

Not an issue on KDE either. This smells strongly of an XY problem. Clipboard should be in sync.

It's specifically citrix workspace that has issues.

It's specifically citrix workspace that has issues.