{"id":19731504,"url":"https://github.com/shunk031/dotfiles","last_synced_at":"2025-04-30T02:31:12.255Z","repository":{"id":43323291,"uuid":"48605817","full_name":"shunk031/dotfiles","owner":"shunk031","description":"💻 My dotfiles powered by chezmoi. zsh, tmux, presto/starship","archived":false,"fork":false,"pushed_at":"2025-02-28T02:13:54.000Z","size":1441,"stargazers_count":44,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T21:43:08.055Z","etag":null,"topics":["chezmoi","dotfiles","powerlevel10k","prezto","spacemacs","tmux-conf","zsh","zshrc"],"latest_commit_sha":null,"homepage":"https://github.com/shunk031/dotfiles?tab=readme-ov-file#-setup","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shunk031.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-26T09:26:19.000Z","updated_at":"2025-04-02T19:01:20.000Z","dependencies_parsed_at":"2024-01-18T09:39:00.667Z","dependency_job_id":"6154293f-9e62-4712-b009-61d82db5c22f","html_url":"https://github.com/shunk031/dotfiles","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shunk031%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shunk031%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shunk031%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shunk031%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shunk031","download_url":"https://codeload.github.com/shunk031/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251629092,"owners_count":21618102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chezmoi","dotfiles","powerlevel10k","prezto","spacemacs","tmux-conf","zsh","zshrc"],"created_at":"2024-11-12T00:21:23.725Z","updated_at":"2025-04-30T02:31:11.671Z","avatar_url":"https://github.com/shunk031.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/shunk031/dotfiles/master/.github/header.png\" alt=\"shunk031's\"\u003e\n    \u003ch1\u003e📂 dotfiles\u003c/h1\u003e\n    \u003cdiv\u003e\n        \u003ca href=\"https://github.com/shunk031/dotfiles/actions/workflows/remote.yaml\"\u003e\n            \u003cimg src=\"https://github.com/shunk031/dotfiles/actions/workflows/remote.yaml/badge.svg\" alt=\"Snippet install\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/shunk031/dotfiles/actions/workflows/test.yaml\"\u003e\n            \u003cimg src=\"https://github.com/shunk031/dotfiles/actions/workflows/test.yaml/badge.svg\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://codecov.io/gh/shunk031/dotfiles\" \u003e \n            \u003cimg src=\"https://codecov.io/gh/shunk031/dotfiles/branch/master/graph/badge.svg?token=4VUJWKGAR7\"/\u003e\n        \u003c/a\u003e\n    \u003c/div\u003e\n    \u003cdiv\u003e\n        \u003ca href=\"http://spacemacs.org/\"\u003e\n            \u003cimg src=\"https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg\" alt=\"spacemacs\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/zsh-users/zsh\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/built%20with-zsh-black.svg\" alt=\"zsh\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/sorin-ionescu/prezto\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/built%20with-prezto-orange.svg\" alt=\"prezto\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/tmux/tmux\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/built%20with-tmux-green.svg\" alt=\"tmux\"\u003e\n        \u003c/a\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n## 🗿 Overview\n\nThis [dotfiles](https://github.com/shunk031/dotfiles) repository is managed with [`chezmoi🏠`](https://www.chezmoi.io/), a great dotfiles manager.\nThe setup scripts are aimed for [MacOS](https://www.apple.com/jp/macos), [Ubuntu Desktop](https://ubuntu.com/desktop), and [Ubuntu Server](https://ubuntu.com/server). The first two (MacOS/Ubuntu Desktop) include settings for `client` machines and the latter one (Ubuntu Server) for `server` machines. \n\nThe actual dotfiles exist under the [`home`](https://github.com/shunk031/dotfiles/tree/master/home) directory specified in the [`.chezmoiroot`](https://github.com/shunk031/dotfiles/blob/master/.chezmoiroot).\nSee [.chezmoiroot - chezmoi](https://www.chezmoi.io/reference/special-files-and-directories/chezmoiroot/) more detail on the setting.\n\n## 📥 Setup\n\nTo set up the dotfiles run the appropriate snippet in the terminal.\n\n### 💻 `MacOS` [![MacOS](https://github.com/shunk031/dotfiles/actions/workflows/macos.yaml/badge.svg)](https://github.com/shunk031/dotfiles/actions/workflows/macos.yaml)\n\n- Configuration snippet of the Apple Silicon MacOS environment for client macnine:\n\n```console\nbash -c \"$(curl -fsLS http://shunk031.me/dotfiles/setup.sh)\"\n```\n\n### 🖥️ `Ubuntu` [![Ubuntu](https://github.com/shunk031/dotfiles/actions/workflows/ubuntu.yaml/badge.svg)](https://github.com/shunk031/dotfiles/actions/workflows/ubuntu.yaml)\n\n- Configuration snippet of the Ubuntu environment for both client and server machine:\n\n```console\nbash -c \"$(wget -qO - http://shunk031.me/dotfiles/setup.sh)\"\n```\n\n### Minimal setup\n\nThe following is a minimal setup command to install chezmoi and my dotfiles from the github repository on a new empty machine:\n\n\u003e sh -c \"$(curl -fsLS get.chezmoi.io)\" -- init shunk031 --apply\n\n## ⚙️ Install \u0026 Setup Application Individually\n\nThis repository provides for the installation and setup of each application individually.\nThe desired application can be installed as follows (e.g., docker installation on MacOS):\n\n```shell\nbash install/macos/common/docker.sh\n```\n\nEach installation script can be found under the [`./install`](https://github.com/shunk031/dotfiles/tree/master/install) directory.\n\n## 🛠️ Update \u0026 Test 🧪\n\nUpdating and testing the dotfiles follows [chezmoi's daily operations](https://www.chezmoi.io/user-guide/daily-operations/).\nTo verify that the updated scripts work correctly, run the scripts on the actual local machine and on the docker container.\n\n### 💡 Develop the Setup Scripts\n\nThe setup scripts are stored as shellscripts in an appropriate location under the [`./install`](https://github.com/shunk031/dotfiles/tree/master/install) directory.\nAfter verifying that the shellscript works, store the [chezmoi template](https://www.chezmoi.io/user-guide/templating/)-based file, which is based on the shellscript, in an appropriate location under the [`./home/.chezmoiscripts`](https://github.com/shunk031/dotfiles/tree/master/home/.chezmoiscripts) directory.\n\nBelow is the correspondence between shellscript and template for docker installation on MacOS.\n- The shellscript for docker: [`install/macos/common/docker.sh`](https://github.com/shunk031/dotfiles/blob/master/install/macos/common/docker.sh)\n- The chezmoi template for docker: [`home/.chezmoiscripts/macos/run_once_10-install-docker.sh.tmpl`](https://github.com/shunk031/dotfiles/blob/master/home/.chezmoiscripts/macos/run_once_10-install-docker.sh.tmpl)\n\n### 💾 Test on the Local Machine\n\nCurrently, chezmoi does not automatically reflect updated configuration files (ref. [twpayne/chezmoi#2738](https://github.com/twpayne/chezmoi/discussions/2738)).\nThe following command will execute the [`chezmoi apply`](https://www.chezmoi.io/reference/commands/apply/) command as soon as the file is modified using [`watchexec`](https://github.com/watchexec/watchexec).\n\n```shell\nmake watch\n```\n\nThe chezmoi documentation mentions automatica application by [`watchman`](https://facebook.github.io/watchman/). \nSee [https://www.chezmoi.io/user-guide/advanced/use-chezmoi-with-watchman/](https://www.chezmoi.io/user-guide/advanced/use-chezmoi-with-watchman/) for more detail.\n\n### 🐳 Test on Docker Container\n\nTest the executation of the setup scripts on Ubuntu in its initial state.\nThe following command will launch the test environment using Docker 🐳.\n\n```shell\nmake docker\n\n# docker run -it -v \"$(pwd):/home/$(whoami)/.local/share/chezmoi\" dotfiles /bin/bash --login\n# shunk031@5f93d270cb51:~$ \n```\n\nRun the [`chezmoi init --apply`](https://www.chezmoi.io/user-guide/setup/#use-a-hosted-repo-to-manage-your-dotfiles-across-multiple-machines) command to verify that the system is set up correctly.\n\n```shell\nshunk031@5f93d270cb51:~$ chezmoi init --apply\n```\n\n### 🦇 Unit Test with [Bats](https://github.com/bats-core/bats-core) [![Unit test](https://github.com/shunk031/dotfiles/actions/workflows/test.yaml/badge.svg)](https://github.com/shunk031/dotfiles/actions/workflows/test.yaml)\n\nTest the shellscript for setup with [Bash Automated Testing System (bats)](https://github.com/bats-core/bats-core).\nThe scripts for the unit test can be found under [`./tests`](https://github.com/shunk031/dotfiles/tree/master/tests/install) directory.\n\n### 📦 Continuously monitor code coverage with Codecov [![codecov](https://codecov.io/gh/shunk031/dotfiles/branch/master/graph/badge.svg?token=4VUJWKGAR7)](https://codecov.io/gh/shunk031/dotfiles)\n\nThe code coverage of the [`./install`](https://github.com/shunk031/dotfiles/tree/master/install) scripts are continuously monitored at [app.codecov.io/gh/shunk031/dotfiles](https://app.codecov.io/gh/shunk031/dotfiles). The following Icicle graph represents the code coverage of the scripts:\n\n![](https://codecov.io/gh/shunk031/dotfiles/branch/master/graphs/icicle.svg?token=4VUJWKGAR7)\n\n## 📊 Measure the startup speed of the dotfiles\n\nThe startup speed of zsh on MacOS with this dotfile is continuously measured at [shunk031.me/my-dotfiles-benchmarks](https://shunk031.me/my-dotfiles-benchmarks/) using [benchmark-action/github-action-benchmark](https://github.com/benchmark-action/github-action-benchmark).\n\n## 💡 Miscellaneous Tips\n\n### Minimum setup for server machine without chezmoi\n\n- Download [`.tmux.conf.d/system/server.conf`](https://github.com/shunk031/dotfiles/blob/master/home/dot_tmux.conf.d/system/server.conf) and deploy as `~/.tmux.conf`\n\n```shell\nwget -O ~/.tmux.conf https://raw.githubusercontent.com/shunk031/dotfiles/master/home/dot_tmux.conf.d/system/server.conf\n```\n\n- Download [`.vimrc`](https://github.com/shunk031/dotfiles/blob/master/home/dot_vimrc) and deploy to `~/.vimrc`\n\n```shell\nwget -O ~/.vimrc https://raw.githubusercontent.com/shunk031/dotfiles/master/home/dot_vimrc\n```\n\n## 👏 Acknowledgements\n\nInspiration and code was taken from many sources, including:\n\n- [twpayne/chezmoi](https://github.com/twpayne/chezmoi) from [twpayne](https://github.com/twpayne).\n- [alrra/dotfiles](https://github.com/alrra/dotfiles): macOS / Ubuntu dotfiles from [@alrra](https://github.com/alrra).\n- [b4b4r07/dotfiles](https://github.com/b4b4r07/dotfiles): A repository that gathered files starting with dot from [@b4b4r07](https://github.com/b4b4r07).\n- [da-edra/dotfiles](https://github.com/da-edra/dotfiles): Arch Linux config from [@da-edra](https://github.com/da-edra).\n\n## 📝 License\n\nThe code is available under the [MIT license](https://github.com/shunk031/dotfiles/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshunk031%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshunk031%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshunk031%2Fdotfiles/lists"}