PCMan / gtk3-nocsd

A hack to disable gtk+ 3 client side decoration
GNU Lesser General Public License v2.1
320 stars 41 forks source link

Is this still developed? #68

Open tio-trom opened 2 years ago

tio-trom commented 2 years ago

I see the lat commit was almost 6 years ago. I was wondering if this is a reliable package. Cheers!

ndnihil commented 2 years ago

I still use it daily. What further development do you feel is necessary?

tio-trom commented 2 years ago

I wanted to make sure that it is no abandoned. I would like to implement it to our tromjaro.com distribution by default. So we will test it a lot with many applications to make sure it works and maybe help debug.

ndnihil commented 2 years ago

I don't know the author(s) so I have no idea if it has been abandoned or is just in a state of not needing further attention. I can say that it still functions as intended in 2021 though. Debian has it in Bookworm/12/testing, and Arch appears to be active with it as well.

https://packages.debian.org/testing/gtk3-nocsd

https://aur.archlinux.org/packages/gtk3-nocsd-git/

Monsterovich commented 2 years ago

https://github.com/PCMan/gtk3-nocsd/issues/63

jelabarre59 commented 1 year ago

Actually, now there DOES seem to be a problem with gtk3-nocsd, at least in Fedora 37. I built the library for this on a F37 install (Cinnamon & MATE desktops installed, and the dev libraries listed as needed). I put the library in the usual /use/lib64 location, but as soon as I try to add it to the LD_PRELOAD path, I get a Segmentation Fault.

I suspect the GNOME folks broke something in GTK to keep this from running (it might upset their sensibilities if someone decided to have actual color and texture in their interface).

What would be nice is a replacement library that 1: forcibly adds back titlebars to GTK+ 2: intercepts those CSD abominations and extracts the components back to separate menubar & tiitlebar. A utility to convert old Metacity themes to gtk.css would be useful too.

ndnihil commented 1 year ago

Might want to check your selinux logs. It will trip up LD_PRELOAD in some situations, and a quick google shows that selinux is enabled on Fedora 37 by default.

jelabarre59 commented 1 year ago

nothing in any selinux logs, and abrt shows pretty much the same information ("libgtk3-nocsd.so.0 killed by SIGSEGV").

in "exploitable" it says:

Likely crash reason: Jump to an invalid address Exploitable rating (0-9 scale): 6

ndnihil commented 1 year ago

If you're in a position/disposition to disable SEL and try again, I'd be interested to know if there is any change.

jelabarre59 commented 1 year ago

I tried this with both "SELINUX=disabled" in /etc/sysconfig/selinux as well as booting with "selinux=0" on the grub command line (both settings at the same time, to make sure selinux was completely disabled). Still the same error.

I wonder if this could be tied in with the GTK3-classic project (it acts as a replacement GTK3 library to restore functionality removed in the main GTK3 libraries). https://github.com/lah7/gtk3-classic

jelabarre59 commented 1 year ago

there was the problem. ended up with a semi-colon rather than a colon in the "export LD_PRELOAD=$LD_PRELOAD:/usr/lib64/libgtk3-nocsd.so.0" line in .bashrc. A really hard thing to see when viewing it.

sulincix commented 6 months ago

I am writing alternative and libX11 based solution.

https://gitlab.com/sulincix/xnocsd

Monsterovich commented 6 months ago

I am writing alternative and libX11 based solution.

https://gitlab.com/sulincix/xnocsd

It won't look normal because the window close buttons in the CSD will still be displayed. libgtk-nocsd tries to remove them in some way. The only good option is to patch the GTK library. Because python applications using GTK will not be affected by LD_PRELOAD.

jelabarre59 commented 6 months ago

Alternatively we need to migrate non-Gnome desktops, etc off of GTK and over to CTK. Then it's a simple matter of undoing all the damage Gnome has done.