GiorgosXou / TUIFIManager

A cross-platform terminal-based termux-oriented file manager (and component), meant to be used with a Uni-Curses project or as is.
GNU General Public License v3.0
718 stars 14 forks source link
cross-platform filemanager filemanager-ui ncurses pdcurses terminal terminal-based termux tui unicurses vi-motion vim vim-motions

TUIFI Manager

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:

• 🔮 Desired:

⌨️ 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

Work in progress 🛠️🏗 ...

💭 Customization

How do I change theme? > You either [download](https://github.com/GiorgosXou/our-tuifi-themes) one or make your own based on this [how-to](https://github.com/GiorgosXou/our-tuifi-themes/blob/main/TUTORIAL.md).
How do I enable vim_mode? > Set `tuifi_vim_mode` enviroment variable to `True`
How do I enable transparency? > Set `tuitilities_default_background` enviroment variable to `True`
How do I enable synthetic XDND? > set `tuifi_synth_dnd` enviroment variable to `True`. `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](https://github.com/GiorgosXou/TUIFIManager/discussions/92) and [this issue](https://github.com/GiorgosXou/TUIFIManager/issues/21)
How do I set the default editor? > Set `tuifi_default_editor` enviroment variable to `vim` or whatever you prefer
How do I disable the auto-find-mode? > You can just set `tuifi_auto_find_on_typing` enviroment variable to `False`
How do I change the scroll sensitivity? > 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)*
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_mode` function 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_path` enviroment variable to whatever you prefer most
How do I toggle hidden files/folders? > You can either `CTRL + T` or set `tuifi_show_hidden` enviroment variable to `True`

💗 Donation

I do really need money to survive, I have no job, living in a basement, making things for free, because I love to.

🫶 Special thanks to

🕳️ Outro