gusco

command module
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2026 License: GPL-3.0 Imports: 104 Imported by: 0

README

Gusco

An opinionated, orthodox file manager distilled from Commanders past, written in pure Go.

Demo

Keyboard Shortcuts

No F1-F12 keys? Press 1 for Help and change the keymap to "No F-keys" under Options to use the number keys instead.

Main Shortcuts
Key Action Details
F1 / 1 Help / Options Change Theme, Glyph set, Keymap, Default Text Editor
F2 Search Find files matching a name or content
F3 View Open text files in internal viewer
F4 Edit Open text files in external editor, other types in associated editor
F5 Copy Copy item at cursor or selected items
F6 Move Move item at cursor or selected items
F7 Make Directory Make a new directory and enter it
F8 / Del Delete Delete item at cursor or selected items
F9 Compress Compress item at cursor or selected items into archive (file extension decides compression)
F10 / Ctrl+Q Quit Quit Gusco
Shift+F1 Volume Select Left pane volume selector
Shift+F2 Volume Select Right pane volume selector
Shift+F3 Set Viewer Set which application to use to view this file type (when pressing enter)
Shift+F4 Set Editor Set which application to use to edit this file type (when pressing F4 on non-text files)
Shift+F6 Rename Rename item in-place, also edits symlinks
Shift+F9 Uncompress Uncompress file at cursor or selected archives
Ctrl+A Select All Toggle selection of all items
Ctrl+D Diff Viewer Open the files at pane cursors in internal diff viewer
Ctrl+E Execute Run external application (appends selected items as arguments)
Ctrl+F SFTP Connect Connect to SFTP / Disconnect from SFTP
Ctrl+G Go To Directory Quickly navigate somewhere, TAB for completion and directory selector
Ctrl+H Key Help Cycle Cycle through key help strip
Ctrl+J S3 Connect Connect to S3-compatible services / Disconnect from S3-compatible services
Ctrl+K Multi-Rename Batch rename selected items using templates
Ctrl+L Sort Mode Cycle through pane sorting (Newest/Oldest/Largest/Smallest)
Ctrl+N Native Open Open directory in OS native file manager (e.g. Finder / Explorer / Nautilus)
Ctrl+O Permissions Edit Change ownership and/or permissions of item
Ctrl+P MTP Connect Connect to Android phone in File Transfer mode
Ctrl+R Refresh Refresh active pane
Ctrl+S Find Quickly navigate to item in the pane by typing letters
Ctrl+T Make File Make an empty file or create a symlink
Ctrl+U Swap Panes Swap the sides of the panes
Ctrl+W Web Fetch Download a file or list of files over HTTPS to the active pane
Enter Open / Enter Open file in associated viewer / Enter directory or archive
Backspace Parent / Exit Go to parent directory / Exit from archive
TAB Switch Pane Switch focus between panes
Shift+TAB Sync Panes Set the path of the inactive pane to that of the active pane
Space / Ins Select Items Select items for actions / Calculate directory size
+ Select Pattern Select items matching a pattern
- Deselect Pattern Deselect items matching a pattern
* Invert Selection Select the opposite of currently selected items
= Compare Dirs Select items in the active pane that differ from the inactive pane
Up / Down Cursor Move Move cursor up / down in pane
PgUp / PgDn Cursor Move Move cursor one page up / down in pane
Home / End Top / Bottom Move cursor to the top / bottom of pane
` / ~ Bitwarden Open Bitwarden client
? Audio Player Open audio player
Viewer Shortcuts
Key Action Details
F2 Wrap / Single Toggle line wrap in viewer / Single pane in diff viewer
F4 Markdown Toggle Markdown rendering in viewer
F5 JSON Toggle JSON rendering in viewer
F6 / Ctrl+G Goto Line Show / Goto line number
F7 / Ctrl+S Search Search for text (repeat shortcut for next occurrence) / Grep in tail mode
F9 Tail Toggle tail mode (updates file content every second)
Ctrl+R Refresh Reload text file / diff files
Ctrl+U Swap Panes Swap the diff panes
Esc / F3 Close Exit viewer
Up / Down Scroll Scroll text vertically
Left / Right Scroll Scroll text horizontally
PgUp / PgDn Page Scroll Scroll text one page at a time
Home / End Top / Bottom Scroll text to the top / bottom, hold shift to scroll left / right
Space Next Page/Diff Scroll to the next page / Next difference
+ / - / * JSON exp / fold Expand / collapse current JSON node or all nodes
Bitwarden Client Shortcuts

See BWCLIENT.md for everything Bitwarden-related.

Audio Player Shortcuts

See AUCLIENT.md for everything Audio Player-related.

Installation

Find your preferred package or binary under releases

Or, use Homebrew:

brew tap intestinate/tap https://gitlab.com/intestinate/homebrew-tap && brew install intestinate/tap/gusco

Or, if you have Go installed:

go install gitlab.com/intestinate/gusco@latest

Configuration

Gusco stores configuration files in ~/.config/gusco/:

File Purpose
gusco.ini Main configuration
theme.ini Add your own theme here
keys.ini Add your own keymap here

Runtime Dependencies

Gusco relies on these external binaries for certain functionality:

Binary Purpose
git git diff - used by the diff viewer
rg ripgrep - used by the content search
aft-mtp-cli Used by the Android MTP file transfer

Archive / Compression Support

File Extension Operations Details
zip Create Password not yet supported
tar Create Uncompressed tar archive
gz / tar.gz Create gzip single file or tar archive
bz2 / tar.bz2 Create bzip2 single file or tar archive
xz / tar.xz Create xz single file or tar archive
zst / tar.zst Create zstd single file or tar archive
7z Read-only
rar Read-only
deb Read-only Debian package archives
rpm Read-only Red Hat package archives
iso Read-only ISO9660 and UDF supported
qcow2 / img Read-only ext4, NTFS and FAT supported

Rationale

Gusco is the pet project of an old sysadmin who still misses Total Commander, which I regard as one of the best applications ever made. While I work almost exclusively in the terminal on macOS & Linux servers nowadays, I still miss the feel of Total Commander. That's what I'm chasing with Gusco.

Compatibility

Gusco is developed in iTerm2 on macOS. It's regularly tested in the default Ubuntu terminal. Gusco should run fine under Windows Terminal as well.

Roadmap

The feature set is based on the stuff I need every day. I'm trying to avoid peppering the dialogs with checkboxes and options that I'll never use. That said, here's a list of things I'm considering:

  • Internal editor
  • Plugin system

Here's a list of things that will NOT go in:

  • Sub-shell that eats your typos and stops you in your tracks (just use Ctrl+E)
  • Mouse support (beyond what your terminal app provides)
  • cgo dependencies

LLM Disclaimer

This software was written with assistance from LLMs in the excellent Crush tool. I have read every single line of code and done extensive testing with Gusco as my daily driver. Alas, I cannot fully guarantee that Gusco is not plotting and scheming to build Skynet and overthrow humanity in the background while copying your files. Besides, it's all antirez fault anyway :)

Contributing

As my time to work on Gusco is limited, please lower your expectations before embarking on a big feature implementation. That said, I would appreciate:

  • A killer theme created by someone more artistic than me
  • An artisanal old-school ASCII logo
  • Feedback on non-ASCII (multibyte) characters. If you have files with complex naming and Gusco bugs out, let me know

Reporting Issues & Bugs

If you find a bug, please search existing issues to see if your bug has already been reported, then open an issue including:

  • Steps to reproduce: A clear, numbered list of what you did
  • Expected vs. Actual: What you expected to see vs. what actually happened
  • Environment: Your OS and the terminal emulator you are using
  • Visuals: A screenshot or a small recording is always helpful for UI glitches

Built With

License

GNU General Public License v3.0 or later. See COPYING for the full text.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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