Package Details: gtk3-nocsd-git r63.3f91a6b-1

Git Clone URL: https://aur.archlinux.org/gtk3-nocsd-git.git (read-only, click to copy)
Package Base: gtk3-nocsd-git
Description: A hack to disable gtk+ 3 client side decoration
Upstream URL: https://github.com/ZaWertun/gtk3-nocsd
Keywords: client csd decorations gtk gtk3 side window
Licenses: LGPL
Conflicts: gtk3-nocsd
Provides: gtk3-nocsd
Submitter: None
Maintainer: neoninteger
Last Packager: neoninteger
Votes: 41
Popularity: 0.23
First Submitted: 2016-05-22 10:49 (UTC)
Last Updated: 2019-08-07 02:38 (UTC)

Pinned Comments

MarsSeed commented on 2022-05-12 16:19 (UTC) (edited on 2022-05-12 18:13 (UTC) by MarsSeed)

I suggest everyone to uninstall this and use gtk3-classic instead, since that contains the no-CSD patch as well as some other dropped features of gtk3 which are still useful for non-GNOME desktop environments.

The mentioned package is well-maintained and automatically CI-tested on GitHub.

Edit: just noticed: ZaWertun's gtk3-nocsd repo (which is the latest gtk3-nocsd fork) got archived (inactivated) and therefore it's deprecated.

There are several unresolved issues and those are also read-only and won't be fixed.

I am using gtk3-classic since a few months and I don't have any of the problems I had while previously using gtk3-nocsd-git.

Latest Comments

neoninteger commented on 2022-07-08 04:23 (UTC)

Are you sure the package uninstalled correctly? The package includes /etc/X11/xinitrc/xinitrc.d/30-gtk3-nocsd.sh which is where the LD_PRELOAD variable is set. This file may still be present on your system for some reason.

If that file was deleted successfully, then I don't know, because the package doesn't put any other configuration files on your system.

logothete commented on 2022-07-08 01:32 (UTC)

This package does something wretched which causes problems when it's uninstalled. I now have the constant error

 ERROR: ld.so: object '/usr/${LIB}/libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

Whenever I open terminal apps (or when most commands are run), but I cannot for the life of me figure out where the LD_PRELOAD variable is being set. Putting unset LD_PRELOAD at the top of my shell profile (.zshrc, in my case) at least makes the error only appear when the terminal is launched, but the presence of this error is infuriating.

Does anyone know what dotfile this package changed to afflict me with this?

MarsSeed commented on 2022-05-12 16:19 (UTC) (edited on 2022-05-12 18:13 (UTC) by MarsSeed)

I suggest everyone to uninstall this and use gtk3-classic instead, since that contains the no-CSD patch as well as some other dropped features of gtk3 which are still useful for non-GNOME desktop environments.

The mentioned package is well-maintained and automatically CI-tested on GitHub.

Edit: just noticed: ZaWertun's gtk3-nocsd repo (which is the latest gtk3-nocsd fork) got archived (inactivated) and therefore it's deprecated.

There are several unresolved issues and those are also read-only and won't be fixed.

I am using gtk3-classic since a few months and I don't have any of the problems I had while previously using gtk3-nocsd-git.

ZaWertun commented on 2021-06-23 18:48 (UTC) (edited on 2021-06-23 18:48 (UTC) by ZaWertun)

Sorry for that.

I've forgot to load function "g_type_name".

Fixed in 512c2bd866d71def6ffd4d85ca98ae12fe989c62 (master).

Neko-san commented on 2021-06-23 18:42 (UTC) (edited on 2021-06-23 18:43 (UTC) by Neko-san)

New update here breaks my Desktop Environment (KDE)

After updating this, it throws an error:

/usr/bin/bash: symbol lookup error: /usr/lib/libgtk3-nocsd.so.0: undefined symbol: g_type_name

Then, after rebooting, KDE refuses to start unless the package is removed.

merc68k commented on 2020-12-26 16:16 (UTC)

Thanks for this, it works with XFCE 4.16 to keep the window manager decorations and banish the ugly CSD look!

dsil commented on 2020-12-09 15:39 (UTC)

My bad, looking at man ld.so it's clear that it's the dynamic linker that is responsible for expanding that ${LIB}, not the shell -- so the script is correct.

Now, the package still does not work properly as sometimes CSDs show up and sometimes they don't, even when I launch multiple instances of the same program from within the same shell (so I still haven't been able to find a reproducible pattern). Could be an issue with the library itself.

neoninteger commented on 2020-12-09 03:51 (UTC)

My Linux machine is currently offline for maintenance so I can't test things, but I can confirm that the package in its current state worked fine for me last time I used it.

Just as a definition, ${LIB} should expand to either lib, lib32 or lib64 depending on the shell's architecture and where your distro stores dynamic libraries on your system. It may be the case that some distros store 64-bit libraries in /usr/lib64 and put 32-bit libraries in /usr/lib.

Whereas in the case of an Arch Linux installation (which is 64-bit by default) the 64-bit libraries are stored in /usr/lib and the 32-bit multilib libraries are in /usr/lib32. So, as long as you're launching your graphical session from a 64-bit shell, the path should expand to /usr/lib/libgtk3-nocsd.so.0 followed by anything else in the $LD_PRELOAD variable if applicable.

But the backslash preceding it definitely seems amiss! According to bash's manual, that would result in the ${LIB} variable not being expanded, and so the resulting string literally becomes /usr/${LIB}/libgtk3-nocsd.so.0 which would not work.

I can't test this right now, but should be able to again in a few days once my machine is usable again. In the meantime, please do feel free to try it out yourself: does the script work again when the backslash is removed? If it does work, I'll push an update that removes the backslash.

Thanks!

dsil commented on 2020-12-09 00:56 (UTC)

I'm not sure why in the 30-gtk3-nocsd.sh script, line 15, the path to libgtk3-nocsd.so.0 is /usr/\${LIB}/libgtk3-nocsd.so.0${LD_PRELOAD:+:$LD_PRELOAD} and not straight up /usr/lib/libgtk3-nocsd.so.0${LD_PRELOAD:+:$LD_PRELOAD}, but it does not work the way it's currently written (or why is the dollar sign escaped, for that matter)

neoninteger commented on 2020-07-25 23:18 (UTC)

Try this to build and install an old version (e.g. aa76c16 which is before all of the June 13th commits):

$ makepkg --noprepare --nobuild
$ cd src/gtk3-nocsd
$ git checkout aa76c16
$ cd ../..
$ makepkg --noextract

This will have makepkg clone ZaWertun's Git repository, and then stop. You then change into the repository and check out an old version, before having makepkg build without changing the source directory (which has been checked out to an older version).

And then simply install the resulting package, which should be version r65.aa76c16-1.

cyberpunkrocker commented on 2020-07-25 19:10 (UTC)

The new version 3.0.2 does not work properly, Nautilus loses its whole toolbar (the area at the top). I had to remove gtk3-nocsd completely before Nautilus got its toolbar back. How can I rebuild the old version vith AUR? Unfortunately I did what I should never had done, I trashed the old package (built some months ago) before I noticed what the new version did to Nautilus...

ZaWertun commented on 2020-06-13 12:09 (UTC) (edited on 2020-06-13 12:10 (UTC) by ZaWertun)

Hello!

Just released version 3.0.2 with some changes, could someone test it?

salome commented on 2020-04-25 09:44 (UTC)

This package is a must for people that use qt DEs or peple that simply want to use their favorite windows manager. Please, add it to upstream

Modelmat commented on 2019-07-20 08:50 (UTC)

Seems fine to me.

neoninteger commented on 2019-05-19 02:14 (UTC)

The original repository by PCMan (https://github.com/PCMan/gtk3-nocsd) has not been updated since 2016, and although it still works (at least from my experience) there is a version with recent fixes being maintained by ZaWertun (https://github.com/ZaWertun/gtk3-nocsd). I'm currently thinking about the possibility of updating this package to pull from ZaWertun's repository instead of PCMan's, to incorporate these changes. Thoughts?

digitalone commented on 2018-11-22 10:07 (UTC) (edited on 2018-11-22 10:21 (UTC) by digitalone)

Hello, this package is very useful, thanks for maintaining it. Hope it will go straight to upstream.

Did the css trick to get transparent title, great work!

Scrumplex commented on 2018-10-25 12:17 (UTC)

@notuxius The hack to remove double entries is something that should be handled upstream. I may look into forking gtk3-csd and maintaining it.

commented on 2018-10-23 11:36 (UTC)

@notuxius Since I don't use Arch Linux anymore, I can't test this package, so I disowned the package.

notuxius commented on 2018-10-23 10:40 (UTC)

Can you make this package conflict with 'gtk3-nocsd' package (same for lib32 version) - for Netrunner Rolling distro (Arch/Manjaro based). Also there is a hack to remove double entries - https://github.com/PCMan/gtk3-nocsd/issues/19#issuecomment-399982109 - can it be also integrated in this package? Link to reddit thread - https://www.reddit.com/r/kde/comments/9qdndq/how_to_make_gnome_apps_with_csd_integrate_better/ Thanks!

AJSlye commented on 2018-07-13 15:13 (UTC)

Debian uses these three files, maybe we should to?

whynothugo commented on 2017-04-11 02:14 (UTC)

This has no effect for me on gtk3 application (gtkevemon, termine, blueman-manager, etc).

commented on 2017-03-29 17:52 (UTC)

When opening non-gtk3 apps I get this: ERROR: ld.so: object '/usr/${LIB}/libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. I have to unset it because some applications won't open because of it (eg. vmware)

macheath commented on 2017-03-26 01:14 (UTC)

What errors are you getting. This export is necessary for applications to pick up the patched library.

commented on 2017-03-25 15:55 (UTC)

the line from 30-gtk3-nocsd.sh export LD_PRELOAD="/usr/\${LIB}/libgtk3-nocsd.so.0${LD_PRELOAD:+:$LD_PRELOAD}" (this one) doesn't seem to be working, I keep receiving errors in the terminal, please fix have to unset LD_PRELOAD to remove the errors