On 14Sep2021 15:36, Lucio Chiappetti <[email protected]> wrote:
>I am migrating (actually, configuring a new PC) from opensuse 42.3 to 
>xubuntu 20.04.3. In particular I would like to clone my fvwm 
>configuration (since I have a screen of the same size), the one in 
>http://sax.iasf-milano.inaf.it/~lucio/WWW/Opinions/window.html
>
>What I am noticing (which is probably not directly related fvwm itself 
>but to the way it is started with the X server) is that the fvwm 
>session does not run my .login (I am since ages a tcsh user, so I have 
>a .cshrc and a .login).    Such .login is executed correctly in a ssh 
>session.
>
>The .login has few items (a PATH setting, a font path xset +fp setting 
>(plus other audio stuff so far commented out) which is conditional to 
>a $?XSESSION_IS_UP, and a setenv of some locale like LC_TIME to 
>en_US.UTF-8)
>
>Apparently ALL of the .login is not executed

This is pretty normal. The display manager is running fvwm as your 
"session", so it starts it directly without using a shell at all.

This is generally safer because many shell startups have some tty 
interaction which doesn't make sense in a batch environment (the 
headless process of running fvwm in a GUI directly).

My long standing approach has been to have a .xsession file specifying 
my desktop session. Mine is this:

    #!/bin/sh
    . /etc/profile
    . $HOME/.profile
    exec $HOME/rc/x11/session

To make your startup easier you'd want a tcsh based script, something 
like:

    #!/usr/bin/tcsh
    source /etc/login
    source $HOME/.login
    exec fvwm

(Untested, and I am not a csh user so the syntax may be a bit 
incorrect.)

In my setups I have environment setting in .profile and interactive 
stuff in .zshrc (or .bashrc, or .cshrc for you as a tcsh user). So the 
session script sources the .login (environment setting) but _not_ the 
.cshrc (interactive things).

To recap, a "text terminal then startx" style login goes:

    - login tcsh
    - start x11, your environment is already set up

An XDM (et al) style login goes:

    - X11 active
    - run .xsession
    - - source .login etc
    - - execute fvwm as the session, so that the logout happens when 
      fvwm logs out

Just a different ordering.

>(not just the part relevant to XSESSION_IS_UP ...by the way what is 
>the correct way in ubuntu to check I am in an X session ?)

I check that $DISPLAY is not empty, and maybe do an:

    xdpyinfo >&/dev/null

as an additional check. In Bounre shell that might be like this:

    if [ -n "$DISPLAY" ] && xdpyinfo >/dev/null 2>&1
    then
        ... x11 stuff here ...
    fi

You'll have to adjust for csh.

Cheers,
Cameron Simpson <[email protected]>

Reply via email to