Prerequisites:
- Rust toolchain (latest stable)
- Git for version control
1
Clone the repository
2
Build and install locally
Use the included install script for development builds:The install script builds the project in release mode and copies the binary to
~/.local/bin/dx.Development workflow
dx includes a built-in development menu accessible via thedx.yaml configuration:
Testing
Run the test suite:tests/exit_codes.rs- Exit code handling teststests/motd_asciinema_menu_markdown.rs- MOTD and markdown teststests/checks_and_router.rs- Menu and routing tests
Code structure
The dx codebase is organized as follows:src/main.rs- Main entry point and CLI argument parsingsrc/menu.rs- Menu system and item handlingsrc/exec.rs- Command execution and PTY managementsrc/markdown.rs- Markdown renderingsrc/asciinema.rs- Recording and streaming integrationsrc/config.rs- Configuration managementsrc/screens/- TUI screen implementations
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and add tests
- Run
cargo clippy -- -D warningsto check for issues - Run
cargo testto ensure all tests pass - Submit a pull request
Troubleshooting
Build fails
Build fails
Make sure you have the latest stable Rust toolchain:
Binary not found after install
Binary not found after install
Ensure
~/.local/bin is in your PATH:Permission denied
Permission denied
If you get permission errors, the install script will automatically fall back to
~/.local/bin instead of system-wide installation.