Important
I, NSPC911, am currently on a temporary hiatus due to personal reasons.
Warning
This project is in its very early stages. While this can be daily driven, expect some issues here and there.
Rovr now persists a small set of UI preferences between sessions. The goal is to remember sensible UI choices (so you don't have to reconfigure them every time you start the app).
What is saved
- show_hidden_files (whether dotfiles / hidden files are visible)
- footer_visible (whether the footer/panels are visible)
- pinned_sidebar_visible (sidebar visibility)
- preview_visible (preview sidebar visibility)
- compact_mode (interface compact mode)
Where the state is stored
- A JSON file named
ui_state.json
is written to your platform config directory (the sameVAR_TO_DIR['CONFIG']
used elsewhere in the app). To print that folder on your machine run:
python - <<'PY'
from rovr.variables.maps import VAR_TO_DIR
print(VAR_TO_DIR['CONFIG'])
PY
Resetting the saved state
- You can remove the persisted UI state from the command line:
python -m rovr --reset-ui-state
How to test manually
- Start rovr and toggle the "show hidden files" option and the footer.
- Quit rovr.
- Restart rovr and verify the same UI choices are preserved.
Notes
-
The state file is stored in JSON with a simple
version
field for future upgrades. Load and save are best-effort: failures to read/write the file do not block start/quit.
# Test the main branch
uvx git+https://github.com/NSPC911/rovr.git
# Install
## uv (my fav)
uv tool install rovr
## or pipx
pipx install rovr
## or plain old pip
pip install rovr
uv run poe run
Running in dev mode to see debug outputs and logs
# Runs it in development mode, allowing a connected console
# to capture the output of its print statements
uv run poe dev
# Runs a separate console to capture print statements
uv run poe log
# capture everything
uv run textual console
For more info on Textual's console, refer to https://textual.textualize.io/guide/devtools/#console
- There isn't X theme/Why isn't Y theme available?
- Textual's currently available themes are limited. However, extra themes can be added via the config file in the format below
- You can take a look at what each color represents in https://textual.textualize.io/guide/design/#base-colors
Inheriting themes will not be added.
[[custom_theme]]
name = "<str>"
primary = "<hex>"
secondary = "<hex>"
success = "<hex>"
warning = "<hex>"
error = "<hex>"
accent = "<hex>"
foreground = "<hex>"
background = "<hex>"
surface = "<hex>"
panel = "<hex>"
is_dark = "<bool>"
variables = {
"<key>" = "<value>"
}
- Why is it considered post-modern?
- Parody to my current editor, helix
- If neovim is considered modern, then helix is post-modern
- If superfile is considered modern, then rovr is post-modern
- What can I contribute?
- Themes, and features can be contributed.
- Refactors will be frowned on, and may take a longer time before merging.
- I want to add a feature/theme/etc! How do I do so?
- You need uv at minimum. pre-commit and ruff are recommended to be installed.
- Clone the repo, and inside it, run
uv sync
andpre-commit install
. - Make your changes, ensure that your changes are properly formatted (via the pre-commit hook), before pushing to a custom branch on your fork.
- For more info, check the how to contribute page.
- How do I make a feature suggestion?
- Open an issue using the
feature-request
tag, with an estimated difficulty as an optional difficulty level label
- Why not ratatui or bubbletea??? angry noises
- I like python.
Thank you so much for starring this repo! Each star pushes me more to make even more amazing features for you!
_ ___ ___ __ _ˍ_ ___
/\`'__\/ __`\ \ /\ \`'__\
\ \ \_/\ \_\ \ V_/ /\ \_/
\ \_\\ \____/\___/\ \_\
\/_/ \/___/\/__/ \/_/ by NSPC911