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
A python based command line tool to compare Github Users or Repositories

gitcomp A simple python package with a CLI to compare GitHub users and repositories by associating a git_score to each entry which is a weighted sum o

Anirudh Vaish 5 Mar 26, 2022
A webmining CLI tool & library for python.

minet is a webmining command line tool & library for python (= 3.6) that can be used to collect and extract data from a large variety of web sources

médialab Sciences Po 165 Dec 17, 2022
Terminal with builtin ortholinear keyboard and touch screen as a home automation interface.

OLKB-Terminal Terminal with builtin ortholinear keyboard and touch screen as a home automation interface. Features Step and STLs available for non-com

Jeff Eberl 50 Oct 07, 2022
Python library & console tool for controlling Xiaomi smart appliances

python-miio This library (and its accompanying cli tool) can be used to interface with devices using Xiaomi's miIO and MIoT protocols. Getting started

Teemu R. 2.4k Jan 02, 2023
Features terminal for python

Features Terminal V1.0 (23/10/2021) Um programa para linux com diferentes ferramentas! Recursos: Criador de QR code Gerador de senhas Teste de velocid

1 Oct 26, 2021
Spotify Offline is a command line tool that allows one to download Spotify playlists in MP3 format.

Spotify Offline v0.0.2 listen to your favorite spotify songs, offline Overview Spotify Offline (spotifyoffline) is a command line tool that allows one

Aarush Gupta 1 Nov 28, 2021
🏃 Python3 Solutions of All Problems in GCJ 2022 (In Progress)

GoogleCodeJam 2022 Python3 solutions of Google Code Jam 2022. Solution begins with * means it will get TLE in the largest data set. Total computation

kamyu 12 Dec 20, 2022
CLI tool to view your VIT timetable from terminal anytime!

VITime CLI tool to view your timetable from terminal anytime! Table of contents Preview Installation PyPI Source code Updates Setting up Add timetable

16 Oct 04, 2022
ICMP Reverse Shell written in Python 3 and with Scapy (backdoor/rev shell)

icmpdoor - ICMP Reverse Shell icmpdoor is an ICMP rev shell written in Python3 and scapy. Tested on Ubuntu 20.04, Debian 10 (Kali Linux), and Windows

Jeroen van Kessel 206 Dec 29, 2022
Magnificent app which corrects your previous console command.

The Fuck The Fuck is a magnificent app, inspired by a @liamosaur tweet, that corrects errors in previous console commands. Is The Fuck too slow? Try t

Vladimir Iakovlev 75k Jan 02, 2023
img-proof (IPA) provides a command line utility to test images in the Public Cloud

overview img-proof (IPA) provides a command line utility to test images in the Public Cloud (AWS, Azure, GCE, etc.). With img-proof you can now test c

13 Jan 07, 2022
A helper program to play wordle

A helper program to play wordle

1 Jan 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
Key-control - A tool for add keys to your Termux app

Key-Control Is a tool for add keys to your Termux app. Cara Penginstalan $ pkg u

Beereva.id 1 Feb 14, 2022
⚙ A lightweight command line interface library for creating commands.

⚙ A lightweight command line interface library for creating cli commands. About | Installation | Usage | Features | Contributors | License About Next:

Serum 16 Sep 25, 2022
AutoSub is a CLI application to generate subtitle files (.srt, .vtt, and .txt transcript) for any video file using Mozilla DeepSpeech.

AutoSub About Motivation Installation Docker How-to example How it works TO-DO Contributing References About AutoSub is a CLI application to generate

Abhiroop Talasila 414 Jan 06, 2023
A very simple OpenContest command line client written in Python

OpenContest Client A very simple OpenContest command line client written in Python. The only dependency is the requests library. Tested with Linux onl

Ladue Computer Science 1 May 25, 2022
Tool for HackMyVM platform

HMV-cli It is a tool for the HackMyVM platform. With this tool you will be able to see the machines you have pending, filter by difficulty, download d

bitc0de 11 Sep 19, 2022
Conditional Transformer Language Model for Controllable Generation

CTRL - A Conditional Transformer Language Model for Controllable Generation Authors: Nitish Shirish Keskar, Bryan McCann, Lav Varshney, Caiming Xiong,

Salesforce 1.7k Jan 05, 2023
ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal

ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many forums the need of a similar utility for privacy-aware

Piña Colada 2.5k Dec 25, 2022