user specific xorg.conf?
Polytropon
freebsd at edvax.de
Mon Aug 20 00:11:41 UTC 2012
On Sun, 19 Aug 2012 15:45:28 -0600, Gary Aitken wrote:
> On 08/19/12 15:01, Polytropon wrote:
> > On Sun, 19 Aug 2012 14:38:13 -0600, Gary Aitken wrote:
> >> Combining a couple of responses into one to cut down traffic...
> >>
> >> On 08/19/12 11:51, Polytropon wrote:
> >>> On Sun, 19 Aug 2012 11:44:15 -0600, Gary Aitken wrote:
> >>>> In attempting to zero in on my system crash problem,
> >>>> I need to customize xorg.conf.
> >>>> As I read the documentation,
> >>>> there is no way for an ordinary user to provide an xorg.conf;
> >>>> Xorg looks for files in the normal server search path,
> >>>> which does not include any user directories --
> >>>> unless the user is root.
> >>>
> >>> What if you do (as a user) the "startx" command and try
> >>> to hand the -config <file> to the program, like this:
> >>>
> >>> % Xorg -file /home/user/test/xorg.conf
> >>>
> >>> I haven't tried that myself, but according to "man Xorg"
> >>> this option does exist. However, I'm not sure if xinit
> >>> or startx honors this option if you use them (to make
> >>> use of ~/.xinitrc).
> >>
> >> According to the man page:
> >> "This option will work for any file when the server is run as root
> >> (i.e, with real-uid 0),
> >> or for files relative to a directory in the config search
> >> path for all other users."
> >> The config search path only includes system directories, not user directories.
> >
> > Read: "config search path". In my interpretation, this applies
> > to _path names_ in where config files (default name: xorg.conf)
> > will be searched. This does _not_ contradict to explicitely
> > naming a _file_ as in:
> >
> > % X -config /home/someuser/test/xorg.conf
> >
> > It could also be possible to give the file a totally different
> > name. However, the X server might refuse to use that file. You
> > could easily try it. I have prefixed the example with "%" indicating
> > that this command could be executed from a user (non-root) terminal,
> > just the same way you would usually call
> >
> > % xinit
> >
> > or the
> >
> > % startx
> >
> > script to benefit from the ~/.xinitrc startup file. Also you
> > could try to add the -config option to the two commands mentioned.
> > I haven't looked into their specific implementation on if and how
> > they will allow X parameters to be included.
>
> I thought about that path vs file distinction;
> looks like my original interpretation was correct:
>
> %startx -- -config ~/xorg.conf
> Fatal server error:
>
> Invalid argument for -config
> For non-root users, the file specified with -config must be
> a relative path and must not contain any ".." elements.
> Using default xorg.conf search path.
>
> Please consult the The X.Org Foundation support
> at http://wiki.x.org
> for help.
>
> xinit: giving up
> xinit: unable to connect to X server: Connection refused
> xinit: server error
Interesting. Your path ~/xorg.conf does not contain ".." elements.
Have you tried specifying a full path (e. g. one containing your
username, just in case ~ could not be properly resolved)?
> >> Again, I think that is for security reasons, but I'm not certain.
> >
> > Primarily it is, but also about complexity. Imagine the X server
> > would scan the whole (!) directory structure, beginning in /, to
> > find a valid configuration file...
>
> I assumed if no user directories were in the search path,
> you would have to specify a complete path, not a relative one.
> I never expected it to search all possible paths.
> I was surprised to see that no user directories are in the default path,
> but upon reflection decided it was probably because of security concerns.
How could it be possible to have user directories in the _default_
search path when X doesn't know which users actually have an
account on the system, and where their home directories are
located?
However, when we can assume that
# X -config /root/xorg.conf.new
works, we could assume that
# X -config /home/foo/xorg.conf
could also work. This example shows running X directly as root.
The next step would be to login as "foo" and then performing
% X -config /home/foo/xorg.conf
from the "foo" user account.
Again to take the error message
> For non-root users, the file specified with -config must be
> a relative path and must not contain any ".." elements.
> Using default xorg.conf search path.
into account: If ~/xorg.conf (where ~ equals /home/foo) is
considered _not_ being a relative path, how about
% X -config ./xorg.conf
or even
% X -config xorg.conf
bein executed when the current directory is /home/foo - here
the requirements "relative directory" and "no .." are met by
omitting any path elements.
Finally, if you're going to experiment with X, do it with
using /etc/X11/xorg.conf. You can easily maintain different
versions of the file and then using a symlink to indicate
which one you want to try. So you can "switch back" to
previous versions. For example, you have
xorg.conf;1
xorg.conf;2
xorg.conf;3
xorg.conf;4
xorg.conf;5
xorg.conf;6
xorg.conf;7
and a symlink
xorg.conf@ -> xorg.conf;6
points to the version you want to use. I know this looks stupid,
but it works. :-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list