I. Presentation
This is a customizable theme for the XDM
login manager.
II. Requirements
This XDM
theme depends on the following softwares :
-
bash
-
xdm
-
imagemagick
-
numlockx
(optional) -
compton
(optional) -
feh
(optional) -
xonclock
(optional) -
cairo-clock
(optional) -
conky
(optional) -
xscreensaver
(optional)
III. Directories and Files
This XDM
theme includes the resources, scripts, images, and documentation
files below :
1. In /etc/X11/xdm/slackware
-
Xresources
The resources of the X clients run by
XDM
outside the user’s sessions. -
Xservers
File in which are defined the X server(s) running on the local machine.
-
Xsetup
The setup script which is run each time the X server is started/reset.
-
Xstartup
The startup script which is run after user logs in by
XDM
. -
Xreset
The program which is run (as root) after the session terminates.
-
Xsession
The program to run as the session after the user has logged in.
-
Xbuttons_bar
This script is run by
Xsetup
. It displays a buttons bar which allows user to execute actions underXDM
, like selecting a session, suspending or rebooting the computer,… -
xdm-config
xdm configuration file for this
XDM
theme. -
Xbuttons_bar.conf
Xbuttons_bar
(default) configuration file. For more, read this. -
Xsession.conf
Xsession
(default) configuration file. For more, read this. -
Xsetup.conf
Xsetup
(default) configuration file. For more, read this.
2. In /etc/X11/xdm/slackware/extensions.d
Directory in which the Xsetup
extensions are stored.
-
analog-clock
An
Xsetup
extension to display an analog clock on theXDM
screen. -
analog-clock.conf
analog-clock
(default) configuration file. -
sysmon-conky
An
Xsetup
extension to integrate the system monitorconky
on theXDM
screen. -
sysmon-conky.conf
sysmon-conky
(default) configuration file. -
sysmon-conky-rt.conf
andsysmon-conky-pt.conf
conky configuration files used by extension
sysmon-conky
. -
xdm-screensaver
An
Xsetup
extension to run a screensaver onXDM
screen. -
xdm-screensaver.conf
xdm-screensaver
(default) configuration file.
3. In /etc/X11/xdm/slackware/pixmaps
-
s-logo-on-white.xpm
The Slackware (S) logo on a white background.
-
s-logo-on-grey.xpm
The Slackware (S) logo on a grey background.
-
*.jpg
Wallpapers for this
XDM
theme.
4. In /usr/libexec/setxdmbg
-
setxdmbg.sh
Command line tool to set the XDM background image easily. See this page for more about this tool.
5. In /usr/bin
-
setxdmbg
symlink to
/usr/libexec/setxdmbg/setxdmbg.sh
6. In /usr/share/man/man1
-
setxdmbg.1.gz
:setxdmbg
manual page.
7. In /usr/share/man/man5
-
Xsetup.conf.5.gz
:Xsetup.conf
manual page. -
Xbuttons_bar.conf.5.gz
:Xbuttons_bar.conf
manual page. -
Xsession.conf.5.gz
:Xsession.conf
manual page. -
analog-clock.conf.5.gz
:analog-clock.conf
manual page. -
sysmon-conky.conf.5.gz
:sysmon-conky.conf
manual page. -
xdm-screensaver.conf.5.gz
:xdm-screensaver.conf
manual page.
8. In /usr/doc/xdm-slackware-theme-<VERSION>/
-
README
Text version of this html page.
-
readme.html
This html page.
-
setxdmbg.html
setxdmbg manual page in html format.
-
slackware-s-logo.xcf
Gimp file used to generate
s-logo-on-white.xpm
ands-logo-on-grey.xpm
pixmaps. Might be useful to create Slackware (S) logo images on other colors than white and grey. -
adoc/readme.txt
Source file (to asciidoc format) of readme.html
-
adoc/setxdmbg.txt
Source file (to asciidoc format) of setxdmbg.html
IV. The configuration file Xsetup.conf
This is the (default) Xsetup
configuration file.
Below the properties (aka variables) that can be (re)defined in Xsetup
configuration file(s) :
-
DISABLE_LOG
(default to off)
Defines whether or not logging of Xsetup activity must be disabled.
-
XDM_LOCALE
(default to en_US.UTF-8)
Defines the locale used while running
XDM
. -
WITH_COMPTON
(default to on)
Defines whether or not
Xsetup
must start the compositorcompton
if installed. -
COMPTON_ARGS
(see Xsetup.conf for default value)
The compton arguments.
-
WITH_BUTTONS_BAR
(default to on)
Defines if
Xsetup
must start the buttons-bar (i.e.Xbuttons_bar
). -
BUTTONS_BAR_POSITION
(default to TOP_LEFT)
The position of the buttons-bar which can be one of the following :
TOP_LEFT
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_RIGHT
-
WITH_XCLOCK
(default to on)
Defines if
Xsetup
must startxclock
if installed. -
XCLOCK_POSITION
(default to TOP_RIGHT)
Defines the position of
xclock
which can be one of the following :TOP_LEFT
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_RIGHT
-
XCLOCK_FONT
(see Xsetup.conf for default value)
Defines the font of the
xclock
widget. -
XCLOCK_FG_COLOR
(default grey90)
Defines the foreground color of the
xclock
widget. -
XCLOCK_STRFTIME
(default to %T)
Defines the
strftime
format of the date/time displayed by thexclock
widget. -
WITH_NUMLOCK_ON
(default to on)
Defines if the num lock must be activated (requires
numlockx
) when startingXDM
. -
PRIMARY_ONLY
(default to on)
Defines whether or not the
XDM
background and widgets (xclock, buttons-bar, …) must be displayed on the primary screen only whenXDM
is running on a multi-screen configuration. -
PRIMARY_ID
(default to auto)
Defines the identifier of primary display.
-
XDMBGIMG
(default to ${SCRIPTDIR}/pixmaps/default-wallpaper.pixmap)
Full path to the image that
Xsetup
must pass to setxdmbg to generate theXDM
background image. -
BORDER_TOP
(default to 40:black)
The height and color of the border at top of the
XDM
background image when the buttons-bar and/orxclock
widget is/are enabled and placed on top. -
BORDER_BTM
(default to 40:black)
The height and color of the border at bottom of the
XDM
background image when the buttons-bar and/orxclock
widget is/are enabled and placed on bottom. -
EXTRAIMGOPS
(empty by default)
The imagemagick extra image operators that
Xsetup
must pass to setxdmbg to generate theXDM
background image. -
EXTENSIONS
(empty by default)
Defines the
Xsetup
extension(s) to load (and execute).
V. The configuration file Xbuttons_bar.conf
This is the (default) Xbuttons_bar
configuration file.
Below the properties (aka variables) that can be (re)defined
in Xbuttons_bar
configuration file(s) :
-
DISABLE_LOG
(default to off)
Defines whether or not logging of
Xbuttons_bar
activity must be disabled. -
BUTTONS_ORDER
(default to "SESSIONS SYSTEM")
Defines the buttons present in the buttons-bar and their order.
Below the supported identifiers :
-
SESSIONS
Identifier of button to access the sessions menu.
SYSTEM
Identifier of button to access the system menu.
SCREENSHOT
Identifier of button to take a screenshot of XDM screen.
-
SYSMENU_BUTTONS_ORDER
(default to "SUSPEND HIBERNATE REBOOT HALT")
Defines the buttons present in the system menu and their order.
Below the supported identifiers :
-
SUSPEND
Identifer of button to suspend the system.
HIBERNATE
Identifer of button to hibernate the system.
REBOOT
Identifer of button to reboot the system.
HALT
Identifer of button to halt the system.
-
SESMENU_BTLABEL
(default to "Session[@SESSION_NAME@]")
Defines the label of the button to access the sessions menu.
-
NOSESSION_STR
(default to "default")
The string by which the tag
@SESSION_NAME@
, if present in propertySESMENU_BTLABEL
, must be replaced when there is no selected session. -
SYSMENU_BTLABEL
(default to "System")
Defines the label of the button to access the system menu.
-
SCREENSHOT_BTLABEL
(default to "Screenshot")
Defines the label of the button to take a screenshot of XDM screen.
-
SUSPEND_BTLABEL
(default to "Suspend")
Defines the label of the button to suspend the system.
-
HIBERNATE_BTLABEL
(default to "Hibernate")
Defines the label of the button to hibernate the system.
-
REBOOT_BTLABEL
(default to "Reboot")
Defines the label of the button to reboot the system.
-
HALT_BTLABEL
(default to "Halt")
Defines the label of the button to halt the system.
-
EXITMENU_BTLABEL
(default to "Exit")
Defines the label of the button to exit from system/sessions menu.
-
RESET_BTLABEL
(default to "Reset")
Defines the reset button label of sessions menu selection.
-
FONT
(see Xbuttons_bar.conf)
Defines the buttons-bar font.
-
FG_COLOR
(default to grey90)
Defines the buttons-bar foreground color.
-
SYSMENU_FONT
(see Xbuttons_bar.conf)
Defines the system menu font.
-
SESMENU_FONT
(see Xbuttons_bar.conf)
Defines the sessions menu font.
-
SYSMENU_FG_COLOR
(default to grey90)
Defines the system menu foreground color.
-
SESMENU_FG_COLOR
(default to grey90)
Defines the sessions menu foreground color.
-
XINITRC_FILES_DIR
(default to /etc/X11/xinit)
Defines the location of
xinitrc.*
session files used to populate the sessions menu. -
SESSIONS_BLACKLIST
(empty by default)
Defines the sessions to exclude from the sessions menu.
-
SESMENU_VIEWPORT_SIZE
(default to 10)
Defines the maximum number of items visible at a time in the sessions menu.
When there is more items than that in the sessions menu, scroll buttons are added accordingly.
-
SESMENU_LSCROLL_BTLABEL
(default to " < ")
Defines the label of the sessions menu left-scroll button.
-
SESMENU_RSCROLL_BTLABEL
(default to " > ")
Defines the label of the sessions menu right-scroll button.
-
PERSISTENT_SESSION
(default to off)
Defines whether or not the (last) selected session in the sessions menu must persist (across
XDM
resets and system reboots). -
SCREENSHOT_DELAY
(default to 5)
Defines the delay (in seconds) before taking a screenshot.
-
SCREENSHOT_DIR
(default to /tmp)
Defines the screenshot folder.
-
SCREENSHOT_NTFY_MSG
(see Xbuttons_bar.conf)
Defines the message displayed before taking a screenshot.
-
SCREENSHOT_NOW_BTLABEL
(default to Now)
Defines the label of button to dismiss the timeout and take a screenshot immediately.
-
SCREENSHOT_CANCEL_BTLABEL
(default to Cancel)
Defines the label of button to cancel taking a screenshot.
-
SCREENSHOT_TAKEN_MSG
(see Xbuttons_bar.conf)
Defines the message displayed after taking a screenshot.
-
SCREENSHOT_FAIL_MSG
(see Xbuttons_bar.conf)
Defines the message displayed when taking a screenshot failed.
-
SCREENSHOT_DLG_FONT
(see Xbuttons_bar.conf)
Defines the font of the message displayed before/after taking a screenshot, and in case of error.
-
SCREENSHOT_ALWAYS_FULL
(default to off)
Defines whether or not to always take full screenshots, even when XDM is configured for primary display only (
Xsetup.PRIMARY_ONLY=on
).
VI. The configuration file Xsession.conf
This is the (default) Xsession
configuration file.
Below the properties (aka variables) that can be (re)defined in Xsession
configuration file(s) :
-
DISABLE_LOG
(default to off)
Defines whether or not logging of
Xsession
activity must be disabled. -
USR_XSESSION
(default to ${HOME}/.xsession)
Full path to the user’s X session.
-
SYS_XSESSION
(default to /etc/X11/xinit/xinitrc)
Full path to the system’s X session.
-
XINITRC_FILES_DIR
(default to /etc/X11/xinit)
The location of
xinitrc.*
session files. -
SYS_XRESOURCES
(default to /etc/X11/xinit/.Xresources)
Full path to the system’s X resources.
-
USR_XRESOURCES
(default to ${HOME}/.Xresources)
Full path to the user’s X resources.
-
SYS_XMODMAP
(default to /etc/X11/xinit/.Xmodmap)
Full path to the system’s X modmap.
-
USR_XMODMAP
(default to ${HOME}/.Xmodmap)
Full path to the user’s X modmap.
-
LOAD_XRESOURCES_ON
(default to ( "failsafe" ) )
The name of the sessions for which
Xsession
must load the X resources (specified bySYS_RESOURCES
andUSR_XRESOURCES
) when available. -
LOAD_XMODMAP_ON
(default to ( "failsafe" ) )
The name of the sessions for which
Xsession
must load the X modmap (specified bySYS_XMODMAP
andUSR_XMODMAP
) when available. -
XSESSION_ERRFILE
(see Xsession.conf for default value)
Defines the files in which (session) errors can be redirected.
-
SOURCE_SYS_PROFILE
(default to on)
Defines whether or not the system profile script
/etc/profile
must be sourced byXsession
, when present. -
SOURCE_USR_PROFILE
(default to on)
Defines whether or not the user profile script
~/.profile
must be sourced byXsession
, when present. -
SOURCE_SYS_XPROFILE
(default to on)
Defines whether or not the system x-profile script
/etc/xprofile
must be sourced byXsession
, when present. -
SOURCE_USR_XPROFILE
(default to on)
Defines whether or not the user x-profile script
~/.xprofile
must be sourced byXsession
, when present. -
FAILSAFE_TERM
(default to /usr/bin/uxterm)
Defines the terminal emulator to execute when running
failsafe
mode. -
FAILSAFE_TERM_GEOMETRY
(default to 80x24
+0+0)Defines the geometry of the terminal emulator specified by variable
FAILSAFE_TERM
.
VII. Multiple XDM logins
The file Xservers
that comes with this theme includes sections to run up
to 3 X servers on a single machine, and thus 3 XDM logins. By default, only
the X server on local display :0 (paired with VT7) is enabled.
To enable the X server on local display :1
(paired with VT8), it is required
to uncomment the line :
-
#:1 local /usr/bin/X :1 vt8
To enable the X server on local display :2
(paired with VT9), it is required
to uncomment the line :
-
#:2 local /usr/bin/X :2 vt9
Once done, restart XDM
, or reboot the system. To access XDM
on local display
:1
, hit CTRL+ALT+F8, to access XDM on local display :0
, hit CTRL+ALT+F7.
By default, all XDM logins share the same configuration which is specified by the (default) configuration files :
-
Xsetup.conf
-
Xbuttons_bar.conf
-
Xsession.conf
The Xsetup
/Xbuttons_bar
/Xsession
configuration of each XDM login can be
(re)defined in specific configuration files named :
-
Xsetup.<XDISP>.conf
-
Xbuttons_bar.<XDISP>.conf
-
Xsession.<XDISP>.conf
XDISP
is the X server display name, without field screennumber, and
to XDM
resource name format, that is, with underscores in place of dots
and colons.
For instance, the Xsetup
configuration for XDM
login on :1
is named
Xsetup._1.conf
, the Xbuttons_bar
configuration for the XDM
login :2
is
named Xbuttons_bar._2.conf
.
When only a few properties need to be redefined for a given XDM
login, the
default configuration can be loaded by the dedicated configuration. For
instance, to only redefine the property XDMBGIMG
for the XDM
login on :1
and :2
, the configuration files Xsetup._1.conf
and Xsetup._2.conf
could
look like that :
-
Xsetup._1.conf
# Load default source ${SCRIPTDIR}/Xsetup.conf # defines background image for XDM on :1 XDMBGIMG=${SCRIPTDIR}/pixmaps/default-wallpaper._1.pixmap
Xsetup._2.conf# Load default source ${SCRIPTDIR}/Xsetup.conf # defines background image for XDM on :2 XDMBGIMG=${SCRIPTDIR}/pixmaps/default-wallpaper._2.pixmap
When an XDM
login has no dedicated Xsetup/Xbuttons_bar/Xsession configuration,
the default configuration is used.
VIII. Extension mechanism
The extension mechanism allows to improve XDM
user experience with
external shell scripts which are dynamically loaded and executed by
Xsetup
.
The extensions must be in the folder extensions.d
of Xsetup
's
directory.
The extension(s) that Xsetup
must load/execute have to be specified
by the property EXTENSIONS
, declared in Xsetup
's configuration
file(s).
1. Included extensions
This XDM
theme comes with the extensions described below.
A. analog-clock
Extension to display an analog-clock on XDM screen.
By default, analog-clock
's settings are loaded from configuration file
analog-clock.conf
.
On system with multiple XDM logins, there might be a configuration file
per X server: analog-clock._0.conf
for X server :0
, analog-clock._1.conf
for X server :1
, …
Below the properties (aka variables) that can be (re)defined in
analog-clock
configuration file(s) :
-
XOC_SKIN
(default to /usr/share/xonclock/skins/chrome-128-bs.png)
Defines
xonclock
's skin. -
XOC_POSITION
(default to TOP_RIGHT)
Defines
xonclock
's position on XDM screen. Can be one of the following :TOP_LEFT
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_RIGHT
-
XOC_SIZE
(default to 128)
Defines the
xonclock
's size. -
XOC_MARGIN
(default to 16)
Defines the
xonclock
's margin. -
XOC_USE_BACKGROUND
(default to on)
Defines whether or not
xonclock
must merge the skin with desktop root window background image. -
XOC_SHOW_SECONDS
(default to on)
Defines whether or not
xonclock
must render second hand. -
XOC_SHOW_DATE
(default to on)
Defines whether or not
xonclock
must display the date. -
XOC_DATE_FORMAT
(default to "%b %d")
Defines the
strftime
format of the date string used byxonclock
to render the date. -
XOC_EXTRA_ARGS
(default to ())
Defines the extra arguments to pass to
xonclock
. -
CC_THEME
(default to radium)
Defines the
cairo-clock
's theme. -
CC_POSITION
(default to TOP_RIGHT)
Defines
cairo-clock
's position on XDM screen. Can be set to one of the following :TOP_LEFT
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_RIGHT
-
CC_SIZE
(default to 200)
Defines the
cairo-clock
's size to formatWIDTH[:HEIGHT]
. WhenHEIGHT
is not set, defaults toWIDTH
. -
CC_MARGIN
(default to 16)
Defines the
cairo-clock
's margin. -
CC_SHOW_SECONDS
(default to on)
Defines whether or not
cairo-clock
must render second hand. -
CC_SHOW_DATE
(default to on)
Defines whether or not
cairo-clock
must render the date string. -
CC_EXTRA_ARGS
(default to ())
Defines the extra arguments to pass to
cairo-clock
.
B. sysmon-conky
Extension to integrate the system monitor conky
on the XDM
screen.
By default, sysmon-conky
's settings are loaded from configuration file
sysmon-conky.conf
.
On system with multiple XDM logins, there might be a configuration file
per X server: sysmon-conky._0.conf
for X server :0
, symon-conky._1.conf
for X server :1
, …
Below the properties (aka variables) that can be (re)defined in
sysmon-conky
configuration file(s) :
-
CONKY_REAL_TRANSPARENT_CFG
(default to ${EXTDIR}/conky-real-transparent.conf)
Defines the
conky
configuration with real transparency. -
CONKY_PSEUDO_TRANSPARENT_CFG
(default to ${EXTDIR}/conky-pseudo-transparent.conf)
Defines the
conky
configuration with pseudo transparency. -
CONKY_EXTRA_ARGS
(default to ())
Defines the extra arguments to pass to conky.
C. xdm-screensaver
Extension to run a screensaver on XDM
screen.
By default, xdm-screensaver
's settings are loaded from configuration
file xdm-screensaver.conf
.
On system with multiple XDM
logins, there might be a configuration file
per X server: xdm-screensaver._0.conf
for X server :0
, xdm-screensaver._1.conf
for X server :1
, …
Below the properties (aka variables) that can be (re)defined in xdm-screensaver
configuration file(s) :
-
SCREENSAVER_MODE
(default to windowed)
Defines the operating mode of xdm-screensaver extension. Can be set to one of the following.
-
fullscreen
The screensaver is draw on the root window.
-
windowed
The screensaver is draw on a newly-created window on the physical display specified by property
SCREENSAVER_DISPLAY
.
-
-
SCREENSAVER_DISPLAY
(default to 1)
Defines the physical display on which to draw the screensaver when
SCREENSAVER_MODE
is set towindowed
. This can be one of the following:-
The name of any output supported by xrandr (ex.
VGA-0
,HDMI-0
, …) -
The number of the corresponding display in the list returned by command
xrandr --listmonitors
(ex. 0, 1, 2, ..) -
the keyword
primary
to select the primary display.
-
-
SCREENSAVER_WINDOW_POS
(default to TOP_LEFT)
Defines the position of the window on which to draw the screensaver when
SCREENSAVER_MODE
is set towindowed
.The position is relative to the physical display specified by property
SCREENSAVER_DISPLAY
. Can be one of the following :TOP_LEFT
TOP_MIDDLE
TOP_RIGHT
MIDDLE_LEFT
MIDDLE_MIDDLE
MIDDLE_RIGHT
BOTTOM_LEFT
BOTTOM_MIDDLE
BOTTOM_RIGHT
-
SCREENSAVER_WINDOW_SIZE
( default to (100% 100%) )
Defines the dimensions (
width
xheight
) of the window on which to draw the screensaver whenSCREENSAVER_MODE
is set towindowed
. The dimensions can be expressed in pixel, or in percent of the width/height of the physical display specified by propertySCREENSAVER_DISPLAY
. -
SCREENSAVER_WINDOW_MARGINS
( default to ( 8 8 ) )
Defines the margins around the window on which to draw the screensaver when
SCREENSAVER_MODE
is set towindowed
. -
SCREENSAVER_DIR
(default to /usr/libexec/xscreensaver)
Defines the location of screensavers.
-
SCREENSAVER
(default to gltext)
Defines the screensaver to run.
-
SCREENSAVER_EXTRA_ARGS
( see below )
Defines the extra-arguments to pass to the screensaver specified by property
SCREENSAVER
.default to
( "-text" "$(head -n 1 /etc/slackware-version)" )
2. Integrate extensions
To integrate conky
in XDM screen, open Xsetup.conf
, and set property
EXTENSIONS
as below :
-
EXTENSIONS=( "sysmon-conky" )
To integrate an analog-clock in XDM
screen, open Xsetup.conf
, and
set property EXTENSIONS
as below :
-
EXTENSIONS=( "analog-clock" )
To integrate conky
and an analog clock on the XDM
screen, simply set
property EXTENSIONS
as below :
-
EXTENSIONS=( "sysmon-conky" "analog-clock" )
On a system with multiple XDM
logins, it is possible to have different
extension(s) on each XDM
login.
For instance, to attach conky to XDM
on :0
, and an analog-clock
to XDM
on :1
, the Xsetup configuration files for these XDM
logins
could look like as below :
-
Xsetup._0.conf
# Load default # source ${SCRIPTDIR}/Xsetup.conf # integrate conky on XDM screen of X server :0 EXTENSIONS=( "sysmon-conky" )
Xsetup._1.conf# Load default # source ${SCRIPTDIR}/Xsetup.conf # integrate an analog-clock on XDM screen of X server :1 # EXTENSIONS=( "analog-clock" )
3. Implementing extensions
It is required to follow the rules below when implementing an
Xsetup
extension:
-
The extension must be non blocking, otherwise the XDM display manager will be unusable.
-
Any program started in the background by the extension must be referenced in the Xsetup processes registry by calling the function
register_process()
.
Below the list of Xsetup
variables and functions that can be useful
when implementing extensions :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IX. The desktop sessions menu
This menu :
-
is available only if
Xbuttons_bar
is configured to includes it, i.e when propertyBUTTONS_ORDER
(defined inXbuttons_bar
configuration file) includes the keywordSESSIONS
. -
allows to select a
WM
/DE
that will be started on user login. -
includes an entry for each
WM
/DE
:-
for which there is a corresponding
xinitrc
(executable) in directory specified by propertyXINITRC_FILES_DIR
defined inXbuttons_bar
configuration file. -
which is not on the blacklist specified by variable
SESSION_BLACKLIST
defined inXbuttons_bar
configuration file.
-
The selection made through the desktop sessions menu is volatile by default
(i.e. reset on logout), but can be defined as persistent (across XDM
resets
and system reboots) by turning Xbuttons_bar
's property PERSISTENT_SESSION
on.
Xbuttons_bar
communicates the selected session to Xsession
script through
the file /var/lib/xdm/xdm.<XDISP>.xsession
(XDISP
is the target X server
display name to XDM
resource name format) which is reset each time Xbuttons_bar
starts unless PERSISTENT_SESSION
is turned on.
X. How Xsession works
When Xsession
is run (after the user has logged in), it executes the
following :
-
If a session name is passed in argument (when user hit one of the session keyboard shortcuts defined in
Xresources
),Xsession
try to start it. On failure, it continues (see 2). -
If a session has been selected from the sessions menu (i.e. the file
/var/lib/xdm/xdm.<XDISP>.xsession
is not empty),Xsession
try to start it. On failure, it continues (see 3). -
Xsession
try to start the user’s session specified by variableUSR_XSESSION
. On failure, it continues (see 4). -
Xsession
try to start the system’s session specified by variableSYS_XSESSION
. On failure, it continues (see 5). -
At this point,
Xsession
runs the failsafe mode by starting the terminal emulator specified by variableFAILSAFE_TERM
. On failure,Xsession
exits.
XI. Tips and tricks
1. Howto take a screenshot of XDM
The buttons-bar includes a screenshot tool which is disabled by default. To enable it :
-
Open
Xbuttons_bar
configuration file. -
Add the keyword
SCREENSHOT
to the propertyBUTTONS_ORDER
. -
Restart
XDM
.
The screenshot tool settings are defined by the following properties (in Xbuttons_bar configuration file) :
-
SCREENSHOT_BTLABEL
-
SCREENSHOT_DELAY
-
SCREENSHOT_DIR
-
SCREENSHOT_NTFY_MSG
-
SCREENSHOT_NOW_BTLABEL
-
SCREENSHOT_CANCEL_BTLABEL
-
SCREENSHOT_TAKEN_MSG
-
SCREENSHOT_FAIL_MSG
-
SCREENSHOT_DLG_FONT
-
SCREENSHOT_ALWAYS_FULL
2. Howto change the login box background color
To change the login box background color to something like, grey, proceed as below :
-
Open the file
/etc/X11/xdm/slackware/Xresources
-
Replace :
-
xlogin.Login.background: white xlogin.Login.shdColor: #dedede xlogin.Login.hiColor: #dedede
By :
-
xlogin.Login.background: grey xlogin.Login.shdColor: grey30 xlogin.Login.hiColor: grey90
-
Replace :
-
xlogin.Login.logoFileName: /etc/X11/xdm/slackware/pixmaps/s-logo-on-white.xpm
By :
-
xlogin.Login.logoFileName: /etc/X11/xdm/slackware/pixmaps/s-logo-on-grey.xpm
3. My X server(s) tend to grow without bound over time
In this case, it might be useful to set DisplayManager.<DISPLAY>.terminateServer
to true
in /etc/X11/xdm/slackware/Xresources
.
DISPLAY
is the X server display name to XDM resource name format.
XII. Known issues
1. Multiple XDM logins, multi-screen, and nVidia
In case of Multiple XDM
logins on a system using an nvidia videocard
with 2 monitors and the proprietary nvidia driver, at startup, the 1st
XDM
login is correctly placed at the center of 1st physical display,
but, the 2nd XDM
login is placed at the center of the abstract X
screen.
This issue is automatically resolved following a login/logout on the
2nd XDM
login. It is also possible to fix that by reseting the 2nd
XDM
login (CTRL+ALT+BACKSPACE
).
This issue comes from the nvidia proprietary driver. It has neither been observed with driver nouveau , nor on systems with an videocard using a non nvidia GPU.
XIII. Credits
-
This xdm theme has been designed using informations found on archwiki (here) and scripts from:
-
archlinux package
xdm-archlinux
(at archlinux.org/packages) -
slackware package
slackware-xdm-theme
(at slackbuilds.org) -
The following wallpapers (in
/etc/X11/xdm/slackware/pixmaps
) are resized version of image found at ravefinity.comC1-Nights-Haze-Blue-2.jpg
C2-Green-Moutain-Side-2.jpg
C1-Nights-Haze-Grey-2.jpg
C2-Morning-View-2.jpg
C1-Nights-Haze-Purple-2.jpg
C2-Ocean-Side-Sunset-2.jpg
C1-Shuttleworth-Galaxy-2.jpg
C2-Precipice.jpg
C1-Steele-Star-2.jpg
C2-Sunset-Shore-2.jpg
C2-The-Rivers-Of-Cuomo-2.jpg
-
The following wallpapers (in
/etc/X11/xdm/slackware/pixmaps
) are from unknown source :Geminid-Meteor-Shower.jpg
Green-Hills.jpg
Mars-Olympus-Mons.jpg
Space-Outer-Nature.jpg
-