====== X2Go Client-Side Printing ======
For being able to use X2Go printing, you'll need a running CUPS server. You can use your network's existing CUPS server (multi-node X2Go printing, see below) or you can install a CUPS server on the same machine as the X2Go Server tools are running on (single-node X2Go printing setup).
X2Go Printing is intended for
* use on low bandwidth networks – like internet connections or GSM connections
* use of printers that are directly connected to X2Go (thin-)clients
For other scenarios, please use a central CUPS server (see multi-node printing below) without the X2Go printing feature installed.
X2Go Printing falls into two components:
* cups-x2go -- a CUPS backend that spools X2Go print jobs
* x2goserver-printing -- the X2Go server-side printing add-on package.
:!: **Before you begin!**
> This page is targeted at people who use Debian/Raspbian/Ubuntu packages provided by the X2Go project. Please make sure that you have added the X2Go repository to your package management system. The required steps are described here: [[wiki:repositories:debian|Debian]], [[wiki:repositories:raspbian|Raspbian]] or [[wiki:repositories:ubuntu|Ubuntu]] (depending on the distro that you have chosen for your X2Go Server).
===== Single-Node Printing =====
==== Summary ====
The minimal X2Go Server + CUPS setup is: install ''x2goserver'', ''x2goserver-printing'', ''cups'', ''cups-x2go'' on the same machine.
$ sudo aptitude install x2goserver x2goserver-printing cups cups-x2go
Printing works nearly out of the box, you only have to add a virtual CUPS queue based on the Virtual X2Go Printer (''cups-x2go'') backend.
On systems that use systemd as their init system and to start CUPS, this setup will fail to work if the ''PrivateTmp'' directive is set to true in the CUPS systemd service file. Please make sure to disable this option manually and to restart CUPS for ''cups-x2go'' to work.
==== En Detail... ====
The X2Go server-side printing component contains the script ''x2goprint'' which looks for incoming ''cups-x2go'' backend print jobs and processes them towards connected X2Go Clients. It is an X2Go Server add-on included in the [[http://code.x2go.org/gitweb?p=x2goserver.git;a=summary|X2Go server source project]]. Debian/Raspbian/Ubuntu users have to install the extra package with the following command:
$ sudo aptitude install x2goserver-printing
:!: Note, that on older systems, X2Go printing requires the user(s) to be added to the fuse group on the server, as it uses the file and folder sharing feature to transfer the spool file to the client. If your distribution is not providing a fuse group any longer, this does not apply.
For single-node X2Go printing (means: all steps of the printing process take place on the same machine) only one further step for setting up X2Go printing is necessary: after installing the X2Go CUPS engine (package: ''cups-x2go'') you have to add a »Virtual X2Go Printer« backend to your CUPS server.
- install CUPS-X2Go backend
$ sudo aptitude install cups-x2go
- add a new printer in CUPS, possibly named: »x2goprinter« (name is arbitrary)
- as printing device (i.e. backend) you should select the “Virtual X2Go Printer”
- as printing driver choose:
* vendor: »generic«
* model: »Generic CUPS-X2Go Printer«
You may configure further options by editing the CUPS-X2Go config file ''/etc/cups/cups-x2go.conf'', but this should normally not be necessary. The below code block shows the default set of options:
##
## cups-x2go.conf -- CUPS Backend Configuration
##
## Server with X2Go system
#x2goserver = local
## dsa key for user x2goprint
#printdsa = /root/.x2go/ssh/.x2goprint/id_dsa
## command to generate pdf files
## CAUTION: this command MUST output the resulting PDF File to standard output.
#ps2pdf = /usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=- -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -dDoNumCopies -c .setpdfwrite -f \"%s\"
## loglevel for cups-x2go, possible values: emerg, alert, crit, err, warn, notice, info, debug
#loglevel = notice
Before Sep 2011 configuring sudo was needed for local X2Go printing, since then setting up sudo is only needed if CUPS with cups-x2go and the X2Go server package are installed on //different// machines.
===== Multi-Node Printing =====
For an X2Go setup where X2Go server and CUPS server are hosted on different machines, please refer to the [[wiki:advanced:multi-node:x2goserver-printing|Multi-Node X2Go Printing]] setup.