27

An extensible pixel editor written in Rust

 4 years ago
source link: https://www.tuicool.com/articles/a2myaum
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
██╗████╗██╗██╗
╚███╔██║╚███╔╝
 ██╔╝══╝██╔██╗
 ██║   ██╔╝ ██╗
 ╚═╝   ╚═╝  ╚═╝

v0.2.0 alpha

a modern and extensible pixel editor implemented in rust

Download for GNU/Linux
overview.png

rx is an extensible, modern and minimalist pixel editor and animator implemented in rust[0]. It's designed to have as little UI as possible, and instead takes inspiration from vi's[1] modal nature and command mode.

Compared to other pixel editors, rx aims to be smaller yet more configurable and extendable. `rx` takes a different approach when it comes to animation as well, which is done with *strips*.

[0]: https://rust-lang.org

[1]: https://en.wikipedia.org/wiki/Vi

GOALS

  • * Minimal UI. Clean aesthetics. No clutter.
  • * Everything that should be controlled by the keyboard, is.
  • * Extensible and scriptable with a simple command-based language.
  • * Familiar to anyone with vi(m) knowledge.
  • * Snappy. All commands run in < 16ms.
  • * Optimized for advanced users. vi-like philosophy.
  • * Small, hackable codebase. At most 10 KLOC.
  • * First-class Linux support.
  • * CPU & memory efficient.

FEATURES

  • * Built-in sprite animation support, with live preview.
  • * Work with multiple files simultaneously.
  • * Extensible command system.
  • * Text-based configuration.
  • * HiDPI display support.
  • * Undo/redo support.
  • * Color palette support.
  • * PNG support.
  • * Animated GIF support.
  • * Multi-brush / synchronous editing.
  • * Symmetry brush mode.
  • * Brush filtering a.k.a "pixel-perfect" mode.
  • * Coming soon: Layers.
  • * Coming soon: Visual mode.
  • * Coming soon: Workspaces.

REQUIREMENTS

Linux

On Linux, Vulkan support is required. The drivers can be installed for example with apt install mesa-vulkan-drivers on debian-based systems.

macOS

On macOS, Metal support is required. This usually requires installing Xcode and the Xcode Command Line Tools .

Windows

On Windows, Vulkan support is required.

DOWNLOAD

Disclaimer: this is alpha software, use at your own risk!

On Linux, the simplest way to get rx is to download the AppImage from here:

Then make it executable with eg. chmod +x , rename it to rx and move it somewhere in your PATH .

For macOS and Windows, see the following section.

BUILD FROM SOURCE

You'll need cargo and rust to build rx from source. For more detailed instructions, see the README .

Linux

$ cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features vulkan

macOS

$ cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features metal

Windows

$ cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features vulkan

The default installed palette issweetie16.palette. Other palettes are also availablehere, and you can create your own.

USAGE

After installing, simply run rx from a shell or application launcher. You can then use the :help command to show the current set of key mappings and commands.

Common commands:

:help                    Display help
      :e <path..>              Edit path(s)
      :w                       Write/save view
      :q                       Quit view
      :slice <n>               Slice view into <n> frames
      :source <path>           Source an rx script (eg. a palette)
      :f/resize <w> <h>        Resize frames

CONFIGURATION

Configuring rx involves editing the init.rx script, which is found in a platform-dependent location. On Linux, this is in the XDG config directory, eg. ~/.config/rx/init.rx , while on macOS this is in the ~/Library/Preferences folder. written.

To get the exact location of the config directory, enter :echo config/dir from inside rx .

CONTRIBUTE

The source code is available at github.com/cloudhead/rx . rx is free software .

SUPPORT

If you find this project useful and want to support its continued maintenance, consider sending ₿ (Bitcoin) to the following address with a memo indicating your name, to be added to the contributors list:

1MpF7p9A8LJabZn7ehHpGbLcN5PCXRdGqm

TROUBLESHOOTING

If something ain't working like it's supposed to, there are various things you can do to debug the problem:

  1. 1. Run rx with verbose logging, by using the -v command-line flag. This will log errors from the underlying libraries that are usually suppressed. You can increase the verbosity further by using -vv .
  2. 2. Try the winit backend, by building rx with eg. --features winit,vulkan .

Otherwise, see the following BUGS section.

BUGS

If you encounter a bug, please open an issue on the tracker or send an email to [email protected].


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK