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

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

Latest Comments

1 2 Next › Last »

merc68k commented on 2020-12-26 16:16

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

My bad, looking at man 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

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/ 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}/ 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.


dsil commented on 2020-12-09 00:56

I'm not sure why in the script, line 15, the path to is /usr/\${LIB}/${LD_PRELOAD:+:$LD_PRELOAD} and not straight up /usr/lib/${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

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

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


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

salome commented on 2020-04-25 09:44

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

Seems fine to me.

neoninteger commented on 2019-05-19 02:14

The original repository by PCMan ( 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 ( 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?