-
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
7cb3171
commit 74d369b
Showing
10 changed files
with
611 additions
and
658 deletions.
There are no files selected for viewing
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 |
---|---|---|
@@ -0,0 +1,10 @@ | ||
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then | ||
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs=" | ||
fi | ||
|
||
watch_file flake.nix | ||
watch_file flake.lock | ||
if ! use flake . --impure | ||
then | ||
echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2 | ||
fi |
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
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 |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"nix.enableLanguageServer": true, | ||
"nix.serverPath": "nil", | ||
"nix.serverSettings": { | ||
"nil": { | ||
"diagnostics": { | ||
"ignored": [ | ||
"unused_binding", | ||
"unused_with" | ||
] | ||
}, | ||
"formatting": { | ||
"command": [ | ||
"nixfmt" | ||
] | ||
} | ||
} | ||
} | ||
} |
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,25 @@ | ||
# Luke's .config | ||
# Luke's Configuration | ||
|
||
________ ________ ________ ________ ___ ________ | ||
|\ ____\|\ __ \|\ ___ \|\ _____\\ \|\ ____\ | ||
\ \ \___|\ \ \|\ \ \ \\ \ \ \ \__/\ \ \ \ \___| | ||
\ \ \ \ \ \\\ \ \ \\ \ \ \ __\\ \ \ \ \ ___ | ||
__\ \ \____\ \ \\\ \ \ \\ \ \ \ \_| \ \ \ \ \|\ \ | ||
|\__\ \_______\ \_______\ \__\\ \__\ \__\ \ \__\ \_______\ | ||
\|__|\|_______|\|_______|\|__| \|__|\|__| \|__|\|_______| | ||
This repo contains a declarative configuration for all systems, including Operating System, shell, and application configurations. | ||
|
||
Contains all of my dotfiles, which live in my [$XDG_CONFIG_HOME](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html), and the ones that don't are symlinked to `~/*`. | ||
## Philosophy | ||
|
||
## Usage | ||
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. | ||
|
||
curl https://raw.githubusercontent.com/LukeChannings/.config/master/install | bash | ||
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. | ||
|
||
Or in a container: | ||
## Levels | ||
|
||
`docker run -it lukechannings/terminal` | ||
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. | ||
|
||
## Goals | ||
### Level 1 | ||
|
||
- Quickly set up a new machine with all my software and preferences | ||
- Easy to maintain - I don't want an ansible configuration, just something simple and diffable | ||
- Works on macOS, Linux, and WSL | ||
Should be installable within 10 minutes and set up configurations and conveniences that make the system comfortable to use. | ||
|
||
### 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 | ||
|
||
Everything else. It shouldn't matter if this takes a long time to install. |
Oops, something went wrong.