APPLICATIONSHELL(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

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

okay so bestie, you found it: ApplicationShell(library call) β€” this is the manual page for the ApplicationShell widget class, and we're gonna go through it together, no stress, no cap. ✨


🌸 SYNOPSIS 🌸

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

πŸ¦‹ DESCRIPTION πŸ¦‹

So, ApplicationShell is literally the main top-level window for an application. That's its whole thing, that's its job, and it eats every single time. πŸ‘‘

Quick vibe check though: an application should have more than one ApplicationShell only if it implements multiple logical applications. Like, don't just spawn extras for funsies. One app, one shell, periodt. πŸ’…

✨ Classes ✨

ApplicationShell inherits all its behavior and resources from these iconic ancestors, in order:

  • Core
  • Composite
  • Shell
  • WMShell
  • VendorShell
  • TopLevelShell

The class pointer is applicationShellWidgetClass.

The class name is ApplicationShell.

iykyk 🫢


πŸŽ€ New Resources πŸŽ€

Okay so here's the tea: this table defines the widget resources you (the programmer) get to use to specify data. And here's the best part β€” you can also set resource values for the inherited classes to set attributes for this widget. So flexible. So generous. We love to see it. πŸ’–

Now, for the .Xdefaults girlies: to reference a resource by name or by class in a .Xdefaults file, you remove the XmN or XmC prefix and just use the remaining letters. And to specify one of the defined values for a resource in a .Xdefaults file, you remove the Xm prefix and use the remaining letters (lowercase OR uppercase, your choice, live your truth β€” but keep any underscores between words). 🌈

The codes in the access column are the whole personality of this section:

  • C β€” can be set at creation time
  • S β€” can be set by using XtSetValues
  • G β€” can be retrieved by using XtGetValues
  • N/A β€” not applicable

🌟 ApplicationShell Resource Set 🌟

  • XmNargc β€” Class: XmCArgc Β· Type: int Β· Default: 0 Β· Access: CSG
  • XmNargv β€” Class: XmCArgv Β· Type: String * Β· Default: NULL Β· Access: CSG

XmNargc β€” specifies the number of arguments given in the XmNargv resource. The function XtInitialize sets this resource on the shell widget instance it creates by using its parameters as the values. efficient, honestly. ✨

XmNargv β€” specifies the argument list required by a session manager to restart the application if it is killed. 😭 This list should be updated at appropriate points by the application if a new state has been reached that can be directly restarted. The function XtInitialize sets this resource on the shell widget instance it creates by using its parameters as the values. And listen: when XtGetValues is called on this resource, the returned value is a pointer to the actual resource value and should not be freed. Do not free it. Not me warning you twice but also yes I am. πŸ™ˆ


πŸ’œ Inherited Resources πŸ’œ

ApplicationShell inherits behavior and resources from the following superclasses. For a complete description of each resource, go read the reference page for that superclass β€” this is a group project and they did their part. 🫢


πŸ‘‘ TopLevelShell Resource Set πŸ‘‘

  • XmNiconic β€” Class: XmCIconic Β· Type: Boolean Β· Default: False Β· Access: CSG
  • XmNiconName β€” Class: XmCIconName Β· Type: String Β· Default: NULL Β· Access: CSG
  • XmNiconNameEncoding β€” Class: XmCIconNameEncoding Β· Type: Atom Β· Default: dynamic Β· Access: CSG

🌈 VendorShell Resource Set 🌈

okay bestie, this is the VendorShell Resource Set β€” the whole entire vibe. columns are Name, Class, Type, Default, and Access. not a single row is getting left behind πŸ’…βœ¨

  • 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 ✨
  • 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 🌸
  • XmNunitType β€” class XmCUnitType, type unsigned char, default XmPIXELS, access CSG πŸ’…
  • XmNuseAsyncGeometry β€” class XmCUseAsyncGeometry, type Boolean, default False, access CSG πŸ’–

πŸŽ€ The WMShell Resource Set πŸŽ€

Okay bestie, this is the whole resource table for the WMShell class β€” every name, every class, every type, every default, every access mode. I'm not skipping one of them, so grab a snack. πŸ“

Also, heads up: every single one of these has access CSG β€” so instead of me saying it 26 times like a broken record, just know it's on all of them, mwah. πŸ’…

  • XmNbaseHeight β€” class XmCBaseHeight, type int, default XtUnspecifiedShellInt. It's giving "I'll tell you later" energy, fr fr.
  • XmNbaseWidth β€” class XmCBaseWidth, type int, default XtUnspecifiedShellInt. Same vibe, but horizontal ✨.
  • XmNheightInc β€” class XmCHeightInc, type int, default XtUnspecifiedShellInt. Height increments, lowkey mysterious until you set it.
  • XmNiconMask β€” class XmCIconMask, type Pixmap, default NULL. No mask unless you hand one over πŸ’€.
  • XmNiconPixmap β€” class XmCIconPixmap, type Pixmap, default NULL. Your icon's glow-up slot, currently empty.
  • XmNiconWindow β€” class XmCIconWindow, type Window, default NULL. Another NULL default, another blank canvas πŸ¦‹.
  • XmNiconX β€” class XmCIconX, type int, default XtUnspecifiedShellInt. Icon x-position, unspecified for now.
  • XmNiconY β€” class XmCIconY, type int, default XtUnspecifiedShellInt. Icon y-position, also playing hard to get.
  • XmNinitialState β€” class XmCInitialState, type int, default NormalState. She starts normal, periodt πŸ‘‘.
  • XmNinput β€” class XmCInput, type Boolean, default True. Input is on by default, as she should be.
  • XmNmaxAspectX β€” class XmCMaxAspectX, type int, default XtUnspecifiedShellInt. Aspect ratio ceiling, x side.
  • XmNmaxAspectY β€” class XmCMaxAspectY, type int, default XtUnspecifiedShellInt. Aspect ratio ceiling, y side.
  • XmNmaxHeight β€” class XmCMaxHeight, type int, default XtUnspecifiedShellInt. How tall is too tall? Unspecified, bestie.
  • XmNmaxWidth β€” class XmCMaxWidth, type int, default XtUnspecifiedShellInt. How wide is too wide? Also unspecified.
  • XmNminAspectX β€” class XmCMinAspectX, type int, default XtUnspecifiedShellInt. Aspect ratio floor, x side.
  • XmNminAspectY β€” class XmCMinAspectY, type int, default XtUnspecifiedShellInt. Aspect ratio floor, y side.
  • XmNminHeight β€” class XmCMinHeight, type int, default XtUnspecifiedShellInt. Minimum height, currently vibing as unspecified.
  • XmNminWidth β€” class XmCMinWidth, type int, default XtUnspecifiedShellInt. Minimum width, same deal πŸ’œ.
  • XmNtitle β€” class XmCTitle, type String, default dynamic. The main character's name tag ✨.
  • XmNtitleEncoding β€” class XmCTitleEncoding, type Atom, default dynamic. How that name tag gets encoded.
  • XmNtransient β€” class XmCTransient, type Boolean, default False. Not transient by default, she's here to stay 🫢.
  • XmNwaitForWm β€” class XmCWaitForWm, type Boolean, default True. Yes, we are waiting on the window manager, babe.
  • XmNwidthInc β€” class XmCWidthInc, type int, default XtUnspecifiedShellInt. Width increments, unspecified until you say otherwise.
  • XmNwindowGroup β€” class XmCWindowGroup, type Window, default dynamic. Your little window friend group 🧚.
  • XmNwinGravity β€” class XmCWinGravity, type int, default dynamic. Gravity: dynamic, so she moves how she moves.
  • XmNwmTimeout β€” class XmCWmTimeout, type int, default 5000 ms. Five whole seconds of patience for the WM, iconic ⭐.

That's the full set β€” 26 resources, zero skips, zero edits to the names, classes, types, defaults or access modes. No cap. πŸ’–

πŸŽ€ Shell Resource Set πŸŽ€

bestie, the columns are Name, Class, Type, Default, Access β€” and every single row is right here, no cap πŸ’…

  • 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: False, 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: False, access: CSG ✨
  • XmNvisual β€” class: XmCVisual, type: Visual *, default: CopyFromParent, access: CSG πŸ‘‘

πŸ¦‹ Composite Resource Set πŸ¦‹

and the Composite Resource Set is also serving, columns are Name, Class, Type, Default, Access β€” here we go 🫢

  • 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 🌸

πŸ’– Core Resource Set πŸ’–

okay bestie, here's the whole squad of resources this widget ships with β€” every name, class, type, default and access level, nothing skipped, nothing hidden, we're giving thorough πŸ’…

  • 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

🌸 Translations 🌸

There are no translations for ApplicationShell. That's it. That's the whole section. Empty. Void. Not a single one. πŸ™ˆ


the extended fam, the mutuals, the group chat that actually shows up:


and that's a wrap on the whole page, bestie πŸŽ€ this one's ApplicationShell(library call) β€” the library call section of the manual, in case you were wondering where to look it up, iykyk πŸ’œ go forth and shell responsibly, ily, bye βœ¨πŸ¦‹