Keep in mind, currently the library cannot be set globally, if you use GTK3 applications, it will break them.
The recommended usage right now is making scripts in ~/.local/bin/
, with the same name as the original GTK4/libadwaita application, and use LD_PRELOAD on them individually.
There is an open issue for fixing this: https://codeberg.org/MorsMortium/GTK4-NoCSD/issues/3
Search Criteria
Package Details: gtk4-nocsd-git r28.87d6130-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/gtk4-nocsd-git.git (read-only, click to copy) |
---|---|
Package Base: | gtk4-nocsd-git |
Description: | A small LD_PRELOAD library to disable CSD in GTK4 and LibAdwaita apps. |
Upstream URL: | https://codeberg.org/MorsMortium/gtk4-nocsd |
Licenses: | GPL-3.0-or-later |
Conflicts: | gtk4-nocsd |
Provides: | gtk4-nocsd |
Submitter: | morsmortium |
Maintainer: | morsmortium |
Last Packager: | morsmortium |
Votes: | 3 |
Popularity: | 0.59 |
First Submitted: | 2025-07-27 12:12 (UTC) |
Last Updated: | 2025-10-10 06:16 (UTC) |
Dependencies (6)
- libadwaita (libadwaita-gitAUR, libadwaita-without-adwaita-gitAUR, libadwaita-without-adwaitaAUR)
- bash (bash-devel-gitAUR, bash-gitAUR) (make)
- git (git-gitAUR, git-glAUR) (make)
- river (river-noxwayland-gitAUR, river-gitAUR) (make)
- wayland (wayland-gitAUR, wayland-asan-gitAUR, wayland-chromiumAUR) (make)
- wayland-protocols (wayland-protocols-gitAUR) (make)
Required by (0)
Sources (1)
Latest Comments
morsmortium commented on 2025-10-19 17:20 (UTC) (edited on 2025-10-19 17:21 (UTC) by morsmortium)
morsmortium commented on 2025-10-19 17:17 (UTC)
It depends on libadwaita
, which itself depends on gtk4
.
For the second part, that might be something that all distros could use, so I think I will make an issue in the repo.
dreieck commented on 2025-10-19 16:51 (UTC)
This should depend on gtk4
.
Also, suggestion: To add example files (under /usr/share/doc/gtk4-nocsd/examples/profile.d/
) for a /etc/profile.d/gtk4-nocsd.sh
and a /etc/profile.d/gtk4-nocsd.csh
.
Regards and thanks for that package!
Cody_Learner commented on 2025-10-03 22:19 (UTC) (edited on 2025-10-03 22:20 (UTC) by Cody_Learner)
@morsmortium Thank you builds for me now as well.
=> Finished making: gtk4-nocsd-git r19.eb726cd-1 (Fri Oct 3 15:17:15 2025)
morsmortium commented on 2025-10-03 20:48 (UTC)
Alright, I thought this was some GPU-less setup where wlroots still wanted a GPU accelerated renderer, but that was not the case. I tested building in a clean chroot, and this was the XDG_RUNTIME_DIR issue again, since I had to move it into the build script. I have fixed it
Cody_Learner commented on 2025-10-03 19:16 (UTC) (edited on 2025-10-03 19:17 (UTC) by Cody_Learner)
@morsmortium Thanks and I'm getting the same results...
Did the PKGBUILD need updated to pull in your changes?
==> Starting build()...
/usr/sbin/river
error: failed to run init executable /home/builduser/.config/river/init: FileNotFound
error: AddSocketFailed
Trying known offsets.
Known offset could not be matched, bruteforcing it.
The offset could not be found, please contact the developer with your GTK4 version. Building for X11 only.
GTK4-NoCSD.c: In function ‘GTK4NoCSDOnWindowMapped’:
GTK4-NoCSD.c:61:9: warning: ‘gdk_x11_display_get_xdisplay’ is deprecated [-Wdeprecated-declarations]
61 | Display *XDisplay = gdk_x11_display_get_xdisplay(GDisplay);
| ^~~~~~~
In file included from /usr/include/gtk-4.0/gdk/x11/gdkx.h:39,
from GTK4-NoCSD.c:19:
/usr/include/gtk-4.0/gdk/x11/gdkx11display.h:60:15: note: declared here
60 | Display * gdk_x11_display_get_xdisplay (GdkDisplay *display);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
GTK4-NoCSD.c:62:9: warning: ‘gdk_x11_surface_get_xid’ is deprecated [-Wdeprecated-declarations]
62 | Window XId = gdk_x11_surface_get_xid(Surface);
| ^~~~~~
In file included from /usr/include/gtk-4.0/gdk/x11/gdkx.h:47:
/usr/include/gtk-4.0/gdk/x11/gdkx11surface.h:56:10: note: declared here
56 | Window gdk_x11_surface_get_xid (GdkSurface *surface);
| ^~~~~~~~~~~~~~~~~~~~~~~
./Build.sh: line 118: kill: (1700) - No such process
==> ERROR: A failure occurred in build().
morsmortium commented on 2025-09-29 06:28 (UTC)
Thank you for the report @Cody_Learner This seems to be a wlroots issue, but I tried to make a workaround with replacing the default hardware renderer with software. Can you retry it?
Cody_Learner commented on 2025-09-29 03:41 (UTC) (edited on 2025-09-29 04:07 (UTC) by Cody_Learner)
@morsmortium
I'm having issues building the 2025-09-25
update in a clean chroot.
Full build output 'aurch' AUR helper: http://0x0.st/KBWi.txt
Full build output 'pkgctl build' : http://0x0.st/KBWe.txt
installing river...
Optional dependencies for river
polkit: access seat through systemd-logind
:: Running post-transaction hooks...
(1/7) Creating system user accounts...
(2/7) Reloading system manager configuration...
Skipped: Current root is not booted.
(3/7) Updating udev hardware database...
(4/7) Reloading device manager configuration...
Skipped: Current root is not booted.
(5/7) Arming ConditionNeedsUpdate...
(6/7) Updating fontconfig cache...
(7/7) Updating the desktop file MIME type cache...
==> Retrieving sources...
-> Updating gtk4-nocsd-git git repo...
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 22 (delta 11), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (22/22), 8.78 KiB | 2.19 MiB/s, done.
From https://codeberg.org/MorsMortium/gtk4-nocsd
9f6efad..b52167f main -> main
==> Validating source files with sha512sums...
gtk4-nocsd-git ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Creating working copy of gtk4-nocsd-git git repo...
Cloning into 'gtk4-nocsd-git'...
done.
==> Starting pkgver()...
==> Updated version: gtk4-nocsd-git r16.b52167f-1
==> Removing existing $pkgdir/ directory...
==> Starting build()...
/usr/sbin/river
error: failed to run init executable /home/builduser/.config/river/init: FileNotFound
error(wlroots): [render/wlr_renderer.c:100] drmGetDevices2 failed: No such file or directory
error(wlroots): [render/wlr_renderer.c:100] drmGetDevices2 failed: No such file or directory
error: AddSocketFailed
Trying known offsets.
Known offset could not be matched, bruteforcing it.
The offset could not be found, please contact the developer with your GTK4 version. Building for X11 only.
GTK4-NoCSD.c: In function ‘GTK4NoCSDOnWindowMapped’:
GTK4-NoCSD.c:61:9: warning: ‘gdk_x11_display_get_xdisplay’ is deprecated [-Wdeprecated-declarations]
61 | Display *XDisplay = gdk_x11_display_get_xdisplay(GDisplay);
| ^~~~~~~
In file included from /usr/include/gtk-4.0/gdk/x11/gdkx.h:39,
from GTK4-NoCSD.c:19:
/usr/include/gtk-4.0/gdk/x11/gdkx11display.h:60:15: note: declared here
60 | Display * gdk_x11_display_get_xdisplay (GdkDisplay *display);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
GTK4-NoCSD.c:62:9: warning: ‘gdk_x11_surface_get_xid’ is deprecated [-Wdeprecated-declarations]
62 | Window XId = gdk_x11_surface_get_xid(Surface);
| ^~~~~~
In file included from /usr/include/gtk-4.0/gdk/x11/gdkx.h:47:
/usr/include/gtk-4.0/gdk/x11/gdkx11surface.h:56:10: note: declared here
56 | Window gdk_x11_surface_get_xid (GdkSurface *surface);
| ^~~~~~~~~~~~~~~~~~~~~~~
./Build.sh: line 118: kill: (1659) - No such process
==> ERROR: A failure occurred in build().
Aborting...
==> Removing installed dependencies...
Pinned Comments
morsmortium commented on 2025-10-19 17:20 (UTC) (edited on 2025-10-19 17:21 (UTC) by morsmortium)
Keep in mind, currently the library cannot be set globally, if you use GTK3 applications, it will break them.
The recommended usage right now is making scripts in
~/.local/bin/
, with the same name as the original GTK4/libadwaita application, and use LD_PRELOAD on them individually.There is an open issue for fixing this: https://codeberg.org/MorsMortium/GTK4-NoCSD/issues/3