VENDORSHELL(3)

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

πŸ’– VendorShell β€” the VendorShell widget class πŸ’–

okay bestie, pull up a chair, we're doing a Motif widget class today and honestly? she's kind of a big deal. This is VendorShell, straight outta the library-call section of the manual (VendorShell(library call), if you're keeping receipts). She's the supporting superclass energy behind a whole family of shell widgets, and she has opinions about window managers.


✨ SYNOPSIS ✨

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

two includes, that's it, that's the whole vibe check.


🌸 DESCRIPTION 🌸

VendorShell is a Motif widget class, and her whole job is being the supporting superclass for every shell class that's visible to the window manager and that is not override redirect. Like, she's the mom friend holding the group together. She contains the resources that describe the MWM-specific look and feel, and she also manages all the MWM-specific communication that every single VendorShell subclass needs. Want more on that? Go read the mwm reference page, bestie, it's all there.

She is also the one responsible for managing toolTips. And not in a subtle way β€” this is her whole side quest:

  • All XmPrimitive and XmGadget subclasses have an XmNtoolTipString resource.
  • If XmNtoolTipEnable is True, and the pointer enters a Primitive or Gadget that has traversal enabled, and the XmNtoolTipString is not NULL β€” then the XmNtoolTipString gets displayed, according to the VendorShell resources that control toolTips.

and the way she displays it?? iconic, honestly. VendorShell displays the XmNtooTipString inside an XmLabel that is a child of a transientShell. The name of that transientShell is TipShell, and the name of the XmLabel is TipLabel. So if you want to style the tip's appearance, you go specify resources on those two widgets. That's the move. slay πŸŽ€

heads up bestie: if your app uses the XmNmwmDecorations, XmNmwmFunctions, or XmNmwmInputMode resource, you should include the file Xm/MwmUtil.h. Don't skip this, fr fr. 🫢

now the sizing lore, because this part is lowkey important πŸ‘‘

Setting XmNheight, XmNwidth, or XmNborderWidth for either a VendorShell or its managed child usually sets that resource to the same value in both the parent and the child. Cute, right?

BUT. when an off-the-spot input method exists, the height and width of the shell may be greater than those of the managed child, because the shell is making room to accommodate the input method. In that case:

  • setting XmNheight or XmNwidth for the shell does not necessarily set that resource to the same value in the managed child, and
  • setting XmNheight or XmNwidth for the child does not necessarily set that resource to the same value in the shell.

so no, they're not just magically synced. the input method said "excuse me, I need space." πŸ’…


Now for the managed child of a VendorShell β€” and this one's the classic gotcha β€” regardless of the value of the shell's XmNallowShellResize, setting XmNx or XmNy sets the corresponding resource of the parent, but it does not change the child's position relative to the parent.

And if you do XtGetValues for the child's XmNx or XmNy? You get the value of the corresponding resource in the parent. Not the child. The parent. don't say I didn't warn you 😭

The x and y coordinates of the child's upper left outside corner relative to the parent's upper left inside corner are both 0 (zero) minus the value of XmNborderWidth.


⚠️ caveat alert ⚠️ Note that the Inter-Client Communication Conventions Manual (ICCCM) allows a window manager to change or control the border width of a reparented top-level window. So your border width is not always yours to command. the WM has main character energy and there's nothing you can do about it. πŸ’€

and one lil flex to round it out: VendorShell holds the XmQTspecifyRenderTable trait. ✨


πŸ¦‹ Classes πŸ¦‹

VendorShell inherits her behavior, resources, and traits from the Core, Composite, Shell, and WMShell classes. a whole lineage, a whole dynasty, we love a girl with roots.

  • The class pointer is vendorShellWidgetClass.
  • The class name is VendorShell.

memorize those two, bestie, they come up. iykyk πŸŽ€

✨ New Resources ✨

So the widget hands you a whole lil' set of widget resources β€” these are the knobs the programmer gets to turn to say what the data should actually look like πŸ’…. You can also set resource values on the inherited classes if you wanna set attributes for this widget, bestie, we don't gatekeep.

Wanna reference a subresource by name or by class inside a .Xdefaults file? Then:

  • By name or by class β€” yeet the XmN or XmC prefix and just use the letters that are left over.
  • To set one of the defined values for a subresource in a .Xdefaults file β€” yeet the Xm prefix and use the rest of the letters. Lowercase or uppercase, either is fine, but keep those underscores between the words or it's over for you.
  • The Access codes β€” they tell you what you're allowed to do with the subresource:
    • C β€” you can set it at creation time πŸŽ€
    • S β€” you can set it with XtSetValues
    • G β€” you can get it with XtGetValues
    • N/A β€” not applicable, babes, move on

Here's the full VendorShell Resource Set β€” every single row, no skips, no cap πŸ‘‘

The VendorShell Resource Set πŸ¦‹

  • XmNaudibleWarning β€” class XmCAudibleWarning, type unsigned char, default XmBELL, access CSG
  • XmNbuttonFontList β€” class XmCButtonFontList, type XmFontList, default dynamic, access CSG
  • XmNbuttonRenderTable β€” class XmCButtonRenderTable, type XmRenderTable, default dynamic, access CSG
  • XmNdefaultFontList β€” class XmCDefaultFontList, type XmFontList, default dynamic, access CG
  • XmNdeleteResponse β€” class XmCDeleteResponse, type unsigned char, default XmDESTROY, access CSG
  • XmNinputMethod β€” class XmCInputMethod, type string, default NULL, access CSG
  • XmNinputPolicy β€” class XmCInputPolicy, type XmInputPolicy, default XmPER_SHELL, access CSG
  • XmNkeyboardFocusPolicy β€” class XmCKeyboardFocusPolicy, type unsigned char, default XmEXPLICIT, access CSG
  • XmNlabelFontList β€” class XmCLabelFontList, type XmFontList, default dynamic, access CSG
  • XmNlabelRenderTable β€” class XmCLabelRenderTabel, type XmRenderTable, default dynamic, access CSG
  • XmNlayoutDirection β€” class XmCLayoutDirection, type XmDirection, default XmLEFT_TO_RIGHT, access CG
  • XmNmwmDecorations β€” class XmCMwmDecorations, type int, default -1, access CG
  • XmNmwmFunctions β€” class XmCMwmFunctions, type int, default -1, access CG
  • XmNmwmInputMode β€” class XmCMwmInputMode, type int, default -1, access CG
  • XmNmwmMenu β€” class XmCMwmMenu, type String, default NULL, access CG
  • XmNpreeditType β€” class XmCPreeditType, type String, default dynamic, access CSG
  • XmNverifyPreedit β€” class XmCVerifyPreedit, type Boolean, default False, access CSG
  • XmNshellUnitType β€” class XmCShellUnitType, type unsigned char, default XmPIXELS, access CSG
  • XmNtextFontList β€” class XmCTextFontList, type XmFontList, default dynamic, access CSG
  • XmNtextRenderTable β€” class XmCTextRenderTable, type XmRenderTable, default dynamic, access CSG
  • XmNtoolTipPostDelay β€” class XmCToolTipPostDelay, type int, default 5000, access CSG
  • XmNtoolTipPostDuration β€” class XmCToolTipPostDuration, type int, default 5000, access CSG
  • XmNtoolTipEnable β€” class XmCToolTipEnable, type Boolean, default False, access CSG
  • XmNunitType β€” class XmCUnitType, type unsigned char, default XmPIXELS, access CSG
  • XmNuseAsyncGeometry β€” class XmCUseAsyncGeometry, type Boolean, default False, access CSG
Heads up bestie: XmCLabelRenderTabel is spelled exactly like that in here β€” Tabel, not Table β€” so copy it character for character when you use it or the resource lookup will ghost you πŸ’€

XmNaudibleWarning

Tells ya whether an action also fires off its little beep-beep moment πŸ’–. Possible values are XmBELL and XmNONE.

XmNbuttonFontList

The font list that gets used for button descendants. Peep the XmNbuttonRenderTable resource if you wanna know more.

XmNbuttonRenderTable

The render table used for VendorShell's button descendants. Here's the tea πŸ«– on how it gets picked: if this value is NULL at initialization and XmNdefaultFontList isn't NULL, then XmNbuttonRenderTable gets initialized to the value of XmNdefaultFontList. If XmNdefaultFontList is NULL, the widget's parent hierarchy gets searched for an ancestor holding the XmQTspecifyRenderTable trait. Find one? Then XmNbuttonRenderTable initializes to the XmBUTTON_RENDER_TABLE value of that ancestor widget. Find none? Then the default is implementation dependent, no cap. Go read XmRenderTable(3) for the full lore on creating and structuring a render table ✨.

XmNdefaultFontList

A default font list for VendorShell's descendants. Okay so bestie, heads up: this resource is obsolete and only hangs around for compatibility with earlier releases. It's been replaced by XmNbuttonFontList, XmNlabelFontList, and XmNtextFontList. Use those πŸ’….

XmNdeleteResponse

Determines what the shell does when it catches a WM_DELETE_WINDOW message. Three possible settings, pick your fighter:

  • XmDESTROY
  • XmUNMAP
  • XmDO_NOTHING

The resource gets scanned, and the appropriate action happens after the WM_DELETE_WINDOW callback list (if there even is one) that's registered with the Protocol manager has been called. Order matters, iykyk.

XmNinputMethod

The string that sets the locale modifier for the input method. Important: when XtGetValues is called on this resource, what comes back is a pointer to the actual resource value β€” so do not free it πŸ™ˆ.

XmNinputPolicy

The policy for creating an Input Context (IC) for this shell. Values:

  • XmPER_SHELL β€” only one XIC is created per shell.
  • XmPER_WIDGET β€” one XIC is created for each widget.

XmNkeyboardFocusPolicy

Decides how keyboard focus gets allocated inside the widget hierarchy rooted at this shell. For this client-side focus management to even kick in, the X keyboard focus has to be directed somewhere in that hierarchy. Possible values:

  • XmEXPLICIT β€” click-to-type policy.
  • XmPOINTER β€” pointer-driven policy.

XmNlabelFontList

The font list used for label descendants. See the XmNlabelRenderTable resource.

XmNlabelRenderTable

The font list used for VendorShell's label descendants (Labels and LabelGadgets). Okay same drill as the button one, but make it labels: if this value is NULL at initialization and XmNdefaultFontList isn't NULL, then XmNlabelFontList gets initialized to the value of XmNdefaultFontList. If XmNdefaultFontList is NULL, the widget's parent hierarchy gets searched for an ancestor holding the XmQTspecifyRenderTable trait. Find one? XmNlabelRenderTable initializes to the XmLABEL_RENDER_TABLE of that ancestor widget. Find none? Default is implementation dependent. XmRenderTable(3) has the rest of the story πŸ’–.

XmNlayoutDirection

The direction the subwidgets, a widget's children, or other visual components get laid out in. This policy applies as the default layout policy for all descendants of this VendorShell. Queen sets the direction, everyone follows πŸ‘‘.

XmNmwmDecorations

Specifies the decoration flags β€” like, the specific decorations to add or remove from the window manager frame β€” for the _MOTIF_WM_HINTS property. The rules, fr fr:

  • If any decoration flags are specified by the _MOTIF_WM_HINTS property, only decorations indicated by both that property and the MWM clientDecoration and transientDecoration resources get displayed.
  • If no decoration flags are specified by the _MOTIF_WM_HINTS property, decorations indicated by the MWM clientDecoration and transientDecoration resources get displayed.
  • The default for the XmNmwmDecorations resource is to not specify any decoration flags for the _MOTIF_WM_HINTS property.

The value of this resource is the bitwise inclusive OR of one or more flag bits. The possible flag bit constants, defined in the include file Xm/MwmUtil.h, are:

  • MWM_DECOR_ALL β€” all decorations except those specified by other flag bits that are set.
  • MWM_DECOR_BORDER β€” client window border.
  • MWM_DECOR_RESIZEH β€” resize frame handles.
  • MWM_DECOR_TITLE β€” title bar.
  • MWM_DECOR_MENU β€” window menu button.
  • MWM_DECOR_MINIMIZE β€” minimize window button.
  • MWM_DECOR_MAXIMIZE β€” maximize window button.

XmNmwmFunctions

Specifies the function flags β€” the specific window manager functions to apply or not apply to the client window β€” for the _MOTIF_WM_HINTS property. Same energy as above:

  • If any function flags are specified by the _MOTIF_WM_HINTS property, only functions indicated by both that property and the MWM clientFunctions and transientFunctions resources get applied.
  • If no function flags are specified by the _MOTIF_WM_HINTS property, functions indicated by the MWM clientFunctions and transientFunctions resources get applied.
  • The default for the XmNmwmFunctions resource is to not specify any function flags for the _MOTIF_WM_HINTS property.

The value of this resource is the bitwise inclusive OR of one or more flag bits. The possible flag bit constants, defined in the include file Xm/MwmUtil.h, are:

  • MWM_FUNC_ALL β€” all functions except those specified by other flag bits that are set.
  • MWM_FUNC_RESIZE β€” f.resize.
  • MWM_FUNC_MOVE β€” f.move.
  • MWM_FUNC_MINIMIZE β€” f.minimize.
  • MWM_FUNC_MAXIMIZE β€” f.maximize.
  • MWM_FUNC_CLOSE β€” f.kill.

XmNmwmInputMode

Specifies the input mode flag β€” application modal or system modal input constraints β€” for the _MOTIF_WM_HINTS property. If no input mode flag is specified by the _MOTIF_WM_HINTS property, then no input constraints get applied and input goes to any window. The default for the XmNmwmInputMode resource is to not specify any input mode flag for the _MOTIF_WM_HINTS property.

Ngl, an application that sets input constraints on a dialog usually reaches for the BulletinBoard's XmNdialogStyle resource instead of the parent DialogShell's XmNmwmInputMode resource. Do with that what you will πŸ’…

The possible values for this resource, defined in the include file Xm/MwmUtil.h, are:

  • MWM_INPUT_MODELESS β€” input goes to any window.
  • MWM_INPUT_PRIMARY_APPLICATION_MODAL β€” input does not go to ancestors of this window.
  • MWM_INPUT_SYSTEM_MODAL β€” input goes only to this window.
  • MWM_INPUT_FULL_APPLICATION_MODAL β€” input does not go to other windows in this application.

XmNmwmMenu

The menu items the Motif window manager should add to the end of the window menu 🌸. The string holds a list of items separated by 0fP, formatted like this:

label [mnemonic] [accelerator] function

If you're specifying more than one item, separate the items with a newline character.

And okay, important again: when XtGetValues is called on this resource, the value you get back is a pointer to the actual resource value, so do not free it 😭.

  • XmNpreeditType β€” this one picks which input method style(s) the input manager is allowed to use. bestie it's not just one thing, it can be a comma-separated list of any of these cuties:
    • OffTheSpot β†’ XIMPreeditArea
    • Root β†’ XIMPreeditNothing
    • None β†’ XIMPreeditNone
    • OverTheSpot β†’ XIMPreeditPosition
    • OnTheSpot β†’ XIMPreeditCallbacks
ngl this is the part where you look closely πŸ’… β€” when XtGetValues is called on this resource, what comes back is a pointer to the actual resource value, and you should not free it. like. do not touch. hands off. periodt.
  • XmNshellUnitType β€” okay so this one is obsolete πŸ’€ it's literally only hanging around for compatibility with earlier releases of Motif. use the XmNunitType resource instead, fr fr.
  • XmNtextFontList β€” specifies the font list used for text descendants. see the XmNtextRenderTable resource for the whole situation πŸŽ€
  • XmNtextRenderTable β€” specifies the render table used for VendorShell's Text and List descendants. and the way it initializes is a whole journey, so let's go:
    • if this value is NULL at initialization and the value of XmNdefaultFontList is not NULL, then XmNtextRenderTable gets initialized to the value of XmNdefaultFontList.
    • if the value of XmNdefaultFontList is NULL, then the parent hierarchy of the widget gets searched for an ancestor that holds the XmQTspecifyRenderTable trait.
    • if such an ancestor is found πŸ‘‘, XmNtextRenderTable is initialized to the XmTEXT_RENDER_TABLE value of that ancestor widget.
    • if no such ancestor is found, the default is implementation dependent.

refer to XmRenderTable(3) for more info on creating and structuring a render table, iykyk.

  • XmNtoolTipEnable β€” specifies whether toolTips are enabled for this shell or not. yes or no, on or off, slay or nay πŸ¦‹
  • XmNtoolTipPostDelay β€” specifies the time, in milliseconds, to wait after the pointer enters a widget before posting the toolTip associated with this widget. so like, the lil' anticipation moment ✨
  • XmNtoolTipPostDuration β€” specifies the time, in milliseconds, that the toolTip is displayed. a value of 0 will display the tip indefinitely β€” forever and ever, no cap 😭
  • XmNunitType β€” the moment we've all been waiting for πŸŽ€ this resource provides the basic support for resolution independence. it defines the type of units a widget uses with sizing and positioning resources. the default unit type is XmPIXELS.

you can also set the unit type right in resource files, using this format:

<floating value><unit>

where:

  • unit is <" ", pixels, inches, centimeters, millimeters, points, font units>
  • pixels is <pix, pixel, pixels>
  • inches is <in, inch, inches>
  • centimeter is <cm, centimeter, centimeters>
  • millimeters is <mm, millimeter, millimeters>
  • points is <pt, point, points>
  • font units is <fu, font_unit, font_units>
  • float is {"+"|"-"}{{<"0"-"9">*}.}<"0"-"9">*
⚠️ note that the type Dimension must always be positive. no negative dimensions, bestie, that's not the vibe.

for example:

xmfonts*XmMainWindow.height: 10.4cm
*PostIn.width: 3inches

and XmNunitType can have the following values πŸ‘‡

  • XmPIXELS β€” all values provided to the widget are treated as normal pixel values.
  • XmMILLIMETERS β€” all values provided to the widget are treated as normal millimeter values.
  • Xm100TH_MILLIMETERS β€” all values provided to the widget are treated as 1/100 of a millimeter.
  • XmCENTIMETERS β€” all values provided to the widget are treated as normal centimeter values.
  • XmINCHES β€” all values provided to the widget are treated as normal inch values.
  • Xm1000TH_INCHES β€” all values provided to the widget are treated as 1/1000 of an inch.
  • XmPOINTS β€” all values provided to the widget are treated as normal point values. a point is a unit used in text processing applications and is defined as 1/72 of an inch.
  • Xm100TH_POINTS β€” all values provided to the widget are treated as 1/100 of a point. a point is a unit used in text processing applications and is defined as 1/72 of an inch.
  • XmFONT_UNITS β€” all values provided to the widget are treated as normal font units. a font unit has horizontal and vertical components. these are the values of the XmScreen resources XmNhorizontalFontUnit and XmNverticalFontUnit.
  • Xm100TH_FONT_UNITS β€” all values provided to the widget are treated as 1/100 of a font unit. a font unit has horizontal and vertical components. these are the values of the XmScreen resources XmNhorizontalFontUnit and XmNverticalFontUnit.

for more info about units, go peek at the XmConvertUnits reference page πŸ’œ

  • XmNuseAsyncGeometry β€” specifies whether the geometry manager should wait for confirmation of a geometry request to the window manager. here's the tea:
    • when this resource is True, the geometry manager forces XmNwaitForWm to False and XmNwmTimeout to 0, and it relies on asynchronous notification.
    • when this resource is False, XmNwaitForWm and XmNwmTimeout are unaffected.
    • the default is False.

✨ Inherited Resources ✨

Okay so VendorShell did NOT come here to build everything from scratch β€” she inherits behavior and resources from her superclasses, and honestly? That's the nepo baby energy we respect. πŸ‘‘πŸ«Ά The tables below are everything she gets handed down. For the full, complete deets on any individual resource, go read the reference page for that superclass β€” no gatekeeping here, bestie.


πŸ’… WMShell Resource Set πŸ’…

Every one of these comes from WMShell. Name, class, type, default, access β€” all of it, right here:

  • XmNbaseHeight β€” class XmCBaseHeight, type int, default XtUnspecifiedShellInt, access CSG
  • XmNbaseWidth β€” class XmCBaseWidth, type int, default XtUnspecifiedShellInt, access CSG
  • XmNheightInc β€” class XmCHeightInc, type int, default XtUnspecifiedShellInt, access CSG
  • XmNiconMask β€” class XmCIconMask, type Pixmap, default NULL, access CSG
  • XmNiconPixmap β€” class XmCIconPixmap, type Pixmap, default NULL, access CSG
  • XmNiconWindow β€” class XmCIconWindow, type Window, default NULL, access CSG
  • XmNiconX β€” class XmCIconX, type int, default XtUnspecifiedShellInt, access CSG
  • XmNiconY β€” class XmCIconY, type int, default XtUnspecifiedShellInt, access CSG
  • XmNinitialState β€” class XmCInitialState, type int, default NormalState, access CSG
  • XmNinput β€” class XmCInput, type Boolean, default True, access CSG
  • XmNmaxAspectX β€” class XmCMaxAspectX, type int, default XtUnspecifiedShellInt, access CSG
  • XmNmaxAspectY β€” class XmCMaxAspectY, type int, default XtUnspecifiedShellInt, access CSG
  • XmNmaxHeight β€” class XmCMaxHeight, type int, default XtUnspecifiedShellInt, access CSG
  • XmNmaxWidth β€” class XmCMaxWidth, type int, default XtUnspecifiedShellInt, access CSG
  • XmNminAspectX β€” class XmCMinAspectX, type int, default XtUnspecifiedShellInt, access CSG
  • XmNminAspectY β€” class XmCMinAspectY, type int, default XtUnspecifiedShellInt, access CSG
  • XmNminHeight β€” class XmCMinHeight, type int, default XtUnspecifiedShellInt, access CSG
  • XmNminWidth β€” class XmCMinWidth, type int, default XtUnspecifiedShellInt, access CSG
  • XmNtitle β€” class XmCTitle, type String, default dynamic, access CSG
  • XmNtitleEncoding β€” class XmCTitleEncoding, type Atom, default dynamic, access CSG
  • XmNtransient β€” class XmCTransient, type Boolean, default False, access CSG
  • XmNwaitForWm β€” class XmCWaitForWm, type Boolean, default True, access CSG
  • XmNwidthInc β€” class XmCWidthInc, type int, default XtUnspecifiedShellInt, access CSG
  • XmNwindowGroup β€” class XmCWindowGroup, type Window, default dynamic, access CSG
  • mNwinGravity β€” class XmCWinGravity, type int, default dynamic, access CSG
  • XmNwmTimeout β€” class XmCWmTimeout, type int, default 5000 ms, access CSG
Not me noticing that one of them is literally spelled mNwinGravity with no leading X πŸ’€ bestie I am copying it character for character, we do not fix what we did not write. Periodt.

🌸 Shell Resource Set 🌸

And from Shell, same deal β€” name, class, type, default, access:

  • XmNallowShellResize β€” class XmCAllowShellResize, type Boolean, default False, access CG
  • XmNcreatePopupChildProc β€” class XmCCreatePopupChildProc, type XtCreatePopupChildProc, default NULL, access CSG

and there's so much more coming, don't you dare close the tab yet πŸ¦‹βœ¨

  • XmNgeometry β€” class XmCGeometry, type String, defaults to NULL, access CSG. Bestie, it's giving "where do you want me to sit" energy.
  • XmNoverrideRedirect β€” class XmCOverrideRedirect, type Boolean, defaults to False, access CSG. Set it and the window manager stops playing hall monitor.
  • XmNpopdownCallback β€” class XmCCallback, type XtCallbackList, defaults to NULL, access C. Fires when the shell pops down, no cap.
  • XmNpopupCallback β€” class XmCCallback, type XtCallbackList, defaults to NULL, access C. Fires when it pops up. Iconic duo, honestly.
  • XmNsaveUnder β€” class XmCSaveUnder, type Boolean, defaults to False, access CSG. The classic "keep what was under me" vibe.
  • XmNvisual β€” class XmCVisual, type Visual *, defaults to CopyFromParent, access CSG. It literally copies from the parent, periodt.

✨ Composite Resource Set ✨

Like, every Composite widget gets these three for free. Inheritance but make it fashion πŸ’…

  • XmNchildren β€” class XmCReadOnly, type WidgetList, defaults to NULL, access G. Read-only bestie, you don't get to touch, you only get to look.
  • XmNinsertPosition β€” class XmCInsertPosition, type XtOrderProc, defaults to NULL, access CSG. Tells the widget where new children slot in. Lowkey the seating chart of the whole thing.
  • XmNnumChildren β€” class XmCReadOnly, type Cardinal, defaults to 0, access G. Read-only, how many kids you got, that's it.

🌈 Core Resource Set 🌈

The OGs. Every single widget has these, fr fr. Core said "I'm the blueprint" and honestly, ate. πŸ‘‘

  • XmNaccelerators β€” class XmCAccelerators, type XtAccelerators, default is dynamic, access CSG.
  • XmNancestorSensitive β€” class XmCSensitive, type Boolean, default is dynamic, access G. Read-only, tracks whether an ancestor is sensitive. If your parent is in a mood, you feel it too. 😭
  • XmNbackground β€” class XmCBackground, type Pixel, default is dynamic, access CSG. The lewk. The base coat. πŸŽ€
  • XmNbackgroundPixmap β€” class XmCPixmap, type Pixmap, defaults to XmUNSPECIFIED_PIXMAP, access CSG.
  • XmNborderColor β€” class XmCBorderColor, type Pixel, defaults to XtDefaultForeground, access CSG.
  • XmNborderPixmap β€” class XmCPixmap, type Pixmap, defaults to XmUNSPECIFIED_PIXMAP, access CSG.
  • XmNborderWidth β€” class XmCBorderWidth, type Dimension, defaults to 0, access CSG. Zero. No border. Minimalist queen.
  • XmNcolormap β€” class XmCColormap, type Colormap, default is dynamic, access CG. Note the access is CG, not CSG β€” read and set, but no get-at-create. Copy that exactly, bestie.
  • XmNdepth β€” class XmCDepth, type int, default is dynamic, access CG. Same deal, CG, don't @ me.
  • XmNdestroyCallback β€” class XmCCallback, type XtCallbackList, defaults to NULL, access C. Called when the widget gets destroyed. Rip bozo 🫢
  • XmNheight β€” class XmCHeight, type Dimension, default is dynamic, access CSG.
  • XmNinitialResourcesPersistent β€” class XmCInitialResourcesPersistent, type Boolean, defaults to True, access C.
  • XmNmappedWhenManaged β€” class is XmCMappedWhenManaged, type Boolean, defaults to True, access CSG ✨
  • XmNscreen β€” class is XmCScreen, type is Screen *, default is dynamic, access CG πŸ¦‹
  • XmNsensitive β€” class is XmCSensitive, type Boolean, defaults to True, access CSG πŸ’–
  • XmNtranslations β€” class is XmCTranslations, type XtTranslations, default is dynamic, access CSG πŸŽ€
  • XmNwidth β€” class is XmCWidth, type Dimension, default is dynamic, access CSG 🌸
  • XmNx β€” class is XmCPosition, type Position, defaults to 0, access CSG πŸ’…
  • XmNy β€” class is XmCPosition, type Position, defaults to 0, access CSG πŸ’…

πŸ¦‹ Translations πŸ¦‹

There are no translations for VendorShell. Like, none. Zero. The void. Bestie it's giving nothing to translate 😭 periodt.


okay so the whole friend group, alphabetically-ish, no cap:


and that's the whole page bestie!! 🫢 this one's a library call, VendorShell(library call), and that's literally the footer right there β€” source, version and date all in one lil line πŸ’– go forth and configure ur shells, u absolute icon πŸ‘‘βœ¨