Skip to content

qingshan/dotfiles

Repository files navigation

Qingshan's Dotfiles

Dotfiles are for macOS and Linux to setup my development environment.

Installation

Install dotfiles, run:

git clone https://github.com/qingshan/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
make

For macOS or Debian desktop, one more step:

make desktop

For AI CLI tools, run:

make ai

Demos

Terminal shortcuts: demo alacritty shortcuts

Features

Suitable for all kinds of purpose:

  • Desktops
  • Development Environments
  • Servers/VMs
  • Containers

Desktops

Both desktops use same key bindings, go to Desktop Cheatsheet.

Development Environments

IDEs:

  • IntelliJ IDEA with IdeaVim for Java
  • Zed for Rust and Python

Languages:

  • Rust: cargo
  • Python: uv
  • Java: ant, maven
  • Nodejs

Containers:

  • Apple Container
  • Docker

Version Control:

  • Git
  • LazyGit
  • Github CLI

AI:

  • Google Gemini CLI
  • Github Copilot CLI
  • OpenCode

Servers

  • Debian 13, Ubuntu 24.04
  • Rocky Linux 8+, CentOS 8+

Shells

  • bash
  • zsh
  • fish

zsh as default shell on macOS:

  • ~/.zprofile and ~/.profile is sourced in login shell.
  • ~/.zshrc is sourced in interactive shell.

bash as default shell on macOS:

  • ~/.bash_profile and ~/.profile is sourced in login shell.
  • ~/.bashrc is sourced in interactive shell.

fish as interactive shell in interactive mode of zsh or bash, without setting it as user's default shell.

so update ~/.profile for user environment which will be available for all shells.

Fish Shell and Tools

Fish shell integration with:

  • starship
  • fzf
  • zoxide
  • direnv
  • lsd
  • bat
  • fd
  • ripgrip
  • jq
  • just

Terminals

  • alacritty, ghostty, ssh runs user's default shell as interactive login shell.
  • tmux runs inside an existing shell session, runs fish as interactive non-login shell.

alacritty as default terminal integrated with tmux, use iTerm2-like key bindings. go to Terminal Cheatsheet for key bindings.

ghosttty as quick terminal.

Tmux supercharges development workflow:

  • key bindings
  • menu
  • launcher
  • popup

AI Tools

  • Google Gemini CLI
  • Github Copilot CLI

SSH

  • ssh server starts interactive login shell.
  • ssh server command non-interactive non-login shell.
  • echo command | ssh server starts non-interactive login shell. You can also start one with ssh server bash -l -c command.

Fonts

  • JetBrains Mono Nerd Font

Notes

  • zk for cli notes: journal/inbox/notes
  • Obsidian for tech notes
  • Apple Notes for personal notes
  • mdbook for publish notes: qingshan/notes

Folders

  • ~/work for work projects.
  • ~/code for personal projects.
  • ~/Documents for cloud sync documents.
  • ~/Public for local grouped resources.

Vim

Test

Use Docker on Linux or Apple container on macOS to build linux/debian/Dockkerfile to test dotfiles on latest version of Debian.

run server test

make server-test

or run desktop test

make deskop-test

About

My dotfiles for macOS and Linux: Development environment for Rust / Java / Python, Configuration for vim / fish / i3 / tmux.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors