Character editor for Linux, written in Rust.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Bas v.d. Wiel dae6032ed5 feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R
Implement full command pattern foundation for reversible operations:
- Extend Command trait with redo() method
- Add CommandHistory with separate undo/redo stacks (max 100 entries)
- Fix all commands to store sufficient state for proper undo/redo:
  * AddCharacterCommand: stores after_index and inserted_index
  * DeleteCharacterCommand: stores deleted charset snapshot
  * ClearCharacterCommand: stores old bytes
  * SetCharacterBytesCommand: stores old and new bytes
- Wire Ctrl+Z and Ctrl+R keyboard shortcuts in main editor
- Wire pixel editor changes through command system for undo support
- Remove unused description() method and helper methods from public API
- Add unit tests for remove_character and insert_character_at
2026-10-17 15:53:52 +02:00
.cargo chore: upgrade to egui 0.37, fix logo display, bump version to 0.3.0 2026-10-17 12:59:31 +02:00
.zoo feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R 2026-10-17 15:53:52 +02:00
assets Add editor tests and asset files 2026-10-16 16:49:17 +02:00
docs feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R 2026-10-17 15:53:52 +02:00
plans chore: upgrade to egui 0.37, fix logo display, bump version to 0.3.0 2026-10-17 12:59:31 +02:00
src feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R 2026-10-17 15:53:52 +02:00
tests feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R 2026-10-17 15:53:52 +02:00
.gitignore Update .gitignore to exclude LaTeX build artifacts 2026-10-16 18:37:54 +02:00
build.rs v0.3.2: Remove egui_extras, optimize release binary size 2026-10-17 14:20:54 +02:00
Cargo.lock feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R 2026-10-17 15:53:52 +02:00
Cargo.toml feat: add comprehensive undo/redo support with Ctrl+Z and Ctrl+R 2026-10-17 15:53:52 +02:00
LICENSE Add license and readme. 2026-10-16 11:25:06 +02:00
README.md Update documentation for v0.2.1 features 2026-10-17 09:31:52 +02:00

Charmeleon — C64 Character Set Editor

A modern, cross-platform desktop application for creating and editing Commodore 64 character sets. Built with Rust and egui.

Features

  • Visual pixel editor — Edit 8×8 character grids with click-and-drag drawing
  • Multi-character selection — Hold Ctrl and click to select multiple characters for batch operations
  • Range selection — Hold Shift and click another character to select all in between
  • Batch delete — Delete multiple selected characters at once with confirmation
  • Smart insert — New characters are inserted after the currently selected character, not at the end
  • Multiple export formats — Raw binary and KickAssembler assembly
  • Import support — Load character sets from binary or assembly files
  • Instant preview — See changes immediately as you edit
  • Cross-platform — Runs on Windows, macOS, and Linux

System Requirements

  • OS: Windows 10+, macOS 10.15+, or Linux (x86_64 / ARM64)
  • RAM: 256 MB minimum

Building from Source

git clone <repository-url>
cd charmeleon
cargo build --release

Usage

./target/release/charmeleon

Documentation

A comprehensive user manual is available in docs/charmeleon-manual.pdf.

License

This project is licensed under the MIT License.

C64 Character Set Reference

Each C64 character is defined by 8 bytes (one per row), where each bit represents a single pixel. Charmeleon manages 256 character definitions, providing an intuitive graphical interface for creating custom character sets that can be loaded into C64 RAM at runtime.