Giter Club home page Giter Club logo

tuifile's Introduction

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
  • build the file list on a background thread to avoid blocking
  • add more features (open an issue with ideas if you have any)

Demo

demo2.mp4
  • 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

Controls

Global

  • Ctrl+C/D -> quit
  • Ctrl+Up/K -> previous
  • Ctrl+Down/J -> next
  • Ctrl+Left/H -> close
  • Ctrl+Right/L -> duplicate

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
  • M -> set Mode based on Find/Filter bar (see File List Modes)
  • 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)
  • P -> set Permissions (mode taken as base-8 number from find/filter bar text)
  • O -> set Owner (and group - TODO!)
  • 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

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.

tuifile's People

Contributors

dummi26 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.