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[0] 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: http://www.unix.com/man-page/debian/1/lightdm/ 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: NAME lightdm - a display manager SYNOPSIS lightdm [ OPTION ] DESCRIPTION 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: FILES /etc/lightdm/lightdm.conf Configuration /etc/lightdm/users.conf User list configuration (if not using Accounts Service) /etc/lightdm/keys.conf XDMCP keys 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?