Skip to content

Latest commit

 

History

History
223 lines (177 loc) · 8.23 KB

index.md

File metadata and controls

223 lines (177 loc) · 8.23 KB
layout
default

Stand With Ukraine Русский корабль, иди на хуй!

Stand With Ukraine

FAR.js

Good old Windows File and ARchive Manager (FAR) app built with: Scala.js, React.js, react-blessed, blessed

Runs on Node.js, bun and cross-platform:

Install

To install (or upgrade) it on your computer use the following command:

npm i -g farjs-app

then you can run the application (using node) from your favorite terminal:

farjs

To run using bun use:

bun $(which farjs)

Screenshots

Documentation

Modules

Other

File Browser

Main application window that consists of two similar panels. Each panel displays list of files and directories. You can perform different operations:

  • Navigation within panels:

    • Items selection - Shift + Up/Down/Left/Right/PageUp/PageDown/Home/End
      • Select/Deselect group with Alt + S/Alt + D
    • Go back to the parent folder - Ctrl + PageUp
    • Go into a folder - Ctrl + PageDown / Return
  • Drive selection popup (see Key Bindings for how to re-map it to Alt + F1/F2)

    • Show it on the left panel - Alt + L
    • Show it on the right panel - Alt + R
  • Open item in default application - Alt + O (see Key Bindings for how to re-map it to Shift + Return)

  • Copy Path of current item into Clipboard - Ctrl + C (in iTerm2 only)

  • Folder shortcuts - Ctrl + D

  • Folders history - Alt + H

  • File view history - Alt + V

  • Swap the panels - Ctrl + U

  • Quick View of current item on in-active panel - Ctrl + Q

  • Show Quick Search box - Ctrl + S

  • Refresh active panel - Ctrl + R

  • View item(s) - F3

    • Opens focused file in the internal File Viewer
    • Scans selected folder(s)/file(s) and calculates size(s)
  • Copy item(s) - F5

  • Copy current item inplace - Shift + F5

  • Rename/Move item(s) - F6

  • Rename/Move current item inplace - Shift + F6

  • Create folder (with intermediate sub-folders) - F7

  • Add files to archive (ZIP) - Shift + F7

  • Delete item(s) - F8

  • Main menu - F9

File Viewer

Built-in internal text file viewer.

  • Wrap/Unwrap text - F2
  • Move view column - Left/Right
  • Select Encoding - F8

Dev Tools

Use F12 to show/hide DEV tools components on the right side. Press F12 again to switch between the components.

Logs

Shows all the intercepted console.log and console.error messages, since the app itself is rendered to the console.

Inputs

Shows input keys sequences.

Colors

Shows possible colors with their hex codes for current terminal/theme.

FAQ

Key Bindings

  • Why supported key combination doesn't work or trigger another action in my terminal?
    • Some key combinations (especially Alt+) have to be manually re-mapped in your terminal settings to send supported escape sequences or hex codes. For example, you can re-map:
      • Key Supported Key Escape Sequence ^[ ... Hex Codes
        Alt + F1 Alt + L l
        Alt + F2 Alt + R r
        Alt + F11 Alt + V v
        Alt + F12 Alt + H h
        Shift + Return Alt + O o
        CMD + PageDown Ctrl + PageDown [6^
        CMD + PageUp Ctrl + PageUp [5^
        CMD + R Ctrl + R 0x12
        CMD + F3 Ctrl + F3 [13;5~
        CMD + F4 Ctrl + F4 [14;5~
        CMD + F12 Ctrl + F12 [24;5~
        CMD + Up Ctrl + Up [1;5A
        CMD + Down Ctrl + Down [1;5B
    • In iTerm2, when you go to Preferences -> Keys and press +, it looks like this:
    • In Windows Terminal you can use sendInput action (in settings.json):
      {
        "actions": [
      
            { "command": { "action": "sendInput", "input": "\u001bl" }, "keys": "alt+f1" },
            { "command": { "action": "sendInput", "input": "\u001br" }, "keys": "alt+f2" },
            { "command": { "action": "sendInput", "input": "\u001bv" }, "keys": "alt+f11" },
            { "command": { "action": "sendInput", "input": "\u001bh" }, "keys": "alt+f12" },
            { "command": { "action": "sendInput", "input": "\u001bo" }, "keys": "shift+enter" }
      
        ]
      }

Archive Support

  • Why on my platform I get: Command not found (unzip/zip) error?
    • Indeed, on Windows, for example, they aren't pre-installed. You can download them from here, for example, and then store them in local folder that is listed in the PATH environment variable.

Network Shared Folders

  • How can I open network shared folders on Mac OS X?
    • On Mac OS X you can first mount shared folder on local drive by using Connect to Server feature in Finder, see details here. Then you should be able to select it in the Drive selection popup in FAR.js.

Mouse Support

  • Why on Windows platform mouse doesn't work?
    • Indeed, on Windows mouse may not work, please, check this thread/issue for more details.

Unicode Support

  • Why on Linux/Ubuntu I get ??? instead of double border characters?
    • You have to set LANG=en_US.UTF-8 environment variable globally:
      echo "export LANG=en_US.UTF-8" >> ~/.bashrc
      or via command line:
      LANG=en_US.UTF-8 farjs

iTerm2 Support

  • Why in iTerm2 I don't get 256 colors and copy into clipboard support when I run farjs from inside a remote terminal session (ssh, docker exec, etc.)?
    • Indeed, in case of remote terminal connection you have to tell farjs that it is actually running from inside iTerm2 terminal, for ex. via command line:
      TERM_PROGRAM=iTerm.app TERM=xterm-256color farjs