Compare commits

...

169 Commits
test ... main

Author SHA1 Message Date
58affaca5a Update flake.lock 2024-04-30 07:43:25 +02:00
d8d03c729c Update configuration to new version. 2024-04-30 07:43:19 +02:00
48e08c8b34 Update flake.lock 2024-04-29 10:11:20 +02:00
d69b2733ee Add more apps 2024-04-29 10:11:14 +02:00
df7d3c23c1 Update comet. 2024-04-29 10:11:10 +02:00
fe020745a5 Update flake.lock 2024-04-26 11:41:04 +02:00
e662f51375 Add mattermost client 2024-04-26 11:40:57 +02:00
68b66d60ef New programs 2024-04-24 15:13:07 +02:00
f53cdaf508 new script wrap 2024-04-24 15:12:55 +02:00
d77cca2699 Update comet. 2024-04-24 15:12:48 +02:00
1fa11b9f87 Add new script. 2024-04-24 15:12:43 +02:00
87b987daab Fix shellcheck 2024-04-19 07:39:48 +02:00
e7c74f2287 Add perl support. 2024-04-17 13:41:25 +02:00
52d5ed5ab5 Add more apps. 2024-04-17 11:13:40 +02:00
d70c9bc47f Update flake.lock 2024-04-17 10:44:40 +02:00
b878b8cd50 Add more modules, change up order of stuff. 2024-04-16 16:22:47 +02:00
921bbf01a1 Add more programs. 2024-04-16 16:10:27 +02:00
9299f2d31b Add thefuck. 2024-04-16 16:10:15 +02:00
3a73922657 Update for new settings. 2024-04-16 15:06:58 +02:00
dad9e52d25 Add feishin 2024-04-16 15:06:51 +02:00
1718440d83 Update flake.lock 2024-04-16 15:06:46 +02:00
8a3a82c0de Update flake.lock 2024-04-15 10:37:35 +02:00
e2113af785 Update settings 2024-04-15 10:37:30 +02:00
fb8ff5e614 Update settings. 2024-04-15 10:37:25 +02:00
4a9912edba Update settings. 2024-04-15 10:37:20 +02:00
6c420fc6b9 Update comet. 2024-04-15 10:37:14 +02:00
c7f31647b4 Update nixvim settings. 2024-04-12 14:14:17 +02:00
fade8d3576 Update flake.lock 2024-04-12 14:14:11 +02:00
fe6c46ca7a Install zip, protonvpn gui, mumble 2024-04-10 17:13:38 +02:00
f388742c0f Update flake.lock 2024-04-05 21:29:53 +02:00
a37acb71d7 Update comet 2024-04-05 21:29:48 +02:00
35e2d28f05 Update flake.lock 2024-04-05 14:34:37 +02:00
aecdf25a08 Update flake.lock and settings 2024-04-04 21:56:41 +02:00
8c1013b50b Update flake.lock 2024-04-03 18:05:13 +02:00
e5ee82f223 Add nushell for testing. 2024-04-03 13:22:34 +02:00
bc69e5c902 Update flake.lock 2024-04-03 13:22:22 +02:00
199eb8196c Move packages a bit 2024-04-02 21:02:55 +02:00
65993bff5b Update README.md 2024-04-02 18:03:08 +02:00
07547bc42f Make buildable comet package. 2024-04-01 17:19:49 +02:00
24770b3677 Update flake.lock 2024-04-01 14:40:16 +02:00
9a7e84cf19 Update commit. 2024-04-01 11:05:37 +02:00
8a0a7a98de Remove specific programs. 2024-04-01 10:35:04 +02:00
23747b5e40 Update for new version. 2024-03-30 17:29:21 +01:00
c2a8221c7f Add new script and it's dependencies. 2024-03-30 17:29:13 +01:00
720b7618a0 Set cursor theme for sddm. 2024-03-30 15:48:48 +01:00
e81a438dbb Update flake.lock 2024-03-30 15:47:13 +01:00
13a08d9733 Add dependencies. 2024-03-30 15:46:58 +01:00
6a08f8be3e Add new core. 2024-03-30 15:46:44 +01:00
44c919b41b Move to main config. 2024-03-30 15:46:39 +01:00
5655acaa45 Update to new version settings. 2024-03-30 15:46:31 +01:00
d16d263f2b Still doesn't wan't to build. 2024-03-29 14:50:41 +01:00
1d34b35a72 Add dead cells dependencies for dead cells. 2024-03-29 12:49:21 +01:00
0a897b6526 Add more emulators, try to package comet 2024-03-29 12:49:07 +01:00
0d3467eeea Update pblog script. 2024-03-29 12:48:46 +01:00
1f3dfd0dbf User createdvd instead of createcd. 2024-03-29 12:47:57 +01:00
44f00b4169 Update blog script, add new note script. 2024-03-29 12:47:04 +01:00
7c81981aac Add a fleet of emulators 2024-03-27 12:34:48 +01:00
04eaabf13a Add more aliases 2024-03-27 12:34:40 +01:00
273d0efef8 Add more scripts. 2024-03-27 12:34:35 +01:00
556cdd82ec Add Protontricks 2024-03-27 12:33:52 +01:00
1fa2752721 Update theming.nix 2024-03-26 08:52:17 +01:00
6d448e865e Script for notes for blog posts. 2024-03-25 19:28:17 +01:00
cf9d94351f Add more aliases. 2024-03-25 19:27:47 +01:00
82ca9fa328 Fix the trailing o. 2024-03-24 21:25:27 +01:00
591a14c42a Trully fix tee commenting issue. 2024-03-24 21:25:16 +01:00
6d22034182 Add new script.
Just a script for quickly creating a new script and opening it in neovim.
2024-03-24 21:13:20 +01:00
d7b480d7ad Fix comment issues that annoy me. 2024-03-24 21:12:53 +01:00
84b28effce Update flake.lock 2024-03-24 21:12:41 +01:00
68ea0a3eda Remove unneded aliases. 2024-03-23 21:33:36 +01:00
2be2b6b7e5 Rework scripts module. 2024-03-23 21:33:18 +01:00
3c7c565b8d Add new variable. 2024-03-23 21:33:09 +01:00
22a1922ce9 Add new script, move blog to better path. 2024-03-23 21:33:00 +01:00
7ce24d937c Fix publishing not working. 2024-03-23 20:20:49 +01:00
821fca68d9 Install my custom script. 2024-03-23 20:13:16 +01:00
684737cec8 Add script for managing my blog more easily. 2024-03-23 20:13:07 +01:00
deed6769b3 Add bash support to nixvim. 2024-03-23 19:59:18 +01:00
d91941be36 Add pandoc, even thought I hate it. 2024-03-23 15:46:01 +01:00
f6d79fc95b Fix binding. 2024-03-23 11:07:07 +01:00
d9657fd94b Update alias. 2024-03-23 10:57:18 +01:00
029f4d105e Add jellyfin-mpv-shin. 2024-03-22 18:07:56 +01:00
eaa5eae5e6 Update pkgs. 2024-03-21 16:51:07 +01:00
acc11d70b2 Move ripgrep to neovim extraPackages. 2024-03-21 08:53:12 +01:00
aaf682871c Remove hugo as it's build dependency. 2024-03-21 08:52:49 +01:00
ed4bf6c31b Update flake.lock 2024-03-21 08:52:35 +01:00
375c052e44 Even less cpu power usage. 2024-03-20 19:10:12 +01:00
f3a097f038 Lower cpu usage 2024-03-20 19:07:47 +01:00
53ed082088 Update flake.lock 2024-03-20 19:07:21 +01:00
3f0abf9039 Change to catppuccin frappe theme. 2024-03-19 19:15:53 +01:00
808631dc98 Update catppuccin-sddm, fixing qt6 support. 2024-03-19 19:15:35 +01:00
6798f0a2cb Add mgba libretro core. 2024-03-19 19:14:08 +01:00
0f0992e305 Add couple plugins.
Comment.nvim, ts-context-commentring, lspkind, indent-blankline and added cmp back with new settings api.
2024-03-19 13:39:22 +01:00
10c402128d Update flake.lock 2024-03-19 13:38:33 +01:00
4eddf91f3a Replace webcord with armcord. 2024-03-18 09:06:21 +01:00
7718a4cdab Move direnv to shell.nix 2024-03-17 17:38:16 +01:00
e0d51e823a Modulize the config more. 2024-03-17 17:18:40 +01:00
fd5cc50e0f Added direnv and pre-commit. 2024-03-17 14:39:43 +01:00
8abb5c3b6e Nicer starship config. 2024-03-17 13:54:36 +01:00
85de1ffbdb Add neofetch 2024-03-17 13:54:23 +01:00
d5a23e0fbe Use breeze theme. 2024-03-17 13:54:13 +01:00
69d13d90b5 Create catppuccin-sddm package. 2024-03-17 11:40:44 +01:00
49cacd8d9c Update formatting. 2024-03-16 19:03:53 +01:00
4f978540de Update formatting. 2024-03-16 18:26:22 +01:00
982683f1ec Move setting to correct function. 2024-03-16 18:24:39 +01:00
3f3132a860 Enable lsp fallback. 2024-03-16 18:20:26 +01:00
ee2a2eb429 Add formating keybinding. 2024-03-16 18:17:16 +01:00
01aca56c1d Fix spelling. 2024-03-16 18:16:48 +01:00
c385619071 Update flake.lock 2024-03-16 17:50:19 +01:00
2f9cea3917 Update zsh and eza settings. 2024-03-16 17:50:13 +01:00
4825d1cf4a Remove cmp, docs not correct atm. 2024-03-16 17:49:56 +01:00
dfb809452a Update gpg-agent settings. 2024-03-16 17:49:11 +01:00
07e1aca304 Something something. 2024-03-16 13:13:51 +01:00
781464fe74 Add formating and linting support. 2024-03-10 20:13:50 +01:00
a1aad2f381 Update ryzenadj temp limit to 90 2024-03-10 20:13:41 +01:00
2a4f8c3851 Add additional programs 2024-03-10 20:13:28 +01:00
0415fb5f8d Add personal package. 2024-03-08 14:17:40 +01:00
118dceb1ed Add starsector. 2024-03-08 13:56:58 +01:00
f14e310721 Add aria2. 2024-03-07 21:10:27 +01:00
47b6990c26 Add zsh integration for direnv. 2024-03-07 21:10:20 +01:00
823c9b0e57 Update flake.lock 2024-03-07 19:17:28 +01:00
3b47b689f7 Add pyright. 2024-03-07 19:17:20 +01:00
cca283c332 Fix timers. 2024-03-05 19:45:33 +01:00
c47e858202 Add cryptsetup and xfs support. 2024-03-05 19:45:24 +01:00
e75121ef20 Add vkBasalt. 2024-03-05 18:52:41 +01:00
b0c743f0e6 Update lock. 2024-03-03 21:02:14 +01:00
d5eaa6d161 Add direnv. 2024-03-03 10:48:39 +01:00
fd9c72499a Remove uneeded comments. 2024-03-03 10:33:04 +01:00
776a857ba7 Enable gopls 2024-03-03 10:32:54 +01:00
815c7c3451 Update flake.lock 2024-03-02 20:58:54 +01:00
12be2143d1 Remove comment. 2024-03-02 20:58:47 +01:00
a887a34c0f New system. 2024-03-02 19:53:24 +01:00
fc32e170f2 Generic update. 2024-03-02 19:53:12 +01:00
4b9ca19510 Nvk still not worky. 2024-03-01 15:03:28 +01:00
01eb2ddccc Move some things. 2024-03-01 14:42:37 +01:00
5fc2467b25 Trying to fix gsp not loading 2024-03-01 14:41:37 +01:00
8bf5603afc Trying out nvk. 2024-03-01 14:15:21 +01:00
39ee17fb84 Move some things 2024-03-01 14:14:58 +01:00
c15b864bd3 Added prism launcher. 2024-03-01 14:14:50 +01:00
10fba583b7 Add amdgpu to boot, make plasma wayland session default. 2024-03-01 08:24:08 +01:00
906719cd3b Update formating. 2024-03-01 08:23:28 +01:00
b6476accfa Enable zram. 2024-02-29 15:57:12 +01:00
ef6fc41db7 Update flake.lock 2024-02-29 15:49:36 +01:00
1fdda2e2da Add tofi. 2024-02-29 15:14:18 +01:00
783f275bba Fix comment 2024-02-29 15:13:33 +01:00
c555e598b5 Move to wayland. 2024-02-29 14:26:33 +01:00
95482003c8 Added beets and nicotine 2024-02-27 20:16:31 +01:00
dc8472fda4 Formatting. 2024-02-27 20:16:16 +01:00
b97fb04d64 Update flake.lock 2024-02-25 21:32:42 +01:00
5e66efc180 Added helix. 2024-02-25 20:44:04 +01:00
e28b18a996 Update flake.lock 2024-02-24 13:02:14 +01:00
da64f0cc9a Adding virt manager. 2024-02-24 12:58:54 +01:00
c19fe6ad0b Enable for gamescope 2024-02-24 12:58:42 +01:00
1f87c0fe70 Add nvidia-offload cmd gen. 2024-02-24 12:58:32 +01:00
111c6c52d9 Replace discord with webcord 2024-02-24 12:58:18 +01:00
aae101a343 Update flake.lock, add neovim keybinding. 2024-02-21 21:30:13 +01:00
c57f537d92 Update general settings, add newsboat. 2024-02-21 20:05:49 +01:00
551f6892b5 Add lazygit alias. 2024-02-21 19:25:22 +01:00
77ab79e3b1 Add pulseaudio 32bit support. 2024-02-18 22:14:51 +01:00
970133faad Add aliases for my notes/wiki 2024-02-18 14:50:24 +01:00
c3e45054b9 Fix some programs not opening correctly. 2024-02-18 14:49:59 +01:00
3dcfcccf2b Update groups for better experience. 2024-02-18 14:49:37 +01:00
3f1a2f0e5d Update flake.nix 2024-02-16 12:28:48 +01:00
9cff486d35 add more apps. 2024-02-16 11:35:08 +01:00
cbd79ea3a5 Add kde plasma module for the themes. 2024-02-15 12:20:15 +01:00
97c9a24561 Add feather wallet. 2024-02-15 12:11:04 +01:00
83f2ff7591 Update flake.lock 2024-02-15 12:10:55 +01:00
492b7fde6b Add alacritty module, with config file. 2024-02-15 10:50:05 +01:00
412dee6d0b Basic theming. 2024-02-15 10:39:46 +01:00
f1df19ed9b Add retroarch to home config, modularize nixos config. 2024-02-15 09:56:09 +01:00
264dff6565 Move home manager program configs to separate modules 2024-02-14 21:49:54 +01:00
56 changed files with 2305 additions and 838 deletions

2
.envrc Normal file
View File

@ -0,0 +1,2 @@
watch_file shell.nix
use flake

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.direnv/
.pre-commit-config.yaml

View File

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

View File

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

View File

@ -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,27 +17,35 @@
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, home-manager, ... }: {
nixosConfigurations = {
default = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./nixos/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.users.crony = {
imports = [
./home-manager/home.nix
];
};
}
];
};
hb-downloader = {
url = "git+file:///home/crony/Documents/develop/hb-downloader";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, flake-utils, pre-commit-hooks, home-manager
, ... }: {
nixosConfigurations = {
default = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./nixos/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.crony = {
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; });
};
}

View File

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

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

View File

@ -0,0 +1,10 @@
{ inputs, ... }: {
# Btop settings
programs.btop = {
enable = true;
settings = {
color_theme = "catppuccin_frappe";
vim_keys = true;
};
};
}

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

View 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

View 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

View File

@ -0,0 +1,4 @@
$env.config = {
show_banner: false,
edit_mode: vi,
}

View 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

View File

@ -0,0 +1,7 @@
effects = cas:fxaa
casSharpness = 0.0
fxaaQualitySubpix = 0.80
fxaaQualityEdgeThreshold = 0.125
fxaaQualityEdgeThresholdMin = 0.0625

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

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

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

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

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

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

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

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

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

View 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")

View File

@ -0,0 +1,9 @@
{ pkgs, ... }: {
home.packages = [
pkgs.catppuccin-gtk
(pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "pink";
})
];
}

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

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

View 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

View 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

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

View 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

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

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

View 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

View 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

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

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

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

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

View File

@ -0,0 +1,7 @@
{ inputs, pkgs, ... }: {
home.packages = with pkgs; [ vkbasalt ];
home.file = {
".config/vkBasalt/vkBasalt.conf".source = ./confs/vkBasalt.conf;
};
}

View File

@ -1,21 +1,37 @@
{ config, pkgs, ... }:
{ pkgs, ... }:
{
# Imports
imports =
[
./hardware-configuration.nix
];
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,34 +76,57 @@
gamemode
ipafont
ryzenadj
(catppuccin-kde.override { winDecStyles = ["classic" "modern"] ;})
catppuccin-gtk
wineWowPackages.staging
cryptsetup
xfsprogs
(catppuccin-kde.override { winDecStyles = [ "classic" "modern" ]; })
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
networking.firewall = {
# if packets are still dropped, they will show up in dmesg
logReversePathDrops = true;
# wireguard trips rpfilter up
extraCommands = ''
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN
'';
extraStopCommands = ''
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN || true
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN || true
'';
# 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 = {
@ -252,36 +137,63 @@
};
};
# Setting up zsh
programs.zsh.enable = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
# For the completion plugin
environment.pathsToLink = [ "/share/zsh" ];
# 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
extraCommands = ''
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN
ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN
'';
extraStopCommands = ''
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport 51820 -j RETURN || true
ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport 51820 -j RETURN || true
'';
};
# 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";
}

View File

@ -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";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/35fda926-38bd-4da4-984e-054f768e2e95";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/62C0-1109";
fsType = "vfat";
};
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;
}

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

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

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

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

@ -0,0 +1,11 @@
{ ... }: {
# Esync
systemd.extraConfig = "DefaultLimitNOFILE=1048576";
security.pam.loginLimits = [{
domain = "*";
type = "hard";
item = "nofile";
value = "1048576";
}];
}

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

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

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

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

7
shell.nix Normal file
View File

@ -0,0 +1,7 @@
{ pkgs ? import <nixpkgs> { }, pre-commit-hooks, ... }:
let
pre-commit-check = pre-commit-hooks.lib.${pkgs.system}.run {
src = ".";
hooks = { nixfmt.enable = true; };
};
in pkgs.mkShell { inherit (pre-commit-check) shellHook; }