Skip to content

Commit

Permalink
Messy test
Browse files Browse the repository at this point in the history
  • Loading branch information
LukeChannings committed Jul 7, 2024
1 parent 74d369b commit 2d7e1c1
Show file tree
Hide file tree
Showing 41 changed files with 885 additions and 6,615 deletions.
Empty file removed .gitmodules
Empty file.
5 changes: 4 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,8 @@
]
}
}
}
},
"cSpell.words": [
"Nixpkgs"
]
}
41 changes: 0 additions & 41 deletions Dockerfile

This file was deleted.

34 changes: 26 additions & 8 deletions README.markdown
Original file line number Diff line number Diff line change
@@ -1,25 +1,43 @@
# Luke's Configuration
# Luke's Config

This repo contains a declarative configuration for all systems, including Operating System, shell, and application configurations.

## Usage

```
curl https://raw.githubusercontent.com/LukeChannings/.config/nix/install | sh -c -- "$(hostname)"
```

## Philosophy

System configurations should not install frameworks (e.g. `ruby` or `python`) system-wide. Instead, each project should have its own environment in which it defines its dependencies, and dependency versions.

If a useful system tool requires a specific framework (e.g. `http-server` requires `nodejs`), the `http-server` binary can wrap `nodejs`, but the `node` binary should not be in the global `PATH`. This ensures projects are insulated from system-wide dependencies. It also prevents issues where some tools (e.g. `brew install ffmpeg`) add many dependencies to the system and makes it hard to know if a dependency is still used.

## Levels
## Installer Levels

Installing a complete configuration, including desktop applications, etc. can take a long time. To minimise the time to productivity the profiles are separated into three levels.

### Level 1
- **Level 1**

Should be installable within 10 minutes and set up configurations and conveniences that make the system comfortable to use.
Should be installable within 10 minutes and set up configurations and conveniences that make the system comfortable to use.
- **Level 2**

### Level 2
Should be installable within 30 minutes and provide the tools necessary for being productive. This usually includes developer tools, devenv environment, etc.
- **Level 3**

Should be installable within 30 minutes and provide the tools necessary for being productive. This usually includes developer tools, devenv environment, etc.
Everything else. It shouldn't matter if this takes a long time to install.

### Level 3
## Documentation

Everything else. It shouldn't matter if this takes a long time to install.
- **Source**
- [Nixpkgs](https://github.com/NixOS/nixpkgs)
- [Home Manager](https://github.com/nix-community/home-manager)
- [Nix Darwin](https://github.com/LnL7/nix-darwin)
- [Determinate Systems Nix Installer](https://github.com/DeterminateSystems/nix-installer)
- [brew-nix](https://github.com/BatteredBunny/brew-nix/tree/main)
- **Options**
- [Home Manager](https://nix-community.github.io/home-manager/options.xhtml)
- [Searchable](https://home-manager-options.extranix.com)
- [Nix Darwin](https://daiderd.com/nix-darwin/manual/index.html)
- `man 5 configuration.nix`
Loading

0 comments on commit 2d7e1c1

Please sign in to comment.