Awesome
<div align="center"> <h1>TUIFI Manager</h1> <p> <a href="https://github.com/GiorgosXou/TUIFIManager/pulse"> <img src="https://img.shields.io/github/last-commit/GiorgosXou/TUIFIManager?color=%4dc71f&label=Last%20Commit&logo=github&style=flat-square"/> </a> <a href="https://github.com/GiorgosXou/TUIFIManager/blob/master/LICENSE"> <img src="https://img.shields.io/github/license/GiorgosXou/TUIFIManager?label=License&logo=GNU&style=flat-square"/> </a> </p> </div>A cross-platform terminal-based termux-oriented file manager (and component), meant to be used with a Uni-Curses project or as is. This project is mainly an attempt to get more attention to the Uni-Curses project.
<div align="center"> <p> <img src="./Peek.gif"> </p> <p> <sub>FONT: Cartograph CF</sub> </p> </div>⚙️ Installation
sudo pip3 install tuifimanager --upgrade
pip3 install TUIFIManager --upgrade
or just ^^^ if it works for you. (eg. on termux?)
💥 Usage
Run tuifi
in your terminal to use it as is or import it in one of your Uni-Curses project as a component like:
from TUIFIManager import *
for more details look into the __main__.py
📦 Features
• 📌 Current:
- Supports X11 Drag&Drop from terminals
- Supports most common mouse events
- Can be used as a component
- Uses about 35MB of RAM
- Strong C TUI backend
- It is pretty snappy ! <!-- Kinda lol -->
- Supports Termux
- Cross Platform
- and more
• 🔮 Desired:
- Macros
- Treeview
- Undo\Redo
- Improved UI
- Multiple tabs
- Image\Sixel support
- Effect on cutted Files
- Multithread performance
⌨️ Keybindings
In vim_mode
both normal and vim shortcuts work
Normal | vim_mode | Action |
---|---|---|
SHIFT + TAB | Moves selected file to the previous directory | |
KEY_BACKSPACE | J | Opens\Goes to the previous directory |
ALT + DOWN | Opens\Closes the "right-click menu" | |
KEY_HOME | H | Navigates to the $HOME directory |
KEY_F5 | Reload\Refresh current directory | |
KEY_F3 | o | (descending) order-type switch |
KEY_F1 | O | (ascending) order-type switch |
CTRL + V | p | Pastes the Copied or Cuted files |
DEL | CTRL+d | Deletes the selected files |
CTRL + F | i | Find Files (if not auto_find_on_typing) |
CTRL + O | Open whole directory in editor | |
CTRL + A | Select all files in current folder | |
CTRL + C | yy | Copies the selected files |
CTRL + K | Copies the selected files | |
CTRL + X | c | Cuts the selected files |
CTRL + R | r | Rename selected file |
CTRL + T | Toggle hidden files | |
CTRL + N | W | Create new folder |
CTRL + P | Show properties | |
CTRL + W | w | Create new file |
ARROW KEYS | l k j h | Navigates files |
KEY_ENTER | K | Opens files |
CTRL + E | e | Exit with cd |
ESCAPE | Exit |
(TIP: 🐁 use ALT + CLICK
for multiple mouse selection if SHIFT
not working. You can also use s i m a c
to copy individual properties when you have them opened)
TERMUX only Shortcuts\Keybindings
Shortcut | Action |
---|---|
CTRL + DOWN | Goes in&out of select-mode while also automatically copies the selected file(s) |
CTRL + LEFT | Goes out of select-mode while also cuts the seleccted file(s) |
CTRL + END | Goes out of select-mode while also deleting the selected file(s) |
CTRL + UP | Same as CTRL + V , Pastes the Copied or Cuted files |
END | Deletes selected files |
👨💻 Commands
(Default & Custom Comands) - To perform a command under the normal-mode, you first have to press the space-bar and then type the command. Alternatively, use vim_mode
or enable the tuifi_auto_command_on_typing
env-variable (notice: it disables tuifi_auto_find_on_typing
). The default commands can be seen below and can be found under the ~/.config/tuifi/cmds.conf
where you can add your custom ones too:
Cmd | Type | Attributes | Label Information |
---|---|---|---|
gt | open | 'directory':'~/.config/tuifi' | - tuifi - |
gh | open | 'directory':'~/' | - Home - |
owv | open | 'directory':None,'_with':'vim' | Opened With Vim |
yat | copy | 'pattern':'.+\\.txt' | |
yy | copy | 'pattern':None |
Available Type-keywords: open
, copy
, cut
, find
important note: o
is also used for ordering in vim_mode
. In this case you can first press space-bar before proceeding with owv
or with any other already reserved starting key, or just change it.
Additionally there are also some hardcoded ones, like the m
+character: which marks the current directory into the character, so you can navigate back to it by using ` or ;
+that_character. yp
and yd
to copy either the file-path or directory-path to clipboard.
📜 Documentation
<sub>Work in progress 🛠️🏗 ...</sub>
💭 Customization
<details> <summary><i>How do I change theme?</i></summary></details> <details> <summary><i>How do I enable vim_mode?</i></summary>You either download one or make your own based on this how-to. <!-- [.](https://github.com/GiorgosXou/TUIFIManager/issues/38) -->
</details> <details> <summary><i>How do I enable transparency?</i></summary>Set
tuifi_vim_mode
enviroment variable toTrue
</details> <details> <summary><i>How do I enable synthetic XDND?</i></summary>Set
tuitilities_default_background
enviroment variable toTrue
</details> <details> <summary><i>How do I set the default editor?</i></summary>set
tuifi_synth_dnd
enviroment variable toTrue
.pip install requests pynput PySide6 python-xlib
. Know it's expirimental! You'll need to adapt to it slightly, use it as: Drag&drop + click afterwords where you want the file to be dropped. See also and this issue
</details> <details> <summary><i>How do I disable the auto-find-mode?</i></summary>Set
tuifi_default_editor
enviroment variable tovim
or whatever you prefer
</details> <details> <summary><i>How do I change the scroll sensitivity?</i></summary>You can just set
tuifi_auto_find_on_typing
enviroment variable toFalse
</details> <details> <summary><i>How do I change the default keys (besides commands)?</i></summary>You can set either or both
tuifi_scroll_sensitivity
,tuifi_ctrl_scroll_sensitivity
enviromental variables, to the disered number of characters per scroll action (they default to 1 and 7)
</details> <details> <summary><i>How do I change the number of visible lines of filenames that are visible?</i></summary>This is not possible right now althought you could play around with the content of
toggle_vim_mode
function under__init__.py
</details> <details> <summary><i>How do I change the default configuration path?</i></summary>You can set how mnay lines you want using
tuifi_visible_filename_lines
(Defaults to 4)
</details> <details> <summary><i>How do I toggle hidden files/folders?</i></summary>Set
tuifi_config_path
enviroment variable to whatever you prefer most
</details>You can either
CTRL + T
or settuifi_show_hidden
enviroment variable toTrue
💗 Donation
I do really need money to survive, I have no job, living in a basement, making things for free, because I love to.
- Paypal Address
- Monero Address:
897ehhSQJQpGF7tYDhQM51jiX7nnHmzuYAW4q8JGwJxu8JKXvaK6AivCzatuJxnifjZ2qy98ks2g2PhmTaYCMMta2Ga2LJx
🫶 Special thanks to
- @KORBEN for this article
- Bryan Lunduke for this article
- Brodie Robertson for this video
- r/linux community for their comments
- r/cyberDeck community for their comments
- r/commandline community for their comments
🕳️ Outro
- Any Idea with this issue https://github.com/unicurses/unicurses/issues/21 ?
- Btw I use TUIFI in a daily basis. As crazy as it might sound: It's my primary file manager.