~/.gnomerc is not loaded anymore at startup

Bug #1895781 reported by Kentaro
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
gnome-session (Ubuntu)
Confirmed
Low
Unassigned

Bug Description

I have clean-installed Focal and configured to run X.org server instead of Wayland, and found that the ~/.gnomerc is not loaded anymore.

In /etc/X11/Xsession.d/55gnome-session_gnomerc, it tries to load ~/.gnomerc but it fails because of the change of the gnome-session's startup process.

Let's see this part of the 55gnome-session_gnomerc:

BASESTARTUP=${STARTUP%% *}
BASESTARTUP=${BASESTARTUP##*/}
if [ "$BASESTARTUP" = x-session-manager ]; then
    BASESTARTUP=$(basename $(readlink /etc/alternatives/x-session-manager))
fi
case "$BASESTARTUP" in
  gnome-session*)
    GNOMERC=$HOME/.gnomerc
    if [ -r "$GNOMERC" ]; then
      . "$GNOMERC"
    fi

In Bionic, at the time of launching 55gnome-session_gnomerc, the value of $STARTUP is "gnome-session" and it works properly. In Focal, however, the value of $STARTUP is
"env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu",
and $BASESTARTUP became "env", then it skips loading ~/.gnomerc.

Tags: focal jammy
Kentaro (kentarofukuchi)
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thanks for the bug report. Please also report it to the developers at:

  https://gitlab.gnome.org/GNOME/gnome-session/-/issues

and then tell us the new issue ID.

tags: added: focal
Revision history for this message
Kentaro (kentarofukuchi) wrote :

I think we should not post this bug report to the upstream's BTS because this bug only occus on Ubuntu.

Here are some background info. '55gnome-session_gnomerc' is created by Debian and not included in the original tarball of gnome-session, and it perfectly works on Debian.

So why it fails on Ubuntu? Ubuntu's 'ubuntu-session' package provides '/usr/share/xsessions/ubuntu.desktop' file that executes gnome-session by the following command line:

env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu

For comparison, on Debian, '/usr/share/xsessions/gnome.desktop' simply calls '/usr/bin/gnome-session'.

In conclusion, 1) Ubuntu activates /usr/bin/gnome-session in a non-standard way, and 2) 55gnome-session_gnomerc does not expect it.

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your bug report and details, low priority issue because it's not a file commonly used but still would be nice to fix the feature for people relying on it

Changed in gnome-session (Ubuntu):
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
t0pd4wn (t0pd4wn) wrote (last edit ):

It would be nice if this issue could be reevaluated in favor to support .gnomerc, as it enables to execute specific commands once at system startup.

Revision history for this message
Kentaro (kentarofukuchi) wrote :

The same issue has been reproduced in Jammy (22.04.1).

The following patch for 55gnome-session_gnomerc is a workaround that fixes this issue.

5c5
< if [ "$BASESTARTUP" = x-session-manager ]; then
---
> if [ "$BASESTARTUP" = x-session-manager ] || [ "$BASESTARTUP" = env ]; then

tags: added: jammy
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.