Until recently I've always booted linux at level 3 (text only), and then used
'startx' to run X, with ~/.xinitrc starting default xterm, clock etc. then
invoking ctwm near the end. I then repeatedly hibernate and resume witout
rebooting (sometimes for weeks or months).
After installing F20 I decided to try making ctwm available at the login screen
as an alternative to xfce and openbox (which was my fallback before I had ctwm
installed), using a tip posted on this list by Stefan Monnier on Mon, 5 May
2014
He pointed out that /usr/share/xsessions/ could specify options.
Mine already had two files, (openbox.desktop xfce.desktop) so, after examining
their contents, I added a third one:
ctwm.desktop
containing:
[Desktop Entry]
Name=Ctwm
Comment=Log in using the ctwm window manager (without a session manager)
Exec=$HOME/.xinitrc
Icon=
Type=Application
The crucial thing in my ~/.xinitrc file, apart from starting some xterms, a
clock, and using xmodmap to alter keyboard settings, are
pulseaudio --start
~/bin/alps
(which uses 'synclient' to make my touchpad work nicely).
then
ctwm
or, if you want to be able to kill and restart ctwm
ctwm &
followed by xmessage or something that stops X11 exiting, and can be clicked on
to terminate the X session.
To my surprise that seems to give me exactly the environment I previously
generated from a non-graphical login using startx. I suspect doing it the new
way may have some benefits because the system does more than I used to!
(E.g. I have not tested to see if the invocation of pulseaudio is still
necessary.)
I have never liked file manager icons, control panels and other such things
cluttering up the workspace (apart from ctwm iconmanager and workspacemanager
both of which I use a lot -- and can specify were I want them).
I expect the .xinitrc file could invoke xfce-panel or lxpanel or someting
similar, if desired. I find that ctwm's menu systems and function-key actions
provide all the functionality I need without extra clutter.
I may have missed out steps required by a session manager, but have no idea what
I may be missing. The use of pm-hibernate (or pm-suspend for shorter periods)
seems to provide whatever a session manager might provide?
Aaron