Skip to content

ALX99/sail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sail⛵

A non-bullshit, bug-free (as much as possible), minimal file manager for the terminal.

The goal of the project is to provide a simple, fast and easy to use file manager for the terminal. Under the hood it uses the great bubbletea framework.

Sail strictly follows semantic versioning, meaning:

  • patch version is incremented for bug fixes
  • minor version is incremented for new features
  • major version is incremented for breaking changes

so you can be confident that upgrading to a new version will not break your setup.

This project is inspired by the lf file manager, which I previously used, but found to be too buggy.

Installation

This project is still in its early stages, so it has not had any releases yet. However, you may install the latest development build by running:

go install github.com/alx99/sail/cmd/sail@latest

Preview

asciicast

Features

  • 24-bit (true color) support
  • LS_COLORS support
  • Customizable keybindings
  • Sail into directories
  • Delete files
  • Select files
  • Move files
  • Copy files
  • Rename files
  • Create files
  • Undo
  • Create directories
  • Toggle hidden files
  • Search files
  • Open files with default application

Usage

Configuration

Sail tries to locate the config file at $XDG_CONFIG_HOME/sail/config.yaml or $HOME/.config/sail/config.yaml if XDG_CONFIG_HOME is not set. If the file is not found, it will use the following default configuration:

settings:
  alt_screen: true
  keymap:
    left: "h"
    up: "j"
    down: "k"
    right: "l"
    in: "."
    out: ","
    go_home: "~"
    delete: "d"
    select: " "
    paste: "p"
    copy: "c"

Using sail as a cd replacement

Sail can be used as a replacement for the cd command. To do so, you can put the following in your .bashrc or .zshrc:

sd() {
  set -e
  tmp_file="$(mktemp)"
  trap 'rm -rf -- "$tmp_file"' EXIT INT TERM HUP
  sail -write-wd "$tmp_file"
  cd "$(cat "$tmp_file")"
  set +e
}