This repo contains my dotfiles, managed by chezmoi.
It's opiniated😏, but is well-organized 🚀, so you can copy some of your favourite snippets to your own dotfiles.
I will write a blog to explain how this works. The README maybe outdated.
Typically on a brand new macOS / Linux device:
# Install homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install chezmoi nushell
nu # (Log in to nushell)
chezmoi init --apply gaojunran -k
# You'll be asked for a pass phrase. Press Enter to skip.
setup-deps # (Run in nushell, to install all CLI tools)
dotr # (Run in nushell, to refresh the nushell env)On a new Windows device:
# Run in PowerShell, to install scoop
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop install chezmoi nushell
chezmoi init --apply gaojunran -k
# You'll be asked for a pass phrase. Press Enter to skip.
setup-deps # (Run in nushell, to install all CLI tools)
dotr # (Run in nushell, to refresh the nushell env)In the year 2025, I decided to switch my workflow to nushell. Nearly all my handful tools are nushell-related, stored here.
Moreover, for compatibility consideration, I will not write bash/zsh/powershell/bat scripts in the future. Now I prefer bun/TS scripts to do the job.
I really ❤️ nushell!
A TUI file manager, see here.
My keymap: here.
For MacOS, I use ghostty as my terminal emulator. It's highly recommended to bind a hotkey cmd+space to launch it.
For Windows, I use Windows Terminal as default.
These keymaps are scattering everywhere, so I simply write them down here.
ctrl + space: to launch search-bar in many apps, such as Finder, Arc, VS Code, Intellij Idea...Caps Lock: to toggle quick terminal.cmd + shift + s: Screenshot or Record, by Cleanshot.- Keymaps which are managed by Raycast:
opt + space: to toggle Raycast.cmd + space: to toggle Terminal (Ghostty).opt + a: Toggle Browser.opt + w: Toggle Wechat.opt + q: Toggle QQ.opt + f: Search for files. (My plugin!)opt + t: Quickly translate.opt + s: Search for snippets.opt + v: Search in clipboard.opt + z: Search for menu items.opt + e: Search for email messages.
My justfiles are stored here, which are handful language-related recipes for the CLI tool just.
As I have Windows & Android devices, it's hard for me to use Apple's keyring.
I choose Bitwarden as my password manager.
I've heard from that VaultWarden is a self-hosted, Rust-based Bitwarden server, and I'll try it in the future.
I use espanso to expand words. Now it includes:
- Personal information, such as phone number, name, email, etc.
- Useful snippets in leetcode in JavaScript.
See detail.
My manifests for system dependences are listed below:
- brew dependences for MacOS: for MacOS.
- scoop dependences for Windows: for Windows. Not frequently updated.
- for Linux? Use your favourite package manager!
Run setup-deps in nushell to install all dependences!
https://codenebula.netlify.app
MIT. You can do anything with my dotfiles, and it's better if you share them with others.