TUIFIManager - A cross-platform terminal-based file manager

Overview

TUIFI Manager

A cross-platform terminal-based 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.

Installation

sudo pip3 install TUIFIManager

or just pip3 install TUIFIManager if it works for you.

Usage

Run tuifi in your terminal to use it 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

https://asciinema.org/a/gVD8T8nHCI4xaMHomwiR3m3hx

Shortcuts & Features

Shortcut Action
SHIFT + TAB Moves selected file to the previous directory
CTRL + S Goes in & out of "Select Mode" for termux
KEY_BACKSPACE Opens\Goes to the previous directory
CTRL + V Pastes the Copied or Cuted files
DEL Deletes the selected files
CTRL + C Copies the selected files
CTRL + X Cuts the selected files
ARROW KEYS Navigates files
KEY_ENTER Opens files
ESCAPE Exit
  • Supports most of the common mouse events so far
  • It is somewhat fully customizable
  • Supports Termux (Not fully yet)
  • It is quite snappy
  • Cross Platform
  • and more

Outro

Documentation and other things are coming ...

stackedit.io have been used for the editing of this MD file

Comments
  • Using EDITOR instead of tuifi_default_editor

    Using EDITOR instead of tuifi_default_editor

    Is there any benefit to using a custom variable for the editor? Using EDITOR will use the correct editor out of the box for most users, since most people heavily using the terminal will have it set. If you want to offer the ability to use an editor other than what EDITOR is set to, perhaps you could check if tuifi_default_editor is set, and otherwise fallback to EDITOR?

    opened by michaelBelsanti 3
  • ncurses not found but existing on macOS

    ncurses not found but existing on macOS

    Installed via: % pip3 install TUIFIManager --upgrade

    Run as: % tuifi

    Got:

    [email protected] ~ % tuifi
    Traceback (most recent call last):
      File "/opt/homebrew/bin/tuifi", line 5, in <module>
        from TUIFIManager.__main__ import main
      File "/opt/homebrew/lib/python3.10/site-packages/TUIFIManager/__init__.py", line 9, in <module>
        from       .TUIMenu import    *
      File "/opt/homebrew/lib/python3.10/site-packages/TUIFIManager/TUIMenu.py", line 2, in <module>
        import unicurses
      File "/opt/homebrew/lib/python3.10/site-packages/unicurses/__init__.py", line 119, in <module>
        ncurses,panel = get_libncursesw_paths()
      File "/opt/homebrew/lib/python3.10/site-packages/unicurses/__init__.py", line 79, in get_libncursesw_paths
        raise Exception('NCursesNotFound: ' + msg)
    Exception: NCursesNotFound: No version of shared-libraries of ncurses found on this system, please try `brew install ncurses` if this won't work please create an issue
    
    [email protected] ~ % brew install ncurses
    ==> Auto-updated Homebrew!
    […]
    Running `brew update --auto-update`...
    […]
    
    Warning: ncurses 6.3 is already installed and up-to-date.
    To reinstall 6.3, run:
      brew reinstall ncurses
    
    [email protected] ~ % sw_vers
    ProductName:		macOS
    ProductVersion:		13.1
    BuildVersion:		22C65
    

    … on ARM64.

    opened by ghoffart 3
  • TUIFIManager does not start in current working directory.

    TUIFIManager does not start in current working directory.

    Hello,

    I see no reason why TUIFIManager should not start in the current working directory $PWD (os.path.curdir in Python).

    Instead, it appears the default is to always start in the user's home directory ($HOME).

    Please consider changing the behavior.

    opened by paxsali 2
  • CTRL + S is default for stop processing terminal

    CTRL + S is default for stop processing terminal

    Just wanted to point out that for a terminal based utility, the default keybinding CTRL +S is highly problematic, as for most environments it means freeze / don't update / stop scrolling the terminal. (with CTRL + Q meaning continue / unfreeze / resume scrolling).

    Please consider to replace this default binding with something less irritating to most users.

    Thanks.

    opened by paxsali 2
  • Over-lapping files when exiting search mode

    Over-lapping files when exiting search mode

    Weird Issue resulting in the over-drawing of another icon, when exiting find-mode (in position 0) and then proceeding to move:

    Peek 2022-12-12 12-52

    it has been fixed, it will not be present in the next release

    bug reminder 
    opened by GiorgosXou 1
  • CTRL+C raises auto-search function

    CTRL+C raises auto-search function

    just a reminder to return when event is null 0, because i forgot about it and i was wondering why i had this issue lol

    just add this line, under the handle_events function

    if event == 0: return
    
    bug reminder shortcut 
    opened by GiorgosXou 1
  • Reminder: I forgot to remove the last line from __init__.py

    Reminder: I forgot to remove the last line from __init__.py

    If you ctrl+c and random characters appear on the side of the selected fille, it is because I forgot this line .

    I'll remove it tommorow, now I'm going to sleep.

    opened by GiorgosXou 1
  • Delete send to trash instead of a full remove

    Delete send to trash instead of a full remove

    Hello, your project got the attention from a youtuber and I thought to help a bit with an issue that he talks about.

    https://youtu.be/9laxdMKTZLA

    Still missing a confirmation prompt and implementation to handle the trash with the manager, but with this PR, will solve the issue that any file that is deleted with this app, will delete them instead of send it to the trash.

    Tested using a Fedora VM and works perfectly.

    Good work and as the youtuber said, I hope this project keeps going.

    PD: Will be nice to handle versioning using tags instead of commits, this will help to document the versions as stable as it gets, also if someone else tries to get involved into it, will help to know what's going on with more clear commit messages.

    opened by joser93 0
  • OSError

    OSError

    shell=True , make it a string and maybe remove os.system('clear') https://github.com/GiorgosXou/TUIFIManager/blob/c526026947e879ff3cf80d503371684eb18d62eb/TUIFIManager/init.py#L270 recreating the issue, open any file with DEFAULT_OPENER at least on windows

    reminder 
    opened by GiorgosXou 0
  • Oppsie | re.error

    Oppsie | re.error

    I'll just use pathlib's glob to fix it asap, my fault https://github.com/GiorgosXou/TUIFIManager/blob/c526026947e879ff3cf80d503371684eb18d62eb/TUIFIManager/init.py#L137 https://github.com/GiorgosXou/TUIFIManager/blob/c526026947e879ff3cf80d503371684eb18d62eb/TUIFIManager/init.py#L158 Reproducing the issue: create a folder named [what-ever]

    bug reminder 
    opened by GiorgosXou 0
  • Adding more file types

    Adding more file types

    I open this issue as I would present a few design a file type i made and may post more of them in the future. This issue is meant to collect every proposition instead of opening an issue for each

    opened by Sigmanificient 19
  • Extracting

    Extracting "ascii images" to files

    It would be really nice to have a separation for the ASCII files icons into their own files outside the codebase.

    This would make organization easier, adding new files type an easy manner and improve the possibility for customization. I would think of having metadata along the ascii art, such a the file extensions.

    For later on it could be a way to add better / small icons too while keeping the code clean with a simple loader helper

    opened by Sigmanificient 7
  • Deleting from SD in TERMUX

    Deleting from SD in TERMUX

    Permisions are limmited in TERMUX when it comes to the access of external storage like SD, and so send2trash fails to create a trash-folder in the root directory of the SD

    bug reminder 
    opened by GiorgosXou 0
  • Potential Issue with Open

    Potential Issue with Open

    Potential issue when opening files without extension and without DEFAULT_EDITOR https://github.com/GiorgosXou/TUIFIManager/blob/master/TUIFIManager/init.py#L253

    opened by GiorgosXou 0
  • Freeze

    Freeze

    Randomly freezes when using

    python 3.9
    tuifi from pipy 1.3.3
    unicurses from pipy 2.1.0
    ncurses6 6.3-p20220507
    alacritty 0.11.0
    

    https://user-images.githubusercontent.com/37012324/206681334-a510456e-a7cd-46a9-8af3-8df7887e416b.mp4

    opened by hissssst 3
Releases(v.2.1.9)
Owner
¿‮?poolegnartS
Text based command line webcam photobooth app

Skunkbooth Why See it in action Usage Installation Run Media location Contributing Install Poetry Clone the repo Activate poetry shell Install dev dep

David Yang 45 Dec 26, 2022
pypinfo is a simple CLI to access PyPI download statistics via Google's BigQuery.

pypinfo: View PyPI download statistics with ease. pypinfo is a simple CLI to access PyPI download statistics via Google's BigQuery. Installation pypin

Ofek Lev 351 Dec 26, 2022
A command line tool made in Python for the popular rhythm game

osr!name A command line tool made in Python for the popular rhythm game "osu!" that changes the player name of a .osr file (replay file). Example: Not

2 Dec 28, 2021
doq (python docstring generator) extension for coc.nvim

coc-pydocstring doq (python docstring generator) extension for coc.nvim Install CocInstall: :CocInstall coc-pydocstring vim-plug: Plug 'yaegassy/coc-p

yaegassy 27 Jan 04, 2023
A python command line tool to calculate options max pain for a given company symbol and options expiry date.

Options-Max-Pain-Calculator A python command line tool to calculate options max pain for a given company symbol and options expiry date. Overview - Ma

13 Dec 26, 2022
Python-Stock-Info-CLI: Get stock info through CLI by passing stock ticker.

Python-Stock-Info-CLI Get stock info through CLI by passing stock ticker. Installation Use the following command to install the required modules at on

Ayush Soni 1 Nov 05, 2021
A communist shell written in Python

kash A communist shell written in Python It doesn't support escapes, quotes, comment lines, |, &&, , or similar yet. If you need help, get it from

Çınar Yılmaz 1 Dec 10, 2021
A Python package for a basic CLI and GUI user interface

Organizer CLI Organizer CLI is a python command line tool that goes through a given directory and organizes all un-folder bound files into folders by

Caltech Library 12 Mar 25, 2022
Present - A terminal-based presentation tool with colors and effects.

present A terminal-based presentation tool with colors and effects. You can also play a codio (pre-recorded code block) on a slide. present is built o

Vinayak Mehta 4.2k Jan 03, 2023
cmdpxl: a totally practical command-line image editor

cmdpxl: a totally practical command-line image editor

Jieruei Chang 476 Jan 07, 2023
The command line interface for Gradient - Gradient is an an end-to-end MLOps platform

Gradient CLI Get started: Create Account • Install CLI • Tutorials • Docs Resources: Website • Blog • Support • Contact Sales Gradient is an an end-to

Paperspace 58 Dec 06, 2022
commandline version of wordle game and my auto solver.

Wordle Machine (and Wordle Game) (in commandline) My implementation of the Wordle game (inspired by https://www.powerlanguage.co.uk/wordle/) and my in

Kevin Xu 11 Jan 03, 2023
AML Command Transfer. A lightweight tool to transfer any command line to Azure Machine Learning Services

AML Command Transfer (ACT) ACT is a lightweight tool to transfer any command from the local machine to AML or ITP, both of which are Azure Machine Lea

Microsoft 11 Aug 10, 2022
Hurry is a CLI tool to speed setting up MoniGoMani HyperStrategy & co. #freqtrade #hyperopting #trading #strategy

Hurry is a CLI tool to speed setting up MoniGoMani HyperStrategy & co. #freqtrade #hyperopting #trading #strategy

10 Dec 29, 2022
Skiller - With this payload you can control the target computer with (cmd)

Skiller - With this payload you can control the target computer with (cmd)

1 Jan 02, 2022
Easy-to-use terminal program that can compile your code.

Description Easy-to-use terminal program that can compile your code. Installition 1. Cloning repository $ git clone https://github.com/DarkJoij/Compil

DarkJoij 1 Oct 21, 2021
Official AIdea command line tool

AIdea CLI Official AIdea command line tool for https://aidea-web.tw. Installation Make sure you have installed both Python 3 and pip package manager.

AIdea 5 Dec 15, 2021
Standalone Tailwind CSS CLI, installable via pip

Standalone Tailwind CSS CLI, installable via pip Use Tailwind CSS without Node.j

Tim Kamanin 144 Dec 22, 2022
A supercharged Git/GitHub command line interface (CLI)

A supercharged Git/GitHub command line interface (CLI).

Donne Martin 7.4k Jan 07, 2023
A CLI application for storing contacts as a csv file written in Python.

Contacter A CLI application for storing contacts as a csv file written in Python. You can use this to save your contacts with a special relations tag

nostalgicnerdpenguin 1 Oct 23, 2021