[English] [Japanese(æĨæŽčŠ)]
Welcome to my dotfiles. This repository helps easily set up a fast and intuitive terminal environment. This setup installs Zsh with starship prompt, tmux, Neovim, and Golang and Rust-based command-line tools that starts and operates quickly. I would be delighted if even a single element leads to a new discovery for you. Grateful that you found this project and took a look!
This dotfiles repository is also available on GitHub Pages.
1. Download and Install dotfiles
Use the following curl
, wget
, or git
command:
curl -sL https://raw.githubusercontent.com/irichu/dotfiles/main/install.sh | bash
wget -qO- https://raw.githubusercontent.com/irichu/dotfiles/main/install.sh | bash
git clone --depth=1 https://github.com/irichu/dotfiles.git && cd dotfiles && ./install.sh
2. Bulk installation
[!IMPORTANT] On Linux (Ubuntu/Fedora/Arch Linux) or macOS, automatic setup is available using
--brew
.
On Ubuntu, fast installation is possible with--apt
or--snap
.
On Termux, setup can be done using--pkg
.
[!NOTE] On Linux or macOS,
sudo
access is required for installation.
This is needed to install Homebrew itself with--brew
and to install packages using--apt
,--snap
.
Install all components using your preferred package manager:
dots install [--apt|--brew|--snap|--pkg]
Replace [--apt|--brew|--snap|--pkg]
with your package manager of choice.
Examples:
dots install --brew
dots install --pkg
[!NOTE] If
dots
command not found,
please run the following command to add the path to ~/.local/bin
or use~/.local/bin/dots
command directly during the installation process
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
3. Start
Relogin or execute the following command:
exec -l $(which zsh)
[!NOTE] In a login shell, such as an SSH session, Tmux will start automatically.
If a Tmux server is already running, you can select a session to connect to.
[!WARNING] The Google Play Store version of Termux may not work properly with some commands.
It is recommended to install it from F-Droid.
Show help and available commands:
dots --help
Get the current color theme:
dots theme
Set the color theme:
dots set-theme <NUMBER|NAME>
# Example
dots set-theme 4 # Set by number
dots set-theme "developer-mono" # Set by name
Available themes:
1. developer
2. developer-textcolored
3. developer-colorful
4. developer-mono
5. dark-turquoise
6. dark-turquoise-textcolored
7. dark-turquoise-colorful
8. dark-turquoise-mono
9. dark-orange
10. dark-orange-textcolored
11. dark-orange-colorful
12. dark-orange-mono
13. dark-skyblue
14. dark-skyblue-textcolored
15. dark-skyblue-colorful
16. dark-skyblue-mono
Copy $XDG_CONFIG_HOME to $XDG_DATA_HOME/dotfiles-main/backup dir:
dots backup
Clean up directories:
# remove dotfiles cache
dots clean
# remove cache + dotfiles backup directories
dots clean backup
# remove cache + config directories
dots clean config
# remove cache + backup + config
dots clean all
Show install target package list:
dots list [--apt|--brew|--snap|--pkg]
Install individual package:
dots install <package_name>
Help image |
---|
The following apps can be installed individually from the dots install <package_name>
command
Package Name | Description |
---|---|
docker |
docker-ce (additional repository) |
fnm |
latest FNM (Fast Node Manager) and Node.js |
fzf |
fzf (fuzzy finder) from github |
lazydocker |
LazyDocker |
lazygit |
LazyGit |
lazyvim |
LazyVim |
neovim |
Neovim and LazyVim |
starship |
starship.rs |
Package Name | Description |
---|---|
copyq |
CopyQ |
rustdesk |
RustDesk on Ubuntu Desktop |
zed |
Zed editor on Linux Desktop |
Package Name | Description |
---|---|
hackgen |
HackGen font (Nerd Font) |
The dots install --brew
command mainly installs the following apps
Package Name | Description |
---|---|
alacritty |
A fast, GPU-accelerated terminal emulator. |
clipy |
Clipboard manager for macOS with history support. |
docker |
Platform for developing, shipping, and running containers. |
flameshot |
Powerful and easy-to-use screenshot tool. |
ghostty |
Minimal, GPU-based terminal emulator for macOS. |
rectangle |
Window management app using keyboard shortcuts. |
visual-studio-code |
Lightweight yet powerful source code editor. |
Package Name | Description |
---|---|
bat |
cat replacement |
bottom |
TUI system resource monitor |
broot |
Interactive directory navigation tool |
cloc |
Count lines of code in a project |
duf |
df replacement with better visualization |
dust |
du replacement with intuitive output |
eza |
ls replacement with modern features |
fastfetch |
Fast system information fetcher |
fd |
find replacement with simpler syntax |
fnm |
Fast Node Manager for managing Node.js versions |
fzf |
Fuzzy finder for the command line |
gh |
GitHub CLI tool for interacting with GitHub |
git-delta |
Syntax-highlighting pager for git and diff output |
gping |
Graphical ping tool with live visualization |
gum |
A tool for enhancing shell scripts with interactive UI |
jq |
Command-line JSON processor |
just |
Handy command runner similar to Make |
lazygit |
Simple TUI for Git repositories |
ripgrep |
grep replacement with blazing fast search |
ruff |
Fast Python linter and formatter |
sd |
Simplified and faster replacement for sed |
starship |
Minimal and customizable shell prompt |
tmux |
Terminal multiplexer for managing multiple panes |
tokei |
Code statistics tool for counting lines and files |
typst |
Modern markup-based typesetting system |
uv |
Python version manager with seamless virtual environments |
yazi |
TUI file manager inspired by ranger |
zellij |
Rust-based terminal multiplexer with workspace support |
zoxide |
cd replacement with smart directory jumping |
zsh |
Powerful and customizable shell |
zsh-autosuggestions |
Fish-like command suggestions for zsh |
zsh-completions |
Additional completions for zsh commands |
zsh-syntax-highlighting |
Syntax highlighting for zsh command line |
If you want to check all applications per package manager, please refer:
You can build and enter a container with the following commands.
cd ~/.local/share/dotfiles-main
docker build -t dotfiles-img .
docker run -it -d --name dotfiles-con dotfiles-img
docker exec -it dotfiles-con /bin/zsh
In container, install apt packages
dots install --apt
or install Homebrew with following command.
dots install --brew
LazyVim tokyonight.nvim style=night |
---|
Tmux split window |
---|
Tmux synchronize-panes mode |
---|
eza tree (eza -l -T) |
---|
lazygit |
---|
yazi |
---|
Quickly start a new tmux session.
t # tmux new
Reconnect to the most recent tmux session.
ta # tmux attach
List all tmux sessions that are currently running.
tls # tmux ls
Kill the entire tmux server and all running sessions.
tks # tmux kill-server
Show tmux pane id
tid # tmux display -pt "${TMUX_PANE:?}" "#{pane_index}"
Reload .tmux.conf
.t # source ~/.config/tmux/.tmux.conf
Search and open files by fd and fzf.
v # fd --type f --hidden --exclude .git | fzf-tmux -p | xargs -o nvim
Based on Emacs mode with bindkey -e
, with some additional key bindings added.
Key | Action |
---|---|
Ctrl+(â/â) | Undo / Redo |
Ctrl+(â/â) | Backward-word / Forward-word |
[!NOTE] The tmux prefix key is configured to
Ctrl + \
for easier access.
Key | Description |
---|---|
I | Install tmux plugins with tpm |
U | Update tmux plugins with tpm |
Ctrl+s | Save tmux env |
Ctrl+r | Restore tmux env |
d | Detach the tmux session |
e | Switch pane-synchronize mode |
[!TIP] In nested Tmux sessions, pressing the prefix key (
Ctrl-\
) multiple times will send it to the innermost session. The number of times you need to press it equals the depth of nesting.For example, if you are running Tmux inside another Tmux session (nested once), pressing
Ctrl-\
twice will send the prefix key to the inner session. If you are three levels deep, you need to pressCtrl-\
three times. Additionally, pressingCtrl-\
sends the key input to the shell within the session.
The tmux plugins installed by default are as follows:
Key | Description | Prefix key + |
---|---|---|
Alt+(â/â) | Create/delete the window | c/& |
Alt+(â/â) | Switch to the previous/next window | p/n |
Alt+[1-9] | Switch to the 1-9 window | [1-9] |
Alt+- | Split the window horizontally | - |
Alt+\\ | Split the window vertically | \\ |
Alt+[hjkl] | Switch to the left/down/up/right pane | â/â/â/â |
Key | Description | Prefix key + |
---|---|---|
Alt+Shift+(â/â) | Create/delete a session | Â |
Alt+Shift+(â/â) | Switch to the previous/next session | (/) |
Based on LazyVim keymaps, with some additional key bindings added.
Mode | Key | Description |
---|---|---|
n,v | Ctrl+(â/â) | Move to (the end of the previous / the beginning of the next) paragraph |
n,v,i | Ctrl+(â/â) | Backward word / Forward word |
i | Ctrl+/ | Undo |
i | Ctrl+r | Redo |
Emacs-like shortcuts are configured in insert mode.
This project is licensed under the MIT License.