Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pragmaticivan/dotfiles
pragmaticivan's personal configurations
https://github.com/pragmaticivan/dotfiles
chezmoi dotfiles dotfiles-linux dotfiles-macos
Last synced: about 2 months ago
JSON representation
pragmaticivan's personal configurations
- Host: GitHub
- URL: https://github.com/pragmaticivan/dotfiles
- Owner: pragmaticivan
- License: mit
- Created: 2024-06-19T00:18:01.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-07T00:34:07.000Z (about 2 months ago)
- Last Synced: 2024-11-07T01:21:03.982Z (about 2 months ago)
- Topics: chezmoi, dotfiles, dotfiles-linux, dotfiles-macos
- Language: Shell
- Homepage: https://www.ivansantos.me
- Size: 3.03 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![dotfiles](https://github.com/pragmaticivan/dotfiles/assets/301291/291198e8-5175-4562-88a2-c885458cc003)
## ๐ Overview
Your dotfiles are how you personalize your system. These are mine.
Maintaining dotfiles for your computer is crucial for several reasons. Firstly, it ensures consistency across different machines, allowing you to replicate your preferred settings, shortcuts, and configurations effortlessly. This consistency saves time and frustration when transitioning between workstations or setting up a new system. Secondly, dotfiles serve as a personal backup of your customized environment. By version-controlling them with tools like Git, you not only safeguard against accidental changes but also enable easy restoration in case of system crashes or upgrades.
## ๐ด Setup
To set up the dotfiles run the appropriate snippet in the terminal.
### ๐ป `MacOS` [![MacOS](https://github.com/pragmaticivan/dotfiles/actions/workflows/macos.yaml/badge.svg)](https://github.com/pragmaticivan/dotfiles/actions/workflows/macos.yaml)
- Configuration snippet of the Apple Silicon MacOS environment for client macnine:
```console
bash -c "$(curl -fsLS https://raw.githubusercontent.com/pragmaticivan/dotfiles/main/setup.sh)"
```### ๐ฅ๏ธ `Ubuntu` [![Ubuntu](https://github.com/pragmaticivan/dotfiles/actions/workflows/ubuntu.yaml/badge.svg)](https://github.com/pragmaticivan/dotfiles/actions/workflows/ubuntu.yaml)
- Configuration snippet of the Ubuntu environment for both client and server machine:
```console
bash -c "$(wget -qO - https://raw.githubusercontent.com/pragmaticivan/dotfiles/main/setup.sh)"
```### 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 pragmaticivan --apply
## ๐ ๏ธ Update & Test ๐งช
Updating and testing the dotfiles follows [chezmoi's daily operations](https://www.chezmoi.io/user-guide/daily-operations/).
To verify that the updated scripts work correctly, run the scripts on the actual local machine and on the docker container.### ๐ณ 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 ๐ณ.```shell
make docker-dev# docker run -it -v "$(pwd):/home/$(whoami)/.local/share/chezmoi" dotfiles /bin/bash --login
# pragmaticivan@6f97d279cb51:~$
```Run 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.
```shell
pragmaticivan@5f93d270cb51:~$ chezmoi init --apply
```### ๐ฆ Unit Test with [Bats](https://github.com/bats-core/bats-core)
Test the shellscript for setup with [Bash Automated Testing System (bats)](https://github.com/bats-core/bats-core).
The scripts for the unit test can be found under [`./tests`](https://github.com/pragmaticivan/dotfiles/tree/main/tests) directory.## ๐ Acknowledgements
Inspiration and code was taken from many sources, including:
- [shunk031/dotfiles](https://github.com/shunk031/dotfiles).
- [caarlos0/dotfiles](https://github.com/caarlos0/dotfiles).## ๐ License
The code is available under the [MIT license](https://github.com/pragmaticivan/dotfiles/blob/main/LICENSE).