How extensible and configurable is rx?
Updated
rx is designed to be both extensible and configurable, but the two work differently. Configuration is handled through a simple text-based language, while extensibility comes from a small, hackable codebase and a command system that is unique among pixel editors. If you want to reshape your workflow without touching code, configuration is the intended path. If you want to add functionality that does not exist yet, the project's stated goal is that it should be easy to extend the editor rather than accept a fixed feature set.
What makes rx configurable
The site lists "Configurable with a simple text-based language" as a feature, and separately states that artists should be in control of their workflow. That means the configuration surface is text, not a settings dialog, and it is meant to be edited directly rather than clicked through.
The other configurable aspects come from the editor's overall design:
- Modal operation inspired by vi. rx takes inspiration from vi's modal nature, so editing behavior is organized around modes rather than a permanent toolbar. This is a workflow-level choice you adopt rather than a setting you toggle.
- A command system. rx is "built around a command system, unique to tools of its kind." Commands are the primary way you drive the editor, which is what makes the behavior scriptable and remappable in principle.
- UI scaling and HiDPI support. These are listed features, so display behavior can be adapted to your screen rather than fixed.
The site does not publish a configuration file format, a list of config keys, or a keybinding reference. To learn the specifics, the guide is the intended next step, and the source is available for reading how configuration is actually parsed.
What makes rx extensible
Extensibility in rx rests on three stated goals rather than on a plugin marketplace:
- Minimal, small, hackable codebase and dependency footprint. The editor "should only include what is necessary." A small codebase is the precondition for extension being practical.
- Configurable & extensible as an explicit goal. The site states: "If it isn't built-in, it should be easy to extend the editor's functionality." That is a design commitment, not a guarantee of a plugin API.
- An extensible command system. Because the editor is built around commands, new behavior plugs into the same mechanism the built-in features use.
The practical consequence: extension in rx looks more like modifying or building on the source than installing third-party add-ons. The site points readers to the source "to learn how rx works," which is consistent with that model.
Features you can build a workflow around
These are the built-in capabilities listed on the site, and they are the baseline you would extend from:
| Feature | What it gives you |
|---|---|
| Built-in sprite animation support, with live preview | Animate sprites without leaving the editor |
| Work with multiple files simultaneously | Keep several sprites open at once |
| Extensible command system | The hook for customization and extension |
| Configurable with a simple text-based language | Text-driven setup |
| HiDPI support and UI scaling | Adapt to high-density displays |
| Undo/redo any edit | Reversible editing across the session |
| Animated GIF output | Export animation directly |
| Multi-brush / synchronous editing | Edit across brushes at once |
| Brush filtering ("pixel-perfect" mode) | Cleaner pixel placement |
| Visual mode for pixel manipulation | Manipulate pixels through a mode, in the vi tradition |
Requirements and how to get it
rx currently supports Linux, macOS, and Windows with OpenGL 3.3 or later. That is the hard gate for extensibility too: any extension still runs inside this editor on those platforms.
To install from source, with cargo and cmake installed:
cargo install \
--git https://github.com/cloudhead/rx \
--tag v0.5.2
This downloads the latest stable release and installs it under ~/.cargo/bin/rx. You can change the location with the --root flag, for example /usr/local.
Platform notes from the site:
- macOS: Xcode and the Xcode Command Line Tools are required. Get the latter with
xcode-select --install. CMake can be installed withbrew install cmake. - Pre-built binaries: the site notes that at the moment only Linux binaries are available, so macOS and Windows users should expect to build from source.
How to decide
Choose rx for a configurable, extensible workflow if you are comfortable editing text configuration and reading source to extend behavior, and if a minimal, vi-inspired, command-driven editor matches how you like to work. Look elsewhere if you need a documented plugin API, a GUI settings panel, or a large ecosystem of ready-made add-ons — the site describes extensibility as a design goal and points you to the source, not to a plugin registry.
The fastest way to judge fit is to read the guide for configuration specifics and browse the source for how commands and features are implemented.