You are not logged in.
yes. dropping the tty1 check was intentional (prevents unauthorized users from gaining terminal access). the user might run cdm, but they don't have access to change the binary, the rc file or the profile, and they can't force kill the application... it's fairly secure from your average user. I might add an option to allow users to set their own themes though...
o_O whats the purpose on this? i dont get it. what prevents a user from running xterm from their DE? whats so disastrous about having a user being able to access a terminal. if he wants to, he will do it. and if he doesnt want to, he will have the option disabled in the first place
my 2c
Offline
Consider it partially a type of security through obscurity, partially a type of convenience... I added it because my wife neither needs nor wants access to the terminal hence, there's not menu option for it and there's no run option on her desktop. i taught her that if she wants to log in and my desktop is locked, she should just hit ctrl+alt+f1 and login. BUT... given how much time i spend screwing around with my system, sometimes tty1 is in use by N program, so she can just hit ctrl+alt+fN and try a different one. If you prefer to only have it displayed on tty1, adding the check back to the profile script is easy enough. At some point, I might add a check that allows that to be configured as well.
Offline
Offline
Just wanted to confess that http://cdm.ghost1227.com is the single most inspiring web site I ever met during the last years, a brilliant vision of what the internet could have become if only $COMPANY didn't $SIN. That is, until you type startx ...
Offline
Ghost1227, recently I sent you a mail with my jabber account because i want to discuss integration with microde and stuff. did you see it?
< Daenyth> and he works prolifically
4 8 15 16 23 42
Offline
I found a pretty major typo in /usr/bin/cmd -
line 228
if [[ ${wm_bin} == "gnome-session" ]]; then
exec ck-launch-session bash --login -c "startx /usr/share/cdm/xinirc "$wm_bin" -- ${serverargs} &> /dev/null" &
Offline
I'm having some trouble (both before and after version 0.5):
I have my .xinitrc and xorg.conf configured such that when I simply type 'startx', it puts me right into gnome and everything works fine. With cdm, it seems no matter what I do I just get a blank screen. I know that X has started up, since I can see my resolution changing, but no gnome (I have to switch to a tty and kill X). The binary I have listed in cdmrc is gnome-session, and I have tried almost every possible set of options in cdmrc (including the option to use ~/.xinitrc rather than /usr/share/cdm/xinitrc) . Eventually what I have done is edit /usr/bin/cdm and find the line that starts up X, stripping it down to just
startx &> /dev/null &
and removing any other options. Everything works perfectly now, but the solution isn't very ideal. I'd appreciate some help troubleshooting this
Offline
Can you post (a link to) your /etc/cdmrc and your ~/.xinitrc. I know you say you're having trouble with many different combination of options, but still it'd be helpful to see. Also your /etc/profile.d/zzz-cdm-profile.sh (it's named something like that, I don't remember the exact name off the top of my head).
Offline
Offline
cdmrc: http://pastebin.com/pastebin.php?dl=m574af2d7
~/.xinitrc: http://pastebin.com/pastebin.php?dl=m709c796d
zzz-cdm-profile.sh: http://pastebin.com/pastebin.php?dl=m25ce0bff
Offline
In ~/.xinitrc, you might want to replace the bare "gnome-session" with "$1". That would enable cdm to request the same xinitrc file to be able to launch different wms, if you should ever happen to want to use them. This wouldn't fix any immediate problem though, even if you were using the xinitrc. Plus, as your /etc/cdmrc is currently, you're not even using the xinitrc.
I have no insight yet into what's causing your problem. Can you try re-installing xorg-xinit to make sure your startx is the factory version, and re-install cdm (which version are you using? the current git?) so we have a clean base to start from. Then set up /etc/cdmrc to your needs, and add a "set -x" near the end of /usr/bin/cdm so we can see exactly what commands are being executed. Sorry not to offer some more direct fix, but I don't yet see enough to suggest what the problem might be.
Offline
Eventually what I have done is edit /usr/bin/cdm and find the line that starts up X, stripping it down to just
startx &> /dev/null &
and removing any other options.
cdm by default would be using something like this here instead:
nohup startx $wm_bin -- ${serverargs} &> /dev/null &
Let's think through what might be the relevant difference with what you say is working for you. I don't think the nohup should matter, but it'd helpful for you to test putting a nohup in front of your startx and report whether that breaks things for you.
wm_bin at this point should be "some_xinitrc_file_either_yours_or_cdms your_wm_ie_gnome_session". serverargs at this point should be ":0 -nolisten tcp -dpi 96 vt7".
So at this point you're in essence calling:
nohup startx thexinitrcfile gnome_session -- :0 -nolisten tcp -dpi 96 vt7 &> /dev/null &
You can verify that by putting a "set -x" somewhere before the startx call in cdm and checking the output in your console. If you find the screen clears before you can read it, then git rid of the non-printable chars in your /etc/issue (they're responsible for clearing your screen when a login prompt is displayed). Or add some command to pause at the end of cdm before quitting, like "sleep 10" or "read -p 'continue? '".
Now as I said one thing to try is just see whether nohup is breaking anything for you. Another branch we can explore is whether this startx line contains anything problematic for you. We can test this using the console alone, without invoking cdm. You say just typing startx from the command line is ok for you, what about:
startx ~/.xinitrc gnome_session -- :0 -nolisten tcp -dpi 96 vt7
from your command line? Is that also ok? It should start an X server on vt7 using display :0, with the arguments -nolisten tcp -dpi 96, and execute your ~/.xinitrc file, passing it the argument gnome_session. The ~/.xinitrc file you posted ignores what argument it's been passed, but it execs gnome_session anyway, so this should be ok. It could be that this all works for you on the command line but not when run from cdm, because there are some subtle differences there. But I expect that this will break for you too. You can start pulling things out to see what's ok and what's not. Start by eliminating the "-dpi 96" and see whether that fixes things.
Offline
This is really strange.
nohup startx ~/.xinitrc gnome-session &> /dev/null &
works fine, but as soon as I add any options after -- the problem occurs. I'm going to try clearing serverargs in cmdrc.
Offline
Huh. That's funny. (If you're troubleshooting from the command line, you don't need the "nohup" or the "&> /dev/null &".)
I'm not surprised that things might work better for you if you leave off, say, the "-dpi 96". But I am surprised that you'd have problems even when you say, from the command line:
startx ~/.xinitrc gnome-session -- :0
or
startx ~/.xinitrc gnome-session -- :0 vt7
Did you reinstall xorg-xinit? I'm going to look at the source again for startx (for the tenth time).
Offline
thanks for all your help!
if I set serverargs="", the problem still occurs. If I remove -- {$serverargs} from /usr/bin/cdm, the problem does not occur.
I will reinstall xorg-xinit right now and report back.
Offline
Do you have any file at ~/.xserverrc? If so, post it. If not, post the contents of your /etc/X11/xinit/xserverrc.
EDIT: Also do the startx commands with -- blah blah afterwards that I posted just above work from the commandline? It'll help figure out what's going on if we get it working right at the command line first, then bring cdm back into the equation afterwards.
Last edited by Profjim (2010-01-27 01:19:45)
Offline
$ cat /etc/X11/xinit/xserverrc
exec /usr/bin/X -nolisten tcp
reinstalling xorg-xinit didn't help (I used pacman -Rd xorg-xinit and then pacman -S xorg-xinit)
it looks like the reason that clearing serverargs in cdmrc didn't help is because the variable is set again in /usr/bin/cdm
I was testing the command from the command line, so no it does not seem to work if there is anything after -- on the command line
Last edited by jnjackins (2010-01-27 01:25:12)
Offline
That is bizarre. You can look at the source of startx yourself. It sure looks to me like calling:
startx ~/.xinitrc gnome-session -- /usr/bin/X :0 -nolisten tcp
should be the same as calling any of these, given the contents of your /etc/X11/xinit/xserverrc and your ~/.xinitrc:
startx ~/.xinitrc gnome-session -- :0 -nolisten tcp
startx gnome-session -- :0 -nolisten tcp
startx gnome-session -- -nolisten tcp
startx gnome-session -- :0
startx ~/.xinitrc gnome-session -- :0
startx gnome-session
startx ~/.xinitrc gnome-session
startx ~/.xinitrc
and so on. Yet you say only the last few are working for you, and the others aren't. I'm baffled. What I would do at this point is add a "set -x" line at the start of the startx script (it's probably at /usr/bin/startx) and choose one of the lines above, for example:
startx ~/.xinitrc gnome-session -- /usr/bin/X :0 -nolisten tcp
and inspect the exact commands that get run. Then inspect what happens when you run:
startx ~/.xinitrc gnome-session
Doesn't that end up calling at the end:
xinit /path/to/your/.xinitrc gnome-session -- /etc/X11/xinit/xserverrc
(perhaps with an "-auth <file>" at the end). And the xserverrc will run exactly "/usr/bin/X -nolisten tcp". So what's going wrong?
All of this is supposed to work as I'm describing it, and does work for me.
Are you sure you've got no X server already running on :0. What if you try changing :0 to :1 or :2, does that work better?
EDIT: I don't know if I'm going to be able to help you figure out what's going wrong, but rather than continuing to fill this thread with back-and-forths, perhaps you should email me directly (use the Email link at left). Then you can report back to the thread whether we succeed or fail...
Last edited by Profjim (2010-01-27 03:40:36)
Offline
Hi! I really like CDM, but I have some questions:
-I'm using openbox, is there a way to close it and get back to your menu?
-if I reboot the system with a sudo shutdown -r now, is there a way to see the daemon killing list instead of the getty login?
Insurgo ut patria resurgat!
Offline
Well, I fixed it:
I compared the output to stderr of
startx
to that of
startx -- -dpi 96
(-dpi option chosen at random), and the interesting stuff that occurred in the output of the second command but not the first was this:
..
No protocol specified
..
No protocol specified
..
No protocol specified
.error setting MTRR (base = 0xd0000000, size = 0x10000000, type = 1) Inappropriate ioctl for device (25)
I cross-searched "No protocol specified" and "startx" and came across this, which talks about deleting .Xauthority files. I then realized that I had reinstalled arch recently while preserving my home partition, and probably had neglected to clean these up. Sure enough, deleting all files beginning with .Xauthority solved the problem.
Thanks again profjim for all the help!
Last edited by jnjackins (2010-02-10 05:25:06)
Offline
Interesting. Thanks for reporting back.
Offline
since cdm 0.4.1 ive frozen my updates due to some modifications ghost would not like to see in his code. i understand it.
now im proposing a new modification, which would solve some environmental issues ive been having, and adhering more tightly with the arch way (users must configure packages themselves after installing them).
instead of running the helper script zzz-cdm-profile.sh through /etc/profile.d, i moved its contents into ~/.bash_profile, right after sourcing .bashrc
this idea came to me after reading the AUR comment from a user complaining the package had configured itself.
just a small thought.
another feature i would like to see is a no-menu feature. where right after loging in, X starts with the DE of the user's choice.
what do you think ghost?
Offline
// wrong thread
Last edited by sebcactus (2010-02-22 20:13:30)
Offline