Skip to main content

Toolchain

sudo pacman -S mise zoxide bat eza fd ripgrep fzf television jq fx tldr \
dust duf bottom procs gping curlie doggo git-delta \
echo 'export EDITOR="nvim"' >> ~/.zshrc
echo 'export VISUAL="nvim"' >> ~/.zshrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
echo 'export RIPGREP_CONFIG_PATH="$HOME/.ripgreprc"' >> ~/.zshrc
echo 'export FZF_DEFAULT_COMMAND="fd --type f --strip-cwd-prefix --hidden --follow --exclude .git"' >> ~/.zshrc

echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
echo 'eval "$(tv init zsh)"' >> ~/.zshrc
echo "source <(fzf --zsh)" >> ~/.zshrc
echo "source <(fx --comp zsh)" >> ~/.zshrc
echo "source <(procs --gen-completion-out zsh)" >> ~/.zshrc

cat << EOF >> ~/.zshrc
# Use fd for listing path candidates
_fzf_compgen_path() {
fd --hidden --follow --exclude ".git" . "\$1"
}

# Use fd for list directory candidates
_fzf_compgen_dir() {
fd --type d --hidden --follow --exclude ".git" . "\$1"
}
EOF

echo 'alias dot="chezmoi"' >> ~/.zshrc
echo 'alias open="xdg-open"' >> ~/.zshrc
echo 'alias ff="fastfetch --config examples/7.jsonc"' >> ~/.zshrc
echo 'alias cat="bat"' >> ~/.zshrc
echo 'alias ls="eza"' >> ~/.zshrc
echo 'alias find="fd --hidden --follow --exclude .git"' >> ~/.zshrc
echo 'alias grep="rg"' >> ~/.zshrc
echo 'alias man="tldr"' >> ~/.zshrc
echo 'alias du="dust"' >> ~/.zshrc
echo 'alias df="duf"' >> ~/.zshrc
echo 'alias top="btm"' >> ~/.zshrc
echo 'alias ps="procs"' >> ~/.zshrc
echo 'alias ping="gping"' >> ~/.zshrc
echo 'alias curl="curlie"' >> ~/.zshrc
echo 'alias dig="doggo"' >> ~/.zshrc
echo 'alias diff="delta"' >> ~/.zshrc
echo 'alias vi="nvim"' >> ~/.zshrc
echo 'alias vim="nvim"' >> ~/.zshrc

echo 'alias cc="claude"' >> ~/.zshrc
echo 'alias ccc="claude -c"' >> ~/.zshrc
echo 'alias ccr="claude -r"' >> ~/.zshrc
echo 'alias ccm="claude -p commit"' >> ~/.zshrc
echo 'alias cx="codex"' >> ~/.zshrc
echo 'alias cxr="codex resume"' >> ~/.zshrc
echo 'alias oc="opencode"' >> ~/.zshrc
echo 'alias occ="opencode -c"' >> ~/.zshrc
echo "source ~/.zshrc.local" >> ~/.zshrc
touch ~/.zshrc.local

cat << EOF >> ~/.ripgreprc
# Add 'web' type
--type-add
web:*.{html,css,js,jsx,ts,tsx,vue,svelte,astro}*

# Search hidden files / directories (e.g. dotfiles) by default
--hidden

# Using glob patterns to include/exclude files or folders
--glob
!**/.git/*

# Ignore case unless all caps
--smart-case
EOF

Change Mirror Source

sudo paru -S chsrc-bin
scoop install chsrc
winget install RubyMetric.chsrc
# Auto
chsrc set node
chsrc set python
chsrc set rust
chsrc set docker
chsrc set brew
chsrc set flatpak
chsrc set winget
sudo chsrc set arch
sudo chsrc set archlinuxcn

# Manual
chsrc ls ruby
chsrc set ruby rubychina

scoop

scoop:

# Command-line installer for Windows
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop search bat
scoop install eza
scoop info fzf
scoop bucket add extras

winget

winget:

winget search steam
winget install Microsoft.VisualStudioCode
winget show vscode
winget list
scoop vs winget

scoop vs winget:

Scoop is command line installer, while WinGet is app installer.

Recommended software for Windows:

winget install BellSoft.LibericaJDK.11 Rustlang.Rustup Tencent.WeixinDevTools zig.zig
winget install Git.Git GitHub.cli Oven-sh.Bun CoreyButler.NVMforWindows astral-sh.uv
winget install Anthropic.ClaudeCode Microsoft.VisualStudioCode Neovim.Neovim ZedIndustries.Zed
winget install kangfenmao.CherryStudio Microsoft.WindowsTerminal ImageMagick.ImageMagick Gyan.FFmpeg
winget install ClashVergeRev.ClashVergeRev Google.Chrome Microsoft.OneDrive
winget install ByteDance.Feishu NetEase.CloudMusic Tencent.QQ.NT Tencent.WeChat Tencent.WeType Valve.Steam

mise

mise:

sudo pacman -S mise
brew install mise
scoop install mise
winget install jdx.mise
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
mise u -g node@lts
node -v

zoxide

zoxide:

sudo pacman -S zoxide
brew install zoxide
scoop install zoxide
winget install ajeetdsouza.zoxide
echo 'eval "$(zoxide init --cmd cd zsh)"' >> ~/.zshrc

Interactive fzf menu:

cdi
cd ambiguous-path <Tab>

Bat

bat:

sudo pacman -S bat
brew install bat
scoop install bat
winget install sharkdp.bat
echo 'alias cat="bat"' >> ~/.zshrc

eza

eza:

sudo pacman -S eza
brew install eza
scoop install eza
winget install eza-community.eza
echo 'alias ls="eza"' >> ~/.zshrc

fd

fd:

sudo pacman -S fd
brew install fd
scoop install fd
winget install sharkdp.fd
echo 'alias find="fd --hidden --follow --exclude .git"' >> ~/.zshrc

ripgrep

rg:

sudo pacman -S ripgrep
brew install ripgrep
winget install BurntSushi.ripgrep.MSVC
scoop install ripgrep
echo 'alias grep="rg"' >> ~/.zshrc
echo 'export RIPGREP_CONFIG_PATH="$HOME/.ripgreprc"' >> ~/.zshrc

$HOME/.ripgreprc:

cat << EOF >> ~/.ripgreprc
# Add 'web' type
--type-add
web:*.{html,css,js,jsx,ts,tsx,vue,svelte,astro}*

# Search hidden files / directories (e.g. dotfiles) by default
--hidden

# Using glob patterns to include/exclude files or folders
--glob
!**/.git/*

# Ignore case unless all caps
--smart-case
EOF
# Show file list with `-l`
rg -l text

fzf

fzf:

sudo pacman -S fzf
brew install fzf
winget install fzf
scoop install fzf
echo 'eval "$(fzf --bash)"' >> ~/.bashrc
echo "source <(fzf --zsh)" >> ~/.zshrc

cat << EOF >> ~/.zshrc
# Use fd for listing path candidates
_fzf_compgen_path() {
fd --hidden --follow --exclude ".git" . "\$1"
}

# Use fd for list directory candidates
_fzf_compgen_dir() {
fd --type d --hidden --follow --exclude ".git" . "\$1"
}
EOF

# Respecting `.gitignore`
echo 'export FZF_DEFAULT_COMMAND="fd --type f --strip-cwd-prefix --hidden --follow --exclude .git"' >> ~/.zshrc

Command line fuzzy finder:

  • ctrl-r: find commands.
  • ctrl-t: find files and directories.
  • alt-c: cd into directory.
  • code **<TAB>/code $(fzf -m): fuzzy completion for files and directories.
  • ctrl-k / ctrl-j: move cursor up and down.
  • Multi-select(-m): tab and shift-tab to mark multiple items.

See practical guide for more fzf examples.

Television

Television:

sudo pacman -S television
brew install television
scoop bucket add extras
scoop install television
winget install alexpasmantier.television
echo 'eval "$(tv init zsh)"' >> ~/.zshrc
tv
tv files
tv text
tv git-repos
tv env
tv list-channels

Fetch community channels like cargo-crates, gh-issues, pacman-packages:

tv update-channels

jq

jq:

sudo pacman -S jq
brew install jq
scoop install jq
winget install jqlang.jq
echo "version=$(jq -r '.devDependencies["@playwright/test"]' package.json | sed 's/^[^0-9]*//')"

fx

fx:

sudo pacman -S fx
brew install fx
scoop install fx
echo "source <(fx --comp bash)" >> ~/.bashrc
echo "source <(fx --comp zsh)" >> ~/.zshrc

Terminal JSON viewer and processor:

# Hello world
echo '{"name": "world"}' | fx 'x => x.name' 'x => `Hello, ${x}!`'

# Bump version
fx package.json 'x.version = x.version.replace(/\d+$/, n => +n + 1), x'

# Interactive JSON viewer
curl -i https://fx.wtf/example.json | fx

tldr

tldr:

sudo pacman -S tldr
brew install tlrc
scoop install tlrc
winget install tldr-pages.tlrc
echo 'alias man="tldr"' >> ~/.zshrc

Dust

dust:

sudo pacman -S dust
brew install dust
scoop install dust
winget install bootandy.dust
echo 'alias du="dust"' >> ~/.zshrc

duf

duf:

sudo pacman -S duf
brew install duf
scoop install duf
winget install muesli.duf
echo 'alias df="duf"' >> ~/.zshrc

Bottom

bottom:

sudo pacman -S bottom
brew install bottom
scoop install bottom
winget install Clement.bottom
echo 'alias top="btm"' >> ~/.zshrc

procs

procs:

sudo pacman -S procs
brew install procs
scoop install procs
winget install dalance.procs
echo "source <(procs --gen-completion-out zsh)" >> ~/.zshrc
echo 'alias ps="procs"' >> ~/.zshrc

gping

gping:

sudo pacman -S gping
brew install gping
scoop install gping
winget install orf.gping
echo 'alias ping="gping"' >> ~/.zshrc

curlie

curlie:

sudo pacman -S curlie
brew install curlie
scoop install curlie
echo 'alias curl="curlie"' >> ~/.zshrc

doggo

doggo:

sudo pacman -S doggo
brew install doggo
scoop install doggo
winget install doggo
echo 'alias dig="doggo"' >> ~/.zshrc
doggo example.com
doggo MX github.com @9.9.9.9
doggo example.com --json | jq '.responses[0].answers[].address'

Delta

delta:

sudo pacman -S git-delta
brew install git-delta
scoop install delta
winget install dandavison.delta
echo 'alias diff="delta"' >> ~/.zshrc
git config --global core.pager delta
git config --global interactive.diffFilter 'delta --color-only'
git config --global delta.navigate true
git config --global delta.dark true
git config --global delta.line-numbers true
git config --global delta.side-by-side true
git config --global merge.conflictStyle zdiff3
git diff
git show
git add -p
git log -p
git stash show -p
git reflog -p

Developer

  • MAS: Microsoft KMS activation scripts.
  • 行书指南: 高质量免费与开源软件列表.
  • IT: Collection of handy online toolkit for developers.
  • Omni: Collection of powerful web-based toolkit for everyday tasks.
  • Miku: Lightweight toolkit collection.

Dotfiles

References