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 + CLICKfor multiple mouse selection ifSHIFTnot working. When properties-window is opened you can also uses i m a cto copy individual properties into the clipboard. To insert into jumplist the current directory simply markmm
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_modeenviroment variable toTrue
How do I enable transparency?
Set
tuitilities_default_backgroundenviroment variable toTrue
How do I enable synthetic XDND?
set
tuifi_synth_dndenviroment 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_editorenviroment variable tovimor whatever you prefer
How do I disable the auto-find-mode?
You can just set
tuifi_auto_find_on_typingenviroment variable toFalse
How do I change the scroll sensitivity?
You can set either or both
tuifi_scroll_sensitivity,tuifi_ctrl_scroll_sensitivityenviromental 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_clickenviroment 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_pathenviroment variable to whatever you prefer most
How do I toggle hidden files/folders?
You can either
CTRL + Tor settuifi_show_hiddenenviroment 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.
Metadata
Release files for TUIFIManager 5.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tuifimanager-5.2.6.tar.gz | 1.9 MB | Details |
Release files / tuifimanager-5.2.6.tar.gz
| Download URL | tuifimanager-5.2.6.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d11c8fa920b4d47f8e9bb6926788f1ba710a7d1ae268b09c89f59f29ce35452b
|
|
BLAKE2b-256 checksum How to use checksums |
56ac4abf7584018575ed86f0ea82fb8141b36ab8ad75f91bdbcc3912e15d596e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|