⚙️ Installation
June 26, 2026 · View on GitHub
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.
FONT: Cartograph CF
⚙️ 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 !
- 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 |
ALT + O | Open whole directory in editor | |
CTRL + O | Navigate backward in jumplist | |
CTRL + I | Navigate forward in jumplist | |
CTRL + F | i | Find Files (if not auto_find_on_typing) |
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. When properties-window is opened you can also use s i m a c to copy individual properties into the clipboard. To insert into jumplist the current directory simply mark mm
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 (Permanently!) |
👨💻 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. F and f for finding\jumping-to the first filename-ocurance of the next letter you type, backwards or forwards. gg and G to go to scroll to the first or last file.
📜 Documentation
Work in progress 🛠️🏗 ...
💭 Customization
How do I enable vim_mode?
Set
tuifi_vim_modeenvironment variable toTrue
How do I enable transparency?
Set
tuitilities_default_colorsenvironment variable toTrue
How do I enable synthetic XDND?
set
tuifi_synth_dndenvironment 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
How do I set the default editor?
Set
tuifi_default_editorenvironment variable tovimor whatever you prefer
How do I disable the auto-find-mode?
You can just set
tuifi_auto_find_on_typingenvironment variable toFalse
How do I change the scroll sensitivity?
You can set either or both
tuifi_scroll_sensitivity,tuifi_ctrl_scroll_sensitivityenvironmental variables, to the disered number of characters per scroll action (they default to 1 and 7)
How do I enable single-click navigation mode?
You just set
tuifi_has_single_clickenvironment variable toTrue
How do I change the default keys (besides commands)?
This is not possible right now althought you could play around with the content of
toggle_vim_modefunction under__init__.py
How do I change the number of visible lines of filenames that are visible?
You can set how mnay lines you want using
tuifi_visible_filename_lines(Defaults to 4)
How do I change the default configuration path?
Set
tuifi_config_pathenvironment variable to whatever you prefer most
How do I toggle hidden files/folders?
You can either
CTRL + Tor settuifi_show_hiddenenvironment 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.