TRANSIENTSHELL(3)
π TransientShell β The TransientShell widget class π
okay so bestie, welcome to the TransientShell page β it's a library call, so go grab a snack, we're reading the whole thing π
β¨ NAME β¨
TransientShell β literally just the TransientShell widget class, that's the whole name, no notes π
πΈ SYNOPSIS πΈ
#include <Xm/Xm.h>
#include <X11/Shell.h>
like, that's it. two includes and you're in π«Ά
π¦ DESCRIPTION π¦
so TransientShell is the widget class you use for shell windows that the window manager can mess with and move around β but that are not allowed to be iconified on their own. periodt.
think about it: a DialogBox with no application behind it is giving... nothing. it makes no sense. so the window manager only iconifies these bad boys if the main application shell gets iconified. they go down together, they stay up together. iconic couple behavior fr fr π
π Classes π
TransientShell inherits behavior and resources from these absolute legends:
CoreCompositeShellWMShellVendorShell
the class pointer is transientShellWidgetClass β¨
the class name is TransientShell β¨
π New Resources π
okay so this next bit is a whole set of widget resources that you β the programmer β get to use to specify data. and lowkey, you can also set the resource values for the inherited classes to set attributes on this widget. slay, options.
quick PSA on the .Xdefaults naming rules, because they're a whole vibe:
- to reference a resource by name or by class in a
.Xdefaultsfile, remove theXmNorXmCprefix and just use the remaining letters. - to specify one of the defined values for a resource in a
.Xdefaultsfile, remove theXmprefix and use the remaining letters (lowercase or uppercase, either one, but do not skip the underscores between words). - the codes in the access column tell you whether a resource can be set at creation time (C), set using
XtSetValues(S), retrieved usingXtGetValues(G), or is not applicable (N/A).
also, heads up: on top of these new resources, TransientShell overrides the XmNsaveUnder resource in Shell and the XmNtransient resource in WMShell. not new, just redefined, okay? π
here's the TransientShell Resource Set π
XmNtransientForβ class:XmCTransientFor, type:Widget, default:NULL, access:CSG
and here's what that one actually does:
XmNtransientForβ specifies a widget that the shell acts as a pop-up for. and if this resource isNULL, or it's a widget that hasn't been realized yet? thenXmNwindowGroupgets used instead. no cap, that's the fallback π«Ά
π§ Inherited Resources π§
TransientShell also inherits behavior and resources from all those superclasses we listed above, and they come in their own little sets of widget resources that you β yes, you β use to specify data. for a complete description of each resource, go read the reference page for that superclass. i'm not summarising 40 pages, bestie, i love you but no π
and the .Xdefaults rules are the same as before, so let me run it back:
- reference a resource by name or class in a
.Xdefaultsfile β remove theXmNorXmCprefix, keep the remaining letters. - specify one of the defined values in a
.Xdefaultsfile β remove theXmprefix, keep the remaining letters (lowercase or uppercase, your call, but keep the underscores between words). - the access column codes: set at creation time (C), set using
XtSetValues(S), retrieved usingXtGetValues(G), or not applicable (N/A).
β¨ VendorShell Resource Set β¨
okay bestie, this is the whole resource table for VendorShell and honestly it's giving very much "main character energy" π
. Every row is a resource name, its class, its type, its default, and how you're allowed to touch it (that's the access column, iykyk). We're going in order, no skipping, no cap π«Ά
XmNaudibleWarningβ classXmCAudibleWarning, typeunsigned char, defaultXmBELL, accessCSGπXmNbuttonFontListβ classXmCButtonFontList, typeXmFontList, defaultdynamic, accessCSGβ¨XmNbuttonRenderTableβ classXmCButtonRenderTable, typeXmRenderTable, defaultdynamic, accessCSGπXmNdefaultFontListβ classXmCDefaultFontList, typeXmFontList, defaultdynamic, accessCGπ¦XmNdeleteResponseβ classXmCDeleteResponse, typeunsigned char, defaultXmDESTROY, accessCSGπXmNinputMethodβ classXmCInputMethod, typeString, defaultNULL, accessCSGβ¨οΈXmNinputPolicyβ classXmCInputPolicy, typeXmInputPolicy, defaultXmPER_SHELL, accessCSGπΈXmNkeyboardFocusPolicyβ classXmCKeyboardFocusPolicy, typeunsigned char, defaultXmEXPLICIT, accessCSGπ―XmNlabelFontListβ classXmCLabelFontList, typeXmFontList, defaultdynamic, accessCSGπXmNlabelRenderTableβ classXmCLabelRenderTabel, typeXmRenderTable, defaultdynamic, accessCSGπ (yes bestie, the class is spelledXmCLabelRenderTabelβ that's not a typo on my end, that's literally what the page says, we do NOT "fix" it π)XmNlayoutDirectionβ classXmCLayoutDirection, typeXmDirection, defaultXmLEFT_TO_RIGHT, accessCGβ‘οΈXmNmwmDecorationsβ classXmCMwmDecorations, typeint, default-1, accessCGπͺXmNmwmFunctionsβ classXmCMwmFunctions, typeint, default-1, accessCGπ§XmNmwmInputModeβ classXmCMwmInputMode, typeint, default-1, accessCGπ±οΈXmNmwmMenuβ classXmCMwmMenu, typeString, defaultNULL, accessCGπXmNpreeditTypeβ classXmCPreeditType, typeString, defaultdynamic, accessCSGβοΈXmNshellUnitTypeβ classXmCShellUnitType, typeunsigned char, defaultXmPIXELS, accessCSGπXmNtextFontListβ classXmCTextFontList, typeXmFontList, defaultdynamic, accessCSGπXmNtextRenderTableβ classXmCTextRenderTable, typeXmRenderTable, defaultdynamic, accessCSGπXmNunitTypeβ classXmCUnitType, typeunsigned char, defaultXmPIXELS, accessCSGπXmNuseAsyncGeometryβ classXmCUseAsyncGeometry, typeBoolean, defaultFalse, accessCSGβ
fr fr, that dynamic in the Default column? It means the actual default gets worked out at runtime, not a hardcoded value sitting there β that's just what the page says, so don't come for me π
okay bestie, the WMShell table is HERE and it's a whole mood β every single resource, class, type, default and access code, all of it, zero skips, we're not doing that today π
π¦ WMShell Resource Set π¦
So real quick on how to read this: each line gives you the Name (the resource), its Class, its Type, its Default value, and its Access code. Every single one of these lives on the WMShell widget, and every single one has access CSG. Obsessed. Let's go:
XmNbaseHeightβ classXmCBaseHeight, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNbaseWidthβ classXmCBaseWidth, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNheightIncβ classXmCHeightInc, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNiconMaskβ classXmCIconMask, typePixmap, defaultNULL, accessCSGXmNiconPixmapβ classXmCIconPixmap, typePixmap, defaultNULL, accessCSGXmNiconWindowβ classXmCIconWindow, typeWindow, defaultNULL, accessCSGXmNiconXβ classXmCIconX, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNiconYβ classXmCIconY, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNinitialStateβ classXmCInitialState, typeint, defaultNormalState, accessCSGXmNinputβ classXmCInput, typeBoolean, defaultTrue, accessCSGXmNmaxAspectXβ classXmCMaxAspectX, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNmaxAspectYβ classXmCMaxAspectY, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNmaxHeightβ classXmCMaxHeight, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNmaxWidthβ classXmCMaxWidth, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminAspectXβ classXmCMinAspectX, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminAspectYβ classXmCMinAspectY, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminHeightβ classXmCMinHeight, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNminWidthβ classXmCMinWidth, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNtitleβ classXmCTitle, typeString, defaultdynamic, accessCSGXmNtitleEncodingβ classXmCTitleEncoding, typeAtom, defaultdynamic, accessCSGXmNtransientβ classXmCTransient, typeBoolean, defaultTrue, accessCSGXmNwaitForWmβ classXmCWaitForWm, typeBoolean, defaultTrue, accessCSGXmNwidthIncβ classXmCWidthInc, typeint, defaultXtUnspecifiedShellInt, accessCSGXmNwindowGroupβ classXmCWindowGroup, typeWindow, defaultdynamic, accessCSGXmNwinGravityβ classXmCWinGravity, typeint, defaultdynamic, accessCSGXmNwmTimeoutβ classXmCWmTimeout, typeint, default5000 ms, accessCSG
and there's more where that came from bestie, don't you dare close the page π
πΈ Shell Resource Set πΈ
okay bestie, these are the resources that come with the shell widget itself, and they are everything π each one lists its Name, Class, Type, Default, and Access β write them down, no cap:
XmNallowShellResizeβ classXmCAllowShellResize, typeBoolean, defaultFalse, accessCG. like, by default she does NOT want to be resized, periodt.XmNcreatePopupChildProcβ classXmCCreatePopupChildProc, typeXtCreatePopupChildProc, defaultNULL, accessCSG. a lil callback proc for making popup children, and rn it's just vibing atNULLπXmNgeometryβ classXmCGeometry, typeString, defaultNULL, accessCSG. the geometry string, unset by default, iconic.XmNoverrideRedirectβ classXmCOverrideRedirect, typeBoolean, defaultFalse, accessCSG.XmNpopdownCallbackβ classXmCCallback, typeXtCallbackList, defaultNULL, accessC. fires when she pops down π¦XmNpopupCallbackβ classXmCCallback, typeXtCallbackList, defaultNULL, accessC. fires when she pops up β¨ (sister resources, we love a matching set)XmNsaveUnderβ classXmCSaveUnder, typeBoolean, defaultTrue, accessCSG. she saves what's underneath, and yes that's the default, slay.XmNvisualβ classXmCVisual, typeVisual *, defaultCopyFromParent, accessCSG. it's giving "I just copied my parent, respectfully" π
π Composite Resource Set π
and these are the ones she inherits from composite, the little group-chat of child widgets π«Ά same deal β Name, Class, Type, Default, Access:
XmNchildrenβ classXmCReadOnly, typeWidgetList, defaultNULL, accessG. the list of children. read-only, so hands off bestie πXmNinsertPositionβ classXmCInsertPosition, typeXtOrderProc, defaultNULL, accessCSG. tells her where new kids get inserted into the lineup.XmNnumChildrenβ classXmCReadOnly, typeCardinal, default0, accessG. how many children she has, also read-only, and she starts at0β we been knew π
Okay so, resource buffet time π this is the Core Resource Set β every single thing TransientShell gets from its Core ancestor. Name, class, type, default, access. All of it. No skips. We do not gatekeep here π
The Access column shows which of the C, S, G access modes apply to each resource β whatever combo shows up is what you get, periodt.
XmNacceleratorsβ classXmCAccelerators, typeXtAccelerators, defaultdynamic, accessCSGXmNancestorSensitiveβ classXmCSensitive, typeBoolean, defaultdynamic, accessGXmNbackgroundβ classXmCBackground, typePixel, defaultdynamic, accessCSGXmNbackgroundPixmapβ classXmCPixmap, typePixmap, defaultXmUNSPECIFIED_PIXMAP, accessCSGXmNborderColorβ classXmCBorderColor, typePixel, defaultXtDefaultForeground, accessCSGXmNborderPixmapβ classXmCPixmap, typePixmap, defaultXmUNSPECIFIED_PIXMAP, accessCSGXmNborderWidthβ classXmCBorderWidth, typeDimension, default0, accessCSGXmNcolormapβ classXmCColormap, typeColormap, defaultdynamic, accessCGXmNdepthβ classXmCDepth, typeint, defaultdynamic, accessCGXmNdestroyCallbackβ classXmCCallback, typeXtCallbackList, defaultNULL, accessCXmNheightβ classXmCHeight, typeDimension, defaultdynamic, accessCSGXmNinitialResourcesPersistentβ classXmCInitialResourcesPersistent, typeBoolean, defaultTrue, accessCXmNmappedWhenManagedβ classXmCMappedWhenManaged, typeBoolean, defaultTrue, accessCSGXmNscreenβ classXmCScreen, typeScreen *, defaultdynamic, accessCGXmNsensitiveβ classXmCSensitive, typeBoolean, defaultTrue, accessCSGXmNtranslationsβ classXmCTranslations, typeXtTranslations, defaultdynamic, accessCSGXmNwidthβ classXmCWidth, typeDimension, defaultdynamic, accessCSGXmNxβ classXmCPosition, typePosition, default0, accessCSGXmNyβ classXmCPosition, typePosition, default0, accessCSG
πΈ Translations πΈ
Bestie. Sit down. Deep breath. π«Ά
There are no translations for TransientShell.
That's it. That's the whole section. Not a single one. The void stared back and it was giving absolutely nothing π³οΈβ¨
π«Ά RELATED π«Ά
The girlies and them that TransientShell hangs with π go read these next:
And that's the whole page, bestie β you ate it, every last resource, no crumbs π
Straight from the TransientShell(library call) manual, footer and all π it's the library-call source line, so that's the pedigree, and the date on the tin is whatever your system stamped it with β go forth and shell, my love, you've got this ππ¦π
π¦ where this page comes from
- alpine 3.24: motif-doc 2.5.2-r0 Β· LGPL-2.1-or-later
- arch rolling: openmotif 2.3.8-4 Β· LGPL-2.1-or-later
- centos-stream 9: motif-devel 2.3.4-32.el9 Β· LGPLv2+
- centos-stream 9: motif-devel 2.3.4-32.el9 Β· LGPLv2+
- epel 10: motif-devel 2.3.8-2.el10_2 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-1.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-1.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-2.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 43: motif-devel 2.3.8-2.fc43 Β· LicenseRef-Callaway-LGPLv2+
- fedora 44: motif-devel 2.3.8-3.fc44 Β· LicenseRef-Callaway-LGPLv2+
- fedora 44: motif-devel 2.3.8-3.fc44 Β· LicenseRef-Callaway-LGPLv2+
- nixos 26.05: motif 2.3.8
- nixpkgs unstable: motif 2.3.8
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: motif-devel 2.3.8-bp160.1.1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms