README.md 1.68 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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

    /usr/bin/waypipe client /tmp/socket-local &
    ssh -R/tmp/socket-remote:/tmp/socket-local -t $SRV \
        /usr/bin/waypipe server /tmp/socket-remote -- /usr/bin/weston-terminal
    
    kill %1

## Installing

Build with meson[0]. A recent version of wayland is required. Man pages are
generated with scdoc[1].

[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)