From owner-freebsd-questions@FreeBSD.ORG Tue Nov 26 02:57:29 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C83396DB for ; Tue, 26 Nov 2013 02:57:29 +0000 (UTC) Received: from mx01.qsc.de (mx01.qsc.de [213.148.129.14]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6A15E2B92 for ; Tue, 26 Nov 2013 02:57:29 +0000 (UTC) Received: from r56.edvax.de (port-92-195-106-241.dynamic.qsc.de [92.195.106.241]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx01.qsc.de (Postfix) with ESMTPS id F2F583E033; Tue, 26 Nov 2013 03:57:20 +0100 (CET) Received: from r56.edvax.de (localhost [127.0.0.1]) by r56.edvax.de (8.14.5/8.14.5) with SMTP id rAQ2v6KM002022; Tue, 26 Nov 2013 03:57:06 +0100 (CET) (envelope-from freebsd@edvax.de) Date: Tue, 26 Nov 2013 03:57:06 +0100 From: Polytropon To: Yuri Subject: Re: What is the "thinnest" display manager available? Message-Id: <20131126035706.a04de661.freebsd@edvax.de> In-Reply-To: <5293C1D4.3010608@rawbw.com> References: <5293C1D4.3010608@rawbw.com> Organization: EDVAX X-Mailer: Sylpheed 3.1.1 (GTK+ 2.24.5; i386-portbld-freebsd8.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: FreeBSD Questions X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list Reply-To: Polytropon List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Nov 2013 02:57:29 -0000 On Mon, 25 Nov 2013 13:32:04 -0800, Yuri wrote: > I want to have as few packages installed as possible, and I want to use > small window manager (dwm). But what is the thinnest display manager > available? I know kdm and gdm both work, but both pull a ton of > dependencies which I don't want. I'd say the classic xdm won't be a bad choice: it's common, secure, easy to use, and fast. If you're using WindowMaker for one or more accounts on your system, maybe wdm isn't a bad choice. However, xdm and wdm are started by an entry in /etc/ttys. > Features required: > * automatic start (through /etc/rc.conf) > * automatically run xorg and window manager of choice > * automatically login a particular user > * not many or no dependencies > > What is the smallest display manager that qualifies? If I understand your requirements correct, "no display manager" would be a possible answer. You want to automatically login a particular user? You don't even need a display manager then. A display manager works similarly to login: ask for a user name and a password, then run the appropriate startup shell and scripts. For auto-login, this is not required. > Or maybe there is an easy way to run xorg + WM with some simple shell > script? Anything like this ready to use? Everything for this task is present in the base system, it just requires a few steps. I'll provide a little howto in case this is what you need (refactored from an earlier post I wrote to that list). Step 1: In /etc/gettytab, autologin:\ :al=:tc=Pc: is to be placed _after_ the "default:" entry. This step defines the "getty profile" for an automated login with the username "olivares" as associated to the "al=" parameter. Also note the "tc=" parameter which incorporates the default "Pc" settings (that you can encounter in the next step's working file). Here, is the user you want to be logged in automatically. Step 2: In /etc/ttys, the line for ttyv0 is to be changed like this: ttyv0 "/usr/libexec/getty autologin" cons25l1 on secure This instructs the "getty" program to use the "autologin profile" at system startup and automatically log in the user (see step 1). Attention: Maybe you need a different console configuration; "cons25" is the system's default. In Germany, I have to use cons25l1 for the local magic. :-) Make sure you _don't_ have a line calling xdm here - maybe this causes conflicts. Step 3: In /home/ (or where $HOME is located for that user), make ~/.login end in [ ! -f /tmp/.X0-lock ] && startx For bash, this would go to ~/.bash_login. Other shells may have different startup files; see "man sh", "man csh", "man bash" and "man " for details. To become independent from the actual login shell, you can write this command into a script that is executable by the user, e. g. "chmod +x /opt/bin/autostartx"; if you have /opt/bin in $PATH, you just need to call "autostartx" in the correct startup file. Then _any_ shell startup script could contain the call that script, like this: #!/bin/sh [ ! -f /tmp/.X0-lock ] && startx exec $0 You can also make this script local to your user in ~/bin, maybe you already have that in $PATH. Attention: This _might_ get you into an "infinite loop" if something is _really_ wrong. :-) You can even modify the script to _restart_ X if it should have crashed, so you don't fall back to the console in case of a severe error (and enter "startx" again). Step 4 (optional): In order to combine the use of xdm (or other DMs) and the different system shells, for your user account there can be some additional settings. In ~/.xsession, put #!/bin/csh source ~/.cshrc exec ~/.xinitrc This file will be executed in case xdm is used. I am using the C shell as a dialog shell here, so this makes sure my shell settings get incorporated. Then control will be given to the .xinitrc file, usually executed when you run "startx", but xdm _may_ have a different opinion. In ~/.xinitrc, put all your X startup stuff. #!/bin/sh [ -f ~/.xmodmaprc ] && xmodmap ~/.xmodmaprc #xrandr --fb 1400x1050 #xrandr --size 1400x1050 intclock -geometry 186x65+151-0 & xload -geometry 150x70+0+826 -bg white -fg black -hl gray \ -scale 5 -label "System load" -update 1 & xmbmon -g 150x100+0+897 -tmin 20.0 -tmax 70.0 -cmtmb CPU \ -cltmb blue -cmtcpu CS -cltcpu cyan -cmtcs SYS \ -cltcs green -vmin 2.0 -vmax 3.0 -cmvc V -clvc red & xclock -geometry 50x50+50+998 & xbiff -geometry 50x50+0+998 & xlogo -geometry 50x50+100+998 -render & xcpufreq -geometry 183x167+151+826 -cpuscalecolor grey \ -freqscalecolor grey -scales 6 -update 1 -jumpscroll 1 & xterm -geometry 80x25+0+465 -class NOCLOSE_TERMINAL -fg black \ -bg beige -title Terminal & xsetroot -solid rgb:3b/4c/7a xset b 100 1000 15 & xset r rate 250 30 & xset s off & xset -dpms & exec wmaker The first line (#!) is optional. I'm not fully sure if those files have to be +x attributes (I _have_ those settings, no idea where they came from and why they are still here). But it works, so I don't question it. :-) The last line, "exec", contains the call to the desired window manager. Maybe the file just needs to be as short as maybe #!/bin/sh exec startxfce4 to do everything you need. -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...