---
name: "startx"
section: "1x"
platform: "linux"
package: "xbase-clients"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/startx/1x"
---

# startx(1x)

initialize an X session

## NAME

startx - initialize an X session

## SYNOPSIS

**startx** \[ \[ *client* \] *options* ... \] \[ **--** \[ *server* \] *options* ... \]

## DESCRIPTION

The *startx* script is a front end to *xinit* that provides a somewhat nicer user interface for running a single session of the X Window System.  It is often run with no arguments.

Arguments immediately following the *startx* command are used to start a client in the same manner as [*xinit*(1)](/xinit/1.md). The special argument '--' marks the end of client arguments and the beginning of server options. It may be convenient to specify server options with startx to change on a per-session basis the default color depth, the server's notion of the number of dots-per-inch the display device presents, or take advantage of a different server layout, as permitted by the *XFree86*(1) server and specified in the [*XF86Config*(5x)](/XF86Config/5x.md) file.  Some examples of specifying server arguments follow; consult the manual page for your X server to determine which arguments are legal.

startx -- -depth 16

startx -- -dpi 100

startx -- -layout Multihead

Note that in the Debian system, what many people traditionally put in the *.xinitrc* file should go in *.xsession* instead; this permits the same X environment to be presented whether *startx*, *xdm*, or *xinit* is used to start the X session. All discussion of the *.xinitrc* file in the [*xinit*(1)](/xinit/1.md) manual page applies equally well to *.xsession.* Keep in mind that *.xinitrc* is used only by [*xinit*(1)](/xinit/1.md) and completely ignored by [*xdm*(1)](/xdm/1.md).

To determine the client to run, *startx* first looks for a file called *.xinitrc* in the user's home directory.  If that is not found, it uses the file *xinitrc* in the *xinit* library directory. If command line client options are given, they override this behavior and revert to the [*xinit*(1)](/xinit/1.md) behavior. To determine the server to run, *startx* first looks for a file called *.xserverrc* in the user's home directory.  If that is not found, it uses the file *xserverrc* in the *xinit* library directory. If command line server options are given, they override this behavior and revert to the [*xinit*(1)](/xinit/1.md) behavior.  Users rarely need to provide a *.xserverrc* file. See the [*xinit*(1)](/xinit/1.md) manual page for more details on the arguments.

The system-wide *xinitrc* and *xserverrc* files are found in the */usr/X11R6/lib/X11/xinit* directory.

## ENVIRONMENT VARIABLES

- DISPLAY

  This variable gets set to the name of the display to which clients should connect.  Note that this gets *set*, not read.

- XAUTHORITY

  This variable, if not already defined, gets set to *$(HOME)/.Xauthority*. This is to prevent the X server, if not given the *-auth* argument, from automatically setting up insecure host-based authentication for the local host.  See the [*Xserver*(1)](/Xserver/1.md) and [*Xsecurity*(7x)](/Xsecurity/7x.md) manual pages for more information on X client/server authentication.

## FILES

- *$(HOME)/.xinitrc*

  Client to run.  Typically a shell script which runs many programs in the background.

- *$(HOME)/.xserverrc*

  Server to run.  The default is *X*.

- */usr/X11R6/lib/X11/xinit/xinitrc*

  Client to run if the user has no *.xinitrc* file.

- */usr/X11R6/lib/X11/xinit/xserverrc*

  Server to run if the user has no *.xserverrc* file.

## SEE ALSO

[*xinit*(1)](/xinit/1.md), [*Xserver*(1)](/Xserver/1.md), *XFree86*(1)
