Skip to main content

Library of the useful macroses for the xonsh shell.

Project description

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:

pip install fstrider
# OR: pip install -U git+https://github.com/anki-code/fstrider

Usage

Run fstrider and start striding:

fstrider

In the xonsh shell you can load xontrib with s alias that works fast and allows to change directory using fstrider:

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.
  • Esc - quit.

Additional:

  • Shift ~ - jump to the home directoy.
  • Control j - jump to path. You can jump into new path and then create it.
  • Control h - jump to directory from history.
  • 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:

  • $XONTRIB_FSTRIDER_ALIAS - change the alias name. Recommended s.

Good to know

  • Copy the current path in MacOS Finder: Option Command C
  • Jump to path in MacOS Finder: Command Shift G

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).
    ++ Run fstrider as fast as possible.
    ++ Keeps history between running fstrider.

Configuration
    ++ Read env from `os.env`. See `fstrider.env`.

Integration
    "=" to move object from path to the current dir.

Tech
    Errors processing
        Show errors like in case of exception.
        Process `File exists` error.
    ++ Resolve `/tmp/../../`.
    Symlinks: copying, moving   
    
Style
    Grey style for copy/move and red style for delete dialogue. 
    
Navigation
    Fix left key when go from history.    
    Fix right key when go to file from history.

v0.3.0

Navigation
    Go back to previous directory after moving or copying.
    
List
    Sorting by size/date `sorted(glob.glob('*.png'), key=os.path.getsize)`.
    Modes: short, full (chmod/chown/date). 

Jump
    Use path from clipboard e.g. `text_area.buffer.paste_clipboard_data`.
    Use directories from history.

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`.

Navigation
    Up key at first option moves cursor to end.

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.
    Async update the list (https://github.com/anki-code/fstrider/issues/1)
    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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fstrider-0.1.18.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

fstrider-0.1.18-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file fstrider-0.1.18.tar.gz.

File metadata

  • Download URL: fstrider-0.1.18.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for fstrider-0.1.18.tar.gz
Algorithm Hash digest
SHA256 a5efc89a0d4f2829692536d0404ef3cc57ed3cc82ccf34d25da8db5b801fd3b5
MD5 55378a4cc01c6d3e8d9b743094a408f6
BLAKE2b-256 d3a6fa9af74916652c0b234ef90fe8d89d271d494c971d7ea58edb0c3594ae6c

See more details on using hashes here.

File details

Details for the file fstrider-0.1.18-py3-none-any.whl.

File metadata

  • Download URL: fstrider-0.1.18-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for fstrider-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 43d815f7d588ef8be63d8b02963af0f5c2d06a3050e30b412d9017c277cc96fd
MD5 4b523bd148cdd23348ef74ffa26621ea
BLAKE2b-256 f7917348b4398cc1de75dee88734f12564202f6242626dc958c9b98633f40373

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page