first commit
This commit is contained in:
commit
9f2899ff0c
53
.gitignore
vendored
Normal file
53
.gitignore
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
.gitignore.envrc.local
|
||||||
|
.*.swo
|
||||||
|
.*.swp
|
||||||
|
.direnv
|
||||||
|
.DS_Store
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
result*
|
||||||
|
*.qcow2
|
||||||
|
*.log
|
||||||
|
temp
|
||||||
|
*.pyc
|
||||||
|
TODOS.md
|
||||||
|
.devenv
|
||||||
|
|
||||||
|
# terraform
|
||||||
|
.terraform
|
||||||
|
*.tf.json
|
||||||
|
*.tfstate
|
||||||
|
|
||||||
|
# Local .terraform directories
|
||||||
|
**/.terraform/*
|
||||||
|
|
||||||
|
# .tfstate files
|
||||||
|
*.tfstate
|
||||||
|
*.tfstate.*
|
||||||
|
|
||||||
|
# Crash log files
|
||||||
|
crash.log
|
||||||
|
crash.*.log
|
||||||
|
|
||||||
|
# Exclude all .tfvars files, which are likely to contain sensitive data, such as
|
||||||
|
# password, private keys, and other secrets. These should not be part of version
|
||||||
|
# control as they are data points which are potentially sensitive and subject
|
||||||
|
# to change depending on the environment.
|
||||||
|
*.tfvars
|
||||||
|
*.tfvars.json
|
||||||
|
|
||||||
|
# Ignore override files as they are usually used to override resources locally and so
|
||||||
|
# are not checked in
|
||||||
|
override.tf
|
||||||
|
override.tf.json
|
||||||
|
*_override.tf
|
||||||
|
*_override.tf.json
|
||||||
|
|
||||||
|
# Include override files you do wish to add to version control using negated pattern
|
||||||
|
# !example_override.tf
|
||||||
|
|
||||||
|
# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
|
||||||
|
# example: *tfplan*
|
||||||
|
|
||||||
|
# Ignore CLI configuration files
|
||||||
|
.terraformrc
|
||||||
|
terraform.rc
|
9
.vscode/extensions.json
vendored
Normal file
9
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"arrterian.nix-env-selector",
|
||||||
|
"bbenoist.nix",
|
||||||
|
"jnoortheen.nix-ide",
|
||||||
|
"mikestead.dotenv",
|
||||||
|
],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
20
.vscode/settings.json
vendored
Normal file
20
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"flake.lock": "json",
|
||||||
|
"*.hcl": "hcl",
|
||||||
|
},
|
||||||
|
"[nix]": {
|
||||||
|
"editor.defaultFormatter": "brettm12345.nixfmt-vscode",
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.insertSpaces": true,
|
||||||
|
"editor.tabSize": 2,
|
||||||
|
"editor.codeLens": true,
|
||||||
|
"emmet.triggerExpansionOnTab": true,
|
||||||
|
"editor.quickSuggestions": {
|
||||||
|
"comments": "on",
|
||||||
|
"strings": "on"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix.serverPath": "nil",
|
||||||
|
"nix.enableLanguageServer": true
|
||||||
|
}
|
24
LICENSE.md
Normal file
24
LICENSE.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright © 2024 Sebastian Wendel
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the “Software”), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
90
README.md
Normal file
90
README.md
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
# NixOS WSL Flake
|
||||||
|
|
||||||
|
This is my personal, opinionated configuration of NixOS WSL when I need to use Microsoft Windows as my primary operating system. It is intended to give developers and DevOps engineers an insight into the potential of Nix. If you're interested in more Nix-related topics, you can check out my other [Projects](https://code.srx.digital/explore/repos) or follow me on [Github](https://github.com/SebastianWendel).
|
||||||
|
|
||||||
|
Dies ist meine persönliche Konfiguration von NixOS WSL, wenn ich MS Windows als mein primäres Betriebssystem verwenden muss. Sie soll mein System Konfiguration dokumentieren, reproduzierbar halten und anderen einen Einblick in das Potential von Nix geben.
|
||||||
|
|
||||||
|
Wenn du an weiteren Nix-bezogenen Themen interessiert bist, kannst du dir meine anderen [Projekte](https://code.srx.digital/explore/repos) ansehen oder mir auf [Github](https://github.com/SebastianWendel) folgen.
|
||||||
|
|
||||||
|
## 🛠️ Components
|
||||||
|
|
||||||
|
- [flake-parts](https://github.com/hercules-ci/flake-parts): Simplify Nix Flakes with the module system.
|
||||||
|
- [git-hooks](https://github.com/cachix/git-hooks.nix): Seamless integration of git hooks with Nix.
|
||||||
|
- [home-manager](https://github.com/nix-community/home-manager): Manage user environments using Nix.
|
||||||
|
- [neovim](https://github.com/nix-community/nixvim)
|
||||||
|
- [yocto](https://github.com/nix-community/nix-environments/blob/master/envs/yocto/shell.nix)
|
||||||
|
|
||||||
|
## 📁 Repository layout
|
||||||
|
|
||||||
|
```txt
|
||||||
|
├── modules - Reusable NixOS modules
|
||||||
|
├── nix - Flake-parts modules
|
||||||
|
├── default.nix - Legacy support with flake-compat
|
||||||
|
├── flake.lock - Lock file for version pinning
|
||||||
|
└── flake.nix - Flakes configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Getting started
|
||||||
|
|
||||||
|
### 📋 Prerequisites
|
||||||
|
|
||||||
|
#### NixOS WSL
|
||||||
|
|
||||||
|
Before proceeding, ensure you have [installed the NixOS-WSL](https://nix-community.github.io/NixOS-WSL/install.html), followed the guide and have a funtional terminal envirnment.
|
||||||
|
|
||||||
|
#### Icon Fonts
|
||||||
|
|
||||||
|
To get the necessary icons in all shell applications, install a NerdFont with additional fonts by running the following Powershell command in an administrative environment:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
& ([scriptblock]::Create((iwr 'https://to.loredo.me/Install-NerdFont.ps1')))
|
||||||
|
```
|
||||||
|
|
||||||
|
To use `Cascadia Code Nerd Font`, enter the number `11`. After completing the installation, a system restart may be required. Now you can configure `Cascadia Code NF` in your editor and terminal emulator.
|
||||||
|
|
||||||
|
Further details can be found at [Microsoft Cascadia Code](https://github.com/microsoft/cascadia-code) and
|
||||||
|
|
||||||
|
### Configure NixOS
|
||||||
|
|
||||||
|
Checkout the source tree, open you're new NixOS terminal and follw the stepps:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo mv /etc/nixos /etc/.nixos
|
||||||
|
sudo git clone https://gitlab.i40.ifm-datalink.net/sebastian.wendel/nixos-wls /etc/nixos
|
||||||
|
```
|
||||||
|
|
||||||
|
### Test you configuration
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo nixos-rebuild test
|
||||||
|
```
|
||||||
|
|
||||||
|
### Apply you configuration
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo nixos-rebuild switch
|
||||||
|
```
|
||||||
|
|
||||||
|
If something fails, you can add `--show-trace` to get a more detailed output of all the expressions on the stack.
|
||||||
|
|
||||||
|
## 🚧 Reporting issues
|
||||||
|
|
||||||
|
If you experience any issues with the infrastructure, please [post a new issue to this repository]().
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
- [Windows Subsystem for Linux](https://learn.microsoft.com/en-us/windows/wsl/)
|
||||||
|
- [Nix Manual](https://nix.dev/manual/nix/stable/)
|
||||||
|
- [NixOS Manual](https://nixos.org/manual/nixos/stable/)
|
||||||
|
|
||||||
|
## 📚 Links
|
||||||
|
|
||||||
|
- [Nix packages search](https://search.nixos.org/packages)
|
||||||
|
- [NixOS options search](https://search.nixos.org/options)
|
||||||
|
- [NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world/)
|
||||||
|
- [NixOS Wiki](https://nixos.wiki/wiki/Main_Page)
|
||||||
|
- [Awesome Nix](https://github.com/nix-communi/awesome-nix)
|
||||||
|
|
||||||
|
## 📜 License
|
||||||
|
|
||||||
|
All files in this repository are licensed under the terms of the MIT License (MIT). Please refer to the full license text in [LICENSE](LICENSE.md).
|
22
default.nix
Normal file
22
default.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ system ? builtins.currentSystem
|
||||||
|
, src ? ./.
|
||||||
|
,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (lock.nodes.flake-compat.locked)
|
||||||
|
owner
|
||||||
|
repo
|
||||||
|
rev
|
||||||
|
narHash
|
||||||
|
;
|
||||||
|
|
||||||
|
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||||
|
|
||||||
|
flake-compat = fetchTarball {
|
||||||
|
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
|
||||||
|
sha256 = narHash;
|
||||||
|
};
|
||||||
|
|
||||||
|
flake = import flake-compat { inherit src system; };
|
||||||
|
in
|
||||||
|
flake.defaultNix
|
877
flake.lock
Normal file
877
flake.lock
Normal file
|
@ -0,0 +1,877 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"base16": {
|
||||||
|
"inputs": {
|
||||||
|
"fromYaml": "fromYaml"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708890466,
|
||||||
|
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"rev": "665b3c6748534eb766c777298721cece9453fdae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-fish": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1622559957,
|
||||||
|
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-foot": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696725948,
|
||||||
|
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-foot",
|
||||||
|
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-foot",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-helix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1720809814,
|
||||||
|
"narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-kitty": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1665001328,
|
||||||
|
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
|
||||||
|
"owner": "kdrag0n",
|
||||||
|
"repo": "base16-kitty",
|
||||||
|
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "kdrag0n",
|
||||||
|
"repo": "base16-kitty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-tmux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696725902,
|
||||||
|
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-tmux",
|
||||||
|
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-tmux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716150083,
|
||||||
|
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"devshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722113426,
|
||||||
|
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725377834,
|
||||||
|
"narHash": "sha256-tqoAO8oT6zEUDXte98cvA1saU9+1dLJQe3pMKLXv8ps=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "e55f9a8678adc02024a4877c2a403e3f6daf24fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717312683,
|
||||||
|
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"revCount": 57,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725234343,
|
||||||
|
"narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "567b938d64d4b4112ee253b9274472dc3a346eb6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722555600,
|
||||||
|
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": [
|
||||||
|
"stylix",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fromYaml": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689549921,
|
||||||
|
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725513492,
|
||||||
|
"narHash": "sha256-tyMUA6NgJSvvQuzB7A1Sf8+0XCHyfSPRx/b00o6K0uo=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "7570de7b9b504cfe92025dd1be797bf546f66528",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"nixvim",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724857454,
|
||||||
|
"narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gnome-shell": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713702291,
|
||||||
|
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GNOME",
|
||||||
|
"ref": "46.1",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725180166,
|
||||||
|
"narHash": "sha256-fzssXuGR/mCeGbzM1ExaTqDz7QDGta3WA4jJsZyRruo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "471e3eb0a114265bcd62d11d58ba8d3421ee68eb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724435763,
|
||||||
|
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724561770,
|
||||||
|
"narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixlib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725152544,
|
||||||
|
"narHash": "sha256-Tm344cnFM9f2YZsgWtJduvhIrvLr3Bi8J4Xc+UZDKYE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "7f0b9e4fbd91826cb9ce6babbc11c87903191051",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-anywhere": {
|
||||||
|
"inputs": {
|
||||||
|
"disko": [
|
||||||
|
"disko"
|
||||||
|
],
|
||||||
|
"flake-parts": [
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixos-images": "nixos-images",
|
||||||
|
"nixos-stable": "nixos-stable",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": [
|
||||||
|
"treefmt-nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725272324,
|
||||||
|
"narHash": "sha256-RygpChm/b3Dx2HwdM0YdCBbdQbCjA2V7960EUOHmLPQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-anywhere",
|
||||||
|
"rev": "69ad3f4a50cfb711048f54013404762c9a8e201e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-anywhere",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-generators": {
|
||||||
|
"inputs": {
|
||||||
|
"nixlib": "nixlib",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725497951,
|
||||||
|
"narHash": "sha256-fayKyVs/9FQdYH+3SCOkQM1GCsEPPVE+lSiVGlYQ7i0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-generators",
|
||||||
|
"rev": "15a07ebf4a041bf232026263f1f96f2af390f3bc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-generators",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-images": {
|
||||||
|
"inputs": {
|
||||||
|
"nixos-stable": [
|
||||||
|
"nixos-anywhere",
|
||||||
|
"nixos-stable"
|
||||||
|
],
|
||||||
|
"nixos-unstable": [
|
||||||
|
"nixos-anywhere",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717994219,
|
||||||
|
"narHash": "sha256-ueTu01bYU5QXdL77psMkApYHpk339xNHg/M7ZzP3uPI=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-images",
|
||||||
|
"rev": "e2fd329c3a39a90bb43e1e2cf47c180ed57831bf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-images",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717696253,
|
||||||
|
"narHash": "sha256-1+ua0ggXlYYPLTmMl3YeYYsBXDSCqT+Gw3u6l4gvMhA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9b5328b7f761a7bbdc0e332ac4cf076a3eedb89b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-wsl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725358307,
|
||||||
|
"narHash": "sha256-su/Nzp2X8JlaD9wPYQGXeTilaVa5H06X7A3kqCLJNuo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NixOS-WSL",
|
||||||
|
"rev": "8a89995f745b1a9029d654c391a0f62ca03f7fe7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NixOS-WSL",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725103162,
|
||||||
|
"narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1720386169,
|
||||||
|
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724819573,
|
||||||
|
"narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell",
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"git-hooks": "git-hooks_2",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725499492,
|
||||||
|
"narHash": "sha256-IjpbYl4ljZ6gffzfH/n2qYbtu7PZ1KM2LW+cVL6w1bk=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"rev": "e48da949cf41597d43f8e3880fc1389129ad7427",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725864675,
|
||||||
|
"narHash": "sha256-VkHgZJ0D32wFAyWaBb2hXZSyc4UrTu4XOM9/vJeDPek=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "65eda9f4b5b4841d1afbd29bbe6a2c6b5e038476",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nuschtosSearch": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724584782,
|
||||||
|
"narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"disko": "disko",
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixos-anywhere": "nixos-anywhere",
|
||||||
|
"nixos-generators": "nixos-generators",
|
||||||
|
"nixos-wsl": "nixos-wsl",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixvim": "nixvim",
|
||||||
|
"nur": "nur",
|
||||||
|
"stylix": "stylix",
|
||||||
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stylix": {
|
||||||
|
"inputs": {
|
||||||
|
"base16": "base16",
|
||||||
|
"base16-fish": "base16-fish",
|
||||||
|
"base16-foot": "base16-foot",
|
||||||
|
"base16-helix": "base16-helix",
|
||||||
|
"base16-kitty": "base16-kitty",
|
||||||
|
"base16-tmux": "base16-tmux",
|
||||||
|
"base16-vim": "base16-vim",
|
||||||
|
"flake-compat": [
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"gnome-shell": "gnome-shell",
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725290973,
|
||||||
|
"narHash": "sha256-+jwXF9KI0HfvDgpsoJGvOdfOGGSKOrID1wQB79zjUbo=",
|
||||||
|
"owner": "danth",
|
||||||
|
"repo": "stylix",
|
||||||
|
"rev": "ef81ad9e85e60420cc83d4642619c14b57139d33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "danth",
|
||||||
|
"repo": "stylix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724833132,
|
||||||
|
"narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "3ffd842a5f50f435d3e603312eefa4790db46af5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725271838,
|
||||||
|
"narHash": "sha256-VcqxWT0O/gMaeWTTjf1r4MOyG49NaNxW4GHTO3xuThE=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "9fb342d14b69aefdf46187f6bb80a4a0d97007cd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
110
flake.nix
Normal file
110
flake.nix
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
nixos-wsl = {
|
||||||
|
url = "github:nix-community/NixOS-WSL";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixos-anywhere = {
|
||||||
|
url = "github:nix-community/nixos-anywhere";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
flake-parts.follows = "flake-parts";
|
||||||
|
disko.follows = "disko";
|
||||||
|
treefmt-nix.follows = "treefmt-nix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixos-generators = {
|
||||||
|
url = "github:nix-community/nixos-generators";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
flake-compat.url = "github:nix-community/flake-compat";
|
||||||
|
|
||||||
|
flake-parts = {
|
||||||
|
url = "github:hercules-ci/flake-parts";
|
||||||
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
disko = {
|
||||||
|
url = "github:nix-community/disko";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
treefmt-nix = {
|
||||||
|
url = "github:numtide/treefmt-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
git-hooks = {
|
||||||
|
url = "github:cachix/git-hooks.nix";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
flake-compat.follows = "flake-compat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
url = "github:danth/stylix";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
flake-compat.follows = "flake-compat";
|
||||||
|
home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nur.url = "github:nix-community/NUR";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ self, nixpkgs, flake-parts, ... } @ inputs:
|
||||||
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
|
systems = [ "x86_64-linux" ];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./nix/devshell.nix
|
||||||
|
./nix/pre-commit.nix
|
||||||
|
./nix/treefmt.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
perSystem = { pkgs, system, ... }: {
|
||||||
|
_module.args = {
|
||||||
|
pkgs = import inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [ self.overlays.default ];
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
allowAliases = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake = {
|
||||||
|
overlays.default = nixpkgs.lib.composeManyExtensions [
|
||||||
|
inputs.nixvim.overlays.default
|
||||||
|
inputs.nur.overlay
|
||||||
|
];
|
||||||
|
|
||||||
|
nixosConfigurations."ifm10n32359" = nixpkgs.lib.nixosSystem {
|
||||||
|
modules = with inputs; [
|
||||||
|
nixos-wsl.nixosModules.default
|
||||||
|
nixvim.nixosModules.nixvim
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
stylix.nixosModules.stylix
|
||||||
|
./modules
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
32
modules/default.nix
Normal file
32
modules/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./hardware.nix
|
||||||
|
./home-manager.nix
|
||||||
|
./stylix.nix
|
||||||
|
./users.nix
|
||||||
|
./fonts.nix
|
||||||
|
./nix.nix
|
||||||
|
./podman.nix
|
||||||
|
./neovim
|
||||||
|
./programs.nix
|
||||||
|
./packages.nix
|
||||||
|
./documentation.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
|
wsl = {
|
||||||
|
enable = true;
|
||||||
|
defaultUser = "dewendse";
|
||||||
|
wslConf = {
|
||||||
|
automount.ldconfig = true;
|
||||||
|
automount.mountFsTab = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
useWindowsDriver = true;
|
||||||
|
startMenuLaunchers = true;
|
||||||
|
};
|
||||||
|
}
|
10
modules/documentation.nix
Normal file
10
modules/documentation.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
documentation = {
|
||||||
|
enable = lib.mkForce true;
|
||||||
|
nixos.enable = lib.mkForce true;
|
||||||
|
doc.enable = lib.mkForce true;
|
||||||
|
man.enable = lib.mkForce true;
|
||||||
|
info.enable = lib.mkForce true;
|
||||||
|
};
|
||||||
|
}
|
36
modules/fonts.nix
Normal file
36
modules/fonts.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
fonts = {
|
||||||
|
fontDir.enable = true;
|
||||||
|
fontconfig.enable = true;
|
||||||
|
enableDefaultPackages = true;
|
||||||
|
|
||||||
|
packages = with pkgs;[
|
||||||
|
fira-code
|
||||||
|
fira-code-symbols
|
||||||
|
|
||||||
|
material-design-icons
|
||||||
|
material-symbols
|
||||||
|
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
|
|
||||||
|
roboto-mono
|
||||||
|
source-code-pro
|
||||||
|
twitter-color-emoji
|
||||||
|
|
||||||
|
(nerdfonts.override {
|
||||||
|
fonts = [
|
||||||
|
"JetBrainsMono"
|
||||||
|
"FiraCode"
|
||||||
|
"Hack"
|
||||||
|
"Meslo"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
manrope
|
||||||
|
martian-mono
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
8
modules/hardware.nix
Normal file
8
modules/hardware.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
hardware.keyboard.qmk.enable = true;
|
||||||
|
|
||||||
|
services.udev.packages = with pkgs; [
|
||||||
|
via
|
||||||
|
];
|
||||||
|
}
|
7
modules/home-manager.nix
Normal file
7
modules/home-manager.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
backupFileExtension = "backup";
|
||||||
|
};
|
||||||
|
}
|
9
modules/home/ansible.nix
Normal file
9
modules/home/ansible.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ansible
|
||||||
|
ansible-lint
|
||||||
|
ansible-doctor
|
||||||
|
ansible-language-server
|
||||||
|
];
|
||||||
|
}
|
176
modules/home/default.nix
Normal file
176
modules/home/default.nix
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# system
|
||||||
|
./zsh.nix
|
||||||
|
./xdg.nix
|
||||||
|
./stylix.nix
|
||||||
|
./packages.nix
|
||||||
|
|
||||||
|
# auth
|
||||||
|
./gpg.nix
|
||||||
|
./ssh.nix
|
||||||
|
./pass.nix
|
||||||
|
|
||||||
|
# terminal
|
||||||
|
./fish.nix
|
||||||
|
./starship.nix
|
||||||
|
|
||||||
|
# development
|
||||||
|
./git.nix
|
||||||
|
./python.nix
|
||||||
|
./rust.nix
|
||||||
|
./nodejs.nix
|
||||||
|
./ansible.nix
|
||||||
|
|
||||||
|
# gui
|
||||||
|
./firefox.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
|
||||||
|
bat.enable = true;
|
||||||
|
dircolors.enable = true;
|
||||||
|
|
||||||
|
broot = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
htop = {
|
||||||
|
enable = true;
|
||||||
|
settings =
|
||||||
|
{
|
||||||
|
delay = 10;
|
||||||
|
show_program_path = false;
|
||||||
|
show_cpu_frequency = true;
|
||||||
|
show_cpu_temperature = true;
|
||||||
|
hide_kernel_threads = true;
|
||||||
|
}
|
||||||
|
// (
|
||||||
|
with config.lib.htop;
|
||||||
|
leftMeters [
|
||||||
|
(bar "AllCPUs2")
|
||||||
|
(bar "Memory")
|
||||||
|
(bar "Swap")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
// (
|
||||||
|
with config.lib.htop;
|
||||||
|
rightMeters [
|
||||||
|
(text "Hostname")
|
||||||
|
(text "Tasks")
|
||||||
|
(text "LoadAverage")
|
||||||
|
(text "Uptime")
|
||||||
|
(text "Systemd")
|
||||||
|
]
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
btop = {
|
||||||
|
enable = true;
|
||||||
|
settings.vim_keys = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
icons = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
extraOptions = [
|
||||||
|
"--group-directories-first"
|
||||||
|
"--header"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
fd.enable = true;
|
||||||
|
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
lsd = {
|
||||||
|
enable = true;
|
||||||
|
enableAliases = true;
|
||||||
|
settings = {
|
||||||
|
layout = "grid";
|
||||||
|
hyperlink = "auto";
|
||||||
|
sorting.dir-grouping = "first";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lf = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
number = true;
|
||||||
|
ratios = [ 1 1 2 ];
|
||||||
|
tabstop = 4;
|
||||||
|
preview = true;
|
||||||
|
hidden = true;
|
||||||
|
drawbox = true;
|
||||||
|
icons = true;
|
||||||
|
ignorecase = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
commands = {
|
||||||
|
get-mime-type = ''%xdg-mime query filetype "$f"'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
jq.enable = true;
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
aggressiveResize = true;
|
||||||
|
clock24 = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
historyLimit = 10000;
|
||||||
|
newSession = false;
|
||||||
|
secureSocket = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
ripgrep = {
|
||||||
|
enable = true;
|
||||||
|
arguments = [
|
||||||
|
"--max-columns-preview"
|
||||||
|
"--colors=line:style:bold"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
yazi = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
settings = {
|
||||||
|
manager = {
|
||||||
|
show_hidden = false;
|
||||||
|
sort_dir_first = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
options = [ "--cmd cd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
thefuck = {
|
||||||
|
enable = true;
|
||||||
|
enableInstantMode = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
237
modules/home/firefox.nix
Normal file
237
modules/home/firefox.nix
Normal file
|
@ -0,0 +1,237 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles = {
|
||||||
|
default = {
|
||||||
|
isDefault = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
# https://kb.mozillazine.org/About:config_entries
|
||||||
|
"app.update.auto" = false;
|
||||||
|
"browser.newtab.url" = "about:blank";
|
||||||
|
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||||
|
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||||
|
"browser.newtabpage.pinned" = [
|
||||||
|
{
|
||||||
|
title = "NixOS";
|
||||||
|
url = "https://nixos.org";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"browser.ping-centre.telemetry" = false;
|
||||||
|
"browser.search.isUS" = false;
|
||||||
|
"browser.search.region" = "DE";
|
||||||
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
|
"browser.startup.homepage" = "about:blank";
|
||||||
|
"browser.uidensity" = 0;
|
||||||
|
"distribution.searchplugins.defaultLocale" = "en-GB";
|
||||||
|
"dom.security.https_only_mode_ever_enabled" = true;
|
||||||
|
"dom.security.https_only_mode" = true;
|
||||||
|
"experiments.activeExperiment" = false;
|
||||||
|
"experiments.enabled" = false;
|
||||||
|
"experiments.supported" = false;
|
||||||
|
"extensions.pocket.api" = "";
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
|
"extensions.pocket.oAuthConsumerKey" = "";
|
||||||
|
"extensions.pocket.showHome" = false;
|
||||||
|
"extensions.pocket.site" = "";
|
||||||
|
"general.smoothScroll" = true;
|
||||||
|
"general.useragent.locale" = "en-GB";
|
||||||
|
"gnomeTheme.normalWidthTabs" = true;
|
||||||
|
"gnomeTheme.tabsAsHeaderbar" = true;
|
||||||
|
"network.allow-experiments" = false;
|
||||||
|
"policies.PasswordManagerEnabled" = true;
|
||||||
|
"privacy.donottrackheader.enabled" = true;
|
||||||
|
"privacy.partition.network_state.ocsp_cache" = true;
|
||||||
|
"privacy.resistFingerprinting" = false;
|
||||||
|
"privacy.trackingprotection.enabled" = true;
|
||||||
|
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||||
|
"signon.rememberSignons" = false;
|
||||||
|
"svg.content-properties.content.enabled" = true;
|
||||||
|
"svg.context-properties.content.enabled" = true;
|
||||||
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
|
"toolkit.telemetry.archive.enabled" = false;
|
||||||
|
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||||
|
"toolkit.telemetry.enabled" = false;
|
||||||
|
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||||
|
"toolkit.telemetry.hybridContent.enabled" = false;
|
||||||
|
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||||
|
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||||
|
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||||
|
"toolkit.telemetry.unified" = false;
|
||||||
|
"toolkit.telemetry.updatePing.enabled" = false;
|
||||||
|
"webgl.disabled" = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = ''
|
||||||
|
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||||
|
user_pref("full-screen-api.ignore-widgets", true);
|
||||||
|
user_pref("media.ffmpeg.vaapi.enabled", true);
|
||||||
|
user_pref("media.rdd-vpx.enabled", true);
|
||||||
|
'';
|
||||||
|
|
||||||
|
search = {
|
||||||
|
force = true;
|
||||||
|
default = "Google";
|
||||||
|
engines = {
|
||||||
|
"NixOS Options" = {
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://search.nixos.org/options";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "type";
|
||||||
|
value = "options";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = [ "@no" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"NixOS Wiki" = {
|
||||||
|
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@nw" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Nix Home Options" = {
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://mipmip.github.io/home-manager-option-search";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "type";
|
||||||
|
value = "options";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = [ "@nh" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Nix Packages" = {
|
||||||
|
urls = [
|
||||||
|
{
|
||||||
|
template = "https://search.nixos.org/packages";
|
||||||
|
params = [
|
||||||
|
{
|
||||||
|
name = "type";
|
||||||
|
value = "packages";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = [ "@np" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Nix Reference Manual" = {
|
||||||
|
urls = [{ template = "https://nixos.org/manual/nix/stable/?search={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@nm" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"OpenWRT Packages" = {
|
||||||
|
urls = [{ template = "https://openwrt.org/packages/pkgdata/{searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://openwrt.org/_media/favicon.ico";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@ow" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"OpenWRT Wiki" = {
|
||||||
|
urls = [{ template = "https://openwrt.org/de/start?do=search&q={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://openwrt.org/_media/favicon.ico";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@ow" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Zephyr Documentation" = {
|
||||||
|
urls = [{ template = "https://docs.zephyrproject.org/latest/search.html?q={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://zephyrproject.org/favicon.ico";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@zd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Zephyr Config" = {
|
||||||
|
urls = [{
|
||||||
|
template = "https://docs.zephyrproject.org/latest/kconfig.html?type=kconfig&query={searchTerms}";
|
||||||
|
}];
|
||||||
|
iconUpdateURL = "https://zephyrproject.org/favicon.ico";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@zc" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Docker Image" = {
|
||||||
|
urls = [{ template = "https://hub.docker.com/search?q={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://hub.docker.com/favicon.ico";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@di" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Python Package" = {
|
||||||
|
urls = [{ template = "https://pypi.org/search/?q={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://pypi.org/favicon.ico";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@pip" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Rust Crates" = {
|
||||||
|
urls = [{ template = "https://crates.io/search?q={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://www.rust-lang.org/static/images/favicon-32x32.png";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@rc" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Rust Book" = {
|
||||||
|
urls = [{ template = "https://doc.rust-lang.org/beta/book/index.html?search={searchTerms}"; }];
|
||||||
|
iconUpdateURL = "https://www.rust-lang.org/static/images/favicon-32x32.png";
|
||||||
|
updateInterval = 24 * 60 * 60 * 1000;
|
||||||
|
definedAliases = [ "@rb" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# extensions = with firefox-addons.packages; [
|
||||||
|
# block-origin
|
||||||
|
# bitwarden
|
||||||
|
# gopass-bridge
|
||||||
|
# react-devtools
|
||||||
|
# I-still-dont-care-about-cookies
|
||||||
|
# dnssec
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"application/xhtml+xml" = "firefox.desktop";
|
||||||
|
"text/html" = "firefox.desktop";
|
||||||
|
"text/xml" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/ftp" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/http" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/https" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/about" = "firefox.desktop";
|
||||||
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
modules/home/fish.nix
Normal file
24
modules/home/fish.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source
|
||||||
|
set -U fish_greeting
|
||||||
|
'';
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
inherit (pkgs.fishPlugins.autopair) src;
|
||||||
|
name = "autopair";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
inherit (pkgs.fishPlugins.done) src;
|
||||||
|
name = "done";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
inherit (pkgs.fishPlugins.sponge) src;
|
||||||
|
name = "sponge";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
95
modules/home/git.nix
Normal file
95
modules/home/git.nix
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [ glab ];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.gitFull;
|
||||||
|
userName = "Sebastian Wendel";
|
||||||
|
userEmail = "sebastian.wendel@ifm.com";
|
||||||
|
aliases = {
|
||||||
|
amend = "commit --amend -C HEAD";
|
||||||
|
authors =
|
||||||
|
''!"${pkgs.git}/bin/git log --pretty=format:%aN''
|
||||||
|
+ " | ${pkgs.coreutils}/bin/sort"
|
||||||
|
+ " | ${pkgs.coreutils}/bin/uniq -c"
|
||||||
|
+ " | ${pkgs.coreutils}/bin/sort -rn\"";
|
||||||
|
b = "branch --color -v";
|
||||||
|
ca = "commit --amend";
|
||||||
|
changes = "diff --name-status -r";
|
||||||
|
clone = "clone --recursive";
|
||||||
|
co = "checkout";
|
||||||
|
cp = "cherry-pick";
|
||||||
|
dc = "diff --cached";
|
||||||
|
dh = "diff HEAD";
|
||||||
|
ds = "diff --staged";
|
||||||
|
from = "!${pkgs.git}/bin/git bisect start && ${pkgs.git}/bin/git bisect bad HEAD && ${pkgs.git}/bin/git bisect good";
|
||||||
|
ls-ignored = "ls-files --exclude-standard --ignored --others";
|
||||||
|
rc = "rebase --continue";
|
||||||
|
rh = "reset --hard";
|
||||||
|
ri = "rebase --interactive";
|
||||||
|
rs = "rebase --skip";
|
||||||
|
ru = "remote update --prune";
|
||||||
|
snap = "!${pkgs.git}/bin/git stash" + " && ${pkgs.git}/bin/git stash apply";
|
||||||
|
snaplog =
|
||||||
|
"!${pkgs.git}/bin/git log refs/snapshots/refs/heads/" + "$(${pkgs.git}/bin/git rev-parse HEAD)";
|
||||||
|
spull =
|
||||||
|
"!${pkgs.git}/bin/git stash" + " && ${pkgs.git}/bin/git pull" + " && ${pkgs.git}/bin/git stash pop";
|
||||||
|
su = "submodule update --init --recursive";
|
||||||
|
undo = "reset --soft HEAD^";
|
||||||
|
w = "status -sb";
|
||||||
|
wdiff = "diff --color-words";
|
||||||
|
l =
|
||||||
|
"log --graph --pretty=format:'%Cred%h%Creset"
|
||||||
|
+ " —%Cblue%d%Creset %s %Cgreen(%cr)%Creset'"
|
||||||
|
+ " --abbrev-commit --date=relative --show-notes=*";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
core = {
|
||||||
|
editr = "${lib.getExe pkgs.vscodium-fhs} --wait";
|
||||||
|
pager = "${lib.getExe pkgs.bat}";
|
||||||
|
trustctime = false;
|
||||||
|
logAllRefUpdates = true;
|
||||||
|
precomposeunicode = false;
|
||||||
|
whitespace = "trailing-space,space-before-tab";
|
||||||
|
};
|
||||||
|
branch.autosetupmerge = true;
|
||||||
|
credential.helper = "${pkgs.pass-git-helper}/bin/pass-git-helper";
|
||||||
|
ghi.token = "!${pkgs.pass}/bin/pass show api.github.com | head -1";
|
||||||
|
github.user = "SebastianWendel";
|
||||||
|
hub.protocol = "${pkgs.openssh}/bin/ssh";
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
mergetool.keepBackup = true;
|
||||||
|
pull.rebase = true;
|
||||||
|
rebase.autosquash = true;
|
||||||
|
rerere.enabled = true;
|
||||||
|
color = {
|
||||||
|
status = "auto";
|
||||||
|
diff = "auto";
|
||||||
|
branch = "auto";
|
||||||
|
interactive = "auto";
|
||||||
|
ui = "auto";
|
||||||
|
sh = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gitui.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.lazygit = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
keybindings = {
|
||||||
|
universal = {
|
||||||
|
nextTab = "l";
|
||||||
|
prevTab = "h";
|
||||||
|
"nextBlock-alt" = false;
|
||||||
|
"prevBlock-alt" = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
modules/home/gpg.nix
Normal file
18
modules/home/gpg.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
enableScDaemon = true;
|
||||||
|
enableSshSupport = true;
|
||||||
|
enableExtraSocket = true;
|
||||||
|
defaultCacheTtl = 34560000;
|
||||||
|
maxCacheTtl = 34560000;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.gpg = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
keyserver = "hkps://keys.openpgp.org";
|
||||||
|
keyserver-options = "no-honor-keyserver-url";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
modules/home/nodejs.nix
Normal file
18
modules/home/nodejs.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [ nodejs ];
|
||||||
|
sessionVariables = {
|
||||||
|
NODE_EXTRA_CA_CERTS = "/etc/ssl/certs/Cloudflare_CA.pem";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.bun = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
telemetry = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
modules/home/packages.nix
Normal file
9
modules/home/packages.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
meld
|
||||||
|
appimage-run
|
||||||
|
filezilla
|
||||||
|
unzip
|
||||||
|
];
|
||||||
|
}
|
15
modules/home/pass.nix
Normal file
15
modules/home/pass.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
services.pass-secret-service.enable = true;
|
||||||
|
|
||||||
|
programs.password-store = {
|
||||||
|
enable = true;
|
||||||
|
settings.PASSWORD_STORE_DIR = "$HOME/.password-store";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gopass
|
||||||
|
gopass-jsonapi
|
||||||
|
qtpass
|
||||||
|
];
|
||||||
|
}
|
8
modules/home/python.nix
Normal file
8
modules/home/python.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(python3.withPackages (p: [
|
||||||
|
p.pytz
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
}
|
11
modules/home/rust.nix
Normal file
11
modules/home/rust.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
cargo
|
||||||
|
rustc
|
||||||
|
gcc
|
||||||
|
rustfmt
|
||||||
|
];
|
||||||
|
}
|
6
modules/home/ssh.nix
Normal file
6
modules/home/ssh.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
programs.ssh = {
|
||||||
|
enable = true;
|
||||||
|
forwardAgent = true;
|
||||||
|
};
|
||||||
|
}
|
63
modules/home/starship.nix
Normal file
63
modules/home/starship.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
add_newline = true;
|
||||||
|
scan_timeout = 10;
|
||||||
|
|
||||||
|
status = {
|
||||||
|
map_symbol = true;
|
||||||
|
pipestatus = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"$all"
|
||||||
|
"$line_break"
|
||||||
|
"$character"
|
||||||
|
];
|
||||||
|
|
||||||
|
character = {
|
||||||
|
success_symbol = " [λ](bold green)";
|
||||||
|
error_symbol = " [λ](bold red)";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix_shell.symbol = "❄️ ";
|
||||||
|
aws.disabled = true;
|
||||||
|
|
||||||
|
directory = {
|
||||||
|
style = "cyan";
|
||||||
|
read_only = " 🔒";
|
||||||
|
};
|
||||||
|
|
||||||
|
battery = {
|
||||||
|
charging_symbol = "⚡️";
|
||||||
|
display = [
|
||||||
|
{
|
||||||
|
threshold = 10;
|
||||||
|
style = "bold red";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
cmd_duration.show_notifications = true;
|
||||||
|
|
||||||
|
git_metrics = {
|
||||||
|
format = "[+$added]($added_style)/[-$deleted]($deleted_style)";
|
||||||
|
};
|
||||||
|
|
||||||
|
git_status = {
|
||||||
|
ahead = ''⇡''${count}'';
|
||||||
|
diverged = ''⇕⇡''${ahead_count}⇣''${behind_count}'';
|
||||||
|
behind = ''⇣''${count}'';
|
||||||
|
};
|
||||||
|
|
||||||
|
shlvl = {
|
||||||
|
symbol = "↕ ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
modules/home/stylix.nix
Normal file
23
modules/home/stylix.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
sizes = {
|
||||||
|
desktop = 12;
|
||||||
|
applications = 12;
|
||||||
|
terminal = 12;
|
||||||
|
popups = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
opacity = {
|
||||||
|
terminal = 0.9;
|
||||||
|
applications = 0.9;
|
||||||
|
popups = 0.9;
|
||||||
|
desktop = 0.9;
|
||||||
|
};
|
||||||
|
|
||||||
|
targets.gnome.enable = true;
|
||||||
|
};
|
||||||
|
}
|
6
modules/home/xdg.nix
Normal file
6
modules/home/xdg.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
xdg.userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
};
|
||||||
|
}
|
70
modules/home/zsh.nix
Normal file
70
modules/home/zsh.nix
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
home.file.".config/btop/themes/catppuccin.theme" = {
|
||||||
|
source = builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/catppuccin/btop/main/themes/catppuccin_mocha.theme";
|
||||||
|
sha256 = "0i263xwkkv8zgr71w13dnq6cv10bkiya7b06yqgjqa6skfmnjx2c";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh =
|
||||||
|
let
|
||||||
|
mkZshPlugin =
|
||||||
|
{ pkg
|
||||||
|
, file ? "${pkg.pname}.plugin.zsh"
|
||||||
|
,
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
name = pkg.pname;
|
||||||
|
inherit (pkg) src;
|
||||||
|
inherit file;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
enable = lib.mkForce true;
|
||||||
|
autocd = true;
|
||||||
|
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
enableVteIntegration = true;
|
||||||
|
|
||||||
|
plugins = with pkgs; [
|
||||||
|
(mkZshPlugin { pkg = zsh-z; })
|
||||||
|
(mkZshPlugin { pkg = zsh-abbr; })
|
||||||
|
(mkZshPlugin { pkg = zsh-fzf-tab; })
|
||||||
|
(mkZshPlugin { pkg = zsh-autoenv; })
|
||||||
|
(mkZshPlugin { pkg = zsh-autopair; })
|
||||||
|
(mkZshPlugin { pkg = zsh-nix-shell; })
|
||||||
|
(mkZshPlugin { pkg = zsh-completions; })
|
||||||
|
(mkZshPlugin { pkg = zsh-you-should-use; })
|
||||||
|
(mkZshPlugin { pkg = zsh-autosuggestions; })
|
||||||
|
(mkZshPlugin { pkg = zsh-navigation-tools; })
|
||||||
|
(mkZshPlugin { pkg = zsh-fzf-history-search; })
|
||||||
|
(mkZshPlugin { pkg = zsh-fast-syntax-highlighting; })
|
||||||
|
(mkZshPlugin { pkg = zsh-history-substring-search; })
|
||||||
|
];
|
||||||
|
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
"direnv"
|
||||||
|
"git"
|
||||||
|
"golang"
|
||||||
|
"httpie"
|
||||||
|
"pass"
|
||||||
|
"ssh-agent"
|
||||||
|
"systemd"
|
||||||
|
"terraform"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
history = {
|
||||||
|
extended = true;
|
||||||
|
ignoreDups = true;
|
||||||
|
expireDuplicatesFirst = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
11
modules/neovim/autocmd.nix
Normal file
11
modules/neovim/autocmd.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.autoCmd = [
|
||||||
|
{
|
||||||
|
event = [ "TextYankPost" ];
|
||||||
|
pattern = "*";
|
||||||
|
callback = {
|
||||||
|
__raw = "function() vim.highlight.on_yank() end";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
42
modules/neovim/completion.nix
Normal file
42
modules/neovim/completion.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
# enable vscode snippets
|
||||||
|
friendly-snippets.enable = true;
|
||||||
|
luasnip = {
|
||||||
|
enable = true;
|
||||||
|
fromVscode = [{ }];
|
||||||
|
};
|
||||||
|
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
autoEnableSources = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{ name = "nvim_lsp"; }
|
||||||
|
{ name = "path"; }
|
||||||
|
{ name = "buffer"; }
|
||||||
|
{ name = "luasnip"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
formatting.fields = [
|
||||||
|
"kind"
|
||||||
|
"abbr"
|
||||||
|
"menu"
|
||||||
|
];
|
||||||
|
|
||||||
|
snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
|
||||||
|
|
||||||
|
mapping = {
|
||||||
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
|
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
|
"<C-e>" = "cmp.mapping.close()";
|
||||||
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||||
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
33
modules/neovim/debugger.nix
Normal file
33
modules/neovim/debugger.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins.dap = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
signs = {
|
||||||
|
dapBreakpoint = {
|
||||||
|
text = "●";
|
||||||
|
texthl = "DapBreakpoint";
|
||||||
|
};
|
||||||
|
|
||||||
|
dapBreakpointCondition = {
|
||||||
|
text = "●";
|
||||||
|
texthl = "DapBreakpointCondition";
|
||||||
|
};
|
||||||
|
|
||||||
|
dapLogPoint = {
|
||||||
|
text = "◆";
|
||||||
|
texthl = "DapLogPoint";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extensions = {
|
||||||
|
dap-python.enable = true;
|
||||||
|
dap-ui = {
|
||||||
|
enable = true;
|
||||||
|
floating.mappings = {
|
||||||
|
close = [ "<ESC>" "q" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
dap-virtual-text.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
90
modules/neovim/default.nix
Normal file
90
modules/neovim/default.nix
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
#./keymaps.nix
|
||||||
|
./lsp.nix
|
||||||
|
./format.nix
|
||||||
|
./options.nix
|
||||||
|
./autocmd.nix
|
||||||
|
./completion.nix
|
||||||
|
./debugger.nix
|
||||||
|
./term.nix
|
||||||
|
./surround.nix
|
||||||
|
./git.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
bufferline.enable = true;
|
||||||
|
comment.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
edgy.enable = true;
|
||||||
|
headlines.enable = true;
|
||||||
|
indent-blankline.enable = true;
|
||||||
|
lualine.enable = true;
|
||||||
|
markdown-preview.enable = true;
|
||||||
|
navic.enable = true;
|
||||||
|
nix.enable = true;
|
||||||
|
nvim-autopairs.enable = true;
|
||||||
|
oil.enable = true;
|
||||||
|
persistence.enable = true;
|
||||||
|
scope.enable = true;
|
||||||
|
transparent.enable = true;
|
||||||
|
treesitter-textobjects.enable = true;
|
||||||
|
treesitter.enable = true;
|
||||||
|
trouble.enable = true;
|
||||||
|
which-key.enable = true;
|
||||||
|
|
||||||
|
lint = {
|
||||||
|
enable = true;
|
||||||
|
lintersByFt = {
|
||||||
|
text = [ "vale" ];
|
||||||
|
json = [ "jsonlint" ];
|
||||||
|
markdown = [ "vale" ];
|
||||||
|
rst = [ "vale" ];
|
||||||
|
terraform = [ "tflint" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
notify = {
|
||||||
|
enable = true;
|
||||||
|
fps = 60;
|
||||||
|
render = "default";
|
||||||
|
timeout = 500;
|
||||||
|
topDown = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
noice = {
|
||||||
|
enable = true;
|
||||||
|
presets = {
|
||||||
|
lsp_doc_border = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mini = {
|
||||||
|
enable = true;
|
||||||
|
modules = {
|
||||||
|
pairs = { };
|
||||||
|
ai = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
telescope = {
|
||||||
|
enable = true;
|
||||||
|
extensions = {
|
||||||
|
file-browser.enable = true;
|
||||||
|
fzf-native.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.defaults = {
|
||||||
|
layout_config.horizontal.prompt_position = "top";
|
||||||
|
sorting_strategy = "ascending";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
29
modules/neovim/format.nix
Normal file
29
modules/neovim/format.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
nixfmt-rfc-style
|
||||||
|
prettierd
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
notify_on_error = true;
|
||||||
|
|
||||||
|
formatters_by_ft = {
|
||||||
|
javascript = [ "prettierd" ];
|
||||||
|
typescript = [ "prettierd" ];
|
||||||
|
json = [ "prettierd" ];
|
||||||
|
yaml = [ "prettierd" ];
|
||||||
|
nix = [ "nixfmt" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
format_on_save = {
|
||||||
|
lspFallback = true;
|
||||||
|
timeoutMs = 500;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
32
modules/neovim/git.nix
Normal file
32
modules/neovim/git.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
gitsigns = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
signcolumn = true;
|
||||||
|
numhl = true;
|
||||||
|
current_line_blame = false;
|
||||||
|
current_line_blame_opts = {
|
||||||
|
delay = 0;
|
||||||
|
};
|
||||||
|
watch_gitdir.follow_files = true;
|
||||||
|
|
||||||
|
signs = {
|
||||||
|
add.text = "┃";
|
||||||
|
change.text = "┃";
|
||||||
|
changedelete.text = "┃";
|
||||||
|
delete.text = "┃";
|
||||||
|
topdelete.text = "┃";
|
||||||
|
untracked.text = "┆";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lazygit = {
|
||||||
|
enable = true;
|
||||||
|
gitPackage = null;
|
||||||
|
lazygitPackage = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
59
modules/neovim/keymaps.nix
Normal file
59
modules/neovim/keymaps.nix
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
let
|
||||||
|
bind = key: action: {
|
||||||
|
inherit key action;
|
||||||
|
options.silent = true;
|
||||||
|
};
|
||||||
|
nmap = key: action: bind key action // { mode = "n"; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
globals.mapleader = " ";
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
# quick commands
|
||||||
|
(bind ";" ":")
|
||||||
|
|
||||||
|
# navigation
|
||||||
|
(bind "H" "^")
|
||||||
|
(bind "L" "$")
|
||||||
|
(bind "K" "gg")
|
||||||
|
(bind "J" "G")
|
||||||
|
|
||||||
|
# surround
|
||||||
|
(nmap "s" "ys")
|
||||||
|
(nmap "S" "yS")
|
||||||
|
|
||||||
|
# delete and change
|
||||||
|
(nmap "dH" "d^")
|
||||||
|
(nmap "dL" "d$")
|
||||||
|
(nmap "cH" "c^")
|
||||||
|
(nmap "cL" "c$")
|
||||||
|
|
||||||
|
# redo
|
||||||
|
(nmap "U" "<c-r>")
|
||||||
|
|
||||||
|
# git
|
||||||
|
(nmap "<leader>g" ":LazyGit<cr>")
|
||||||
|
(nmap "<leader>B" ":Gitsigns toggle_current_line_blame<cr>")
|
||||||
|
(nmap "<leader>h" ":Gitsigns preview_hunk<cr>")
|
||||||
|
];
|
||||||
|
|
||||||
|
plugins.lsp.keymaps = {
|
||||||
|
silent = true;
|
||||||
|
diagnostic = {
|
||||||
|
"[d" = "goto_prev";
|
||||||
|
"]d" = "goto_next";
|
||||||
|
};
|
||||||
|
|
||||||
|
lspBuf = {
|
||||||
|
gd = "definition";
|
||||||
|
gr = "references";
|
||||||
|
gi = "implementation";
|
||||||
|
gt = "type_definition";
|
||||||
|
"<leader>a" = "code_action";
|
||||||
|
"<leader>k" = "hover";
|
||||||
|
"<leader>r" = "rename";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
42
modules/neovim/lsp.nix
Normal file
42
modules/neovim/lsp.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
_:
|
||||||
|
{
|
||||||
|
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
lspkind = {
|
||||||
|
enable = true;
|
||||||
|
cmp.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp-format.enable = true;
|
||||||
|
lsp-status.enable = true;
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
servers = {
|
||||||
|
#tsserver.enable = true;
|
||||||
|
tsserver.enable = true;
|
||||||
|
eslint.enable = true;
|
||||||
|
clangd.enable = true;
|
||||||
|
gopls.enable = true;
|
||||||
|
jsonls.enable = true;
|
||||||
|
jsonnet-ls.enable = true;
|
||||||
|
yamlls.enable = true;
|
||||||
|
html.enable = true;
|
||||||
|
|
||||||
|
nil-ls = {
|
||||||
|
enable = true;
|
||||||
|
settings.nix = {
|
||||||
|
#flake.autoEvalInputs = false;
|
||||||
|
maxMemoryMB = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
rust-analyzer = {
|
||||||
|
enable = true;
|
||||||
|
installCargo = false;
|
||||||
|
installRustc = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
43
modules/neovim/options.nix
Normal file
43
modules/neovim/options.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.opts = {
|
||||||
|
hlsearch = true;
|
||||||
|
wrap = false;
|
||||||
|
breakindent = true;
|
||||||
|
undofile = true;
|
||||||
|
updatetime = 250;
|
||||||
|
timeoutlen = 300;
|
||||||
|
completeopt = "menuone,noselect";
|
||||||
|
termguicolors = true;
|
||||||
|
|
||||||
|
|
||||||
|
# Line numbers
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
|
||||||
|
# Always show the signcolumn, otherwise text would be shifted when displaying error icons
|
||||||
|
signcolumn = "yes";
|
||||||
|
|
||||||
|
# Search
|
||||||
|
ignorecase = true;
|
||||||
|
smartcase = true;
|
||||||
|
|
||||||
|
# Tab defaults (might get overwritten by an LSP server)
|
||||||
|
tabstop = 4;
|
||||||
|
shiftwidth = 4;
|
||||||
|
softtabstop = 0;
|
||||||
|
expandtab = true;
|
||||||
|
smarttab = true;
|
||||||
|
|
||||||
|
# System clipboard support, needs xclip/wl-clipboard
|
||||||
|
clipboard = "unnamedplus";
|
||||||
|
|
||||||
|
# Highlight the current line
|
||||||
|
cursorline = true;
|
||||||
|
|
||||||
|
# Show line and column when searching
|
||||||
|
ruler = true;
|
||||||
|
|
||||||
|
# Global substitution by default
|
||||||
|
gdefault = true;
|
||||||
|
};
|
||||||
|
}
|
3
modules/neovim/surround.nix
Normal file
3
modules/neovim/surround.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins.surround.enable = true;
|
||||||
|
}
|
8
modules/neovim/term.nix
Normal file
8
modules/neovim/term.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins.toggleterm = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
size = 20;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
modules/nix.nix
Normal file
21
modules/nix.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nixVersions.git;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
accept-flake-config = true;
|
||||||
|
auto-optimise-store = true;
|
||||||
|
|
||||||
|
experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
40
modules/packages.nix
Normal file
40
modules/packages.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(pkgs.writeShellScriptBin "xdg-open" "exec -a $0 ${pkgs.wsl-open}/bin/wsl-open $@")
|
||||||
|
curl
|
||||||
|
ddrescue
|
||||||
|
direnv
|
||||||
|
dnsutils
|
||||||
|
git
|
||||||
|
gotop
|
||||||
|
gtop
|
||||||
|
htop
|
||||||
|
httpie
|
||||||
|
iftop
|
||||||
|
inetutils
|
||||||
|
iotop
|
||||||
|
ipcalc
|
||||||
|
jq
|
||||||
|
killall
|
||||||
|
lsof
|
||||||
|
mc
|
||||||
|
mtr
|
||||||
|
nmap
|
||||||
|
pstree
|
||||||
|
ranger
|
||||||
|
reptyr
|
||||||
|
ripgrep
|
||||||
|
screen
|
||||||
|
sshfs
|
||||||
|
sysstat
|
||||||
|
tree
|
||||||
|
tshark
|
||||||
|
via
|
||||||
|
wget
|
||||||
|
whois
|
||||||
|
xclip
|
||||||
|
yq
|
||||||
|
kitty
|
||||||
|
];
|
||||||
|
}
|
28
modules/podman.nix
Normal file
28
modules/podman.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
oci-containers.backend = "podman";
|
||||||
|
|
||||||
|
containers = {
|
||||||
|
enable = true;
|
||||||
|
registries.search = [
|
||||||
|
"docker.io"
|
||||||
|
"quay.io"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
autoPrune.enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
variables.PODMAN_IGNORE_CGROUPSV1_WARNING = "true";
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
docker-compose
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
26
modules/programs.nix
Normal file
26
modules/programs.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.nix-ld-rs;
|
||||||
|
};
|
||||||
|
|
||||||
|
neovim = {
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestions.enable = true;
|
||||||
|
interactiveShellInit = "source '${pkgs.grml-zsh-config}/etc/zsh/zshrc'";
|
||||||
|
};
|
||||||
|
|
||||||
|
wireshark = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.wireshark;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
modules/stylix.nix
Normal file
16
modules/stylix.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/material-palenight.yaml";
|
||||||
|
|
||||||
|
image = pkgs.fetchurl {
|
||||||
|
url = "https://media.githubusercontent.com/media/lovesegfault/nix-config/bda48ceaf8112a8b3a50da782bf2e65a2b5c4708/users/bemeurer/assets/walls/plants-00.jpg";
|
||||||
|
hash = "sha256-n8EQgzKEOIG6Qq7og7CNqMMFliWM5vfi2zNILdpmUfI=";
|
||||||
|
};
|
||||||
|
|
||||||
|
autoEnable = true;
|
||||||
|
polarity = lib.mkDefault "dark";
|
||||||
|
};
|
||||||
|
}
|
54
modules/users.nix
Normal file
54
modules/users.nix
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
{ lib
|
||||||
|
, pkgs
|
||||||
|
, config
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
users = {
|
||||||
|
groups.${config.wsl.defaultUser}.gid = config.users.users.${config.wsl.defaultUser}.uid;
|
||||||
|
users.${config.wsl.defaultUser} = {
|
||||||
|
isNormalUser = true;
|
||||||
|
uid = 1000;
|
||||||
|
group = config.wsl.defaultUser;
|
||||||
|
createHome = true;
|
||||||
|
extraGroups = [
|
||||||
|
"users"
|
||||||
|
"wheel"
|
||||||
|
"dialout"
|
||||||
|
];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB6vk3k1p6YMsGLFQ/xABLYK/VJicywkf1MJawnN7oXU"
|
||||||
|
];
|
||||||
|
shell = lib.mkIf config.programs.zsh.enable pkgs.zsh;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.${config.wsl.defaultUser} = {
|
||||||
|
imports = [ ./home ];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
username = config.wsl.defaultUser;
|
||||||
|
inherit (config.system) stateVersion;
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
MANPAGER = "nvim +Man!";
|
||||||
|
EDITOR = "nvim";
|
||||||
|
VISUAL = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
x = "${pkgs.yt-dlp}/bin/yt-dlp";
|
||||||
|
vip = "${pkgs.curl}/bin/curl -s https://am.i.mullvad.net/json | jq";
|
||||||
|
mip = "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @208.67.222.222 2>&1";
|
||||||
|
tp = "${pkgs.libressl}/bin/nc termbin.com 9999";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.settings.trusted-users = [ config.wsl.defaultUser ];
|
||||||
|
}
|
24
nix/devshell.nix
Normal file
24
nix/devshell.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
devShells = {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
packages = with pkgs; [
|
||||||
|
deadnix
|
||||||
|
git
|
||||||
|
git-lfs
|
||||||
|
ipcalc
|
||||||
|
nil
|
||||||
|
shellcheck
|
||||||
|
statix
|
||||||
|
treefmt
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
${config.pre-commit.installationScript}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
27
nix/pre-commit.nix
Normal file
27
nix/pre-commit.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = with inputs; [
|
||||||
|
git-hooks.flakeModule
|
||||||
|
];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
pre-commit = {
|
||||||
|
inherit pkgs;
|
||||||
|
check.enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
hooks = {
|
||||||
|
treefmt.enable = true;
|
||||||
|
nil.enable = true;
|
||||||
|
statix.enable = true;
|
||||||
|
deadnix.enable = true;
|
||||||
|
shellcheck.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
excludes = [ "flake.lock" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
nix/treefmt.nix
Normal file
23
nix/treefmt.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = with inputs; [
|
||||||
|
treefmt-nix.flakeModule
|
||||||
|
];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
formatter = config.treefmt.build.wrapper;
|
||||||
|
|
||||||
|
treefmt = {
|
||||||
|
projectRootFile = "flake.nix";
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
deadnix.enable = true;
|
||||||
|
deadnix.no-lambda-pattern-names = true;
|
||||||
|
statix.enable = true;
|
||||||
|
nixpkgs-fmt.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue