README.md 1.89 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
waypipe
================================================================================

waypipe is a proxy for Wayland[0] clients. It forwards Wayland messages and
serializes changes to shared memory buffers over a single socket. This makes
application forwarding similar to `ssh -X` [1] feasible.

[0] [https://wayland.freedesktop.org/](https://wayland.freedesktop.org/)
[1] [https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely](https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely)

## Usage

The invocation is currently somewhat complicated. Install `waypipe` on both
systems. Use absolute paths for `waypipe` and `weston-terminal`, since PATH
may not be the same on the remote system.

    SRV=localhost

19
    /usr/bin/waypipe -s /tmp/socket-local client &
20
    ssh -R/tmp/socket-remote:/tmp/socket-local -t $SRV \
21
        /usr/bin/waypipe -s /tmp/socket-remote server -- /usr/bin/weston-terminal
22
23
24
    
    kill %1

25
26
27
28
`waypipe` also provides a more abbreviated syntax for the above:

    /usr/bin/waypipe ssh $SRV /usr/bin/weston-terminal

29
30
## Installing

31
32
33
34
35
Build with meson[0]. Requirements:

* wayland (>= 1.15, to support absolute paths in WAYLAND_DISPLAY)
* scdoc (to generate a man page)
* ssh (OpenSSH >= 6.7, for Unix domain socket forwarding)
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

[0] [https://mesonbuild.com/](https://mesonbuild.com/)
[1] [https://git.sr.ht/~sircmpwn/scdoc](https://git.sr.ht/~sircmpwn/scdoc)

## Status

This is just a prototype right now.[0] The source code, command-line interface,
project name, primary branch, and git history may yet change completely. 

Any of the following will crash waypipe:

* Different local/client and remote/server versions
* Applications using non-shm-based protocols like linux_dmabuf
* Differing byte orders 

[0] [https://mstoeckl.com/notes/gsoc/blog.html](https://mstoeckl.com/notes/gsoc/blog.html)