pushing for review

This commit is contained in:
specCon18 2024-04-11 01:21:49 -04:00
parent 786ca732aa
commit dd67b2592c
72 changed files with 1142 additions and 1447 deletions

View file

@ -1,4 +0,0 @@
# TODO:
- [ ] Add biome support to helix
- [ ] Add tailwind support to helix
- [ ] Build built in devenvs with direnv

View file

@ -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
View file

@ -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"
}

View file

@ -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
];
};
};
};
}

View file

@ -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";
};
};
}

View file

@ -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";
};
};
}

View file

@ -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
View 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" ]; })
];
}

View file

@ -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;
}

View file

@ -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" ]; })
];
}

View file

@ -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
];
};
};
}

View file

@ -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
];
}

View file

@ -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"

View file

@ -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";
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
};
};
};
}

View file

@ -1,7 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.direnv = {
enable = true;
enableZshIntegration = lib.mkDefault true;
};
}

View file

@ -1,13 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.git = {
enable = true;
userName = "specCon18";
userEmail = "steven.carpenter@skdevstudios.com";
extraConfig = {
init = {
defaultBranch = "main";
};
};
};
}

View file

@ -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;
};
};
};
}

View file

@ -1,6 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.home-manager = {
enable = true;
};
}

View file

@ -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
'';
};
}

View file

@ -1,7 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.ncspot = {
enable = true;
package = pkgs.ncspot;
};
}

View file

@ -1,8 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.rofi = {
enable = true;
theme = "android_notification";
location = "top-left";
};
}

View file

@ -1,7 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.starship = {
enable = true;
enableZshIntegration = true;
};
}

View file

@ -1,7 +0,0 @@
{config, lib, pkgs, modulesPath, ... }:
{
services.syncthing = {
enable = true;
tray.enable = false;
};
}

View file

@ -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;
};
};
}

View file

@ -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;
};
}

View file

@ -1,7 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.zellij = {
enable = true;
package = pkgs.zellij;
};
}

View file

@ -1,7 +0,0 @@
{ pkgs, config, lib, ...}:
{
programs.zoxide = {
enable = true;
enableZshIntegration = lib.mkDefault true;
};
}

View file

@ -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";
};
};
}

View file

@ -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;
};
};
}

View file

@ -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";
};
};
};
}

View file

@ -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;
};
};
}

View file

@ -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";
};
};
};
};
};
}

View file

@ -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 =
# }
# ];
};
}

View file

@ -1,8 +0,0 @@
{ modulesPath, config, pkgs, lib, self, ... }:
{
environment.systemPackages = with pkgs; [
# powertop
# tlp
];
}

View file

@ -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" ];
}

View file

@ -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;
};
}

View file

@ -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;
};
}

View file

@ -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";
# };
# };
# }

View file

@ -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
View file

@ -0,0 +1,7 @@
{pkgs, lib, ... }: {
imports = [
./users/default.nix
./services/default.nix
./desktop_environments/default.nix
];
}

View 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;
};
};
}

View 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;
}

View 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";
};
};
};
}

View 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
'';
};
};
}

View file

@ -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 @@
};
};
};
};
}

View 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;
}

View 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;
};
};
}

View 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";
};
};
};
};
}

View 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;
};
};
};
};
}

View 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;
};
};
}

View 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;
};
};
}

View 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";
};
};
}

View 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;
};
};
}

View 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;
};
};
}

View 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;
};
};
}

View 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;
};
};
}

View 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;
};
};
}

View 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";
};
};
};
}

View file

@ -0,0 +1,9 @@
{pkgs,config,...}:{
imports = [
./tailscale.nix
./pipewire.nix
];
speccon18.tailscale.enable = true;
speccon18.sound.pipewire.enable = true;
}

View 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;
};
};
}

View 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;
};
}

View file

@ -0,0 +1,7 @@
{pkgs, lib, ...}: {
imports = [
./speccon18.nix
];
speccon18.enable = true;
speccon18.home_manager.enable = true;
}

View 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
View file

View 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" ];
};
}

View file

@ -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" ];
};
};
}
];
};
};
}

View file

@ -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
];
};
}