2023-08-27 05:09:40 +02:00
|
|
|
# TuiFile
|
|
|
|
|
|
|
|
A file explorer for your terminal, with homerow-centric navigation.
|
|
|
|
|
|
|
|
TuiFile can
|
|
|
|
|
|
|
|
- have multiple instances, one for each open directory
|
|
|
|
- display recursive directory structures
|
|
|
|
- filter files using regex
|
|
|
|
- select multiple files at once
|
|
|
|
- create new directories
|
|
|
|
- copy, move and delete
|
|
|
|
- quickly open your `$TERM` and `$EDITOR`
|
2023-08-28 00:49:12 +02:00
|
|
|
- build the file list on a background thread to avoid blocking
|
2023-08-27 05:09:40 +02:00
|
|
|
- add more features (open an issue with ideas if you have any)
|
2023-08-27 06:02:38 +02:00
|
|
|
|
|
|
|
## Demo
|
|
|
|
|
2023-08-28 01:41:23 +02:00
|
|
|
https://github.com/Dummi26/tuifile/assets/67615357/f2ff5c88-91f2-4161-b16a-603127851f2f
|
2023-08-27 06:02:38 +02:00
|
|
|
|
2023-08-28 01:41:23 +02:00
|
|
|
- start in `/tmp/demo/`
|
|
|
|
- in a new instance (1), navigate to `/markone/Music/`
|
|
|
|
- select four directories
|
|
|
|
- go back to instance (0) in `/tmp/demo`
|
|
|
|
- create a new directory `my music`
|
|
|
|
- copy the selected directories to this new directory
|
|
|
|
- enable recursive view
|
|
|
|
- select some files from subdirectories
|
|
|
|
- in a third instance, (1) (the previous (1) is now (2)), disable recursive view and go back to `/tmp/demo`
|
|
|
|
- create a new directory, `fav songs`
|
|
|
|
- copy the selected files to this new directory
|
|
|
|
- go back to `my music`
|
|
|
|
- filter for files containing `.mp3`
|
|
|
|
- select and then remove all
|
|
|
|
- clear the filter to reveal remaining files (they are all `.wma` or `.jpg`)
|
|
|
|
- select all files in `my music` and remove them
|
|
|
|
- select all files in `/tmp/demo` and remove them
|
|
|
|
- exit
|
2023-08-27 06:02:38 +02:00
|
|
|
|
|
|
|
## Controls
|
|
|
|
|
|
|
|
### Global
|
|
|
|
|
2023-08-28 01:44:36 +02:00
|
|
|
- Ctrl+C/D -> quit
|
|
|
|
- Ctrl+Up/K -> previous
|
|
|
|
- Ctrl+Down/J -> next
|
|
|
|
- Ctrl+Left/H -> close
|
|
|
|
- Ctrl+Right/L -> duplicate
|
2023-08-27 06:02:38 +02:00
|
|
|
|
|
|
|
### Normal
|
|
|
|
|
|
|
|
- Up/K or Down/J -> move selection
|
|
|
|
- Left/H -> go to parent directory
|
|
|
|
- Right/L -> go into directory
|
|
|
|
- A -> Alternate selection (toggle All)
|
|
|
|
- S -> Select or toggle current
|
|
|
|
- D -> Deselect all
|
|
|
|
- F -> focus Find/Filter bar
|
2023-08-28 00:56:50 +02:00
|
|
|
- M -> set Mode based on Find/Filter bar (see File List Modes)
|
2023-08-27 06:02:38 +02:00
|
|
|
- N -> New directory (name taken from find/filter bar text)
|
|
|
|
- C -> Copy selected to this directory
|
|
|
|
- R -> remove selected files and directories (not recursive: also requires selecting the directories content)
|
2023-08-28 00:49:12 +02:00
|
|
|
- P -> set Permissions (mode taken as base-8 number from find/filter bar text)
|
|
|
|
- O -> set Owner (and group - TODO!)
|
2023-08-27 06:02:38 +02:00
|
|
|
- 1-9 or 0 -> set recursive depth limit (0 = infinite)
|
|
|
|
- T -> open terminal here
|
|
|
|
- E -> open this file in your editor
|
|
|
|
|
|
|
|
### Find/Filter Bar
|
|
|
|
|
|
|
|
- Esc -> back & discard
|
|
|
|
- Enter -> back & filter
|
|
|
|
- Backspace -> delete
|
|
|
|
- type to enter search regex
|
2023-08-28 00:49:12 +02:00
|
|
|
|
|
|
|
## File List Modes
|
|
|
|
|
|
|
|
### Blocking
|
|
|
|
|
|
|
|
This is the simplest mode. If listing all the files takes a long time, the program will be unresponsive.
|
|
|
|
|
|
|
|
To enable, type `b` into the filter bar, go back to files mode, and press `m`.
|
|
|
|
|
|
|
|
### Threaded
|
|
|
|
|
|
|
|
To avoid blocking, this mode performs all filesystem operations in the background.
|
|
|
|
Can cause flickering and isn't as responsive on fast disks.
|
|
|
|
|
|
|
|
To enable, type `t` into the filter bar, go back to files mode, and press `m`.
|
|
|
|
|
|
|
|
### Timeout
|
|
|
|
|
|
|
|
Like blocking, but after the timeout is reached, tuifile will stop adding more files to the list.
|
|
|
|
This means that file lists may be incomplete.
|
|
|
|
|
|
|
|
To enable, type `b<seconds>` into the filter bar, go back to files mode, and press `m`.
|
|
|
|
Replace `<seconds>` with a number like `1` or `0.3`.
|
|
|
|
|
|
|
|
### TimeoutThenThreaded
|
|
|
|
|
|
|
|
Like blocking, but after the timeout is reached, tuifile will cancel the operation and restart it in threaded mode.
|
|
|
|
|
|
|
|
To enable, type `t<seconds>` into the filter bar, go back to files mode, and press `m`.
|
|
|
|
Replace `<seconds>` with a number like `1` or `0.3`.
|