-
-
Notifications
You must be signed in to change notification settings - Fork 180
/
Copy pathxpra.1
1828 lines (1732 loc) · 72.9 KB
/
xpra.1
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.\" Man page for xpra
.\"
.\" Copyright (C) 2008-2009 Nathaniel Smith <[email protected]>
.\" Copyright (C) 2010-2017 Antoine Martin <[email protected]>
.\"
.\" You may distribute under the terms of the GNU General Public
.\" license, either version 2 or (at your option) any later version.
.\" See the file COPYING for details.
.\"
.TH XPRA 1
.SH NAME
xpra \- viewer for remote, persistent X applications
.\" --------------------------------------------------------------------
.SH SYNOPSIS
.PD 0
.HP \w'xpra\ 'u
\fBxpra\fP \fBstart\fP [CONNECTIONSTRING] |
\fBxpra\fP \fBstart-desktop\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBattach\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBshadow\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBproxy\fP [\fI:DISPLAY\fP]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBstop\fP | \fBxpra\fP \fBexit\fP | \fBxpra\fP \fBdetach\fP |
\fBxpra\fP \fBscreenshot\fP \fIfilename\fP | \fBxpra\fP \fBversion\fP |
\fBxpra\fP \fBinfo\fP [CONNECTIONSTRING] |
\fBxpra\fP \fBtop\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBcontrol\fP [CONNECTIONSTRING] \fIcommand\fP [\fIarguments..\fP]
[\fB\-\-ssh\fP=\fICMD\fP]
[\fB\-\-remote\-xpra\fP=\fICMD\fP]
[\fB\-\-socket\-dir\fP=\fIDIR\fP]
[\fB\-\-socket\-dirs\fP=\fIDIRS\fP]
.HP
\fBxpra\fP \fBdisplays\fP \fI[:DISPLAY]\fP
.HP
\fBxpra\fP \fBclean-displays\fP \fI[:DISPLAY]\fP
.HP
\fBxpra\fP \fBlist\fP [\fB\-\-socket\-dir\fP=\fIDIR\fP]
.HP
\fBxpra\fP \fBlist-sessions\fP [\fB\-\-socket\-dir\fP=\fIDIR\fP]
.HP
\fBxpra\fP \fBlist-windows\fP [\fB\-\-socket\-dir\fP=\fIDIR\fP]
.HP
\fBxpra\fP \fBshell\fP [CONNECTIONSTRING]
.HP
\fBxpra\fP \fBshowconfig\fP [\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBshowsetting\fP [\fBSETTING1..\fP]
.HP
\fBxpra\fP \fBlist-mdns\fP
.HP
\fBxpra\fP \fBdocs\fP
.HP
\fBxpra\fP \fBhtml5\fP
.HP
\fBxpra\fP \fBupgrade\fP \fI[:DISPLAY]\fP [...any options accepted by
\fBxpra start\fP...]
.HP
\fBxpra\fP \fBupgrade-desktop\fP \fI[:DISPLAY]\fP [...any options accepted by
\fBxpra start-desktop\fP...]
.HP
\fBxpra\fP \fBrecover\fP \fI[:DISPLAY]\fP [...any options accepted by
\fBxpra start\fP...]
.PD
.\" --------------------------------------------------------------------
.SH DESCRIPTION
Xpra is a tool which allows you to run X programs \(em usually on a
remote host \(em and then direct their display to your local machine,
disconnect from these programs, and reconnect from the same or another
machine, all without losing any state. It differs from standard X
forwarding in that it allows disconnection and reconnection without
disrupting the forwarded application; it differs from VNC and similar
remote display technologies in that xpra can run \fIrootless\fP: i.e.,
applications forwarded by xpra appear on your desktop as normal
windows managed by your window manager, rather than being all "trapped
in a box together". Xpra also uses a custom protocol that is
self-tuning and relatively latency-insensitive, and thus is usable
over network connections that are too slow or unreliable for standard
X forwarding.
Xpra can also be used to shadow an existing X11 display, or in
desktop mode where it behaves more like VNC.
.P
By default the Xpra server announces available sessions (username and display
number) via mDNS to the local network. Use \fBmdns=no\fP to disable it.
.\" --------------------------------------------------------------------
.SH CONNECTION STRINGS
Xpra supports many types of connection strings (some may require extra
packages to be installed):
.SS :DISPLAY[,OPTIONS]
Local displays: this is the simplest form and is only valid for the
current local displays of the current user.
.SS tcp://[[USERNAME][:PASSWORD]@]HOST:PORT[/DISPLAY][?OPTIONS]
TCP mode uses port numbers and not display numbers. If multiple displays
are available through a single TCP port (ie: using a proxy server),
then one can also specify the display number after the port number.
.SS ssl://[[USERNAME][:PASSWORD]@]HOST:PORT[/DISPLAY][?OPTIONS]
SSL adds a secure socket layer on top of the TCP mode.
.SS vsock://[[USERNAME][:PASSWORD]@]HOST:PORT[/?OPTIONS]
Almost identical to the TCP mode, but using AF_VSOCK for transport.
.SS ws://[[USERNAME][:PASSWORD]@]HOST:PORT/[DISPLAY][?OPTIONS]
Connect using websocket protocol.
.SS wss://[[USERNAME][:PASSWORD]@]HOST:PORT/[DISPLAY][?OPTIONS]
Connect using secure websocket protocol. (websocket with SSL)
.SS ssh://[[USERNAME][:PASSWORD]@]HOST[:SSH_PORT]/[DISPLAY][?OPTIONS]
Connect using secure shell. (SSH)
Further SSH options can be specified using the \fB\-\-ssh\fP command line option.
The \fBOPTIONS\fP can be used to specify an ssh proxy:
?proxy=ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]
xpra will then establish an SSH connection to the specified "proxy" host,
and from that host xpra will set up an SSH connection to the xpra server.
.P
For backwards compatibility, SSH mode also supports the syntax:
\fBssh:[USERNAME[:PASSWORD]@]HOST:DISPLAY\fP but this form does not
support specifying the SSH port number.
Older versions also used the form \fBprotocol:host:port\fP, but users
are encouraged to move to a more standard URI format using \fB://\fP as
separator.
.P
The password need only be specified when the server authentication module
requires it.
.P
.SS vnc://[[USERNAME][:PASSWORD]@]HOST[:VNC_PORT]/
Connect using the RFB protocol. (aka VNC)
This mode only works against VNC servers or an xpra server in desktop or
shadow mode.
.\" --------------------------------------------------------------------
.SH EXAMPLES
.TP \w'xpra\ 'u
\fBxpra start\fP \fI:7\fP
Start an xpra server using display number \fI:7\fP.
Note: using \fBDISPLAY=\fP\fI:7 xterm\fP to start applications against
a specific display is not recommended. Always prefer using xpra's
\fB\-\-start=\fP command line option instead.
See this next example:
.TP
\fBxpra start\fP \-\-start=firefox\fP
Start an xpra server, choosing a display automatically and start
firefox on that virtual display.
No window will appear until you attach with \fBxpra attach\fP.
The start child commands will inherit an environment tailored
for running under xpra.
.TP
\fBxpra start\fP \fIssh://bigbox/7 \-\-start=xterm\fP
Start an xpra server on \fIbigbox\fP with an xterm in it,
and connect to it.
.TP
\fBxpra start-desktop \-\-start=xfce4-session\fP
Start an xfce session in a nested X11 server on an automatically
assigned display number.
.TP
\fBxpra displays\fP
Lists all the displays currently running on the system.
This includes interactive desktop sessions as well as any
virtual display (xvfb) whether or not they are being used
by an xpra server.
The displays in \fIDEAD\fP state can be recovered using
\fIxpra recover\fP.
.TP
\fBxpra clean-displays\fP
Terminate any displays left in \fIDEAD\fP state.
.TP
\fBxpra clean-sockets\fP
Delete any server sockets belonging to dead servers.
.TP
\fBxpra list\fP
Show a list of xpra servers you have running on the current host.
This will also run \fIclean-sockets\fP.
.TP
\fBxpra list-sessions\fP
Show a list of xpra servers, with extra information about each
session if it can be collected.
.TP
\fBxpra list-windows\fP
Show a list of xpra servers you have running on the current host,
including the session name and a list of windows.
(only if the session can be queried using \fIxpra info\fP)
.TP
\fBxpra\fP \fBlist-mdns\fP
Show a list of xpra servers found via mDNS. (local network)
.TP
\fBxpra\fP \fBdocs\fP
Open the documentation in a web browser.
.TP
\fBxpra\fP \fBhtml5\fP
Open the html5 client in a web browser.
.TP
\fBxpra\fP \fBshell\fP
Start an interactive debug shell.
.TP
\fBxpra showconfig\fP
Shows the configuration that would be used with other sub-commands,
taking into account the command line arguments.
.TP
\fBxpra\fP \fBshowsetting\fP [\fBSETTING1..\fP]
Shows the value of a specific configuration setting and which
configuration directory set this value.
.TP
\fBxpra attach\fP \fI:7\fP
Attach to the xpra server that is using local display number \fI:7\fP.
Any apps running on that server will appear on your screen.
.TP
\fBxpra attach\fP \fIssh://foo@frodo/7\fP
Use ssh to attach to the xpra server that is running on machine
\fIfrodo\fP as user \fIfoo\fP and using display \fI:7\fP.
Any apps running on that server will appear on your local screen.
.TP
\fBxpra start :7 \-\-start=screen\fP
Start an xpra server and a \fBscreen\fP(1) session. If any of the
applications inside screen attempt to use X, they will be directed to
the xpra server.
.\" --------------------------------------------------------------------
.SH DISPLAYS
Understanding the basic idea of displays is critical to using xpra
successfully.
The idea comes from standard X. If you have multiple X servers
running on the same host, then there has to be some way to distinguish
them. X does this by assigning each server a small, unique integer
called (perhaps confusingly) its "display". In the common case of a
desktop machine that has only one X server running, that server uses
display ":0" (or sometimes you'll see ":0.0", which is effectively the
same). When an application starts under X, it needs to know how to
find the right X server to use; it does this by checking the
environment variable \fB$DISPLAY\fP.
Xpra faces a similar problem \(em there may be multiple xpra servers
running on the same host, as well as multiple X servers. It
solves this problem by re-using X's solution \(em each xpra server has
a display associated with it. This display functions as both an X
display (for when xpra is talking to X applications) and as an
identifier by which xpra clients (like \fBxpra attach\fP) can locate
the xpra server.
You may omit the display number when using \fBxpra start\fP:
a display will be chosen for you automatically.
The display number chosen will be shown in the log output, you should
also be able to see it with \fBxpra list\fP.
On Microsoft Windows and Mac OSX, the display number should be omitted.
Otherwise, when starting an xpra server, you may want to specify
the name of the display to use. To do this, simply pick any number
you like and stick a colon in front of it.
For instance :7, :12, and :3117 are all valid display names.
Just keep in mind that:
.IP \(bu
Every X or xpra server that is running on a single machine must use a
different display name. If you pick a number that is already in use
then xpra will not work.
.IP \(bu
The first few numbers (0, 1, 2) are commonly used by real X servers.
.IP \(bu
Everyone who connects to a given machine using \fBssh\fP(1) with X
forwarding enabled will also use a display number; ssh generally picks
numbers near ten (10, 11, 12, ...).
.PP
When specifying an xpra server to a client program like \fBxpra
attach\fP, \fBxpra detach\fP, \fBxpra stop\fP, \fBxpra exit\fP,
\fBxpra version\fP, \fBxpra info\fP, \fBxpra list\fP or \fBxpra screenshot\fP then you
can use a display of the form
\fB:\fP\fIDISPLAY\fP to refer to a server on the local host, or one of
the form \fBssh://\fP\fI[USER@]HOST\fP\fB/\fP\fIDISPLAY\fP to refer to a server
on a remote host; xpra will automatically connect to the remote host
using \fBssh\fP(1). Generally, if you have only one xpra session
running on a machine (which you can verify by running \fBxpra list\fP
on that machine), then you can omit the number entirely; \fBxpra
attach\fP alone will attach to the lone xpra server on the current
machine regardless of its number, \fBxpra attach ssh://frodo\fP will
similarly attach to the lone xpra session on a remote machine.
Connecting using the display number assumes that the client and server
use the same configuration for socket directories, or at least that
the client can find at least one of the directories used by
the unix domain sockets (see \fIbind\fP, \fIsocket-dir\fP and
\fIsocket-dirs\fP).
If the xpra server was given the \fB\-\-bind\-tcp\fP=\fI[HOST]:PORT\fP
(or \fB\-\-bind\-ssl\fP, \fB\-\-bind\-ws\fP, \fB\-\-bind\-wss\fP, \fB\-\-bind\-vsock\fP)
option when started then you can also connect to it using a display of
the form \fBtcp://HOST:PORT[/DISPLAY]\fP,
\fBssl://HOST:PORT[/DISPLAY]\fP, \fBws://HOST:PORT[/DISPLAY]\fP,
\fBwss://HOST:PORT[/DISPLAY]\fP or \fBvsock://HOST:PORT[/DISPLAY]\fP.
.\" --------------------------------------------------------------------
.SH SUBCOMMANDS
.SS xpra start
This command starts a new xpra server, including any necessary setup.
(When starting a remote server with the \fBssh://HOST/DISPLAY\fP syntax,
the new session will also be attached.)
.SS xpra start-desktop
Starts a nested X11 server, all child commands will be started in the
nested X11 server.
.SS xpra attach
This command attaches to a running xpra server, and forwards any
applications using that server to appear on your current screen.
.SS xpra detach
Detaches the given xpra display.
.SS xpra screenshot
Takes a screenshot and saves it to the filename specified.
Note: screenshots can only be taken when a client is attached.
.SS xpra version
Queries the server version and prints it out.
Note: older servers may not support this feature.
.SS xpra info
Queries the server for version, status and statistics.
.SS xpra top
Shows the server's key health attributes.
.SS xpra control
Modify the server at runtime by issuing commands.
The list of commands can be obtained by specifying "help" as command.
Some of those commands may support a "help" mode themselves.
.SS xpra initenv
This internal command creates the \fBrun-xpra\fP script used with ssh
connections.
.SS xpra stop
This command attaches to a running xpra server, and requests that it
terminates immediately. This generally causes any applications using
that server to terminate as well.
.SS xpra exit
This command attaches to a running xpra server, and requests that it
terminates immediately. Unlike \fBxpra stop\fP, the Xvfb process and
its X11 clients (if any) will be left running.
.SS xpra showconfig
This commands shows the configuration which would be used
given the arguments provided.
You can also specify as extra arguments the specific options that
should be displayed, or use the special value \fIall\fP to
display all the options including the ones which are normally not
displayed because they are not relevant on the given system.
.SS xpra list
This command finds all xpra servers that have been started by the
current user on the current machine, and lists them.
.SS xpra upgrade
This command starts a new xpra server, but instead of creating it from
scratch, it attaches to another existing server, tells it to exit, and
takes over managing the applications that it was managing before. As
the name suggests, the main use case is to replace a server running
against an older version of xpra with a newer version, without having
to restart your session. Any currently-running \fBxpra attach\fP
command will exit and need to be restarted.
.SS xpra upgrade-desktop
Same as \fIupgrade\fP but for servers started using \fIstart-desktop\fP.
It is possible to upgrade seamless server into a desktop server
and vice versa.
.SS xpra recover
Similar to \fIupgrade\fP and \fIupgrade-desktop\fP: but without needing
to specify if the server to recover is a seamless server or a desktop
server. Unlike the \fIupgrade\fP subcommands, \fIrecover\fP can also
detect which displays need recovering. That is, displays which were
previously used by an xpra server but this server has gone missing.
.SS xpra shadow
This command shadows an existing display and is supported on X11, MacOS
and MS Windows platforms. (this is not supported on Wayland yet)
If there is only one X11 display active and its number is below 10,
it can be auto-detected and the display may be omitted.
Note that this mode of operation uses screenscraping which is not very
efficient. Video encoders partially mitigate this drawback.
By default, shadow mode will expose all the monitors connected as
individual windows.
But it is also possible to only shadow a specific region or monitor,
or to group all monitors as a single window by specifying display
options.
Here are some examples:
.TP
To expose all monitors connected to display :1 as a single window,
use the \fBmulti-window\fP option:
.br
\fBxpra shadow :1,multi-window=no\fP
.TP
To shadow a specific output using its name (ie: \fBDP-1\fP):
.br
\fBxpra shadow :1,DP-1\fP
.br
or more explicitly:
.br
\fBxpra shadow :1,plug=DP-1\fP
.TP
To expose a rectangular area of size \fB1920x1080\fP as a single window, use:
.br
\fBxpra shadow :1,1920x1080\fP
.br
You may also want to specify the position of this rectangle (ie: \fB1280x0\fP):
.br
\fBxpra shadow :1,1920x1080@1280x0\fP
.br
or using the more explicit syntax:
.br
\fBxpra shadow :1,geometry=1920x1080@1280x0\fP
.br
Multiple areas can be specified using \fB/\fP as separator,
each one will be exposed as a separate window:
.br
\fBxpra shadow :1,1920x1080@1280x0/1280x600@0x400\fP
.SS xpra proxy
This command allows a single server to proxy connections for multiple
others, potentially serving as a load balancing or authentication
entry point for many sessions.
The proxy server will spawn a new process for each proxy connection,
this proxy process will create an unauthenticated new unix domain socket
which can be used with the subcommands \fBinfo\fP, \fBversion\fP and
\fBstop\fP.
.SS Important Note
Some platforms and package managers may choose to only build the client
and not the server. In this case, only the \fBattach\fP subcommand will
be available.
.\" --------------------------------------------------------------------
.SH OPTIONS
.SS General options
.TP
\fB\-\-version\fP
Displays xpra's version number.
.TP
\fB-h, \-\-help\fP
Displays a summary of command line usage.
.TP
\fB\-\-minimal\fP
Disables all non-essential features.
.TP
\fB-d\fP \fIFILTER1,FILTER2,...\fP, \fB\-\-debug\fP=\fIFILTER1,FILTER2,...\fP
Enable debug logging. The special value \fBall\fP enables all
debugging.
To get the full list of logging categories, run \fIxpra -d help\fP.
To target loggers that use more than one logging category (as some
categories can be quite broad), join them with a '\fB+\fP'.
For example, to enable logging for \fIserver\fP and \fIkeyboard\fP,
use \fI\-\-debug server+keyboard\fP.
You can also exclude a category with the '\fB-\fP' prefix.
For example, to enable \fIshadow\fP debugging but not \fIclipboard\fP,
use: \fI\-\-debug shadow,-clipboard\fP.
.TP
\fB\-\-commands\fP=\fIyes\fP|\fIno\fP
Enable or disable the ability to run commands on the server.
Generally, clients expect to be able to request new commands to be executed
by the server, but this can be turned off to securely lock down the server.
.TP
\fB\-\-shell\fP=\fIyes\fP|\fIno\fP
Enable or disable the ability to connect to an xpra socket with the \fBshell\fP
subcommand.
This is useful for debugging and is not enabled by default.
When disabled, it can still be enable on a per-socket basis using bind options.
.TP
\fB\-\-control\fP=\fIyes\fP|\fIno\fP
Enable or disable the control channel of xpra sockets.
This channel is accessed using the \fBcontrol\fP subcommand to interact with
an xpra process.
.TP
\fB\-\-mmap\fP=\fIyes\fP|\fIno\fP|\fIABSOLUTEFILENAME\fP|\fIDIRECTORY\fP
Enable or disable memory mapped pixel data transfer.
By default it is normally enabled automatically if the server and the
client reside on the same filesystem namespace.
This method of data transfer offers much lower overheads
and reduces both CPU consumption and local network traffic.
When attaching, you can also specify an absolute path where
the mmap file will be created. When used on the server,
one can specify the exact filename that the client will create,
or just the directory where the file will be created so that
multiple clients may connect and use mmap concurrently.
.TP
\fB\-\-mmap\-group\fP=\fIGROUP\fP
Sets the mmap file's gid to the group specified, and sets
the permissions to 660.
This is necessary to share the mmap file across user accounts.
You can also use the special \fIGROUP\fP values:
.RS
.IP \fBno\fP
Disable the functionality, the mmap file will use the default file
permissions and default group ownership.
.IP \fBSOCKET\fP
The group used will be the same one as found on the
unix domain socket file the client connects to.
Obviously, this can only work when connecting to unix domain
sockets.
.IP \fBauto\fP
Will use the 'xpra' group if the user is a member,
otherwise it will fallback to the same behaviour as \fISOCKET\fP.
.RE
.TP
\fB\-\-windows\fP=\fIyes\fP|\fIno\fP
Enable or disable the forwarding of windows. This is usually
the primary use for xpra and should be enabled.
.TP
\fB\-\-min\-size\fP=\fIWIDTH\fPx\fIHEIGHT\fP
Sets the minimum size for all decorated windows.
.TP
\fB\-\-max\-size\fP=\fIWIDTH\fPx\fIHEIGHT\fP
Sets the maximum size for all windows.
.TP
\fB\-\-readonly\fP=\fIyes\fP|\fIno\fP
Read only mode ignores all keyboard and mouse activity.
.TP
\fB\-\-clipboard\fP=\fIyes\fP|\fIno|clipboard-type\fP
Enable or disable clipboard synchronization.
If disabled on the server, no clients will be able to use clipboard
synchronization at all. If turned off on the client, only this
particular connection will ignore clipboard data from the server.
This can also be used to specify a different clipboard implementation.
The clipboard types available will vary from platform to platform and
also depend on build time environment and options
so this is best left on \fBauto\fP.
Other clipboard types available may include:
.RS
.IP \fBtranslated\fP
Clipboard which can translate from one type of selection to another
.IP \fBGDK\fP
The most complete clipboard implementation, includes full X11 support
.IP \fBdefault\fP
Fallback clipboard, with limited X11 support
.IP \fBOSX\fP
OSX specific clipboard
.RE
.TP
\fB\-\-clipboard\-direction\fP=\fIto-server\fP|\fIto-client\fP|\fIboth\fP|\fIdisabled\fP
Choose the direction of the clipboard synchronization.
.TP
\fB\-\-pulseaudio\fP=\fIyes\fP|\fIno\fP
Enable or disable the starting of a pulseaudio server with the session.
.TP
\fB\-\-pulseaudio\-command\fP=\fISERVER-START-COMMAND\fP
Specifies the pulseaudio command to use to start the pulseaudio
server, unless disabled with \fBpulseaudio=no\fP.
.TP
\fB\-\-session\-name\fP=\fIVALUE\fP
Sets the name of this session. This value may be used in
notifications, utilities, tray menu, etc.
Setting this value on the server provides a default value which
may be overridden on the client.
.TP
\fB\-\-encoding\fP=\fIENCODING\fP
Sets the preferred encoding to use.
To see the list of encodings available, use \fI\-\-encoding=help\fP.
This can be used to select \fBgrayscale\fP or 8-bit modes like
\fBpng/P\fP. On local connections or with extremelly fast network links,
plain \fBrgb\fP is also a viable option.
For everything else, the default value \fBauto\fP will select
the best encoding automatically and you should use the
\fBmin-speed\fP and \fBmin-quality\fP options instead for tuning.
.TP
\fB\-\-encodings\fP=\fIENCODING\fP
This specifies the image encodings enabled.
This is the most misused command line option and should be left alone.
The server engine needs to have multiple encodings available to
work effectively.
.TP
\fB\-\-video\-scaling\fP=\fIon\fP|\fIoff\fP|\fISCALING\fP
How much automatic video downscaling should be used,
from 1 (rarely) to 100 (aggressively), 0 to disable.
Video scaling is normally used with video regions or very large windows
(especially full screen windows) to try to maintain a decent framerate.
Video downscaling negatively affects visual quality
and will cause automatic refreshes (if enabled), it is most
useful on video content where it saves a considerable amount of bandwidth.
.TP
\fB\-\-socket\-dir\fP=\fIDIR\fP
Location where to write and look for the Xpra socket files.
The default location varies from platform to platform
("\fI~/.xpra\fP" and "\fI$XDG_RUNTIME_DIR/xpra\fP" on most Posix systems).
If unspecified, the first value from \fBsocket-dirs\fP will be used.
It may also be specified using the XPRA_SOCKET_DIR environment variable.
When using the socket-dir option, it is generally necessary to specify
\fBsocket-dir\fP or \fBsocket-dirs\fP on all following commands,
for xpra to work with the open sessions.
By specifying a shared directory this can be coupled with the
\fImmap-group\fP and \fIsocket-permissions\fP option to connect
Xpra sessions across user accounts with shared memory acceleration.
.TP
\fB\-\-socket\-dirs\fP=\fIDIR\fP
Specifies the directories where to look for existing sockets if
a specific one was not set using \fBsocket-dir\fP.
You may specify each directory using a new \fB\-\-socket\-dirs\fP
command line argument, or joined together by the path separator (\fB:\fP on Posix).
The paths will be expanded.
(ie: \fI\-\-socket\-dirs=~/.xpra:/tmp\fP)
.TP
\fB\-\-file\-transfer\fP=\fIon\fP|\fIoff\fP
Enable file transfers.
.TP
\fB\-\-open\-files\fP=\fIon\fP|\fIoff\fP
This option may be used to allow the remote end to automatically
open files after they have been uploaded.
This may be a security risk if you are using xpra to constrain
what the clients can execute on the server.
.TP
\fB\-\-forward\-xdg\-open\fP=\fIon\fP|\fIoff\fP|\fIauto\fP
Intercept execution of \fIxdg-open\fP and forward the request to the client.
.TP
\fB\-\-open\-command\fP=\fICOMMAND\fP
The command to use for opening files and URLs.
.TP
\fB\-\-bandwidth\-limit\fP=\fIBITSPERSECOND\fP
Restrict bandwidth usage to below the limit given.
The client's value cannot raise the limit of the server.
The value may be specified using standard units, ie:
\fI1Mbps\fP or \fI500K\fP.
In \fIauto\fP mode, the client will set the bandwidth limit
value to 80% of the maximum speed of the network interface
it is using to connect to the server.
\fB\-\-splash\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Show a splash screen during client or server startup.
With the default value of \fIauto\fP, the splash screen is only
shown if there is a GUI available - ie: no attempt will be made
to show the splash screen when xpra is launched from an SSH session.
.SS Options for start, start-desktop, upgrade, proxy and shadow
.TP
\fB\-\-daemon\fP=\fIyes\fP|\fIno\fP
By default, the xpra server puts itself into the background,
i.e. 'daemonizes', and redirects its output to a log file.
This can be used to prevent that behavior (useful mostly for debugging).
.TP
\fB\-\-resize\-display\fP=\fIyes\fP|\fIno|WIDTHxHEIGHT\fP
Resize the virtual display to match the resolution of
the client currently connected.
This only applies to the \fIstart\fP and \fIstart-desktop\fP
subcommands.
If a resolution is given, this will be the initial resolution
of the display and the display will be resizable.
A small set of pre-defined aliases can also be used:
\fIQVGA\fP, \fIVGA\fP, \fISVGA\fP, \fIXGA\fP, \fI1080p\fP,
\fIFHD\fP, \fI4K\fP.
.TP
\fB\-\-chdir\fP=\fIDIR\fP
Change to this directory after daemonizing.
.TP
\fB\-\-uid\fP=\fIUID\fP and \fB\-\-gid\fP=\fIGID\fP
When launching the server as root, these options can be used
to drop privileges to the given UID / GID.
.TP
\fB\-\-pidfile\fP=\fIFILENAME\fP
Writes the server process ID to this file on startup.
If the file has not been replaced,
it will be deleted when the server exits.
.TP
\fB\-\-challenge\-handlers\fP=\fIMODULE:options\fP
Configures which challenge handlers are used by the client and in
which order. This option may be repeated to specify multiple handlers,
which can be useful if the server sends more than one authentication
challenge.
The default value is: \fIall\fP which corresponds to:
\fIuri,file,env,kerberos,gss,u2f,prompt\fP.
.RS
.IP \fBuri\fP
Use the password specified on the connection string, if any.
.IP \fBfile\fP
The filename used to store the password can be specified using the
\fIfilename\fP option.
If this option is not specified, it will fallback to using the
password filename specified with the \fIpassword-file\fP switch.
.IP \fBenv\fP
Use the password specified using the environment variable
specified using the \fIname\fP option, which defaults to
\fIXPRA_PASSWORD\fP if unspecified.
.IP \fBkerberos\fP
Requests a kerberos token for the service specified.
.IP \fBgss\fP
Requests a gss token for the service specified.
.IP \fBu2f\fP
Requests a token from a U2F device.
.IP \fBprompt\fP
Prompt the user for the value.
Terminal clients prompt using text input, GUI clients
use a dialog.
.RE
.PP
.TP
\fB\-\-min\-port\fP=\fIPORT\fP
The minimum port number allowed when creating TCP sockets.
You can use a lower value to allow unprivileged users to bind to
privileged ports when starting sessions via the system wide proxy server.
The default value is 1024 which is the standard value for privileged ports.
.TP
\fB\-\-mdns\fP=\fIyes\fP|\fIno\fP
Enable or disable the publication of new sessions via mDNS.
.TP
\fB\-\-dbus\-launch\fP=\fICOMMAND\fP|\fIno\fP
Start the session within a dbus-launch context, you can specify
the dbus launch command to use, or turn it off completely.
Some features may not be available without a dbus context.
.TP
\fB\-\-dbus\-control\fP=\fIyes\fP|\fIno\fP
Start a dbus server which can be used to interact with the server
process.
.SS Options for start, start-desktop, upgrade and listen:
In previous versions, the authentication for each connection type
was configured using a separate command line option which would
apply to all connections of the same type. ie: \fItcp-auth\fP for
\fIbind-tcp\fP.
Although this is still supported as a fallback, the recommended
way is to specify authentication options using bind properties.
ie: \fIbind-tcp=0.0.0.0:14500,auth=file:filename=password.txt\fP.
The properties can also define extra socket configuration options.
\fB\-\-bind\fP=\fIBIND_LOCATION[,PROPERTIES]\fP
Create a local Unix domain socket (on Unix)
or named-pipe (on MS Windows) for each \fBbind\fP option specified.
This option can be specified multiple times to specify multiple
socket locations.
These sockets support local connections with the \fB:7\fP-style display
address, and remote connections with the \fBssh://frodo/7\fP-style
display address.
Local sockets may also process HTTP / Websocket connections
if the \fBhtml\fP switch is enabled.
The location can take the form:
.RS
.IP \fBnone\fP
do not create a socket
.IP \fBauto\fP
backwards compatible default which uses the current \fIsocket-dir\fP
.IP \fBDIRECTORY/\fP
create a socket in the directory specified, if the directory does
not exist then it will be created - you should include the trailing
slash to prevent the confusion with the \fIPATH\fP form:
.IP \fBPATH\fP
create the socket using the path specified
.RE
.PP
.TP
\fB\-\-bind\-tcp\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Create a TCP socket for each \fB\-\-bind\-tcp\fP option specified.
If the host portion is omitted, then 127.0.0.1 (localhost) will be
used. If you wish to accept connections on all interfaces, pass
0.0.0.0 for the host portion.
Using this switch without setting the \fIauth\fP option is not recommended,
and is a major security risk (especially when passing 0.0.0.0)!
Anyone at all may connect to this port and access your session.
TCP sockets may also process HTTP / Websocket connections
if the \fBhtml\fP switch is enabled.
TCP sockets may also be upgraded to SSL sockets if the
\fBssl\fP switch is enabled.
.TP
\fB\-\-bind\-ws\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Create an HTTP / Websocket listener.
See \fBbind-tcp\fP for host restrictions,
you should use the \fBauth-ws\fP to secure access.
.TP
\fB\-\-bind\-wss\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Create an HTTPS / Secure Websocket listener.
See \fBbind-tcp\fP for host restrictions,
you should use the \fBauth-wss\fP to secure access.
.TP
\fB\-\-bind\-ssl\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Just like \-\-bind\-tcp\fP but for SSL sockets.
See \fIssl-auth\fP and the other SSL options.
.TP
\fB\-\-bind\-rfb\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Listens for RFB connections on the given port.
These sockets are only supported with the \fBstart-desktop\fP and
\fBshadow\fP modes.
.TP
\fB\-\-bind\-vsock\fP=\fICID:PORT[,PROPERTIES]\fP
Create a VSOCK socket for each \fB\-\-bind\-vsock\fP option specified.
.TP
\fB\-\-auth\fP=\fIMODULE[:OPTION=VALUE]\fP
Specifies the authentication module to use for all unix domain sockets
created using the \fBbind\fP switch. Authentication modules can
validate a username and password against a variety of backend modules:
.RS
.IP \fBallow\fP
always allows authentication - this is dangerous
and should only be used for testing
.IP \fBfail\fP
always fails authentication, useful for testing
.IP \fBenv\fP
matches against the environment variable specified by the \fIname\fP option
(which defaults to \fBXPRA_PASSWORD\fP).
ie: \fB\-\-auth=env:name=SOME_OTHER_ENV_VAR_NAME\fP.
.IP \fBpassword\fP
matches against the password specified using the \fIvalue\fP option.
ie: \fB\-\-auth=password:value=YOURPASSWORD\fP.
Note: this command line option may be exposed to other processes
on the same system.
.IP \fBfile\fP
checks the password against the password data found in the file
specified using the \fBfilename\fP option.
ie: \fB\-\-auth=file:filename=./password.txt\fP.
The contents of this file will be treated as binary data,
there are no restrictions on character encodings or file size.
Beware of trailing newline characters which will be included in the
password data.
.IP \fBmultifile\fP
checks the username and password against the file specified using
the filename option.
The file must contain each user credentials on one line of the form:
\fIusername|password|uid|gid|displays|env_opts|session_opts\fP
It is not possible to have usernames or password that contain
the pipe character \fI|\fP which is used as delimiter, or newlines
and carriage returns.
This module is deprecated, \fIsqlite\fP should be used instead.
.IP \fBsqlite\fP
.IP \fBmysql\fP
.IP \fBsql\fP
checks the username and password against the sqlite database file
specified using the \fIfilename\fP option (for the \fIsqlite\fP backend),
or the database specified using the \fIuri\fP option
(\fImysql\fP and \fIsql\fP backends).
The authentication will be processed using the following query
(which is configurable using the \fIpassword_query\fP option):
\fISELECT password FROM users WHERE username=(?)\fP
The sessions available for each user will be queried using:
(this is configurable using the \fIsessions_query\fP option):
\fISELECT uid, gid, displays, env_options, session_options
FROM users WHERE username=(?)\fP
Multiple displays may be specified as a comma separated list.
.IP \fBhosts\fP
checks the host using the system's \fItcp-wrappers\fP library.
(Posix only, and not available on Mac OS)
See \fIhosts.allow\fP and \fIhosts.deny\fP for details.
.IP \fBexec\fP
Executes the command specified using the \fIcommand\fP attribute,
the arguments to this command are: a description of the access
request and the \fItimeout\fP value. (also configurable)
If the command is not specified, the system will try to locate
and use the \fIauth_dialog\fP utility which is shipped with xpra.
The command should return 0 to allow access, any other value will
deny access.
.IP \fBpeercred\fP
checks the unix domain socket peer credentials using \fISO_PEERCRED\fP.
This authentication module is only available on some Posix compliant
operating systems. This module will verify that the operating system
provides the uid and gid of the process that initiated the connection.
Access can be restricted by supplying a colon separated list of valid
\fIuid\fPs and \fIgid\fPs that are allowed to connect.
Those id values may be specified using numerical values or using
the usernames / group names.
This module is different from the others in that it will not require
the client to supply a username or password, as those are ignored.
Environment variables and pseudo-environment variables may also be used
as values, eg: \fB\-\-auth=peercred:uid=\\$UID:fred,gid=xpra\fP.
.IP \fBpam\fP
validates the username and password using the PAM system
.IP \fBwin32\fP
validates the username and password using Microsoft Windows
authentication (only available on this platform)
.IP \fBsys\fP
chooses the appropriate system authentication module
automatically (either \fBpam\fP or \fBwin32\fP)
.IP \fBkerberos-password\fP
validates the username and password using kerberos authentication.
Warning: this module does not use kerberos tickets and the password
will be sent in plain text to the server. This should only be used
for testing.
.IP \fBkerberos-ticket\fP
validates a kerberos ticket obtained by the client.
.IP \fBgss\fP
validates a GSS ticket obtained by the client.
.IP \fBu2f\fP
requests a U2F token from the client.
.IP \fBldap\fP
validates the username and password against an LDAP server,
using the \fIpython-ldap\fP library.
.IP \fBldap3\fP
validates the username and password against an LDAP server,
using the python \fIldap3\fP library.
.RE
.PP
.TP
\fB\-\-tcp\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to TCP sockets (sockets defined using the \fBbind-tcp\fP switch).
Deprecated, use per-socket authentication options.
.TP
\fB\-\-ws\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to ws sockets: sockets defined using the \fBbind-ws\fP switch,
or TCP sockets upgraded to websockets. (if the \fBhtml\fP option is enabled).
Deprecated, use per-socket authentication options.
.TP
\fB\-\-wss\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to wss sockets: sockets defined using the \fBbind-wss\fP switch,
ws sockets upgraded to SSL (if the \fBssl\fP option is enabled) or
TCP sockets upgraded to SSL and then to wss.
(if both the \fBssl\fP and \fBhtml\fP options are enabled).
Deprecated, use per-socket authentication options.
.TP
\fB\-\-ssl\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to SSL sockets: sockets defined using the \fBbind-ssl\fP switch,
or TCP sockets upgraded by \fBssl=auto\fP or \fBssl=on\fP.
Deprecated, use per-socket authentication options.
.TP
\fB\-\-rfb\-auth\fP=\fIMODULE\fP
Authentication module to use for the \fBbind-rfb\fP sockets.
Deprecated, use per-socket authentication options.
.TP
\fB\-\-vsock\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to VSOCK sockets (sockets defined using the \fBbind-vsock\fP switch).
Deprecated, use per-socket authentication options.
.SS Options for start, start-desktop, upgrade
.TP
\fB\-\-exec\-wrapper\fP=\fICMD\fP
A wrapper command which is prepended to all start commands.
Typically, this is used for starting all sub-commands via VirtualGL.
.TP
\fB\-\-start\fP=\fICMD\fP
After starting the server, runs the command \fICMD\fP using the
default shell. The command is run with its \fB$DISPLAY\fP set to point to
the newly-started server. This option may be given multiple times to
start multiple commands.
.TP
\fB\-\-start\-child\fP=\fICMD\fP
Identical to \fB\-\-start\fP, except that the commands are taken into
account by \fB\-\-exit\-with\-children\fP.
.TP
\fB\-\-start\-after\-connect\fP=\fICMD\fP
Wait for the first client to connect before starting the command.
.TP
\fB\-\-start\-child\-after\-connect\fP=\fICMD\fP
Wait for the first client to connect before starting the child command.
See \fIstart-child\fP.
.TP
\fB\-\-start\-on\-connect\fP=\fICMD\fP
Execute this command every time a client connects.
.TP
\fB\-\-start\-child\-on\-connect\fP=\fICMD\fP
Execute this child command every time a client connects.
See \fIstart-child\fP.
.TP
\fB\-\-start\-on\-last\-client\-exit\fP=\fICMD\fP
Execute this command every time a client disconnects and there are
no other clients left.
.TP
\fB\-\-start\-child\-on\-last\-client\-exit\fP=\fICMD\fP
Execute this child command every time a client disconnects and there are
no other clients left.
See \fIstart-child\fP.
.TP
\fB\-\-terminate\-children\fP=\fIyes\fP|\fIno\fP
On server \fBstop\fP, terminate all the child commands that have been started
by the server. This does not affect server \fBexit\fP.
Most child commands are tied to the display so they are normally
forced to shutdown anyway, but this gives them more time to cleanup properly
and can be used to stop background commands that aren't tied to a display.
.TP
\fB\-\-exit\-with\-children\fP=\fIyes\fP|\fIno\fP
This option may only be used if \fB\-\-start\-child\fP is also
given. If it is given, then the xpra server will monitor the status
of the children started by \fB\-\-start\-child\fP, and will
automatically terminate itself when the last of them has exited.
.TP
\fB\-\-exit\-with\-windows\fP=\fIyes\fP|\fIno\fP
The server will terminate automatically when there are no more windows
or system trays being forwarded.
This option is only relevant for seamless servers.
.TP
\fB\-\-exit\-with\-client\fP=\fIyes\fP|\fIno\fP