project structure
the current file structure seperates each section in each folder
Directorysrc/rovr
- app.py houses the main application
- py.typed
- search_container.py search bar in pinned folders and file list
- style.tcss default style
action buttons
Section titled “action buttons”Directorysrc/rovr/action_buttons
- copy_button.py copy selections to clipboard
- copy_path.py copy path of selected item to real clipboard
- cut_button.py cut selections to clipboard
- delete_button.py delete selections
- new_item_button.py create new item
- paste_button.py paste from rovr’s clipboard into cwd
- rename_item_button.py rename selected item
- unzip_button.py unzip selected item
- zip_button.py zip selected items
classes
Section titled “classes”Directorysrc/rovr/classes
- archive.py classes for handling archives
- exceptions.py custom exceptions that are raised where necessary
- session_manager.py a class for managing session state
- textual_options.py classes for option/selection elements
- textual_validators.py validations for input elements
- theme.py a class for themes
config
Section titled “config”Directorysrc/rovr/config
- config.toml default config
- pins.json default pins
- schema.json schema for reference
handles the middle elements
Directorysrc/rovr/core
- file_list.py a list that shows files
- pinned_sidebar.py a list that shows pinned items
- preview_container.py a container that shows the appropriate preview
PreviewContainer
uses FileList
as part of its Folder Preview mechanism. it
currently doesn’t use it for archive previews, so I’m ready to accept prs that
fix this issue
footer
Section titled “footer”handles the bottom row
- src/rovr/footer
- clipboard_container.py a list that contains copied/cut items
- metadata_container.py shows metadata on the current primary selection
- process_container.py shows a list of active processes
functions
Section titled “functions”Directorysrc/rovr/functions
- config.py functions for loading and validating the config
- icons.py functions for getting icons
- path.py functions for path manipulation
- pins.py functions for managing pins
- themes.py theme loader
- utils.py miscellaneous utility functions
header
Section titled “header”handles the top most row
Directorysrc/rovr/header
- header.py the header container itself
- tabs.py the tabs and new tab button
navigation widgets
Section titled “navigation widgets”right below the action buttons
Directorysrc/rovr/navigation_widgets
- buttons.py buttons that replicate explorer.exe
- path_input.py path input + auto complete
screens
Section titled “screens”handles the modal screens used
Directorysrc/rovr/screens
- common_file_name_do_what.py when a conflicting file exists
- delete_files.py when you want to delete files
- dismissable.py dismissable modal, for notices
- give_permission.py raise permission when you get permission errored
- input.py modal input, also supporting path input
- way_too_small.py screen shown when window is too small
- yes_or_no.py simple yes or no prompt
- zd_to_directory.py zoxide integration
- _tester.py screen tester, not used at all
variables
Section titled “variables”Directorysrc/rovr/variables
- constants.py global constants, including the loaded config
- maps.py maps to icons and other things