Rover is operated via a tabbed interface. At any given moment, one (and only one) tab is visible on the screen. There are always ten tabs in total, numbered from 0 to 9. The number of the tab currently visible is shown on the top right corner of the screen. To view a different tab, one just needs to press its corresponding number. Each tab has a current working directory
) associated to it, also shown on the top of the screen. The CWD
of the visible tab is changed as the user navigates through the file system.
It's also possible to set the CWD
of tabs at Rover start-up by passing the desired paths as command-line arguments. The tab number 0 always starts at $HOME
. If more than nine directories are specified, only the first nine are used for tabs 1-9 and the rest is ignored. Tabs for which an invalid path were assigned will also start at $HOME
. Remaining tabs not specified on the command line start at the current working directory of the parent process.
is anything that may be found inside a directory in some file system. It may be a file, a directory, a link, a socket, a FIFO, etc. In its most basic usage, Rover will gather the list of entries inside the CWD
and present them on the screen, one per line.
There is always one (and only one) highlighted entry visible. This is both the cursor
location and the current selection
. The highlighting moves as the user navigates the entry list with cursor commands. Simple operations, like entering a subdirectory or renaming a file, are done by first selecting the relevant entry and them issuing the appropriate command (see the COMMANDS
section). For commands that operate on more than one entry at once (batch commands), selection is not sufficient, since it's not possible to select more than one entry. Batch commands are performed on marked entries.
For some file operations, it is convenient to first mark
all entries that are to be processed, so that the appropriate command only needs to be issued once. For such purpose, Rover allows an arbitrary number of entries to be marked, with the limitation that they must be all in the same directory.
Unlike simple selection, the effect of marks is not constrained by visibility. This is so one can mark a number of entries in some directory, navigate to other directory, and then finally issue a copy or move command. Moreover, marks are shared over all tabs. This allows one to mark some entries in one tab that is pointed to the "source" directory of the operation and then issue the command on another tab that is pointed to the "destination" directory.
Some commands will prompt for an input string. For example, in order to rename a file, the user must supply the new name. This string will appear at the bottom of the screen and must be edited interactively using the keyboard. Printable keys will insert characters at the cursor position. The following shortcuts are available for line editing:
Finish editing and cancel command.
Finish editing and confirm command.
Move insertion cursor left/right.
Move insertion cursor to beginning/end of string.
Remove one character before cursor.
Remove one character after cursor.
Clear line (remove all characters).