project structure
the current file structure separates each section into its own folder
Directorysrc/rovr
- app.py houses the main application
- first_launch.py handles first launch tasks
- first_launch.tcss styles for first launch
- py.typed
- state_manager.py manages persistent state
- style.tcss default style
action buttons
Section titled “action buttons”Directorysrc/rovr/action_buttons
- copy_button.py copy selections to 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
- sort_order.py changes sort order
- 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
- mixins.py mixin classes for reuse
- 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
components
Section titled “components”Directorysrc/rovr/components
- popup_option_list.py for popup selectors
- search_container.py used for fuzzy searching
- special_option_list.py just a really special option list
config
Section titled “config”Directorysrc/rovr/config
- config.toml default config
- migration.json shows appropriate messages for removed features
- pins.json default pins
- schema.json schema for reference
Directorykeybinds
- sane.toml sane default keybinds
- vim.toml vim-like keybinds
handles the middle elements
Directorysrc/rovr/core
- file_list.py a list that shows files
- file_list_container.py the container for the main file list
- pinned_sidebar.py a list that shows pinned items
- preview_container.py a container that shows the appropriate preview
footer
Section titled “footer”handles the bottom row
Directorysrc/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
- folder_prefs.py functions for managing folder sort preferences
- icons.py functions for getting icons
- path.py functions for path manipulation
- pins.py functions for managing pins
- system_clipboard.py functions for copying to the system clipboard
- 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
monkey patches
Section titled “monkey patches”handles monkey patches whenever necessary
Directorysrc/rovr/monkey_patches
- puremagic_patch.py patches for puremagic
- magic_data.json slightly modified puremagic data file
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
- main .py screen tester, not used at all
- archive_creator.py screen for creating archives
- 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
- fd_search.py used for integration with fd
- file_in_use.py shown when trying to delete a file that is being used
- input.py modal input, also supporting path input
- keybinds.py show all keybindings
- paste_screen.py screen shown when pasting files
- rg_search.py used for integration with ripgrep
- typed.py type hints for certain return values
- 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
variables
Section titled “variables”Directorysrc/rovr/variables
- constants.py global constants, including the loaded config
- maps.py maps to icons and other things