Compare commits
130 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
77535b4b42
|
|||
|
c96032611c
|
|||
| 37a7c39119 | |||
|
262dbf1251
|
|||
| e809186d9b | |||
| 6e5474da74 | |||
|
6e8d370a16
|
|||
|
9fca17e4a4
|
|||
|
e98d4893f7
|
|||
|
6214930d19
|
|||
|
fa802a3a50
|
|||
|
abf5c8e7a0
|
|||
|
910557e7ae
|
|||
| 1f93e32bc7 | |||
|
22bb58825f
|
|||
|
deec6c6001
|
|||
|
f294b93eb8
|
|||
| 53513f0dd0 | |||
|
43b5892c02
|
|||
|
d1d97fdac9
|
|||
|
f807d29276
|
|||
|
20c78889d3
|
|||
|
418e434610
|
|||
|
17ffc5ae8f
|
|||
|
bb6fbcb104
|
|||
|
fb6a6bd22d
|
|||
|
9535c156d8
|
|||
|
4a8b0c065a
|
|||
|
3227655e16
|
|||
|
433610c00d
|
|||
|
95b0bba0e9
|
|||
|
6f2169c9fc
|
|||
|
4f29ea3ac6
|
|||
|
d50ebe3ba0
|
|||
|
8f625f1906
|
|||
|
fb68a73b3d
|
|||
|
8928d49418
|
|||
|
3285043183
|
|||
|
e9b4e94faa
|
|||
|
2d17d4b3d5
|
|||
|
f180f098c3
|
|||
|
3f1bbc04a5
|
|||
|
722ae3f786
|
|||
|
234858f28b
|
|||
|
efe2c7cc0a
|
|||
|
e4aa64145c
|
|||
|
71e0a0240e
|
|||
|
94fb9894d8
|
|||
|
56e52e1d29
|
|||
|
eb9c5893ea
|
|||
|
c9526fc453
|
|||
|
cf30a00c81
|
|||
|
9e1e48c406
|
|||
|
172dc90e58
|
|||
|
4617841efd
|
|||
|
eaf9645e85
|
|||
|
7b01f7af91
|
|||
|
203302d0ea
|
|||
|
0e20523cf1
|
|||
|
fe22e065ba
|
|||
|
7e3e379ca5
|
|||
|
789901c5a9
|
|||
|
9e40d17e6d
|
|||
|
6c1ce398c5
|
|||
|
6168a3338a
|
|||
|
b1f97c096a
|
|||
|
d20d501788
|
|||
|
3cffe88036
|
|||
|
42715dd509
|
|||
|
dc18dfdb22
|
|||
|
095d65a285
|
|||
|
bb130a8d7c
|
|||
|
251fac1616
|
|||
|
fa8502004a
|
|||
|
8401e7c9da
|
|||
|
df349613c8
|
|||
|
7b37670baf
|
|||
|
c477f001ed
|
|||
|
4e41129ac3
|
|||
|
d05cabc53a
|
|||
|
10c6ff1c62
|
|||
|
7e96025555
|
|||
|
ec717948bd
|
|||
|
20a9354349
|
|||
|
fe0f530b3a
|
|||
|
cfad4af862
|
|||
|
c9206fe095
|
|||
|
9913fbbe27
|
|||
|
63c98366e7
|
|||
|
1213fd6343
|
|||
| b1a349b2f8 | |||
|
eb1d846c11
|
|||
|
6323c5eaca
|
|||
| e9769fd23f | |||
| e8508fbc73 | |||
| 3df4913796 | |||
|
2fac0e3705
|
|||
|
8e5e8f9a08
|
|||
|
7059b2162c
|
|||
|
7b36212651
|
|||
|
5cca008a30
|
|||
|
03583ad819
|
|||
|
5c904cdd30
|
|||
|
02eaaae4b1
|
|||
|
c2f99bc5ab
|
|||
|
0e54ecfac4
|
|||
|
4168b42081
|
|||
|
06cc1709f1
|
|||
|
d979f7daec
|
|||
|
f1187ceba7
|
|||
|
bd7415ce9c
|
|||
|
4793017722
|
|||
|
d93dd8a14e
|
|||
|
7c1253eeb5
|
|||
|
fa0d58aa6f
|
|||
|
52f599371c
|
|||
|
5f3a231a92
|
|||
|
8b8b4f9201
|
|||
|
2ac729b234
|
|||
|
740d1f02df
|
|||
|
5989f6c06d
|
|||
| 040d270eaf | |||
| 64e67a7e2e | |||
| 229850cc9e | |||
| a986cafdd9 | |||
| 014c19f30c | |||
| 78eaad45a5 | |||
| 01dd869d11 | |||
| 825752b89f | |||
| 593390725d |
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.webp filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
BIN
assets/eva-01.jpg
LFS
Normal file
BIN
assets/eva-01.jpg
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/BLEACHXSTUDIOGHIBLI.jpeg
LFS
Normal file
BIN
assets/pfp/BLEACHXSTUDIOGHIBLI.jpeg
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/BLEACHXSTUDIOGHIBLI.jpg
LFS
Normal file
BIN
assets/pfp/BLEACHXSTUDIOGHIBLI.jpg
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/Jiji.jpg
LFS
Normal file
BIN
assets/pfp/Jiji.jpg
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/jaUtSEI.jpg
LFS
Normal file
BIN
assets/pfp/jaUtSEI.jpg
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/jiro.jpg
LFS
Normal file
BIN
assets/pfp/jiro.jpg
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/neonNerv.png
LFS
Normal file
BIN
assets/pfp/neonNerv.png
LFS
Normal file
Binary file not shown.
BIN
assets/pfp/uptime-kuma.png
LFS
Normal file
BIN
assets/pfp/uptime-kuma.png
LFS
Normal file
Binary file not shown.
433
flake.lock
generated
433
flake.lock
generated
@@ -1,50 +1,13 @@
|
||||
{
|
||||
"nodes": {
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735644329,
|
||||
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"revCount": 57,
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"revCount": 69,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
@@ -52,6 +15,24 @@
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760948891,
|
||||
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
@@ -59,11 +40,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735774679,
|
||||
"narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=",
|
||||
"lastModified": 1763759067,
|
||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66",
|
||||
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -72,111 +53,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ghostty": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"zig": "zig"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736005074,
|
||||
"narHash": "sha256-6W7Cg4Lf0/gT4r/Bloj9lwxKw+Txti3Bw1ybrEpn0CA=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "8f5f432ab61fa73b77cb61239c0cff34250f77bb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"nixvim",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735882644,
|
||||
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -184,196 +60,190 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735344290,
|
||||
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
|
||||
"lastModified": 1764866045,
|
||||
"narHash": "sha256-0GsEtXV9OquDQ1VclQfP16cU5VZh7NEVIOjSH4UaJuM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
|
||||
"rev": "f63d0fe9d81d36e5fc95497217a72e02b8b7bcab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"ref": "release-25.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"home-manager-unstable": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
"nixpkgs-unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735344290,
|
||||
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
|
||||
"lastModified": 1764998300,
|
||||
"narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
|
||||
"rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ixx": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nuschtosSearch",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729958008,
|
||||
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.0.6",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
"nixpkgs-unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735956190,
|
||||
"narHash": "sha256-svzx3yVXD5tbBJZCn3Lt1RriH8GHo6CyVUPTHejf7sU=",
|
||||
"owner": "lnl7",
|
||||
"lastModified": 1765065051,
|
||||
"narHash": "sha256-b7W9WsvyMOkUScNxbzS45KEJp0iiqRPyJ1I3JBE+oEE=",
|
||||
"owner": "nix-darwin",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "3feaf376d75d3d58ebf7e9a4f584d00628548ad9",
|
||||
"rev": "7e22bf538aa3e0937effcb1cee73d5f1bcc26f79",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"owner": "nix-darwin",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-snapd": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761703712,
|
||||
"narHash": "sha256-OKuNVXmHuZ0zi8T0aGWrBJizIfvdTqV1RiV0IN8GPZs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-snapd",
|
||||
"rev": "f7694a0e26d890e285137e1b726b1b44038805c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-snapd",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1764440730,
|
||||
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1735922141,
|
||||
"narHash": "sha256-vk0xwGZSlvZ/596yxOtsk4gxsIx2VemzdjiU8zhjgWw=",
|
||||
"lastModified": 1761442529,
|
||||
"narHash": "sha256-8aDps5fCt0Ndw56ZgeBvdT7E5zeUSFi3CJaNR7ZJKnA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d29ab98cd4a70a387b8ceea3e930b3340d41ac5a",
|
||||
"rev": "75762615e96b1a7f172dcdadf62aa9f3aebedf7b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1733423277,
|
||||
"narHash": "sha256-TxabjxEgkNbCGFRHgM/b9yZWlBj60gUOUnRT/wbVQR8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e36963a147267afc055f7cf65225958633e536bf",
|
||||
"lastModified": 1754788789,
|
||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1733229606,
|
||||
"narHash": "sha256-FLYY5M0rpa5C2QAE3CKLYAM6TwbKicdRK6qNrSHlNrE=",
|
||||
"lastModified": 1764950072,
|
||||
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "566e53c2ad750c84f6d31f9ccb9d00f823165550",
|
||||
"rev": "f61125a668a320878494449750330ca58b78c557",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1764831616,
|
||||
"narHash": "sha256-OtzF5wBvO0jgW1WW1rQU9cMGx7zuvkF7CAVJ1ypzkxA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c97c47f2bac4fa59e2cbdeba289686ae615f8ed4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
"home-manager": "home-manager_2",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735993984,
|
||||
"narHash": "sha256-Syew+5yuzysUr07SrGD+GRfZjE11h36TSYbxzEHYyyc=",
|
||||
"lastModified": 1765043977,
|
||||
"narHash": "sha256-Gcdn1s/ynXRFNqInTcYltAi1gqgmTKw8Hw6OSfFNWMY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "6bd1c7c5927fa9fdfdfd68f5aa772e6a62b9d779",
|
||||
"rev": "b65233d5f9736cf8d8fe9d4652e1faf610b574bc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"ixx": "ixx",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735854821,
|
||||
"narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "836908e3bddd837ae0f13e215dd48767aee355f0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"ghostty": "ghostty",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"home-manager-unstable": "home-manager-unstable",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nix-snapd": "nix-snapd",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nixvim": "nixvim"
|
||||
}
|
||||
},
|
||||
@@ -391,67 +261,6 @@
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735905407,
|
||||
"narHash": "sha256-1hKMRIT+QZNWX46e4gIovoQ7H8QRb7803ZH4qSKI45o=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "29806abab803e498df96d82dd6f34b32eb8dd2c8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"ghostty"
|
||||
],
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"ghostty",
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717848532,
|
||||
"narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
88
flake.nix
88
flake.nix
@@ -2,36 +2,92 @@
|
||||
description = "Nixos Config Flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
|
||||
nix-darwin.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
nix-snapd.url = "github:nix-community/nix-snapd";
|
||||
nix-snapd.inputs.pkgs-unstable.follows = "nixpkgs";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
home-manager-unstable = {
|
||||
url = "github:nix-community/home-manager/";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim/nixos-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
ghostty = {
|
||||
url = "github:ghostty-org/ghostty";
|
||||
nixos-hardware = {
|
||||
url = "github:NixOS/nixos-hardware/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, nixvim, ghostty, ... }@inputs: {
|
||||
outputs =
|
||||
{ self,
|
||||
home-manager,
|
||||
home-manager-unstable,
|
||||
nix-darwin,
|
||||
nix-snapd,
|
||||
nixos-hardware,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
nixvim,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
configPath = "/etc/nixos";
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
system = system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
default = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs;};
|
||||
system = "x86_64-linux";
|
||||
buildbox = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "buildbox";};
|
||||
system = system;
|
||||
modules = [
|
||||
./configuration.nix
|
||||
./hosts/buildbox/configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
{
|
||||
environment.systemPackages = [
|
||||
ghostty.packages.x86_64-linux.default
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
eva-01 = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "eva-01";};
|
||||
system = system;
|
||||
modules = [
|
||||
./hosts/eva-01/configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
nixos-hardware.nixosModules.lenovo-thinkpad-x1-nano-gen1
|
||||
nix-snapd.nixosModules.default { services.snap.enable = true; }
|
||||
];
|
||||
};
|
||||
|
||||
eva-03 = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs pkgs-unstable configPath;} // {hostname = "eva-03";};
|
||||
system = system;
|
||||
modules = [
|
||||
./hosts/eva-03/configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
};
|
||||
};
|
||||
darwinConfigurations = {
|
||||
eva-02 = nix-darwin.lib.darwinSystem{
|
||||
specialArgs = {inherit inputs configPath;} // {hostname = "eva-02";};
|
||||
system = "aarch64-darwin";
|
||||
modules = [
|
||||
./hosts/eva-02/configuration.nix
|
||||
inputs.home-manager-unstable.darwinModules.home-manager
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
curl
|
||||
dust
|
||||
tldr
|
||||
tailscale
|
||||
docker
|
||||
nix-prefetch-github
|
||||
];
|
||||
|
||||
programs = {
|
||||
fastfetch.enable = true;
|
||||
fzf.enable = true;
|
||||
bat.enable = true;
|
||||
btop.enable = true;
|
||||
kitty.enable = true;
|
||||
yazi.enable = true;
|
||||
starship.enable = true;
|
||||
lazygit.enable = true;
|
||||
#thefuck.enable = true;
|
||||
#thefuck.enableZshIntegration = true;
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "rogueking";
|
||||
userEmail = "miguel@muniz.org";
|
||||
};
|
||||
|
||||
eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableZshIntegration = true;
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
];
|
||||
};
|
||||
|
||||
ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
global = {
|
||||
host = "*";
|
||||
setEnv = {
|
||||
TERM = "xterm-256color";
|
||||
};
|
||||
};
|
||||
};
|
||||
# Add IdentityAgent configuration here
|
||||
extraConfig = ''
|
||||
IdentityAgent ~/.1password/agent.sock
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
historySubstringSearch.enable = true;
|
||||
|
||||
shellAliases = {
|
||||
ls = "eza --color=auto";
|
||||
grep = "grep --color=auto";
|
||||
ll = "eza -la";
|
||||
lg = "lazygit";
|
||||
fk = "fuck";
|
||||
lt = "eza --tree";
|
||||
cd = "z";
|
||||
open = "xdg-open";
|
||||
rebuild = "sudo nixos-rebuild switch --flake /etc/nixos#default";
|
||||
};
|
||||
|
||||
initExtra = ''
|
||||
fastfetch
|
||||
'';
|
||||
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
#plugins = ["thefuck"];
|
||||
};
|
||||
};
|
||||
|
||||
starship = {
|
||||
settings = {
|
||||
add_newline = true;
|
||||
format = lib.concatStrings [
|
||||
"$time"
|
||||
"$directory"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"$hostname"
|
||||
"$golang"
|
||||
"direnv"
|
||||
"$status"
|
||||
];
|
||||
|
||||
right_format = lib.concatStrings [
|
||||
"$cmd_duration"
|
||||
];
|
||||
|
||||
cmd_duration = {
|
||||
disabled = false;
|
||||
show_notifications = false;
|
||||
min_time = 2000;
|
||||
format = "[$duration](bold yellow)";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "cyan";
|
||||
format = ''\[[$path]($style)\] '';
|
||||
};
|
||||
|
||||
direnv = {
|
||||
disabled = false;
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
style = "bold cyan";
|
||||
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
|
||||
};
|
||||
|
||||
git_status = {
|
||||
format = "[($all_status$ahead_behind )]($style)";
|
||||
conflicted = "🏳";
|
||||
ahead = "⇡\${count}";
|
||||
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
||||
behind = "⇣\${count}";
|
||||
up_to_date = "✓";
|
||||
untracked = "🤷";
|
||||
stashed = "📦";
|
||||
modified = "📝";
|
||||
staged = ''[++\($count\)](green)'';
|
||||
renamed = "👅";
|
||||
deleted = "🗑";
|
||||
};
|
||||
|
||||
golang = {
|
||||
format = ''\[[$symbol($version)]($style)\]'';
|
||||
};
|
||||
|
||||
hostname = {
|
||||
format = "[$ssh_symbol$hostname]($style) ";
|
||||
};
|
||||
|
||||
status = {
|
||||
disabled = false;
|
||||
success_symbol = "[❱](bold red)[❱](bold yellow)[❱](bold green) ";
|
||||
symbol = "[❱❱❱](bold red) ";
|
||||
format = "$symbol";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = false;
|
||||
style = "cyan";
|
||||
format = ''\[[$time]($style)\] '';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
151
home-manager/commands/commands.nix
Normal file
151
home-manager/commands/commands.nix
Normal file
@@ -0,0 +1,151 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
lib,
|
||||
hostname,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./direnv.nix
|
||||
./custom/custom.nix
|
||||
./eza.nix
|
||||
./fastfetch/fastfetch.nix
|
||||
./git.nix
|
||||
./newsboat.nix
|
||||
./nixvim/default.nix
|
||||
./starship.nix
|
||||
./tmux.nix
|
||||
./zsh.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
age
|
||||
age-plugin-1p
|
||||
age-plugin-yubikey
|
||||
agedu
|
||||
awscli2
|
||||
b3sum
|
||||
bat
|
||||
btop
|
||||
cbonsai
|
||||
curl
|
||||
dig
|
||||
dust
|
||||
# esptool
|
||||
fd
|
||||
fzf
|
||||
ffmpeg-full
|
||||
gemini-cli
|
||||
git-filter-repo
|
||||
graphviz
|
||||
jq
|
||||
kitty
|
||||
lazygit
|
||||
nix-du
|
||||
nmap
|
||||
ocamlPackages.utop
|
||||
opencode
|
||||
openconnect
|
||||
openssl
|
||||
ripgrep
|
||||
s3cmd
|
||||
# sage
|
||||
termusic
|
||||
timg
|
||||
tldr
|
||||
trippy
|
||||
trivy
|
||||
wget
|
||||
wireguard-tools
|
||||
yazi
|
||||
yt-dlp
|
||||
yubikey-manager
|
||||
zstd
|
||||
]
|
||||
++ lib.optionals (hostname == "eva-01") [
|
||||
# cli
|
||||
parted
|
||||
traceroute
|
||||
|
||||
# cyber
|
||||
amass
|
||||
bettercap
|
||||
bloodhound
|
||||
bully
|
||||
burpsuite
|
||||
cowpatty
|
||||
crunch
|
||||
dirbuster
|
||||
dnschef
|
||||
ffuf
|
||||
hash-identifier
|
||||
hashcat
|
||||
hashcat-utils
|
||||
hping
|
||||
macchanger
|
||||
medusa
|
||||
netdiscover
|
||||
netexec
|
||||
pwnat
|
||||
pwncat
|
||||
reaverwps-t6x
|
||||
recon-ng
|
||||
rustscan
|
||||
sqlmap
|
||||
steghide
|
||||
thc-hydra
|
||||
]
|
||||
|
||||
++ lib.optionals (hostname == "eva-02") [
|
||||
|
||||
]
|
||||
|
||||
++ lib.optionals (hostname == "eva-03") [
|
||||
# cli
|
||||
parted
|
||||
traceroute
|
||||
]
|
||||
|
||||
++ lib.optionals (hostname == "buildbox") [
|
||||
# cli
|
||||
parted
|
||||
traceroute
|
||||
];
|
||||
|
||||
programs = {
|
||||
ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
global = {
|
||||
host = "*";
|
||||
setEnv = {
|
||||
TERM = "xterm-256color";
|
||||
};
|
||||
};
|
||||
} // lib.optionalAttrs (hostname == "buildbox") {
|
||||
"192.168.8.109" = {
|
||||
identityFile = "~/.ssh/gitea-buildbox";
|
||||
user = "gitea";
|
||||
};
|
||||
"github.com" = {
|
||||
identityFile = "~/.ssh/github-buildbox";
|
||||
user = "git";
|
||||
};
|
||||
};
|
||||
extraConfig = if hostname == "eva-02"
|
||||
then ''
|
||||
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
||||
''
|
||||
else ''
|
||||
IdentityAgent ~/.1password/agent.sock
|
||||
'';
|
||||
};
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
10
home-manager/commands/custom/build.nix
Normal file
10
home-manager/commands/custom/build.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
# build.nix
|
||||
let
|
||||
# Import your nixpkgs channel. The <> syntax finds it automatically.
|
||||
pkgs = import <nixpkgs> {
|
||||
# Apply your overlay here
|
||||
overlays = [ (import ./sage.nix) ];
|
||||
};
|
||||
in
|
||||
# This file now evaluates to exactly one thing: the sage package.
|
||||
pkgs.sage
|
||||
12
home-manager/commands/custom/custom.nix
Normal file
12
home-manager/commands/custom/custom.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
pkgs,
|
||||
hostname,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(import ./sage.nix)
|
||||
];
|
||||
|
||||
}
|
||||
27
home-manager/commands/custom/sage.nix
Normal file
27
home-manager/commands/custom/sage.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
final: prev: {
|
||||
|
||||
# We are adding a package named 'sage' to the package set
|
||||
sage = prev.rustPlatform.buildRustPackage rec {
|
||||
pname = "sage";
|
||||
version = "0.1.0";
|
||||
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "Rogue-King";
|
||||
repo = "sage";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-nR0EhRJFUHwQHnJagXHkP/A1fGIoMZtXXuJf70/iDas=";
|
||||
};
|
||||
|
||||
# Placeholder hash for cargo dependencies - the build will tell you the correct one.
|
||||
cargoHash = "sha256-BXTEUGH2KB1gYl9cERVPbhAs0soezsSabg0nDedEjRI=";
|
||||
#cargoLock.lockFile = ./Cargo.lock;
|
||||
|
||||
meta = with prev.lib; {
|
||||
description = "A tool for elegant mathematics";
|
||||
homepage = "https://github.com/Rogue-King/sage";
|
||||
license = licenses.mit;
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
};
|
||||
}
|
||||
12
home-manager/commands/eza.nix
Normal file
12
home-manager/commands/eza.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
programs = {
|
||||
eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableZshIntegration = true;
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +1,22 @@
|
||||
{
|
||||
hostname,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs = {
|
||||
fastfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
logo = {
|
||||
source = "/etc/nixos/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg";
|
||||
|
||||
source = lib.mkIf (hostname == "eva-01") "/etc/nixos/assets/pfp/eva-01.jpg";
|
||||
type = "kitty";
|
||||
height = 20;
|
||||
width = 60;
|
||||
padding = {
|
||||
top = 2; #2;
|
||||
top = 2; # 2;
|
||||
left = 2; # 3;
|
||||
};
|
||||
};
|
||||
38
home-manager/commands/git.nix
Normal file
38
home-manager/commands/git.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
hostname,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "rogueking";
|
||||
email = "miguel@muniz.org";
|
||||
};
|
||||
} // lib.optionalAttrs (! (lib.elem hostname [ "buildbox" ])) {
|
||||
gpg = {
|
||||
format = "ssh";
|
||||
ssh = lib.optionalAttrs (hostname == "eva-02") {
|
||||
program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
|
||||
};
|
||||
};
|
||||
};
|
||||
} // lib.optionalAttrs (! (lib.elem hostname [ "buildbox" ])) {
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
signer = if hostname == "eva-02"
|
||||
then
|
||||
"/Applications/1Password.app/Contents/MacOS/op-ssh-sign"
|
||||
else
|
||||
"/opt/1Password/op-ssh-sign";
|
||||
|
||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHI7zcxrwwg4VqpGduhPX31aslzXwkRXiM32+8K+aIMu";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
home-manager/commands/newsboat.nix
Normal file
9
home-manager/commands/newsboat.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
programs.newsboat = {
|
||||
enable = true;
|
||||
urls = [
|
||||
{ url = "https://dev.to/feed"; }
|
||||
{ url = "https://stackoverflow.blog/feed/"; }
|
||||
];
|
||||
};
|
||||
}
|
||||
43
home-manager/commands/nixvim/config.nix
Normal file
43
home-manager/commands/nixvim/config.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
hostname,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
colorschemes.everforest = {
|
||||
enable = true;
|
||||
settings = {
|
||||
background = "soft"; #"hard"
|
||||
transparent_background = 1;
|
||||
};
|
||||
};
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
expandtab = true;
|
||||
shiftwidth = 2;
|
||||
tabstop = 2;
|
||||
};
|
||||
|
||||
diagnostic.settings = {
|
||||
virtual_text = true;
|
||||
update_in_insert = true;
|
||||
severity_sort = true;
|
||||
};
|
||||
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
maplocalleader = " ";
|
||||
};
|
||||
|
||||
clipboard.providers.wl-copy.enable = lib.mkIf (hostname != "eva-02") true;
|
||||
};
|
||||
}
|
||||
7
home-manager/commands/nixvim/default.nix
Normal file
7
home-manager/commands/nixvim/default.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
imports = [
|
||||
./config.nix
|
||||
./keymaps.nix
|
||||
./plugins/default.nix
|
||||
];
|
||||
}
|
||||
129
home-manager/commands/nixvim/keymaps.nix
Normal file
129
home-manager/commands/nixvim/keymaps.nix
Normal file
@@ -0,0 +1,129 @@
|
||||
{
|
||||
programs.nixvim = {
|
||||
keymaps = [
|
||||
{
|
||||
action = ":q<CR>";
|
||||
key = "<leader>q";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Quit";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":w<CR>";
|
||||
key = "<leader>w";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Save";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":wq<CR>";
|
||||
key = "<leader>wq";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Save and quit";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<C-\\><C-n>:ToggleTerm direction=float<CR>";
|
||||
key = "<leader>t";
|
||||
mode = [
|
||||
"n"
|
||||
"v"
|
||||
"t"
|
||||
];
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Toggle floating terminal";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope live_grep<CR>";
|
||||
key = "<leader>lg";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Live grep";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope find_files<CR>";
|
||||
key = "<leader>ff";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Find file";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope oldfiles<CR>";
|
||||
key = "<leader>of";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Browse recent files";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope file_browser<CR>";
|
||||
key = "<leader>fb";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Directory-based file browser";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Neotree toggle reveal<CR>";
|
||||
key = "<leader>nt";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Toggle file tree";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Neotree focus<CR>";
|
||||
key = "<leader>nf";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Toggle file tree focus";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Glance definitions<CR>";
|
||||
key = "<leader>gd";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Glance definitions";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Glance references<CR>";
|
||||
key = "<leader>gr";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Glance references";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "\"+y<CR>";
|
||||
key = "<leader>y";
|
||||
mode = [ "v" ];
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Glance references";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
68
home-manager/commands/nixvim/plugins/blink-cmp.nix
Normal file
68
home-manager/commands/nixvim/plugins/blink-cmp.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
blink-cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
completion = {
|
||||
accept = {
|
||||
auto_brackets = {
|
||||
enabled = true;
|
||||
semantic_token_resolution = {
|
||||
enabled = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
documentation = {
|
||||
auto_show = true;
|
||||
};
|
||||
};
|
||||
keymap = {
|
||||
"<C-e>" = [
|
||||
"hide"
|
||||
];
|
||||
"<C-d>" = [
|
||||
"scroll_documentation_up"
|
||||
"fallback"
|
||||
];
|
||||
"<C-f>" = [
|
||||
"scroll_documentation_down"
|
||||
"fallback"
|
||||
];
|
||||
"<Tab>" = [
|
||||
"select_next"
|
||||
"fallback"
|
||||
];
|
||||
"<S-Tab>" = [
|
||||
"select_prev"
|
||||
"fallback"
|
||||
];
|
||||
"<C-space>" = [
|
||||
"show"
|
||||
"show_documentation"
|
||||
"hide_documentation"
|
||||
];
|
||||
"<CR>" = [
|
||||
"select_and_accept"
|
||||
"fallback"
|
||||
];
|
||||
"<Down>" = [
|
||||
"select_next"
|
||||
"fallback"
|
||||
];
|
||||
"<Up>" = [
|
||||
"select_prev"
|
||||
"fallback"
|
||||
];
|
||||
"<S-s>" = [
|
||||
"snippet_backward"
|
||||
"fallback"
|
||||
];
|
||||
"<s>" = [
|
||||
"snippet_forward"
|
||||
"fallback"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
47
home-manager/commands/nixvim/plugins/codecompanion.nix
Normal file
47
home-manager/commands/nixvim/plugins/codecompanion.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
codecompanion = {
|
||||
enable = true;
|
||||
settings = {
|
||||
adapters = {
|
||||
ollama = {
|
||||
__raw = ''
|
||||
function()
|
||||
return require('codecompanion.adapters').extend('ollama', {
|
||||
env = {
|
||||
url = "http://miguel-pc:11434",
|
||||
},
|
||||
schema = {
|
||||
model = {
|
||||
default = 'qwen2.5-coder:14b',
|
||||
},
|
||||
num_ctx = {
|
||||
default = 32768,
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
opts = {
|
||||
log_level = "TRACE";
|
||||
send_code = true;
|
||||
use_default_actions = true;
|
||||
use_default_prompts = true;
|
||||
};
|
||||
strategies = {
|
||||
agent = {
|
||||
adapter = "ollama";
|
||||
};
|
||||
chat = {
|
||||
adapter = "ollama";
|
||||
};
|
||||
inline = {
|
||||
adapter = "ollama";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
56
home-manager/commands/nixvim/plugins/default.nix
Normal file
56
home-manager/commands/nixvim/plugins/default.nix
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
hostname,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
#./blink-cmp.nix
|
||||
./glance.nix
|
||||
./illuminate.nix
|
||||
./indent-blankline.nix
|
||||
./lint.nix
|
||||
./lsp.nix
|
||||
./scrollview.nix
|
||||
./startup.nix
|
||||
./telescope.nix
|
||||
./which-key.nix
|
||||
];
|
||||
|
||||
programs.nixvim.plugins = {
|
||||
cmp-nvim-lsp.enable = true;
|
||||
cmp.enable = true;
|
||||
cmp_luasnip.enable = true;
|
||||
colorizer.enable = true;
|
||||
comment.enable = true;
|
||||
diffview.enable = true;
|
||||
direnv.enable = true;
|
||||
gitblame.enable = true;
|
||||
gitsigns.enable = true;
|
||||
# hardtime.enable = true;
|
||||
intellitab.enable = true;
|
||||
lastplace.enable = true;
|
||||
lsp-format.enable = true;
|
||||
lsp-lines.enable = true;
|
||||
lsp-signature.enable = true;
|
||||
lualine.enable = true;
|
||||
luasnip.enable = true;
|
||||
markview.enable = true;
|
||||
multicursors.enable = true;
|
||||
neo-tree.enable = true;
|
||||
neoscroll.enable = true;
|
||||
nvim-autopairs.enable = true;
|
||||
refactoring.enable = true;
|
||||
toggleterm.enable = true;
|
||||
treesitter.enable = true;
|
||||
web-devicons.enable = true;
|
||||
zig.enable = true;
|
||||
};
|
||||
|
||||
programs.nixvim.performance.byteCompileLua = {
|
||||
enable = true;
|
||||
plugins = true;
|
||||
};
|
||||
}
|
||||
11
home-manager/commands/nixvim/plugins/glance.nix
Normal file
11
home-manager/commands/nixvim/plugins/glance.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
glance = {
|
||||
enable = true;
|
||||
settings = {
|
||||
border.enable = true;
|
||||
theme.mode = "darken";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
home-manager/commands/nixvim/plugins/illuminate.nix
Normal file
14
home-manager/commands/nixvim/plugins/illuminate.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
illuminate.settings = {
|
||||
enable = true;
|
||||
delay = 100;
|
||||
minCountToHighlight = 1;
|
||||
modesAllowlist = [
|
||||
"n"
|
||||
"i"
|
||||
"v"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
14
home-manager/commands/nixvim/plugins/indent-blankline.nix
Normal file
14
home-manager/commands/nixvim/plugins/indent-blankline.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
indent-blankline = {
|
||||
enable = true;
|
||||
settings = {
|
||||
scope = {
|
||||
show_end = true;
|
||||
show_exact_scope = true;
|
||||
show_start = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
home-manager/commands/nixvim/plugins/lint.nix
Normal file
13
home-manager/commands/nixvim/plugins/lint.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
lint = {
|
||||
enable = true;
|
||||
autoCmd = {
|
||||
event = [
|
||||
"InsertLeave"
|
||||
"TextChanged"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
36
home-manager/commands/nixvim/plugins/lsp.nix
Normal file
36
home-manager/commands/nixvim/plugins/lsp.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
nil_ls.enable = true;
|
||||
nixd = {
|
||||
enable = true;
|
||||
extraOptions = {
|
||||
offset_encoding = "utf-8";
|
||||
};
|
||||
};
|
||||
html.enable = true;
|
||||
ts_ls.enable = true;
|
||||
#tailwindcss.enable = true;
|
||||
gopls.enable = true;
|
||||
golangci_lint_ls.enable = true;
|
||||
eslint.enable = true;
|
||||
templ.enable = true;
|
||||
pylsp.enable = true;
|
||||
sqls.enable = true;
|
||||
ocamllsp = {
|
||||
enable = true;
|
||||
package = pkgs.ocamlPackages.ocaml-lsp;
|
||||
};
|
||||
#rust_analyzer = { #Build Failure
|
||||
# enable = true;
|
||||
# installCargo = true;
|
||||
# installRustc = true;
|
||||
#};
|
||||
zls.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
12
home-manager/commands/nixvim/plugins/scrollview.nix
Normal file
12
home-manager/commands/nixvim/plugins/scrollview.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
scrollview = {
|
||||
enable = true;
|
||||
settings = {
|
||||
signs_on_startup = [
|
||||
"all"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
63
home-manager/commands/nixvim/plugins/startup.nix
Normal file
63
home-manager/commands/nixvim/plugins/startup.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
startup = {
|
||||
enable = true;
|
||||
settings.parts = [
|
||||
"header"
|
||||
"body"
|
||||
];
|
||||
settings.sections = {
|
||||
header = {
|
||||
align = "center";
|
||||
content = {
|
||||
__raw = "require('startup.headers').hydra_header";
|
||||
};
|
||||
defaultColor = "";
|
||||
foldSection = false;
|
||||
highlight = "Statement";
|
||||
margin = 5;
|
||||
oldfilesAmount = 0;
|
||||
title = "Header";
|
||||
type = "text";
|
||||
};
|
||||
body = {
|
||||
align = "center";
|
||||
content = [
|
||||
[
|
||||
" Find File"
|
||||
"Telescope find_files"
|
||||
"<leader>ff"
|
||||
]
|
||||
[
|
||||
" Find Word"
|
||||
"Telescope live_grep"
|
||||
"<leader>lg"
|
||||
]
|
||||
[
|
||||
" Recent Files"
|
||||
"Telescope oldfiles"
|
||||
"<leader>of"
|
||||
]
|
||||
[
|
||||
" File Browser"
|
||||
"Telescope file_browser"
|
||||
"<leader>fb"
|
||||
]
|
||||
[
|
||||
" New File"
|
||||
"lua require'startup'.new_file()"
|
||||
"<leader>nf"
|
||||
]
|
||||
];
|
||||
defaultColor = "";
|
||||
foldSection = false;
|
||||
highlight = "String";
|
||||
margin = 5;
|
||||
oldfilesAmount = 0;
|
||||
title = "Basic Commands";
|
||||
type = "mapping";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
16
home-manager/commands/nixvim/plugins/telescope.nix
Normal file
16
home-manager/commands/nixvim/plugins/telescope.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions.file-browser = {
|
||||
enable = true;
|
||||
settings = {
|
||||
hidden = {
|
||||
file_browser = true;
|
||||
folder_browser = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
45
home-manager/commands/nixvim/plugins/which-key.nix
Normal file
45
home-manager/commands/nixvim/plugins/which-key.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
which-key = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preset = "modern";
|
||||
delay = 500;
|
||||
expand = 1;
|
||||
notify = false;
|
||||
win = {
|
||||
border = "single";
|
||||
padding = [
|
||||
1
|
||||
1
|
||||
];
|
||||
wo.winblend = 10;
|
||||
};
|
||||
replace = {
|
||||
desc = [
|
||||
[
|
||||
"<space>"
|
||||
"SPACE"
|
||||
]
|
||||
[
|
||||
"<leader>"
|
||||
"SPACE"
|
||||
]
|
||||
[
|
||||
"<[cC][rR]>"
|
||||
"RETURN"
|
||||
]
|
||||
[
|
||||
"<[tT][aA][bB]>"
|
||||
"TAB"
|
||||
]
|
||||
[
|
||||
"<[bB][sS]>"
|
||||
"BACKSPACE"
|
||||
]
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
90
home-manager/commands/starship.nix
Normal file
90
home-manager/commands/starship.nix
Normal file
@@ -0,0 +1,90 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
programs = {
|
||||
starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
format = lib.concatStrings [
|
||||
"$time"
|
||||
"$directory"
|
||||
"$git_branch"
|
||||
"$git_status"
|
||||
"$hostname"
|
||||
"$golang"
|
||||
"direnv"
|
||||
"$status"
|
||||
];
|
||||
|
||||
right_format = lib.concatStrings [
|
||||
"$cmd_duration"
|
||||
];
|
||||
|
||||
cmd_duration = {
|
||||
disabled = false;
|
||||
show_notifications = false;
|
||||
min_time = 2000;
|
||||
format = "[$duration](bold yellow)";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "cyan";
|
||||
format = ''\[[$path]($style)\] '';
|
||||
};
|
||||
|
||||
direnv = {
|
||||
disabled = false;
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
style = "bold cyan";
|
||||
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
|
||||
};
|
||||
|
||||
git_status = {
|
||||
format = "[($all_status$ahead_behind )]($style)";
|
||||
conflicted = "🏳";
|
||||
ahead = "⇡\${count}";
|
||||
diverged = "⇕⇡\${ahead_count}⇣\${behind_count}";
|
||||
behind = "⇣\${count}";
|
||||
up_to_date = "✓";
|
||||
untracked = "🤷";
|
||||
stashed = "📦";
|
||||
modified = "📝";
|
||||
staged = ''[++\($count\)](green)'';
|
||||
renamed = "👅";
|
||||
deleted = "🗑";
|
||||
};
|
||||
|
||||
golang = {
|
||||
format = ''\[[$symbol($version)]($style)\]'';
|
||||
};
|
||||
|
||||
hostname = {
|
||||
format = "[$ssh_symbol$hostname]($style) ";
|
||||
};
|
||||
|
||||
rust = {
|
||||
format = ''[$symbol($version )]($style)'';
|
||||
};
|
||||
|
||||
status = {
|
||||
disabled = false;
|
||||
success_symbol = "[❱](bold red)[❱](bold yellow)[❱](bold green) ";
|
||||
symbol = "[❱❱❱](bold red) ";
|
||||
format = "$symbol";
|
||||
};
|
||||
|
||||
time = {
|
||||
disabled = false;
|
||||
style = "cyan";
|
||||
format = ''\[[$time]($style)\] '';
|
||||
use_12hr = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
25
home-manager/commands/tmux.nix
Normal file
25
home-manager/commands/tmux.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs = {
|
||||
tmux = {
|
||||
enable = true;
|
||||
mouse = true;
|
||||
baseIndex = 1;
|
||||
keyMode = "vi";
|
||||
historyLimit = 5000;
|
||||
prefix = "C-a";
|
||||
terminal = "xterm-ghostty";
|
||||
disableConfirmationPrompt = true;
|
||||
plugins = with pkgs; [
|
||||
tmuxPlugins.vim-tmux-navigator
|
||||
tmuxPlugins.tilish
|
||||
tmuxPlugins.resurrect
|
||||
tmuxPlugins.gruvbox
|
||||
tmuxPlugins.continuum
|
||||
tmuxPlugins.prefix-highlight
|
||||
];
|
||||
extraConfig = "bind C-l send-keys 'C-l'";
|
||||
};
|
||||
};
|
||||
}
|
||||
63
home-manager/commands/zsh.nix
Normal file
63
home-manager/commands/zsh.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{ config, configPath, hostname, ... }:
|
||||
{
|
||||
programs = {
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
historySubstringSearch.enable = true;
|
||||
|
||||
shellAliases = {
|
||||
cd = "z";
|
||||
cat = "bat";
|
||||
catp = "bat -pP";
|
||||
find = "fd";
|
||||
grep = "rg";
|
||||
lg = "lazygit";
|
||||
ll = "eza -la";
|
||||
ls = "eza --color=auto";
|
||||
lt = "eza --tree";
|
||||
open = "xdg-open";
|
||||
locate = "sudo plocate";
|
||||
tulpn = "sudo netstat -tulpn";
|
||||
rebuild = if hostname == "eva-02"
|
||||
then
|
||||
"sudo darwin-rebuild switch --flake .#eva-02"
|
||||
else
|
||||
"sudo nixos-rebuild switch --flake /etc/nixos#$(uname -n)";
|
||||
};
|
||||
|
||||
# profileExtra = ''
|
||||
# export SSH_AUTH_SOCK=~/.1password/agent.sock
|
||||
# '';
|
||||
|
||||
profileExtra = if hostname == "eva-02"
|
||||
then ''
|
||||
export SSH_AUTH_SOCK="~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
|
||||
''
|
||||
else ''
|
||||
export SSH_AUTH_SOCK=~/.1password/agent.sock
|
||||
'';
|
||||
|
||||
initContent = ''
|
||||
fastfetch
|
||||
'';
|
||||
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
mcfly = {
|
||||
enable = true;
|
||||
fzf.enable = true;
|
||||
fuzzySearchFactor = 5;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,18 +1,27 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./cli-tools.nix
|
||||
./fastfetch/fastfetch.nix
|
||||
./direnv.nix
|
||||
./nixvim/nixvim.nix
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
];
|
||||
./commands/commands.nix
|
||||
./programs/programs.nix
|
||||
inputs.nixvim.homeModules.nixvim
|
||||
];
|
||||
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = "rogueking";
|
||||
home.homeDirectory = "/home/rogueking";
|
||||
|
||||
# home.homeDirectory = "/Users/rogueking";
|
||||
home.homeDirectory =
|
||||
if pkgs.stdenv.isDarwin then
|
||||
"/Users/rogueking" # Path for macOS
|
||||
else
|
||||
"/home/rogueking"; # Path for Linux
|
||||
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
@@ -21,15 +30,19 @@
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
home.stateVersion = "24.11"; # Please read the comment before changing.
|
||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Allow specific insecure packages
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
#"python3.12-ecdsa-0.19.1"
|
||||
];
|
||||
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = with pkgs; [
|
||||
|
||||
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
|
||||
@@ -1,365 +0,0 @@
|
||||
{
|
||||
programs = {
|
||||
nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
#colorschemes.onedark.enable = true;
|
||||
|
||||
#colorschemes.everforest = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# background = "hard";
|
||||
# transparent_background = 1;
|
||||
# };
|
||||
#};
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
expandtab = true;
|
||||
shiftwidth = 2;
|
||||
tabstop = 2;
|
||||
};
|
||||
|
||||
diagnostics = {
|
||||
virtual_text = true;
|
||||
update_in_insert = true;
|
||||
severity_sort = true;
|
||||
};
|
||||
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
maplocalleader = " ";
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
action = ":q<CR>";
|
||||
key = "<leader>q";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Quit";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":w<CR>";
|
||||
key = "<leader>w";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Save";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":wq<CR>";
|
||||
key = "<leader>wq";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Save and quit";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<C-\\><C-n>:ToggleTerm direction=float<CR>";
|
||||
key = "<leader>t";
|
||||
mode = [ "n" "v" "t" ];
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Toggle floating terminal";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope live_grep<CR>";
|
||||
key = "<leader>lg";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Live grep";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope find_files<CR>";
|
||||
key = "<leader>ff";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Find file";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope oldfiles<CR>";
|
||||
key = "<leader>of";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Browse recent files";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Telescope file_browser<CR>";
|
||||
key = "<leader>fb";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Directory-based file browser";
|
||||
};
|
||||
}
|
||||
{
|
||||
action = ":Neotree toggle reveal<CR>";
|
||||
key = "<leader>nt";
|
||||
options = {
|
||||
silent = true;
|
||||
noremap = true;
|
||||
desc = "Toggle file tree";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
plugins = {
|
||||
comment.enable = true;
|
||||
direnv.enable = true;
|
||||
gitsigns.enable = true;
|
||||
intellitab.enable = true;
|
||||
lastplace.enable = true;
|
||||
lsp-format.enable = true;
|
||||
lspsaga.enable = true;
|
||||
lualine.enable = true;
|
||||
luasnip.enable = true;
|
||||
multicursors.enable = true;
|
||||
neo-tree.enable = true;
|
||||
neoscroll.enable = true;
|
||||
nix.enable = true;
|
||||
nvim-autopairs.enable = true;
|
||||
nvim-colorizer.enable = true;
|
||||
refactoring.enable = true;
|
||||
toggleterm.enable = true;
|
||||
treesitter.enable = true;
|
||||
web-devicons.enable = true;
|
||||
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions.file-browser.enable = true;
|
||||
};
|
||||
|
||||
transparent = {
|
||||
enable = true;
|
||||
settings = {
|
||||
groups = [
|
||||
"Normal"
|
||||
"NormalNC"
|
||||
"Comment"
|
||||
"Constant"
|
||||
"Special"
|
||||
"Identifier"
|
||||
"Statement"
|
||||
"PreProc"
|
||||
"Type"
|
||||
"Underlined"
|
||||
"Todo"
|
||||
"String"
|
||||
"Function"
|
||||
"Conditional"
|
||||
"Repeat"
|
||||
"Operator"
|
||||
"Structure"
|
||||
"LineNr"
|
||||
"NonText"
|
||||
"SignColumn"
|
||||
"CursorLine"
|
||||
"CursorLineNr"
|
||||
"StatusLine"
|
||||
"StatusLineNC"
|
||||
"EndOfBuffer"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
lint = {
|
||||
enable = true;
|
||||
autoCmd = {
|
||||
event = [ "InsertLeave" "TextChanged" ];
|
||||
};
|
||||
};
|
||||
|
||||
illuminate = {
|
||||
enable = true;
|
||||
delay = 100;
|
||||
minCountToHighlight = 1;
|
||||
modesAllowlist = ["n" "i" "v"];
|
||||
};
|
||||
|
||||
ollama = {
|
||||
enable = true;
|
||||
#url = ;
|
||||
};
|
||||
|
||||
which-key = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preset = "modern";
|
||||
delay = 500;
|
||||
expand = 1;
|
||||
notify = false;
|
||||
win = {
|
||||
border = "single";
|
||||
padding = [1 1];
|
||||
wo.winblend = 10;
|
||||
};
|
||||
replace = {
|
||||
desc = [
|
||||
[
|
||||
"<space>"
|
||||
"SPACE"
|
||||
]
|
||||
[
|
||||
"<leader>"
|
||||
"SPACE"
|
||||
]
|
||||
[
|
||||
"<[cC][rR]>"
|
||||
"RETURN"
|
||||
]
|
||||
[
|
||||
"<[tT][aA][bB]>"
|
||||
"TAB"
|
||||
]
|
||||
[
|
||||
"<[bB][sS]>"
|
||||
"BACKSPACE"
|
||||
]
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
scrollview = {
|
||||
enable = true;
|
||||
settings = {
|
||||
signs_on_startup = [
|
||||
"all"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
startup = {
|
||||
enable = true;
|
||||
parts = [ "header" "body" ];
|
||||
sections = {
|
||||
header = {
|
||||
align = "center";
|
||||
content = {
|
||||
__raw = "require('startup.headers').hydra_header";
|
||||
};
|
||||
defaultColor = "";
|
||||
foldSection = false;
|
||||
highlight = "Statement";
|
||||
margin = 5;
|
||||
oldfilesAmount = 0;
|
||||
title = "Header";
|
||||
type = "text";
|
||||
};
|
||||
body = {
|
||||
align = "center";
|
||||
content = [
|
||||
[
|
||||
" Find File"
|
||||
"Telescope find_files"
|
||||
"<leader>ff"
|
||||
]
|
||||
[
|
||||
" Find Word"
|
||||
"Telescope live_grep"
|
||||
"<leader>lg"
|
||||
]
|
||||
[
|
||||
" Recent Files"
|
||||
"Telescope oldfiles"
|
||||
"<leader>of"
|
||||
]
|
||||
[
|
||||
" File Browser"
|
||||
"Telescope file_browser"
|
||||
"<leader>fb"
|
||||
]
|
||||
[
|
||||
" New File"
|
||||
"lua require'startup'.new_file()"
|
||||
"<leader>nf"
|
||||
]
|
||||
];
|
||||
defaultColor = "";
|
||||
foldSection = false;
|
||||
highlight = "String";
|
||||
margin = 5;
|
||||
oldfilesAmount = 0;
|
||||
title = "Basic Commands";
|
||||
type = "mapping";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
indent-blankline = {
|
||||
enable = true;
|
||||
settings = {
|
||||
scope = {
|
||||
show_end = true;
|
||||
show_exact_scope = true;
|
||||
show_start = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
|
||||
settings = {
|
||||
sources = [
|
||||
{name = "nvim_lsp";}
|
||||
{name = "path";}
|
||||
{name = "buffer";}
|
||||
{name = "luasnip";}
|
||||
];
|
||||
mapping = {
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-e>" = "cmp.mapping.close()";
|
||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
lsp = {
|
||||
enable = true;
|
||||
|
||||
servers = {
|
||||
nixd = {
|
||||
enable = true;
|
||||
extraOptions = {
|
||||
offset_encoding = "utf-8";
|
||||
};
|
||||
};
|
||||
ts_ls.enable = true;
|
||||
gopls.enable = true;
|
||||
golangci_lint_ls.enable = true;
|
||||
rust_analyzer = {
|
||||
enable = true;
|
||||
installCargo = true;
|
||||
installRustc = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
50
home-manager/programs/ghostty/ghostty.nix
Normal file
50
home-manager/programs/ghostty/ghostty.nix
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
hostname,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
package = lib.mkIf (hostname == "eva-02") null;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
# Use explicit theme instead of relying on system theme detection
|
||||
theme = "Adwaita Dark";
|
||||
|
||||
# Explicitly set color scheme preference to avoid GTK warnings
|
||||
#gtk-adwaita = true;
|
||||
|
||||
gtk-single-instance = true;
|
||||
|
||||
#custom-shader = "./shaders/tft.glsl";
|
||||
|
||||
font-family = "JetBrainsMono Nerd Font";
|
||||
font-family-italic = "Maple Mono";
|
||||
font-family-bold-italic = "Maple Mono";
|
||||
font-size = 12;
|
||||
bold-is-bright = true;
|
||||
|
||||
window-decoration = false;
|
||||
background-opacity = 0.8;
|
||||
#background-blur-radius = 120;
|
||||
window-save-state = "always";
|
||||
|
||||
mouse-hide-while-typing = true;
|
||||
cursor-invert-fg-bg = true;
|
||||
|
||||
keybind = [
|
||||
"global:cmd+grave_accent=toggle_quick_terminal"
|
||||
"super+shift+enter=new_window"
|
||||
"super+shift+k=new_split:down"
|
||||
"super+shift+l=new_split:right"
|
||||
"super+shift+x=close_window"
|
||||
];
|
||||
};
|
||||
};
|
||||
#home.file.".config/ghostty/shaders" = {
|
||||
# enable = true;
|
||||
# source = ./shaders;
|
||||
# recursive = true;
|
||||
#};
|
||||
}
|
||||
38
home-manager/programs/hypr/hypridle.nix
Normal file
38
home-manager/programs/hypr/hypridle.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock";
|
||||
# unlock_cmd = "killall hyprlock";
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
};
|
||||
|
||||
listeners = [
|
||||
{
|
||||
timeout = 30;
|
||||
on-timeout = "pidof hyprlock && hyprctl dispatch dpms off";
|
||||
on-resume = "pidof hyprlock && hyprctl dispatch dpms on";
|
||||
|
||||
}
|
||||
{
|
||||
timeout = 540;
|
||||
on-timeout = "notify-send 'You are idle!'";
|
||||
on-resume = "notify-send 'Welcome back!'";
|
||||
}
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "loginctl lock-session";
|
||||
on-resume = "notify-send 'Desktop Unlocked!'";
|
||||
}
|
||||
# {
|
||||
# timeout = 1200;
|
||||
# on-timeout = "systemctl suspend";
|
||||
# on-resume = "notify-send 'Welcome back to your desktop!'";
|
||||
# }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
164
home-manager/programs/hypr/hyprland.nix
Normal file
164
home-manager/programs/hypr/hyprland.nix
Normal file
@@ -0,0 +1,164 @@
|
||||
{ config, configPath, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# === Monitor configuration ===
|
||||
monitor = "eDP-1, 2560x1440@60.03300, 0x0, 1.25";
|
||||
|
||||
# === Autostart / Exec commands ===
|
||||
exec-once = [
|
||||
"sleep 1 && nm-applet --indicator"
|
||||
"waybar"
|
||||
"ghostty"
|
||||
"swww-daemon"
|
||||
"eww daemon"
|
||||
"swww img ${configPath}/assets/ena/wallpaper.png"
|
||||
];
|
||||
|
||||
# === Input settings ===
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "";
|
||||
kb_rules = "";
|
||||
follow_mouse = true;
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
};
|
||||
sensitivity = 0;
|
||||
};
|
||||
|
||||
# === General settings ===
|
||||
general = {
|
||||
gaps_in = 2.5;
|
||||
gaps_out = 5;
|
||||
border_size = 2;
|
||||
"col.active_border" = "rgb(cdd6f4)";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
# === Decoration settings ===
|
||||
decoration = {
|
||||
rounding = 3;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 7;
|
||||
passes = 3;
|
||||
};
|
||||
};
|
||||
|
||||
# === Animations ===
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
animation = [
|
||||
"windows, 1, 7, myBezier"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
|
||||
# === Dwindle layout options ===
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
# === Gestures ===
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_fingers = 3;
|
||||
workspace_swipe_invert = true;
|
||||
workspace_swipe_distance = 200;
|
||||
workspace_swipe_forever = true;
|
||||
};
|
||||
|
||||
# === Per-device configuration ===
|
||||
device = [
|
||||
{
|
||||
name = "epic-mouse-v1";
|
||||
sensitivity = -0.5;
|
||||
}
|
||||
];
|
||||
|
||||
# === Window rules (v2) ===
|
||||
windowrulev2 = [
|
||||
"opacity 0.8 0.8,class:^(dolphin)$"
|
||||
];
|
||||
|
||||
# === Modifier key ===
|
||||
"$mod" = "SUPER";
|
||||
|
||||
# === Key bindings ===
|
||||
bind = [
|
||||
"$mod, T, exec, ghostty"
|
||||
"$mod, Q, killactive"
|
||||
"$mod, L, exec, hyprlock"
|
||||
"$mod, M, exec, wlogout --protocol layer-shell"
|
||||
"$mod SHIFT, M, exit"
|
||||
"$mod, E, exec, dolphin"
|
||||
"$mod, V, togglefloating"
|
||||
"$mod, SPACE, exec, rofi -show drun"
|
||||
"$mod, P, pseudo"
|
||||
"$mod, J, togglesplit"
|
||||
"$mod, S, exec, flameshot full"
|
||||
"$mod SHIFT, S, exec, flameshot gui"
|
||||
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
|
||||
"$mod SHIFT, left, movewindow, l"
|
||||
"$mod SHIFT, right, movewindow, r"
|
||||
"$mod SHIFT, up, movewindow, u"
|
||||
"$mod SHIFT, down, movewindow, d"
|
||||
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 0, workspace, 10"
|
||||
|
||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
||||
|
||||
"$mod, mouse_down, workspace, e+1"
|
||||
"$mod, mouse_up, workspace, e-1"
|
||||
|
||||
"$mod SHIFT, L, resizeactive, 10 0"
|
||||
"$mod SHIFT, H, resizeactive, -10 0"
|
||||
"$mod SHIFT, K, resizeactive, 0 -10"
|
||||
"$mod SHIFT, J, resizeactive, 0 10"
|
||||
];
|
||||
|
||||
# === Mouse bindings ===
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
48
home-manager/programs/hypr/hyprlock.nix
Normal file
48
home-manager/programs/hypr/hyprlock.nix
Normal file
@@ -0,0 +1,48 @@
|
||||
{ configPath, ... }:
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
disable_loading_bar = true;
|
||||
grace = 10;
|
||||
hide_cursor = true;
|
||||
no_fade_in = false;
|
||||
};
|
||||
background = [
|
||||
{
|
||||
path = "${configPath}/assets/ena/wallpaper.png";
|
||||
blur_passes = 3;
|
||||
blur_size = 8;
|
||||
}
|
||||
];
|
||||
image = [
|
||||
{
|
||||
path = "${configPath}/assets/pfp.jpg";
|
||||
size = 150;
|
||||
border_size = 4;
|
||||
border_color = "rgb(0C96F9)";
|
||||
rounding = -1;
|
||||
position = "0, 200";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
input-field = [
|
||||
{
|
||||
size = "200, 50";
|
||||
position = "0, -80";
|
||||
monitor = "";
|
||||
dots_center = true;
|
||||
fade_on_empty = false;
|
||||
font_color = "rgb(CFE6F4)";
|
||||
inner_color = "rgb(657DC2)";
|
||||
outer_color = "rgb(0D0E15)";
|
||||
outline_thickness = 5;
|
||||
placeholder_text = "Password...";
|
||||
shadow_passes = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
275
home-manager/programs/hypr/waybar.nix
Normal file
275
home-manager/programs/hypr/waybar.nix
Normal file
@@ -0,0 +1,275 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
||||
clock24h = false;
|
||||
in
|
||||
with lib;
|
||||
{
|
||||
# Configure & Theme Waybar
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar;
|
||||
settings = [
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
modules-center = [ "hyprland/workspaces" ];
|
||||
modules-left = [
|
||||
"custom/startmenu"
|
||||
"hyprland/window"
|
||||
"pulseaudio"
|
||||
"cpu"
|
||||
"memory"
|
||||
"idle_inhibitor"
|
||||
];
|
||||
modules-right = [
|
||||
"custom/hyprbindings"
|
||||
"custom/notification"
|
||||
"custom/exit"
|
||||
"battery"
|
||||
"tray"
|
||||
"clock"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
format = "{name}";
|
||||
format-icons = {
|
||||
default = " ";
|
||||
active = " ";
|
||||
urgent = " ";
|
||||
};
|
||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
||||
};
|
||||
"clock" = {
|
||||
format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}'';
|
||||
tooltip = true;
|
||||
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
|
||||
};
|
||||
"hyprland/window" = {
|
||||
max-length = 22;
|
||||
separate-outputs = false;
|
||||
rewrite = {
|
||||
"" = " 🙈 No Windows? ";
|
||||
};
|
||||
};
|
||||
"memory" = {
|
||||
interval = 5;
|
||||
format = " {}%";
|
||||
tooltip = true;
|
||||
};
|
||||
"cpu" = {
|
||||
interval = 5;
|
||||
format = " {usage:2}%";
|
||||
tooltip = true;
|
||||
};
|
||||
"disk" = {
|
||||
format = " {free}";
|
||||
tooltip = true;
|
||||
};
|
||||
"network" = {
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-ethernet = " {bandwidthDownOctets}";
|
||||
format-wifi = "{icon} {signalStrength}%";
|
||||
format-disconnected = "";
|
||||
tooltip = false;
|
||||
};
|
||||
"tray" = {
|
||||
spacing = 12;
|
||||
};
|
||||
"pulseaudio" = {
|
||||
format = "{icon} {volume}% {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 = "sleep 0.1 && pavucontrol";
|
||||
};
|
||||
"custom/exit" = {
|
||||
tooltip = false;
|
||||
format = "";
|
||||
on-click = "sleep 0.1 && wlogout";
|
||||
};
|
||||
"custom/startmenu" = {
|
||||
tooltip = false;
|
||||
format = "";
|
||||
# exec = "rofi -show drun";
|
||||
on-click = "sleep 0.1 && rofi-launcher";
|
||||
};
|
||||
"custom/hyprbindings" = {
|
||||
tooltip = false;
|
||||
format = "";
|
||||
on-click = "sleep 0.1 && list-keybinds";
|
||||
};
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
tooltip = "true";
|
||||
};
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{icon} {}";
|
||||
format-icons = {
|
||||
notification = "<span foreground='red'><sup></sup></span>";
|
||||
none = "";
|
||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-none = "";
|
||||
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||
inhibited-none = "";
|
||||
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-inhibited-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec-if = "which swaync-client";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "sleep 0.1 && task-waybar";
|
||||
escape = true;
|
||||
};
|
||||
"battery" = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
on-click = "";
|
||||
tooltip = false;
|
||||
};
|
||||
}
|
||||
];
|
||||
style = concatStrings [
|
||||
''
|
||||
* {
|
||||
font-family: JetBrainsMono Nerd Font Mono;
|
||||
font-size: 16px;
|
||||
border-radius: 0px;
|
||||
border: none;
|
||||
min-height: 0px;
|
||||
}
|
||||
window#waybar {
|
||||
background: rgba(0,0,0,0);
|
||||
}
|
||||
#workspaces {
|
||||
color: #${config.lib.stylix.colors.base00};
|
||||
background: #${config.lib.stylix.colors.base01};
|
||||
margin: 4px 4px;
|
||||
padding: 5px 5px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
#workspaces button {
|
||||
font-weight: bold;
|
||||
padding: 0px 5px;
|
||||
margin: 0px 3px;
|
||||
border-radius: 16px;
|
||||
color: #${config.lib.stylix.colors.base00};
|
||||
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
|
||||
opacity: 0.5;
|
||||
transition: ${betterTransition};
|
||||
}
|
||||
#workspaces button.active {
|
||||
font-weight: bold;
|
||||
padding: 0px 5px;
|
||||
margin: 0px 3px;
|
||||
border-radius: 16px;
|
||||
color: #${config.lib.stylix.colors.base00};
|
||||
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
|
||||
transition: ${betterTransition};
|
||||
opacity: 1.0;
|
||||
min-width: 40px;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
font-weight: bold;
|
||||
border-radius: 16px;
|
||||
color: #${config.lib.stylix.colors.base00};
|
||||
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
|
||||
opacity: 0.8;
|
||||
transition: ${betterTransition};
|
||||
}
|
||||
tooltip {
|
||||
background: #${config.lib.stylix.colors.base00};
|
||||
border: 1px solid #${config.lib.stylix.colors.base08};
|
||||
border-radius: 12px;
|
||||
}
|
||||
tooltip label {
|
||||
color: #${config.lib.stylix.colors.base08};
|
||||
}
|
||||
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
|
||||
font-weight: bold;
|
||||
margin: 4px 0px;
|
||||
margin-left: 7px;
|
||||
padding: 0px 18px;
|
||||
background: #${config.lib.stylix.colors.base04};
|
||||
color: #${config.lib.stylix.colors.base00};
|
||||
border-radius: 24px 10px 24px 10px;
|
||||
}
|
||||
#custom-startmenu {
|
||||
color: #${config.lib.stylix.colors.base0B};
|
||||
background: #${config.lib.stylix.colors.base02};
|
||||
font-size: 28px;
|
||||
margin: 0px;
|
||||
padding: 0px 30px 0px 15px;
|
||||
border-radius: 0px 0px 40px 0px;
|
||||
}
|
||||
#custom-hyprbindings, #network, #battery,
|
||||
#custom-notification, #tray, #custom-exit {
|
||||
font-weight: bold;
|
||||
background: #${config.lib.stylix.colors.base0F};
|
||||
color: #${config.lib.stylix.colors.base00};
|
||||
margin: 4px 0px;
|
||||
margin-right: 7px;
|
||||
border-radius: 10px 24px 10px 24px;
|
||||
padding: 0px 18px;
|
||||
}
|
||||
#clock {
|
||||
font-weight: bold;
|
||||
color: #0D0E15;
|
||||
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0E}, #${config.lib.stylix.colors.base0C});
|
||||
margin: 0px;
|
||||
padding: 0px 15px 0px 30px;
|
||||
border-radius: 0px 0px 0px 40px;
|
||||
}
|
||||
''
|
||||
];
|
||||
};
|
||||
}
|
||||
84
home-manager/programs/programs.nix
Normal file
84
home-manager/programs/programs.nix
Normal file
@@ -0,0 +1,84 @@
|
||||
{ pkgs, hostname, lib, ... }:
|
||||
|
||||
{
|
||||
imports = lib.optionals (! (lib.elem hostname [ "buildbox" "eva-02" ])) [
|
||||
./ghostty/ghostty.nix
|
||||
./rofi/rofi.nix
|
||||
./hypr/hypridle.nix
|
||||
./hypr/hyprland.nix
|
||||
./hypr/hyprlock.nix
|
||||
#./hypr/waybar.nix
|
||||
]
|
||||
++ lib.optionals (hostname == "eva-02") [
|
||||
./ghostty/ghostty.nix
|
||||
];
|
||||
|
||||
home.packages =
|
||||
lib.optionals (! (lib.elem hostname [ "buildbox" "eva-02" ])) (with pkgs; [
|
||||
#pwndbg
|
||||
bambu-studio
|
||||
blender
|
||||
brave
|
||||
desmume
|
||||
gparted
|
||||
# jellyfin-media-player
|
||||
kdePackages.bluedevil
|
||||
kdePackages.bluez-qt
|
||||
kdePackages.kate
|
||||
kdePackages.kdeconnect-kde
|
||||
kdePackages.oxygen-sounds
|
||||
kdePackages.partitionmanager
|
||||
kdePackages.isoimagewriter
|
||||
libreoffice-still
|
||||
librewolf
|
||||
localsend
|
||||
lutris-unwrapped
|
||||
meld
|
||||
melonDS
|
||||
moonlight-qt
|
||||
nestopia-ue
|
||||
nix-ld
|
||||
obsidian
|
||||
pandoc
|
||||
prismlauncher
|
||||
protonplus
|
||||
protonup-qt
|
||||
putty
|
||||
pwninit
|
||||
pwntools
|
||||
qFlipper
|
||||
r2modman
|
||||
remmina
|
||||
signal-desktop
|
||||
spice
|
||||
steam
|
||||
steamcmd
|
||||
swww
|
||||
tor-browser
|
||||
vesktop
|
||||
vlc
|
||||
wireshark
|
||||
yubikey-agent
|
||||
# rpi-imager
|
||||
]
|
||||
|
||||
++ lib.optionals (hostname == "eva-01") [
|
||||
calibre
|
||||
sdrangel
|
||||
sdrpp
|
||||
sonic-visualiser
|
||||
vscode
|
||||
]
|
||||
|
||||
++ lib.optionals (hostname == "eva-02") [
|
||||
|
||||
|
||||
]
|
||||
|
||||
++ lib.optionals (hostname == "eva-03") [
|
||||
vscode
|
||||
]);
|
||||
|
||||
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
}
|
||||
278
home-manager/programs/rofi/rofi.nix
Normal file
278
home-manager/programs/rofi/rofi.nix
Normal file
@@ -0,0 +1,278 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
configPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
terminal = "ghostty";
|
||||
package = pkgs.rofi.override {
|
||||
plugins = [ pkgs.rofi-emoji ];
|
||||
};
|
||||
font = "JetBrainsMono Nerd Font 12";
|
||||
plugins = [
|
||||
pkgs.rofi-emoji
|
||||
pkgs.rofi-calc
|
||||
pkgs.rofi-games
|
||||
pkgs.rofi-file-browser
|
||||
];
|
||||
extraConfig = {
|
||||
modi = "drun,run,filebrowser,emoji";
|
||||
show-icons = true;
|
||||
display-drun = "Apps";
|
||||
display-run = "Run";
|
||||
display-filebrowser = "Files";
|
||||
drun-display-format = "{name}";
|
||||
hover-select = true;
|
||||
me-select-entry = "MouseSecondary";
|
||||
me-accept-entry = "MousePrimary";
|
||||
window-format = "{w} · {c} · {t}";
|
||||
dpi = 1;
|
||||
};
|
||||
theme =
|
||||
let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in
|
||||
{
|
||||
"*" = {
|
||||
active-background = mkLiteral "#101C2F";
|
||||
active-foreground = mkLiteral "#D6CBD5";
|
||||
normal-background = mkLiteral "#030508";
|
||||
normal-foreground = mkLiteral "#D6CBD5";
|
||||
urgent-background = mkLiteral "#2B7F48";
|
||||
urgent-foreground = mkLiteral "#D6CBD5";
|
||||
alternate-active-background = mkLiteral "#11606B";
|
||||
alternate-active-foreground = mkLiteral "#D6CBD5";
|
||||
alternate-normal-background = mkLiteral "#030508";
|
||||
alternate-normal-foreground = mkLiteral "#D6CBD5";
|
||||
alternate-urgent-background = mkLiteral "#030508";
|
||||
alternate-urgent-foreground = mkLiteral "#D6CBD5";
|
||||
selected-active-background = mkLiteral "#101C2F";
|
||||
selected-active-foreground = mkLiteral "#D6CBD5";
|
||||
selected-normal-background = mkLiteral "#BCADBB";
|
||||
selected-normal-foreground = mkLiteral "#D6CBD5";
|
||||
selected-urgent-background = mkLiteral "#2B7F48";
|
||||
selected-urgent-foreground = mkLiteral "#D6CBD5";
|
||||
background-color = mkLiteral "#030508";
|
||||
background = mkLiteral "rgba(32,32,32,0.7)";
|
||||
foreground = mkLiteral "#BCADBB";
|
||||
border-color = mkLiteral "#101C2F";
|
||||
|
||||
background-alt = mkLiteral "@selected-active-background";
|
||||
selected = mkLiteral "@selected-urgent-background";
|
||||
active = mkLiteral "@selected-normal-background";
|
||||
urgent = mkLiteral "@selected";
|
||||
text-selected = mkLiteral "@background";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
|
||||
"window" = {
|
||||
enabled = true;
|
||||
fullscreen = false;
|
||||
transparency = mkLiteral "\"real\"";
|
||||
cursor = mkLiteral "\"default\"";
|
||||
spacing = 0;
|
||||
border = mkLiteral "4px 0px 4px 0px";
|
||||
border-radius = 30;
|
||||
location = mkLiteral "center";
|
||||
anchor = mkLiteral "center";
|
||||
width = mkLiteral "50%";
|
||||
background-color = mkLiteral "@background";
|
||||
};
|
||||
|
||||
"mainbox" = {
|
||||
padding = 15;
|
||||
enabled = true;
|
||||
orientation = mkLiteral "vertical";
|
||||
children = map mkLiteral [
|
||||
"inputbar"
|
||||
"listbox"
|
||||
];
|
||||
background-color = mkLiteral "transparent";
|
||||
};
|
||||
|
||||
"inputbar" = {
|
||||
enabled = true;
|
||||
padding = mkLiteral "10px 10px 100px 10px";
|
||||
margin = 10;
|
||||
background-color = mkLiteral "transparent";
|
||||
border-radius = 25;
|
||||
orientation = mkLiteral "horizontal";
|
||||
children = map mkLiteral [
|
||||
"entry"
|
||||
"dummy"
|
||||
"mode-switcher"
|
||||
];
|
||||
background-image = mkLiteral "url(\"${configPath}/assets/background.png\", width)";
|
||||
};
|
||||
|
||||
"entry" = {
|
||||
enabled = true;
|
||||
expand = false;
|
||||
width = mkLiteral "20%";
|
||||
padding = 10;
|
||||
border-radius = 12;
|
||||
background-color = mkLiteral "@selected";
|
||||
text-color = mkLiteral "@text-selected";
|
||||
cursor = mkLiteral "text";
|
||||
placeholder = mkLiteral "\"🖥️ Search \"";
|
||||
placeholder-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"listbox" = {
|
||||
spacing = 10;
|
||||
padding = 10;
|
||||
background-color = mkLiteral "transparent";
|
||||
orientation = mkLiteral "vertical";
|
||||
children = map mkLiteral [
|
||||
"message"
|
||||
"listview"
|
||||
];
|
||||
};
|
||||
|
||||
"listview" = {
|
||||
enabled = true;
|
||||
columns = 2;
|
||||
lines = 6;
|
||||
cycle = true;
|
||||
dynamic = true;
|
||||
scrollbar = true;
|
||||
layout = mkLiteral "vertical";
|
||||
reverse = false;
|
||||
fixed-height = false;
|
||||
fixed-columns = true;
|
||||
spacing = 10;
|
||||
background-color = mkLiteral "transparent";
|
||||
border = 0;
|
||||
};
|
||||
|
||||
"dummy" = {
|
||||
expand = true;
|
||||
background-color = mkLiteral "transparent";
|
||||
};
|
||||
|
||||
"mode-switcher" = {
|
||||
enabled = true;
|
||||
spacing = 10;
|
||||
background-color = mkLiteral "transparent";
|
||||
};
|
||||
|
||||
"button" = {
|
||||
width = mkLiteral "5%";
|
||||
padding = 12;
|
||||
border-radius = 12;
|
||||
background-color = mkLiteral "@text-selected";
|
||||
text-color = mkLiteral "@text-color";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"button selected" = {
|
||||
background-color = mkLiteral "@selected";
|
||||
text-color = mkLiteral "@text-selected";
|
||||
};
|
||||
|
||||
"scrollbar" = {
|
||||
width = 4;
|
||||
border = 0;
|
||||
handle-color = mkLiteral "@border-color";
|
||||
handle-width = 8;
|
||||
padding = 0;
|
||||
};
|
||||
|
||||
"element" = {
|
||||
enabled = true;
|
||||
spacing = 10;
|
||||
padding = 10;
|
||||
border-radius = 12;
|
||||
background-color = mkLiteral "transparent";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"element normal.normal" = {
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element normal.urgent" = {
|
||||
background-color = mkLiteral "@urgent";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
|
||||
"element normal.active" = {
|
||||
background-color = mkLiteral "@active";
|
||||
text-color = mkLiteral "@foreground";
|
||||
};
|
||||
|
||||
"element selected.normal" = {
|
||||
border = mkLiteral "1px 6px 1px 6px";
|
||||
border-radius = 16;
|
||||
border-color = mkLiteral "@selected";
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@selected";
|
||||
};
|
||||
|
||||
"element selected.urgent" = {
|
||||
background-color = mkLiteral "@urgent";
|
||||
text-color = mkLiteral "@text-selected";
|
||||
};
|
||||
|
||||
"element selected.active" = {
|
||||
background-color = mkLiteral "@urgent";
|
||||
text-color = mkLiteral "@text-selected";
|
||||
};
|
||||
|
||||
"element alternate.normal" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element alternate.urgent" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element alternate.active" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element-icon" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element-text" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
horizontal-align = mkLiteral "0.0";
|
||||
};
|
||||
|
||||
"message" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
border = 0;
|
||||
};
|
||||
|
||||
"textbox" = {
|
||||
padding = 12;
|
||||
border-radius = 10;
|
||||
background-color = mkLiteral "@background-alt";
|
||||
text-color = mkLiteral "@background";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
horizontal-align = mkLiteral "0.0";
|
||||
};
|
||||
|
||||
"error-message" = {
|
||||
padding = 12;
|
||||
border-radius = 20;
|
||||
background-color = mkLiteral "@background-alt";
|
||||
text-color = mkLiteral "@background";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,22 +2,42 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, pkgs, inputs, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
configPath,
|
||||
hostname,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
# (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.grub.enable = lib.mkDefault true;
|
||||
boot.loader.grub.devices = [ "nodev" ];
|
||||
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
networking.hostName = "EVA-01"; # Define your hostname.
|
||||
# Nix optimizations
|
||||
nix.optimise.automatic = true;
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
persistent = true;
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
networking.hostName = "buildbox"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
@@ -52,16 +72,13 @@
|
||||
services.xserver.enable = false;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
# services.displayManager.sddm.enable = true;
|
||||
# services.displayManager.sddm.wayland.enable = true;
|
||||
# services.desktopManager.plasma6.enable = true;
|
||||
# services.displayManager.sddm.theme = "sddm-astronaut-theme";
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
services.fprintd.enable = true;
|
||||
services.fprintd.tod.enable = true;
|
||||
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
@@ -72,29 +89,20 @@
|
||||
services.printing.enable = false;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
hardware.pulseaudio.enable = false;
|
||||
# hardware.pulseaudio.enable = false;
|
||||
#hardware.pulseaudio = {
|
||||
# enable = true;
|
||||
# package = pkgs.pulseaudioFull;
|
||||
#};
|
||||
hardware.bluetooth.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# VSCode-Server
|
||||
programs.nix-ld.enable = true;
|
||||
|
||||
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
programs.zsh.enable = true;
|
||||
users.users.rogueking = {
|
||||
@@ -104,14 +112,8 @@
|
||||
shell = pkgs.zsh;
|
||||
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
|
||||
packages = with pkgs; [
|
||||
bat
|
||||
brave
|
||||
btop
|
||||
kdePackages.kate
|
||||
localsend
|
||||
neovim
|
||||
tldr
|
||||
vesktop
|
||||
#apps
|
||||
#cli
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
@@ -131,50 +133,73 @@
|
||||
polkitPolicyOwners = [ "rogueking" ];
|
||||
};
|
||||
|
||||
|
||||
# Enable OpenSSH daemon
|
||||
services.openssh.enable = true;
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 22 ];
|
||||
settings = {
|
||||
PasswordAuthentication = true;
|
||||
AllowUsers = [ "rogueking" ];
|
||||
UseDns = true;
|
||||
X11Forwarding = false;
|
||||
PermitRootLogin = "no";
|
||||
MaxAuthTries = 8;
|
||||
};
|
||||
};
|
||||
|
||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"qtwebengine-5.15.19"
|
||||
"python3.12-ecdsa-0.19.1"
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
#apps
|
||||
fprintd
|
||||
jellyfin-media-player
|
||||
kdePackages.bluedevil
|
||||
kdePackages.bluez-qt
|
||||
kdePackages.kdeconnect-kde
|
||||
kdePackages.oxygen-sounds
|
||||
kdePackages.partitionmanager
|
||||
moonlight-qt
|
||||
obsidian
|
||||
prismlauncher
|
||||
qFlipper
|
||||
remmina
|
||||
vesktop
|
||||
wireshark
|
||||
#cider-2
|
||||
#guacamole-client
|
||||
#sddm-astronaut
|
||||
|
||||
#cli tools
|
||||
android-tools
|
||||
metasploit
|
||||
btop
|
||||
curl
|
||||
docker
|
||||
dust
|
||||
file
|
||||
findutils
|
||||
git
|
||||
gparted
|
||||
kopia
|
||||
lazydocker
|
||||
nettools
|
||||
nix-prefetch-github
|
||||
nmap
|
||||
oh-my-zsh
|
||||
openssh
|
||||
thefuck
|
||||
openssl
|
||||
parted
|
||||
plocate
|
||||
ptunnel
|
||||
tailscale
|
||||
tlp
|
||||
unzip
|
||||
vim
|
||||
wget
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
nerdfonts
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
configPath
|
||||
inputs
|
||||
pkgs-unstable
|
||||
hostname
|
||||
;
|
||||
};
|
||||
users = {
|
||||
"rogueking" = import ./home-manager/home.nix;
|
||||
"rogueking" = import ./../../home-manager/home.nix;
|
||||
};
|
||||
backupFileExtension = "backup";
|
||||
};
|
||||
@@ -213,6 +238,6 @@
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.11"; # Did you read the comment?
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
35
hosts/buildbox/hardware-configuration.nix
Normal file
35
hosts/buildbox/hardware-configuration.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
# 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, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/2387c615-e566-44ed-a708-ebd407ee16f6";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [ {
|
||||
device = "/var/lib/swapfile";
|
||||
size = 4*1024;
|
||||
} ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
341
hosts/eva-01/configuration.nix
Normal file
341
hosts/eva-01/configuration.nix
Normal file
@@ -0,0 +1,341 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
configPath,
|
||||
hostname,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
# Nix optimizations
|
||||
nix.optimise.automatic = true;
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
persistent = true;
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# Dynamic power managment
|
||||
# powerManagement = {
|
||||
# enable = true;
|
||||
# cpuFreqGovernor = "powersave";
|
||||
# powertop.enable = true;
|
||||
# };
|
||||
|
||||
# Power Management
|
||||
services.thermald.enable = true;
|
||||
services.power-profiles-daemon.enable = false;
|
||||
services.auto-cpufreq.enable = true;
|
||||
services.auto-cpufreq.settings = {
|
||||
battery = {
|
||||
governor = "balanced";
|
||||
turbo = "auto";
|
||||
};
|
||||
charger = {
|
||||
governor = "performance";
|
||||
turbo = "auto";
|
||||
};
|
||||
};
|
||||
services.system76-scheduler = {
|
||||
enable = true;
|
||||
useStockConfig = true;
|
||||
};
|
||||
|
||||
# Intel CPU integrated graphics packages
|
||||
hardware.graphics.extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
intel-ocl
|
||||
intel-vaapi-driver
|
||||
];
|
||||
|
||||
networking.hostName = "eva-01"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.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 the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = false;
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
#services.displayManager.sddm.theme = "sddm-astronaut-theme";
|
||||
|
||||
# Enable Hyprland wayland compositor
|
||||
programs.hyprland.enable = true;
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
# Enable XDG Desktop Portal for proper D-Bus integration
|
||||
services.dbus.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
#Enable Ollama daemon
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.ollama;
|
||||
};
|
||||
|
||||
#Enable Hyprland
|
||||
services.fprintd.enable = true;
|
||||
services.fprintd.tod.enable = true;
|
||||
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = false;
|
||||
services.avahi.enable = true;
|
||||
services.avahi.nssmdns4 = true;
|
||||
|
||||
# Enable Smart Card
|
||||
services.pcscd.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
#hardware.pulseaudio = {
|
||||
# enable = true;
|
||||
# package = pkgs.pulseaudioFull;
|
||||
#};
|
||||
hardware.bluetooth.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
programs.zsh.enable = true;
|
||||
users.users.rogueking = {
|
||||
isNormalUser = true;
|
||||
description = "rogueking";
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
|
||||
packages = with pkgs; [
|
||||
#apps
|
||||
#cli
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
security.polkit.enable = true;
|
||||
programs._1password.enable = true;
|
||||
programs._1password-gui = {
|
||||
enable = true;
|
||||
# Certain features, including CLI integration and system authentication support,
|
||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
||||
polkitPolicyOwners = [ "rogueking" ];
|
||||
};
|
||||
|
||||
#steam
|
||||
programs.steam.enable = true;
|
||||
|
||||
# Enable OpenSSH daemon
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 22 ];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
AllowUsers = [ "rogueking" ];
|
||||
UseDns = true;
|
||||
X11Forwarding = false;
|
||||
PermitRootLogin = "no";
|
||||
MaxAuthTries = "20";
|
||||
};
|
||||
};
|
||||
|
||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
||||
];
|
||||
|
||||
# Firewall
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
# 80
|
||||
# 443
|
||||
];
|
||||
logRefusedConnections = true;
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
#apps
|
||||
#cider-2
|
||||
fprintd
|
||||
guacamole-client
|
||||
#sddm-astronaut
|
||||
|
||||
#cli tools
|
||||
aircrack-ng
|
||||
android-tools
|
||||
btop
|
||||
curl
|
||||
docker
|
||||
dust
|
||||
file
|
||||
findutils
|
||||
git
|
||||
goose-cli
|
||||
hcxdumptool
|
||||
hcxtools
|
||||
kopia
|
||||
lazydocker
|
||||
metasploit
|
||||
nettools
|
||||
nix-prefetch-github
|
||||
nmap
|
||||
openssh
|
||||
openssl
|
||||
plocate
|
||||
ptunnel
|
||||
tailscale
|
||||
tlp
|
||||
unzip
|
||||
vim
|
||||
wifite2
|
||||
wirelesstools
|
||||
|
||||
#fonts
|
||||
nerd-fonts.hack
|
||||
nerd-fonts.fira-code
|
||||
|
||||
#unstable
|
||||
#pkgs-unstable.vllm
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
configPath
|
||||
inputs
|
||||
pkgs-unstable
|
||||
hostname
|
||||
;
|
||||
};
|
||||
users = {
|
||||
"rogueking" = import ./../../home-manager/home.nix;
|
||||
};
|
||||
backupFileExtension = "backup";
|
||||
};
|
||||
|
||||
#home-manager = {
|
||||
# extraSpecialArgs = { inherit inputs; };
|
||||
# users = {
|
||||
# "rogueking" = import ../home-manager/home.nix;
|
||||
# };
|
||||
# backupFileExtension = "backup";
|
||||
#};
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
@@ -24,7 +24,10 @@
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
swapDevices = [ {
|
||||
device = "/var/lib/swapfile";
|
||||
size = 8*1024;
|
||||
} ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
193
hosts/eva-02/configuration.nix
Normal file
193
hosts/eva-02/configuration.nix
Normal file
@@ -0,0 +1,193 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
inputs,
|
||||
configPath,
|
||||
hostname,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
# Nix optimizations
|
||||
nix.optimise.automatic = true;
|
||||
# nix.settings.auto-optimise-store = true;
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
interval = [{
|
||||
Hour = 2;
|
||||
Minute = 30;
|
||||
Weekday = 7;
|
||||
}];
|
||||
# persistent = true;
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
networking.hostName = "eva-02"; # Define your hostname.
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
# services.xserver.enable = true; # Enable for Darwin compatibility
|
||||
|
||||
# Enable sound with pipewire.
|
||||
# hardware.pulseaudio.enable = false;
|
||||
#hardware.pulseaudio = {
|
||||
# enable = true;
|
||||
# package = pkgs.pulseaudioFull;
|
||||
#};
|
||||
|
||||
# Enable Touch ID
|
||||
security.pam.services.sudo_local.touchIdAuth = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
system.primaryUser = "rogueking";
|
||||
programs.zsh.enable = true;
|
||||
users.users.rogueking = {
|
||||
# isNormalUser = true;
|
||||
description = "rogueking";
|
||||
# extraGroups = [ "admin" "staff" "wheel" "docker" ];
|
||||
home = "/Users/rogueking";
|
||||
shell = pkgs.zsh;
|
||||
packages = with pkgs; [
|
||||
#apps
|
||||
#cli
|
||||
];
|
||||
};
|
||||
|
||||
homebrew = {
|
||||
enable = true;
|
||||
user = "rogueking";
|
||||
#onActivation.autoUpdate = true;
|
||||
brews = [
|
||||
"docker"
|
||||
"esptool"
|
||||
"git-lfs"
|
||||
"huggingface-cli"
|
||||
"putty"
|
||||
"tailscale"
|
||||
];
|
||||
casks = [
|
||||
"1password"
|
||||
"1password-cli"
|
||||
"bambu-studio"
|
||||
"blender"
|
||||
"brave-browser"
|
||||
"ghostty"
|
||||
"imhex"
|
||||
"jellyfin-media-player"
|
||||
"jordanbaird-ice"
|
||||
"localsend"
|
||||
"melonds"
|
||||
"moonlight"
|
||||
"obsidian"
|
||||
"signal"
|
||||
"steam"
|
||||
"vesktop"
|
||||
"visual-studio-code"
|
||||
"vlc"
|
||||
];
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
# programs.firefox.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Enable OpenSSH daemon
|
||||
# services.openssh = {
|
||||
# enable = true;
|
||||
# # ports = [ 22 ];
|
||||
# settings = {
|
||||
# PasswordAuthentication = true;
|
||||
# AllowUsers = [ "rogueking" ];
|
||||
# UseDns = true;
|
||||
# X11Forwarding = false;
|
||||
# PermitRootLogin = "no";
|
||||
# MaxAuthTries = 8;
|
||||
# };
|
||||
# };
|
||||
|
||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
#apps
|
||||
|
||||
#cli tools
|
||||
btop
|
||||
curl
|
||||
docker
|
||||
dust
|
||||
file
|
||||
findutils
|
||||
git
|
||||
kopia
|
||||
lazydocker
|
||||
nettools
|
||||
nix-prefetch-github
|
||||
nmap
|
||||
openssh
|
||||
openssl
|
||||
ptunnel
|
||||
unzip
|
||||
vim
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.hack
|
||||
nerd-fonts.fira-code
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
configPath
|
||||
inputs
|
||||
pkgs-unstable
|
||||
hostname
|
||||
;
|
||||
};
|
||||
users = {
|
||||
"rogueking" = import ./../../home-manager/home.nix;
|
||||
};
|
||||
backupFileExtension = "backup";
|
||||
};
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
system.stateVersion = 6;
|
||||
}
|
||||
349
hosts/eva-03/configuration.nix
Normal file
349
hosts/eva-03/configuration.nix
Normal file
@@ -0,0 +1,349 @@
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{
|
||||
config,
|
||||
configPath,
|
||||
hostname,
|
||||
inputs,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
|
||||
#Kernel
|
||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
#{
|
||||
# enable = true;
|
||||
# windows = {
|
||||
# "11-Pro" = {
|
||||
# title = "Windows 11 Pro";
|
||||
# efiDeviceHandle = "HD3c";
|
||||
# sortKey = "z_windows";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
# Nix optimizations
|
||||
nix.optimise.automatic = true;
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
persistent = true;
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
networking.hostName = "eva-03"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
|
||||
hardware.nvidia = {
|
||||
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||
# of just the bare essentials.
|
||||
# powerManagement.enable = false;
|
||||
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
# powerManagement.finegrained = false;
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.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 the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = false;
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
#services.displayManager.sddm.theme = "sddm-astronaut-theme";
|
||||
|
||||
# Enable Hyprland wayland compositor
|
||||
programs.hyprland.enable = true;
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
|
||||
# XRDP
|
||||
services.xrdp.enable = true;
|
||||
services.xrdp.defaultWindowManager = "startplasma-x11";
|
||||
services.xrdp.openFirewall = true;
|
||||
|
||||
# Enable Tailscale
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.tailscale;
|
||||
};
|
||||
|
||||
#Enable Ollama daemon
|
||||
#services.ollama.enable = true;
|
||||
|
||||
# Enable ollama
|
||||
services.ollama = {
|
||||
enable = false;
|
||||
host = "0.0.0.0";
|
||||
openFirewall = true;
|
||||
acceleration = "cuda";
|
||||
package = pkgs-unstable.ollama;
|
||||
loadModels = [
|
||||
"deepcoder:14b"
|
||||
"gemma3:12b-it-qat"
|
||||
"gemma3:27b-it-qat"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
services.fprintd.enable = true;
|
||||
services.fprintd.tod.enable = true;
|
||||
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = false;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
#hardware.pulseaudio = {
|
||||
# enable = true;
|
||||
# package = pkgs.pulseaudioFull;
|
||||
#};
|
||||
hardware.bluetooth.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
programs.zsh.enable = true;
|
||||
users.users.rogueking = {
|
||||
isNormalUser = true;
|
||||
description = "rogueking";
|
||||
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
||||
shell = pkgs.zsh;
|
||||
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
|
||||
packages = with pkgs; [
|
||||
#apps
|
||||
#cli
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Enable all firmware
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
security.polkit.enable = true;
|
||||
programs._1password.enable = true;
|
||||
programs._1password-gui = {
|
||||
enable = true;
|
||||
# Certain features, including CLI integration and system authentication support,
|
||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
||||
polkitPolicyOwners = [ "rogueking" ];
|
||||
};
|
||||
|
||||
#steam
|
||||
programs.steam.enable = true;
|
||||
|
||||
# Enable OpenSSH daemon
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 22 ];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
AllowUsers = [ "rogueking" ];
|
||||
UseDns = true;
|
||||
X11Forwarding = false;
|
||||
PermitRootLogin = "no";
|
||||
MaxAuthTries = "20";
|
||||
};
|
||||
};
|
||||
|
||||
users.users."rogueking".openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
#apps
|
||||
#cider-2
|
||||
fprintd
|
||||
guacamole-client
|
||||
#sddm-astronaut
|
||||
polonium
|
||||
|
||||
#cli tools
|
||||
aircrack-ng
|
||||
android-tools
|
||||
btop
|
||||
curl
|
||||
docker
|
||||
dust
|
||||
file
|
||||
findutils
|
||||
fwupd
|
||||
git
|
||||
hcxdumptool
|
||||
hcxtools
|
||||
kopia
|
||||
lazydocker
|
||||
metasploit
|
||||
nettools
|
||||
nix-prefetch-github
|
||||
nmap
|
||||
openssh
|
||||
openssl
|
||||
plocate
|
||||
ptunnel
|
||||
tlp
|
||||
unzip
|
||||
vim
|
||||
wifite2
|
||||
wirelesstools
|
||||
|
||||
#unstable
|
||||
pkgs-unstable.crush
|
||||
(pkgs-unstable.llama-cpp.override { cudaSupport = true; })
|
||||
|
||||
#fonts
|
||||
nerd-fonts.hack
|
||||
nerd-fonts.fira-code
|
||||
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
# config
|
||||
configPath
|
||||
inputs
|
||||
pkgs-unstable
|
||||
hostname
|
||||
;
|
||||
};
|
||||
users = {
|
||||
"rogueking" = import ./../../home-manager/home.nix;
|
||||
};
|
||||
backupFileExtension = "backup";
|
||||
};
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
40
hosts/eva-03/hardware-configuration.nix
Normal file
40
hosts/eva-03/hardware-configuration.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
# 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, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/c8250302-044c-4be5-89b8-a07706a8dedf";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/E81D-0813";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/d8666f92-b7cf-40fb-b305-d16a84d79fa0"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
Reference in New Issue
Block a user