gtk3-nocsd(1)

πŸ’– gtk3-nocsd β€” the manual page, bestie edition πŸ’–

okay so this is the manual for gtk3-nocsd(1), living in the General Commands Manual, and it's literally the tool that makes your windows stop having those chunky little self-drawn titlebars. no cap.


✨ NAME ✨

gtk3-nocsd β€” transparently disable Gtk+3 client side decorations (CSD)

like. it just turns off CSD. quietly. behind the scenes. main character who doesn't need credit. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

gtk3-nocsd command [ command arguments ... ]

symlinked-command
       [ command arguments ... ]

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea: gtk3-nocsd runs a command inside an environment where Gtk+3 client side decorations (CSD) are disabled. How? It uses LD_PRELOAD to load the library libgtk3-nocsd.so.0, which overrides a bunch of GLib, GDK and Gtk API calls with its own customized variants. Sneaky? yes. effective? also yes. πŸ”₯


🌸 OPTIONS 🌸

  • command β€” the command you wanna execute. It can be a full path, or just the name of the command sitting somewhere in PATH. and bestie, listen: if command cannot be found in PATH, gtk3-nocsd will fail. no fallback, no plan b. 😭
  • command arguments β€” literally any number of arguments you want passed along to the command being executed. go off, pass as many as you want. ✨

πŸ‘‘ INTEGRATION IN DEBIAN πŸ‘‘

ngl, on Debian you don't have to use gtk3-nocsd by default, because the gtk3-nocsd functionality is activated automatically on Xsession startup if anything but GNOME is used. But on GNOME? CSDs will remain enabled. that's just how it is. πŸ™ˆ

Both the administrator and each individual user may override those defaults. so you do have options.

Administrators may choose to re-enable CSDs by default by editing the file /etc/X11/Xsession.d/01gtk3-nocsd and changing the following setting:

export GTK_CSD=1

Users may choose to override this (in either way) by adding a similar line to their ~/.xsessionrc.

For more details, please see /usr/share/doc/gtk3-nocsd/README.Debian. iykyk. 🫢


okay this part is lowkey iconic. If a symlink to gtk3-nocsd under a different name is called, gtk3-nocsd will assume that the name it was called under is the name of the command that is supposed to be executed. It then looks for that command in the PATH environment variable β€” excluding itself β€” and executes it with the proper environment variables set.

When is this useful? When it's not desirable to add gtk3-nocsd to the system-wide LD_PRELOAD, or if it should be applied only to certain applications. selective slay. ⭐


πŸ’€ CAVEATS πŸ’€

bestie. pay attention here. this is the part where things get real.

When using gtk3-nocsd with setarch (including aliases such as linux32), or anyway with chroots with different architectures than the host's, make sure to install the matching architecture version of libgtk3-nocsd.so.0 both in the setarch environment and the host's environment.

Note that the gtk3-nocsd binary must then be installed in a system path (/usr/bin, /usr/local/bin, ...), so that it will set LD_PRELOAD to just the library name and let the dynamic linker find it automatically β€” allowing the dynamic linker to pick the version for the correct architecture.

If gtk3-nocsd is not installed in a system path, it will use a full path, allowing only for a single version of the library to be used.

so like… put it in a system path unless you enjoy suffering. πŸ“


and that's the whole page, bestie!! this manual came from October 2015, manual name gtk3-nocsd(1), and honestly it ate. go disable some client side decorations, you deserve it. πŸŒˆβœ¨πŸ’–

πŸ“¦ where this page comes from