TUIFIManager
A cross-platform terminal-based termux-oriented file manager (and component), meant to be used with a Uni-Curses project or as is.
Install / Use
/learn @GiorgosXou/TUIFIManagerREADME
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 |
|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
<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_modeenviroment variable toTrue
</details> <details> <summary><i>How do I enable synthetic XDND?</i></summary>Set
tuitilities_default_backgroundenviroment variable toTrue
</details> <details> <summary><i>How do I set the default editor?</i></summary>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
</details> <details> <summary><i>How do I disable the auto-find-mode?</i></summary>Set
tuifi_default_editorenviroment variable tovimor whatever you prefer
</details> <details> <summary><i>How do I change the scroll sensitivity?</i></summary>You can just set
tuifi_auto_find_on_typingenviroment variable toFalse
</details> <details> <summary><i>How do I enable single-click navigation mode?</i></summary>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)
</details> <details> <summary><i>How do I change the default keys (besides commands)?</i></summary>You just set
tuifi_has_single_clickenviroment variable toTrue
</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_modefunction 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_pathenviroment variable to whatever you prefer most
</details>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](https://korben.info/gestionnaire-fichiers-terminal-tuifimanager-multiplateforme-leger-personnalis
