-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
74d369b
commit be53c76
Showing
41 changed files
with
858 additions
and
6,620 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,5 +15,8 @@ | |
] | ||
} | ||
} | ||
} | ||
}, | ||
"cSpell.words": [ | ||
"Nixpkgs" | ||
] | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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` |
Oops, something went wrong.