Skip to content

shunk031/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

896 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

shunk031's

๐Ÿ“‚ dotfiles

Snippet install Unit test codecov

zsh-users/zsh tmux/tmux rossmacarthur/sheldon starship/starship jdx/mise

anthropics/claude-code openai/codex

๐Ÿ—ฟ Overview

This dotfiles repository is managed with chezmoi๐Ÿ , a great dotfiles manager. The setup scripts are aimed for MacOS, Ubuntu Desktop, and Ubuntu Server. The first two (MacOS/Ubuntu Desktop) include settings for client machines and the latter one (Ubuntu Server) for server machines.

The actual dotfiles exist under the home directory specified in the .chezmoiroot. See .chezmoiroot - chezmoi more detail on the setting.

๐Ÿ“ฅ Setup

To set up the dotfiles run the appropriate snippet in the terminal.

๐Ÿ’ป MacOS MacOS

  • Configuration snippet of the Apple Silicon MacOS environment for client macnine:
bash -c "$(curl -fsLS http://shunk031.me/dotfiles/setup.sh)"

Screenshot of setup on MacOS Client machine

๐Ÿ–ฅ๏ธ Ubuntu Ubuntu

  • Configuration snippet of the Ubuntu environment for both client and server machine:
bash -c "$(wget -qO - http://shunk031.me/dotfiles/setup.sh)"

Screenshot of setup on Ubuntu Server machine

Minimal setup

The following is a minimal setup command to install chezmoi and my dotfiles from the github repository on a new empty machine:

sh -c "$(curl -fsLS get.chezmoi.io)" -- init shunk031 --apply

โš™๏ธ Install & Setup Application Individually

This repository provides for the installation and setup of each application individually. The desired application can be installed as follows (e.g., docker installation on MacOS):

bash install/macos/common/docker.sh

Each installation script can be found under the ./install directory.

๐Ÿ› ๏ธ Update & Test ๐Ÿงช

Updating and testing the dotfiles follows chezmoi's daily operations. To verify that the updated scripts work correctly, run the scripts on the actual local machine and on the docker container.

๐Ÿ’ก Develop the Setup Scripts

The setup scripts are stored as shellscripts in an appropriate location under the ./install directory. After verifying that the shellscript works, store the chezmoi template-based file, which is based on the shellscript, in an appropriate location under the ./home/.chezmoiscripts directory.

Below is the correspondence between shellscript and template for docker installation on MacOS.

๐Ÿ’พ Test on the Local Machine

Currently, chezmoi does not automatically reflect updated configuration files (ref. twpayne/chezmoi#2738). The following command will execute the chezmoi apply command as soon as the file is modified using watchexec.

make watch

The chezmoi documentation mentions automatica application by watchman. See https://www.chezmoi.io/user-guide/advanced/use-chezmoi-with-watchman/ for more detail.

๐Ÿณ Test on Docker Container

Test the executation of the setup scripts on Ubuntu in its initial state. The following command will launch the test environment using Docker ๐Ÿณ.

make docker

# docker run -it -v "$(pwd):/home/$(whoami)/.local/share/chezmoi" dotfiles /bin/bash --login
# shunk031@5f93d270cb51:~$

Run the chezmoi init --apply command to verify that the system is set up correctly.

shunk031@5f93d270cb51:~$ chezmoi init --apply

๐Ÿฆ‡ Unit Test with Bats Unit test

Test the shellscript for setup with Bash Automated Testing System (bats). The scripts for the unit test can be found under ./tests directory.

๐Ÿ“ฆ Continuously monitor code coverage with Codecov codecov

The code coverage of the ./install scripts are continuously monitored at app.codecov.io/gh/shunk031/dotfiles. The following Icicle graph represents the code coverage of the scripts:

๐Ÿ“Š Measure the startup speed of the dotfiles

The startup speed of zsh on MacOS with this dotfile is continuously measured at shunk031.me/my-dotfiles-benchmarks using benchmark-action/github-action-benchmark.

๐Ÿ’ก Miscellaneous Tips

Minimum setup for server machine without chezmoi

wget -O ~/.tmux.conf https://raw.githubusercontent.com/shunk031/dotfiles/master/home/dot_tmux.conf.d/system/server.conf
  • Download .vimrc and deploy to ~/.vimrc
wget -O ~/.vimrc https://raw.githubusercontent.com/shunk031/dotfiles/master/home/dot_vimrc

๐Ÿ“ˆ Stats

Alt

๐Ÿ‘ Acknowledgements

Inspiration and code was taken from many sources, including:

๐Ÿ“ License

The code is available under the MIT license.

About

๐Ÿ’ป My dotfiles powered by chezmoi; Primarily built with Rust-based applications (sheldon/startship/mise etc.)

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors