ColorScheme(7x)
β¨ ColorScheme(7x) β¨
AfterStep X11 window manager π
Okay bestie, sit down, hydrate, because this page is the palette bible for AfterStep. ColorScheme defines the actual color values for a standard set of internal color names β and those names are what you drop into your other config files. It's giving "one file to color them all". π¨β¨
π NAME π
ColorScheme β defines color values for a standard set of internal color names, to be used in other configuration files. No cap, that's the whole job description. π«Ά
π CONFIGURATION OPTIONS π
Every single one of these is a named color slot. Fill them in, and AfterStep knows what to paint where. Go off. π
Activeβ the color that goes on the background of different focused elemets, like a focused window's titlebar, a selected menu item, etc. πΈ The vibe requirement: it should contrast withBase,Inactive1andInactive2in hue, but be similar in saturation. Yes the spec really said "elemets". We move.ActiveDarkβ this one should have slightly lesser value thanActive(specifically, be 5-10% darker). Useful when the background of a focused titlebar is a gradient. πActiveLightβ this one should have slightly higher value thanActive(5-10% lighter). Also for gradiented focused titlebar backgrounds. β¨ActiveTextβ the text color on focused titlebars. It should be in high value contrast with theActivecolor. Readable or bust. πAngleβ defines the angle on the hue circle betweenInactive1,BaseandInactive2colors, in color schemes that are automagically calculated by AfterStep. Default angle is 30 degrees. Use a smaller angle to make the Inactive and Base colors more similar. πBaseβ the color that defines the color scheme. It'll be used for the desktop background. When AfterStep is allowed to calculate the color scheme automagically, it uses this color in conjunction with theAnglevalue as the base of calculations. πBaseDarkβ should be about 10% darker than theBasecolor, but with similar hue and saturation. Useful for drawing a gradiented desktop background. πBaseLightβ should be about 10% lighter than theBasecolor, again with similar hue and saturation. Also for gradiented desktop backgrounds. β¨Cursorβ this color is used for thepmousepointer, and it should be in high contrast with all the other colors. It's the main character of pointers. π±οΈπDisabledTextβ the color of the text of disabled menu items. Should be very similar to the menu item's background color. Faded, but make it fashion. πHighActiveβ used for focused menus. Should be similar to theActivecolor, but somewhat lighter. π₯HighActiveBackβ used for the current menu item's background. Should be similar, but somewhat brighter than theActivecolor. βHighActiveBackDarkβ should be 10% darker than theHighActiveBackcolor. Useful for a gradiented background of a selected menu item. πHighActiveBackLightβ should be 10% lighter than theHighActiveBackcolor. Also useful for a gradiented background of a selected menu item. β¨HighActiveDarkβ should be 10% darker than theHighActivecolor. Useful for a gradiented background of a focused menu titlebar. πHighActiveLightβ should be 10% lighter than theHighActivecolor. Also useful for a gradiented background of a focused menu titlebar. β¨HighActiveTextβ the color used for drawing text on a focused menu titlebar. Should be in high contrast with theHighActivecolor. πHighInactiveβ used for unfocused menus. Should be similar to theInactive1color, but somewhat lighter. π¦HighInactiveBackβ used for an inactive menu item's background. Should be similar, but somewhat brighter than theHighInactivecolor. βHighInactiveBackDarkβ should be 10% darker than theHighInactiveBackcolor. Useful for a gradiented background of an inactive menu item. πHighInactiveBackLightβ should be 10% lighter than theHighInactiveBackcolor. Useful for a gradiented background of an inactive menu item. β¨HighInactiveDarkβ should be 10% darker than theHighInactivecolor. Useful for a gradiented background of inactive menu titlebars. πHighInactiveLightβ should be 10% lighter than theHighInactivecolor. Useful for a gradiented background of inactive menu titlebars. β¨HighInactiveTextβ the color of the text on an unfocused menu titlebar. Should be highly contrasting with theHighInactivecolor. πInactive1β the primary color used for an unfocused window titlebar's background. π¦Inactive1Darkβ should be 10% darker thanInactive1. Useful for a gradiented background of unfocused windows. πInactive1Lightβ should be 10% lighter thanInactive1. Useful for a gradiented background of unfocused windows. β¨Inactive2β the secondary color used for an unfocused window titlebar's background. This is the one you use for unfocused sticky windows. πInactive2Darkβ should be 10% darker thanInactive2. Useful for a gradiented background of sticky windows. πInactive2Lightβ should be 10% lighter thanInactive2. Useful for a gradiented background of sticky windows. β¨InactiveText1β the color of the text on unfocused titlebars. Should be highly contrasting withInactive1. πInactiveText2β the color of the text on sticky titlebars. Should be highly contrasting withInactive2. π
That's every color name in this half of the page, babes. More is literally coming β don't go anywhere. π«Άπ
β¨ DESCRIPTION β¨
okay bestie so AfterStep color schemes exist for one very specific reason: putting together a set of colors that actually look good next to each other is hard, and this whole system is here to make that pain go away π while ALSO giving you extra flexibility when you're out here designing your own custom looks and themes.
Here's the tea π AfterStep Colorscheme is a standard set of color names, and those names can have different color values assigned to them. Those color names get used when you're defining your Look and in XML images. So by assigning different color values to the same color names, you can instantly flip colors across an entire Look β no touching any images, no touching any configuration files. Iconic behavior honestly.
And here's the part that's giving main character energy: not all of the Colorscheme colors have to be explicitly defined. Only the Base color matters. AfterStep can autogenerate a genuinely good-looking colorscheme from that single color β¨. And if you DO explicitly define a color in the colorscheme file, that overrides any automatic choice. Example of this: the NeXTish colorscheme, where literally all of the colors are customized. Also, if you pick a grayscale color for Base, it'll generate a grayscale colorscheme where different shades of gray are used for the different colors.
Selected colorscheme file gets loaded by all modules and by afterstep proper. And the moment a new colorscheme is selected β that triggers reloading of the Look file and all image files. No chill, instant glow-up π.
All of the supplied Look files were written to take advantage of the AfterStep colorschemes, bestie. You're not fighting the system here, the system was built for you π«Ά
Read on for more deets on how colorschemes get generated and other color-related topics:
π HARMONIOUS COLORS π
Picking a set of matching colors is a serious matter β artists and designers have studied this for centuries, no cap. And as a result, there are certain rules that were developed to make this task simpler.
First things first: instead of picking colors in Red/Green/Blue colorspace, you should be picking matching colors using Hue/Saturation/Value (HSV) colorspace. Color hues are the most important characteristic of a color, and they're measured in degrees:
0β red hue60β yellow hue120β green hue180β cyan hue240β blue hue300β purple hue360β same hue as0, so, red again π
Hues can be placed on a so-called color circle, which makes it way easier to choose matching colors.
Now, there are two main approaches to selecting a color scheme β single hue, or several hues.
Single hue colors differ in their saturation, and usually give you a soothing, simple theme. That theme can be pleasant to look at, but lowkey it lacks excitement, and it makes it hard to distinguish between different elements.
Using several hues makes the theme a bit more exciting and adds more visual cues to the screen β which means easier operation, and it lets the user relax their eye muscles, which results in better ergonomics. So this is the approach you should be using for user interface colors, periodt. Now, how do you select hues that compose a harmonious theme? The rule of thumb is that hues close to each other on the color circle go well together, while hues on opposing sides of the circle create a contrasting effect.
AfterStep handles this whole "selecting harmonious colors" task by generating a set of colors from a single color using designer rules. Slay π₯
πΌοΈ IMAGE HUES πΌοΈ
The look of the screen (aka the Theme) includes a ton of images β icons, backgrounds, bars, etc. Each one of those images may have one or several dominating hues, which brings us right back to matching hues so you can achieve a harmonious look.
The rule of thumb to follow here: each image on any particular interface element (like a titlebar) should have at least one dominating hue that's the same as the hue of the background of that element.
There are several ways to make sure the hue of the image matches the hue of the background:
- tinting β if an image has a single dominating hue, it could be converted to grayscale and then tinted with the color of the background.
- hue rotation β if an image has several hues, or a hue and some grayscale parts, its hues could be rotated by converting the image into HSV colorspace, changing the range of hues, and then converting the image back into RGB colorspace.
- superimposition β also, image hues may be altered by superimposing the image over the background image using the
allanoncomposition method, where each pixel is substituted with the average of the image's pixel value and the background's pixel value.
AfterStep handles the task of changing hues of images using XML image scripting. See asimagexml for more on that.
π¨ COLOR NAMES π¨
AfterStep Colorscheme color names can be separated into several categories:
Foreground and Background
Foreground colors are used to render text, while background colors make up a backdrop for that text. Now, there are several constraints on foreground colors β they should be contrasting with backgrounds, and it is always better to constrain foreground colors to black and white, because colored text tends to "bleed" on top of the background, making it less legible π. Another problem with the foreground being colorful is that it increases strain on the user's eyes, forcing them to adapt to too many different contrasting colors.
Base, Active and Inactive
The general color theme of the screen is determined by the background. So we call it a Base color, and we determine the rest of the colors in relation to it.
Now, at any given time there could be one element that's focused and active, while the others are off-focus and should assume lower visibility. So we define Active colors to be used with focused items (these should be contrasting with the Base color). We also define Inactive colors to be used with off-focus items (and it's a good idea to make them analogues to the Base color).
And since we may have 2 kinds of off-focus windows β sticky and non-sticky β we actually define 2 Inactive colors: Inactive1 and Inactive2 π
Gradient colors
Gradients create a very appealing look when they're used to color titlebars and other interface elements. Generally it's a good idea to use colors of the same hue, but with different intensity. To denote colors designated for gradients, we add a Dark/Light postfix to the color names.
π¨ COLOR VALUES π¨
AfterStep supports extremely flexible and extensive ways to define a color value. The standard approach is to use #RRGGBB notation. On top of that, AfterStep also supports the following notations:
#RGBβ same as#RRGGBB, only using 4-bit values for the components. For example,#F84is the same as#F08040.#ARGBβ this is the same as#RGB, plus an Alpha value is added (the Alpha value defines the opacity of the color).#AARRGGBBβ this is the same as#RRGGBB, plus an 8-bit Alpha value is added.hsv(hue,saturation,value)β defines a color using the HSV colorspace. Hue is measured from 0 to 360 degrees, saturation and value are measured from 0 to 100.rgb(red,green,blue)β defines a color in the RGB colorspace. Similar to the#RRGGBBform, but the values are not in hex, they're in decimals (from 0 to 255). It also allows for nested expressions, such as:rgb(128,128,blue(Base)).ahsv(alpha,hue,saturation,value)β same ashsv(), but also adds an Alpha channel.argb(alpha,red,green,blue)β same asargb(), but also adds an Alpha channel.hue(hue,color)β alters the hue of the given predefined color, preserving its saturation and value.sat(saturation,color)β alters the saturation of the given predefined color.val(value,color)β alters the value of the given predefined color.alpha(alpha,color)β alters the alpha of the given predefined color. This is useful for making colors from the colorscheme semi-transparent.red(red,color)β alters the red channel value of the given predefined color.green(green,color)β alters the green channel value of the given predefined color.blue(blue,color)β alters the blue channel value of the given predefined color.
Example β here's how it could be used in a colorscheme definition:
#This could be used in colorscheme definition :
Inactive1 #FF5C5B66 # or ahsv(255,245,10,40) or
argb(255,92,91,102)
#This could be used in MyStyle definition in the look. #That
makes Sticky window's titlebar semi-transparent:
BackMultiGradient 6 alpha(50,Inactive2Dark) 0.0
alpha(50,Inactive2Light) 1.0
Actual usage of colors is defined in the AfterStep look file, in MyStyle definitions. Also, all ColorScheme colors can be used in AfterStep XML images, similarly to standard X color aliases π¦
It's also possible to use different aspects of each color β red, green, blue and alpha, hue, saturation and value individually. For each color there are 6 variables defined using the following syntax: $ascs.colorname.component. For example, $ascs.Active.hue represents the hue of the Active color. This is useful while doing transformations (tinting, hsv, etc.) in AfterStep XML images.
and that's a wrap bestie π you just read part 2 of the ColorScheme(7x) page β this cutie came from the 3rd Berkeley Distribution, and it's for AfterStep v.2.2.12. go forth and pick some harmonious hues, you've fully got this πβ¨
π¦ where this page comes from
- ubuntu resolute: afterstep-data 2.2.12-19 Β· GPL-2.0-or-later
- ubuntu stonking: afterstep-data 2.2.12-19 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms