[![crates.io](https://img.shields.io/crates/v/felix)](https://crates.io/crates/felix) ![aur:felix-rs](https://img.shields.io/aur/version/felix-rs) ![MSRV](https://img.shields.io/badge/MSRV-1.60.0-orange) # _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](screenshots/sample.gif) ## 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](https://github.com/ajeetdsouza/zoxide): A smarter `cd` command, which enables you to jump to a directory that matches the keyword in felix. - [chafa](https://hpjansson.org/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 ` => 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 :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 :Same as `z `. :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.