Ubuntu Printing

CUPS Printing Tips For GNU/Linux & Unix

This page provides a brief introduction to using the CUPS printing system; full user documentation can be found at http://cups.csail.mit.edu:631/help/overview.html These instructions assume you are using a cups client for printing; if you are running CSAIL Ubuntu this is what you have.

For Non CSAIL Ubuntu Machines, see Non CSAIL Ubuntu Printer Setup

XFCE Printing Manager

XFCE is the default display environment for CSAIL Ubuntu, and includes an interface for accessing the CUPS server. You can access the Print manager via: XFCE Menu (the little white mouse head on blue circle icon in the upper left) Settings (along the right of the drop-down panel) Printers (in the left part of the panel; you’ll need to scroll down). From here, you can see all available printers, and set your default printer. To set the default, right click your closest printer, and select “Set As Default”. Following that, select the “Set as my personal default printer” radio button. The Printers window looks like the following:


Command Line options

CUPS allows you to access all of the printer features on the command line by specifying options in the form

-o <option>=<value>

multiple option specification are possible but each requires its own


You can also save common settings as personal queue instances

Common Options

action syntax notes
duplex -o sides=two-sided-long-edge this is the default
simplex -o sides=one-sided
no banner -o job-sheets=none
print banner -o job-sheets=standard
N up printing -o number-up=<N> where N=[1,2,4,6,9,16]

More standard options are shown at in the online documentation on our CUPS server, but these are the most common.

Advanced Options

The above options are generic and can be applied to any printer that is spooled through CUPS. CUPS also supports printer specific options for things such as paper tray and print quality selection. The following command will list all available options for a specific pritner:

lpoptions -p <queue name> -l

The output of this command is in the following format

ShortOptionName/Long Option Name: value1 *value2 value3

Here value two (with the asterisk) is the default value, to change this to value3 for a specific print job the command would be:

lpr -Pqueue -o ShortOptionName=value3 file-to-print.ps

Saving Option Sets

Specifying 4 up simplex printing with no banner page from paper tray 2 in 1200dpi presentation quality mode can get awfully tedious. Thankfully you can save these options into a printer instance which takes the form <queue-name>/<instance-name> where <queue-name> is the printer you want to use and <instance-name> is a personal identifier for this option grouping. These opions are recorede in your ~/.lpoptions file. For example to record te previosly mentioned otions for the printer cabal in an instance called test you would look up the options using lpotions -p cabal -l as shown in the previous section and then use lpotions with the new queue/instance name and the selected options:

lpoptions -p cabal/test -o number-up=4 -o job-sheets=none -o InputSlot=Tray2 -o OutputMode=HiResPhoto -o sides=one-sided

Now anytime you print to <verbatim>lpr -Pcabal/test</verbatim> you will be invoking all those options. If you only specify a queue and don’t specify an instance these options will be your personal defaults for this printer. You can check which options have been changed from the system wide default by using lpoptions -p <queue-name>[/instance-name], for example:

lpoptions -p cabal/test
number-up=4 job-sheets=none InputSlot=Tray2 OutputMode=HiResPhoto sides=one-sided

lpoptions -p cabal
job-sheets=none,none page-bottom=18 page-left=18 page-right=18 page-top=18

PPD files for CSAIL printers

TIG maintains and supports a CSAIL specific distribution of Ubuntu. If you are using another distribution you may (or may not) find the following PPDs useful. Note however that other distributions are not supported by TIG.

Non CSAIL Ubuntu Printer Setup

create file


edit the file and add the line

ServerName cups.csail.mit.edu

then run

sudo systemctl restart cups.service