https://github.com/wwmoraes/dotfiles
Cross-platform dotfiles with batteries
https://github.com/wwmoraes/dotfiles
dotfiles flake nix shell unix
Last synced: about 1 month ago
JSON representation
Cross-platform dotfiles with batteries
- Host: GitHub
- URL: https://github.com/wwmoraes/dotfiles
- Owner: wwmoraes
- License: mit
- Created: 2019-08-17T04:35:24.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-12-23T15:40:59.000Z (2 months ago)
- Last Synced: 2025-12-25T05:36:52.130Z (2 months ago)
- Topics: dotfiles, flake, nix, shell, unix
- Language: Nix
- Homepage:
- Size: 3.36 MB
- Stars: 13
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# William's Dotfiles 3.0
## Table of Contents
- [About](#about)
- [Getting Started](#getting-started)
- [Usage](#usage)
- [Contributing](../CONTRIBUTING.md)
## About
Batteries-included configuration of hosts and programs. This is the third
generation of it, now using Nix.
For what is worth: the previous iteration used chezmoi, which is an excellent
tool and I *fully recommend it*. My decision to switch to Nix happened because:
- I felt a bit disgruntled with all the long folders and file names due to
[source state attributes](https://www.chezmoi.io/reference/source-state-attributes/)
- some programs I use have many distinct paths to configure its elements (I'm
looking at you, Docker Desktop). Thus finding where to configure what became
tedious
- my work environment doesn't allow me to use many tools such as a decent
password manager for runtime secret expansion. That made my original secrets
management using 1Password less portable, forcing me to use ejson (now sops)
- I'm already familiar with Nix since I adopted it on all my projects to manage
its dependencies and environment instead of dev containers BS
## Getting Started
Fully remote:
```shell
## install nix using your preferred method, then run
sudo nix \
--option accept-flake-config true run github:wwmoraes/dotfiles#darwin-rebuild \
-- switch --impure --no-remote --flake .
## after that use this for future switches
sudo darwin-rebuild switch --impure --no-remote --flake .
## OR from this repository root
nix run .
## Enjoy! 🚀
```
Some enterprise environments use MITM proxies with poorly configured CAs on
hosts, breaking tools like curl. In such cases its best to clone/download a
copy of this repository and use its scripts to temporarily dump the certificates
from the OS certificate store to get past the first setup. Make sure the host
configuration contains your enterprise CAs so future runs work without this.
Those can be found in `settings/work/security/pki/certificates`.
```shell
## clone this repository, then run
./scripts/setup-nix.sh
## bootstrap it by running
./scripts/bootstrap.sh
## after that use this for future switches
sudo darwin-rebuild switch --impure --no-remote --flake .
## OR from this repository root
nix run .
## Enjoy! 🚀
```
## Usage
Check upstream sources:
- [functions](https://noogle.dev)
- [home-manager option search](https://home-manager-options.extranix.com/)
- [nix-darwin option search](https://options.nix-darwin.uz/)
- [package search](https://search.nixos.org/packages)
- [NixOS option search](https://search.nixos.org/options)