Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anki-code/fstrider
Intuitive and fast file system navigator for terminal. Alternative to cd-ls. Written on Python. Zero dependency in pair with xonsh shell.
https://github.com/anki-code/fstrider
console-tool file-manager file-system navigation navigator new-tool new-tools xontrib
Last synced: 2 months ago
JSON representation
Intuitive and fast file system navigator for terminal. Alternative to cd-ls. Written on Python. Zero dependency in pair with xonsh shell.
- Host: GitHub
- URL: https://github.com/anki-code/fstrider
- Owner: anki-code
- License: mit
- Created: 2024-03-14T11:11:18.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-05-07T15:17:46.000Z (7 months ago)
- Last Synced: 2024-08-03T01:12:19.526Z (4 months ago)
- Topics: console-tool, file-manager, file-system, navigation, navigator, new-tool, new-tools, xontrib
- Language: Python
- Homepage:
- Size: 127 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-xontribs - fstrider - File system navigator for reducing keystrokes and doing thing intuitive. Alternative to cd-ls. (Directory Navigation)
README
fstrider is an intuitive and fast file system navigator for terminal.
If you like it click ⭐ on the repo and tweet.**fstrider** is:
* to reduce keystrokes during navigation.
* to remember and reuse the behavior and choices.
* to be minimalistic until it's needed to do more.
* to create new paths without annoying asking.## Install
Before installation read the text below about using `/` when copying or moving files and directories.
Install or update:
```xsh
pip install fstrider
# OR: pip install -U git+https://github.com/anki-code/fstrider
```## Usage
Run fstrider and start striding:
```xsh
fstrider
```In the xonsh shell you can load xontrib with `fs` alias that works fast and allows to change directory using fstrider:
```xsh
xontrib load fstrider
fs # or fstrider
```### Key bindings
Basic:
* Left - move to parent directory.
* Right - move to the selected directory.
* Space - open menu for the current file or directory.
* Enter - open file or directory using OS associations.
* Control q - quit.Additional:
* Shift ~ - jump to the home directory.
* Control h - jump to directory from history.
* Control j - jump to path. You can jump into new path and then create it.
* Control + - copy path to the current directory.Midnight Commander bindings: F5 copy, F6 move, F7 rename, F8 delete, F10 quit, F12 open with.
### Using `/` when copying or moving.
fstrider was created to reduce keystrokes. So remember two things:
* Any new path will be created automatically. When you copy the file `example.txt` to `/tmp/some/new/path/` the path `/tmp/some/new/path/` will be created automatically.
* If you copy directory `/tmp/dir1` and the target path ends with `/` e.g. `/tmp/other/` then the `dir1` will be putted into `/tmp/other/dir`.
* If you copy directory `/tmp/dir2` and the target path ends with directory name e.g. `/tmp/other` then the `dir2` will be merged with `/tmp/other`. Existing files will be overwritten.## Xonsh xontrib
fstrider xontrib features:
* Creates alias `fs` (or `fstrider` if `fs` exists).
* Run fstrider as fast as possible.
* Keeps history between running fstrider.Environment variables for fstrider xontrib:
* `$XONTRIB_FSTRIDER_ALIAS` - change the alias name. Recommended `s`.## Options
* `'show_symlink_paths': True` - show symlinks in the list.
* `'keys_midnight_commander': True` - use Midnight Commander keys.
* `'monitor_state': False` - Async monitoring of the list and update if new files created.
* `'os_path_change': True` - change os path in xonsh shell.
* `'app_associations_save_file': False` - save filename to apps associations.You can change the option state by setting environment variable e.g. `$FSTRIDER_MONITOR_STATE=True`.
## Known issues
### Tested only on Mac OS
Current version of fstrider is using and testing on Mac OS. It will be good to test and fix for Linux and Windows.
## Roadmap
Feel free to grab and implement or propose new feature. PR is welcome!
### v0.2.0
```
Xonsh xontrib
++ Creates alias `fs` (or `fstrider` if `fs` exists). (0.1.18)
++ Run fstrider as fast as possible. (0.1.18)
++ Keeps history between running fstrider. (0.1.18)List
++ Async monitoring of the list and update if new files created. (0.1.19)
++Add `/` to the end of directory in title and in history.
Configuration
++ Read env from `os.env`. See `fstrider.env`. (0.1.19)Integration
"=" to move object from path to the current dir.Tech
++ Add list and menu mode.
Errors processing
Show errors like in case of exception.
Process `File exists` error.
++ Resolve `/tmp/../../`. (0.1.17)
Symlinks: copying, moving
Style
Grey style for copy/move and red style for delete dialogue.
Navigation
Move coursor to the next file after deletion.
++ Up key at first option moves cursor to end. (0.1.19)
++ Fix left key when go from history.
++ Fix right key when go to file from history.
```### v0.3.0
```
Navigation
Key+Left - Go back to previous screen after moving/copying/etc.
List
Sorting by size/date `sorted(glob.glob('*.png'), key=os.path.getsize)`.
Modes: short, full (chmod/chown/date).
Keep file msg after `invalidate_list`.Jump
Use path from clipboard e.g. `text_area.buffer.paste_clipboard_data`.
Use directories from xonsh history i.e. `__xonsh__.history[-1].cwd`
```### v0.4.0
```
Title
Show chown/chmod if "Access denied".
Show what part of path is exist and what's new.
Dialog
Autocomplete for paths in menu - the feature from prompt-toolkit.
Copying progress bar or just the console log from `rsync`.
```### v0.5.0
```
List
Fuzzy search.
Research: Draggable items i.e. `ls --hyperlink`.
Associations
`.xonshrc` case in app_assoc.
Highlight known suffix from app_assoc.
Using $LS_COLORS and `dircolors` for color files.
```### v0.6.0
```
List
Improve speed of list on big amount of items - 10k+
```### Waiting for community
```
Integration
Other shells support.
Key bindings
The way to change key bindings.
VI mode, Emacs mode.
Style
Dark style.
```### Ideas for future
```
List
Fake files (items in the list)
Fake deleted file to show that this file was deleted.
Interstellar wormhole - path to another path added to this directory.
Read the path from files in this directory.
Colors and gradient: by time, by size. Show old files with dark color. Show small files with dark color.
Integration
Catching pasting path from clipboard and ask actions: cd-ing, copy/move from, open.
Using fstrider for anything e.g. striding around aws s3 bucket, ssh host.
The way to setup fstrider for special needs: colors, menus, hotkeys.
Keys
Free keys to use: `/`, `-`.
Xonsh shell
Using xonsh shell history to jump into directories.
Run shell command in this directory.
Crazy: use xonsh prompt as a prompt for ptk `TextArea`
AI
Predict the next choice of path based on history and maybe files in dir.
```## Good to know
* Copy the current path in MacOS Finder: Option Command C
* Jump to path in MacOS Finder: Command Shift G