X
User Quick Start
- X session fails to start
- Check ~/.xsession-errors
- Set your window manager
- Edit ~/.xsession (or ~/.Xsession - it doesn't matter which; the first one found is used)
- Start some apps
- Edit ~/.xsession
- Set global environment variables for your X session
- Edit ~/.xsessionrc
System Quick Start
- Set the default session manager
- Change the link for /usr/bin/x-session-manager->/etc/alternatives/x-session-manager->
- Set the default window manager
- Change the link for /usr/bin/x-window-manager->/etc/alternatives/x-window-manager->
- Set the default display manager
- Edit /etc/X11/default-display-manager
- Set the default pseudo terminal
- Change the link for /usr/bin/x-terminal-emulator->/etc/alternatives/x-terminal-emulator->
- Restrict users, other session options
- Edit /etc/X11/Xsession.options
- Stop startx from using Xsession by default
- Edit /etc/X11/xinit/xinitrc
- Set xdm options
- Edit /etc/X11/xdm/xdm-config
Note: ~/.Xresources is different from ~/.Xdefaults-<host_alias> and ~/.Xdefaults
The first one is read (sourced) by the "xserver" from /etc/X11/Xsession.d/30x11-common_xresources
the later two are read by the application directly at every startup.
Note that ~/.Xdefaults is a relic from
X Version 10 (and X11R1) days, before app-defaults files were
implemented. It has been deprecated for well over ten years.
~/.Xresources should be used instead.
Definitions
- X session
- The combination of an X server and connecting X clients
- X server
- A program run on a local host connected to the user's display and input devices
- X client
- A program run on a remote host that processes data and talks to the X server
- application server
- A program run on a remote host that processes data and talks to the clients.
XDM would typically run on an application server, to permit users to logon and run
applications from that server
- application client
- A program run on a local host connected to the user's display and input devices
References
- Debian Starting X
- Shop for a Windows Manager
- The X Window User HOWTO
- Window Managers for X
- Reports on running Linux on notebook or laptop computers
- Debian hardware WIKI
Files
- /etc/X11/Xsession
- The final call
- /etc/X11/Xsession.options
- configuration options for /etc/X11/Xsession
- /etc/X11/Xsession.d
- run-parts like executable files run by Xsession
- /etc/X11/default-display-manager
- X display manager preference
- ~/.xsessionrc
-
-
- ~/.gnomerc
-
- ~/.gnome2/session
-
Discussion
XENVIRONMENT
Any user and machine-specific resources may be specified by
setting the XENVIRONMENT environment variable to the name of a
resource file to be loaded by all applications. If this variable
is not defined, a file named $HOME/.Xdefaults-hostname is looked
for instead, where hostname is the name of the host where the
application is executing.
Examples
user@host:1:~ $ cat .Xdefaults-<hostname>
XTerm*title: ~/.Xdefaults-<hostname>
xterm*faceName: 10x20
xterm*saveLines: 65535
xterm*scrollBar: true
xterm*rightScrollBar: true
xterm*loginShell: true
xterm*toolBar: false
xterm*background: blue
xterm*foreground: yellow
user@host:1:~ $ cat .Xresources
! ~/.Xresources - sourced when xdm starts
XTerm*Font: 10x20
XTerm*Title: ~/.Xresources
XLoad*Background: gold
XLoad*Foreground: red
XLoad*highlight: black
XLoad*borderWidth: 0
user@host:1:~ $
user@host:1:~ $ cat .Xsession
/usr/bin/xset -dpms s off
/usr/bin/blackbox
user@host:1:~ $
user@host:0:~ $ cat .Xsessionrc
! ~/.Xsessionrc
! Read (sourced) by the X session scripts during login
! Most useful for setting locale information
user@host:0:~ $
user@host:1:~ $ cat .xinitrc
xterm -bg black -fg white &
/usr/bin/blackbox
#/usr/bin/gnome-session
user@host:1:~ $
Note: Complete answers to the following questions are still blowing in the wind:
- Why the message:
No protocol specified
Error: Can't open display: 192.168.1.x:0.0 ?
Google for "Can't open display" and I get 76,500 hits. That seems like a large number for
a windowing system that prides itself on being client/server so the pieces aren't tied to
any particular host. Having fought this problem for years, I am still baffled by this.
To run an application on host local.linux and display the results on host remote.linux, the party
line goes like this:
on remote.linux type xhost +
on remote.linux edit /usr/share/gdm/defaults.conf and change
DisallowTCP=true to DisallowTCP=false
This won't work in Debian because Debian has a /etc/gdm/gdm.conf file
that overrides /usr/share/gdm/defaults.conf and it won't work in Ubuntu
because Ubuntu doesn't have either of those files. (Desktop 10.10)
(gdmsetup on Debian customizes /etc/gdm/gdm.conf)
(no clue what gdmsetup customizes on Ubuntu; Ubuntu doesn't have a man page for that)
After this, reboot the box (just restarting gdm doesn't seem to work)
In addition some people have said to unset DISPLAY on the remote machine. I've
found that DISPLAY should be set to :0.0 (At least on Debian)
On host local.linux run xclock -display remote.linux:0.0
and the clock
is supposed to pop up on remote.linux.
- Which case (X or x) must the files be?
- /etc/X11/Xsession sets USERXSESSIONRC=$HOME/.xsessionrc
/etc/X11/Xsession.d/40x11-common_xsessionrc sources $USERXSESSIONRC
/etc/X11/Xsession sets USRRESOURCES=$HOME/.Xresources
/etc/X11/Xsession.d/30x11-common_xresources does xrdb -merge $USRRESOURCES
/etc/X11/Xsession sets USERXSESSION=$HOME/.xsession
and also sets ALTUSERXSESSION=$HOME/.Xsession
/etc/X11/Xsession/50x11-common_determine-startup looks for both $USERXSESSION AND $ALTUSERXSESSION
in that order and operates only on the first one it finds, naming it STARTUPFILE. If the file is
executable, it sets STARTUP to $STARTUPFILE, otherwise sets STARTUP to "sh $STARTUPFILE" then
/etc/X11/Xsession/99x11-common_start execs $STARTUP.
/etc/X11/Xsession sets ERRFILE=$HOME/.xsession-errors
- Which files are sourced and which are executed?
- See above
- Which files override which files in which scenario?
- The presence of which files causes which files to not be read?
- What happens differently between <Ctrl>-<Alt>-<Backspace>
and /etc/init.d/xdm restart?
- Other than the source code, where is the most uptodate information?
How X gets started
An X-session is started with either startx
or one of the X display manager daemon programs (*dm) started from the
end of the startup scripts in /etc/rc?.d/.
Available display managers are:
- X display manager - xdm - (aptitude show xdm)
- Gnome display manager - gdm - (aptitude show gdm)
- KDE display manager - kdm - (aptitude show kdm)
- Secure display manager - sdm (aptitude show sdm)
- LTSP (Linux Terminal Server Project) display manager - ldm - (aptitude show ldm)
- Console display manager - cdm
Use chkconfig to configure the startup scripts
To use xdm, run
chkconfig gdm off xdm on
To check the status use
chkconfig xdm
Continue with Xsession
X tidbits
user@host:0:~ $ startx -- :1
X: user not authorized to run the X server, aborting.
xinit: Server error.
user@host:0:~ $
In /etc/X11/Xwrapper.config, change allowed_users=console to
allowed_users=anybody to get rid of this message
Send mail to the Webmaster
 |
This site best viewed with a browser |
| Warning: This is a Debian centric site and MAY contain peanuts. |
| Many thanks to Debra Lynn and Ian Murdock for making Debian possible |
| First created Apr 22, 2008 ~ Last revised December 06, 2010 |