This guide takes you from a fresh RedEye installation to a working custom layout. You will learn howDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ryzhpolsos/redeye/llms.txt
Use this file to discover all available pages before exploring further.
config.xml is structured, how variables and theme values are used throughout the layout, how a shell window like the taskbar is defined, and how to apply your changes. All code examples are drawn directly from the default configuration that ships with RedEye.
Understanding the config.xml structure
RedEye reads a single entry-point file,config.xml, when it starts. This file lives in your RedEye installation directory. It is composed of three top-level sections: imports, a <layout> block, and an optional <hotkeys> block (referenced via import).
<import> element lets you split configuration across multiple files, which keeps large setups manageable. Imports are resolved relative to the installation directory.
Walking through the default configuration
Review core settings
config/core.xml controls low-level shell behavior. The default configuration enables Explorer integration (for application compatibility) and sets the transparency key used by the UI renderer:explorerIntegration enabled unless you are certain all your applications work without it.Define theme variables
config/ui/theme.xml declares named variables for colors, fonts, and spacing. These variables are referenced throughout every layout file using the ${variable.name} syntax.${theme.color.*} updates automatically.Declare layout variables
The Built-in read-only variables like
<variables> block inside <layout> in config.xml defines sizing and positioning values. Variables can reference other variables and use calc() for arithmetic expressions:${screen.width} and ${screen.height} give you the current display dimensions.Examine a shell window definition
A Inside a
<window> element with type="shell" creates a shell-managed window — one that sits on the desktop layer and does not appear in the task switcher. Here is the taskbar from config/ui/taskbar.xml:<windowList>, the variables ${window.icon}, ${window.title}, ${window.handle}, and ${window.isActive} are automatically populated for each open window.Configure hotkeys
Hotkeys are declared in The
config/keyBindings.xml. Each <hotkey> maps a key combination to a shell function call or expression:window.toggle() function references a window by its id attribute. To toggle your own window, give it a unique id and use the same pattern.Apply your changes
After editing any configuration file, restart the RedEye shell to pick up the changes. From any script block or hotkey action, call:Or call the function from within an inline script:
shell.restart() terminates and relaunches redeye.exe. Your configuration files are re-read on startup, so changes take effect immediately after the restart completes.What to explore next
Layout markup reference
Full reference for XML elements, attributes, widget nesting rules, and the expression syntax used in attribute values.
Built-in widgets
Documentation for every widget that ships with RedEye: panel, flowPanel, windowList, appList, label, image, button, and more.
Configuration variables
Learn how variables and
calc() expressions work, including the built-in read-only variables like ${screen.width}.Creating a plugin
Package custom widgets and exported functions into a plugin DLL that loads automatically with your shell.