Skip to content

enabasal/rovr

 
 

Repository files navigation

rovr

Python Version Made with Textual Static Badge
Discord PyPI - Downloads
GitHub Actions Docs Build Status GitHub Actions Formatting Status

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.

Persistent UI state

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 same VAR_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

  1. Start rovr and toggle the "show hidden files" option and the footer.
  2. Quit rovr.
  3. Restart rovr and verify the same UI choices are preserved.

Notes

Screenshot

image

Installation

# 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

Running from source

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

FAQ

  1. There isn't X theme/Why isn't Y theme available?
[[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>"
}
  1. 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
  1. What can I contribute?
  • Themes, and features can be contributed.
  • Refactors will be frowned on, and may take a longer time before merging.
  1. 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 and pre-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.
  1. 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
  1. Why not ratatui or bubbletea??? angry noises
  • I like python.

Stargazers

Thank you so much for starring this repo! Each star pushes me more to make even more amazing features for you!

Star History Chart

 _ ___  ___ __   _ˍ_ ___
/\`'__\/ __`\ \ /\ \`'__\
\ \ \_/\ \_\ \ V_/ /\ \_/
 \ \_\\ \____/\___/\ \_\
  \/_/ \/___/\/__/  \/_/ by NSPC911

About

A post-modern terminal file manager.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%