megafile

package module
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2025 License: BSD-3-Clause Imports: 10 Imported by: 1

README

MegaFile

A simple and colorful TUI shell for Linux, written in Go.

This project can be used as the github.com/xyproto/megafile package, or as a standalone exectuable.

screenshot

(screenshot of the previous version, before the project rename)

Building
make
Installation
make install
Commands
  • any filename - edit file with $EDITOR
  • cd, .. or any directory name - change directory
  • ./script.sh - execute a script named script.sh
  • ls or dir list directory (happens automatically, though)
  • q, quit or exit - exit program
Hotkeys
  • tab - cycle between the 3 different current diretories, or tab completion of directories and filenames
  • ctrl-space - cycle backwards between the 3 different current directories
  • ctrl-q - exit program
  • ctrl-o or ctrl-h - toggle "show hidden files"
  • ctrl-a - start of line
  • ctrl-d - delete character under cursor, or exit program
  • ctrl-k - delete text to the end of the line
  • ctrl-l - clear screen
  • ctrl-c - clear text, or exit program
  • ctrl-t - run tig
  • ctrl-g - run lazygit
  • ctrl-n - enter the freshest directory
  • ctrl-p - go up one directory
General info

Documentation

Overview

Package megafile provides functionality for a simple TUI for browsing files and directories

Index

Constants

This section is empty.

Variables

View Source
var ErrExit = errors.New("exit")

ErrExit is the error that is returned if the user appeared to want to exit

Functions

func Cleanup

func Cleanup(c *vt.Canvas)

Cleanup tries to set everything right in the terminal emulator before returning

func MegaFile

func MegaFile(c *vt.Canvas, tty *vt.TTY, startdirs []string, startMessage, editor string) (string, error)

MegaFile launches a file browser c and tty is a canvas and TTY, initiated with the vt package startdirs is a slice of directories to browse (toggle with tab) startMessage is the string to display at the top of the screen the function returns the absolute path to the directory the user ended up in, and an error if something went wrong

Types

type FileEntry added in v1.2.0

type FileEntry struct {
	// contains filtered or unexported fields
}

FileEntry represents a file entry with position and name information

type State

type State struct {
	// contains filtered or unexported fields
}

State holds the current state of the shell, then canvas and the directory structures

Directories

Path Synopsis
cmd
megafile command
package main is the main package for the MegaFile program
package main is the main package for the MegaFile program

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL