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
Another (unofficial) Qt CLI Installer on multi-platforms

Another Qt installer(aqt) Release: Documentation: Test status: and Coverage: This is a utility alternative to the official graphical Qt installer, for

Hiroshi Miura 528 Jan 02, 2023
dsub is a command-line tool that makes it easy to submit and run batch scripts in the cloud.

Open-source command-line tool to run batch computing tasks and workflows on backend services such as Google Cloud.

Data Biosphere 233 Jan 01, 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
Command line tool for interacting and testing warehouse components

Warehouse debug CLI Example usage for Zumo debugging See all messages queued and handled. Enable by compiling the zumo-controller with -DDEBUG_MODE_EN

1 Jan 03, 2022
PyArmor is a command line tool used to obfuscate python scripts

PyArmor is a command line tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

Dashingsoft 2k Jan 07, 2023
Dead simple CLI tool to try Python packages - It's never been easier! :package:

try - It's never been easier to try Python packages try is an easy-to-use cli tool to try out Python packages. Features Install specific package versi

Timo Furrer 659 Dec 28, 2022
🌈 Generate color palettes based on Neovim colorschemes.

Iris Iris is a Neovim plugin that generates a normalized color palette based on your colorscheme. It is named for the goddess Iris of Greek mythology,

N. G. Scheurich 45 Jul 28, 2022
Convert ACSM files to DRM-free EPUB files with one command on Linux

Knock Convert ACSM files to DRM-free EPUB files using one command. This software does not utilize Adobe Digital Editions nor Wine. It is completely fr

Benton Edmondson 622 Dec 09, 2022
GDBIGtools: A command line tools for GDBIG varaints browser

GDBIGtools: A command line tools for GDBIG varaints browser Introduction Born in Guangzhou Cohort Study Genome Research Database is based on thousands

广州市出生队列基因组学研究(The genomics study of BIGCS) 7 Sep 14, 2022
Stream comments, submissions from subreddits and users across reddit right in your terminal

reddit_from_terminal stream comments, submissions from subreddits and users across reddit right in your terminal Alert! : Can't watch media contents(p

Pritam Dhara 2 Dec 30, 2021
WebApp Maker make web apps (Duh). It is open source and make with python and shell.

WebApp Maker make web apps (Duh). It is open source and make with python and shell. This app can take any website and turn it into an app. I highly recommend turning these few websites into webapps:

2 Jan 09, 2022
Pyreadline3 - Windows implementation of the GNU readline library

pyreadline3 The pyreadline3 package is based on the stale package pyreadline loc

32 Jan 06, 2023
Helicopter animation in terminal

helicopter-helicopter Helicopter animation in terminal (scroll down for instructions) Why does this exist? It's because of a meme Click for details Se

Wasi Master 7 Mar 14, 2022
Yts-cli-streamer - A CLI movie streaming client which works on yts.mx API written in python

YTSP It is a CLI movie streaming client which works on yts.mx API written in pyt

1 Feb 05, 2022
A Julia library for solving Wordle puzzles.

Wordle.jl A Julia library for solving Wordle puzzles. Usage julia import Wordle: play julia play("panic") 4 julia play("panic", verbose = true) I

John Myles White 3 Jan 23, 2022
Command line tool to keep track of your favorite playlists on YouTube and many other places.

Command line tool to keep track of your favorite playlists on YouTube and many other places.

Wolfgang Popp 144 Jan 05, 2023
Arithmos cipher on CLI based

Arithmos Cipher CLI This is the CLI version of Arithmos Cipher. Install pip inst

LyQuid :3 1 Jan 16, 2022
This project contains the ClonedPerson dataset and code described in our paper "Cloning Outfits from Real-World Images to 3D Characters for Generalizable Person Re-Identification".

ClonedPerson This is the official repository for the ClonedPerson project, which contains the ClonedPerson dataset and code described in our paper "Cl

Yanan Wang 55 Dec 27, 2022
Make tree planting a part of your daily workflow. 🌳

Continuous Reforestation Make tree planting a part of your daily workflow. 🌳 A GitHub Action for planting trees within your development workflow usin

protontypes 168 Dec 22, 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