summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Egenton <tegenton@splattim.me>2021-12-07 09:15:18 -0500
committerAlan Coopersmith <alan.coopersmith@oracle.com>2022-10-24 22:55:02 +0000
commit4e66c0bf2b5751e113ad3aba79891608f7e883e2 (patch)
tree4550f9aba2767fbabf56b0be6da05325485912bc
parent0ea1ec1ed445235cdba9e54e71023d5a82feed6b (diff)
downloadxorg-app-xinit-4e66c0bf2b5751e113ad3aba79891608f7e883e2.tar.gz
startx: Source XINITRC and XSERVERRC variables
Fix issue #14 Check XINITRC and XSERVERRC, if those files do not exist then just use ~/.xinitrc and ~/.xserverc as normal. Signed-off-by: Tim Egenton <tegenton@splattim.me>
-rw-r--r--man/startx.man24
-rw-r--r--startx.cpp13
2 files changed, 30 insertions, 7 deletions
diff --git a/man/startx.man b/man/startx.man
index 2b894f7..2fe952d 100644
--- a/man/startx.man
+++ b/man/startx.man
@@ -71,7 +71,10 @@ startx \-\^\- \-layout Multihead
.PP
To determine the client to run,
.B startx
-first looks for a file called
+first checks the environment variable
+.I XINITRC
+for a filename. If that variable is unset, or does not contain a filename,
+it looks for a file called
.I .xinitrc
in the user's home directory. If that is not found, it uses
the file
@@ -85,7 +88,10 @@ behavior and revert to the
behavior.
To determine the server to run,
.B startx
-first looks for a file called
+checks the environment variable
+.I XSERVERRC
+for a filename. If that variable is unset, or does not contain a filename,
+it looks for a file called
.I .xserverrc
in the user's home directory. If that is not found, it uses
the file
@@ -161,6 +167,20 @@ for the local host. See the
and
.IR Xsecurity (__miscmansuffix__)
manual pages for more information on X client/server authentication.
+.TP 25
+XINITRC
+This variable should contain the location of an xinitrc file. If unset,
+.I $(HOME)/.xinitrc
+or
+.I __xinitdir__/xinitrc
+will be used.
+.TP 25
+XSERVERRC
+This variable should contain the location of an xserver file. If unset,
+.I $(HOME)/.xinitrc
+or
+.I __xinitdir__/xserverrc
+will be used.
.SH FILES
.TP 25
.I $(HOME)/.xinitrc
diff --git a/startx.cpp b/startx.cpp
index 7ed38db..dfbebe1 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -2,11 +2,12 @@ XCOMM!SHELL_CMD
XCOMM
XCOMM This is just a sample implementation of a slightly less primitive
-XCOMM interface than xinit. It looks for user .xinitrc and .xserverrc
-XCOMM files, then system xinitrc and xserverrc files, else lets xinit choose
-XCOMM its default. The system xinitrc should probably do things like check
-XCOMM for .Xresources files and merge them in, start up a window manager,
-XCOMM and pop a clock and several xterms.
+XCOMM interface than xinit. It looks for XINITRC and XSERVERRC environment
+XCOMM variables, then user .xinitrc and .xserverrc files, and then system
+XCOMM xinitrc and xserverrc files, else lets xinit choose its default.
+XCOMM The system xinitrc should probably do things like check for
+XCOMM .Xresources files and merge them in, start up a window manager, and
+XCOMM pop a clock and several xterms.
XCOMM
XCOMM Site administrators are STRONGLY urged to write nicer versions.
XCOMM
@@ -47,9 +48,11 @@ export PATH
#endif
userclientrc=$HOME/.xinitrc
+[ -f "${XINITRC}" ] && userclientrc="${XINITRC}"
sysclientrc=XINITDIR/xinitrc
userserverrc=$HOME/.xserverrc
+[ -f "${XSERVERRC}" ] && userclientrc="${XSERVERRC}"
sysserverrc=XINITDIR/xserverrc
defaultclient=XTERM
defaultserver=XSERVER