{"id":13477729,"url":"https://github.com/kamiyaa/joshuto","last_synced_at":"2025-05-11T13:59:24.982Z","repository":{"id":37029134,"uuid":"140782188","full_name":"kamiyaa/joshuto","owner":"kamiyaa","description":"ranger-like terminal file manager written in Rust","archived":false,"fork":false,"pushed_at":"2025-05-02T00:47:08.000Z","size":11003,"stargazers_count":3537,"open_issues_count":100,"forks_count":158,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-05-11T13:59:13.830Z","etag":null,"topics":["clipboard","concurrency","file-manager","hacktoberfest","joshuto","linux","ncurses","ranger","rust","termion","toml","tui","tui-rs"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/joshuto","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kamiyaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-07-13T01:38:29.000Z","updated_at":"2025-05-08T14:06:00.000Z","dependencies_parsed_at":"2023-02-18T19:46:03.153Z","dependency_job_id":"a61268c7-3b3e-4731-8442-1786066c51f2","html_url":"https://github.com/kamiyaa/joshuto","commit_stats":{"total_commits":1087,"total_committers":36,"mean_commits":"30.194444444444443","dds":0.1297148114075437,"last_synced_commit":"cec35dbce007d37e5fb96b7d6997858d2914053b"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fjoshuto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fjoshuto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fjoshuto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fjoshuto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kamiyaa","download_url":"https://codeload.github.com/kamiyaa/joshuto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253576264,"owners_count":21930169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clipboard","concurrency","file-manager","hacktoberfest","joshuto","linux","ncurses","ranger","rust","termion","toml","tui","tui-rs"],"created_at":"2024-07-31T16:01:46.775Z","updated_at":"2025-05-11T13:59:24.942Z","avatar_url":"https://github.com/kamiyaa.png","language":"Rust","funding_links":[],"categories":["Rust","Applications","tui","Tools","Packages","\u003ca name=\"file-manager\"\u003e\u003c/a\u003eFile manager","File Management","Tool","File Managers","Table of Contents","💻 Apps"],"sub_categories":["File manager","Rust","CLI Tools","Terminal File Manager","File Manager","⌨️ Development Tools"],"readme":"[![Linux build](https://github.com/kamiyaa/joshuto/actions/workflows/rust-linux-main.yml/badge.svg)](https://github.com/kamiyaa/joshuto/actions/workflows/rust-linux-main.yml?branch=main)\n\n[![MacOS build](https://github.com/kamiyaa/joshuto/actions/workflows/rust-macos-main.yml/badge.svg)](https://github.com/kamiyaa/joshuto/actions/workflows/rust-macos-main.yml?branch=main)\n\n# joshuto\n\n[ranger](https://github.com/ranger/ranger)-like terminal file manager written in Rust.\n\n![Alt text](screenshot.png?raw=true \"joshuto\")\n\n## Dependencies\n\n- [cargo](https://github.com/rust-lang/cargo/) \u003e= 1.67\n- [rustc](https://www.rust-lang.org/) \u003e= 1.67\n- xsel/xclip/wl-clipboard (optional, for clipboard support)\n- fzf (optional)\n- zoxide (optional)\n\nAlso see [Cargo.toml](Cargo.toml)\n\n## Building\n\n```\n~$ cargo build\n```\n\n## Installation\n\n#### For single user\n\n```\n~$ cargo install --path=. --force\n```\n\n#### For single user with cargo\n\n```\n~$ cargo install --git https://github.com/kamiyaa/joshuto.git --force\n```\n\n#### System wide\n\n```\n~# cargo install --path=. --force --root=/usr/local     # /usr also works\n```\n\n#### From pre-compiled binary\n\nDependencies:\n- curl\n- openssl\n\n##### Latest release\n\nInstalls the latest version using the default installation path (_$HOME/.local/bin/_).\n\n``` bash\n~$ bash \u003c(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)\n```\n\n##### Custom Installation path\n\nAllows you to install Joshuto to a custom directory by setting the INSTALL_PREFIX variable.\n\n``` bash\n~$ INSTALL_PREFIX=\"$HOME\" bash \u003c(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)\n```\n\n##### System wide\n\n``` bash\n~# INSTALL_PREFIX=\"/usr/local/bin\" bash \u003c(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)\n```\n\n##### Specific release\n\nInstalls a specific release version of Joshuto by the desired version number.\n\n``` bash\n~$ RELEASE_VER='v0.9.4' bash \u003c(curl -s https://raw.githubusercontent.com/kamiyaa/joshuto/master/utils/install.sh)\n```\n\n#### Packaging status\n\n##### Fedora ([COPR](https://copr.fedorainfracloud.org/coprs/atim/joshuto/))\n\n```\nsudo dnf copr enable atim/joshuto -y\nsudo dnf install joshuto\n```\n\n##### Arch ([AUR](https://aur.archlinux.org))\n\n- [release](https://aur.archlinux.org/packages/joshuto)\n\n```\n[yay/paru] -S joshuto\n```\n\n- [build from source](https://aur.archlinux.org/packages/joshuto-git)\n\n```\n[yay/paru] -S joshuto-git\n```\n\n##### Arch ([archlinuxcn](https://github.com/archlinuxcn/repo/))\n\n- [stable version (x86_64)](https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/joshuto)\n- [stable version (aarch64)](https://github.com/archlinuxcn/repo/tree/master/alarmcn/joshuto)\n\n```\n[yay/paru] -S joshuto\n```\n\n- [latest git version (x86_64)](https://github.com/archlinuxcn/repo/tree/master/archlinuxcn/joshuto-git)\n- [latest git version (aarch64)](https://github.com/archlinuxcn/repo/tree/master/alarmcn/joshuto-git)\n\n```\n[yay/paru] -S joshuto-git\n```\n\n##### Gentoo ([gentoo-zh](https://github.com/microcai/gentoo-zh/tree/master/app-misc/joshuto))\n\n```\nsudo eselect repository enable gentoo-zh\nsudo emerge -av app-misc/joshuto\n```\n\n##### NixOS\n\n\u003e Here's an example of using it in a nixos configuration\n\n```nix\n{\n  description = \"My configuration\";\n\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    joshuto.url = \"github:kamiyaa/joshuto\";\n  };\n\n  outputs = { nixpkgs, joshuto, ... }:\n    {\n      nixosConfigurations = {\n        hostname = nixpkgs.lib.nixosSystem\n          {\n            system = \"x86_64-linux\";\n            modules = [\n              {\n                nixpkgs.overlays = [ joshuto.overlays.default ];\n                environment.systemPackages = with pkgs;[\n                  joshuto\n                ];\n              }\n            ];\n          };\n      };\n    };\n}\n```\n\n\u003e Temporary run, not installed on the system\n\n```sh\nnix run github:kamiyaa/joshuto\n```\n\n##### MacOS ([MacPorts](https://ports.macports.org/port/joshuto/details/))\n\n```\nsudo port install joshuto\n```\n\n##### MacOS/Linux [Homebrew](https://brew.sh/)\n\n```\nbrew install joshuto\n```\n\n## Usage\n\n```\n~ $ joshuto\n```\n\n#### Navigation\n- Move up: `arrow_up` or `k`\n- Move down: `arrow_down` or `j`\n- Move to parent directory: `arrow_left` or `h`\n- Open file or directory: `arrow_right` or `l`\n- Go to the top: `home` or `g g`\n- Go to the bottom: `end` or `G`\n- Page up: `page_up` or `ctrl+u`\n- Page down: `page_down` or `ctrl+d`\n\n#### Tab Management\n- Open a new tab: `ctrl+t`\n- Open a new tab with current directory: `T`\n- Close the current tab: `W` or `ctrl+w`\n- Switch to next tab: `\\t`\n- Switch to previous tab: `backtab`\n\n#### File Operations\n- Rename file: `a` to append or `A` to prepend\n- Delete file: `delete` or `d d`\n- Cut file: `d d`\n- Copy file: `y y`\n- Paste file: `p p`\n- Paste file with overwrite: `p o`\n- Symlink files: `p l` for absolute path, `p L` for relative path\n\n#### Miscellaneous\n- Toggle hidden files: `z h`\n- Reload directory list: `R`\n- Change directory: `c d`\n- Show tasks: `w`\n- Set mode: `=`\n- Enter command mode: `:`\n\nSee [docs#quit](/docs/configuration/keymap.toml.md#quit-quit-joshuto) for exiting into current directory\nand other usages\n\n## Configuration\n\nCheck out [docs](/docs) for details and [config](/config) for examples\n\n#### [joshuto.toml](/config/joshuto.toml)\n\n- general configurations\n\n#### [keymap.toml](/config/keymap.toml)\n\n- for keybindings\n\n#### [mimetype.toml](/config/mimetype.toml)\n\n- for opening files with applications\n\n#### [theme.toml](/config/theme.toml)\n\n- color customizations\n\n#### [bookmarks.toml](/config/bookmarks.toml)\n\n- bookmarks\n\n## Contributing\n\nSee [docs](/docs)\n\n## Bugs/Feature Request\n\nPlease create an issue :)\n\n## Features\n\n- Tabs\n- Devicons\n- Fuzzy search via [fzf](https://github.com/junegunn/fzf)\n- Ctrl/Shift/Alt support\n- Bulk rename\n- File previews\n  - See [Image previews](/docs/image_previews) for more details\n- Exit to current directory\n- Asynch File IO (cut/copy/paste)\n- Custom colors/theme\n- Line numbers\n  - Jump to number\n- File chooser\n- Trash support\n\n## TODOs\n\n- [x] Built-in command line\n  - Mostly working\n  - Currently implementation is kind of janky\n  - [ ] Tab autocomplete (in progress)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamiyaa%2Fjoshuto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkamiyaa%2Fjoshuto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamiyaa%2Fjoshuto/lists"}