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
Customisable pharmacokinetic model accessible via bash CLI allowing for variable dose calculations as well as intravenous and subcutaneous administration calculations

Pharmacokinetic Modelling Group Project A PharmacoKinetic (PK) modelling function for analysis of injected solute dynamics over time, developed by Gro

1 Oct 24, 2021
Simple CLI for managing Postgres databases in Flask.

Overview Simple CLI that provides the following commands: flask psql create flask psql init flask psql drop flask psql setup: create → init flask psql

Daniel Reeves 21 Oct 03, 2022
A Neat Application To Manage Your To-Do Lists.

WTD - What To Do? A Neat Application To Manage Your To-Do Lists. One folder can only have one to-do file. Running wth without any subcommands executes

Adam Vajda 1 Oct 24, 2021
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
A powerful, colorful, beautiful command-line-interface for pypi.org

pypi-command-line pypi-command-line is a colorful, powerful, and beautiful command line interface for pypi.org that is actively maintained Detailed Do

Wasi Master 32 Jun 23, 2022
swarmexec executes command in swarm service

Swarmexec swarmexec executes command in swarm service Install pip install git+https://github.com/filimon43g/swarmexec.git Config In swarm_config.ini

Phil 2 Nov 23, 2021
A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.

A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.

Kyle Harrison 150 Dec 14, 2022
Package installer for python

This is a package that adds a JSON file to your project that records all of the packages used in it and allows people to install it with a single command.

Anmol Malik 1 May 23, 2022
Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.

table2ascii Module for converting 2D Python lists to a fancy ASCII/Unicode tables table2ascii 📥 Installation 🧑‍💻 Usage Convert lists to ASCII table

Jonah Lawrence 40 Jan 03, 2023
Convert shellcode into :sparkles: different :sparkles: formats!

Bluffy Convert shellcode into ✨ different ✨ formats! Bluffy is a utility which was used in experiments to bypass Anti-Virus products (statically) by f

pre.empt.dev 305 Dec 17, 2022
Neovim integration for Google Keep, built using gkeepapi

Gkeep.nvim Neovim integration for Google Keep, built using gkeepapi Requirements Neovim 0.5 Python 3.6+ A patched font (optional. Used for icons) Tabl

Steven Arcangeli 143 Jan 02, 2023
Powerful yet easy command line calculator.

Powerful yet easy command line calculator.

Cruisen 1 Jul 22, 2022
A Simple Python CLI Lockpicking Tool

Cryptex a simple CLI lockpicking tool What can it do: Encode / Decode Hex Encode / Decode Base64 Break Randomly :D Requirements: Python3 Linux as your

Alex Kollar 23 Jul 04, 2022
kitty - the fast, feature-rich, cross-platform, GPU based terminal

kitty - the fast, feature-rich, cross-platform, GPU based terminal

Kovid Goyal 17.3k Jan 04, 2023
Access hacksec.in from your command-line

Access hacksec.in from your command-line

hacksec.in 3 Oct 26, 2022
An interactive cheatsheet tool for the command-line

navi An interactive cheatsheet tool for the command-line. navi allows you to browse through cheatsheets (that you may write yourself or download from

Denis Isidoro 12.2k Dec 31, 2022
A curated list of awesome things related to Textual

Awesome Textual | A curated list of awesome things related to Textual. Textual is a TUI (Text User Interface) framework for Python inspired by modern

Marcelo Trylesinski 5 May 08, 2022
A cli tool , which shows you all the next possible words you can guess from in the game of Wordle.

wordle-helper A cli tool , which shows you all the next possible words you can guess from the Game Wordle. This repo has the code discussed in the You

1 Jan 17, 2022
Chat with Rem in Terminal!

Chat with Rem in Terminal!

bariscodefx 1 Dec 19, 2021
The WalletsNet CLI helps you connect to WalletsNet

WalletsNet CLI The WalletsNet CLI helps you connect to WalletsNet. With the CLI, you can: Trigger webhook events or resend events for easy testing Tai

WalletsClub 8 Dec 22, 2021