• Stars
    star
    2,573
  • Rank 17,813 (Top 0.4 %)
  • Language
    Rust
  • License
    GNU Lesser Genera...
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ranger-like terminal file manager written in Rust

Linux build

MacOS build

joshuto

ranger-like terminal file manager written in Rust.

Alt text

Dependencies

  • cargo >= 1.55
  • rustc >= 1.55
  • xsel/xclip/wl-clipboard (optional, for clipboard support)
  • fzf (optional)
  • zoxide (optional)

Also see Cargo.toml

Building

~$ cargo build

Installation

For single user

~$ cargo install --path=. --force

For single user with cargo

~$ cargo install --git https://github.com/kamiyaa/joshuto.git --force

System wide

~# cargo install --path=. --force --root=/usr/local     # /usr also works

Packaging status

Fedora (COPR)
sudo dnf copr enable atim/joshuto -y
sudo dnf install joshuto
Arch (AUR)
[yay/paru] -S joshuto
[yay/paru] -S joshuto-git
Arch (archlinuxcn)
[yay/paru] -S joshuto
[yay/paru] -S joshuto-git
Gentoo (gentoo-zh)
sudo eselect repository enable gentoo-zh
sudo emerge -av app-misc/joshuto
NixOS

Here's an example of using it in a nixos configuration

{
  description = "My configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    joshuto.url = "github:kamiyaa/joshuto";
  };

  outputs = { nixpkgs, joshuto, ... }:
    {
      nixosConfigurations = {
        hostname = nixpkgs.lib.nixosSystem
          {
            system = "x86_64-linux";
            modules = [
              {
                nixpkgs.overlays = [ joshuto.overlays.default ];
                environment.systemPackages = with pkgs;[
                  joshuto
                ];
              }
            ];
          };
      };
    };
}

Temporary run, not installed on the system

nix run github:kamiyaa/joshuto
MacOS (MacPorts)
sudo port install joshuto
MacOS/Linux Homebrew
brew install joshuto

Usage

~ $ joshuto

Navigation

  • Move up: arrow_up or k
  • Move down: arrow_down or j
  • Move to parent directory: arrow_left or h
  • Open file or directory: arrow_right or l
  • Go to the top: home or g g
  • Go to the bottom: end or G
  • Page up: page_up or ctrl+u
  • Page down: page_down or ctrl+d

Tab Management

  • Open a new tab: ctrl+t
  • Open a new tab with current directory: T
  • Close the current tab: W or ctrl+w
  • Switch to next tab: \t
  • Switch to previous tab: backtab

File Operations

  • Rename file: a to append or A to prepend
  • Delete file: delete or d d
  • Cut file: d d
  • Copy file: y y
  • Paste file: p p
  • Paste file with overwrite: p o
  • Symlink files: p l for absolute path, p L for relative path

Miscellaneous

  • Toggle hidden files: z h
  • Reload directory list: R
  • Change directory: c d
  • Show tasks: w
  • Set mode: =
  • Enter command mode: :

See docs#quit for exiting into current directory and other usages

Configuration

Check out docs for details and config for examples

joshuto.toml

  • general configurations

keymap.toml

  • for keybindings

mimetype.toml

  • for opening files with applications

theme.toml

  • color customizations

bookmarks.toml

  • bookmarks

Contributing

See docs

Bugs/Feature Request

Please create an issue :)

Features

  • Tabs
  • Devicons
  • Fuzzy search via fzf
  • Ctrl/Shift/Alt support
  • Bulk rename
  • File previews
  • Exit to current directory
  • Asynch File IO (cut/copy/paste)
  • Custom colors/theme
  • Line numbers
    • Jump to number
  • File chooser
  • Trash support

TODOs

  • Built-in command line
    • Mostly working
    • Currently implementation is kind of janky
    • Tab autocomplete (in progress)

More Repositories

1

website-wasm

My personal website written in rust via yew/wasm
Rust
50
star
2

ruiji

Reverse anime image searching program
C
45
star
3

dizi

Server-client music player written in Rust
Rust
26
star
4

dwmstatus

A status bar written in C for dwm, but can work for others
C
15
star
5

tsuchita

client-server notification center for dbus desktop notifications
Rust
8
star
6

config

Collection of my config files
Shell
8
star
7

JaneStreet-rs

A Rust wrapper around Jane Street's Trading Bot Competition
Rust
8
star
8

game-of-life

https://kamiyaa.github.io/game-of-life
JavaScript
7
star
9

yew-app

Rust
6
star
10

website-react

HTML
5
star
11

staking-rewards-example

A (nearly) real world staking rewards smart contract example
TypeScript
3
star
12

kamiyaa.github.io

My personal website: https://kamiyaa.github.io
HTML
3
star
13

systemd-unit-files

My own custom systemd unit files
Makefile
3
star
14

dwmstatus-rs

Rust
3
star
15

arclight

re-implementation of acpilight with less features
C
2
star
16

kamiyaa

2
star
17

tracker_web

HTML
2
star
18

wordexp-rs

Rust wrapper around wordexp c library
Rust
2
star
19

notebooks

jupyter notebooks I've written for various visualizations (mostly personal finance)
Jupyter Notebook
2
star
20

website-svelte

Svelte
2
star
21

alsanotify

Volume change with visual notifications
C
2
star
22

SpyMangler

Game written in Verilog for the DE2 board Cyclone IV
Verilog
2
star
23

portage-parser

Parses portage config files
Rust
1
star
24

cycle-projects

A collection of projects deployed onto cycle.io
Go
1
star
25

wasm.kamiyaa.github.io

CSS
1
star
26

finance

Scripts for bookkeeping and visualizing personal and business finances
Python
1
star