On Wed, Sep 21, 2016 at 09:19:11PM -0500, David Wright wrote:
> But I don't understand the concept of "user configuration" for a DM.
> Wouldn't that be like a user configuring /etc/issue, the login prompt
> or /etc/motd ?
By user configuration, I mean "which files can the user edit, without
superuser privileges, to alter the behavior of the program".
> Are you perhaps talking about which file,
> like .xsession, .xsessionrc, .Xsession, .xinitrc, etc gets executed
> when you login through the DM?
Yes, precisely this question. What can an end user, who uses one of
the various display managers and desktop environments in Debian, do
to configure their own environment? Hell, just start with the $PATH
variable. That's what 90% of the people asking this question want to
modify -- well, that or some other environment variable with the word
PATH or HOME in it, like JAVA_HOME.
Why is it *so impossible* to find out how to set an environment variable?
Everything is so much simpler when you don't use a display manager.
You login on the console (getty + login), which sets some variables,
all of them well documented in man pages, and then executes your shell as
defined in passwd(5) with a leading '-' to mean "this is a login shell".
Then, the behavior of the shell when argv begins with '-' is well
documented in the shell's man page. Everyone knows how it works, and
everyone knows how to change its behavior. I can describe *every single
process* in the chain, and I know what *every one* of them does and which
files it reads; or if I don't have every configuration file memorized,
then at least I know which document I can read to find the list of them.
With lightdm (for example), nobody knows how to change its behavior,
or even how to *understand* its behavior. There's no starting point in
any piece of documentation that tells you what's happening, or how and
where you can intervene in the chain of events.
What's worse is none of the experts who are typically able to answer
questions about this kind of thing knows how to answer. We don't *use*
these things! And where we would normally be able to crack open a
man page to find the answer, there are no answers! When we do Google
searches, there are *still* no answers! This creates a gap between the
expert users and the novice users, and it's getting worse every year.
At this point, when a user running *dm and *DE asks some question about
their login environment, they might as well be running Microsoft Windows
for all the help I can give them. All I can do is sit there and watch,
hoping that some day, *someone else* will come along with a magic starting
point from which answers can be determined. It hasn't happened yet.
> I'm not a DE or DM user, so I'm know very little about them.
Yes, THIS is the problem! You, and I, and everyone else on the guru side
are just completely stumped.
When the answer to "how do I run a thing at login" changes from "put
foobar& in your .xsession shell script before the exec wm" to "somewhere in
your home directory is a whole new kind of file with a .desktop extension
which isn't a shell script but a totally new thing that you have to
learn from scratch..." the immediate response is "to hell with that,
I'm going back to startx + fvwm". So we stick with the old, simple
things that work and are understandable and don't take up 700 MB of
disk space, and nobody with a *brain* learns the new stuff.
When the answer to "how do I set an environment variable at login" changes
from "put export FOO=bar in your .bash_profile" to "uh... well... there's
nothing in man lightdm, so let's check google... oh, no, I... just don't
see how to do it" then something is completely *broken*.
Don't believe me? I know none of us has lightdm installed, so here is
a man page, allegedly from Debian wheezy:
It takes several tries for me even to find *that*, probably because the
manual is so ashamed of itself that it runs and hides when the Google
crawler approaches. Behold this glorious tome of wisdom:
lightdm - a display manager
lightdm [ OPTION ]
lightdm is a display manager.
That's it! That is the *entire documentation*, apart from a list of
options (none of which can be modified by an end user, of course),
and then a list of three configuration files:
User list configuration (if not using Accounts Service)
This is what we're dealing with. "lightdm is a display manager."
What does that MEAN? What does it DO? People type their passwords into
this thing, and *this* is its official user manual? Is this a *joke*?
What happens AFTER you type your username and password? What files does
it read AFTER the password, not before! Who CARES what it does before!
What PROCESSES does it execute? When does it switch effective UID from
root to user?