joshuto
ranger-like terminal file manager written in Rust.
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
COPR)
Fedora (sudo dnf copr enable atim/joshuto -y
sudo dnf install joshuto
AUR)
Arch ([yay/paru] -S joshuto
[yay/paru] -S joshuto-git
archlinuxcn)
Arch ([yay/paru] -S joshuto
[yay/paru] -S joshuto-git
gentoo-zh)
Gentoo (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
MacPorts)
MacOS (sudo port install joshuto
Homebrew
MacOS/Linuxbrew install joshuto
Usage
~ $ joshuto
Navigation
- Move up:
arrow_up
ork
- Move down:
arrow_down
orj
- Move to parent directory:
arrow_left
orh
- Open file or directory:
arrow_right
orl
- Go to the top:
home
org g
- Go to the bottom:
end
orG
- Page up:
page_up
orctrl+u
- Page down:
page_down
orctrl+d
Tab Management
- Open a new tab:
ctrl+t
- Open a new tab with current directory:
T
- Close the current tab:
W
orctrl+w
- Switch to next tab:
\t
- Switch to previous tab:
backtab
File Operations
- Rename file:
a
to append orA
to prepend - Delete file:
delete
ord 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
- See Image previews for more details
- 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)