[![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.2.0 (2022-12-12) ### Changed - **IMPORTANT**: Trash and log directory path changed. - from v2.2.0, felix will use `dirs::data_local_dir()` to store the deleted items and log files, instead of `dirs::config_dir()`. - Due to this change, the path for linux will be `$XDG_DATA_HOME/felix/{Trash, log}`, in most case `/home/user/.local/share/felix/{Trash, log}`. For Windows `{FOLDERID_LocalAppData}\felix\{Trash, log}`, in most case `C:\Users\user\AppData\Local\felix\{Trash, log}`. No change for macOS users. Note that config file path is not changed! - Please don't forget deleting old trash diretory and log files if you don't want them anymore. ### Added - `:trash` to go to the trash directory. ### Fixed - Support NetBSD to open file in a new window. - Properly remove broken symlink in Windows as well. Also, when deleting/puttiing a directory, broken symlink(s) in it won't cause any error and will be removed from the file system after deleting/putting. 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._ ## Installation ### Prerequisites - Make sure that `gcc` is installed. - MSRV(Minimum Supported rustc Version): **1.60.0** Update Rust if rustc < 1.60: ``` rustup update ``` ### From crates.io ``` cargo install felix ``` ### From AUR ``` yay -S felix-rs ``` ### NetBSD 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. e :Unpack archive/compressed file. 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. :trash :Go to the trash 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_DATA_HOME/felix/Trash log files : $XDG_DATA_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\Local\felix\Trash log files : $PROFILE\AppData\Local\felix\log ``` For more details, visit https://kyoheiu.dev/felix.