A modular utility suite for system management, built with Rust and Ratatui.
Run the system bar:
Top of screen:
kitten panel catfood barBottom of screen:
kitten panel --edge=bottom catfood barcatfood bar # Run the system bar (spawns in kitten panel)
catfood bar --no-kitten # Run the system bar directly in current terminal
catfood menu # Run menu system (coming soon)
catfood notifications # Run notification system (coming soon)Both catfood bar and catfood-bar support the same flags:
catfood-bar # Run in kitten panel (default)
catfood-bar --no-kitten # Run directly in current terminal# Install the complete catfood suite
cargo install catfood-bar
cargo install catfood
# Install just the bar component (standalone)
cargo install catfood-barNote: catfood bar requires catfood-bar to be installed separately. This allows standalone installation of individual components while maintaining the full suite functionality.
# Build and install all utilities
cargo install --path .
# Or build and run locally
cargo run --release -- barcatfood supports live configuration via ~/.config/catfood/bar.json. The first time you run the application, a default configuration file will be created.
Configuration changes are automatically detected and applied without restarting the application. Simply edit your bar.json file and the bar layout will update in real-time!
All errors are logged to ~/.local/share/catfood/logs/bar.log in ISO format:
2025-12-21T03:45:12Z [ERROR] [COMPONENT_WORKSPACES] Error: Failed to get workspaces
2025-12-21T03:45:13Z [ERROR] [CONFIG] Failed to reload configuration: ...
2025-12-21T03:45:14Z [ERROR] [FILE_WATCHER] Failed to create file watcher: ...
The log file keeps only the last 1000 lines.
See the catfood-bar README for detailed configuration options and examples.
This project uses automated releases triggered by git tags:
-
Update Version (using conventional commits):
# Bump version and update workspace cargo release patch # or minor/major
-
Create Tag:
# Tag the release (must be on main branch) git tag v0.1.1 git push --tags -
Automatic Release:
- GitHub Actions builds and tests on all platforms
- Binaries are compiled for Linux, macOS, and Windows
- Workspace is published to crates.io concurrently
- GitHub Release is created with binaries and changelog
Use conventional commit messages for automatic changelog generation:
feat: add new weather componentโ New featuresfix: memory leak in CPU monitoringโ Bug fixesdocs: update configuration examplesโ Documentationrefactor: improve component performanceโ Code improvements
- Patch (0.1.1): Bug fixes, documentation updates
- Minor (0.2.0): New features, significant enhancements
- Major (1.0.0): Breaking changes, API changes
Copyright (c) Thom Bruce thom@thombruce.com
This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT)
