Compare commits
169 Commits
Author | SHA1 | Date | |
---|---|---|---|
58affaca5a | |||
d8d03c729c | |||
48e08c8b34 | |||
d69b2733ee | |||
df7d3c23c1 | |||
fe020745a5 | |||
e662f51375 | |||
68b66d60ef | |||
f53cdaf508 | |||
d77cca2699 | |||
1fa11b9f87 | |||
87b987daab | |||
e7c74f2287 | |||
52d5ed5ab5 | |||
d70c9bc47f | |||
b878b8cd50 | |||
921bbf01a1 | |||
9299f2d31b | |||
3a73922657 | |||
dad9e52d25 | |||
1718440d83 | |||
8a3a82c0de | |||
e2113af785 | |||
fb8ff5e614 | |||
4a9912edba | |||
6c420fc6b9 | |||
c7f31647b4 | |||
fade8d3576 | |||
fe6c46ca7a | |||
f388742c0f | |||
a37acb71d7 | |||
35e2d28f05 | |||
aecdf25a08 | |||
8c1013b50b | |||
e5ee82f223 | |||
bc69e5c902 | |||
199eb8196c | |||
65993bff5b | |||
07547bc42f | |||
24770b3677 | |||
9a7e84cf19 | |||
8a0a7a98de | |||
23747b5e40 | |||
c2a8221c7f | |||
720b7618a0 | |||
e81a438dbb | |||
13a08d9733 | |||
6a08f8be3e | |||
44c919b41b | |||
5655acaa45 | |||
d16d263f2b | |||
1d34b35a72 | |||
0a897b6526 | |||
0d3467eeea | |||
1f3dfd0dbf | |||
44f00b4169 | |||
7c81981aac | |||
04eaabf13a | |||
273d0efef8 | |||
556cdd82ec | |||
1fa2752721 | |||
6d448e865e | |||
cf9d94351f | |||
82ca9fa328 | |||
591a14c42a | |||
6d22034182 | |||
d7b480d7ad | |||
84b28effce | |||
68ea0a3eda | |||
2be2b6b7e5 | |||
3c7c565b8d | |||
22a1922ce9 | |||
7ce24d937c | |||
821fca68d9 | |||
684737cec8 | |||
deed6769b3 | |||
d91941be36 | |||
f6d79fc95b | |||
d9657fd94b | |||
029f4d105e | |||
eaa5eae5e6 | |||
acc11d70b2 | |||
aaf682871c | |||
ed4bf6c31b | |||
375c052e44 | |||
f3a097f038 | |||
53ed082088 | |||
3f0abf9039 | |||
808631dc98 | |||
6798f0a2cb | |||
0f0992e305 | |||
10c402128d | |||
4eddf91f3a | |||
7718a4cdab | |||
e0d51e823a | |||
fd5cc50e0f | |||
8abb5c3b6e | |||
85de1ffbdb | |||
d5a23e0fbe | |||
69d13d90b5 | |||
49cacd8d9c | |||
4f978540de | |||
982683f1ec | |||
3f3132a860 | |||
ee2a2eb429 | |||
01aca56c1d | |||
c385619071 | |||
2f9cea3917 | |||
4825d1cf4a | |||
dfb809452a | |||
07e1aca304 | |||
781464fe74 | |||
a1aad2f381 | |||
2a4f8c3851 | |||
0415fb5f8d | |||
118dceb1ed | |||
f14e310721 | |||
47b6990c26 | |||
823c9b0e57 | |||
3b47b689f7 | |||
cca283c332 | |||
c47e858202 | |||
e75121ef20 | |||
b0c743f0e6 | |||
d5eaa6d161 | |||
fd9c72499a | |||
776a857ba7 | |||
815c7c3451 | |||
12be2143d1 | |||
a887a34c0f | |||
fc32e170f2 | |||
4b9ca19510 | |||
01eb2ddccc | |||
5fc2467b25 | |||
8bf5603afc | |||
39ee17fb84 | |||
c15b864bd3 | |||
10fba583b7 | |||
906719cd3b | |||
b6476accfa | |||
ef6fc41db7 | |||
1fdda2e2da | |||
783f275bba | |||
c555e598b5 | |||
95482003c8 | |||
dc8472fda4 | |||
b97fb04d64 | |||
5e66efc180 | |||
e28b18a996 | |||
da64f0cc9a | |||
c19fe6ad0b | |||
1f87c0fe70 | |||
111c6c52d9 | |||
aae101a343 | |||
c57f537d92 | |||
551f6892b5 | |||
77ab79e3b1 | |||
970133faad | |||
c3e45054b9 | |||
3dcfcccf2b | |||
3f1a2f0e5d | |||
9cff486d35 | |||
cbd79ea3a5 | |||
97c9a24561 | |||
83f2ff7591 | |||
492b7fde6b | |||
412dee6d0b | |||
f1df19ed9b | |||
264dff6565 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.direnv/
|
||||
.pre-commit-config.yaml
|
@ -1,7 +1,5 @@
|
||||
# Nixos config
|
||||
|
||||
Very alpha,
|
||||
don't look.
|
||||
My personal nixos config.
|
||||
|
||||
|
||||
Fuck off already!
|
||||
I try to keep it minimal and simple to maintain, otherwise I won't be able to maintain it for long.
|
||||
|
467
flake.lock
467
flake.lock
@ -1,5 +1,27 @@
|
||||
{
|
||||
"nodes": {
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_4",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713532798,
|
||||
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -16,6 +38,52 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"revCount": 57,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"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_4": {
|
||||
"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-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
@ -24,11 +92,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706830856,
|
||||
"narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=",
|
||||
"lastModified": 1712014858,
|
||||
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f",
|
||||
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -41,6 +109,60 @@
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
@ -55,7 +177,65 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_5": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_6": {
|
||||
"inputs": {
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hb-downloader",
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
@ -64,11 +244,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1703887061,
|
||||
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -77,6 +257,49 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"pre-commit-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"
|
||||
}
|
||||
},
|
||||
"hb-downloader": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710853817,
|
||||
"narHash": "sha256-Fn3lxKgi3BGWO2ku9LSZaNWTu1ls+BZjokPHElHzlpk=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "867786099aca217af82c58122c4c54db847dbfdd",
|
||||
"revCount": 8,
|
||||
"type": "git",
|
||||
"url": "file:///home/crony/Documents/develop/hb-downloader"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "file:///home/crony/Documents/develop/hb-downloader"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -84,11 +307,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1707467182,
|
||||
"narHash": "sha256-/Bw/xgCXfj4nXDd8Xq+r1kaorfsYkkomMf5w5MpsDyA=",
|
||||
"lastModified": 1714430505,
|
||||
"narHash": "sha256-SSJQ/KOy8uISnoZgqDoRha7g7PFLSFP/BtMWm0wUz8Q=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "5b9156fa9a8b8beba917b8f9adbfd27bf63e16af",
|
||||
"rev": "f8e6694edabe4aaa7a85aac47b43ea5d978b116d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -105,11 +328,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706955260,
|
||||
"narHash": "sha256-W3y0j77IDVbmbajudHoUr46RpswujUCl+D5Vru53UsI=",
|
||||
"lastModified": 1714343445,
|
||||
"narHash": "sha256-OzD1P0o46uD3Ix4ZI/g9z3YAeg+4g+W3qctB6bNOReo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "880d9bc2110f7cae59698f715b8ca42cdc53670c",
|
||||
"rev": "9fe79591c1005ce6f93084ae7f7dab0a2891440d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -126,11 +349,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706833576,
|
||||
"narHash": "sha256-w7BL0EWRts+nD1lbLECIuz6fRzmmV+z8oWwoY7womR0=",
|
||||
"lastModified": 1713946171,
|
||||
"narHash": "sha256-lc75rgRQLdp4Dzogv5cfqOg6qYc5Rp83oedF2t0kDp8=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "bdbae6ecff8fcc322bf6b9053c0b984912378af7",
|
||||
"rev": "230a197063de9287128e2c68a7a4b0cd7d0b50a7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -141,11 +364,59 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1707268954,
|
||||
"narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=",
|
||||
"lastModified": 1710765496,
|
||||
"narHash": "sha256-p7ryWEeQfMwTB6E0wIUd5V2cFTgq+DRRBz2hYGnJZyA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e367f7a1fb93137af22a3908f00b9a35e2d286a7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1710695816,
|
||||
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1710695816,
|
||||
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1714253743,
|
||||
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1",
|
||||
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -155,22 +426,40 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1710765496,
|
||||
"narHash": "sha256-p7ryWEeQfMwTB6E0wIUd5V2cFTgq+DRRBz2hYGnJZyA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e367f7a1fb93137af22a3908f00b9a35e2d286a7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"home-manager": "home-manager_2",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
"pre-commit-hooks": "pre-commit-hooks_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1707545157,
|
||||
"narHash": "sha256-w4dubmw//nocfi2/KkvM1SLtDQUhIFfVsXDWf3zZTLk=",
|
||||
"lastModified": 1714428171,
|
||||
"narHash": "sha256-HG7+mfvYZVwp1kkv1mmJVo+wh2caUiFP95NhQ534c2w=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "66c069c48db4b67fd0d536128b000684a5f72f5b",
|
||||
"rev": "35c0f714578fad139426dbf720725db45c8b170b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -182,8 +471,30 @@
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710843117,
|
||||
"narHash": "sha256-b6iKQeHegzpc697rxTPA3bpwGN3m50eLCgdQOmceFuE=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "e8dc1b4fe80c6fcededde7700e6a23bcdf7f3347",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks_2": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-utils": "flake-utils_5",
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
@ -194,11 +505,33 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1706424699,
|
||||
"narHash": "sha256-Q3RBuOpZNH2eFA1e+IHgZLAOqDD9SKhJ/sszrL8bQD4=",
|
||||
"lastModified": 1713954846,
|
||||
"narHash": "sha256-RWFafuSb5nkWGu8dDbW7gVb8FOQOPqmX/9MlxUUDguw=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf",
|
||||
"rev": "6fb82e44254d6a0ece014ec423cb62d92435336f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks_3": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-utils": "flake-utils_6",
|
||||
"gitignore": "gitignore_3",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713954846,
|
||||
"narHash": "sha256-RWFafuSb5nkWGu8dDbW7gVb8FOQOPqmX/9MlxUUDguw=",
|
||||
"owner": "cachix",
|
||||
"repo": "pre-commit-hooks.nix",
|
||||
"rev": "6fb82e44254d6a0ece014ec423cb62d92435336f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -209,9 +542,12 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"hb-downloader": "hb-downloader",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixvim": "nixvim"
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixvim": "nixvim",
|
||||
"pre-commit-hooks": "pre-commit-hooks_3"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@ -228,6 +564,81 @@
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_6": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
20
flake.nix
20
flake.nix
@ -4,6 +4,10 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -13,9 +17,15 @@
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hb-downloader = {
|
||||
url = "git+file:///home/crony/Documents/develop/hb-downloader";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, home-manager, ... }: {
|
||||
outputs = inputs@{ self, nixpkgs, flake-utils, pre-commit-hooks, home-manager
|
||||
, ... }: {
|
||||
nixosConfigurations = {
|
||||
default = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
@ -27,13 +37,15 @@
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.crony = {
|
||||
imports = [
|
||||
./home-manager/home.nix
|
||||
];
|
||||
imports = [ ./home-manager/home.nix ];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
devShells.x86_64-linux.default = let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in (import ./shell.nix { inherit pkgs pre-commit-hooks; });
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
{ inputs, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Basic user info
|
||||
@ -9,73 +9,108 @@
|
||||
home.stateVersion = "23.11";
|
||||
|
||||
# Imports
|
||||
imports =
|
||||
[
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
imports = [
|
||||
./modules/gpg.nix
|
||||
./modules/btop.nix
|
||||
./modules/mpv.nix
|
||||
./modules/tmux.nix
|
||||
./modules/nnn.nix
|
||||
./modules/dmenu.nix
|
||||
./modules/mangohud.nix
|
||||
./modules/shell.nix
|
||||
./modules/nvim.nix
|
||||
./modules/restic.nix
|
||||
# ./modules/theming.nix # Not needed when using plasma
|
||||
./modules/plasma.nix
|
||||
./modules/alacritty.nix
|
||||
./modules/newsboat.nix
|
||||
# ./modules/helix.nix
|
||||
./modules/tofi.nix
|
||||
./modules/vkbasalt.nix
|
||||
./modules/nushell.nix
|
||||
];
|
||||
|
||||
|
||||
# My packages
|
||||
home.packages = with pkgs; [
|
||||
librewolf # Nice privacy browser
|
||||
thunderbird # Nice mail client
|
||||
qutebrowser # Nice browser in general
|
||||
discord # Fuck the fact I have to use it
|
||||
armcord # Nicer discord client
|
||||
mattermost-desktop # Mattermost
|
||||
keepassxc # Best password manager
|
||||
buku # Nice bookmark manager
|
||||
bukubrow # Nice bookmark manager browser support
|
||||
rclone # Best sync client in the world
|
||||
age # Simple file encryption
|
||||
alacritty # Best terminal
|
||||
nitch # Simple system info
|
||||
hyperfine # Program benchmarking
|
||||
tldr # simpler manpages
|
||||
jq # Json parser
|
||||
pup # html parser
|
||||
neofetch # Neo
|
||||
libarchive # bsdtar
|
||||
unrar # Extract rar archives
|
||||
imagemagick # image tools
|
||||
ffmpeg # video manupilation
|
||||
glow # markdown viewer
|
||||
piper # ratbagd mice config gui
|
||||
krita # best drawing program
|
||||
tutanota-desktop # fjdlkfjldjflkd
|
||||
delfin # jellyfin client
|
||||
nurl # nix tool
|
||||
ripgrep # Neovim telescope dependency
|
||||
nurl # nix git config tool
|
||||
lazygit # Amazing git tui
|
||||
lm_sensors # Sensor monitoring tool
|
||||
feather # Amazing monero wallet
|
||||
heroic # Epic games/gog game launcher
|
||||
beets # Music tagger
|
||||
nicotine-plus # Amazing soulseek client
|
||||
prismlauncher # Best minecraft launcher
|
||||
aria2 # Fast download manager
|
||||
starsector # Nice little game I got coaxed into trying
|
||||
protonup-qt # Proton ge manager
|
||||
protontricks # Tricks
|
||||
ungoogled-chromium # For sites that don't work with firefox based browsers
|
||||
abcde # CLI audio ripper
|
||||
jellyfin-mpv-shim # Jellyfin media with mpv
|
||||
pandoc # I wish I didn't have to use it
|
||||
p7zip # 7Zip
|
||||
protonvpn-gui # Protonvpn
|
||||
mumble # Mumble gui
|
||||
feishin # Jellyfin player
|
||||
arx-libertatis # Arx fatalis cross platform engine port
|
||||
devilutionx # Diablo 1 source port
|
||||
antimicrox # Controller mapper
|
||||
godot_4 # FOSS Game Engine
|
||||
nheko # Matrix client
|
||||
(nerdfonts.override { fonts = [ "CascadiaCode" ]; }) # Best font
|
||||
|
||||
# My custom dmenu build
|
||||
(dmenu.overrideAttrs (oldAttrs: rec {
|
||||
src = builtins.fetchGit {
|
||||
url = "https://code.cronyakatsuki.xyz/crony/dmenu";
|
||||
rev = "10dcddf14b38cfd965ab27f084139513baed70bf";
|
||||
};
|
||||
}))
|
||||
|
||||
# # You can also create simple shell scripts directly inside your
|
||||
# # configuration. For example, this adds a command 'my-hello' to your
|
||||
# # environment:
|
||||
# (writeShellScriptBin "my-hello" ''
|
||||
# echo "Hello, ${config.home.username}!"
|
||||
# '')
|
||||
# (retroarch.override {
|
||||
# cores = with libretro; [
|
||||
# snes9x
|
||||
# mgba
|
||||
# gambatte
|
||||
# flycast
|
||||
# genesis-plus-gx
|
||||
# mupen64plus
|
||||
# melonds
|
||||
# fceumm
|
||||
# beetle-saturn
|
||||
# ];
|
||||
# }) # Retroarch with cores
|
||||
# dolphin-emu # Gamecube/wii emulator
|
||||
# duckstation # Playstation 1 emulator
|
||||
# pcsx2 # Playstation 2 emulator
|
||||
# ppsspp-sdl-wayland # Playstation portable emulator
|
||||
(callPackage ./modules/scripts.nix { inherit pkgs; }) # My scripts
|
||||
(callPackage ./modules/comet-gog.nix {
|
||||
inherit pkgs;
|
||||
}) # Comet for gog achievements
|
||||
inputs.hb-downloader.packages.${pkgs.system}.default # My custom humble bundle bulk link extractor for aria2 list format
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = {
|
||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||
# # symlink to the Nix store copy. ".screenrc".source = dotfiles/screenrc;
|
||||
# # You can also set the file content immediately.
|
||||
# ".gradle/gradle.properties".text = ''
|
||||
# org.gradle.console=verbose
|
||||
# org.gradle.daemon.idletimeout=3600000
|
||||
# '';
|
||||
};
|
||||
|
||||
# Environmental variables I can't live without
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
BROWSER = "qutebrowser";
|
||||
TERMINAL = "alacritty";
|
||||
SECOND_BRAIN = "$HOME/Documents/sb";
|
||||
};
|
||||
|
||||
# Fix environmental variables not loaded in plasma x11
|
||||
@ -84,519 +119,11 @@
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# gpg settings
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
};
|
||||
|
||||
# Make it use kde for flkdsjlkfdlsjflkdsjflsdjklfjdsklf
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentryFlavor = "qt";
|
||||
};
|
||||
|
||||
# Btop settings
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "catppuccin_frappe";
|
||||
vim_keys = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Mpv settings
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
config = {
|
||||
ytdl-format="bestvideo[height<=?1080][fps<=?60][vcodec!=?vp9]+bestaudio/best";
|
||||
ytdl-raw-options="extractor-args=youtube:player-client=android";
|
||||
fs=true;
|
||||
force-window="immediate";
|
||||
screenshot-template="%F - [%P]v%#01n";
|
||||
sub-file-paths="Subs;subs";
|
||||
sub-auto="all";
|
||||
slang="english,eng,en";
|
||||
};
|
||||
scripts = with pkgs.mpvScripts; [ mpris sponsorblock uosc thumbfast quality-menu ];
|
||||
};
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
disableConfirmationPrompt = true;
|
||||
escapeTime = 0;
|
||||
keyMode = "vi";
|
||||
mouse = true;
|
||||
plugins = with pkgs; [
|
||||
tmuxPlugins.sensible
|
||||
tmuxPlugins.yank
|
||||
{
|
||||
plugin = tmuxPlugins.catppuccin;
|
||||
extraConfig = ''
|
||||
set -g @catppuccin_flavour 'frappe'
|
||||
set -g @catppuccin_window_right_separator "█ "
|
||||
set -g @catppuccin_window_number_position "right"
|
||||
set -g @catppuccin_window_middle_separator " | "
|
||||
|
||||
set -g @catppuccin_window_default_fill "none"
|
||||
|
||||
set -g @catppuccin_window_current_fill "all"
|
||||
|
||||
set -g @catppuccin_status_modules_right "application session date_time"
|
||||
set -g @catppuccin_status_left_separator "█"
|
||||
set -g @catppuccin_status_right_separator "█"
|
||||
'';
|
||||
}
|
||||
];
|
||||
prefix = "C-Space";
|
||||
terminal = "alacritty";
|
||||
extraConfig = ''
|
||||
# Fix colors
|
||||
set-option -sa terminal-overrides ",alacritty:Tc"
|
||||
|
||||
# start window and panes indexing at 1
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# Faster statusbar updates
|
||||
set-option -g status-interval 1
|
||||
|
||||
# Easier movement
|
||||
bind -n M-K previous-window
|
||||
bind -n M-J next-window
|
||||
|
||||
# Better split bindings
|
||||
bind "'" split-window -v -c "#{pane_current_path}"
|
||||
bind '\' split-window -h -c "#{pane_current_path}"
|
||||
|
||||
# Vim keybindings for pane movement
|
||||
setw -g mode-keys vi
|
||||
bind-key h select-pane -L
|
||||
bind-key j select-pane -D
|
||||
bind-key k select-pane -U
|
||||
bind-key l select-pane -R
|
||||
|
||||
# Status bar border
|
||||
setw -g pane-border-status top
|
||||
setw -g pane-border-format '─'
|
||||
|
||||
# Bar to top
|
||||
set-option -g status-position top
|
||||
'';
|
||||
};
|
||||
|
||||
# NNN Settings
|
||||
programs.nnn = {
|
||||
enable = true;
|
||||
package = pkgs.nnn.override ({ withNerdIcons = true; });
|
||||
bookmarks = { d = "~/Documents"; D = "~/Downloads"; p = "~/Pictures"; v = "~/Videos";};
|
||||
extraPackages = with pkgs; [ pmount ffmpegthumbnailer mediainfo ueberzugpp poppler_utils gnome-epub-thumbnailer nsxiv ];
|
||||
plugins.mappings = { u = "nmount"; c = "chksum"; r = "gitroot"; v = "imgview"; m = "mtpmount"; d = "xdgdefault"; x = "togglex"; p = "preview-tui"; };
|
||||
plugins.src = (pkgs.fetchFromGitHub { owner = "jarun"; repo = "nnn"; rev = "v4.9"; sha256 = "sha256-g19uI36HyzTF2YUQKFP4DE2ZBsArGryVHhX79Y0XzhU=";}) + "/plugins";
|
||||
};
|
||||
|
||||
# Mangohud settings
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# GPU SETTINGS
|
||||
gpu_stats = true;
|
||||
gpu_temp = true;
|
||||
gpu_core_clock = true;
|
||||
gpu_power = true;
|
||||
gpu_text = "GPU";
|
||||
gpu_load_change = true;
|
||||
gpu_load_color = "39F900,FDFD09,B22222";
|
||||
# CPU SETTINGS
|
||||
cpu_stats = true;
|
||||
cpu_temp = true;
|
||||
cpu_text = "CPU";
|
||||
cpu_mhz = true;
|
||||
cpu_load_change = true;
|
||||
cpu_load_value = "60,90";
|
||||
cpu_load_color = "39F900,FDFD09,B22222";
|
||||
# Vram/Ram/Swap
|
||||
vram = true;
|
||||
ram = true;
|
||||
swap = true;
|
||||
# Fps settings
|
||||
fps = true;
|
||||
fps_sampling_period = "1000";
|
||||
fps_color_change = true;
|
||||
fps_value = "30,60";
|
||||
fps_color = "B22222,FDFD09,39F900";
|
||||
frametime = true;
|
||||
# Misc
|
||||
gpu_name = true;
|
||||
vulkan_driver = true;
|
||||
show_fps_limit = true;
|
||||
resolution = true;
|
||||
round_corners = "5";
|
||||
};
|
||||
};
|
||||
|
||||
# But we all know I love zsh
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
enableCompletion = true;
|
||||
history.path = "${config.xdg.dataHome}/zsh/history";
|
||||
dotDir = ".config/zsh";
|
||||
envExtra = ''
|
||||
# NNN settings
|
||||
export NNN_FIFO="/tmp/nnn.fifo"
|
||||
export NNN_SSHFS="sshfs -o follow_symlinks"
|
||||
export NNN_TERMINAL="alacritty --class preview,preview"
|
||||
|
||||
# Catppuccin colors nnn
|
||||
BLK="03" CHR="03" DIR="04" EXE="02" REG="07" HARDLINK="05" SYMLINK="05" MISSING="08" ORPHAN="01" FIFO="06" SOCK="03" UNKNOWN="01"
|
||||
export NNN_COLORS="#04020301;4231"
|
||||
export NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$UNKNOWN"
|
||||
'';
|
||||
initExtra = ''
|
||||
# VI Mode escape timeout fix
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
# Substring search settings
|
||||
export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="bg=blue,fg=black,bold"
|
||||
export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=black,bold'
|
||||
bindkey -M vicmd 'k' history-substring-search-up
|
||||
bindkey -M vicmd 'j' history-substring-search-down
|
||||
'';
|
||||
initExtraFirst = ''
|
||||
nitch
|
||||
'';
|
||||
zplug = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
{ name = "zap-zsh/supercharge"; }
|
||||
{ name = "zap-zsh/completions"; }
|
||||
{ name = "zap-zsh/vim"; }
|
||||
{ name = "chivalryq/git-alias"; }
|
||||
{ name = "zdharma-continuum/fast-syntax-highlighting"; }
|
||||
{ name = "MichaelAquilina/zsh-you-should-use"; }
|
||||
{ name = "zsh-users/zsh-history-substring-search"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Eza settings
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
git = true;
|
||||
icons = true;
|
||||
};
|
||||
|
||||
# Zoxide settings
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
# Starhip settings
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
# Fzf settings
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
# Nixvim
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
options = {
|
||||
hlsearch = false;
|
||||
incsearch = true;
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
tabstop = 4;
|
||||
softtabstop = 4;
|
||||
shiftwidth = 4;
|
||||
expandtab = true;
|
||||
smartindent = true;
|
||||
mouse = "";
|
||||
breakindent = true;
|
||||
undofile = true;
|
||||
swapfile = true;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
signcolumn = "yes";
|
||||
completeopt = "menuone,noselect";
|
||||
updatetime = 50;
|
||||
timeoutlen = 300;
|
||||
colorcolumn = "80";
|
||||
showmode = false;
|
||||
laststatus = 3;
|
||||
splitbelow = true;
|
||||
splitright = true;
|
||||
};
|
||||
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
maplocalleader = ";";
|
||||
};
|
||||
|
||||
extraConfigLuaPost = ''
|
||||
vim.notify = require("mini.notify").make_notify()
|
||||
'';
|
||||
plugins = {
|
||||
harpoon = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
addFile = "<leader>a";
|
||||
toggleQuickMenu = "<C-e>";
|
||||
navFile = { "1" = "<C-j>"; "2" = "<C-k>"; "3" = "<C-l>"; "4" = "<C-;>"; };
|
||||
};
|
||||
};
|
||||
|
||||
oil = {
|
||||
enable = true;
|
||||
defaultFileExplorer = true;
|
||||
extraOptions = { show_hidden = true; };
|
||||
};
|
||||
|
||||
treesitter.enable = true;
|
||||
|
||||
gitsigns = {
|
||||
enable = true;
|
||||
signs = {
|
||||
add.text = "▎";
|
||||
change.text = "▎";
|
||||
changedelete.text = "▎";
|
||||
delete.text = "▎";
|
||||
topdelete.text = "▎";
|
||||
untracked.text = "▎";
|
||||
};
|
||||
onAttach.function = ''
|
||||
function(buffer)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, desc)
|
||||
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
|
||||
end
|
||||
|
||||
-- stylua: ignore start
|
||||
map("n", "]g", gs.next_hunk, "Next git hunk")
|
||||
map("n", "[g", gs.prev_hunk, "Previous git hunk")
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
||||
mini = {
|
||||
enable = true;
|
||||
modules = {
|
||||
statusline = {
|
||||
set_vim_settings = false;
|
||||
};
|
||||
comment = {};
|
||||
notify = {};
|
||||
};
|
||||
};
|
||||
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions = {
|
||||
fzf-native = {
|
||||
enable = true;
|
||||
fuzzy = true;
|
||||
overrideGenericSorter = true;
|
||||
overrideFileSorter = true;
|
||||
caseMode = "smart_case";
|
||||
};
|
||||
ui-select.enable = true;
|
||||
};
|
||||
keymaps = {
|
||||
"<leader>pf" = "find_files";
|
||||
"<C-p>" = "git_files";
|
||||
"<leader>vh" = "help_tags";
|
||||
"<leader>ps" = "grep_string";
|
||||
};
|
||||
};
|
||||
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
lua-ls.enable = true;
|
||||
nil_ls.enable = true;
|
||||
marksman.enable = true;
|
||||
};
|
||||
keymaps = {
|
||||
diagnostic = {
|
||||
"<leader>vd" = "open_float";
|
||||
"[d" = "goto_next";
|
||||
"]d" = "goto_prev";
|
||||
};
|
||||
lspBuf = {
|
||||
K = "hover";
|
||||
gd = "definition";
|
||||
gD = "declaration";
|
||||
gi = "implementation";
|
||||
"<leader>lca" = "code_action";
|
||||
"<leader>lrn" = "rename";
|
||||
"<C-h>" = "signature_help";
|
||||
};
|
||||
};
|
||||
|
||||
preConfig = ''
|
||||
local function sign_define(args)
|
||||
vim.fn.sign_define(args.name, {
|
||||
texthl = args.name,
|
||||
text = args.text,
|
||||
numhl = "",
|
||||
})
|
||||
end
|
||||
|
||||
sign_define({ name = "DiagnosticSignError", text = "E" })
|
||||
sign_define({ name = "DiagnosticSignWarn", text = "W" })
|
||||
sign_define({ name = "DiagnosticSignHint", text = "H" })
|
||||
sign_define({ name = "DiagnosticSignInfo", text = "I" })
|
||||
'';
|
||||
};
|
||||
|
||||
nvim-cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
sources = [
|
||||
{name = "nvim_lsp";}
|
||||
{name = "path";}
|
||||
{name = "snippy";}
|
||||
];
|
||||
snippet.expand = "snippy";
|
||||
mapping = {
|
||||
"<C-l>" = "cmp.mapping.confirm({ select = false })";
|
||||
"<C-j>" = {
|
||||
action = ''
|
||||
function(fallback)
|
||||
if cmp.visible then
|
||||
cmp.select_next_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
||||
'';
|
||||
modes = [ "i" "s" ];
|
||||
};
|
||||
"<C-k>" = {
|
||||
action = ''
|
||||
function(fallback)
|
||||
if cmp.visible then
|
||||
cmp.select_prev_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
||||
'';
|
||||
modes = [ "i" "s" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
flavour = "frappe";
|
||||
styles = {
|
||||
functions = [ "bold" ];
|
||||
keywords = [ "bold" ];
|
||||
};
|
||||
};
|
||||
extraPlugins = with pkgs.vimPlugins; [
|
||||
vim-snippets
|
||||
];
|
||||
};
|
||||
|
||||
##-- Restic Timers And Services --##
|
||||
|
||||
# Restic backup
|
||||
systemd.user.services = {
|
||||
restic_backup = {
|
||||
Unit.Description = "Restic backup service";
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (
|
||||
pkgs.writeShellScript "restic-backup" ''
|
||||
. /etc/restic/local
|
||||
restic backup --files-from /home/crony/.config/restic/list --verbose && restic forget --keep-last 10 --keep-daily 7 --keep-weekly 5 --keep-monthly 12
|
||||
. /etc/restic/online
|
||||
restic backup --files-from /home/crony/.config/restic/list --verbose && restic forget --keep-last 10 --keep-daily 7 --keep-weekly 5 --keep-monthly 12
|
||||
''
|
||||
);
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
systemd.user.timers = {
|
||||
restic_backup = {
|
||||
Unit.Description = "Restic backup timer";
|
||||
Timer = {
|
||||
OnBootSec = "5m";
|
||||
OnUnitActiveSec = "6h";
|
||||
};
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
# Restic check
|
||||
systemd.user.services = {
|
||||
restic_check = {
|
||||
Unit.Description = "Restic check service";
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (
|
||||
pkgs.writeShellScript "restic-check" ''
|
||||
. /etc/restic/local
|
||||
restic check --read-data-subset=10%
|
||||
. /etc/restic/online
|
||||
restic check --read-data-subset=10%
|
||||
''
|
||||
);
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
systemd.user.timers = {
|
||||
restic_check = {
|
||||
Unit.Description = "Restic check timer";
|
||||
Timer = {
|
||||
OnCalendar="Thu *-*-* 18:00:00";
|
||||
};
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
# Restic prune
|
||||
systemd.user.services = {
|
||||
restic_prune = {
|
||||
Unit.Description = "Restic prune service";
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (
|
||||
pkgs.writeShellScript "restic-prune" ''
|
||||
. /etc/restic/local
|
||||
restic prune
|
||||
. /etc/restic/online
|
||||
restic prune
|
||||
''
|
||||
);
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
systemd.user.timers = {
|
||||
restic_prune = {
|
||||
Unit.Description = "Restic prune timer";
|
||||
Timer = {
|
||||
OnCalendar="Fri *-*-* 18:00:00";
|
||||
};
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
# Home manager settings
|
||||
dconf.settings = {
|
||||
"org/virt-manager/virt-manager/connections" = {
|
||||
autoconnect = [ "qemu:///system" ];
|
||||
uris = [ "qemu:///system" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
9
home-manager/modules/alacritty.nix
Normal file
9
home-manager/modules/alacritty.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ inputs, ... }: {
|
||||
# Install alacritty
|
||||
programs.alacritty.enable = true;
|
||||
|
||||
# Setup my config file
|
||||
home.file = {
|
||||
".config/alacritty/alacritty.toml".source = ./confs/alacritty.toml;
|
||||
};
|
||||
}
|
10
home-manager/modules/btop.nix
Normal file
10
home-manager/modules/btop.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ inputs, ... }: {
|
||||
# Btop settings
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "catppuccin_frappe";
|
||||
vim_keys = true;
|
||||
};
|
||||
};
|
||||
}
|
20
home-manager/modules/comet-gog.nix
Normal file
20
home-manager/modules/comet-gog.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ pkgs, ... }:
|
||||
with pkgs;
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "comet-gog";
|
||||
version = "e313c8a";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "imLinguin";
|
||||
repo = "comet";
|
||||
rev = "42768af2056c5bc8ed2e51f8ff6e933d8802fc5d";
|
||||
hash = "sha256-npf+Yb9TWp0PMbpHPRKF05RVHLj9iaBgl5lSYeeMfHQ=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
PROTOC = "${protobuf}/bin/protoc";
|
||||
PROTOC_INCLUDE = "${protobuf}/include";
|
||||
nativeBuildInputs = [ protobuf ];
|
||||
|
||||
cargoLock.lockFile = src + /Cargo.lock;
|
||||
}
|
110
home-manager/modules/confs/alacritty.toml
Normal file
110
home-manager/modules/confs/alacritty.toml
Normal file
@ -0,0 +1,110 @@
|
||||
[colors.primary]
|
||||
background = "#303446"
|
||||
foreground = "#C6D0F5"
|
||||
dim_foreground = "#C6D0F5"
|
||||
bright_foreground = "#C6D0F5"
|
||||
|
||||
[colors.cursor]
|
||||
text = "#303446"
|
||||
cursor = "#F2D5CF"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = "#303446"
|
||||
cursor = "#BABBF1"
|
||||
|
||||
[colors.search.matches]
|
||||
foreground = "#303446"
|
||||
background = "#A5ADCE"
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = "#303446"
|
||||
background = "#A6D189"
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = "#303446"
|
||||
background = "#A5ADCE"
|
||||
|
||||
[colors.hints.start]
|
||||
foreground = "#303446"
|
||||
background = "#E5C890"
|
||||
|
||||
[colors.hints.end]
|
||||
foreground = "#303446"
|
||||
background = "#A5ADCE"
|
||||
|
||||
[colors.selection]
|
||||
text = "#303446"
|
||||
background = "#F2D5CF"
|
||||
|
||||
[colors.normal]
|
||||
black = "#51576D"
|
||||
red = "#E78284"
|
||||
green = "#A6D189"
|
||||
yellow = "#E5C890"
|
||||
blue = "#8CAAEE"
|
||||
magenta = "#F4B8E4"
|
||||
cyan = "#81C8BE"
|
||||
white = "#B5BFE2"
|
||||
|
||||
[colors.bright]
|
||||
black = "#626880"
|
||||
red = "#E78284"
|
||||
green = "#A6D189"
|
||||
yellow = "#E5C890"
|
||||
blue = "#8CAAEE"
|
||||
magenta = "#F4B8E4"
|
||||
cyan = "#81C8BE"
|
||||
white = "#A5ADCE"
|
||||
|
||||
[colors.dim]
|
||||
black = "#51576D"
|
||||
red = "#E78284"
|
||||
green = "#A6D189"
|
||||
yellow = "#E5C890"
|
||||
blue = "#8CAAEE"
|
||||
magenta = "#F4B8E4"
|
||||
cyan = "#81C8BE"
|
||||
white = "#B5BFE2"
|
||||
|
||||
[[colors.indexed_colors]]
|
||||
index = 16
|
||||
color = "#EF9F76"
|
||||
|
||||
[[colors.indexed_colors]]
|
||||
index = 17
|
||||
color = "#F2D5CF"
|
||||
|
||||
[font]
|
||||
builtin_box_drawing = true
|
||||
size = 11
|
||||
|
||||
[font.bold]
|
||||
family = "CaskaydiaCove Nerd Font"
|
||||
style = "Bold"
|
||||
|
||||
[font.bold_italic]
|
||||
family = "CaskaydiaCove Nerd Font"
|
||||
style = "Bold Italic"
|
||||
|
||||
[font.italic]
|
||||
family = "CaskaydiaCove Nerd Font"
|
||||
style = "Italic"
|
||||
|
||||
[font.normal]
|
||||
family = "CaskaydiaCove Nerd Font"
|
||||
style = "Regular"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "ToggleFullscreen"
|
||||
key = "F11"
|
||||
|
||||
[window]
|
||||
decorations = "full"
|
||||
dynamic_padding = true
|
||||
dynamic_title = true
|
||||
opacity = 1
|
||||
startup_mode = "Maximized"
|
||||
|
||||
[window.padding]
|
||||
x = 10
|
||||
y = 10
|
53
home-manager/modules/confs/newsboat
Normal file
53
home-manager/modules/confs/newsboat
Normal file
@ -0,0 +1,53 @@
|
||||
# unbind keys
|
||||
unbind-key ENTER
|
||||
unbind-key j
|
||||
unbind-key k
|
||||
unbind-key J
|
||||
unbind-key K
|
||||
|
||||
# bind keys - vim style
|
||||
bind-key j down
|
||||
bind-key k up
|
||||
bind-key l open
|
||||
bind-key h quit
|
||||
|
||||
|
||||
bind-key g home
|
||||
bind-key G end
|
||||
bind-key a toggle-article-read
|
||||
auto-reload yes
|
||||
reload-threads 50
|
||||
confirm-mark-feed-read yes
|
||||
prepopulate-query-feeds yes
|
||||
|
||||
browser "dmenu-link-handler $U"
|
||||
|
||||
urls-source "miniflux"
|
||||
miniflux-url "https://feed.cronyakatsuki.xyz/"
|
||||
miniflux-login "crony"
|
||||
miniflux-passwordeval "news-pass"
|
||||
miniflux-min-items 0
|
||||
|
||||
download-path "~/downs"
|
||||
max-downloads 2
|
||||
player "mpv"
|
||||
|
||||
# Catppuccin colors
|
||||
color listnormal color15 default
|
||||
color listnormal_unread color2 default
|
||||
color listfocus_unread color2 color0
|
||||
color listfocus default color0
|
||||
color background default default
|
||||
color article default default
|
||||
color end-of-text-marker color8 default
|
||||
color info color4 color8
|
||||
color hint-separator default color8
|
||||
color hint-description default color8
|
||||
color title color14 color8
|
||||
|
||||
highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold
|
||||
highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold
|
||||
|
||||
highlight article "\\((link|image|video)\\)" color8 default
|
||||
highlight article "https?://[^ ]+" color4 default
|
||||
highlight article "\[[0-9]+\]" color6 default bold
|
4
home-manager/modules/confs/nushell/config.nu
Normal file
4
home-manager/modules/confs/nushell/config.nu
Normal file
@ -0,0 +1,4 @@
|
||||
$env.config = {
|
||||
show_banner: false,
|
||||
edit_mode: vi,
|
||||
}
|
22
home-manager/modules/confs/tofi
Normal file
22
home-manager/modules/confs/tofi
Normal file
@ -0,0 +1,22 @@
|
||||
anchor = top
|
||||
width = 100%
|
||||
height = 28
|
||||
horizontal = true
|
||||
font-size = 12
|
||||
prompt-text = "Run: "
|
||||
font = CaskaydiaCove Nerd Font
|
||||
history = false
|
||||
require-match = false
|
||||
terminal = alacritty
|
||||
outline-width = 0
|
||||
border-width = 0
|
||||
min-input-width = 120
|
||||
result-spacing = 15
|
||||
padding-top = 4
|
||||
padding-bottom = 0
|
||||
padding-left = 5
|
||||
padding-right = 5
|
||||
text-color = #c6d0f5
|
||||
prompt-color = #e78284
|
||||
selection-color = #e5c890
|
||||
background-color = #303446
|
7
home-manager/modules/confs/vkBasalt.conf
Normal file
7
home-manager/modules/confs/vkBasalt.conf
Normal file
@ -0,0 +1,7 @@
|
||||
effects = cas:fxaa
|
||||
|
||||
casSharpness = 0.0
|
||||
|
||||
fxaaQualitySubpix = 0.80
|
||||
fxaaQualityEdgeThreshold = 0.125
|
||||
fxaaQualityEdgeThresholdMin = 0.0625
|
12
home-manager/modules/dmenu.nix
Normal file
12
home-manager/modules/dmenu.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
# My custom dmenu build
|
||||
(dmenu.overrideAttrs (oldAttrs: rec {
|
||||
src = builtins.fetchGit {
|
||||
url = "https://code.cronyakatsuki.xyz/crony/dmenu";
|
||||
rev = "10dcddf14b38cfd965ab27f084139513baed70bf";
|
||||
};
|
||||
}))
|
||||
];
|
||||
}
|
15
home-manager/modules/gpg.nix
Normal file
15
home-manager/modules/gpg.nix
Normal file
@ -0,0 +1,15 @@
|
||||
{ inputs, config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# gpg settings
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = "${config.xdg.dataHome}/gnupg";
|
||||
};
|
||||
|
||||
# Make it use kde for flkdsjlkfdlsjflkdsjflsdjklfjdsklf
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
};
|
||||
}
|
42
home-manager/modules/helix.nix
Normal file
42
home-manager/modules/helix.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "catppuccin_frappe";
|
||||
editor = {
|
||||
auto-pairs = false;
|
||||
mouse = false;
|
||||
line-number = "relative";
|
||||
lsp.display-messages = true;
|
||||
color-modes = true;
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
statusline = {
|
||||
left = [
|
||||
"mode"
|
||||
"file-modification-indicator"
|
||||
"diagnostics"
|
||||
"file-name"
|
||||
"read-only-indicator"
|
||||
];
|
||||
center = [ "spinner" ];
|
||||
right = [ "file-type" "separator" "position" "total-line-numbers" ];
|
||||
mode = {
|
||||
normal = "N";
|
||||
insert = "I";
|
||||
select = "V";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
languages.language = [{
|
||||
name = "nix";
|
||||
auto-format = true;
|
||||
formatter.command = "${pkgs.nixfmt-classic}/bin/nixfmt";
|
||||
}];
|
||||
extraPackages = [ pkgs.nil ];
|
||||
};
|
||||
}
|
41
home-manager/modules/mangohud.nix
Normal file
41
home-manager/modules/mangohud.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ inputs, ... }: {
|
||||
# Mangohud settings
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# GPU SETTINGS
|
||||
gpu_stats = true;
|
||||
gpu_temp = true;
|
||||
gpu_core_clock = true;
|
||||
gpu_power = true;
|
||||
gpu_text = "GPU";
|
||||
gpu_load_change = true;
|
||||
gpu_load_color = "39F900,FDFD09,B22222";
|
||||
# CPU SETTINGS
|
||||
cpu_stats = true;
|
||||
cpu_temp = true;
|
||||
cpu_text = "CPU";
|
||||
cpu_mhz = true;
|
||||
cpu_load_change = true;
|
||||
cpu_load_value = "60,90";
|
||||
cpu_load_color = "39F900,FDFD09,B22222";
|
||||
# Vram/Ram/Swap
|
||||
vram = true;
|
||||
ram = true;
|
||||
swap = true;
|
||||
# Fps settings
|
||||
fps = true;
|
||||
fps_sampling_period = "1000";
|
||||
fps_color_change = true;
|
||||
fps_value = "30,60";
|
||||
fps_color = "B22222,FDFD09,39F900";
|
||||
frametime = true;
|
||||
# Misc
|
||||
gpu_name = true;
|
||||
vulkan_driver = true;
|
||||
show_fps_limit = true;
|
||||
resolution = true;
|
||||
round_corners = "5";
|
||||
};
|
||||
};
|
||||
}
|
24
home-manager/modules/mpv.nix
Normal file
24
home-manager/modules/mpv.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
# Mpv settings
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
config = {
|
||||
ytdl-format =
|
||||
"bestvideo[height<=?1080][fps<=?60][vcodec!=?vp9]+bestaudio/best";
|
||||
ytdl-raw-options = "extractor-args=youtube:player-client=android";
|
||||
fs = true;
|
||||
force-window = "immediate";
|
||||
screenshot-template = "%F - [%P]v%#01n";
|
||||
sub-file-paths = "Subs;subs";
|
||||
sub-auto = "all";
|
||||
slang = "english,eng,en";
|
||||
};
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
mpris
|
||||
sponsorblock
|
||||
uosc
|
||||
thumbfast
|
||||
quality-menu
|
||||
];
|
||||
};
|
||||
}
|
7
home-manager/modules/newsboat.nix
Normal file
7
home-manager/modules/newsboat.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
# Install newsboat
|
||||
home.packages = [ pkgs.newsboat ];
|
||||
|
||||
# Setup my config file
|
||||
home.file = { ".config/newsboat/config".source = ./confs/newsboat; };
|
||||
}
|
38
home-manager/modules/nnn.nix
Normal file
38
home-manager/modules/nnn.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
# NNN Settings
|
||||
programs.nnn = {
|
||||
enable = true;
|
||||
package = pkgs.nnn.override ({ withNerdIcons = true; });
|
||||
bookmarks = {
|
||||
d = "~/Documents";
|
||||
D = "~/Downloads";
|
||||
p = "~/Pictures";
|
||||
v = "~/Videos";
|
||||
};
|
||||
extraPackages = with pkgs; [
|
||||
pmount
|
||||
ffmpegthumbnailer
|
||||
mediainfo
|
||||
ueberzugpp
|
||||
poppler_utils
|
||||
gnome-epub-thumbnailer
|
||||
nsxiv
|
||||
];
|
||||
plugins.mappings = {
|
||||
u = "nmount";
|
||||
c = "chksum";
|
||||
r = "gitroot";
|
||||
v = "imgview";
|
||||
m = "mtpmount";
|
||||
d = "xdgdefault";
|
||||
x = "togglex";
|
||||
p = "preview-tui";
|
||||
};
|
||||
plugins.src = (pkgs.fetchFromGitHub {
|
||||
owner = "jarun";
|
||||
repo = "nnn";
|
||||
rev = "v4.9";
|
||||
sha256 = "sha256-g19uI36HyzTF2YUQKFP4DE2ZBsArGryVHhX79Y0XzhU=";
|
||||
}) + "/plugins";
|
||||
};
|
||||
}
|
23
home-manager/modules/nushell.nix
Normal file
23
home-manager/modules/nushell.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{ pkgs, ... }: {
|
||||
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
configFile.source = ./confs/nushell/config.nu;
|
||||
extraConfig = ''
|
||||
use ${pkgs.nu_scripts}/share/nu_scripts/aliases/git/git-aliases.nu *
|
||||
use ${pkgs.nu_scripts}/share/nu_scripts/custom-completions/git/git-completions.nu *
|
||||
|
||||
use ${pkgs.nu_scripts}/share/nu_scripts/themes/nu-themes/catppuccin-mocha.nu
|
||||
|
||||
$env.config.color_config = (catppuccin-mocha)
|
||||
'';
|
||||
};
|
||||
|
||||
programs.direnv.enableNushellIntegration = true;
|
||||
|
||||
programs.eza.enableNushellIntegration = true;
|
||||
|
||||
programs.starship.enableNushellIntegration = true;
|
||||
|
||||
programs.zoxide.enableNushellIntegration = true;
|
||||
}
|
306
home-manager/modules/nvim.nix
Normal file
306
home-manager/modules/nvim.nix
Normal file
@ -0,0 +1,306 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
|
||||
|
||||
# Nixvim
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
action = "<cmd>Oil<cr>";
|
||||
key = "<leader>e";
|
||||
options = { silent = true; };
|
||||
}
|
||||
{
|
||||
action =
|
||||
"<cmd>lua require('conform').format({ bufnr = buf, lsp_fallback = true })<cr>";
|
||||
key = "<leader>f";
|
||||
options = { silent = true; };
|
||||
}
|
||||
];
|
||||
|
||||
opts = {
|
||||
hlsearch = false;
|
||||
incsearch = true;
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
tabstop = 4;
|
||||
softtabstop = 4;
|
||||
shiftwidth = 4;
|
||||
expandtab = true;
|
||||
smartindent = true;
|
||||
mouse = "";
|
||||
breakindent = true;
|
||||
undofile = true;
|
||||
swapfile = true;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
signcolumn = "yes";
|
||||
completeopt = "menuone,noselect";
|
||||
updatetime = 50;
|
||||
timeoutlen = 300;
|
||||
colorcolumn = "80";
|
||||
showmode = false;
|
||||
laststatus = 3;
|
||||
splitbelow = true;
|
||||
splitright = true;
|
||||
};
|
||||
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
maplocalleader = ";";
|
||||
};
|
||||
|
||||
extraConfigLuaPre = ''
|
||||
local autocmd = vim.api.nvim_create_autocmd
|
||||
local augroup = vim.api.nvim_create_augroup
|
||||
|
||||
-- General Settings
|
||||
local general = augroup("General Settings", { clear = true })
|
||||
|
||||
autocmd("BufEnter", {
|
||||
callback = function()
|
||||
vim.opt.formatoptions:remove { "c", "r", "o" }
|
||||
end,
|
||||
group = general,
|
||||
desc = "Disable New Line Comment",
|
||||
})
|
||||
'';
|
||||
|
||||
extraConfigLuaPost = ''
|
||||
vim.notify = require("mini.notify").make_notify()
|
||||
'';
|
||||
extraPackages = with pkgs; [
|
||||
stylua
|
||||
isort
|
||||
black
|
||||
nixfmt-classic
|
||||
jq
|
||||
shfmt
|
||||
ripgrep
|
||||
prettierd
|
||||
perl538Packages.PerlTidy
|
||||
perl538Packages.PerlCritic
|
||||
];
|
||||
plugins = {
|
||||
comment.enable = true;
|
||||
|
||||
ts-context-commentstring.enable = true;
|
||||
|
||||
todo-comments.enable = true;
|
||||
|
||||
lspkind = {
|
||||
enable = true;
|
||||
cmp.enable = true;
|
||||
};
|
||||
|
||||
indent-blankline = {
|
||||
enable = true;
|
||||
settings.scope.enabled = false;
|
||||
};
|
||||
|
||||
cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mapping = {
|
||||
"<C-l>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<C-j>" = ''
|
||||
function(fallback)
|
||||
if cmp.visible then
|
||||
cmp.select_next_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
||||
'';
|
||||
"<C-k>" = ''
|
||||
function(fallback)
|
||||
if cmp.visible then
|
||||
cmp.select_prev_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
||||
'';
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<C-e>" = "cmp.mapping.abort()";
|
||||
"<C-u>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-d>" = "cmp.mapping.scroll_docs(4)";
|
||||
};
|
||||
snippet.expand = ''
|
||||
function(args)
|
||||
require('snippy').expand_snippet(args.body)
|
||||
end
|
||||
'';
|
||||
sources =
|
||||
[ { name = "nvim_lsp"; } { name = "path"; } { name = "snippy"; } ];
|
||||
};
|
||||
};
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
formattersByFt = {
|
||||
json = [ "jq" ];
|
||||
lua = [ "stylua" ];
|
||||
python = [ "isort" "black" ];
|
||||
nix = [ "nixfmt" ];
|
||||
sh = [ "shfmt" ];
|
||||
bash = [ "shfmt" ];
|
||||
zsh = [ "zsh" ];
|
||||
html = [ "prettierd" ];
|
||||
css = [ "prettierd" ];
|
||||
perl = [ "perltidy" ];
|
||||
};
|
||||
};
|
||||
lint = {
|
||||
enable = true;
|
||||
lintersByFt = {
|
||||
python = [ "mypy" ];
|
||||
ruby = [ "ruby" ];
|
||||
# sh = [ "shellcheck" ];
|
||||
# bash = [ "shellcheck" ];
|
||||
# zsh = [ "shellcheck" ];
|
||||
perl = [ "perlcritic" ];
|
||||
};
|
||||
};
|
||||
harpoon = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
addFile = "<leader>a";
|
||||
toggleQuickMenu = "<C-e>";
|
||||
navFile = {
|
||||
"1" = "<C-j>";
|
||||
"2" = "<C-k>";
|
||||
"3" = "<C-l>";
|
||||
"4" = "<C-;>";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
oil = {
|
||||
enable = true;
|
||||
settings = {
|
||||
show_hidden = true;
|
||||
default_file_explorer = true;
|
||||
};
|
||||
};
|
||||
|
||||
treesitter.enable = true;
|
||||
|
||||
gitsigns = {
|
||||
enable = true;
|
||||
settings.signs = {
|
||||
add.text = "▎";
|
||||
change.text = "▎";
|
||||
changedelete.text = "▎";
|
||||
delete.text = "▎";
|
||||
topdelete.text = "▎";
|
||||
untracked.text = "▎";
|
||||
on_attach = ''
|
||||
function(buffer)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, desc)
|
||||
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
|
||||
end
|
||||
|
||||
-- stylua: ignore start
|
||||
map("n", "]g", gs.next_hunk, "Next git hunk")
|
||||
map("n", "[g", gs.prev_hunk, "Previous git hunk")
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
mini = {
|
||||
enable = true;
|
||||
modules = {
|
||||
statusline = { set_vim_settings = false; };
|
||||
notify = { };
|
||||
};
|
||||
};
|
||||
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions = {
|
||||
fzf-native = {
|
||||
enable = true;
|
||||
settings = {
|
||||
fuzzy = true;
|
||||
override_generic_sorter = true;
|
||||
override_file_sorter = true;
|
||||
case_mode = "smart_case";
|
||||
};
|
||||
};
|
||||
ui-select.enable = true;
|
||||
};
|
||||
keymaps = {
|
||||
"<leader>pf" = "find_files";
|
||||
"<C-p>" = "git_files";
|
||||
"<leader>vh" = "help_tags";
|
||||
"<leader>ps" = "grep_string";
|
||||
};
|
||||
};
|
||||
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
lua-ls.enable = true;
|
||||
nil_ls.enable = true;
|
||||
marksman.enable = true;
|
||||
gopls.enable = true;
|
||||
pyright.enable = true;
|
||||
html.enable = true;
|
||||
emmet_ls.enable = true;
|
||||
cssls.enable = true;
|
||||
bashls.enable = true;
|
||||
perlpls.enable = true;
|
||||
};
|
||||
keymaps = {
|
||||
diagnostic = {
|
||||
"<leader>vd" = "open_float";
|
||||
"[d" = "goto_next";
|
||||
"]d" = "goto_prev";
|
||||
};
|
||||
lspBuf = {
|
||||
K = "hover";
|
||||
gd = "definition";
|
||||
gD = "declaration";
|
||||
gi = "implementation";
|
||||
"<leader>lca" = "code_action";
|
||||
"<leader>lrn" = "rename";
|
||||
"<C-h>" = "signature_help";
|
||||
};
|
||||
};
|
||||
|
||||
preConfig = ''
|
||||
local function sign_define(args)
|
||||
vim.fn.sign_define(args.name, {
|
||||
texthl = args.name,
|
||||
text = args.text,
|
||||
numhl = "",
|
||||
})
|
||||
end
|
||||
|
||||
sign_define({ name = "DiagnosticSignError", text = "E" })
|
||||
sign_define({ name = "DiagnosticSignWarn", text = "W" })
|
||||
sign_define({ name = "DiagnosticSignHint", text = "H" })
|
||||
sign_define({ name = "DiagnosticSignInfo", text = "I" })
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
flavour = "frappe";
|
||||
styles = {
|
||||
functions = [ "bold" ];
|
||||
keywords = [ "bold" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
extraPlugins = with pkgs.vimPlugins; [ vim-snippets ];
|
||||
};
|
||||
}
|
12
home-manager/modules/patches/comet.patch
Normal file
12
home-manager/modules/patches/comet.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/build.rs b/build.rs
|
||||
index f6a0904..6252aec 100644
|
||||
--- a/build.rs
|
||||
+++ b/build.rs
|
||||
@@ -3,7 +3,6 @@ use protobuf_codegen::Codegen;
|
||||
fn main() {
|
||||
Codegen::new()
|
||||
.protoc()
|
||||
- .protoc_path(&protoc_bin_vendored::protoc_bin_path().unwrap())
|
||||
.includes(["proto"])
|
||||
.input("proto/gog.protocols.pb.proto")
|
||||
.input("proto/galaxy.protocols.webbroker_service.proto")
|
9
home-manager/modules/plasma.nix
Normal file
9
home-manager/modules/plasma.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = [
|
||||
pkgs.catppuccin-gtk
|
||||
(pkgs.catppuccin-papirus-folders.override {
|
||||
flavor = "frappe";
|
||||
accent = "pink";
|
||||
})
|
||||
];
|
||||
}
|
75
home-manager/modules/restic.nix
Normal file
75
home-manager/modules/restic.nix
Normal file
@ -0,0 +1,75 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
##-- Restic Timers And Services --##
|
||||
|
||||
# Restic backup
|
||||
systemd.user.services = {
|
||||
restic_backup = {
|
||||
Unit.Description = "Restic backup service";
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (pkgs.writeShellScript "restic-backup" ''
|
||||
. /etc/restic/local
|
||||
restic backup --files-from /home/crony/.config/restic/list --verbose && restic forget --keep-last 10 --keep-daily 7 --keep-weekly 5 --keep-monthly 12
|
||||
. /etc/restic/online
|
||||
restic backup --files-from /home/crony/.config/restic/list --verbose && restic forget --keep-last 10 --keep-daily 7 --keep-weekly 5 --keep-monthly 12
|
||||
'');
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.user.timers = {
|
||||
restic_backup = {
|
||||
Unit.Description = "Restic backup timer";
|
||||
Timer = {
|
||||
OnBootSec = "5m";
|
||||
OnUnitActiveSec = "6h";
|
||||
};
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Restic check
|
||||
systemd.user.services = {
|
||||
restic_check = {
|
||||
Unit.Description = "Restic check service";
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (pkgs.writeShellScript "restic-check" ''
|
||||
. /etc/restic/local
|
||||
restic check --read-data-subset=10%
|
||||
. /etc/restic/online
|
||||
restic check --read-data-subset=10%
|
||||
'');
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.user.timers = {
|
||||
restic_check = {
|
||||
Unit.Description = "Restic check timer";
|
||||
Timer = { OnCalendar = "Thu *-*-* 18:00:00"; };
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Restic prune
|
||||
systemd.user.services = {
|
||||
restic_prune = {
|
||||
Unit.Description = "Restic prune service";
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (pkgs.writeShellScript "restic-prune" ''
|
||||
. /etc/restic/local
|
||||
restic prune
|
||||
. /etc/restic/online
|
||||
restic prune
|
||||
'');
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.user.timers = {
|
||||
restic_prune = {
|
||||
Unit.Description = "Restic prune timer";
|
||||
Timer = { OnCalendar = "Fri *-*-* 18:00:00"; };
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
}
|
37
home-manager/modules/scripts.nix
Normal file
37
home-manager/modules/scripts.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
with pkgs;
|
||||
stdenv.mkDerivation {
|
||||
pname = "scripts";
|
||||
version = "1";
|
||||
src = ./scripts;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
# Move scripts to bin
|
||||
mv ./* $out/bin
|
||||
|
||||
# Fix shebangs for the scripts
|
||||
patchShebangs $out/bin
|
||||
|
||||
# Add dependencies to the runtime for my blog script
|
||||
wrapProgram $out/bin/blog \
|
||||
--prefix PATH : ${lib.makeBinPath [ hugo rsync git ]}
|
||||
|
||||
# Add dependencies to the runtime for my cue2chd script
|
||||
wrapProgram $out/bin/cue2chd \
|
||||
--prefix PATH : ${lib.makeBinPath [ mame-tools ]}
|
||||
|
||||
# Add dependencies to the runtime for my iso2chd script
|
||||
wrapProgram $out/bin/iso2chd \
|
||||
--prefix PATH : ${lib.makeBinPath [ mame-tools ]}
|
||||
|
||||
# Add dependencies to the runtime for my sync-backup script
|
||||
wrapProgram $out/bin/sync-backup \
|
||||
--prefix PATH : ${lib.makeBinPath [ rsync cryptsetup ]}
|
||||
|
||||
wrapProgram $out/bin/megadl \
|
||||
--prefix PATH : ${lib.makeBinPath [ openssl ]}
|
||||
'';
|
||||
}
|
58
home-manager/modules/scripts/blog
Executable file
58
home-manager/modules/scripts/blog
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
cd "$HOME"/Documents/repos/cronyakatsuki.xyz || exit 1
|
||||
nvim
|
||||
exit 0
|
||||
else
|
||||
cd "$HOME"/Documents/repos/cronyakatsuki.xyz || exit 1
|
||||
fi
|
||||
|
||||
open_file() {
|
||||
cd "$HOME"/Documents/repos/cronyakatsuki.xyz || exit 1
|
||||
if [ -f "content/blog/${1}.md" ]; then
|
||||
nvim "content/blog/${1}.md"
|
||||
else
|
||||
hugo new "content/blog/${1}.md"
|
||||
nvim "content/blog/${1}.md"
|
||||
fi
|
||||
}
|
||||
|
||||
publish() {
|
||||
cd "$HOME"/Documents/repos/cronyakatsuki.xyz || exit 1
|
||||
hugo
|
||||
rsync -rP --delete public/ server:/var/www/site
|
||||
git add .
|
||||
git commit -m "Site update"
|
||||
git push
|
||||
}
|
||||
|
||||
remove_file() {
|
||||
cd "$HOME"/Documents/repos/cronyakatsuki.xyz || exit 1
|
||||
if [ -f "content/blog/${1}.md" ]; then
|
||||
rm "content/blog/${1}.md"
|
||||
else
|
||||
echo "File didn't exist"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" = "pub" ]; then
|
||||
publish
|
||||
exit 0
|
||||
elif [ $# -eq 1 ]; then
|
||||
open_file "$1"
|
||||
exit 0
|
||||
elif [ $# -ne 2 ]; then
|
||||
echo "You need to provide action and file name."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
rm)
|
||||
remove_file "$2"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
8
home-manager/modules/scripts/cue2chd
Executable file
8
home-manager/modules/scripts/cue2chd
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
for File in *.cue
|
||||
do
|
||||
[ -f "$File" ] || continue
|
||||
chdman createcd -i "$File" -o "${File%.cue}.chd"
|
||||
rm -v "$File" "${File%.cue}"*.bin
|
||||
done
|
44
home-manager/modules/scripts/day
Executable file
44
home-manager/modules/scripts/day
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Based on day script from mischavandenburg
|
||||
# url: https://github.com/mischavandenburg/dotfiles/blob/main/scripts/day
|
||||
|
||||
today=$(date +"%Y-%m-%d")
|
||||
tomorrow=$(date -d "tomorrow" '+%Y-%m-%d')
|
||||
yesterday=$(date -d "yesterday" '+%Y-%m-%d')
|
||||
file="$SECOND_BRAIN"'/periodic/daily/'"$today.md"
|
||||
|
||||
cd "$SECOND_BRAIN" || exit 1
|
||||
|
||||
new_note() {
|
||||
touch "$file"
|
||||
|
||||
# Give me a nice format
|
||||
cat <<EOF >"$file"
|
||||
# $today
|
||||
|
||||
[[$yesterday]] - [[$tomorrow]]
|
||||
|
||||
## Intention
|
||||
|
||||
What do I want to achieve today and tomorrow?
|
||||
|
||||
## Tracking
|
||||
|
||||
- [ ] Cycle
|
||||
- [ ] Strength training
|
||||
- [ ] Watch a movie or tv show episode
|
||||
- [ ] Play/finish a game
|
||||
- [ ] Post a blog post
|
||||
- [ ] Check servers
|
||||
- [ ] Check backups
|
||||
|
||||
## Log
|
||||
EOF
|
||||
}
|
||||
|
||||
if [ ! -f "$file" ]; then
|
||||
new_note
|
||||
fi
|
||||
|
||||
nvim '+ normal Gzzo' "$file"
|
8
home-manager/modules/scripts/iso2chd
Executable file
8
home-manager/modules/scripts/iso2chd
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
for File in *.iso
|
||||
do
|
||||
[ -f "$File" ] || continue
|
||||
chdman createdvd -i "$File" -o "${File%.iso}.chd"
|
||||
rm -v "$File"
|
||||
done
|
70
home-manager/modules/scripts/megadl
Executable file
70
home-manager/modules/scripts/megadl
Executable file
@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Shamelesly stolen from DemonKingSwarn from his discord message
|
||||
# Original link is at http://0x0.st/Xokg.sh
|
||||
|
||||
URL=""
|
||||
|
||||
if [[ $1 =~ ^https?:\/\/mega(\.co)?\.nz ]]; then
|
||||
URL="$1"
|
||||
fi
|
||||
|
||||
if [[ ! $URL ]]; then
|
||||
echo "Usage: ${0##*/} url" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CURL="curl -Y 1 -y 10"
|
||||
|
||||
missing=false
|
||||
for cmd in openssl; do
|
||||
if [[ ! $(command -v "$cmd" 2>&1) ]]; then
|
||||
missing=true
|
||||
echo "${0##*/}: $cmd: command not found" >&2
|
||||
fi
|
||||
done
|
||||
if $missing; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $URL =~ .*/file/[^#]*#[^#]* ]]; then
|
||||
id="${URL#*file/}"; id="${id%%#*}"
|
||||
key="${URL##*file/}"; key="${key##*#}"
|
||||
else
|
||||
id="${URL#*!}"; id="${id%%!*}"
|
||||
key="${URL##*!}"
|
||||
fi
|
||||
|
||||
raw_hex=$(echo "${key}=" | tr '\-_' '+/' | tr -d ',' | base64 -d -i 2>/dev/null | od -v -An -t x1 | tr -d '\n ')
|
||||
hex=$(printf "%016x" \
|
||||
$(( 0x${raw_hex:0:16} ^ 0x${raw_hex:32:16} )) \
|
||||
$(( 0x${raw_hex:16:16} ^ 0x${raw_hex:48:16} ))
|
||||
)
|
||||
|
||||
json=$($CURL -s -H 'Content-Type: application/json' -d '[{"a":"g", "g":"1", "p":"'"$id"'"}]' 'https://g.api.mega.co.nz/cs?id=&ak=') || exit 1; json="${json#"[{"}"; json="${json%"}]"}"
|
||||
file_url="${json##*'"g":'}"; file_url="${file_url%%,*}"; file_url="${file_url//'"'/}"
|
||||
|
||||
json=$($CURL -s -H 'Content-Type: application/json' -d '[{"a":"g", "p":"'"$id"'"}]' 'https://g.api.mega.co.nz/cs?id=&ak=') || exit 1
|
||||
at="${json##*'"at":'}"; at="${at%%,*}"; at="${at//'"'/}"
|
||||
|
||||
json=$(echo "${at}==" | tr '\-_' '+/' | tr -d ',' | openssl enc -a -A -d -aes-128-cbc -K "$hex" -iv "00000000000000000000000000000000" -nopad | tr -d '\0'); json="${json#"MEGA{"}"; json="${json%"}"}"
|
||||
file_name="${json##*'"n":'}"
|
||||
if [[ $file_name == *,* ]]; then
|
||||
file_name="${file_name%%,*}"
|
||||
fi
|
||||
file_name="${file_name//'"'/}"
|
||||
|
||||
aria2c -x 15 -o "$file_name" "$file_url"
|
||||
cat "$file_name" | openssl enc -d -aes-128-ctr -K "$hex" -iv "${raw_hex:32:16}0000000000000000" > "temp.new"
|
||||
mv -f temp.new "$file_name"
|
||||
|
||||
echo "$file_url"
|
||||
echo "$file_name"
|
||||
echo "$hex"
|
||||
echo "${raw_hex:32:16}0000000000000000"
|
||||
sleep 5
|
||||
echo "Downloading... (press Ctrl + C to Cancel)"
|
||||
|
||||
aria2c -x 16 -s 16 -o "$file_name" "$file_url"
|
||||
cat "$file_name" | openssl enc -d -aes-128-ctr -K "$hex" -iv "${raw_hex:32:16}0000000000000000" > "temp.new"
|
||||
mv -f temp.new "$file_name"
|
39
home-manager/modules/scripts/note
Executable file
39
home-manager/modules/scripts/note
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
cd "$SECOND_BRAIN"/notes || exit 1
|
||||
nvim
|
||||
exit 0
|
||||
fi
|
||||
|
||||
open_file() {
|
||||
cd "$SECOND_BRAIN"/notes || exit 1
|
||||
nvim "${1}.md"
|
||||
}
|
||||
|
||||
remove_file() {
|
||||
cd "$SECOND_BRAIN"/notes || exit 1
|
||||
if [ -f "${1}.md" ]; then
|
||||
rm "${1}.md"
|
||||
else
|
||||
echo "File didn't exist"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -eq 1 ]; then
|
||||
open_file "$1"
|
||||
exit 0
|
||||
elif [ $# -ne 2 ]; then
|
||||
echo "You need to provide action and file name."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
rm)
|
||||
remove_file "$2"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
13
home-manager/modules/scripts/ns
Executable file
13
home-manager/modules/scripts/ns
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Provide a script name"
|
||||
exit 1
|
||||
else
|
||||
name="$1"
|
||||
fi
|
||||
|
||||
touch "$name"
|
||||
chmod +x "$name"
|
||||
echo "#!/usr/bin/env sh" > "$name"
|
||||
nvim "+ normal Gzzo" "$name"
|
39
home-manager/modules/scripts/pblog
Executable file
39
home-manager/modules/scripts/pblog
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
cd "$SECOND_BRAIN"/blog || exit 1
|
||||
nvim
|
||||
exit 0
|
||||
fi
|
||||
|
||||
open_file() {
|
||||
cd "$SECOND_BRAIN"/blog || exit 1
|
||||
nvim "${1}.md"
|
||||
}
|
||||
|
||||
remove_file() {
|
||||
cd "$SECOND_BRAIN"/blog || exit 1
|
||||
if [ -f "${1}.md" ]; then
|
||||
rm "${1}.md"
|
||||
else
|
||||
echo "File didn't exist"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -eq 1 ]; then
|
||||
open_file "$1"
|
||||
exit 0
|
||||
elif [ $# -ne 2 ]; then
|
||||
echo "You need to provide action and file name."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
rm)
|
||||
remove_file "$2"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
13
home-manager/modules/scripts/sync-backup
Executable file
13
home-manager/modules/scripts/sync-backup
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
disk="$1"
|
||||
|
||||
sudo cryptsetup luksOpen "$disk" crypt
|
||||
|
||||
sudo mount /dev/mapper/crypt "$HOME/Documents/drive"
|
||||
|
||||
rsync -ahAXv --delete /home/crony/.local/backup/ /home/crony/Documents/drive/backup
|
||||
|
||||
sudo umount "$HOME/Documents/drive"
|
||||
|
||||
sudo cryptsetup luksClose /dev/mapper/crypt
|
110
home-manager/modules/shell.nix
Normal file
110
home-manager/modules/shell.nix
Normal file
@ -0,0 +1,110 @@
|
||||
{ config, pkgs, ... }: {
|
||||
# But we all know I love zsh
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
history.path = "${config.xdg.dataHome}/zsh/history";
|
||||
dotDir = ".config/zsh";
|
||||
shellAliases = {
|
||||
lg = "lazygit";
|
||||
j =
|
||||
"cd $(zoxide query --list | fzf --prompt 'Directory: ' -i --reverse --layout=reverse --border=rounded --info=inline --preview 'eza -A --tree -L 1 {}')";
|
||||
gj = ''
|
||||
cd $(find ${config.home.homeDirectory} -name .git -type d -exec dirname {} \; -prune | fzf --prompt "Directory: " -i --reverse --layout=reverse --border=rounded --info=inline --preview "eza -A --tree -L 1 {}")'';
|
||||
erm = ''for file in *.zip; do unzip "$file"; rm "$file"; done'';
|
||||
};
|
||||
envExtra = ''
|
||||
# NNN settings
|
||||
export NNN_FIFO="/tmp/nnn.fifo"
|
||||
export NNN_SSHFS="sshfs -o follow_symlinks"
|
||||
export NNN_TERMINAL="alacritty --class preview,preview"
|
||||
|
||||
# Catppuccin colors nnn
|
||||
BLK="03" CHR="03" DIR="04" EXE="02" REG="07" HARDLINK="05" SYMLINK="05" MISSING="08" ORPHAN="01" FIFO="06" SOCK="03" UNKNOWN="01"
|
||||
export NNN_COLORS="#04020301;4231"
|
||||
export NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$UNKNOWN"
|
||||
'';
|
||||
initExtra = ''
|
||||
# VI Mode escape timeout fix
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
# Substring search settings
|
||||
export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="bg=blue,fg=black,bold"
|
||||
export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=black,bold'
|
||||
bindkey -M vicmd 'k' history-substring-search-up
|
||||
bindkey -M vicmd 'j' history-substring-search-down
|
||||
'';
|
||||
initExtraFirst = ''
|
||||
nitch
|
||||
'';
|
||||
zplug = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
{ name = "zap-zsh/supercharge"; }
|
||||
{ name = "zap-zsh/completions"; }
|
||||
{ name = "zap-zsh/vim"; }
|
||||
{ name = "chivalryq/git-alias"; }
|
||||
{ name = "zdharma-continuum/fast-syntax-highlighting"; }
|
||||
{ name = "MichaelAquilina/zsh-you-should-use"; }
|
||||
{ name = "zsh-users/zsh-history-substring-search"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Eza settings
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
git = true;
|
||||
icons = true;
|
||||
};
|
||||
|
||||
# Zoxide settings
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
# Starhip settings
|
||||
programs.starship = let flavour = "frappe";
|
||||
in {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
palette = "catppuccin_${flavour}";
|
||||
add_newline = false;
|
||||
} // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub {
|
||||
owner = "starship";
|
||||
repo = "starship";
|
||||
rev = "698572aa575508a4bdd0d3092c97f5a056dc50eb";
|
||||
hash = "sha256-jrtlK4vN8u2UhKeo5+9IyCVYJxkySh+JKhSCUsnQWAg=";
|
||||
} + /docs/public/presets/toml/pure-preset.toml)) // builtins.fromTOML
|
||||
(builtins.readFile (pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "starship";
|
||||
rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f";
|
||||
hash = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
|
||||
} + /palettes/${flavour}.toml));
|
||||
};
|
||||
|
||||
# Fzf settings
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
# Enable direnv
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
programs.thefuck = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [ nitch ];
|
||||
}
|
48
home-manager/modules/theming.nix
Normal file
48
home-manager/modules/theming.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{ pkgs, ... }: {
|
||||
|
||||
qt = {
|
||||
# Enable qt
|
||||
enable = true;
|
||||
|
||||
# Use gtk platform theme
|
||||
platformTheme = "gtk";
|
||||
|
||||
# Use gtk2 style
|
||||
style.name = "gtk2";
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
|
||||
# Cursor theme
|
||||
package = pkgs.catppuccin-cursors.frappeRosewater;
|
||||
name = "Catppuccin-Frappe-Rosewater-Cursors";
|
||||
size = 16;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
# Enable gtk
|
||||
enable = true;
|
||||
|
||||
# look theme
|
||||
theme = {
|
||||
package = pkgs.catppuccin-gtk;
|
||||
name = "Catppuccin-Frappe-Standard-Blue-Dark";
|
||||
};
|
||||
|
||||
# icon theme
|
||||
iconTheme = {
|
||||
package = (pkgs.catppuccin-papirus-folders.override {
|
||||
flavor = "frappe";
|
||||
accent = "pink";
|
||||
});
|
||||
name = "Papirus-Dark";
|
||||
};
|
||||
|
||||
# Font name
|
||||
font = {
|
||||
name = "Noto Sans";
|
||||
size = 10;
|
||||
};
|
||||
};
|
||||
}
|
69
home-manager/modules/tmux.nix
Normal file
69
home-manager/modules/tmux.nix
Normal file
@ -0,0 +1,69 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
disableConfirmationPrompt = true;
|
||||
escapeTime = 0;
|
||||
keyMode = "vi";
|
||||
mouse = true;
|
||||
newSession = true;
|
||||
plugins = with pkgs; [
|
||||
tmuxPlugins.sensible
|
||||
tmuxPlugins.yank
|
||||
tmuxPlugins.fzf-tmux-url
|
||||
{
|
||||
plugin = tmuxPlugins.catppuccin;
|
||||
extraConfig = ''
|
||||
set -g @catppuccin_flavour 'frappe'
|
||||
set -g @catppuccin_window_right_separator "█ "
|
||||
set -g @catppuccin_window_number_position "right"
|
||||
set -g @catppuccin_window_middle_separator " | "
|
||||
|
||||
set -g @catppuccin_window_default_fill "none"
|
||||
|
||||
set -g @catppuccin_window_current_fill "all"
|
||||
|
||||
set -g @catppuccin_status_modules_right "application session date_time"
|
||||
set -g @catppuccin_status_left_separator "█"
|
||||
set -g @catppuccin_status_right_separator "█"
|
||||
'';
|
||||
}
|
||||
];
|
||||
prefix = "C-Space";
|
||||
terminal = "alacritty";
|
||||
extraConfig = ''
|
||||
# Fix colors
|
||||
set-option -sa terminal-overrides ",alacritty:Tc"
|
||||
|
||||
# start window and panes indexing at 1
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# Faster statusbar updates
|
||||
set-option -g status-interval 1
|
||||
|
||||
# Easier movement
|
||||
bind -n M-K previous-window
|
||||
bind -n M-J next-window
|
||||
|
||||
# Better split bindings
|
||||
bind "'" split-window -v -c "#{pane_current_path}"
|
||||
bind '\' split-window -h -c "#{pane_current_path}"
|
||||
|
||||
# Vim keybindings for pane movement
|
||||
setw -g mode-keys vi
|
||||
bind-key h select-pane -L
|
||||
bind-key j select-pane -D
|
||||
bind-key k select-pane -U
|
||||
bind-key l select-pane -R
|
||||
|
||||
# Status bar border
|
||||
setw -g pane-border-status top
|
||||
setw -g pane-border-format '─'
|
||||
|
||||
# Bar to top
|
||||
set-option -g status-position top
|
||||
'';
|
||||
};
|
||||
}
|
12
home-manager/modules/tofi.nix
Normal file
12
home-manager/modules/tofi.nix
Normal file
@ -0,0 +1,12 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
# Install tofi
|
||||
home.packages = with pkgs; [
|
||||
tofi
|
||||
(writeShellScriptBin "tofi-pass" ''
|
||||
tofi --hide-input true --prompt-text 'Password: ' --require-match false --hidden-character '.' < /dev/null
|
||||
'')
|
||||
];
|
||||
|
||||
# Setup my config file
|
||||
home.file = { ".config/tofi/config".source = ./confs/tofi; };
|
||||
}
|
7
home-manager/modules/vkbasalt.nix
Normal file
7
home-manager/modules/vkbasalt.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ inputs, pkgs, ... }: {
|
||||
home.packages = with pkgs; [ vkbasalt ];
|
||||
|
||||
home.file = {
|
||||
".config/vkBasalt/vkBasalt.conf".source = ./confs/vkBasalt.conf;
|
||||
};
|
||||
}
|
@ -1,21 +1,37 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Imports
|
||||
imports =
|
||||
[
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./modules/wifi-dongle.nix
|
||||
./modules/disable-hibernation.nix
|
||||
./modules/dns-over-https.nix
|
||||
./modules/nvidia.nix
|
||||
./modules/network-manager.nix
|
||||
./modules/esync.nix
|
||||
./modules/ryzenadj.nix
|
||||
./modules/appimages.nix
|
||||
./modules/sddm.nix
|
||||
./modules/plasma.nix
|
||||
./modules/pipewire.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Modules
|
||||
boot.blacklistedKernelModules = [ "rtl8xxxu" "iwlwifi"];
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||
rtl8192eu
|
||||
];
|
||||
# Current lts kernel
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
|
||||
# load amdgpu and nouveau at boot
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
|
||||
# Enable gsp
|
||||
# boot.kernelParams = [
|
||||
# "nouveau.config=NvGspRM=1"
|
||||
# "nouveau.debug=info,VBIOS=info,gsp=debug"
|
||||
# ];
|
||||
|
||||
# Set the hostname
|
||||
networking.hostName = "nixos";
|
||||
@ -26,64 +42,9 @@
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Disable hibernation, sleep and other friends
|
||||
systemd.targets = {
|
||||
sleep = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
suspend = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
hibernate = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
"hybrid-sleep" = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Zagreb";
|
||||
|
||||
# Set iwd as wifi backend
|
||||
networking.wireless.iwd.enable = true;
|
||||
networking.networkmanager.wifi.backend = "iwd";
|
||||
networking.networkmanager.wifi.powersave = false;
|
||||
|
||||
### --- Enabling DNS Over HTTPS --- ###
|
||||
|
||||
# make network manager not set a default dns
|
||||
networking.networkmanager.dns = "none";
|
||||
|
||||
# set dns to local nameservers
|
||||
networking.nameservers = [ "127.0.0.1" "::1" ];
|
||||
|
||||
# Dnscrypt for dns over https
|
||||
services.dnscrypt-proxy2 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ipv6_servers = true;
|
||||
require_dnssec = true;
|
||||
sources.public-resolvers = {
|
||||
urls = [
|
||||
"https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md"
|
||||
"https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md"
|
||||
];
|
||||
cache_file = "/var/lib/dnscrypt-proxy2/public-resolvers.md";
|
||||
minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3";
|
||||
};
|
||||
# use mullvad dns server
|
||||
server_names = [ "mullvad-base-doh" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
@ -99,105 +60,6 @@
|
||||
LC_TIME = "hr_HR.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
options = "caps:escape";
|
||||
};
|
||||
|
||||
# Enable touchpad support
|
||||
services.xserver.libinput.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.xserver.displayManager.sddm = {
|
||||
enable = true;
|
||||
theme = "catppuccin-sddm-corners";
|
||||
# Fix keyboard showing up unnecesarilly
|
||||
settings = {
|
||||
General = {
|
||||
InputMethod="";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
||||
plasma-browser-integration
|
||||
konsole
|
||||
oxygen
|
||||
];
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = false;
|
||||
|
||||
# Enable gvfs
|
||||
services.gvfs.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
# Nvidia settings
|
||||
hardware.nvidia = {
|
||||
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
powerManagement.enable = true;
|
||||
|
||||
# Nvidia fine grainder power management, super experimental.
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
# Nvidia prime settings
|
||||
hardware.nvidia.prime = {
|
||||
reverseSync.enable = true;
|
||||
intelBusId = "PCI:5:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
|
||||
# Enable bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# Open Tablet Driver setup
|
||||
hardware.opentabletdriver.enable = true;
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
# Steam settings
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
|
||||
# List packages installed in system profile.
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
@ -214,15 +76,100 @@
|
||||
gamemode
|
||||
ipafont
|
||||
ryzenadj
|
||||
wineWowPackages.staging
|
||||
cryptsetup
|
||||
xfsprogs
|
||||
(catppuccin-kde.override { winDecStyles = [ "classic" "modern" ]; })
|
||||
catppuccin-gtk
|
||||
catppuccin-cursors.frappeRosewater
|
||||
catppuccin-sddm-corners
|
||||
(catppuccin-papirus-folders.override { flavor = "frappe"; accent = "pink"; })
|
||||
(callPackage ./modules/catppuccin-sddm.nix { inherit pkgs; })
|
||||
(lutris.override {
|
||||
extraPkgs = pkgs:
|
||||
[
|
||||
libnotify # For when something fails
|
||||
];
|
||||
extraLibraries = pkgs: [
|
||||
# Dead cells dependency's
|
||||
xorg.libXScrnSaver
|
||||
hashlink
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
# Wireguard settings
|
||||
# Steam settings
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
|
||||
# Setting up zsh
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# For the completion plugin
|
||||
environment.pathsToLink = [ "/share/zsh" ];
|
||||
|
||||
# Enable bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable gvfs
|
||||
services.gvfs.enable = true;
|
||||
|
||||
# Enable fstrim
|
||||
services.fstrim.enable = true;
|
||||
|
||||
# Enable ratbagd for mice configuration
|
||||
services.ratbagd.enable = true;
|
||||
|
||||
# Enable firmware updater
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Setup syncthing
|
||||
services = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
user = "crony";
|
||||
dataDir = "/home/crony/.local/sync";
|
||||
configDir = "/home/crony/.config/syncthing";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable touchpad support
|
||||
services.libinput.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
options = "caps:escape";
|
||||
};
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
# Open Tablet Driver setup
|
||||
hardware.opentabletdriver.enable = true;
|
||||
|
||||
# firewall settings
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
# allow specific tcp ports
|
||||
allowedTCPPorts = [ 2234 22000 ];
|
||||
# allow specific udp ports
|
||||
allowedUDPPorts = [ 22000 21027 ];
|
||||
# if packets are still dropped, they will show up in dmesg
|
||||
logReversePathDrops = true;
|
||||
# wireguard trips rpfilter up
|
||||
@ -236,52 +183,17 @@
|
||||
'';
|
||||
};
|
||||
|
||||
# Enable fstrim
|
||||
services.fstrim.enable = true;
|
||||
|
||||
# Enable ratbagd for mice configuration
|
||||
services.ratbagd.enable = true;
|
||||
|
||||
# Setup syncthing
|
||||
services = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
user = "crony";
|
||||
dataDir = "/home/crony/.local/sync";
|
||||
configDir = "/home/crony/.config/syncthing";
|
||||
};
|
||||
};
|
||||
|
||||
# Setting up zsh
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# For the completion plugin
|
||||
environment.pathsToLink = [ "/share/zsh" ];
|
||||
|
||||
# Defining my user
|
||||
users.users.crony = {
|
||||
isNormalUser = true;
|
||||
description = "Crony";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
(retroarch.override {
|
||||
cores = with libretro; [
|
||||
snes9x
|
||||
];
|
||||
})
|
||||
];
|
||||
extraGroups =
|
||||
[ "networkmanager" "wheel" "video" "input" "audio" "libvirtd" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# Allow appimages to run manually
|
||||
boot.binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
# Add ~/.local/bin to path
|
||||
environment.localBinInPath = true;
|
||||
|
||||
# Automatic cleanup and optimization
|
||||
nix.optimise.automatic = true;
|
||||
@ -291,21 +203,13 @@
|
||||
options = "--delete-older-than 15d";
|
||||
};
|
||||
|
||||
# Set power settings for my laptop cpu
|
||||
systemd.services.ryzenadj = {
|
||||
enable = true;
|
||||
description = "Set my ryzen cpu power.";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (
|
||||
pkgs.writeShellScript "ryzenadj-setup" ''
|
||||
${pkgs.ryzenadj}/bin/ryzenadj --stapm-limit 35000 --fast-limit 35000 --slow-limit 35000 --slow-time 60 --stapm-time 1000 --tctl-temp 75 --vrmmax-current 65000
|
||||
'');
|
||||
};
|
||||
wantedBy = ["default.target"];
|
||||
};
|
||||
# Enable virt manager
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
# Enable zram swap device
|
||||
zramSwap.enable = true;
|
||||
|
||||
# DO NOT CHANGE
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
}
|
||||
|
@ -1,30 +1,28 @@
|
||||
# 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, modulesPath, ... }:
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules =
|
||||
[ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/378a2cc3-3885-4d83-98d6-cbbf5dfc73fd";
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/35fda926-38bd-4da4-984e-054f768e2e95";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/62C0-1109";
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/7BBE-9699";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/e76bb593-aa6c-4aa6-bf2d-723e3be01edc"; }
|
||||
];
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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
|
||||
@ -35,5 +33,6 @@
|
||||
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware.cpu.amd.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
11
nixos/modules/appimages.nix
Normal file
11
nixos/modules/appimages.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }: {
|
||||
# Allow appimages to run manually
|
||||
boot.binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff";
|
||||
magicOrExtension = "\\x7fELF....AI\\x02";
|
||||
};
|
||||
}
|
22
nixos/modules/catppuccin-sddm.nix
Normal file
22
nixos/modules/catppuccin-sddm.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ pkgs }:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "catppuccin-sddm";
|
||||
version = "1a58b5c";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "sddm";
|
||||
rev = "808b4b65c044cd13287d5956ccf2bf49a7d2615f";
|
||||
hash = "sha256-ddz++Xzh3tiEdEnYvIhKcN8Y3FRSvaN0wtmCMb7DEVc=";
|
||||
};
|
||||
|
||||
propagatedUserEnvPkgs = with pkgs.libsForQt5; [ qtquickcontrols2 qtsvg ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/sddm/themes
|
||||
cp -r ./src/* $out/share/sddm/themes
|
||||
'';
|
||||
}
|
21
nixos/modules/disable-hibernation.nix
Normal file
21
nixos/modules/disable-hibernation.nix
Normal file
@ -0,0 +1,21 @@
|
||||
{ ... }: {
|
||||
# Disable hibernation, sleep and other friends
|
||||
systemd.targets = {
|
||||
sleep = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
suspend = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
hibernate = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
"hybrid-sleep" = {
|
||||
enable = false;
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
};
|
||||
};
|
||||
}
|
29
nixos/modules/dns-over-https.nix
Normal file
29
nixos/modules/dns-over-https.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{ ... }: {
|
||||
### --- Enabling DNS Over HTTPS --- ###
|
||||
|
||||
# make network manager not set a default dns
|
||||
networking.networkmanager.dns = "none";
|
||||
|
||||
# set dns to local nameservers
|
||||
networking.nameservers = [ "127.0.0.1" "::1" ];
|
||||
|
||||
# Dnscrypt for dns over https
|
||||
services.dnscrypt-proxy2 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ipv6_servers = true;
|
||||
require_dnssec = true;
|
||||
sources.public-resolvers = {
|
||||
urls = [
|
||||
"https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md"
|
||||
"https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md"
|
||||
];
|
||||
cache_file = "/var/lib/dnscrypt-proxy2/public-resolvers.md";
|
||||
minisign_key =
|
||||
"RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3";
|
||||
};
|
||||
# use mullvad dns server
|
||||
server_names = [ "mullvad-doh" ];
|
||||
};
|
||||
};
|
||||
}
|
11
nixos/modules/esync.nix
Normal file
11
nixos/modules/esync.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ ... }: {
|
||||
# Esync
|
||||
systemd.extraConfig = "DefaultLimitNOFILE=1048576";
|
||||
|
||||
security.pam.loginLimits = [{
|
||||
domain = "*";
|
||||
type = "hard";
|
||||
item = "nofile";
|
||||
value = "1048576";
|
||||
}];
|
||||
}
|
9
nixos/modules/network-manager.nix
Normal file
9
nixos/modules/network-manager.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ ... }: {
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set iwd as wifi backend
|
||||
networking.wireless.iwd.enable = true;
|
||||
networking.networkmanager.wifi.backend = "iwd";
|
||||
networking.networkmanager.wifi.powersave = false;
|
||||
}
|
33
nixos/modules/nvidia.nix
Normal file
33
nixos/modules/nvidia.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ config, ... }: {
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
# Nvidia settings
|
||||
hardware.nvidia = {
|
||||
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
powerManagement.enable = true;
|
||||
|
||||
# Nvidia fine grainder power management, super experimental.
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
# Open kernel drivers
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
# Nvidia optimus prime settings
|
||||
hardware.nvidia.prime = {
|
||||
offload.enableOffloadCmd = true;
|
||||
reverseSync.enable = true;
|
||||
intelBusId = "PCI:5:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
}
|
13
nixos/modules/pipewire.nix
Normal file
13
nixos/modules/pipewire.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ ... }: {
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
}
|
9
nixos/modules/plasma.nix
Normal file
9
nixos/modules/plasma.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }: {
|
||||
# Setup plasma with excluding a couple unnecesarry packages
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.libsForQt5; [
|
||||
plasma-browser-integration
|
||||
konsole
|
||||
oxygen
|
||||
];
|
||||
}
|
14
nixos/modules/ryzenadj.nix
Normal file
14
nixos/modules/ryzenadj.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ pkgs, ... }: {
|
||||
# Set power settings for my laptop cpu
|
||||
systemd.services.ryzenadj = {
|
||||
enable = true;
|
||||
description = "Set my ryzen cpu power.";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = toString (pkgs.writeShellScript "ryzenadj-setup" ''
|
||||
${pkgs.ryzenadj}/bin/ryzenadj --stapm-limit 30000 --fast-limit 30000 --slow-limit 30000 --slow-time 60 --stapm-time 1000 --tctl-temp 80 --vrmmax-current 50000
|
||||
'');
|
||||
};
|
||||
wantedBy = [ "default.target" ];
|
||||
};
|
||||
}
|
14
nixos/modules/sddm.nix
Normal file
14
nixos/modules/sddm.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ ... }: {
|
||||
# Enable sddm with catppuccin theme and fix virtual keyboard bug
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
theme = "catppuccin-frappe";
|
||||
# Fix keyboard showing up unnecesarilly
|
||||
settings = {
|
||||
General = { InputMethod = ""; };
|
||||
# Setup nicer cursor theme
|
||||
Theme = { CursorTheme = "Catppuccin-Frappe-Rosewater-Cursors"; };
|
||||
};
|
||||
};
|
||||
}
|
5
nixos/modules/wifi-dongle.nix
Normal file
5
nixos/modules/wifi-dongle.nix
Normal file
@ -0,0 +1,5 @@
|
||||
{ config, ... }: {
|
||||
# Setup correct modules for tplink wifi dongle and disable builtin wifi card.
|
||||
boot.blacklistedKernelModules = [ "rtl8xxxu" "iwlwifi" ];
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ rtl8192eu ];
|
||||
}
|
Loading…
Reference in New Issue
Block a user