felix 2.0.0

tui file manager with vim-like key mapping
felix-2.0.0 is not a library.

crates.io aur:felix-rs MSRV

felix

A tui file manager with vim-like key mapping, written in Rust.
Fast, simple, and easy to configure & use.

For the detailed document, please see https://kyoheiu.dev/felix.

sample

New Release

v2.0.0 (2022-11-11)

Changed

  • Migrated to yaml from toml: New config file will be created at the first launch (In this process you should enter the default command name or choose to use $EDITOR). No need to keep config.toml.
  • Add the fallback when config file cannot be read: In such a case, you can use the default config.
  • HUGE refactoring overall.

Added

  • Horizontal split, in addtion to the vertical split. To swtch between them, press s.
  • Syntax highlighting (if possible) in previewed texts. To turn on, state syntax_hightlight: true in config.yaml. you can also choose your theme, either from the default theme set or your favorite .tmtheme.
  • Enable scrolling in the preview space. Alt + j / Down goes down, Alt + Up goes up. Experimental and may have some bugs. Also, big text files can cause the performance issue.
  • Search by keyword. Similar to the filter mode, but this feature does not manipulate the item list: Just let users jump to the item that matches the keyword, like Vim's /. n and N after / also works.
  • Show permissions on the footer (in unix only).

For more details, see CHANGELOG.md.

Status

OS Status
Linux works
NetBSD works
MacOS works
Windows not fully tested yet

For Windows users: From v1.3.0, it can be at least compiled on Windows (see .github/workflows/install_test.yml.) If you're interested, please try and report any problems.

MSRV(Minimum Supported rustc Version): 1.60.0

Installation

Make sure that gcc is installed.

From crates.io:

cargo install felix

From AUR:

yay -S felix-rs

On NetBSD, package is available from the official repositories:

pkgin install felix

From this repository:

git clone https://github.com/kyoheiu/felix.git
cd felix
cargo install --path .

Integrations

In addition, you can use felix more conveniently by installing these two apps:

  • zoxide: A smarter cd command, which enables you to jump to a directory that matches the keyword in felix.
  • chafa: Terminal graphics for the 21st century, by which you can preview images in felix.

These apps do not need any configuration to use with felix!

Usage

`fx` => Show items in the current directory.
`fx <directory path>` => Show items in the path.
Both relative and absolute path available.

Options

`-h` | `--help` => Print help.
`-v` | `--version` => Check update.
`-l [path]` | `--log [path]` => Launch the app and create a log file.

Key Manual

j / Down          :Go down.
k / Up            :Go up.
h / Left          :Go to the parent directory if exists.
l / Right / Enter :Open a file or change directory.
o                 :Open a file in a new window.
gg                :Go to the top.
G                 :Go to the bottom.
z + Enter         :Go to the home directory.
z <keyword>       :Jump to a directory that matches the keyword. (zoxide required)
dd                :Delete and yank one item.
yy                :Yank one item.
p                 :Put yanked item(s) in the current directory.
V                 :Switch to the select mode.
  - d             :In the select mode, delete and yank selected item(s).
  - y             :In the select mode, yank selected item(s).
u                 :Undo put/delete/rename.
Ctrl + r          :Redo put/delete/rename.
v                 :Toggle whether to show the preview.
s                 :Toggle between vertical / horizontal split in the preview mode.
Alt + j / Down    :Scroll down the preview text.
Alt + k / Up      :Scroll up the preview text.
backspace         :Toggle whether to show hidden items.
t                 :Toggle the sort order (name <-> modified time).
:                 :Switch to the shell mode.
c                 :Switch to the rename mode.
/                 :Search items by the keyword.
n                 :Go forward to the item that matches the keyword.
N                 :Go backward to the item that matches the keyword.
Esc               :Return to the normal mode.
:cd / :z          :Go to the home directory.
:z <keyword>      :Same as `z <keyword>`.
:e                :Reload the current directory.
:empty            :Empty the trash directory.
:h                :Show help.
:q / ZZ           :Exit.

Preview feature

By default, text files and directories can be previewed.
Install chafa and you can preview images without any configuration.

Configuration

Linux

config file     : $XDG_CONFIG_HOME/felix/config.yaml
trash directory : $XDG_CONFIG_HOME/felix/trash
log files       : \$XDG_CONFIG_HOME/felix/log

macOS

config file     : $HOME/Library/Application Support/felix/config.yaml
trash directory : $HOME/Library/Application Support/felix/trash
log files       : \$HOME/Library/Application Support/felix/log

Windows

config file     : $PROFILE\AppData\Roaming\felix\config.yaml
trash directory : $PROFILE\AppData\Roaming\felix\trash
log files       : $PROFILE\AppData\Roaming\felix\log

For more details, visit https://kyoheiu.dev/felix.