[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

customize Debian 11 evironment in lightdm (and in general?)



Hello,

I'm trying to customize my user environment when using the lightdm
display manager (then the LXDE desktop environment)

I need to customize some variables so I can see Guix installed
applications in my desktop menu, in particular I need to customize
XDG_DATA_DIRS and XDG_CONFIG_DIRS

I set up configuration files according to this "Quick Guide" chapter in
the "Environment Variables" wiki page:
https://wiki.debian.org/EnvironmentVariables#Quick_guide

This is my ~/.profile:

--8<---------------cut here---------------start------------->8---

### Guix settings
#
# add Guix current path
export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH"
# Locale path
export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
# add Guix infopath
export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
# set default Guix profile
export GUIX_PROFILE="$HOME/.guix-profile"
# source default Guix profile
. $GUIX_PROFILE/etc/profile

--8<---------------cut here---------------end--------------->8---

and this is my ~/.xsessionrc:

--8<---------------cut here---------------start------------->8---

if [ -f ~/.profile ]; then
    . ~/.profile
fi

export XSESSION_WAS_HERE="Yes"

--8<---------------cut here---------------end--------------->8---

When I log in via lightdm to an LXDE session, I open LXterminal to check
my environment and I find:

--8<---------------cut here---------------start------------->8---

patrizia@raifort:~$ env | grep XDG
XDG_CONFIG_DIRS=/etc/xdg
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_MENU_PREFIX=lxde-
XDG_DATA_HOME=/home/patrizia/.local/share
XDG_CONFIG_HOME=/home/patrizia/.config
XDG_SEAT=seat0
XDG_SESSION_DESKTOP=lightdm-xsession
XDG_SESSION_TYPE=x11
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/patrizia
XDG_CURRENT_DESKTOP=LXDE
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_VTNR=7
XDG_SESSION_ID=2
XDG_RUNTIME_DIR=/run/user/1001
XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/

patrizia@raifort:~$ systemctl --user show-environment | grep XDG
XDG_RUNTIME_DIR=/run/user/1001
XDG_DATA_DIRS=/home/patrizia/.guix-profile/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/patrizia
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=lightdm-xsession
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11

--8<---------------cut here---------------end--------------->8---

As shown above, the "env" result and the "systemctl --user
show-environment" are slightly different, in particular I'm missing
XDG_DATA_DIRS as configured in my ~/.profile

If in the LXTerminal I start a login bash shell with "bash -l" I get:

--8<---------------cut here---------------start------------->8---

patrizia@raifort:~$ env | grep XDG
XDG_CONFIG_DIRS=/etc/xdg
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_MENU_PREFIX=lxde-
XDG_DATA_HOME=/home/patrizia/.local/share
XDG_CONFIG_HOME=/home/patrizia/.config
XDG_SEAT=seat0
XDG_SESSION_DESKTOP=lightdm-xsession
XDG_SESSION_TYPE=x11
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/patrizia
XDG_CURRENT_DESKTOP=LXDE
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_VTNR=7
XDG_SESSION_ID=2
XDG_RUNTIME_DIR=/run/user/1001
XDG_DATA_DIRS=/home/patrizia/.guix-profile/share:/home/patrizia/.guix-profile/share:/home/patrizia/.guix-profile/share:/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/

patrizia@raifort:~$ systemctl --user show-environment | grep XDG
XDG_RUNTIME_DIR=/run/user/1001
XDG_DATA_DIRS=/home/patrizia/.guix-profile/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/patrizia
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=lightdm-xsession
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11

--8<---------------cut here---------------end--------------->8---

Now the XDG_DATA_DIRS is fine.

The problem is that the lightdm (and LXDE) XDG_DATA_DIRS is missing
"/home/patrizia/.guix-profile/share" and this is the reason why
applications installed with Guix are not listed in my menu.

I searched extensively on the web how to fix this issue but I was not
able to find the cause and related "workaround".

I see that similar problems are described in this bugs:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927907
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931776

Please is there a way to fix my problem?

Is there a way to customize my environment in a standard way that works
with all display managers and desktop environments?

Thank you for your help!

Happy hacking, Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures

Attachment: signature.asc
Description: PGP signature


Reply to: