Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/carlthome/dotfiles

My idiosyncratic config for personal computing
https://github.com/carlthome/dotfiles

dotfiles home-manager nix nix-flake nixos

Last synced: 2 months ago
JSON representation

My idiosyncratic config for personal computing

Awesome Lists containing this project

README

        

# dotfiles

My personal computing configuration that I wish to sync between machines.

## Install

1. Install `nix` on the system (with [flakes enabled](https://nixos.wiki/wiki/Flakes#Enable_flakes)) by running [bootstrap.sh](./bootstrap.sh)
1. Create system configuration with `nix run github:carlthome/dotfiles#switch-system`
1. Create user configuration with `nix run github:carlthome/dotfiles#switch-home`

## Usage

Run installed packages by `nix run self#` where `` is the package name.

Use `nix flake show self` to list all installed packages.

## Develop

1. Clone this flake to the current working directory by `nix flake clone github:carlthome/dotfiles --dest .`
1. Stage declarative changes (in [flake.nix](./flake.nix) etc.) as needed
1. Lint source with `nix flake check`
1. Build all packages with `nix build`
1. Apply changes with `nix run .#update-and-switch` which will:
1. Pull currently tracked remote branch
1. Update flake inputs and commit any flake.lock changes
1. Build and switch system configuration
1. Build and switch user configuration
1. Install all included utility scripts
1. Push flake.lock to currently tracked remote branch (if previous steps succeeded)