Compare commits

...

28 commits

Author SHA1 Message Date
39297e9fbb
home/programs/games: fix STL dependencies 2024-11-06 22:41:11 +01:00
80035c8826
pkgs/bolt-launcher: bump to 0.10.0, add desktop entry 2024-11-06 22:40:55 +01:00
c37edb347c
treewide: minor cleanups 2024-11-06 16:49:58 +01:00
0e46a1e15d
flake: update input versions 2024-11-06 16:40:38 +01:00
84a77fdc97
treewide: pass permittedInsecurePackages directly to bolt-launcher in outputs 2024-11-06 16:39:42 +01:00
645c8cfbf0
system: remove nix import from core to system/default.nix 2024-11-06 16:33:11 +01:00
4c06bbd772
treewide: add mkSystem function for hosts and inject custom lib through _module.args 2024-11-06 16:27:40 +01:00
a9b8cc60e0
hosts/solaire: avoid repeating paths 2024-11-06 16:25:57 +01:00
1a61ae4ac4
treewide: add bolt-launcher until it's merged in nixpkgs 2024-11-03 21:41:21 +01:00
23fc7f2f45
home/programs/niri: use alt as prefix again 2024-11-03 21:29:42 +01:00
22d75b8f7b
treewide: add distrobox for mcuxpresso (only way to make it work without losing my mind) 2024-11-03 18:32:30 +01:00
fd85d604ab
home/programs/niri: change prefix to super (better with home row mods) 2024-11-01 23:45:39 +01:00
901b51531a
treewide: add kanata 2024-11-01 22:50:39 +01:00
c0f25e3097
home/terminal/shell/fish: add autopair 2024-11-01 09:49:09 +01:00
32a219dcf8 Update README.md 2024-11-01 08:39:52 +00:00
d033f9affb
system/services: remove extra udev rules (not needed with mcuxpresso's udev rules) 2024-10-31 09:21:23 +01:00
0e220a0587
treewide: add custom packages + mcuxpesso IDE 2024-10-30 23:40:58 +01:00
2e29a5cec7
programs/editors/neovim: add wakatime 2024-10-30 08:30:21 +01:00
5650e76a4b
treewide: add portfolio hosting 2024-10-27 11:56:13 +01:00
44f5ce1f29
flake: update flake version 2024-10-27 00:58:45 +02:00
88e2b06ae4
system/programs/fonts: change noto-fonts-cjk to sans variant 2024-10-27 00:57:59 +02:00
7bf11e55b6
programs/browsers/firefox: move policies to wrapFirefox (make it rebuild itself) 2024-10-24 18:22:44 +02:00
1745932cd8
treewide: add server-side secrets management with agenix 2024-10-24 16:02:14 +02:00
0c52f88386
flake: remove useless {} around niri 2024-10-24 14:49:32 +02:00
1d468d43f7
flake: add deploy-rs to dev shell 2024-10-24 14:19:40 +02:00
90ca463731
hosts/anastacia: add laptop ssh key 2024-10-24 14:12:11 +02:00
61537d4722
hosts/anastacia: add VPS host, searx and forgejo
commit b761f7218b
Author: Anthony Rodriguez <anthony@nezia.dev>
Date:   Wed Oct 23 18:03:43 2024 +0200

    system/services/searx: setup default search settings

commit c58816d17a
Author: Anthony Rodriguez <anthony@nezia.dev>
Date:   Wed Oct 23 17:38:06 2024 +0200

    browsers/firefox: switch to my own searx

commit 006daa6ebc
Author: Anthony Rodriguez <anthony@nezia.dev>
Date:   Wed Oct 23 17:35:17 2024 +0200

    system/services/forgejo: enable on ipv4

commit 6c75a3644f
Author: Anthony Rodriguez <anthony@nezia.dev>
Date:   Wed Oct 23 17:35:05 2024 +0200

    system/services: add searx

commit d472424a4e
Author: Anthony Rodriguez <anthony@nezia.dev>
Date:   Wed Oct 23 13:22:36 2024 +0200

    system/services: add forgejo

commit 43e754db72
Author: Anthony Rodriguez <anthony@nezia.dev>
Date:   Wed Oct 23 11:25:01 2024 +0200

    hosts/anastacia: init with generated configuration
2024-10-23 18:04:37 +02:00
96f9c0c180
browsers/firefox: enable search suggestions in policies 2024-10-23 18:04:17 +02:00
44 changed files with 1162 additions and 215 deletions

View file

@ -1,4 +1,4 @@
# ❄️ nix
# ❄️ flocon
My NixOS configurations, using flakes.
@ -20,6 +20,7 @@ Additionally using a lot of other software you can find in the configuration fil
| [hosts](hosts/) | Host-specific |
| [lib](lib/) | Helper functions |
| [modules](modules/) | NixOS modules |
| [pkgs](pkgs/) | Custom packages |
| [system](system/) | NixOS configuration |
My configuration is structured based on the following principles:

View file

@ -1,9 +1,32 @@
{
"nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1723293904,
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
"owner": "ryantm",
"repo": "agenix",
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"ags": {
"inputs": {
"nixpkgs": "nixpkgs",
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1728326430,
@ -60,6 +83,48 @@
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat_2",
"nixpkgs": "nixpkgs_3",
"utils": "utils"
},
"locked": {
"lastModified": 1727447169,
"narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
"firefox-addons": {
"inputs": {
"flake-utils": "flake-utils",
@ -69,11 +134,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1729491205,
"narHash": "sha256-luvUK8ZTRTdsVao7VqnxvGEvA3rjEmfiwakDyHxQhx8=",
"lastModified": 1730865784,
"narHash": "sha256-6kJYNjVCyf1tYgpqm7QOYcMkkD/RsaSfrsC2+ojmFAI=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "9764579885c84ba5d4bcd9d3061409a527ff805c",
"rev": "b8d22442e09a02eb8b830d41726ac371be21b7cd",
"type": "gitlab"
},
"original": {
@ -115,6 +180,22 @@
"type": "github"
}
},
"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-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
@ -159,11 +240,11 @@
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
@ -207,7 +288,7 @@
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
"systems": "systems_4"
},
"locked": {
"lastModified": 1710146030,
@ -225,7 +306,7 @@
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
"systems": "systems_5"
},
"locked": {
"lastModified": 1710146030,
@ -243,14 +324,14 @@
},
"flake-utils_4": {
"inputs": {
"systems": "systems_6"
"systems": "systems_8"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
@ -318,15 +399,36 @@
"home-manager": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729459288,
"narHash": "sha256-gBOVJv+q6Mx8jGvwX7cE6J8+sZmi1uxpRVsO7WxvVuQ=",
"lastModified": 1703113217,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1e27f213d77fc842603628bcf2df6681d7d08f7e",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730837930,
"narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2f607e07f3ac7e53541120536708e824acccfaa8",
"type": "github"
},
"original": {
@ -338,7 +440,7 @@
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat_2",
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2",
"flake-utils": "flake-utils_2",
"nixpkgs": [
@ -447,17 +549,17 @@
"flake-parts": "flake-parts_3",
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable_2",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1729499378,
"narHash": "sha256-gslhStBw58+LAbcver/2/Q6zjPq9xNZQ/IcoIh7OBck=",
"lastModified": 1730875971,
"narHash": "sha256-VpTY0Urm0tebIndEP3qCsfAEjh8IB0d9j7XRZkNLRrw=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "2e46e95f0e5be7cea740163d87edf628e755cc3e",
"rev": "563b10c27839d0b08353d4cd3563e0f9beb3468d",
"type": "github"
},
"original": {
@ -486,11 +588,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1729444736,
"narHash": "sha256-/Q1yf6f9nUBFVqI/t89xfTPmQipaug63LP8TeENg4CA=",
"lastModified": 1730871742,
"narHash": "sha256-wK7UD90LxLr8oELIYPhUS6+IPU32JGESaHd/tny5/ig=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "289ae3604d705cebc82cbcd23ee4534ded16d3af",
"rev": "8867a4f84c4bd07235abd37828b0d724321facbe",
"type": "github"
},
"original": {
@ -506,11 +608,11 @@
]
},
"locked": {
"lastModified": 1729394935,
"narHash": "sha256-2ntUG+NJKdfhlrh/tF+jOU0fOesO7lm5ZZVSYitsvH8=",
"lastModified": 1730604744,
"narHash": "sha256-/MK6QU4iOozJ4oHTfZipGtOgaT/uy/Jm4foCqHQeYR4=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "04f8a11f247ba00263b060fbcdc95484fd046104",
"rev": "cc2ddbf2df8ef7cc933543b1b42b845ee4772318",
"type": "github"
},
"original": {
@ -521,11 +623,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1729509737,
"narHash": "sha256-8OHgqz+tFo21h3hg4/GHizFPws+MMzpEru/+62Z0E8c=",
"lastModified": 1730886862,
"narHash": "sha256-wCZtRGM1NGxq6VG4+TMzfsa4cuG2VJVtowtYuWW5W3g=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "cc2d3c0e060f981905d52337340ee6ec8b8eb037",
"rev": "90642a0deae927fa911d49d4f7c5616257105141",
"type": "github"
},
"original": {
@ -564,14 +666,14 @@
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1727825735,
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
"lastModified": 1730504152,
"narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
}
},
"nixpkgs-lib_3": {
@ -604,11 +706,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1729307008,
"narHash": "sha256-QUvb6epgKi9pCu9CttRQW4y5NqJ+snKr1FZpG/x3Wtc=",
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9b86fc2290b69375c5542b622088eb6eca2a7c3",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
@ -636,27 +738,27 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1729256560,
"narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=",
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0",
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1729256560,
"narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=",
"lastModified": 1730785428,
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0",
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github"
},
"original": {
@ -667,6 +769,22 @@
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1730785428,
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1726871744,
"narHash": "sha256-V5LpfdHyQkUF7RfOaDPrZDP+oqz88lTJrMT1+stXNwo=",
@ -682,7 +800,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1656753965,
"narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=",
@ -698,7 +816,23 @@
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1711404521,
"narHash": "sha256-cYhDZ3RYLiXAi4LQDGuQjjDDbtP00Wd/Vjal/jWyTuA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "07518c851b0f12351d7709274bbbd4ecc1f089c7",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "07518c851b0f12351d7709274bbbd4ecc1f089c7",
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1726871744,
"narHash": "sha256-V5LpfdHyQkUF7RfOaDPrZDP+oqz88lTJrMT1+stXNwo=",
@ -736,7 +870,7 @@
"flake-utils": "flake-utils_3",
"mnw": "mnw",
"nil": "nil",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"nmd": "nmd",
"plugin-alpha-nvim": "plugin-alpha-nvim",
"plugin-bufdelete-nvim": "plugin-bufdelete-nvim",
@ -840,14 +974,14 @@
"plugin-vim-vsnip": "plugin-vim-vsnip",
"plugin-which-key": "plugin-which-key",
"rnix-lsp": "rnix-lsp",
"systems": "systems_4"
"systems": "systems_6"
},
"locked": {
"lastModified": 1728378979,
"narHash": "sha256-CW/5Cs9m8HupL+6iRMpdHE88OmK9MXH2h3BcXCQw440=",
"lastModified": 1730289819,
"narHash": "sha256-GYEgdCLzNODbMNEeYbMa5EWgEwTEMxdSSPTz8uEwZdQ=",
"owner": "notashelf",
"repo": "nvf",
"rev": "0947ab38c0bc79780eec599161306157b8de74a3",
"rev": "8ff50562d7203a2b87bc6409e806f13b115d6b48",
"type": "github"
},
"original": {
@ -866,11 +1000,11 @@
]
},
"locked": {
"lastModified": 1729372184,
"narHash": "sha256-Tb2/jJ74pt0nmfprkOW1g5zZphJTNbzLnyDENM+c5+I=",
"lastModified": 1730635861,
"narHash": "sha256-Npp3pl9aeAiq+wZPDbw2ZxybNuZWyuN7AY6fik56DCo=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "9390dadadc58ffda8e494b31ef66a4ae041f6dd1",
"rev": "293668587937daae1df085ee36d2b2d0792b7a0f",
"type": "github"
},
"original": {
@ -2496,6 +2630,24 @@
"type": "github"
}
},
"portfolio": {
"inputs": {
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1730891412,
"narHash": "sha256-EEXp1jQMoA7off1ioqB5aJM1a5ZfGS6KQVsYSZ/ub78=",
"owner": "nezia1",
"repo": "portfolio",
"rev": "082cc68c67deead967bf177d048995c6a27ef84e",
"type": "github"
},
"original": {
"owner": "nezia1",
"repo": "portfolio",
"type": "github"
}
},
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
@ -2526,8 +2678,8 @@
"rnix-lsp": {
"inputs": {
"naersk": "naersk",
"nixpkgs": "nixpkgs_6",
"utils": "utils"
"nixpkgs": "nixpkgs_7",
"utils": "utils_2"
},
"locked": {
"lastModified": 1669555118,
@ -2545,18 +2697,21 @@
},
"root": {
"inputs": {
"agenix": "agenix",
"ags": "ags",
"basix": "basix",
"deploy-rs": "deploy-rs",
"firefox-addons": "firefox-addons",
"home-manager": "home-manager",
"home-manager": "home-manager_2",
"lanzaboote": "lanzaboote",
"niri": "niri",
"nix-index-db": "nix-index-db",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"nvf": "nvf",
"plasma-manager": "plasma-manager",
"systems": "systems_5",
"portfolio": "portfolio",
"systems": "systems_7",
"treefmt-nix": "treefmt-nix",
"wezterm": "wezterm"
}
@ -2621,11 +2776,11 @@
]
},
"locked": {
"lastModified": 1726280639,
"narHash": "sha256-YfLRPlFZWrT2oRLNAoqf7G3+NnUTDdlIJk6tmBU7kXM=",
"lastModified": 1729477859,
"narHash": "sha256-r0VyeJxy4O4CgTB/PNtfQft9fPfN1VuGvnZiCxDArvg=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e9f8641c92f26fd1e076e705edb12147c384171d",
"rev": "ada8266712449c4c0e6ee6fcbc442b3c217c79e1",
"type": "github"
},
"original": {
@ -2635,21 +2790,6 @@
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -2664,6 +2804,21 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
@ -2696,16 +2851,16 @@
},
"systems_5": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"repo": "default",
"type": "github"
}
},
@ -2724,16 +2879,46 @@
"type": "github"
}
},
"systems_7": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs_7"
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1729242555,
"narHash": "sha256-6jWSWxv2crIXmYSEb3LEVsFkCkyVHNllk61X4uhqfCs=",
"lastModified": 1730321837,
"narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "d986489c1c757f6921a48c1439f19bfb9b8ecab5",
"rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
"type": "github"
},
"original": {
@ -2743,6 +2928,24 @@
}
},
"utils": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"locked": {
"lastModified": 1656928814,
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
@ -2771,11 +2974,11 @@
},
"locked": {
"dir": "nix",
"lastModified": 1729006311,
"narHash": "sha256-1xtKJHu6CFnOhp4snof+WSTwcdPgwIaD6mBODP/cv3w=",
"lastModified": 1730734444,
"narHash": "sha256-lNgCAphrq3/bYGjgDxEl2rVcer6GnmfWXDhxc+kdYOk=",
"owner": "wez",
"repo": "wezterm",
"rev": "9ddca7bde92090792dbcdc65c1e9897c362196d7",
"rev": "51c794ac500a2033b9dc570c71810518bfa667a9",
"type": "github"
},
"original": {
@ -2789,16 +2992,16 @@
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1718165778,
"narHash": "sha256-dwF9nI54a6Fo9XU5s4qmvMXSgCid3YQVGxch00qEMvI=",
"lastModified": 1730166465,
"narHash": "sha256-nq7bouXQXaaPPo/E+Jbq+wNHnatD4dY8OxSrRqzvy6s=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "b6d281967cb0b7bf1dfdb8d0f597b517dc4aa5c5",
"rev": "a713cf46cb7db84a0d1b57c3a397c610cad3cf98",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.4",
"ref": "v0.5",
"repo": "xwayland-satellite",
"type": "github"
}
@ -2806,11 +3009,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1729139001,
"narHash": "sha256-BADKw4fQma8tUNBRfmS9YLXTRXK4nYyXIxQdhGuEV0s=",
"lastModified": 1730258684,
"narHash": "sha256-E+69sdxUhPSNI8+JlTL6KKbNv5qVD3L1y8hdVO37A44=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "ab2d09962c425670a4a7ca6ef5d92a0f06632499",
"rev": "b0ee6db9fa9901c675b3c7e952c2a8ce987a0f58",
"type": "github"
},
"original": {

View file

@ -5,6 +5,8 @@
self,
nixpkgs,
systems,
agenix,
deploy-rs,
treefmt-nix,
...
} @ inputs: let
@ -16,12 +18,19 @@
packages = [
pkgs.alejandra
pkgs.git
deploy-rs.packages.${pkgs.system}.default
agenix.packages.${pkgs.system}.default
];
};
});
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
nixosModules = import ./modules;
nixosConfigurations = import ./hosts {inherit self inputs;};
nixosConfigurations = let
lib' = import ./lib {inherit inputs lib';};
in
import ./hosts {inherit inputs lib';};
packages = eachSystem (pkgs: import ./pkgs {inherit inputs pkgs;});
deploy.nodes = import ./nodes {inherit self inputs;};
};
inputs = {
# nix related
@ -42,14 +51,22 @@
};
# other
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
ags.url = "github:Aylur/ags";
basix.url = "github:notashelf/basix";
deploy-rs.url = "github:serokell/deploy-rs";
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
niri = {url = "github:sodiboo/niri-flake";};
niri.url = "github:sodiboo/niri-flake";
nvf.url = "github:notashelf/nvf";
portfolio.url = "github:nezia1/portfolio";
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";

View file

@ -12,7 +12,8 @@
in {
programs.firefox = {
enable = true;
policies = {
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableTelemetry = true;
DisablePocket = true;
DisableFeedbackCommands = true;
@ -20,9 +21,9 @@ in {
OfferToSaveLogins = false;
OffertosaveloginsDefault = false;
PasswordManagerEnabled = false;
SearchSuggestEnabled = true;
# https://github.com/Sly-Harvey/NixOS/blob/f9da2691ea46565256ad757959cfc26ec6cee10d/modules/programs/browser/firefox/default.nix#L58-L163
# TODO: declare which block lists are needed
"3rdparty".Extensions = {
"addon@darkreader.org" = {
permissions = ["internal:privateBrowsingAllowed"];
@ -52,6 +53,40 @@ in {
uiTheme = "dark";
advancedUserEnabled = true;
userFiltersTrusted = true;
importedLists = [
"https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt"
];
selectedFilterLists = [
"FRA-0"
"adguard-cookies"
"adguard-mobile-app-banners"
"adguard-other-annoyances"
"adguard-popup-overlays"
"adguard-social"
"adguard-spyware-url"
"adguard-widgets"
"easylist"
"easylist-annoyances"
"easylist-chat"
"easylist-newsletters"
"easylist-notifications"
"easyprivacy"
"fanboy-cookiemonster"
"https://filters.adtidy.org/extension/ublock/filters/3.txt"
"https://github.com/DandelionSprout/adfilt/raw/master/LegitimateURLShortener.txt"
"plowe-0"
"ublock-annoyances"
"ublock-badware"
"ublock-cookies-adguard"
"ublock-cookies-easylist"
"ublock-filters"
"ublock-privacy"
"ublock-quick-fixes"
"ublock-unbreak"
"urlhaus-1"
"https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt"
];
};
};
};
};
@ -72,7 +107,6 @@ in {
ublock-origin
violentmonkey
];
# https://git.jacekpoz.pl/poz/niksos/src/commit/a48647a1c5bc6877a1100a65f4dc169b2fc11ed7/hosts/hape/firefox.nix
search = {
default = "SearxNG";
@ -81,7 +115,7 @@ in {
urls = [
{
rels = ["results"];
template = "https://searx.tiekoetter.com/search";
template = "https://search.nezia.dev/search";
params = [
{
name = "q";
@ -91,7 +125,7 @@ in {
}
{
rels = ["suggestions"];
template = "https://searx.tiekoetter.com/autocompleter";
template = "https://search.nezia.dev/autocompleter";
params = [
{
name = "q";
@ -101,7 +135,7 @@ in {
"type" = "application/x-suggestions+json";
}
];
iconUpdateURL = "https://searx.tiekoetter.com/favicon.ico";
iconUpdateURL = "https://search.nezia.dev/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@s"];
};

View file

@ -35,5 +35,9 @@
nautilus
simple-scan
entr
# inputs.self.packages.${pkgs.system}.mcuxpresso.ide
# dfu-util
# segger-jlink
# inputs.self.packages.${pkgs.system}.mcuxpresso.config-tools
];
}

View file

@ -2,9 +2,7 @@
lib,
pkgs,
...
}: let
inherit (lib) getExe;
in {
}: {
programs.helix = {
enable = true;
settings = {

View file

@ -60,6 +60,10 @@
git.enable = true;
utility = {
vim-wakatime.enable = true;
};
lsp = {
enable = true;
lspSignature.enable = true;

View file

@ -1,15 +1,21 @@
{pkgs, ...}: {
home.packages = with pkgs; [
bottles
lutris
mangohud
path-of-building
protonplus
r2modman
{
pkgs,
inputs,
...
}: {
home.packages = [
pkgs.bottles
pkgs.lutris
pkgs.mangohud
pkgs.path-of-building
pkgs.protonplus
pkgs.r2modman
# steamtinkerlaunch dependencies
xdotool
xorg.xwininfo
yad
pkgs.xdotool
pkgs.xorg.xwininfo
pkgs.yad
inputs.self.packages.${pkgs.system}.bolt-launcher
];
}

View file

@ -1,3 +1,3 @@
_: {
{
services.udiskie.enable = true;
}

View file

@ -1,5 +1,4 @@
{
lib,
config,
inputs,
pkgs,

View file

@ -1,4 +1,4 @@
_: {
{
programs.wezterm = {
enable = true;
# package = inputs.wezterm.packages.${pkgs.system}.default;

View file

@ -1,4 +1,4 @@
_: {
{
programs = {
direnv = {
enable = true;

View file

@ -1,4 +1,4 @@
_: {
{
programs.zellij = {
enable = true;
settings = {

View file

@ -14,6 +14,10 @@
name = "fzf";
inherit (pkgs.fishPlugins.fzf) src;
}
{
name = "autopair";
inherit (pkgs.fishPlugins.autopair) src;
}
];
};

View file

@ -1,4 +1,4 @@
_: {
{
programs.starship = {
enable = true;
enableTransience = true;

View file

@ -1,4 +1,4 @@
_: {
{
programs.zoxide = {
enable = true;
enableBashIntegration = false;

View file

@ -0,0 +1,29 @@
{
self,
inputs,
...
}: let
mod = "${self}/system";
in {
imports = [
./hardware-configuration.nix
./networking.nix # generated at runtime by nixos-infect
inputs.agenix.nixosModules.default
"${mod}/services/forgejo.nix"
"${mod}/services/searx.nix"
"${mod}/services/portfolio.nix"
];
boot.tmp.cleanOnBoot = true;
zramSwap.enable = true;
networking.hostName = "anastacia";
networking.domain = "";
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEzs7SQH0Vjt9JHoXXmWy9fPU1I3rrRWV5magZFrI5al"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHKEPlN/GU9nJZPleA77HH5NA+6vyhhM84fTSjEwnEgq"
];
system.stateVersion = "23.11";
}

View file

@ -0,0 +1,12 @@
{modulesPath, ...}: {
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
boot = {
loader.grub.device = "/dev/sda";
initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
initrd.kernelModules = ["nvme"];
};
fileSystems."/" = {
device = "/dev/sda1";
fsType = "ext4";
};
}

View file

@ -0,0 +1,52 @@
{lib, ...}: {
# This file was populated at runtime with the networking
# details gathered from the active system.
networking = {
nameservers = [
"8.8.8.8"
];
defaultGateway = "172.31.1.1";
defaultGateway6 = {
address = "fe80::1";
interface = "eth0";
};
dhcpcd.enable = false;
usePredictableInterfaceNames = lib.mkForce false;
interfaces = {
eth0 = {
ipv4.addresses = [
{
address = "78.47.146.254";
prefixLength = 32;
}
];
ipv6.addresses = [
{
address = "2a01:4f8:1c1c:8495::1";
prefixLength = 64;
}
{
address = "fe80::9400:3ff:fecb:6deb";
prefixLength = 64;
}
];
ipv4.routes = [
{
address = "172.31.1.1";
prefixLength = 32;
}
];
ipv6.routes = [
{
address = "fe80::1";
prefixLength = 128;
}
];
};
};
};
services.udev.extraRules = ''
ATTR{address}=="96:00:03:cb:6d:eb", NAME="eth0"
'';
}

View file

@ -1,31 +1,33 @@
{
self,
inputs,
lib',
...
}: let
inherit (inputs.nixpkgs.lib) nixosSystem;
specialArgs = {
inherit inputs self;
};
inherit (lib') mkSystem;
in {
vamos = nixosSystem {
vamos = mkSystem {
system = "x86_64-linux";
inherit specialArgs;
modules = [
./vamos
self.nixosModules.theme
inputs.self.nixosModules.theme
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
];
};
solaire = nixosSystem {
solaire = mkSystem {
system = "x86_64-linux";
inherit specialArgs;
modules = [
./solaire
self.nixosModules.theme
inputs.self.nixosModules.theme
];
};
anastacia = mkSystem {
system = "x86_64-linux";
modules = [
./anastacia
];
};
}

View file

@ -1,28 +1,25 @@
{
self,
specialArgs,
...
}: let
mod = "${self}/system";
{specialArgs, ...}: let
system = ../../system;
home = ../../home;
in {
imports = [
./hardware-configuration.nix
./modules
"${mod}"
"${mod}/hardware/uni-sync.nix"
system
"${system}/hardware/uni-sync.nix"
"${mod}/programs/gnome.nix"
"${mod}/programs/games.nix"
"${mod}/hardware/nvidia.nix"
"${system}/programs/gnome.nix"
"${system}/programs/games.nix"
"${system}/hardware/nvidia.nix"
];
home-manager = {
users.nezia.imports = [
"${self}/home"
"${self}/home/programs/games"
home
"${home}/programs/games"
"${self}/home/terminal/emulators/foot.nix"
"${home}/terminal/emulators/foot.nix"
];
extraSpecialArgs = specialArgs;
};

View file

@ -15,10 +15,10 @@ in {
"${mod}/hardware/fprintd.nix"
"${mod}/services/power.nix"
"${mod}/services/brightness.nix"
"${mod}/services/keyd.nix"
"${mod}/services/logind.nix"
"${mod}/services/greetd.nix"
"${mod}/services/kanata.nix"
"${mod}/programs/niri"
"${mod}/services/gnome.nix"

View file

@ -1,8 +1,9 @@
{
pkgs,
lib,
inputs,
lib',
...
}: let
inherit (inputs.nixpkgs) lib;
# convert rrggbb hex to rgba(r, g, b, a)
rgba = c: let
r = toString (hexToDec (builtins.substring 0 2 c));
@ -86,8 +87,25 @@
];
# Create a KDE konsole color scheme from base16 colors
mkKonsoleColorScheme = scheme:
mkKonsoleColorScheme = pkgs: scheme:
pkgs.writeText "${scheme.name}.colorscheme" (schemeToKonsole scheme);
in {
inherit mkKonsoleColorScheme rgba;
# https://github.com/diniamo/niqs/blob/caf396bb470619fa06936a379eec6e283c3c3d95/lib/default.nix#L13-L35C7
mkSystem = {system, ...} @ args:
lib.nixosSystem {
system = null;
specialArgs = {inherit inputs;};
modules =
[
{
_module.args = {
inherit system lib';
};
nixpkgs = {inherit system;};
}
]
++ args.modules or [];
};
in {
inherit mkKonsoleColorScheme rgba mkSystem;
}

14
nodes/default.nix Normal file
View file

@ -0,0 +1,14 @@
{
self,
inputs,
...
}: {
anastacia = {
hostname = "2a01:4f8:1c1c:8495::1";
profiles.system = {
sshUser = "root";
user = "root";
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.anastacia;
};
};
}

208
pkgs/bolt-launcher.nix Normal file
View file

@ -0,0 +1,208 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
cmake,
ninja,
libarchive,
libz,
jdk17,
libcef,
luajit,
xorg,
mesa,
glib,
nss,
nspr,
atk,
at-spi2-atk,
libdrm,
expat,
libxkbcommon,
gtk3,
pango,
cairo,
alsa-lib,
dbus,
at-spi2-core,
cups,
systemd,
buildFHSEnv,
copyDesktopItems,
makeDesktopItem,
}: let
cef = libcef.overrideAttrs (_: {
installPhase = let
gl_rpath = lib.makeLibraryPath [
stdenv.cc.cc.lib
];
rpath = lib.makeLibraryPath [
glib
nss
nspr
atk
at-spi2-atk
libdrm
expat
xorg.libxcb
libxkbcommon
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
mesa
gtk3
pango
cairo
alsa-lib
dbus
at-spi2-core
cups
xorg.libxshmfence
systemd
];
in ''
mkdir -p $out/lib/ $out/share/cef/
cp libcef_dll_wrapper/libcef_dll_wrapper.a $out/lib/
cp -r ../Resources/* $out/lib/
cp -r ../Release/* $out/lib/
patchelf --set-rpath "${rpath}" $out/lib/libcef.so
patchelf --set-rpath "${gl_rpath}" $out/lib/libEGL.so
patchelf --set-rpath "${gl_rpath}" $out/lib/libGLESv2.so
cp ../Release/*.bin $out/share/cef/
cp -r ../Resources/* $out/share/cef/
cp -r ../include $out
cp -r ../libcef_dll $out
cp -r ../cmake $out
'';
});
bolt = stdenv.mkDerivation (finalAttrs: {
pname = "bolt-launcher";
version = "0.10.0";
src = fetchFromGitHub {
owner = "AdamCake";
repo = "bolt";
rev = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-2IoFzD+yhQv1Y7D+abeNUT23BC4P1xZTALF8Y+Zsg44=";
};
nativeBuildInputs = [
cmake
ninja
luajit
makeWrapper
copyDesktopItems
];
buildInputs = [
mesa
xorg.libX11
xorg.libxcb
libarchive
libz
cef
jdk17
];
desktopItems = [
(makeDesktopItem {
inherit (bolt) name;
desktopName = "Bolt Launcher";
keywords = [
"Game"
];
exec = "${bolt.name}";
terminal = false;
categories = ["Game"];
icon = "bolt-launcher";
})
];
cmakeFlags = [
"-D CMAKE_BUILD_TYPE=Release"
"-D BOLT_LUAJIT_INCLUDE_DIR=${luajit}/include"
"-G Ninja"
];
preConfigure = ''
ls -al
mkdir -p cef/dist/Release cef/dist/Resources cef/dist/include
ln -s ${cef}/lib/* cef/dist/Release
ln -s ${cef}/share/cef/*.pak cef/dist/Resources
ln -s ${cef}/share/cef/icudtl.dat cef/dist/Resources
ln -s ${cef}/share/cef/locales cef/dist/Resources
ln -s ${cef}/include/* cef/dist/include
ln -s ${cef}/libcef_dll cef/dist/libcef_dll
ln -s ${cef}/cmake cef/dist/cmake
ln -s ${cef}/CMakeLists.txt cef/dist
'';
postInstall = ''
for size in 16 32 64 128 256; do
size_dir="''${size}x''${size}"
ls -al $src/icon
mkdir -p $out/share/icons/hicolor/''${size_dir}/apps
cp $src/icon/$size.png $out/share/icons/hicolor/''${size_dir}/apps/bolt-launcher.png
done
mkdir -p $out/share/icons/hicolor/scalable/apps/
cp $src/icon/bolt.svg $out/share/icons/hicolor/scalable/apps/bolt-launcher.svg
'';
postFixup = ''
makeWrapper "$out/opt/bolt-launcher/bolt" "$out/bin/${finalAttrs.pname}-${finalAttrs.version}" \
--set JAVA_HOME "${jdk17}"
ls -al $out/bin
mkdir -p $out/lib
cp $out/usr/local/lib/libbolt-plugin.so $out/lib
'';
});
in
buildFHSEnv {
inherit (bolt) name version;
targetPkgs = pkgs:
[bolt]
++ (with pkgs; [
xorg.libSM
xorg.libXxf86vm
xorg.libX11
glib
pango
cairo
gdk-pixbuf
gtk2-x11
libz
libcap
libsecret
openssl_1_1
SDL2
libGL
]);
extraInstallCommands = ''
mkdir -p $out/share/applications $out/share/icons
ln -s ${bolt}/share/applications/*.desktop \
$out/share/applications/
ln -s ${bolt}/share/icons/hicolor \
$out/share/icons/hicolor
'';
runScript = "${bolt.name}";
meta = {
homepage = "https://github.com/Adamcake/Bolt";
description = "An alternative launcher for RuneScape";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [nezia];
platforms = lib.platforms.linux;
mainProgram = "${bolt.name}";
};
}

15
pkgs/default.nix Normal file
View file

@ -0,0 +1,15 @@
{
inputs,
pkgs,
...
}: {
mcuxpresso = import ./mcuxpresso pkgs;
# this is unfortunately needed since bolt-launcher makes use of openssl-1.1.1w, and since it is not part of hosts, we have to add it this way
bolt-launcher =
(import inputs.nixpkgs {
inherit (pkgs) system;
config.permittedInsecurePackages = ["openssl-1.1.1w"];
})
.callPackage
./bolt-launcher.nix {};
}

View file

@ -0,0 +1,49 @@
{
eclipses,
stdenv,
requireFile,
...
}: let
name = "mcuxpressotools";
version = "v16-1";
description = "MCUXpresso Config Tools";
filename = "mcuxpresso-config-tools-${version}_amd64.deb";
src = stdenv.mkDerivation {
inherit version description;
name = "${name}-src";
src = requireFile {
url = "https://www.nxp.com/design/software/development-software/mcuxpresso-config-tools-pins-clocks-and-peripherals:MCUXpresso-Config-Tools";
name = "${filename}.bin";
sha256 = "sha256-BbEwxm1urV2IrgUiTiMBEAPvonQGwdL4fpqFftGgRxI=";
};
buildCommand = ''
# Unpack tarball.
mkdir -p deb
sh $src --target deb || true
ar -xv deb/${filename}
tar xfvz data.tar.gz -C .
mkdir -p ./final/eclipse
mv ./opt/nxp/MCUX_CFG_v13/bin/.* final/eclipse
mv ./usr final/
mv final/eclipse/tools final/eclipse/eclipse
mv final/eclipse/tools.ini final/eclipse/eclipse.ini
# Create custom .eclipseproduct file
echo "name=${name}
id=com.nxp.${name}
version=${version}
" > final/eclipse/.eclipseproduct
# Additional files
mkdir -p final/usr/share/mime
mv ./opt/nxp/MCUX_CFG_v13/mcu_data final/mcu_data
cd ./final
tar -czf $out ./
'';
};
in
eclipses.buildEclipse {inherit description name src;}

View file

@ -0,0 +1,3 @@
pkgs: {
ide = pkgs.callPackage ./ide.nix {};
}

100
pkgs/mcuxpresso/ide.nix Normal file
View file

@ -0,0 +1,100 @@
# https://github.com/KoviRobi/nixos-config/blob/3ab3f8372d1fd021a235de4d314ef7147846513e/overlays/mcuxpresso.nix
{pkgs, ...}: let
name = "mcuxpressoide";
version = "24.9.25";
description = "MCUXpresso IDE";
filename = "${name}-${version}.x86_64.deb";
mcuxpressoideSrc = pkgs.stdenv.mkDerivation {
inherit version description;
name = "${name}-src";
src = pkgs.requireFile {
url = "https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE";
name = "${filename}.bin";
hash = "sha256-e3g7rzZQ1WFLcUakkjaufpHMtw3qkw5lwxJuCKs6L+k=";
};
buildCommand = ''
# Unpack tarball.
mkdir -p deb
sh $src --target deb || true
ar -xv deb/${filename}
tar xfvz data.tar.gz -C .
mkdir -p ./final/eclipse
mv ./usr/local/${name}-${version}/ide/* ./usr/local/${name}-${version}/ide/.* final/eclipse
mv final/eclipse/mcuxpressoide final/eclipse/eclipse
mv final/eclipse/mcuxpressoide.ini final/eclipse/eclipse.ini
# Create custom .eclipseproduct file
rm final/eclipse/.eclipseproduct
echo "name=${name}
id=com.nxp.${name}
version=${version}
" > final/eclipse/.eclipseproduct
# Install udev rules
mkdir -p final/lib/udev/rules.d
mv ./lib/udev/rules.d/56-pemicro.rules ./lib/udev/rules.d/85-mcuxpresso.rules final/lib/udev/rules.d/
# Additional files
mv ./usr/local/${name}-${version}/mcu_data final/mcu_data
cd ./final
tar -czf $out ./
'';
};
mcuxpressoide = pkgs.eclipses.buildEclipse {
name = "mcuxpresso-eclipse";
inherit description;
src = mcuxpressoideSrc;
};
# needed because of the integrated toolchain
mcuxpressoFhsEnv = pkgs.buildFHSEnv {
name = "mcuxpresso-env";
targetPkgs = pkgs: [
pkgs.stdenv.cc.cc.lib
pkgs.gcc
pkgs.libgcc
pkgs.libstdcxx5
pkgs.xorg.libXext
pkgs.xorg.libX11
pkgs.xorg.libXrender
pkgs.xorg.libXtst
pkgs.xorg.libXi
pkgs.freetype
pkgs.alsa-lib
pkgs.ncurses
pkgs.ncurses5
pkgs.libusb1
pkgs.readline
pkgs.libffi
pkgs.zlib
pkgs.tcl
pkgs.libxcrypt
pkgs.libxcrypt-legacy
pkgs.libusb-compat-0_1
];
runScript = "${mcuxpressoide}/bin/eclipse";
};
in
# wrapper with desktop entry and udev rules
pkgs.stdenv.mkDerivation {
inherit name version description;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [pkgs.copyDesktopItems];
desktopItems = [
(pkgs.makeDesktopItem {
inherit name;
type = "Application";
desktopName = "MCUXpresso IDE";
exec = "mcuxpresso";
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/lib/udev/rules.d $out/eclipse $out/mcu_data
cp ${mcuxpressoide}/lib/udev/rules.d/85-mcuxpresso.rules ${mcuxpressoide}/lib/udev/rules.d/56-pemicro.rules $out/lib/udev/rules.d/
ln -s ${mcuxpressoFhsEnv}/bin/mcuxpresso-env $out/bin/mcuxpresso
runHook postInstall
'';
}

BIN
secrets/searx-env-file.age Normal file

Binary file not shown.

5
secrets/secrets.nix Normal file
View file

@ -0,0 +1,5 @@
let
anastacia = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEplguGeXCbdz++Ry5pwJylmtAMnwtf1+9JoJnCGfw3A root@anastacia";
in {
"searx-env-file.age".publicKeys = [anastacia];
}

View file

@ -4,7 +4,6 @@
./users.nix
./security.nix
./networking.nix
../nix
];
i18n = {
defaultLocale = "en_US.UTF-8";

View file

@ -7,6 +7,7 @@
"audio"
"video"
"wheel"
"plugdev"
];
};
}

View file

@ -1,6 +1,7 @@
{
imports = [
./core
./nix
./hardware/printing.nix
./hardware/fwupd.nix

View file

@ -1,15 +1,13 @@
{pkgs, ...}: {
{
nixpkgs = {
config.allowUnfree = true;
overlays = [
(_: prev: {
lib =
prev.lib
// import ../../lib {
inherit (prev) lib pkgs;
};
})
config = {
allowUnfree = true;
permittedInsecurePackages = [
"cinny-4.2.2"
"cinny-unwrapped-4.2.2"
"segger-jlink-qt4-796s"
];
config.permittedInsecurePackages = ["cinny-4.2.2" "cinny-unwrapped-4.2.2"];
segger-jlink.acceptLicense = true;
};
};
}

View file

@ -2,7 +2,7 @@
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-cjk-sans
noto-fonts-emoji
noto-fonts-extra
(nerdfonts.override {fonts = ["IntelOneMono"];})

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{
programs = {
steam.enable = true;
gamemode.enable = true;

View file

@ -1,3 +1,9 @@
{
imports = [./docker.nix ./gnupg.nix ./pipewire.nix ./kmscon.nix];
{pkgs, ...}: {
imports = [
./docker.nix
./gnupg.nix
./pipewire.nix
./kmscon.nix
];
services.udev.packages = [pkgs.segger-jlink];
}

View file

@ -1,9 +1,8 @@
_: {
virtualisation.docker = {
{pkgs, ...}: {
virtualisation.podman = {
enable = true;
rootless = {
enable = true;
setSocketVariable = true;
};
dockerCompat = true;
};
environment.systemPackages = [pkgs.distrobox];
}

View file

@ -0,0 +1,54 @@
{
config,
pkgs,
...
}: let
srv = config.services.forgejo.settings.server;
in {
services = {
forgejo = {
enable = true;
package = pkgs.forgejo;
lfs.enable = true;
database.type = "postgres";
dump = {
enable = true;
type = "tar.xz";
};
settings = {
server = {
DOMAIN = "git.nezia.dev";
HTTP_PORT = 1849;
ROOT_URL = "https://${srv.DOMAIN}/";
HTTP_ADDR = "localhost";
};
service = {
DISABLE_REGISTRATION = true;
};
federation = {
ENABLED = true;
};
};
};
caddy = {
enable = true;
virtualHosts."git.nezia.dev".extraConfig = ''
reverse_proxy * localhost:${toString srv.HTTP_PORT}
'';
};
};
networking.firewall = {
enable = true;
allowedTCPPorts = [80 443];
# If you're using nftables (default in newer NixOS)
extraForwardRules = ''
ip6 saddr { ::/0 } accept
'';
};
# Ensure IPv6 is enabled
networking.enableIPv6 = true;
}

View file

@ -0,0 +1,33 @@
{
services.kanata = {
enable = true;
keyboards.default = {
extraDefCfg = "process-unmapped-keys yes";
config = ''
(defsrc
caps a s d f j k l ;
)
(defvar
tap-time 150
hold-time 200
)
(defalias
escctrl (tap-hold 100 100 esc lctl)
a (tap-hold $tap-time $hold-time a lmet)
s (tap-hold $tap-time $hold-time s lalt)
d (tap-hold $tap-time $hold-time d lsft)
f (tap-hold $tap-time $hold-time f lctl)
j (tap-hold $tap-time $hold-time j rctl)
k (tap-hold $tap-time $hold-time k rsft)
l (tap-hold $tap-time $hold-time l ralt)
; (tap-hold $tap-time $hold-time ; rmet)
)
(deflayer base
@escctrl @a @s @d @f @j @k @l @;
)
'';
};
};
}

View file

@ -1,4 +1,4 @@
_: {
{
hardware.pulseaudio.enable = false;
# rtkit is optional but recommended
security.rtkit.enable = true;

View file

@ -0,0 +1,21 @@
{
inputs,
pkgs,
...
}: {
services.caddy.enable = true;
services.caddy.virtualHosts = {
"www.nezia.dev" = {
extraConfig = ''
redir https://nezia.dev{uri}
'';
};
"nezia.dev" = {
extraConfig = ''
root * ${inputs.portfolio.packages.${pkgs.system}.default}
file_server
encode gzip
'';
};
};
}

61
system/services/searx.nix Normal file
View file

@ -0,0 +1,61 @@
{
config,
pkgs,
...
}: {
age.secrets.searx-env-file.file = ../../secrets/searx-env-file.age;
services = {
searx = {
enable = true;
package = pkgs.searxng;
environmentFile = config.age.secrets.searx-env-file.path;
settings = {
search = {
safe_search = 1; # 0 = None, 1 = Moderate, 2 = Strict
autocomplete = "google"; # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off by default
default_lang = "en";
};
server = {
secret_key = "@SEARX_SECRET_KEY@";
port = 8888; # Internal port
bind_address = "localhost"; # Only listen locally
base_url = "https://search.nezia.dev/";
image_proxy = true;
default_http_headers = {
X-Content-Type-Options = "nosniff";
X-XSS-Protection = "1; mode=block";
X-Download-Options = "noopen";
X-Robots-Tag = "noindex, nofollow";
Referrer-Policy = "no-referrer";
};
};
engines = [
{
name = "qwant";
disabled = true;
}
];
};
};
caddy = {
enable = true;
virtualHosts."search.nezia.dev" = {
extraConfig = ''
encode gzip
reverse_proxy localhost:8888 {
header_up Host {host}
header_up X-Real-IP {remote_addr}
header_up X-Forwarded-For {remote_addr}
header_up X-Forwarded-Proto {scheme}
}
'';
};
};
};
# Open required ports
networking.firewall = {
allowedTCPPorts = [80 443]; # For Caddy
};
}