# Window Manager Configuration The Window Manager's states and aesthetics can be configured through the config.ini file located in the folder `/etc/window_manager/config.ini`. Developers can add [Entries](#entries), which are specified in [INI format](#basic-format). The configuration file is not a requirement. If the config.ini file is not present, then the Window Manager will use the default settings. ## Basic format The configuration file is of format INI which are specified by [freedeskop](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s03.html). The basic format consist of [sections](#sections) and [entries](#entries). ### Sections A section is a logical container that groups related configuration options or settings together. Example of a section ``` ini [section] key1=value1 ``` See supported recognized [groups](#recognized-groups) ### Entries An entry is a single key-value pair within a section. ``` ini key=value1 ``` ### Keys A key is a unique identifier for a particular configuration entry. See the list of recognized keys in different groups in section [Recognized Keys](#recognized-keys) ### Key types Keys can be of the following types: - `Text`: all ASCII characters except for control characters - `Color`: ARGB [support Qt color value](https://doc.qt.io/qt-6.4/qml-color.html) that can be specified by SVG color name or hexadecimal form. - `Path`: Linux filesystem path. - `Url`: Qt QML url type, [see more](https://doc.qt.io/qt-6.4/qml-url.html). - `Numeric`: valid numeric integer or decimal number. ## Recognized Groups The following table shows groups that contain keys that the Window Manager recognize and support. | Group | Description | |---------------------------------------------------------------|--------------------------------------------------------------------| | [Settings](#keys-recognized-in-group-settings) | General settings | | [Background](#keys-recognized-in-group-background) | Visual settings for the background | | [QuickBar](#keys-recognized-in-group-quickbar) | QuickBar settings | | [QuickBarElements](#keys-recognized-in-group-quickbarelements)| Visual settings for QuickBar elements | | [LayoutSelector](#keys-recognized-in-group-layoutselector) | Visual setting for layout selector | | [Components](#keys-recognized-in-group-components) | Replacing built in components with user created custom components | ## Recognized Keys Here you can find all recognized keys with their definitions for the different [groups](#recognized-groups). ### Keys recognized in group Settings Table of [keys](#keys) that are recognized in the [group](#recognized-groups) `Settings`. | [Key](#keys) | Description |[Type](#key-types)| Supported Value | |---------------------|----------------------------------------------------------------------------------------------------|-------------------|-------------------------------------------| | Orientation | Window Manager orientation. | [Numeric](#key-types) |0,90,180,270
`DEFAULT:0` | | QuickBarPosition | QuickBar position in the Window Manager. | [Text](#key-types)|LEFT, TOP, RIGHT, BOTTOM
`DEFAULT:LEFT`| | DefaultLayout | Default layout to use on startup. | [Text](#key-types)|Layout ID
`DEFAULT:basic` | | DefaultClientIcon | Default icon used for clients without valid specific icon. | [Url](#key-types) | Valid file url
`DEFAULT:defaultClientIcon.gif` | | DefaultMinimizedMode|Global default MinimizedMode for clients with no preferences.|[Text](#key-types)|See,[X-MinimizedMode](application_registration.html#minimized-mode)
`DEFAULT:PAUSED`| | LayoutsDir | Path to the directory of layout json files. |[Path](#key-types) | Layout file path
`DEFAULT:/etc/window_manager/layouts` | | ClientsDir | Path to directory of client .desktop files. |[Path](#key-types) | Desktop file path
`DEFAULT:/etc/window_manager/clients`| | DisableQuickBar | Hide quickbar and clients cannot be moved. Intended for static client placements. | [Numeric](#key-types) |0: false , 1: true
`DEFAULT:0` | | DisableLayoutSelector | Layout selector will be hidden even when more than one layout is present. | [Numeric](#key-types) |0: false , 1: true
`DEFAULT:0` | | DisableRegionSelect | Disable longpressing Quickbar elements to assign a region. | [Numeric](#key-types) |0: false , 1: true
`DEFAULT:0` | ### Keys recognized in group Background Table of [keys](#keys) that are recognized in the [group](#recognized-groups) `Background`. | [Key](#keys) | Description | [Type](#key-types) | Supported Value | |------------------|-------------------------------------------------------------------------------|---------------------- |--------------------------------------------------| |Color | Background color | [Color](#key-types) | Valid QML color value
`DEFAULT:#444` | |Color2 | Gradient background color from Color (top) to Color2 (bottom), if set | [Color](#key-types) | Valid QML color value
`DEFAULT:--` | |Image | File url for background image. | [Url](#key-types) | Valid file url
`DEFAULT:--` | |ImageMarginLeft | Percentage of available screen width from the left of the operational area. | [Numeric](#key-types) | 0-100
`DEFAULT:0` | |ImageMarginRight | Percentage of available screen width from the right of the operational area. | [Numeric](#key-types) | 0-100
`DEFAULT:0` | |ImageMarginTop | Percentage of available screen height from the top of the operational area. | [Numeric](#key-types) | 0-100
`DEFAULT:0` | |ImageMarginBottom | Percentage of available screen height from the bottom of the operational area.| [Numeric](#key-types) | 0-100
`DEFAULT:0` | |FillMode | FillMode for background image. | [Text](#key-types) |See, [table](#supported-values-for-fillmode)
`DEFAULT:FIT`| #### Supported values for FillMode Table of supported values for [FillMode](#keys) | Supported Value |[Type](#key-types) | Description | |------------------|-------------------|---------------------------------------------------------------| | FIT | [Text](#key-types)| Default - uniformly scaled to fit without cropping | | CROP | [Text](#key-types)| Contain keys that supports visual settings for the background | | STRETCH | [Text](#key-types)| Non-uniformly scaled to fill | | TILE | [Text](#key-types)| Duplicate horizontally and vertically | | TILEVERTICALLY | [Text](#key-types)| Stretch horizontally, tile vertically | | TILEHORIZONTALLY | [Text](#key-types)| Stretch vertically, tile horizontally | ### Keys recognized in group QuickBar Table of [keys](#keys) that are recognized in the [group](#recognized-groups) `QuickBar`. | [Key](#keys)| Description | [Type](#key-types)| Supported Value | |-------------|-------------------------------------------------------------------------------------------|----------------------|---------------------------------------------| | DividerColor| Color of divider lines. | [Color](#key-types) | Valid QML color value
`DEFAULT:#111` | | Size | Percentage for width or height of the quickbar, depending on the position of the quickbar.| [Numeric](#key-types)| 0-100
`DEFAULT:12` | | Color | Color of the QuickBar background. | [Color](#key-types) | Valid QML color value
`DEFAULT:#444` | | Color2 | Gradient background color from Color (top) to Color2 (bottom), if set | [Color](#key-types) | Valid QML color value
`DEFAULT:--` | | Spacing | Spacing between elements inside the QuickBar in percent of QuickBar size. | [Numeric](#key-types)| 0-100
`DEFAULT:10` | | HeaderImage | Image (typically a logo) to show at the top of the QuickBar, behind the label. | [Url](#key-types) | Valid file url
`DEFAULT:--` | | Label | Text to show at top of the QuickBar. | [Text](#key-types) | Valid characters
`DEFAULT:APPS` | | LabelColor | Color of the QuickBar label. | [Color](#key-types) | Valid QML color value
`DEFAULT:#ccc` | | LabelSize | Font size of Header in pixels. | [Numeric](#key-types)| 0-1000
`DEFAULT:16` | | LabelBold | Bold font variant for Header. | [Numeric](#key-types)| 0: false, 1: true
`DEFAULT:0` | | LabelFont | Font family to use for Header. | [Text](#key-types) | Supported font family
`DEFAULT:Verdana`| ### Keys recognized in group QuickBarElements Table of [keys](#keys) that are recognized in the [group](#recognized-groups) `QuickBarElement`. | [Key](#keys) | Description | [Type](#key-types) | Supported Value | |---------------|---------------------------------------------------|-----------------------|---------------------------------------------| | OnScreenColor | Color for clients currently on screen | [Color](#key-types) | Valid QML color value
`DEFAULT:#aaa` | | RunningColor | Color for minimized and running clients | [Color](#key-types) | Valid QML color value
`DEFAULT:#55a` | | PausedColor | Color for minimized and paused clients | [Color](#key-types) | Valid QML color value
`DEFAULT:#333` | | StoppedColor | Color for stopped clients | [Color](#key-types) | Valid QML color value
`DEFAULT:#522` | | Radius | Radius of QuickBar elements in percent | [Numeric](#key-types) | 0-50
`DEFAULT:#10` | | ShowLabel | Show Client label below icon | [Numeric](#key-types) | 0: false, 1: true
`DEFAULT:0` | | LabelColor | Specifies the percent of available screen height. | [Color](#key-types) | Valid QML color value
`DEFAULT:#ddd` | | LabelSize | Font height of Client label (in pixels) | [Numeric](#key-types) | 0-100
`DEFAULT:#10` | | LabelBold | Use Bold variant of label font | [Numeric](#key-types) |0: false, 1: true
`DEFAULT:#0` | | LabelFont | Font family for Client label | [Text](#key-types) |Supported font family
`DEFAULT:Verdana`| ### Keys recognized in group LayoutSelector Table of [keys](#keys) that are recognized in the [group](#recognized-groups) `LayoutSelector`. | [Key](#keys) | Description | [Type](#key-types) | Supported Value | |----------------------|------------------------------------------------------------------------|-----------------------|------------------------------------------------------| | Radius | Corner Radius of component in percent of height | [Numeric](#key-types) | 0-50
`DEFAULT:15` | | Color | Background color | [Color](#key-types) | Valid QML color value
`DEFAULT:#555` | | Color2 | Gradient background color from Color (top) to Color2 (bottom), if set | [Color](#key-types) | Valid QML color value
`DEFAULT:#--` | | BorderColor | Color of border lines | [Color](#key-types) | Valid QML color value
`DEFAULT:#111` | | Label | Label text to show above value box | [Text](#key-types) | Valid characters
`DEFAULT:Layout` | | LabelColor | Color of Client label | [Color](#key-types) | Valid QML color value
`DEFAULT:#ddd` | | LabelBold | Bold variant of label font | [Numeric](#key-types) | 0: false, 1: true
`DEFAULT:0` | | LabelFont | Font height of Client label (in pixels) | [Text](#key-types) | Supported font family
`DEFAULT:Verdana` | | LabelSizeFactor | Scale adjustment factor of label font size | [Numeric](#key-types) | 0.0-1000.0
`DEFAULT:1.0` | | ValueColor | Color of text in value box | [Color](#key-types) | Valid QML color value
`DEFAULT:#ddd` | | ValueBackgroundColor | Background color of value box | [Color](#key-types) | Valid QML color value
`DEFAULT:#444` | |ListColor1|Font color of even index list elements, Background color of odd index list elements | [Color](#key-types) | Valid QML color value
`DEFAULT:#ddd` | |ListColor2|Font color of odd index list elements, Background color of even index list elements | [Color](#key-types) | Valid QML color value
`DEFAULT:#444` | ### Keys recognized in group Components Table of [keys](#keys) that are recognized in the [group](#recognized-groups) `Components`. For more information about how to create custom components contact your local CrossControl FAE. | [Key](#keys) | Description | [Type](#key-types)|Supported Value | |---------------------------|------------------------------------------------------------------------------------|-------------------|--------------------------| | QuickBar | Custom component to override QuickBar [group](#recognized-groups) | [Url](#key-types) |Url to valid QML component| | SurfaceContainer | Custom component to override SurfaceContainer [group](#recognized-groups) | [Url](#key-types) |Url to valid QML component| | QuickBarElement | Custom component to override QuickBarElement [group](#recognized-groups) | [Url](#key-types) |Url to valid QML component| | RegionSelectorAreaElement | Custom component to override RegionSelectorAreaElement [group](#recognized-groups) | [Url](#key-types) |Url to valid QML component| | RegionSelector | Custom component to override RegionSelector [group](#recognized-groups) | [Url](#key-types) |Url to valid QML component| | LayoutSelector | Custom component to override LayoutSelector [group](#recognized-groups) | [Url](#key-types) |Url to valid QML component| ## Example of config.ini file ``` ini #General settings [Settings] #Default layout to use on start up DefaultLayout=nested #Position of the QuickBar in Window Manager QuickBarPosition=LEFT #Define path to layout json files LayoutsDir=/opt/window_manager_application/examples/feature_showcase/layouts #Define path to Desktop Entry Files ClientsDir=/opt/window_manager_application/examples/feature_showcase/clients #Visual settings for Window Manager background [Background] #Set background colors Color=#333 Color2=#222 #Set image to use in the background Image=file:///opt/window_manager_application/examples/assets/bgSmoothedDark.png #Define FillMode for background to be non-uniformly scaled to fill FillMode=STRETCH #Visual settings for QuickBar [QuickBar] #Set size of the QuickBar Size=14 #Set text to show at the top of the Quick, in this example this label is empty Label= #Set image to show on top of the Quick bar HeaderImage=file:///opt/window_manager_application/examples/assets/crosscontrol-rgb.png #Set image margin to operation area HeaderImageMarginTop=30 HeaderImageMarginBottom=30 HeaderImageMarginLeft=20 HeaderImageMarginRight=20 #Set QuickBar color DividerColor=transparent Color=#ccc Color2=#999 # Visual settings for QuickBar elements [QuickBarElement] #Set radius of QuickBar element Radius=20 #Set color Color=#ccc Color2=#aaa HighlightColor=#fff PausedColor=#000 RunningColor=#000 OnScreenColor=#f70 ShowLabel=0 # Visual setting for layout selector [LayoutSelector] #Set color to layout selector Color=#aaa Color2=#ccc BorderColor=#333 LabelColor=#333 #Custom component settings [Components] #Setting path to a custom surface container SurfaceContainer=file:///opt/window_manager_application/examples/feature_showcase/components/DecoratedContainer.qml ```