OVERRIDESHELL(3)

πŸ“¦
version 2.5.2 Β· 2 versions
, in alpine 3.24, arch rolling, centos-stream 9, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ‘‘ OverrideShell(library call) πŸ‘‘

okay so bestie, welcome to the manual page for OverrideShell β€” yes that's the library call name, that's the whole vibe, we're doing a widget class today and it's lowkey iconic. πŸ’…


✨ NAME ✨

OverrideShell β€” the OverrideShell widget class. that's it, that's the name, she's simple and she's powerful. πŸŽ€


🌸 SYNOPSIS 🌸

#include <Xm/Xm.h>
#include <X11/Shell.h>

two includes. that's all you need to pull her in. slay. ✨


πŸ’– DESCRIPTION πŸ’–

so OverrideShell is the widget class for shell windows that completely bypass the window manager. like, not "mostly", not "kinda", not "we asked nicely" β€” completely. she does not talk to the WM, the WM does not talk to her, they are strangers fr fr. 🫢

the classic example, the one everybody knows? PopupMenu shells. that's her moment, that's her main character energy. πŸ”₯

🌈 Classes 🌈

OverrideShell inherits behavior and resources from Core, Composite, and Shell. the whole family tree, bestie. 🌳

  • the class pointer is overrideShellWidgetClass.
  • the class name is OverrideShell.

πŸ¦‹ New Resources πŸ¦‹

okay so plot twist: OverrideShell defines no new resources. zero. nada. πŸ™ˆ

BUT β€” and this is the part you need to remember β€” she overrides the XmNoverrideRedirect and XmNsaveUnder resources in the Shell class. so she's not adding anything new, she's just editing what her mama gave her. πŸ’…

πŸ“ Inherited Resources πŸ“

OverrideShell inherits behavior and resources from the following superclasses. for a complete description of each resource, go read the reference page for that superclass β€” I'm not gonna retype their whole life story here. πŸ’€

so here's the tea: the following table defines a set of widget resources used by the programmer to specify data. the programmer can also set the resource values for the inherited classes to set attributes for this widget.

and now the little .Xdefaults magic trick, listen up because this is important πŸ‘‡

  • to reference a resource by name or by class in a .Xdefaults file: remove the XmN or XmC prefix and use the remaining letters.
  • to specify one of the defined values for a resource in a .Xdefaults file: remove the Xm prefix and use the remaining letters β€” in either lowercase or uppercase, whichever, but include any underscores between words.

and the codes in the access column? they tell you if the given resource can be:

  • set at creation time (C)
  • set by using XtSetValues (S)
  • retrieved by using XtGetValues (G)
  • or is not applicable (N/A)

got it? got it. πŸ’œ

⭐ Shell Resource Set ⭐

  • XmNallowShellResize β€” class XmCAllowShellResize, type Boolean, default False, access CG
  • XmNcreatePopupChildProc β€” class XmCCreatePopupChildProc, type XtCreatePopupChildProc, default NULL, access CSG
  • XmNgeometry β€” class XmCGeometry, type String, default NULL, access CSG
  • XmNoverrideRedirect β€” class XmCOverrideRedirect, type Boolean, default True, access CSG
  • XmNpopdownCallback β€” class XmCCallback, type XtCallbackList, default NULL, access C
  • XmNpopupCallback β€” class XmCCallback, type XtCallbackList, default NULL, access C
  • XmNsaveUnder β€” class XmCSaveUnder, type Boolean, default True, access CSG
  • XmNvisual β€” class XmCVisual, type Visual *, default CopyFromParent, access CSG

πŸŽ€ Composite Resource Set πŸŽ€

  • XmNchildren β€” class XmCReadOnly, type WidgetList, default NULL, access G
  • XmNinsertPosition β€” class XmCInsertPosition, type XtOrderProc, default NULL, access CSG
  • XmNnumChildren β€” class XmCReadOnly, type Cardinal, default 0, access G

and bestie… that's only part 1 πŸ‘€ there's MORE coming, don't go anywhere. πŸ’–

Okay so the resource table. πŸ’… It's five whole columns wide β€” Name, Class, Type, Default, Access β€” and I am not making you squint at box-drawing characters in a terminal. So I flipped it vertical. Same nineteen entries, same values, char for char. Each one reads: name β†’ class β†’ type β†’ default β†’ access. Periodt.


✨ Core Resource Set ✨

  • XmNaccelerators β€” class XmCAccelerators, type XtAccelerators, default dynamic, access CSG
  • XmNancestorSensitive β€” class XmCSensitive, type Boolean, default dynamic, access G
  • XmNbackground β€” class XmCBackground, type Pixel, default dynamic, access CSG
  • XmNbackgroundPixmap β€” class XmCPixmap, type Pixmap, default XmUNSPECIFIED_PIXMAP, access CSG
  • XmNborderColor β€” class XmCBorderColor, type Pixel, default XtDefaultForeground, access CSG
  • XmNborderPixmap β€” class XmCPixmap, type Pixmap, default XmUNSPECIFIED_PIXMAP, access CSG
  • XmNborderWidth β€” class XmCBorderWidth, type Dimension, default 0, access CSG
  • XmNcolormap β€” class XmCColormap, type Colormap, default dynamic, access CG
  • XmNdepth β€” class XmCDepth, type int, default dynamic, access CG
  • XmNdestroyCallback β€” class XmCCallback, type XtCallbackList, default NULL, access C
  • XmNheight β€” class XmCHeight, type Dimension, default dynamic, access CSG
  • XmNinitialResourcesPersistent β€” class XmCInitialResourcesPersistent, type Boolean, default True, access C
  • XmNmappedWhenManaged β€” class XmCMappedWhenManaged, type Boolean, default True, access CSG
  • XmNscreen β€” class XmCScreen, type Screen *, default dynamic, access CG
  • XmNsensitive β€” class XmCSensitive, type Boolean, default True, access CSG
  • XmNtranslations β€” class XmCTranslations, type XtTranslations, default dynamic, access CSG
  • XmNwidth β€” class XmCWidth, type Dimension, default dynamic, access CSG
  • XmNx β€” class XmCPosition, type Position, default 0, access CSG
  • XmNy β€” class XmCPosition, type Position, default 0, access CSG
Heads up bestie: the access codes are copied exactly as the original table gives them β€” CSG, G, CG, C β€” and no, I'm not editorialising on what each letter means. That's the spec's business, not mine. πŸ™ˆ

πŸ¦‹ Translations πŸ¦‹

Not me having to report this: there are no translations for OverrideShell. That's the whole thing. The translation table is empty. Nothing in it. Zero. πŸ’€



And that's the page, bestie β€” the footer signs it off as OverrideShell(library call), which is literally the whole vibe: it's a library call, it lives in section 3, and it's done. πŸ’– Go forth and override, icon. πŸ‘‘