Skip to content

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
  • 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
  • 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
  • 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
  • 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

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
  • 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

handles the top most row

  • Directorysrc/rovr/header
    • header.py the header container itself
    • tabs.py the tabs and new tab button

handles monkey patches whenever necessary

  • Directorysrc/rovr/monkey_patches
    • puremagic_patch.py patches for puremagic
    • magic_data.json slightly modified puremagic data file

right below the action buttons

  • Directorysrc/rovr/navigation_widgets
    • buttons.py buttons that replicate explorer.exe
    • path_input.py path input + auto complete

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
  • Directorysrc/rovr/variables
    • constants.py global constants, including the loaded config
    • maps.py maps to icons and other things