MyFrame(1x)

πŸ“¦
version 2.2.12 Β· 3 versions
, in ubuntu jammy

MyFrame(1x) β€” straight out of the AfterStep X11 window manager manual, and bestie, it's a whole aesthetic πŸ’…


🌸 NAME 🌸

MyFrame β€” the blueprint that tells AfterStep how to construct a window's frame πŸŽ€


✨ CONFIGURATION OPTIONS ✨

okay so this is the big one. every knob you can twist to make your window frames eat, no cap πŸ‘‘

  • AllowBorder β€” says the beveled borders SHOULD be drawn around the window frame and the titlebar. this one's on by default, so it's only actually useful when you're inheriting previously defined window frames. πŸ¦‹
    • See also: Inherit MyFrame for the deets.
  • CondenseTitlebar Left|Right|Center β€” lets titlebars be smaller than the size of the window, iconic behavior fr. that parameter picks the Alignment of the whole entire titlebar.
    • See also: Alignment flags for further details.
  • Corner [ SouthEast | SouthWest | NorthEast | NorthWest ] "pixmap_name" β€” tells you which corner of the window frame gets decorated, and which pixmap gets used to do it. πŸ’–
  • CornerAlign β€” FIXME: add proper description here. 😭
    • See also: Alignment flags for further details.
  • CornerBevel Bottom|Extra|NoInline|NoOutline|none|Left|Right|Top β€” sets the default bevel of a window's frame corners ✨
    • if you need different bevels for different window states, use CornerFocusedBevel, CornerUnfocusedBevel, CornerStickyBevel instead.
    • See also: Bevel flags for further details.
  • CornerFBevel β€” alias for CornerFocusedBevel. same energy, shorter name πŸ’…
    • 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 focused state, main character hours fr.
    • if this isn't used, the values set with CornerBevel get used instead.
    • 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 sticky state. heads up, this one overwrites any value you set with CornerBevel. 🚨
    • if this isn't used, the values set with CornerBevel get 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 unfocused state (the wallflower era).
    • if this isn't used, the values set with CornerBevel get used.
    • See also: Bevel flags for further details.
  • East "pixmap_name" β€” picks the pixmap displayed in the right border of the window frame, but only if DecorateFrames is set. πŸ‘‘
  • FrameFStyle MyStyle β€” alias for FrameFocusedStyle. ✨
  • FrameFocusedStyle MyStyle β€” defines the MyStyle to apply to the window frame when the window is in focused state.
  • FrameSStyle MyStyle β€” alias for FrameStickyStyle. πŸ¦‹
  • FrameStickyStyle MyStyle β€” defines the MyStyle to apply to the window frame when the window is in sticky state.
  • FrameUStyle MyStyle β€” alias for FrameUnfocusedStyle. πŸ’œ
  • FrameUnfocusedStyle MyStyle β€” defines the MyStyle to apply to the window frame when the window is in unfocused state.
  • Inherit frame_name β€” names a MyFrame to inherit options from. options from frame_name will override previously specified options for this frame. lowkey this is the smart-girl move: Inherit is a great way to save memory and network bandwidth when the same BackPixmap is used for several frames, because the pixmap only gets loaded for the inherited frame. 🧚
    • See also: Inherit MyFrame for the deets.
  • 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. default is Spacer - Buttons - TitleSpacer, so that's the vibe unless you say otherwise. ✨
    • See also: Titlebar Layout Flags for further details.
  • MyFrame " frame_name " β€” this one's a whole little block, so here it is in its natural habitat:
MyFrame " frame_name "

          frame_option

~MyFrame

Specifies the beginning of a frame definition. the frame can be referred to later by frame_name. ~MyFrame ends a frame definition. so it's like a lil sandwich πŸ₯ͺ: MyFrame opens it, ~MyFrame closes it, and all your frame_options go in the middle.

  • NoBorder β€” says the beveled borders should not be drawn around the window frame and titlebar. the anti-AllowBorder, fr.
  • NoCorner β€” FIXME: add proper description here. πŸ’€
  • NoSide β€” FIXME: add proper description here. πŸ’€
  • North "pixmap_name" β€” picks the pixmap displayed in the top border of the window frame, if DecorateFrames is set. πŸ‘‘
  • NorthEast "pixmap_name" β€” picks the pixmap displayed in the top right corner of the window frame, if DecorateFrames is set. πŸ¦‹
  • NorthWest "pixmap_name" β€” picks the pixmap 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. yep, the original text really does say "left of the window title" for the right-hand one β€” we're just reporting the facts bestie, not fixing them πŸ™ˆ
    • See also: Titlebar Layout Flags for further details.
  • Side [ South | North | East | West ] "pixmap_name" β€” names which side of the window frame gets decorated, and which pixmap gets used to do it. ✨
  • 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 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 focused state.
    • if this isn't used, the values set with SideBevel get 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 sticky state.
    • if this isn't used, the values set with SideBevel get 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 unfocused state.
    • if this isn't used, the values set with SideBevel get used.
    • See also: Bevel flags for further details.
  • South "pixmap_name" β€” picks the pixmap displayed in the bottom border of the window frame, if DecorateFrames is set. πŸ‘‘
  • SouthEast "pixmap_name" β€” picks the pixmap displayed in the bottom right corner of the window frame, if DecorateFrames is set. πŸ¦‹
  • SouthWest "pixmap_name" β€” picks the pixmap 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 want 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 β€” …and that's literally where part 1 runs out of page, bestie 😭 the rest is coming in the next part, stay tuned πŸ’–

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. Main character energy, fr.
  • 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 β€” no description in the original, bestie 😭
  • 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 surrounded by what we call frame decoration, and each frame decoration can be built from 9 TBars:

  1. Main Titlebar with icons on left, label in the middle and icons on right. Label may also have special underlying image - so called Title Background. Ordering of this elements is set by TitleButtonOrder setting ( see below ).
  2. 4 frame sides. Each of this have fixed width that is determined by SideSize setting or image size if SideSize is omitted. Second dimension of the TBar changes to match the size of the window.
  3. 4 frame corners. Each of this have both fixed width and height, as determined by CornerSize setting or image size.

Each of above elements is rendered by generating background using respective MyStyle, and then overlaying images/buttons and text on top of it. Default overlaying is done using composition method alpha-blend. In case of main Titlebar that could be changed. Bevel is then drawn on top of the image as specified in respective setting.

MyFrame allows different MyStyles to be used for titlebar and frame decorations. If any of those are omitted - default setting from FWindowStyle/UWindowStyle/SWindowStyle will be used.

Important: If you use semi-transparent images for frame sides - they will be overlayed on top of MyStyle generated background, so if you want it to be overlayed over root background - you should use MyStyle with BackPixmap set to 129 or 149.

Also note that unless you use MYStyle with BackPixmap 126 and 125 - frame decorations will not be shaped. Likewise if you want 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 1x1 completely transparent image (supplied as desktop/icons/common/empty.xpm ).

To identify side/corner it is possible to use abbreviations, such as: N, NW, SW, etc.

All the CompositionMethod settings must have one of the BackPixmap types from MyStyles ( ie 130-143 )

Align setting may have different meaning/capabilities for different items. When applied to text - it simply aligns text to sides mentioned. When applied to image - such as title background or frame side pixmap - it also specifies if image should be tiled, scaled or left same size. Make sure that you use HTiled,VTiled or HScaled,VScaled for frame sides - otherwise images on they will not be resized to match window size (this is also a feature :).

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

Align Left,Right

will center item horizontally.

Note that TitleBackground option allows you to specify an image to be used under titlebar label in addition to the MyStyle. This was done for better shaped titlebars. You may have MyStyle to be completely transparent shape, while TitleBackground some non-transparent image, and that will provide better visibility for the titlebar text.

              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

πŸ’– And that's the tea, bestie! This iconic page is from the 3rd Berkeley Distribution, AfterStep v.2.2.12, and it's the manual for MyFrame(1x). Periodt. βœ¨πŸ‘‘

πŸ“¦ where this page comes from