Open Bug 1827563 Opened 3 years ago Updated 2 years ago

[LXQt] Client Side Decoration not available anymore because that's what LxQt wants by setting the GTK_CSD=0 env var

Categories

(Core :: Widget: Gtk, defect, P3)

Desktop
Linux
defect

Tracking

()

Tracking Status
firefox-esr102 --- unaffected
firefox112 --- unaffected
firefox113 --- unaffected
firefox114 --- fix-optional

People

(Reporter: cg+zbmvyynohtmvyyn, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

After the fix for Bug 1827137 was included, I'm no longer able to use client side decorations. The system title bar is now always visible and the tickbox disapppeared from customize toolbar.

Regression found by mozregression:
8:34.81 INFO: Last good revision: 57c51f48ee34b2c75f6bd250e22e085ef9297551
8:34.81 INFO: First bad revision: 956d24a99553ee8d2dd1fc74d230fa8d5871577c
8:34.81 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=57c51f48ee34b2c75f6bd250e22e085ef9297551&tochange=956d24a99553ee8d2dd1fc74d230fa8d5871577c

System:
Arch Linux
Using LxQt desktop environment with default openbox wm

Keywords: regression
Regressed by: 1827137

We may add LxQt system to the list. Can you attack output of terminal commands:

env | grep XDG
env | grep CSD

Thanks.

Blocks: gtktitlebar
Flags: needinfo?(cg+zbmvyynohtmvyyn)
Priority: -- → P3

(In reply to Martin Stránský [:stransky] (ni? me) from comment #1)

We may add LxQt system to the list. Can you attack output of terminal commands:

env | grep XDG
env | grep CSD

Thanks.

Here's the output:

XDG_VTNR=1
XDG_DATA_DIRS=/home/cromos/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
XDG_SEAT=seat0
XDG_MENU_PREFIX=lxqt-
XDG_RUNTIME_DIR=/run/user/1000
XDG_SESSION_TYPE=x11
XDG_CONFIG_HOME=/home/cromos/.config
XDG_CONFIG_DIRS=/etc:/etc/xdg:/usr/share
XDG_SESSION_ID=2
XDG_CACHE_HOME=/home/cromos/.cache
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=LXQt
XDG_CURRENT_DESKTOP=LXQt
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_DATA_HOME=/home/cromos/.local/share
GTK_CSD=0

Thanks

Flags: needinfo?(cg+zbmvyynohtmvyyn)

:emilio, since you are the author of the regressor, bug 1827137, could you take a look? Also, could you set the severity field?

For more information, please visit auto_nag documentation.

Flags: needinfo?(emilio)

So you have GTK_CSD=0, so this is pretty expected? Do you know what adds that on your set-up?

Flags: needinfo?(emilio) → needinfo?(cg+zbmvyynohtmvyyn)

(In reply to Emilio Cobos Álvarez (:emilio) from comment #4)

So you have GTK_CSD=0, so this is pretty expected? Do you know what adds that on your set-up?

No, I have not set this knowingly. I'll try to search where it is set.

Flags: needinfo?(cg+zbmvyynohtmvyyn)

I guess it is set by default in /usr/share/lxqt/session.conf
I don't know why

https://github.com/lxqt/lxqt-session/search?q=GTK_CSD
https://github.com/lxqt/lxqt-session/commit/d95ceaf2dc893ddaae78a4536a629b6488154788
https://github.com/lxqt/lxqt-session/blob/1f32c381da61989b38805b09db511c5db2155f17/CHANGELOG#L192

lxqt-session-0.12.0 / 2017-10-21

Set environment variable GTK_CSD=0 to turn off the default client side decoration for gtk+ 3 programs. (This will not always work if a gtk+3 program explicitly sets a title bar and turns on CSD.)

(IMHO Firefox shouldn't respect GTK_CSD at all and default to tabs-in-titlebar everywhere - like Chrome. The fix in bug 1827137 should have been enforcing CSD (ignoring GTK_CSD) as long as tabs-in-titlebar is enabled. And bug 1827227 should be wontfixed.)

Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Unspecified → Linux
Hardware: Unspecified → Desktop
Summary: Client Side Decoration not available anymore → Client Side Decoration not available anymore because that's what LxQt wants by setting the GTK_CSD=0 env var

This can be work-arounded by the environment variable MOZ_GTK_TITLEBAR_DECORATION=client.

Or setGTK_CSD=1.

Thanks. Here I mention MOZ_GTK_TITLEBAR_DECORATION=client as it is useful when I want to hide the title bar for Firefox while keeping server-side decoration for other GTK+ applications. Setting that environment variable is simpler than setting GTK_CSD=1 only for Firefox (ex: by modifying firefox.desktop).

Duplicate of this bug: 1840985
Duplicate of this bug: 1872378

I don't have GTK_CSD set by anything, yet under a separate user account I have to export GTK_CSD=1 or otherwise I see the titlebar without an option to disable it in the application itself.

This:

env | grep XDG
env | grep CSD

Returns nothing.

(In reply to Chih-Hsuan Yen [:yan12125] (UTC+8) from comment #8)

This can be work-arounded by the environment variable MOZ_GTK_TITLEBAR_DECORATION=client.

You can set this one to disable system titlebar.

Summary: Client Side Decoration not available anymore because that's what LxQt wants by setting the GTK_CSD=0 env var → [LXQt] Client Side Decoration not available anymore because that's what LxQt wants by setting the GTK_CSD=0 env var
You need to log in before you can comment on or make changes to this bug.