Skip to content

Instantly share code, notes, and snippets.

@pojntfx
Last active December 9, 2023 15:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pojntfx/a5a5e5cba210dc53a96af439f03d4c29 to your computer and use it in GitHub Desktop.
Save pojntfx/a5a5e5cba210dc53a96af439f03d4c29 to your computer and use it in GitHub Desktop.
Use Waypipe to forward a Wayland application running on a remote system over TCP to localhost
#!/bin/bash
# Without gender changer (server dials client on port 1337)
# On client
waypipe --socket /tmp/waypipe-remote.sock client
socat TCP-LISTEN:1337,reuseaddr,fork UNIX-CONNECT:/tmp/waypipe-remote.sock
# On server
socat UNIX-LISTEN:/tmp/waypipe-local.sock,reuseaddr,fork TCP:127.0.0.1:1337
waypipe --socket /tmp/waypipe-local.sock server -- gnome-clocks
# With gender changer (client dials server on port 1337)
# On client
socat tcp:127.0.0.1:1337,forever,interval=2,fork tcp:127.0.0.1:6000
waypipe --socket /tmp/waypipe-remote.sock client
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CONNECT:/tmp/waypipe-remote.sock
# On server
socat tcp-listen:6001,reuseaddr,fork tcp-listen:1337,reuseaddr
socat UNIX-LISTEN:/tmp/waypipe-local.sock,reuseaddr,fork TCP:127.0.0.1:6001
waypipe --socket /tmp/waypipe-local.sock server -- weston-terminal
# In a container with gender changer (client dials server on port 1337)
# On workstation
socat tcp:127.0.0.1:1337,forever,interval=2,fork tcp:127.0.0.1:6000
waypipe --socket /tmp/waypipe-remote.sock client
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CONNECT:/tmp/waypipe-remote.sock
# In container
hydrun -o fedora:39 -e '-p 1337:1337' -i bash
dnf install -y socat
socat tcp-listen:6001,reuseaddr,fork tcp-listen:1337,reuseaddr
socat UNIX-LISTEN:/tmp/waypipe-local.sock,reuseaddr,fork TCP:127.0.0.1:6001
dnf install -y weston
XDG_RUNTIME_DIR=/tmp ./waypipe.static --socket /tmp/waypipe-local.sock server -- weston-terminal
dnf install -y gnome-clocks
XDG_RUNTIME_DIR=/tmp GDK_BACKEND=wayland ./waypipe.static --socket /tmp/waypipe-local.sock server -- gnome-clocks
# Over the network with gender changer (client dials server on port 1337)
# On client
socat tcp:128.140.106.133:1337,forever,interval=2,fork tcp:127.0.0.1:6000
waypipe --socket /tmp/waypipe-remote.sock client
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CONNECT:/tmp/waypipe-remote.sock
# On server
socat tcp-listen:6001,reuseaddr,fork tcp-listen:1337,reuseaddr
socat UNIX-LISTEN:/tmp/waypipe-local.sock,reuseaddr,fork TCP:127.0.0.1:6001
XDG_RUNTIME_DIR=/tmp waypipe --socket /tmp/waypipe-local.sock server -- weston-terminal
XDG_RUNTIME_DIR=/tmp GDK_BACKEND=wayland waypipe --socket /tmp/waypipe-local.sock server -- flatpak run org.gnome.clocks
XDG_RUNTIME_DIR=/tmp QT_QPA_PLATFORM=wayland waypipe --socket /tmp/waypipe-local.sock server -- flatpak run org.kde.kclock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment