MyFrame(7x)

πŸ“¦
version 2.2.12 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

✨ NAME ✨

okay bestie so MyFrame is the whole vibe recipe that tells AfterStep (your X11 window manager, hey queen) exactly how to build a window's frame πŸ’– Fr fr it's MyFrame(7x) β€” the manpage, the legend, the blueprint for every titlebar and border you're about to obsess over.


πŸŽ€ CONFIGURATION OPTIONS πŸŽ€

No cap, this is the full menu of frame ingredients. Every single one is listed, so let's get into it 🌸

  • AllowBorder β€” says yes please to drawing beveled borders around the window frame and the titlebar. This one is on by default, so lowkey it only does anything when you're inheriting previously defined window frames.
    • See Also: Inherit MyFrame for details πŸ’œ
  • CondenseTitlebar Left|Right|Center β€” lets titlebars be smaller than the actual size of the window. The parameter is what sets the Alignment of the whole titlebar, slay.
    • See Also: Alignment flags for further details ✨
  • Corner [ SouthEast | SouthWest | NorthEast | NorthWest ] "pixmap_name" β€” picks which corner of the window frame gets decorated, and which pixmap gets to live there πŸŽ€
  • CornerAlign β€” FIXME: add proper description here. (not me leaving a FIXME in the manpage, iconic behavior tbh)
    • See Also: Alignment flags for further details ✨
  • CornerBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the default bevel for a window's frame corners.
    • If you need different bevels for the different window states, use CornerFocusedBevel, CornerUnfocusedBevel, CornerStickyBevel πŸ’…
    • See Also: Bevel flags for further details
  • CornerFBevel β€” Alias for CornerFocusedBevel.
    • See Also: Bevel flags for further details
  • CornerFocusedBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the bevel of the window's frame corners while the window is in the focused state πŸ‘‘
    • If this is not used, values set with CornerBevel will be used.
    • See Also: Bevel flags for further details
  • CornerSBevel β€” Alias for CornerStickyBevel.
    • See Also: Bevel flags for further details
  • CornerSize NorthEast|SouthEast|NorthWest|SouthWest|Any WIDTHxHEIGHT β€” FIXME: add proper description here. 🫠
  • CornerStickyBevel NorthEast|SouthEast|NorthWest|SouthWest|Any None|[Left,Top,Right,Bottom,Extra,NoOutline] β€” sets the bevel of the window's frame corners while the window is in the sticky state. This overwrites any value set with CornerBevel. Periodt.
    • If this is not used, values set with CornerBevel will be used.
    • See Also: Bevel flags for further details
  • CornerUBevel β€” Alias for CornerUnfocusedBevel.
    • See Also: Bevel flags for further details
  • CornerUnfocusedBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the bevel of the window's frame corners while the window is in the unfocused state πŸ’€
    • If this is not used, values set with CornerBevel will be used.
    • See Also: Bevel flags for further details
  • East "pixmap_name" β€” specifies the pixmap to be displayed in the right border of the window frame, if DecorateFrames is set. It's giving right-side moment ✨
  • FrameFStyle MyStyle β€” Alias for FrameFocusedStyle.
  • FrameFocusedStyle MyStyle β€” defines the MyStyle to apply to the window frame if the window is in the focused state πŸ‘‘
  • FrameSStyle MyStyle β€” Alias for FrameStickyStyle.
  • FrameStickyStyle MyStyle β€” defines the MyStyle to apply to the window frame if the window is in the sticky state πŸ“Œ
  • FrameUStyle MyStyle β€” Alias for FrameUnfocusedStyle.
  • FrameUnfocusedStyle MyStyle β€” defines the MyStyle to apply to the window frame if the window is in the unfocused state πŸ’€
  • Inherit frame_name β€” specifies a MyFrame to inherit options from. Options from frame_name will override previously specified options for this frame. Inherit is a good way to save memory and network bandwidth if the same BackPixmap is used for several frames, because the pixmap will only be loaded for the inherited frame. Efficiency queen πŸ’…
  • InheritDefaults β€” FIXME: add proper description here. 🫠
  • LeftBtnAlign β€” defines the alignment of the left buttons in the titlebar.
    • See Also: Look Alignment flags for further details ✨
  • LeftBtnBackAlign β€” defines the alignment of the background of the left buttons.
    • See Also: Alignment flags for further details ✨
  • LeftBtnBackground β€” defines the background to be used for the left buttons.
  • LeftSpacerBackAlign β€” defines the alignment of the background of the (by default) leftmost spacer of the titlebar.
    • See Also: Alignment flags for further details ✨
  • LeftSpacerBackground β€” defines the background to be used for the (by default) leftmost spacer of the titlebar.
    • See Also: Titlebar Layout for further details
  • LeftTitleSpacerBackAlign β€” defines the alignment of the background of the (by default) inner spacer, left of the window title.
    • See Also: Alignment flags for further details ✨
  • LeftTitleSpacerBackground β€” defines the background of the (by default) inner spacer, left of the window title.
  • LeftTitlebarLayout [Buttons] | [Spacer] | [TitleSpacer] β€” defines the order of the elements in the titlebar left of the window title, where the default is Spacer - Buttons - TitleSpacer.
    • See Also: Titlebar Layout Flags for further details
  • MyFrame " frame_name " β€” the start of a frame definition, babes. The frame can be referred to later by frame_name. And ~MyFrame ends a frame definition. Look at the shape of it:
MyFrame " frame_name "

         frame_option

~MyFrame
  • NoBorder β€” says absolutely not to drawing beveled borders around the window frame and titlebar. The opposite of AllowBorder, the villain origin story fr.
  • NoCorner β€” FIXME: add proper description here. 🫠
  • NoSide β€” FIXME: add proper description here. 🫠
  • North "pixmap_name" β€” specifies the pixmap to be displayed in the top border of the window frame, if DecorateFrames is set.
  • NorthEast "pixmap_name" β€” specifies the pixmap to be displayed in the top right corner of the window frame, if DecorateFrames is set.
  • NorthWest "pixmap_name" β€” specifies the pixmap to be displayed in the top left corner of the window frame, if DecorateFrames is set.
  • RightBtnAlign β€” defines the alignment of the right buttons in the titlebar.
    • See Also: Look Alignment flags for further details ✨
  • RightBtnBackAlign β€” defines the alignment of the background of the right buttons.
    • See Also: Alignment flags for further details ✨
  • RightBtnBackground β€” defines the background to be used for the right buttons.
  • RightSpacerBackAlign β€” defines the alignment of the background of the (by default) rightmost spacer of the titlebar.
    • See Also: Alignment flags for further details ✨
  • RightSpacerBackground β€” defines the background to be used for the (by default) rightmost spacer of the titlebar.
    • See Also: Titlebar Layout for further details
  • RightTitleSpacerBackAlign β€” defines the alignment of the background of the (by default) inner spacer, right of the window title.
    • See Also: Alignment flags for further details ✨
  • RightTitleSpacerBackground β€” defines the background of the (by default) inner spacer, right of the window title.
  • RightTitlebarLayout [Buttons] | [Spacer] | [TitleSpacer] β€” defines the order of the elements in the titlebar left of the window title, where the default is TitleSpacer, Buttons, Spacer.
    • See Also: Titlebar Layout Flags for further details
  • Side [ South | North | East | West ] "pixmap_name" β€” specifies the side of the window frame to be decorated and the pixmap to be used.
  • SideAlign β€” FIXME: add proper description here. 🫠
    • See Also: Alignment flags for further details ✨
  • SideBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the default bevel of a window's frame sides.
    • If you need different bevels for the different window states, use SideFocusedBevel, SideUnfocusedBevel, SideStickyBevel πŸ’…
    • See Also: Bevel flags for further details
  • SideFBevel β€” Alias for SideFocusedBevel.
    • See Also: Bevel flags for further details
  • SideFocusedBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the bevel of the window's frame sides while the window is in the focused state πŸ‘‘
    • If this is not used, values set with SideBevel will be used.
    • See Also: Bevel flags for further details
  • SideSBevel β€” Alias for SideStickyBevel.
    • See Also: Bevel flags for further details
  • SideSize β€” FIXME: add proper description here. 🫠
  • SideSlicing β€” FIXME: add proper description here. 🫠
  • SideStickyBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the bevel of the window's frame sides while the window is in the sticky state πŸ“Œ
    • If this is not used, values set with SideBevel will be used.
    • See Also: Bevel flags for further details
  • SideUBevel β€” Alias for SideUnfocusedBevel.
    • See Also: Bevel flags for further details
  • SideUnfocusedBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the bevel of the window's frame sides while the window is in the unfocused state πŸ’€
    • If this is not used, values set with SideBevel will be used.
    • See Also: Bevel flags for further details
  • South "pixmap_name" β€” specifies the pixmap to be displayed in the bottom border of the window frame, if DecorateFrames is set.
  • SouthEast "pixmap_name" β€” specifies the pixmap to be displayed in the bottom right corner of the window frame, if DecorateFrames is set.
  • SouthWest "pixmap_name" β€” specifies the pixmap to be displayed in the bottom left corner of the window frame, if DecorateFrames is set.
  • TitleAlign β€” FIXME: add proper description here. 🫠
    • See Also: Alignment flags for further details ✨
  • TitleBackground β€” defines the background to be used for the window title.
  • TitleBackgroundAlign β€” defines the alignment of the background of the window title.
    • See Also: Alignment flags for further details ✨
  • TitleBevel β€” determines the bevel to be drawn around the title bar. If you wish to have different bevels, depending on the window's state, use TitleFocusedBevel, TitleUnfocusedBevel or TitleStickyBevel πŸ’…
    • See Also: Bevel flags for further details
  • TitleCompositionMethod β€” FIXME: add proper description here. 🫠
  • TitleFBevel β€” Alias for TitleFocusedBevel.
    • See Also: Bevel flags for further details
  • TitleFCompositionMethod β€” Alias for TitleFocusedCompositionMethod.
  • TitleFHue β€” Alias for TitleFocusedHue.
  • TitleFSaturation β€”
  • TitleFSaturation β€” Alias for TitleFocusedSaturation. πŸ’…
  • TitleFStyle MyStyle β€” Alias for TitleFocusedStyle. ✨
  • TitleFocusedBevel β€” Determines the bevel to be drawn around the title bar if window is in focused state. πŸŽ€ See Also: Bevel flags for further details. πŸ‘€
  • TitleFocusedCompositionMethod β€” FIXME: add proper description here. πŸ’€
  • TitleFocusedHue β€” FIXME: add proper description here. πŸ’€
  • TitleFocusedSaturation β€” FIXME: add proper description here. πŸ’€
  • TitleFocusedStyle MyStyle β€” MyStyle to apply to titlebar if window is in focused state. πŸ’–
  • TitleHSpacing value β€” Defines the space in pixel to insert between window title and the buttons/spacers. Please note that CondenseTitlebar is influencing the behaviour of this option. πŸ“
  • TitleSBevel β€” Alias for TitleStickyBevel. See Also: Bevel flags for further details. πŸ‘‘
  • TitleSCompositionMethod β€” Alias for TitleStickyCompositionMethod. πŸŒ€
  • TitleSHue β€” Alias for TitleStickyHue. 🌈
  • TitleSSaturation β€” Alias for TitleStickySaturation. 🎨
  • TitleSStyle MyStyle β€” Alias for TitleStickyStyle. πŸ’«
  • TitleStickyBevel β€” Determines the bevel to be drawn around the title bar if window is in unfocused state. πŸ‹ See Also: Bevel flags for further details. πŸ‘€
  • TitleStickyCompositionMethod β€” FIXME: add proper description here. πŸ’€
  • TitleStickyHue β€” FIXME: add proper description here. πŸ’€
  • TitleStickySaturation β€” FIXME: add proper description here. πŸ’€
  • TitleStickyStyle MyStyle β€” MyStyle to apply to titlebar if window is in sticky state. πŸ€
  • TitleUBevel β€” Alias for TitleUnfocusedBevel. See Also: Bevel flags for further details. πŸ‘€
  • TitleUCompositionMethod β€” Alias for TitleUnfocusedCompositionMethod. πŸŒ€
  • TitleUHue β€” Alias for TitleUnfocusedHue. 🌈
  • TitleUSaturation β€” Alias for TitleUnfocusedSaturation. 🎨
  • TitleUStyle MyStyle β€” Alias for TitleUnfocusedStyle. πŸ’«
  • TitleUnfocusedBevel β€” Determines the bevel to be drawn around the title bar if window is in unfocused state. πŸ‹ See Also: Bevel flags for further details. πŸ‘€
  • TitleUnfocusedCompositionMethod β€” FIXME: add proper description here. πŸ’€
  • TitleUnfocusedHue β€” FIXME: add proper description here. πŸ’€
  • TitleUnfocusedSaturation β€” FIXME: add proper description here. πŸ’€
  • TitleUnfocusedStyle MyStyle β€” MyStyle to apply to titlebar if window is in unfocused state. πŸ’”
  • TitleVSpacing value β€” πŸ’€ bestie, the manpage literally left this one blank. no description provided. 🫠
  • West "pixmap_name" β€” Specifies the pixmap to be displayed in the left border of the window frame, if DecorateFrames is set. πŸ–ΌοΈ

🌈 Window frame decorations (aka MyFrame) 🌈

okay so literally every window is wrapped in what we call a frame decoration. And bestie, each frame decoration can be built from 9 TBars:

  1. The Main Titlebar β€” icons on the left, label in the middle, icons on the right. That label can also have a special underlying image, aka the Title Background. The order of these elements is controlled by the TitleButtonOrder setting (peep below πŸ‘‡).
  2. 4 frame sides. Each one has a fixed width set by the SideSize setting β€” or by the image size if SideSize is omitted. The second dimension of the TBar changes to match the size of the window. πŸ“
  3. 4 frame corners. Each one has both fixed width and height, determined by the CornerSize setting or by the image size. 🎯

So each of those elements gets rendered by generating a background using its respective MyStyle, then overlaying images/buttons and text on top of it. The default overlaying uses the composition method alpha-blend β€” for the main Titlebar that can be changed. Then a Bevel is drawn on top of the image as specified in the respective setting. πŸ’…

MyFrame lets you use different MyStyles for the titlebar and the frame decorations. If any of those are omitted, the default setting from FWindowStyle/UWindowStyle/SWindowStyle will be used. ✨

Important: If you use semi-transparent images for frame sides, they get overlayed on top of the MyStyle generated background. So if you want them overlayed over the root background instead, you should use MyStyle with BackPixmap set to 129 or 149. 🚨

Also note: unless you use MYStyle with BackPixmap 126 and 125, the frame decorations will not be shaped. Similarly, if you want a frame part to have only the shape of the image you specified, with no background at all, use MyStyle with BackPixmap set like so:

BackPixmap 126 empty.xpm

Where empty.xpm is a 1x1 completely transparent image (supplied as desktop/icons/common/empty.xpm). πŸ«₯

To identify a side or corner you can use abbreviations like N, NW, SW, etc. 🧭

All the CompositionMethod settings must have one of the BackPixmap types from MyStyles (i.e., 130-143). πŸ”’

The Align setting may have different meaning and capabilities for different items. When applied to text, it just aligns the text to the sides mentioned. When applied to an image β€” like a title background or frame side pixmap β€” it also specifies if the image should be tiled, scaled, or left at the same size. Make sure you use HTiled,VTiled or HScaled,VScaled for frame sides β€” otherwise the images on them will not be resized to match the window size (this is also a feature :). 😌

To center an item, specify Align to include both sides. For example:

Align Left,Right

will center the item horizontally. 🎯

Note that the TitleBackground option lets you specify an image to be used under the titlebar label in addition to the MyStyle. This was done for better shaped titlebars. You can have a MyStyle that is a completely transparent shape, while TitleBackground is some non-transparent image β€” that gives better visibility for the titlebar text. πŸ‘€

Here's the vibey syntax layout, bestie: πŸ‘‡

       MyFrame "name"
               Inherit     "name"]
           #traditional form :
               [North       ]      [East        ]
               [South       ]      [West        ]
               [NorthEast   ]
               [NorthWest   ]
               [SouthEast   ]      [SouthWest   ]
           #alternative form :      [Side
       North|South|East|West|Any []]      if pixmap is omitted - empty
       bevel will be drawn
               [NoSide      North|South|East|West|Any]
               [Corner      NorthEast|SouthEast|NorthWest|SouthWest|Any
       ]      if pixmap is omitted - empty bevel will be drawn
               [NoCorner    NorthEast|SouthEast|NorthWest|SouthWest|Any]
           #new settings :
               [TitleUnfocusedStyle   ]
               [TitleFocusedStyle     ]
               [TitleStickyStyle      ]
               [FrameUnfocusedStyle   ]
               [FrameFocusedStyle     ]
               [FrameStickyStyle      ]
               [TitleBackground       ]          gets overlayed over
       background and under the text
               [LeftBtnBackground     ]          gets overlayed over
       background and under the left block of buttons
               [LeftSpacerBackground  ]          gets overlayed over
       background between left block of buttons and text label
               [RightSpacerBackground ]          gets overlayed over
       background between right block of buttons and text label
               [RightBtnBackground    ]          gets overlayed over
       background and under the right block of buttons

           #additional attributes :      [SideSize
       North|South|East|West|Any

πŸ’– that's the tea, bestie. this page came from the 3rd Berkeley Distribution, AfterStep v.2.2.12, for MyFrame(7x). stay slaying ✨

πŸ“¦ where this page comes from