pushing for review
This commit is contained in:
parent
786ca732aa
commit
dd67b2592c
72 changed files with 1142 additions and 1447 deletions
4
TODO.md
4
TODO.md
|
|
@ -1,4 +0,0 @@
|
|||
# TODO:
|
||||
- [ ] Add biome support to helix
|
||||
- [ ] Add tailwind support to helix
|
||||
- [ ] Build built in devenvs with direnv
|
||||
36
extract.sh
36
extract.sh
|
|
@ -1,36 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
function extract {
|
||||
if [ -z "$1" ]; then
|
||||
# display usage if no parameters given
|
||||
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
|
||||
echo " extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
|
||||
else
|
||||
for n in "$@"
|
||||
do
|
||||
if [ -f "$n" ] ; then
|
||||
case "${n%,}" in
|
||||
*.tar.bz2|*.tar.gz|*.tar.xz|*.tbz2|*.tgz|*.txz|*.tar)
|
||||
tar xvf "$n" ;;
|
||||
*.lzma) unlzma ./"$n" ;;
|
||||
*.bz2) bunzip2 ./"$n" ;;
|
||||
*.rar) unrar x -ad ./"$n" ;;
|
||||
*.gz) gunzip ./"$n" ;;
|
||||
*.zip) unzip ./"$n" ;;
|
||||
*.z) uncompress ./"$n" ;;
|
||||
*.7z|*.arj|*.cab|*.chm|*.deb|*.dmg|*.iso|*.lzh|*.msi|*.rpm|*.udf|*.wim|*.xar)
|
||||
7z x ./"$n" ;;
|
||||
*.xz) unxz ./"$n" ;;
|
||||
*.exe) cabextract ./"$n" ;;
|
||||
*)
|
||||
echo "extract: '$n' - unknown archive method"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "'$n' - file does not exist"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
343
flake.lock
generated
343
flake.lock
generated
|
|
@ -8,11 +8,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701386725,
|
||||
"narHash": "sha256-w4aBlMYh9Y8co1V80m5LzEKMijUJ7CBTq209WbqVwUU=",
|
||||
"lastModified": 1711407199,
|
||||
"narHash": "sha256-A/nB4j3JHL51ztlMQdfKw6y8tUJJzai3bLsZUEEaBxY=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "8b9bad9b30bd7a9ed08782e64846b7485f9d0a38",
|
||||
"rev": "7e468a455506f2e65550e08dfd45092f0857a009",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -23,15 +23,15 @@
|
|||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"systems": "systems_2"
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700815693,
|
||||
"narHash": "sha256-JtKZEQUzosrCwDsLgm+g6aqbP1aseUl1334OShEAS3s=",
|
||||
"lastModified": 1711099426,
|
||||
"narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "7ad1c417c87e98e56dcef7ecd0e0a2f2e5669d51",
|
||||
"rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -47,11 +47,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679643957,
|
||||
"narHash": "sha256-umr+j/0b3DXQO4VnhRwAJYS0Y2fW64I+ydHnZqpN/Pc=",
|
||||
"lastModified": 1712612224,
|
||||
"narHash": "sha256-Tv4C8OSPVmm4LbpJGLFSODyvJy6DqrisEGPCQdNVOeY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "eb5def310c7331545e72090b4cda6cb0255b870d",
|
||||
"rev": "79eab0e82cb126bf4ac170f44af82479f0895ab5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -65,11 +65,11 @@
|
|||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698882062,
|
||||
"narHash": "sha256-HkhafUayIqxXyHH1X8d9RDl1M2CkFgZLjKD3MzabiEo=",
|
||||
"lastModified": 1709336216,
|
||||
"narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "8c9fa2545007b49a5db5f650ae91f227672c3877",
|
||||
"rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -78,6 +78,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -85,11 +103,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706981411,
|
||||
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
|
||||
"lastModified": 1712386041,
|
||||
"narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
|
||||
"rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -104,11 +122,11 @@
|
|||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701071203,
|
||||
"narHash": "sha256-lQywA7QU/vzTdZ1apI0PfgCWNyQobXUYghVrR5zuIeM=",
|
||||
"lastModified": 1711554349,
|
||||
"narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "db1878f013b52ba5e4034db7c1b63e8d04173a86",
|
||||
"rev": "179f6acaf7c068c7870542cdae72afec9427a5b0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -117,20 +135,79 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprcursor": {
|
||||
"inputs": {
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712434681,
|
||||
"narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprcursor_2": {
|
||||
"inputs": {
|
||||
"hyprlang": "hyprlang_2",
|
||||
"nixpkgs": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711035742,
|
||||
"narHash": "sha256-5vvhCSUGG9TA2G1eIRgokuYizhRnZu0ZbcU1MXfHsUE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "6a92473237f430399a417e1c2da9d7fcd4970086",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland": {
|
||||
"inputs": {
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprlang": "hyprlang",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems",
|
||||
"wlroots": "wlroots",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1692123043,
|
||||
"narHash": "sha256-6YoTjAZgtJb9OzKrZxtLxjfYiGWSqMmh1Wyh9dvwXn8=",
|
||||
"lastModified": 1712739000,
|
||||
"narHash": "sha256-nHx8lUK5hiiDlvFOmqwuh3bw9yCw9w5zR7gI2+pZMvk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "4986d74ef201171a930c312a8e3b72a22d9b84ee",
|
||||
"rev": "303b9956b2ae15508b09dffae602550ca17e6539",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -193,18 +270,20 @@
|
|||
},
|
||||
"hyprland_2": {
|
||||
"inputs": {
|
||||
"hyprcursor": "hyprcursor_2",
|
||||
"hyprland-protocols": "hyprland-protocols_2",
|
||||
"hyprlang": "hyprlang_3",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"systems": "systems_3",
|
||||
"systems": "systems_4",
|
||||
"wlroots": "wlroots_2",
|
||||
"xdph": "xdph_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701370414,
|
||||
"narHash": "sha256-Q7A8BWWS1YndiNaAKM0IP73SGKJiQDfOdZAIdTLGNj8=",
|
||||
"lastModified": 1711557008,
|
||||
"narHash": "sha256-fBrJJSRbeRf2lZUsaij96qhDX9JpDHF0uHD69Z6Ca/k=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "b394c1695c05cf3b2133a473aa459d4cd750911b",
|
||||
"rev": "93d05114716e847c37f49d3cc2d0c5cb01d06a24",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -213,13 +292,89 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711671891,
|
||||
"narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "c1402612146ba06606ebf64963a02bc1efe11e74",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
"hyprcursor",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709914708,
|
||||
"narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710960526,
|
||||
"narHash": "sha256-tt0UgVKWeLQ+tFzvqrm4uAZbzONwdGshpfiLHAQ1P2c=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "a2f39421144d42541c057be235154ce21b76c0f6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1679765008,
|
||||
"narHash": "sha256-VCkg/wC2e882suYDS5PDAemaMLYSOdFm4fsx2gowMR0=",
|
||||
"lastModified": 1712760404,
|
||||
"narHash": "sha256-4zhaEW1nB+nGbCNMjOggWeY5nXs/H0Y71q0+h+jdxoU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "f38f9a4c9b2b6f89a5778465e0afd166a8300680",
|
||||
"rev": "e1c4bac14beb8c409d0534382cf967171706b9d9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -231,11 +386,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1691654369,
|
||||
"narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=",
|
||||
"lastModified": 1712439257,
|
||||
"narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e",
|
||||
"rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -248,11 +403,11 @@
|
|||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"dir": "lib",
|
||||
"lastModified": 1698611440,
|
||||
"narHash": "sha256-jPjHjrerhYDy3q9+s5EAsuhyhuknNfowY6yt6pjn9pc=",
|
||||
"lastModified": 1709237383,
|
||||
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0cbe9f69c234a7700596e943bfae7ef27a31b735",
|
||||
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -265,27 +420,27 @@
|
|||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1679748960,
|
||||
"narHash": "sha256-BP8XcYHyj1NxQi04RpyNW8e7KiXSoI+Fy1tXIK2GfdA=",
|
||||
"lastModified": 1712437997,
|
||||
"narHash": "sha256-g0whLLwRvgO2FsyhY8fNk+TWenS3jg5UdlWL4uqgFeo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "da26ae9f6ce2c9ab380c0f394488892616fc5a6a",
|
||||
"rev": "e38d7cb66ea4f7a0eb6681920615dfcc30fc2920",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-22.11",
|
||||
"ref": "release-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1707650010,
|
||||
"narHash": "sha256-dOhphIA4MGrH4ElNCy/OlwmN24MsnEqFjRR6+RY7jZw=",
|
||||
"lastModified": 1712588820,
|
||||
"narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "809cca784b9f72a5ad4b991e0e7bcf8890f9c3a6",
|
||||
"rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -297,11 +452,11 @@
|
|||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1679734080,
|
||||
"narHash": "sha256-z846xfGLlon6t9lqUzlNtBOmsgQLQIZvR6Lt2dImk1M=",
|
||||
"lastModified": 1712420723,
|
||||
"narHash": "sha256-VnG0Eu394Ga2FCe8Q66m6OEQF8iAqjDYsjmtl+N2omk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dbf5322e93bcc6cfc52268367a8ad21c09d76fea",
|
||||
"rev": "9e7f26f82acb057498335362905fde6fea4ca50a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -313,11 +468,11 @@
|
|||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1677383253,
|
||||
"narHash": "sha256-UfpzWfSxkfXHnb4boXZNaKsAcUrZT9Hw+tao1oZxd08=",
|
||||
"lastModified": 1704161960,
|
||||
"narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9952d6bc395f5841262b006fbace8dd7e143b634",
|
||||
"rev": "63143ac2c9186be6d9da6035fa22620018c85932",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -329,11 +484,11 @@
|
|||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1700794826,
|
||||
"narHash": "sha256-RyJTnTNKhO0yqRpDISk03I/4A67/dp96YRxc86YOPgU=",
|
||||
"lastModified": 1710806803,
|
||||
"narHash": "sha256-qrxvLS888pNJFwJdK+hf1wpRCSQcqA6W5+Ox202NDa0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8",
|
||||
"rev": "b06025f1533a1e07b6db3e75151caa155d1c7eb3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -345,11 +500,11 @@
|
|||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1700612854,
|
||||
"narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=",
|
||||
"lastModified": 1711001935,
|
||||
"narHash": "sha256-URtGpHue7HHZK0mrHnSf8wJ6OmMKYSsoLmJybrOLFSQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614",
|
||||
"rev": "20f77aa09916374aa3141cbc605c955626762c9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -361,11 +516,11 @@
|
|||
},
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1701336116,
|
||||
"narHash": "sha256-kEmpezCR/FpITc6yMbAh4WrOCiT2zg5pSjnKrq51h5Y=",
|
||||
"lastModified": 1711401922,
|
||||
"narHash": "sha256-QoQqXoj8ClGo0sqD/qWKFWezgEwUL0SUh37/vY2jNhc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f5c27c6136db4d76c30e533c20517df6864c46ee",
|
||||
"rev": "07262b18b97000d16a4bdb003418bd2fb067a932",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -392,11 +547,11 @@
|
|||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679799335,
|
||||
"narHash": "sha256-YrnDyftm0Mk4JLuw3sDBPNfSjk054N0dqQx8FW4JqDM=",
|
||||
"lastModified": 1712617241,
|
||||
"narHash": "sha256-a4hbls4vlLRMciv62YrYT/Xs/3Cubce8WFHPUDWwzf8=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "4740f80ca6e756915aaaa0a9c5fbb61ba09cc145",
|
||||
"rev": "538c114cfdf1f0458f507087b1dcf018ce1c0c4c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -450,22 +605,37 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wlroots": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"lastModified": 1691073628,
|
||||
"narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=",
|
||||
"lastModified": 1709983277,
|
||||
"narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5",
|
||||
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5",
|
||||
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
|
|
@ -473,18 +643,18 @@
|
|||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"lastModified": 1701368958,
|
||||
"narHash": "sha256-7kvyoA91etzVEl9mkA/EJfB6z/PltxX7Xc4gcr7/xlo=",
|
||||
"lastModified": 1709983277,
|
||||
"narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "5d639394f3e83b01596dcd166a44a9a1a2583350",
|
||||
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.freedesktop.org",
|
||||
"owner": "wlroots",
|
||||
"repo": "wlroots",
|
||||
"rev": "5d639394f3e83b01596dcd166a44a9a1a2583350",
|
||||
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
|
|
@ -494,6 +664,10 @@
|
|||
"hyprland",
|
||||
"hyprland-protocols"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
|
|
@ -504,11 +678,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1691841170,
|
||||
"narHash": "sha256-RCTm1/MVWYPnReMgyp7tr2ogGYo/pvw38jZaFwemgPU=",
|
||||
"lastModified": 1709299639,
|
||||
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "57a3a41ba6b358109e4fc25c6a4706b5f7d93c6b",
|
||||
"rev": "2d2fb547178ec025da643db57d40a971507b82fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -524,6 +698,11 @@
|
|||
"hyprland",
|
||||
"hyprland-protocols"
|
||||
],
|
||||
"hyprlang": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"xremap",
|
||||
"hyprland",
|
||||
|
|
@ -536,11 +715,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700508250,
|
||||
"narHash": "sha256-X4o/mifI7Nhu0UKYlxx53wIC+gYDo3pVM9L2u3PE2bE=",
|
||||
"lastModified": 1709299639,
|
||||
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "eb120ff25265ecacd0fc13d7dab12131b60d0f47",
|
||||
"rev": "2d2fb547178ec025da643db57d40a971507b82fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -560,11 +739,11 @@
|
|||
"xremap": "xremap_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701816620,
|
||||
"narHash": "sha256-axgWrKpoV1T7KVbbT+3H/Q6mcBdUKylIz6ClFCMRxlA=",
|
||||
"lastModified": 1712025160,
|
||||
"narHash": "sha256-L96ZF1Z+OxAta5XPmazFajflppflYw/y588SBWVGjAw=",
|
||||
"owner": "xremap",
|
||||
"repo": "nix-flake",
|
||||
"rev": "5b264392686e6caee50c9b12cb290b7d0f23cf93",
|
||||
"rev": "38c9a3c4264750f77151369f34590db259454df3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -576,16 +755,16 @@
|
|||
"xremap_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1701234505,
|
||||
"narHash": "sha256-7k6GsKDUBvhKL9JU/QkWO+IHvhaty1udOYP8fXKr9QY=",
|
||||
"lastModified": 1711574442,
|
||||
"narHash": "sha256-RR8SgnlQX8Gz9qwO/wN5NvFWsEQ/vvNdmOxxFojri90=",
|
||||
"owner": "k0kubun",
|
||||
"repo": "xremap",
|
||||
"rev": "97268d1d92d94609daddff1230c4ca77d54a84dd",
|
||||
"rev": "53a6d0553d58b95777f066e4aeed05ec74c5eaed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "k0kubun",
|
||||
"ref": "v0.8.12",
|
||||
"ref": "v0.8.18",
|
||||
"repo": "xremap",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
|
|||
97
flake.nix
97
flake.nix
|
|
@ -16,88 +16,21 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
outputs = { self, nixpkgs, ... }@inputs: {
|
||||
|
||||
outputs = { self, home-manager, nixos-hardware, disko, nixpkgs, sops-nix, hyprland, xremap, ... }@inputs:
|
||||
let
|
||||
nixosConfigurations = {
|
||||
katana = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
# Define the system type
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
defaultPackage.system = home-manager.defaultPackage.x86_64-linux;
|
||||
defaultNixOptions = {
|
||||
nix.settings.auto-optimise-store = true;
|
||||
};
|
||||
mkComputer = configurationNix: userName: extraModules: extraHomeModules: inputs.nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit system inputs self pkgs nixos-hardware; };
|
||||
homeManagerModules.default = ./home_manager/home-manager.nix;
|
||||
# Define the modules for the configuration
|
||||
modules = [
|
||||
#Secrets management
|
||||
sops-nix.nixosModules.sops
|
||||
#Keybinding
|
||||
xremap.nixosModules.default
|
||||
#Machine config
|
||||
configurationNix
|
||||
defaultNixOptions
|
||||
|
||||
#User config
|
||||
(./. + "/users/${userName}")
|
||||
|
||||
#Home manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users."${userName}" = {
|
||||
imports = [ (./. + "/users/${userName}/home.nix") ] ++ extraHomeModules;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
] ++ extraModules;
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
katana = mkComputer
|
||||
./machines/katana.nix #machine specific configuration
|
||||
"speccon18" #default user
|
||||
[
|
||||
./modules/system/desktop-environments/tuigreet.nix
|
||||
./modules/system/desktop-environments/hyprland.nix
|
||||
./modules/system/desktop-environments/budgie.nix
|
||||
./modules/system/desktop-environments/gnome.nix
|
||||
./hosts/katana/default.nix
|
||||
./hosts/katana/bluetooth.nix
|
||||
./hosts/katana/networkd.nix
|
||||
./hosts/katana/system-pkgs.nix
|
||||
./modules/system/services/docker.nix
|
||||
./modules/system/services/openssh.nix
|
||||
# ./modules/system/services/syncthing.nix
|
||||
./modules/system/services/tailscale.nix
|
||||
./modules/system/nix-cli
|
||||
] #extra modules to be loaded by nixos
|
||||
[
|
||||
hyprland.homeManagerModules.default
|
||||
./modules/home-manager/hyprland.nix
|
||||
./modules/home-manager/helix.nix
|
||||
./modules/home-manager/alacritty.nix
|
||||
./modules/home-manager/vscode.nix
|
||||
./modules/home-manager/zsh.nix
|
||||
./modules/home-manager/git.nix
|
||||
./modules/home-manager/zoxide.nix
|
||||
./modules/home-manager/ncspot.nix
|
||||
./modules/home-manager/zellij.nix
|
||||
./modules/home-manager/direnv.nix
|
||||
./modules/home-manager/home-manager.nix
|
||||
./modules/home-manager/starship.nix
|
||||
./modules/home-manager/dconf-settings.nix
|
||||
./modules/home-manager/syncthing.nix
|
||||
./modules/home-manager/waybar.nix
|
||||
./modules/home-manager/rofi.nix
|
||||
]; #extra modules to be loaded by home-manager
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
# Your configuration modules here. Example:
|
||||
./hosts/katana.nix
|
||||
./nixosModules/default.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
|
||||
{
|
||||
# Sets the default version to track for system-pkgs
|
||||
system.stateVersion = "22.11";
|
||||
# Set the default timezone
|
||||
time.timeZone = lib.mkDefault "America/Detroit";
|
||||
# Allow non opensource software to be installed
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
# NixOS Settings
|
||||
nix = {
|
||||
# Sets flakes to unstable track instead of stable #
|
||||
package = pkgs.nixUnstable; # or versioned attributes like nix_2_4
|
||||
# Enable flakes and nix-command
|
||||
extraOptions = ''experimental-features = nix-command flakes'';
|
||||
# Auto maintainence
|
||||
settings.auto-optimise-store = lib.mkDefault true;
|
||||
# Prevent tampering of the pkgstore
|
||||
readOnlyStore = true;
|
||||
# Garbage collection
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
{
|
||||
networking = {
|
||||
hostName = "creatorforge"; # Define your hostname.
|
||||
useDHCP = lib.mkForce true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [];
|
||||
allowedUDPPorts = [];
|
||||
checkReversePath = "loose";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
ripgrep
|
||||
tree
|
||||
cargo
|
||||
feh
|
||||
unrar
|
||||
unzip
|
||||
gzip
|
||||
p7zip
|
||||
bzip2
|
||||
dconf2nix
|
||||
rustc
|
||||
bat
|
||||
exa
|
||||
mdbook
|
||||
uutils-coreutils
|
||||
htop
|
||||
zsh
|
||||
tailscale
|
||||
dig #dns lookup
|
||||
rage #file encryption
|
||||
age-plugin-yubikey #plugin for rage to manage yubi-2fa
|
||||
sops #file based secrets operations
|
||||
direnv #used for development environments
|
||||
python39
|
||||
];
|
||||
}
|
||||
145
hosts/katana.nix
Normal file
145
hosts/katana.nix
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
|
||||
{
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
# Hardware
|
||||
hardware = {
|
||||
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
pulseaudio.enable = false;
|
||||
bluetooth = {
|
||||
enable = true; # enables support for Bluetooth
|
||||
powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Boot
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
initrd = {
|
||||
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = [ ];
|
||||
# Prevent tampering of the pkgstore
|
||||
readOnlyNixStore = true;
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/55c746b3-b9dc-4c9b-ab56-de68a561f9a3";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/0C59-9996";
|
||||
fsType = "vfat";
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Networking
|
||||
networking = {
|
||||
hostName = "katana"; # Define your hostname.
|
||||
networkmanager.enable = true; #Enable Network Manager
|
||||
firewall = {
|
||||
checkReversePath = "loose";
|
||||
allowedTCPPorts = [ ];
|
||||
allowedUDPPorts = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
# Sound
|
||||
sound.enable = true;
|
||||
|
||||
# Localization
|
||||
time.timeZone = "America/Detroit";
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
# Services.
|
||||
services = {
|
||||
blueman.enable = true;
|
||||
printing.enable = true;
|
||||
xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
};
|
||||
};
|
||||
|
||||
# Package Manager
|
||||
nixpkgs = {
|
||||
config.allowUnfree = true;
|
||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
};
|
||||
|
||||
nix = {
|
||||
# Sets flakes to unstable track instead of stable #
|
||||
package = pkgs.nixUnstable; # or versioned attributes like nix_2_4
|
||||
# Enable flakes and nix-command
|
||||
extraOptions = ''experimental-features = nix-command flakes'';
|
||||
# Auto maintainence
|
||||
settings.auto-optimise-store = lib.mkDefault true;
|
||||
# Garbage collection
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gparted
|
||||
bluez
|
||||
blueman
|
||||
nerdfonts
|
||||
home-manager
|
||||
pkg-config
|
||||
ripgrep
|
||||
openssl
|
||||
tree
|
||||
eza
|
||||
htop
|
||||
zsh
|
||||
dig #dns lookup
|
||||
rage #file encryption
|
||||
age-plugin-yubikey #plugin for rage to manage yubi-2fa
|
||||
sops #file based secrets operations
|
||||
direnv #used for development environments
|
||||
gcc
|
||||
bottom
|
||||
felix-fm
|
||||
zulip
|
||||
vscode
|
||||
];
|
||||
|
||||
# Fonts
|
||||
fonts.packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "SourceCodePro" "DroidSansMono" ]; })
|
||||
];
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{config, pkgs, ... }:
|
||||
{
|
||||
hardware.bluetooth = {
|
||||
enable = true; # enables support for Bluetooth
|
||||
powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
settings = {
|
||||
General = {
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.blueman.enable = true;
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
|
||||
{
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
# Allow the use of unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Sound
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
# Localization
|
||||
time.timeZone = "America/Detroit";
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable Services.
|
||||
services = {
|
||||
printing.enable = true;
|
||||
xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
nix = {
|
||||
# Sets flakes to unstable track instead of stable #
|
||||
package = pkgs.nixUnstable; # or versioned attributes like nix_2_4
|
||||
# Enable flakes and nix-command
|
||||
extraOptions = ''experimental-features = nix-command flakes'';
|
||||
# Auto maintainence
|
||||
settings.auto-optimise-store = lib.mkDefault true;
|
||||
# Garbage collection
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
speccon18 = {
|
||||
desktop = {
|
||||
hyprland.enable = false;
|
||||
gnome.enable = false;
|
||||
budgie.enable = true;
|
||||
displayManager.tuigreet.enable = false;
|
||||
};
|
||||
};
|
||||
fonts.packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "SourceCodePro" "DroidSansMono" ]; })
|
||||
];
|
||||
}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
|
||||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
|
||||
{
|
||||
networking = {
|
||||
hostName = "katana"; # Define your hostname.
|
||||
networkmanager.enable = true; #Enable Network Manager
|
||||
firewall = {
|
||||
checkReversePath = "loose";
|
||||
allowedTCPPorts = [8081];
|
||||
allowedUDPPorts = [
|
||||
8081
|
||||
2053
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
gparted
|
||||
bluez
|
||||
blueman
|
||||
nerdfonts
|
||||
home-manager
|
||||
pkg-config
|
||||
ripgrep
|
||||
openssl
|
||||
tree
|
||||
eza
|
||||
htop
|
||||
zsh
|
||||
dig #dns lookup
|
||||
rage #file encryption
|
||||
age-plugin-yubikey #plugin for rage to manage yubi-2fa
|
||||
sops #file based secrets operations
|
||||
direnv #used for development environments
|
||||
python311Packages.pip
|
||||
python311
|
||||
python311Packages.pygithub
|
||||
gcc
|
||||
bottom
|
||||
felix-fm
|
||||
gitui
|
||||
spotify
|
||||
zulip
|
||||
vscode
|
||||
pkgs.python311Packages.python-kasa
|
||||
];
|
||||
}
|
||||
20
install.sh
20
install.sh
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ $# -ne 3 ]; then
|
||||
echo \
|
||||
"Usage:
|
||||
\$1 Disko Partiton Scheme
|
||||
- This pulls from existing paritions located in ./modules/disko/ inside the repo
|
||||
\$2 Disk to Partition
|
||||
- This script can and will destro data, please do be careful
|
||||
\$3 Target system flake
|
||||
- These can be found via running nix show.
|
||||
"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
nix-env -iA nixos.git
|
||||
git clone https://git.skdevstudios.cloud/specCon18/nixos-config.git
|
||||
sudo nix run github:nix-community/disko -- --mode zap_create_mount /modules/disko/"$1" --arg disks '[ "'"$2"'" ]'
|
||||
nixos-generate-config --no-filesystems --root /mnt
|
||||
nixos-install --flake ./#"$3"
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, disko, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
|
||||
kernelModules = [ "dm-snapshot" ];
|
||||
luks.devices = {
|
||||
crypted = {
|
||||
device = "/dev/nvme0n1p3";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
kernelParams = [ "acpi_osi=linux" ];
|
||||
extraModulePackages = [ ];
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
disko.devices = import ../modules/system/disko/luks-lvm.nix {
|
||||
disks = [ "/dev/nvme0n1" ];
|
||||
};
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
initrd = {
|
||||
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = [ ];
|
||||
# Prevent tampering of the pkgstore
|
||||
readOnlyNixStore = true;
|
||||
};
|
||||
nix = {
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/55c746b3-b9dc-4c9b-ab56-de68a561f9a3";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/0C59-9996";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
{config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
system.stateVersion = "22.11";
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/40fe3178-6ec1-450f-93fd-c359f2f3daf9";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
# This helps stay in step with genertator due to being in vm
|
||||
boot = {
|
||||
growPartition = true;
|
||||
kernelParams = [ "console=ttyS0" ];
|
||||
initrd = {
|
||||
availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "virtio_blk" ];
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
};
|
||||
extraModulePackages = [ ];
|
||||
loader = {
|
||||
grub = {
|
||||
device = "/dev/vda";
|
||||
};
|
||||
timeout = 0;
|
||||
};
|
||||
};
|
||||
services.qemuGuest.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/mutter" = {
|
||||
attach-modal-dialogs = true;
|
||||
dynamic-workspaces = true;
|
||||
edge-tiling = false;
|
||||
experimental-features = [ "scale-monitor-framebuffer" ];
|
||||
focus-change-on-pointer-rest = true;
|
||||
workspaces-only-on-primary = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "specCon18";
|
||||
userEmail = "steven.carpenter@skdevstudios.com";
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,143 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nodePackages_latest.yaml-language-server
|
||||
nodePackages_latest.bash-language-server
|
||||
nodePackages_latest.vscode-langservers-extracted
|
||||
nodePackages_latest.dockerfile-language-server-nodejs
|
||||
nodePackages_latest.typescript
|
||||
nodePackages_latest.typescript-language-server
|
||||
nodePackages_latest.svelte-language-server
|
||||
nodePackages_latest.vls
|
||||
python311Packages.python-lsp-server
|
||||
rnix-lsp
|
||||
rust-analyzer
|
||||
taplo
|
||||
];
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "monokai_pro_octagon";
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
shell = ["zsh" "-c"];
|
||||
completion-trigger-len = 0;
|
||||
scroll-lines = 1;
|
||||
scrolloff = 5;
|
||||
cursorline = true;
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
color-modes = true;
|
||||
indent-guides.render = true;
|
||||
file-picker.hidden = false;
|
||||
auto-pairs = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
display-messages = true;
|
||||
auto-signature-help = true;
|
||||
display-signature-help-docs = true;
|
||||
snippets = true;
|
||||
goto-reference-include-declaration = true;
|
||||
};
|
||||
statusline = {
|
||||
mode = {
|
||||
normal = "NORMAL";
|
||||
insert = "INSERT";
|
||||
select = "SELECT";
|
||||
};
|
||||
left = [ "mode" "separator" "spinner" "separator" "file-name" ];
|
||||
right = [ "diagnostics" "position" "file-encoding" ];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
themes = {
|
||||
monokai_pro_octagon = let
|
||||
red = "#ff657a";
|
||||
orange = "#ff9b5e";
|
||||
yellow = "#ffd76d";
|
||||
green = "#bad761";
|
||||
blue = "#9cd1bb";
|
||||
purple = "#c39ac9";
|
||||
base0 = "#161821";
|
||||
base1 = "#1e1f2b";
|
||||
base2 = "#282a3a";
|
||||
base3 = "#3a3d4b";
|
||||
base4 = "#535763";
|
||||
base5 = "#696d77";
|
||||
base6 = "#767b81";
|
||||
base7 = "#b2b9bd";
|
||||
base8 = "#eaf2f1";
|
||||
base8x0c = "#303342";
|
||||
in {
|
||||
"ui.linenr.selected" = { bg = base3; };
|
||||
"ui.text.focus" = { fg = yellow; modifiers = ["bold"]; };
|
||||
"ui.menu" = { fg = base8; bg = base3; };
|
||||
"ui.menu.selected" = { fg = base2; bg = yellow; };
|
||||
"ui.virtual.whitespace" = base5;
|
||||
"ui.virtual.ruler" = { bg = base1; };
|
||||
"info" = base8;
|
||||
"hint" = base8;
|
||||
"ui.background" = {};
|
||||
"ui.statusline.inactive" = { fg = base8; bg = base8x0c; };
|
||||
"ui.statusline" = { fg = base8; bg = base4; };
|
||||
"ui.statusline.normal" = { fg = base4; bg = blue; };
|
||||
"ui.statusline.insert" = { fg = base4; bg = green; };
|
||||
"ui.statusline.select" = { fg = base4; bg = purple; };
|
||||
"ui.popup" = { bg = base3; };
|
||||
"ui.window" = { bg = base3; };
|
||||
"ui.help" = { fg = base8; bg = base3; };
|
||||
"ui.selection" = { bg = base4; };
|
||||
"ui.cursor.match" = { bg = base4; };
|
||||
"ui.cursorline" = { bg = base1; };
|
||||
"comment" = { fg = base5; modifiers = ["italic"]; };
|
||||
"ui.linenr" = { fg = base5; };
|
||||
"ui.cursor.primary" = { fg = base7; modifiers = ["reversed"]; };
|
||||
"attribute" = blue;
|
||||
"variable" = base8;
|
||||
"constant" = orange;
|
||||
"variable.builtin" = red;
|
||||
"constant.builtin" = red;
|
||||
"namespace" = base8;
|
||||
"ui.text" = { fg = base8; };
|
||||
"punctuation" = base6;
|
||||
"type" = green;
|
||||
"type.builtin" = { fg = red; };
|
||||
"label" = base8;
|
||||
"constructor" = blue;
|
||||
"function" = green;
|
||||
"function.macro" = { fg = blue; };
|
||||
"function.builtin" = { fg = "cyan"; };
|
||||
"operator" = red;
|
||||
"variable.other.member" = base8;
|
||||
"keyword" = { fg = red; };
|
||||
"keyword.directive" = blue;
|
||||
"variable.parameter" = "#f59762";
|
||||
"error" = red;
|
||||
"special" = "#f59762";
|
||||
"module" = "#f59762";
|
||||
"warning" = "orange";
|
||||
"constant.character.escape" = { fg = base8; };
|
||||
"string" = yellow;
|
||||
"constant.numeric" = purple;
|
||||
"diff.plus" = green;
|
||||
"diff.delta" = "orange";
|
||||
"diff.minus" = red;
|
||||
"diagnostic.warning" = { underline = { color = "orange"; style = "curl"; }; };
|
||||
"diagnostic.error" = { underline = { color = red; style = "curl"; }; };
|
||||
"diagnostic.info" = { underline = { color = base8; style = "curl"; }; };
|
||||
"diagnostic.hint" = { underline = { color = base8; style = "curl"; }; };
|
||||
"markup.heading" = green;
|
||||
"markup.bold" = { fg = "orange"; modifiers = ["bold"]; };
|
||||
"markup.italic" = { fg = "orange"; modifiers = ["italic"]; };
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"]; };
|
||||
"markup.link.url" = { fg = "orange"; modifiers = ["underlined"]; };
|
||||
"markup.link.text" = yellow;
|
||||
"markup.quote" = green;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.home-manager = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
# systemdIntegration = true;
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
$mainMod = SUPER
|
||||
# Application Lauch Keybinds
|
||||
bind = $mainMod, Return, exec, alacritty
|
||||
bind = $mainMod, W, exec, firefox
|
||||
bind = $mainMod, R, exec, rofi -show drun
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png
|
||||
|
||||
# Startup Runners
|
||||
exec-once=systemctl --user start waybar.service
|
||||
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once=mako
|
||||
exec-once = swww init
|
||||
monitor=,highres,auto,1
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.ncspot = {
|
||||
enable = true;
|
||||
package = pkgs.ncspot;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
theme = "android_notification";
|
||||
location = "top-left";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
tray.enable = false;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = false;
|
||||
package = pkgs.vscode.fhs;
|
||||
enableExtensionUpdateCheck = true;
|
||||
enableUpdateCheck = false;
|
||||
userSettings = {
|
||||
"workbench.colorTheme" = "Monokai Pro (Filter Octagon)";
|
||||
"workbench.startupEditor" = "none";
|
||||
"workbench.iconTheme" = "Monokai Pro Icons";
|
||||
"git.autofetch" = true;
|
||||
"redhat.telemetry.enabled" = false;
|
||||
"svelte.enable-ts-plugin" = true;
|
||||
"window.menuBarVisibility" = "compact";
|
||||
"prettier.singleQuote" = true;
|
||||
"prettier.useTabs" = true;
|
||||
"prettier.bracketSpacing" = false;
|
||||
"prettier.htmlWhitespaceSensitivity" = "strict";
|
||||
"typescript.updateImportsOnFileMove.enabled" = "always";
|
||||
"editor.fontFamily" = "OpenDyslexic, OpenDyslexic Mono NF";
|
||||
"rust-analyzer.inlayHints.chainingHints.enable" = false;
|
||||
"rust-analyzer.inlayHints.closingBraceHints.enable" = false;
|
||||
"rust-analyzer.inlayHints.renderColons" = false;
|
||||
"rust-analyzer.inlayHints.parameterHints.enable" = false;
|
||||
"editor.minimap.enabled" = false;
|
||||
"editor.inlineSuggest.enabled" = true;
|
||||
"window.zoomLevel" = 1;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "hyprland-session.target";
|
||||
};
|
||||
settings = {
|
||||
main_bar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 40;
|
||||
spacing = 8;
|
||||
modules-left = [
|
||||
"battery"
|
||||
];
|
||||
modules-center = [
|
||||
"temperature"
|
||||
];
|
||||
modules-right = [
|
||||
"backlight"
|
||||
"cpu"
|
||||
"memory"
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"clock"
|
||||
];
|
||||
keyboard-state = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
format = "{name} {icon}";
|
||||
format-icons = {
|
||||
locked = "";
|
||||
unlocked = "";
|
||||
};
|
||||
};
|
||||
clock = {
|
||||
timezone = "America/Detroit";
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = "{:%d-%m-%Y}";
|
||||
};
|
||||
cpu = {
|
||||
format = "{usage}% ";
|
||||
tooltip = false;
|
||||
};
|
||||
memory = {
|
||||
format = "{}% ";
|
||||
};
|
||||
temperature = {
|
||||
thermal-zone = 2;
|
||||
hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
|
||||
critical-threshold = 80;
|
||||
format-critical = "{temperatureC}°C {icon}";
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = ["" "" ""];
|
||||
};
|
||||
backlight = {
|
||||
format = "{percent} {icon}";
|
||||
format-icons = ["" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-alt = "{time} {icon}";
|
||||
format-good = "";
|
||||
format-full = "";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
"battery#bat2" = {
|
||||
bat = "BAT";
|
||||
};
|
||||
network = {
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-ethernet = "{ipaddr}/{cidr} ";
|
||||
tooltip-format = "{ifname} via {gwaddr} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
pulseaudio = {
|
||||
scroll-step = 1;
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = "{icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = builtins.readFile ./style.css;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
package = pkgs.zellij;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = lib.mkDefault true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
programs.zsh = {
|
||||
enable = lib.mkDefault true;
|
||||
dotDir = ".config/zsh";
|
||||
history = {
|
||||
path = "$ZDOTDIR/.zsh_history";
|
||||
save = 10000000;
|
||||
};
|
||||
enableAutosuggestions = lib.mkDefault true;
|
||||
enableCompletion = lib.mkDefault true;
|
||||
syntaxHighlighting.enable = lib.mkDefault true;
|
||||
shellAliases = {
|
||||
ls = "eza -l";
|
||||
lsa = "eza -al";
|
||||
grep = "rg";
|
||||
osrb = "sudo nixos-rebuild $1 --flake ~/code/nixos-config/#katana";
|
||||
};
|
||||
localVariables = {
|
||||
EDITOR="hx";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.speccon18.desktop.budgie;
|
||||
in {
|
||||
options.speccon18.desktop.budgie = {
|
||||
enable = mkEnableOption "enables specs custom budgie setup";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.budgie.enable = true;
|
||||
displayManager.lightdm.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.speccon18.desktop.gnome;
|
||||
in {
|
||||
options.speccon18.desktop.gnome = {
|
||||
enable = mkEnableOption "enables specs custom gnome setup";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
# Gnome extensions
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
|
||||
services = {
|
||||
gnome = {
|
||||
core-utilities.enable = false;
|
||||
gnome-keyring.enable = true;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
defaultSession = lib.mkDefault "budgie-desktop";
|
||||
};
|
||||
desktopManager = {
|
||||
xterm.enable = false;
|
||||
# gnome.enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
xwayland.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
xdg = {
|
||||
portal = { enable = lib.mkDefault true; };
|
||||
mime.defaultApplications = {
|
||||
"text/markdown" = "hx";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
{ config, pkgs, lib, ...}:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf;
|
||||
cfg = config.speccon18.desktop.hyprland;
|
||||
in {
|
||||
options.speccon18.desktop.hyprland = {
|
||||
enable = mkEnableOption "enables specs custom hyprland setup";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
nvidiaPatches = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
# libsForQt5.polkit-kde-agent
|
||||
libsForQt5.qt5.qtwayland
|
||||
qt6.full
|
||||
qt6.qtwayland
|
||||
waybar
|
||||
swww
|
||||
pw-volume
|
||||
rofi-wayland
|
||||
libnotify
|
||||
mako
|
||||
hyprland
|
||||
font-awesome
|
||||
brightnessctl
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
];
|
||||
sessionVariables = {
|
||||
#Enable Wayland
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
GTK_USE_PORTAL = "1";
|
||||
NIXOS_XDG_OPEN_USE_PORTAL = "1";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
|
||||
# XDG_Config
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_CACHE_HOME = "\${HOME}/.cache";
|
||||
XDG_CONFIG_HOME = "\${HOME}/.config";
|
||||
XDG_BIN_HOME = "\${HOME}/.local/bin";
|
||||
XDG_DATA_HOME = "\${HOME}/.local/share";
|
||||
|
||||
#Default Applications
|
||||
BROWSER = "firefox";
|
||||
TERMINAL = "alacritty";
|
||||
};
|
||||
};
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
];
|
||||
};
|
||||
hardware = {
|
||||
opengl.enable = true;
|
||||
nvidia.modesetting.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
{ disks ? [ "/dev/nvme0n1" ], ... }: {
|
||||
disk = {
|
||||
disk-0 = {
|
||||
type = "disk";
|
||||
device = builtins.elemAt disks 0;
|
||||
content = {
|
||||
type = "table";
|
||||
format = "gpt";
|
||||
partitions = [
|
||||
{
|
||||
type = "partition";
|
||||
name = "ESP";
|
||||
start = "1MiB";
|
||||
end = "2g";
|
||||
bootable = true;
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "swap";
|
||||
type = "partition";
|
||||
start = "2G";
|
||||
end = "40G";
|
||||
part-type = "primary";
|
||||
content = {
|
||||
type = "swap";
|
||||
randomEncryption = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "partition";
|
||||
name = "luks";
|
||||
start = "40G";
|
||||
end = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "crypted";
|
||||
extraOpenArgs = [ "--allow-discards" ];
|
||||
content = {
|
||||
type = "lvm_pv";
|
||||
vg = "pool";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
lvm_vg = {
|
||||
pool = {
|
||||
type = "lvm_vg";
|
||||
lvs = {
|
||||
root = {
|
||||
type = "lvm_lv";
|
||||
size = "128G";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "ext4";
|
||||
mountpoint = "/";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
};
|
||||
home = {
|
||||
type = "lvm_lv";
|
||||
size = "25G";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "ext4";
|
||||
mountpoint = "/home";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
# To use this feature add -j0 to any nix commad.
|
||||
hostName = "10.18.1.60";
|
||||
pubKey = "bob:Ome3wEzBur1kOkifxu9ZMbfhwLgvr5J8qfOZRDdvz3Q=";
|
||||
in {
|
||||
nix = {
|
||||
distributedBuilds = false;
|
||||
settings = {
|
||||
trusted-public-keys = lib.mkAfter [
|
||||
pubKey
|
||||
];
|
||||
builders-use-substitutes = true;
|
||||
# substituters = lib.mkAfter [
|
||||
# "ssh-ng://nix-ssh@${hostname}"
|
||||
# ];
|
||||
# allowed-users = [
|
||||
# "@wheel"
|
||||
# "@builders"
|
||||
# ];
|
||||
# trusted-users = [
|
||||
# "root"
|
||||
# "nix-ssh"
|
||||
# ];
|
||||
};
|
||||
# buildMachines = [
|
||||
# {
|
||||
# inherit hostName;
|
||||
# protocol = "ssh-ng";
|
||||
# maxJobs = 8;
|
||||
# systems = [
|
||||
# "x86_64-linux"
|
||||
# "i686-linux"
|
||||
# ];
|
||||
# supportedFeatures = [
|
||||
# "big-parallel"
|
||||
# "nixos-test"
|
||||
# "kvm"
|
||||
# "benchmark"
|
||||
# ];
|
||||
# sshUser = "builder";
|
||||
# sshKey = "/root/.ssh/id_ed25519";
|
||||
# # publicHostKey =
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# powertop
|
||||
# tlp
|
||||
|
||||
];
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
liveRestore = false;
|
||||
autoPrune.enable = true;
|
||||
};
|
||||
|
||||
# But allow docker containers to access the local machine
|
||||
networking.firewall.trustedInterfaces = [ "docker0" ];
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
services.openssh = lib.mkDefault {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
startWhenNeeded = true;
|
||||
settings = {
|
||||
KexAlgorithms = [ "curve25519-sha256@libssh.org" ];
|
||||
PermitRootLogin = "no";
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
};
|
||||
};
|
||||
security.pam = lib.mkDefault {
|
||||
enableSSHAgentAuth = true;
|
||||
services.sudo.sshAgentAuth = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
# https://nixos.wiki/wiki/PipeWire
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
pipewire
|
||||
wireplumber
|
||||
];
|
||||
# rtkit is optional but recommended
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# # {config, lib, pkgs, modulesPath, ... }:
|
||||
# {
|
||||
# services.syncthing = {
|
||||
# enable = true;
|
||||
# dataDir = "/home/speccon18";
|
||||
# openDefaultPorts = true;
|
||||
# configDir = "/home/speccon18/.config/syncthing";
|
||||
# user = "speccon18";
|
||||
# group = "users";
|
||||
# guiAddress = "0.0.0.0:8384";
|
||||
# overrideDevices = true;
|
||||
# overrideFolders = true;
|
||||
# devices = {
|
||||
# "syncthing_server" = { id = "N3UGNP6-ZU6JHBX-WNJDEUF-FV5DOWA-VAGFDYN-FIIMFRR-C3HGQHU-WOEIUQ6"; };
|
||||
# };
|
||||
# extraOptions.gui = {
|
||||
# user = "admin";
|
||||
# password = "Strife-Rerun-Lily-Pushover-Alongside-Raider0-Freebase";
|
||||
# };
|
||||
# };
|
||||
# }
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# make the tailscale command usable to users
|
||||
environment.systemPackages = with pkgs;[
|
||||
pkgs.tailscale
|
||||
];
|
||||
|
||||
# enable the tailscale service
|
||||
services.tailscale.enable = true;
|
||||
}
|
||||
7
nixosModules/default.nix
Normal file
7
nixosModules/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{pkgs, lib, ... }: {
|
||||
imports = [
|
||||
./users/default.nix
|
||||
./services/default.nix
|
||||
./desktop_environments/default.nix
|
||||
];
|
||||
}
|
||||
12
nixosModules/desktop_environments/budgie.nix
Normal file
12
nixosModules/desktop_environments/budgie.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ config, pkgs, lib, ...}:
|
||||
{
|
||||
options.speccon18.desktop.budgie.enable = lib.mkEnableOption "enables specs custom budgie setup";
|
||||
|
||||
config = lib.mkIf config.speccon18.desktop.budgie.enable {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager.budgie.enable = true;
|
||||
displayManager.lightdm.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
13
nixosModules/desktop_environments/default.nix
Normal file
13
nixosModules/desktop_environments/default.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{pkgs,config,...}:
|
||||
{
|
||||
imports = [
|
||||
./budgie.nix
|
||||
./gnome.nix
|
||||
./hyprland.nix
|
||||
./tuigreet.nix
|
||||
];
|
||||
speccon18.desktop.budgie.enable = true;
|
||||
speccon18.desktop.gnome.enable = false;
|
||||
speccon18.desktop.hyprland.enable = false;
|
||||
speccon18.desktop.displayManager.tuigreet.enable = false;
|
||||
}
|
||||
58
nixosModules/desktop_environments/gnome.nix
Normal file
58
nixosModules/desktop_environments/gnome.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
options.speccon18.desktop.gnome.enable = lib.mkEnableOption "enables specs custom gnome setup";
|
||||
|
||||
config = lib.mkIf config.speccon18.desktop.gnome.enable {
|
||||
Dconf settings
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/mutter" = {
|
||||
attach-modal-dialogs = true;
|
||||
dynamic-workspaces = true;
|
||||
edge-tiling = false;
|
||||
experimental-features = [ "scale-monitor-framebuffer" ];
|
||||
focus-change-on-pointer-rest = true;
|
||||
workspaces-only-on-primary = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
Gnome extensions
|
||||
environment.systemPackages = with pkgs; [ ];
|
||||
|
||||
services = {
|
||||
gnome = {
|
||||
core-utilities.enable = false;
|
||||
gnome-keyring.enable = true;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
defaultSession = lib.mkDefault "budgie-desktop";
|
||||
};
|
||||
desktopManager = {
|
||||
xterm.enable = false;
|
||||
# gnome.enable = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
xwayland.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
xdg = {
|
||||
portal = { enable = lib.mkDefault true; };
|
||||
mime.defaultApplications = {
|
||||
"text/markdown" = "hx";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
108
nixosModules/desktop_environments/hyprland.nix
Normal file
108
nixosModules/desktop_environments/hyprland.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
{ config, pkgs, lib, ...}:
|
||||
{
|
||||
options.speccon18.desktop.hyprland.enable = lib.mkEnableOption "enables specs custom hyprland setup";
|
||||
config = lib.mkIf config.speccon18.desktop.hyprland.enable {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
nvidiaPatches = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
# libsForQt5.polkit-kde-agent
|
||||
libsForQt5.qt5.qtwayland
|
||||
qt6.full
|
||||
qt6.qtwayland
|
||||
waybar
|
||||
swww
|
||||
pw-volume
|
||||
rofi-wayland
|
||||
libnotify
|
||||
mako
|
||||
hyprland
|
||||
font-awesome
|
||||
brightnessctl
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
];
|
||||
sessionVariables = {
|
||||
#Enable Wayland
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
GTK_USE_PORTAL = "1";
|
||||
NIXOS_XDG_OPEN_USE_PORTAL = "1";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
|
||||
# XDG_Config
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_CACHE_HOME = "\${HOME}/.cache";
|
||||
XDG_CONFIG_HOME = "\${HOME}/.config";
|
||||
XDG_BIN_HOME = "\${HOME}/.local/bin";
|
||||
XDG_DATA_HOME = "\${HOME}/.local/share";
|
||||
|
||||
#Default Applications
|
||||
BROWSER = "firefox";
|
||||
TERMINAL = "alacritty";
|
||||
};
|
||||
};
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
];
|
||||
};
|
||||
hardware = {
|
||||
opengl.enable = true;
|
||||
nvidia.modesetting.enable = true;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
# systemdIntegration = true;
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
$mainMod = SUPER
|
||||
# Application Lauch Keybinds
|
||||
bind = $mainMod, Return, exec, alacritty
|
||||
bind = $mainMod, W, exec, firefox
|
||||
bind = $mainMod, R, exec, rofi -show drun
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png
|
||||
|
||||
# Startup Runners
|
||||
exec-once=systemctl --user start waybar.service
|
||||
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once=mako
|
||||
exec-once = swww init
|
||||
monitor=,highres,auto,1
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.alacritty.enable = lib.mkEnableOption "enables specs custom alacritty config";
|
||||
config = lib.mkIf config.speccon18.home_manager.alacritty.enable {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
@ -69,4 +71,5 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
29
nixosModules/home_manager/default.nix
Normal file
29
nixosModules/home_manager/default.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{pkgs,config,...}:{
|
||||
imports = [
|
||||
./zsh.nix
|
||||
./alacritty.nix
|
||||
./direnv.nix
|
||||
./git.nix
|
||||
./helix.nix
|
||||
./ncspot.nix
|
||||
./rofi.nix
|
||||
./starship.nix
|
||||
./syncthing.nix
|
||||
./waybar.nix
|
||||
./zellij.nix
|
||||
./zoxide.nix
|
||||
];
|
||||
speccon18.home_manager.home-manager.enable = true;
|
||||
speccon18.home_manager.zsh.enable = true;
|
||||
speccon18.home_manager.alacritty.enable = false;
|
||||
speccon18.home_manager.direnv.enable = true;
|
||||
speccon18.home_manager.git.enable = true;
|
||||
speccon18.home_manager.helix.enable = true;
|
||||
speccon18.home_manager.ncspot.enable = true;
|
||||
speccon18.home_manager.rofi.enable = false;
|
||||
speccon18.home_manager.starship.enable = true;
|
||||
speccon18.home_manager.syncthing.enable = false;
|
||||
speccon18.home_manager.waybar.enable = false;
|
||||
speccon18.home_manager.zellij.enable = true;
|
||||
speccon18.home_manager.zoxide.enable = true;
|
||||
}
|
||||
10
nixosModules/home_manager/direnv.nix
Normal file
10
nixosModules/home_manager/direnv.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.direnv.enable = lib.mkEnableOption "enables direnv with zsh integration";
|
||||
config = lib.mkIf config.speccon18.home_manager.direnv.enable {
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
}
|
||||
15
nixosModules/home_manager/git.nix
Normal file
15
nixosModules/home_manager/git.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{pkgs, config, lib, ...}:{
|
||||
options.speccon18.home_manager.git.enable = lib.mkEnableOption "enables specs personal git preferences";
|
||||
config = lib.mkIf config.speccon18.home_manager.git.enable {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "specCon18";
|
||||
userEmail = "steven.carpenter@skdevstudios.com";
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
146
nixosModules/home_manager/helix.nix
Normal file
146
nixosModules/home_manager/helix.nix
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.helix.enable = lib.mkEnableOption "enables specs custom helix configuration";
|
||||
config = lib.mkIf config.speccon18.home_manager.helix.enable {
|
||||
home.packages = with pkgs; [
|
||||
nodePackages_latest.yaml-language-server
|
||||
nodePackages_latest.bash-language-server
|
||||
nodePackages_latest.vscode-langservers-extracted
|
||||
nodePackages_latest.dockerfile-language-server-nodejs
|
||||
nodePackages_latest.typescript
|
||||
nodePackages_latest.typescript-language-server
|
||||
nodePackages_latest.svelte-language-server
|
||||
nodePackages_latest.vls
|
||||
python311Packages.python-lsp-server
|
||||
rnix-lsp
|
||||
rust-analyzer
|
||||
taplo
|
||||
];
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "monokai_pro_octagon";
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
shell = ["zsh" "-c"];
|
||||
completion-trigger-len = 0;
|
||||
scroll-lines = 1;
|
||||
scrolloff = 5;
|
||||
cursorline = true;
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
color-modes = true;
|
||||
indent-guides.render = true;
|
||||
file-picker.hidden = false;
|
||||
auto-pairs = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
display-messages = true;
|
||||
auto-signature-help = true;
|
||||
display-signature-help-docs = true;
|
||||
snippets = true;
|
||||
goto-reference-include-declaration = true;
|
||||
};
|
||||
statusline = {
|
||||
mode = {
|
||||
normal = "NORMAL";
|
||||
insert = "INSERT";
|
||||
select = "SELECT";
|
||||
};
|
||||
left = [ "mode" "separator" "spinner" "separator" "file-name" ];
|
||||
right = [ "diagnostics" "position" "file-encoding" ];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
themes = {
|
||||
monokai_pro_octagon = let
|
||||
red = "#ff657a";
|
||||
orange = "#ff9b5e";
|
||||
yellow = "#ffd76d";
|
||||
green = "#bad761";
|
||||
blue = "#9cd1bb";
|
||||
purple = "#c39ac9";
|
||||
base0 = "#161821";
|
||||
base1 = "#1e1f2b";
|
||||
base2 = "#282a3a";
|
||||
base3 = "#3a3d4b";
|
||||
base4 = "#535763";
|
||||
base5 = "#696d77";
|
||||
base6 = "#767b81";
|
||||
base7 = "#b2b9bd";
|
||||
base8 = "#eaf2f1";
|
||||
base8x0c = "#303342";
|
||||
in {
|
||||
"ui.linenr.selected" = { bg = base3; };
|
||||
"ui.text.focus" = { fg = yellow; modifiers = ["bold"]; };
|
||||
"ui.menu" = { fg = base8; bg = base3; };
|
||||
"ui.menu.selected" = { fg = base2; bg = yellow; };
|
||||
"ui.virtual.whitespace" = base5;
|
||||
"ui.virtual.ruler" = { bg = base1; };
|
||||
"info" = base8;
|
||||
"hint" = base8;
|
||||
"ui.background" = {};
|
||||
"ui.statusline.inactive" = { fg = base8; bg = base8x0c; };
|
||||
"ui.statusline" = { fg = base8; bg = base4; };
|
||||
"ui.statusline.normal" = { fg = base4; bg = blue; };
|
||||
"ui.statusline.insert" = { fg = base4; bg = green; };
|
||||
"ui.statusline.select" = { fg = base4; bg = purple; };
|
||||
"ui.popup" = { bg = base3; };
|
||||
"ui.window" = { bg = base3; };
|
||||
"ui.help" = { fg = base8; bg = base3; };
|
||||
"ui.selection" = { bg = base4; };
|
||||
"ui.cursor.match" = { bg = base4; };
|
||||
"ui.cursorline" = { bg = base1; };
|
||||
"comment" = { fg = base5; modifiers = ["italic"]; };
|
||||
"ui.linenr" = { fg = base5; };
|
||||
"ui.cursor.primary" = { fg = base7; modifiers = ["reversed"]; };
|
||||
"attribute" = blue;
|
||||
"variable" = base8;
|
||||
"constant" = orange;
|
||||
"variable.builtin" = red;
|
||||
"constant.builtin" = red;
|
||||
"namespace" = base8;
|
||||
"ui.text" = { fg = base8; };
|
||||
"punctuation" = base6;
|
||||
"type" = green;
|
||||
"type.builtin" = { fg = red; };
|
||||
"label" = base8;
|
||||
"constructor" = blue;
|
||||
"function" = green;
|
||||
"function.macro" = { fg = blue; };
|
||||
"function.builtin" = { fg = "cyan"; };
|
||||
"operator" = red;
|
||||
"variable.other.member" = base8;
|
||||
"keyword" = { fg = red; };
|
||||
"keyword.directive" = blue;
|
||||
"variable.parameter" = "#f59762";
|
||||
"error" = red;
|
||||
"special" = "#f59762";
|
||||
"module" = "#f59762";
|
||||
"warning" = "orange";
|
||||
"constant.character.escape" = { fg = base8; };
|
||||
"string" = yellow;
|
||||
"constant.numeric" = purple;
|
||||
"diff.plus" = green;
|
||||
"diff.delta" = "orange";
|
||||
"diff.minus" = red;
|
||||
"diagnostic.warning" = { underline = { color = "orange"; style = "curl"; }; };
|
||||
"diagnostic.error" = { underline = { color = red; style = "curl"; }; };
|
||||
"diagnostic.info" = { underline = { color = base8; style = "curl"; }; };
|
||||
"diagnostic.hint" = { underline = { color = base8; style = "curl"; }; };
|
||||
"markup.heading" = green;
|
||||
"markup.bold" = { fg = "orange"; modifiers = ["bold"]; };
|
||||
"markup.italic" = { fg = "orange"; modifiers = ["italic"]; };
|
||||
"markup.strikethrough" = { modifiers = ["crossed_out"]; };
|
||||
"markup.link.url" = { fg = "orange"; modifiers = ["underlined"]; };
|
||||
"markup.link.text" = yellow;
|
||||
"markup.quote" = green;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
nixosModules/home_manager/home-mananger.nix
Normal file
9
nixosModules/home_manager/home-mananger.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.home-manager.enable = lib.mkEnableOption "enable home manager";
|
||||
config = lib.mkIf config.speccon18.home_manager.home-manager.enable = true {
|
||||
programs.home-manager = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
10
nixosModules/home_manager/ncspot.nix
Normal file
10
nixosModules/home_manager/ncspot.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.ncspot.enable = lib.mkEnableOption "enable ncspot";
|
||||
config = lib.mkIf config.speccon18.home_manager.ncspot.enable {
|
||||
programs.ncspot = {
|
||||
enable = true;
|
||||
package = pkgs.ncspot;
|
||||
};
|
||||
};
|
||||
}
|
||||
11
nixosModules/home_manager/rofi.nix
Normal file
11
nixosModules/home_manager/rofi.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.rofi.enable = lib.mkEnableOption "enable specs custom rofi config for hyprland";
|
||||
config = lib.mkIf config.speccon18.home_manager.rofi.enable {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
theme = "android_notification";
|
||||
location = "top-left";
|
||||
};
|
||||
};
|
||||
}
|
||||
10
nixosModules/home_manager/starship.nix
Normal file
10
nixosModules/home_manager/starship.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.enable = lib.mkEnableOption "enables specs custom starship config";
|
||||
config = lib.mkIf config.speccon18.home_manager.enable {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
10
nixosModules/home_manager/syncthing.nix
Normal file
10
nixosModules/home_manager/syncthing.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
options.speccon18.home_manager.syncthing.enable = lib.mkEnableOption "enable syncthing";
|
||||
config = lib.mkIf config.speccon18.home_manager.syncthing.enable {
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
tray.enable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
124
nixosModules/home_manager/waybar.nix
Normal file
124
nixosModules/home_manager/waybar.nix
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.waybar.enable = lib.mkEnableOption "enable specs custom waybar for hyprland";
|
||||
config = lib.mkIf config.speccon18.home_manager.waybar.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "hyprland-session.target";
|
||||
};
|
||||
settings = {
|
||||
main_bar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 40;
|
||||
spacing = 8;
|
||||
modules-left = [
|
||||
"battery"
|
||||
];
|
||||
modules-center = [
|
||||
"temperature"
|
||||
];
|
||||
modules-right = [
|
||||
"backlight"
|
||||
"cpu"
|
||||
"memory"
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"clock"
|
||||
];
|
||||
keyboard-state = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
format = "{name} {icon}";
|
||||
format-icons = {
|
||||
locked = "";
|
||||
unlocked = "";
|
||||
};
|
||||
};
|
||||
clock = {
|
||||
timezone = "America/Detroit";
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = "{:%d-%m-%Y}";
|
||||
};
|
||||
cpu = {
|
||||
format = "{usage}% ";
|
||||
tooltip = false;
|
||||
};
|
||||
memory = {
|
||||
format = "{}% ";
|
||||
};
|
||||
temperature = {
|
||||
thermal-zone = 2;
|
||||
hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
|
||||
critical-threshold = 80;
|
||||
format-critical = "{temperatureC}°C {icon}";
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = ["" "" ""];
|
||||
};
|
||||
backlight = {
|
||||
format = "{percent} {icon}";
|
||||
format-icons = ["" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-alt = "{time} {icon}";
|
||||
format-good = "";
|
||||
format-full = "";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
"battery#bat2" = {
|
||||
bat = "BAT";
|
||||
};
|
||||
network = {
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-ethernet = "{ipaddr}/{cidr} ";
|
||||
tooltip-format = "{ifname} via {gwaddr} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
pulseaudio = {
|
||||
scroll-step = 1;
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = "{icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = builtins.readFile ./style.css;
|
||||
};
|
||||
};
|
||||
}
|
||||
10
nixosModules/home_manager/zellij.nix
Normal file
10
nixosModules/home_manager/zellij.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{pkgs,config,lib,...}:
|
||||
{
|
||||
options.speccon18.home_manager.zellij.enable = lib.mkEnableOption "enable zellij";
|
||||
config = lib.mkIf config.speccon18.home_manager.zellij.enable {
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
package = pkgs.zellij;
|
||||
};
|
||||
};
|
||||
}
|
||||
10
nixosModules/home_manager/zoxide.nix
Normal file
10
nixosModules/home_manager/zoxide.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{pkgs,config,lib,...}:
|
||||
{
|
||||
options.speccon18.home_manager.zoxide.enable = lib.mkEnableOption "";
|
||||
config = lib.mkIf config.speccon18.home_manager.zoxide.enable {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = lib.mkDefault true;
|
||||
};
|
||||
};
|
||||
}
|
||||
26
nixosModules/home_manager/zsh.nix
Normal file
26
nixosModules/home_manager/zsh.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
{
|
||||
options.speccon18.home_manager.zsh.enable = lib.mkEnableOption "enables specs zsh config";
|
||||
config = lib.mkIf config.speccon18.home_manager.zsh.enable {
|
||||
programs.zsh = {
|
||||
enable = lib.mkDefault true;
|
||||
dotDir = ".config/zsh";
|
||||
history = {
|
||||
path = "$ZDOTDIR/.zsh_history";
|
||||
save = 10000000;
|
||||
};
|
||||
enableAutosuggestions = lib.mkDefault true;
|
||||
enableCompletion = lib.mkDefault true;
|
||||
syntaxHighlighting.enable = lib.mkDefault true;
|
||||
shellAliases = {
|
||||
ls = "eza -l";
|
||||
lsa = "eza -al";
|
||||
grep = "rg";
|
||||
osrb = "sudo nixos-rebuild $1 --flake ~/code/nixos-config/#katana";
|
||||
};
|
||||
localVariables = {
|
||||
EDITOR="hx";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
nixosModules/services/default.nix
Normal file
9
nixosModules/services/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{pkgs,config,...}:{
|
||||
imports = [
|
||||
./tailscale.nix
|
||||
./pipewire.nix
|
||||
];
|
||||
|
||||
speccon18.tailscale.enable = true;
|
||||
speccon18.sound.pipewire.enable = true;
|
||||
}
|
||||
23
nixosModules/services/pipewire.nix
Normal file
23
nixosModules/services/pipewire.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# https://nixos.wiki/wiki/PipeWire
|
||||
{pkgs,config,lib, ...}:
|
||||
{
|
||||
options.speccon18.sound.pipewire.enable = lib.mkEnableOption "enable pipewire with jack integrations";
|
||||
|
||||
config = lib.mkIf config.speccon18.sound.pipewire.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
pipewire
|
||||
wireplumber
|
||||
];
|
||||
# rtkit is optional but recommended
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
13
nixosModules/services/tailscale.nix
Normal file
13
nixosModules/services/tailscale.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
|
||||
options.speccon18.tailscale.enable = lib.mkEnableOption "enables the tailscale service and sets the package to use";
|
||||
|
||||
config = lib.mkIf config.speccon18.tailscale.enable {
|
||||
# make the tailscale command usable to users
|
||||
environment.systemPackages = with pkgs;[
|
||||
pkgs.tailscale
|
||||
];
|
||||
# enable the tailscale service
|
||||
services.tailscale.enable = true;
|
||||
};
|
||||
}
|
||||
7
nixosModules/users/default.nix
Normal file
7
nixosModules/users/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{pkgs, lib, ...}: {
|
||||
imports = [
|
||||
./speccon18.nix
|
||||
];
|
||||
speccon18.enable = true;
|
||||
speccon18.home_manager.enable = true;
|
||||
}
|
||||
48
nixosModules/users/speccon18.nix
Normal file
48
nixosModules/users/speccon18.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{pkgs, lib, config, ... }: {
|
||||
|
||||
#Create new nixos options
|
||||
options = {
|
||||
speccon18.enable = lib.mkEnableOption "enables the speccon18 administrator user";
|
||||
speccon18.home_manager.enable = lib.mkEnableOption "enables home-manager support for the speccon18 administrator user";
|
||||
};
|
||||
|
||||
#Declare already defined nixos options and enable if the above mkEnable options parameter is ture
|
||||
config = lib.mkIf config.speccon18.enable {
|
||||
programs.zsh.enable = true;
|
||||
users.users.speccon18 = {
|
||||
shell = pkgs.zsh;
|
||||
isNormalUser = true;
|
||||
initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23";
|
||||
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIrZpH5QV62dtTb2yx5I3PF2lJyNpPkV57pDlo6xawID" ];
|
||||
description = "Steven Carpenter";
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
home = lib.mkIf config.speccon18.home_manager.enable {
|
||||
username = "speccon18";
|
||||
homeDirectory = "/home/speccon18";
|
||||
|
||||
# This value determines the Home Manager release that your
|
||||
# configuration is compatible with. This helps avoid breakage
|
||||
# when a new Home Manager release introduces backwards
|
||||
# incompatible changes.
|
||||
#
|
||||
# You can update Home Manager without changing this value. See
|
||||
# the Home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
stateVersion = "22.11";
|
||||
packages = with pkgs; [
|
||||
freecad
|
||||
calibre
|
||||
bitwarden
|
||||
firefox
|
||||
discord
|
||||
gimp
|
||||
obsidian
|
||||
neofetch
|
||||
vlc
|
||||
remmina
|
||||
];
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
0
todo.md
Normal file
0
todo.md
Normal file
|
|
@ -1,12 +0,0 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
users.users.arouzing = {
|
||||
isNormalUser = true;
|
||||
initialHashedPassword = "$6$tucSnzN8mqHQo/Fd$Q/RtaTpoXN0xnlLAFy6ohWWYuTYd54CXaCrocV1vgFRQVuONga1LyzwdJ0vXa.NT6MRcO7IXNQ3YeURJsSdP61";
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAGm66rJsr8vjRCYDkH4lEPncPq27o6BHzpmRmkzOiM"
|
||||
];
|
||||
description = "admin";
|
||||
extraGroups = [ "wheel" "docker" ];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
programs.zsh.enable = true;
|
||||
users.users.speccon18 = {
|
||||
shell = pkgs.zsh;
|
||||
isNormalUser = true;
|
||||
initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23";
|
||||
openssh.authorizedKeys.keys = [
|
||||
];
|
||||
description = "Steven Carpenter";
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
};
|
||||
services.xremap = {
|
||||
withWlroots = true;
|
||||
userName = "speccon18";
|
||||
config = {
|
||||
keymap = [
|
||||
{
|
||||
name = "Global";
|
||||
remap = {
|
||||
"CapsLock" = "Esc";
|
||||
"Print" = {
|
||||
launch = [ "zsh" "-c" "grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g $(slurp) -t png" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
{
|
||||
home = {
|
||||
username = "speccon18";
|
||||
homeDirectory = "/home/speccon18";
|
||||
|
||||
# This value determines the Home Manager release that your
|
||||
# configuration is compatible with. This helps avoid breakage
|
||||
# when a new Home Manager release introduces backwards
|
||||
# incompatible changes.
|
||||
#
|
||||
# You can update Home Manager without changing this value. See
|
||||
# the Home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
stateVersion = "22.11";
|
||||
|
||||
packages = with pkgs; [
|
||||
freecad
|
||||
calibre
|
||||
bitwarden
|
||||
firefox
|
||||
discord
|
||||
gimp
|
||||
# obsidian
|
||||
neofetch
|
||||
vlc
|
||||
remmina
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue