mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-11-12 18:43:15 -06:00
Compare commits
15 commits
6d1f571ad4
...
17045e81b2
Author | SHA1 | Date | |
---|---|---|---|
17045e81b2 | |||
a3fbd69e0c | |||
643d4799bc | |||
63490a3fdf | |||
2e4fdc4805 | |||
2635aa5b57 | |||
79c7654486 | |||
a03cbee7ac | |||
8f8c551503 | |||
6cfde7d480 | |||
7f21a95abf | |||
aaede70323 | |||
e0a862ce4d | |||
56eafc5350 | |||
c676b848e9 |
19 changed files with 248 additions and 217 deletions
2
.github/workflows/update.yml
vendored
2
.github/workflows/update.yml
vendored
|
@ -28,6 +28,7 @@ jobs:
|
|||
with:
|
||||
source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux
|
||||
extra-conf: |
|
||||
experimental-features = pipe-operator
|
||||
accept-flake-config = true
|
||||
|
||||
- uses: cachix/cachix-action@v15
|
||||
|
@ -81,6 +82,7 @@ jobs:
|
|||
with:
|
||||
source-url: https://install.lix.systems/lix/lix-installer-x86_64-linux
|
||||
extra-conf: |
|
||||
experimental-features = pipe-operator
|
||||
accept-flake-config = true
|
||||
|
||||
- uses: ./.github/actions/clean-disk
|
||||
|
|
126
flake.lock
126
flake.lock
|
@ -20,11 +20,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722347739,
|
||||
"narHash": "sha256-rAoh+K6KG+b1DwSWtqRVocdojnH6nGk6q07mNltoUSM=",
|
||||
"lastModified": 1723405438,
|
||||
"narHash": "sha256-bpmC2m7OhlDvqgQZdZ2jBLyeIkq/Jld3X4bqRAxBSp8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "7c3565f9bedc7cb601cc0baa14792247e4dc1d5a",
|
||||
"rev": "9312aa28271c91e5d67ecb9def527b2bbcff0e66",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -125,11 +125,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1719994518,
|
||||
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
|
||||
"lastModified": 1722555600,
|
||||
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
|
||||
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -298,11 +298,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721330371,
|
||||
"narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=",
|
||||
"lastModified": 1722623071,
|
||||
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc",
|
||||
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -323,11 +323,11 @@
|
|||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723224800,
|
||||
"narHash": "sha256-2b+cECwR+3FL/ikuZnXE94H8bXdlnYUbhmi1KNpD/tc=",
|
||||
"lastModified": 1723488592,
|
||||
"narHash": "sha256-nPYQrQD8rldLIhrz6px0YHGB4WwIaWLdmBtWsMgLLNI=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "8b37e81374928856d8fd859b95a62c8bf4211901",
|
||||
"revCount": 5073,
|
||||
"rev": "77cf651825c2afac69e3a827ff910a62c73e1218",
|
||||
"revCount": 5083,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland/"
|
||||
|
@ -444,11 +444,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722098849,
|
||||
"narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=",
|
||||
"lastModified": 1722869141,
|
||||
"narHash": "sha256-0KU4qhyMp441qfwbirNg3+wbm489KnEjXOz2I/RbeFs=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f",
|
||||
"rev": "0252fd13e78e60fb0da512a212e56007515a49f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -500,11 +500,11 @@
|
|||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722773431,
|
||||
"narHash": "sha256-puSEio9yjWojIBDBts4BSGZ43rv1LzIevdYOKmW/Mjg=",
|
||||
"lastModified": 1723378259,
|
||||
"narHash": "sha256-8JZVHJAoDgbAk9nn7blBB+wnQbgCq1lIxBsyT7qgeI8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lib-aggregate",
|
||||
"rev": "04a4b4d84e02590715e753da3d35fb03cddc6425",
|
||||
"rev": "8834c9b308bf4d9d448dd73be5f9782f4635d4ca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -516,11 +516,11 @@
|
|||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1723213513,
|
||||
"narHash": "sha256-XbtSx3sxE6rf/D31fBX9d28CuXnokkbHW6tzOEMVfxw=",
|
||||
"rev": "346e340cbfe450df3709cf5d51e26ba247a2c1ad",
|
||||
"lastModified": 1723511168,
|
||||
"narHash": "sha256-XDcqLVPcsMhORerIPuQ1XNALtDvG6QRA2dKyNrccXyg=",
|
||||
"rev": "f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/346e340cbfe450df3709cf5d51e26ba247a2c1ad.tar.gz"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44.tar.gz?rev=f9a3bf6ccccf8ac6b1604c1a2980e3a565ae4f44"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
|
@ -539,11 +539,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722485024,
|
||||
"narHash": "sha256-+7RReWaFQUO8MfAhJYNm4FkALuM3rPGy2AlXXv9Jmc8=",
|
||||
"rev": "e350380d72f94035c309e19fda2fd550f6ab7376",
|
||||
"lastModified": 1723511483,
|
||||
"narHash": "sha256-rT/OkVXKkns2YvyF1nFvl+8Gc3sld1c1sXPtGkbqaDY=",
|
||||
"rev": "cecf70b77539c1a593f60ec9d0305b5e537ab6a9",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/e350380d72f94035c309e19fda2fd550f6ab7376.tar.gz"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cecf70b77539c1a593f60ec9d0305b5e537ab6a9.tar.gz?rev=cecf70b77539c1a593f60ec9d0305b5e537ab6a9"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
|
@ -558,11 +558,11 @@
|
|||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721505437,
|
||||
"narHash": "sha256-sZpyyf9EiRVyEA9vUVWNxu8yI9MU0nhlEuPBL3hvC60=",
|
||||
"lastModified": 1723372011,
|
||||
"narHash": "sha256-zqenoufFiPfobw74idorZMG8AXG3DnFzbHplt/Nkvrg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-eval-jobs",
|
||||
"rev": "2e522fb78d7613cecaf683875ab27b6c90e8a84f",
|
||||
"rev": "8802412b8747633e9d80639897e4d58fa6290909",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -600,11 +600,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722740924,
|
||||
"narHash": "sha256-UQPgA5d8azLZuDHZMPmvDszhuKF1Ek89SrTRtqsQ4Ss=",
|
||||
"lastModified": 1723352546,
|
||||
"narHash": "sha256-WTIrvp0yV8ODd6lxAq4F7EbrPQv0gscBnyfn559c3k8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "97ca0a0fca0391de835f57e44f369a283e37890f",
|
||||
"rev": "ec78079a904d7d55e81a0468d764d0fffb50ac06",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -660,11 +660,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722185531,
|
||||
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
|
||||
"lastModified": 1723175592,
|
||||
"narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
|
||||
"rev": "5e0ca22929f3342b19569b21b2f3462f053e497b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -676,11 +676,11 @@
|
|||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1722732880,
|
||||
"narHash": "sha256-do2Mfm3T6SR7a5A804RhjQ+JTsF5hk4JTPGjCTRM/m8=",
|
||||
"lastModified": 1723337705,
|
||||
"narHash": "sha256-znSU0DeNDPt7+LMAfFkvKloMaeQ6yl/U5SqV/ktl1vA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "8bebd4c74f368aacb047f0141db09ec6b339733c",
|
||||
"rev": "ace7856d327b618d3777e31b1f224b3ab57ed71a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -697,11 +697,11 @@
|
|||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723206805,
|
||||
"narHash": "sha256-C75q+dsWnjObUKukRsFj2VKNRtULvZw/XszfGu97PyY=",
|
||||
"lastModified": 1723504763,
|
||||
"narHash": "sha256-q+Leb6hrkfc5cwysvYcGVslr6tBtSC9ggIjqpV9wmy0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs-wayland",
|
||||
"rev": "f9b6659b7a856ad5c470ce224a0d69696c6f8c73",
|
||||
"rev": "e551336e36b8e275cdbdfc08ea6d1182239263b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -744,11 +744,11 @@
|
|||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1723151389,
|
||||
"narHash": "sha256-9AVY0ReCmSGXHrlx78+1RrqcDgVSRhHUKDVV1LLBy28=",
|
||||
"lastModified": 1723221148,
|
||||
"narHash": "sha256-7pjpeQlZUNQ4eeVntytU3jkw9dFK3k1Htgk2iuXjaD8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "13fe00cb6c75461901f072ae62b5805baef9f8b2",
|
||||
"rev": "154bcb95ad51bc257c2ce4043a725de6ca700ef6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -760,11 +760,11 @@
|
|||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1720781449,
|
||||
"narHash": "sha256-po3TZO9kcZwzvkyMJKb0WCzzDtiHWD34XeRaX1lWXp0=",
|
||||
"lastModified": 1723221148,
|
||||
"narHash": "sha256-7pjpeQlZUNQ4eeVntytU3jkw9dFK3k1Htgk2iuXjaD8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8b5a3d5a1d951344d683b442c0739010b80039db",
|
||||
"rev": "154bcb95ad51bc257c2ce4043a725de6ca700ef6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -776,11 +776,11 @@
|
|||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1722813957,
|
||||
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
|
||||
"lastModified": 1723175592,
|
||||
"narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
|
||||
"rev": "5e0ca22929f3342b19569b21b2f3462f053e497b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -839,11 +839,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723012587,
|
||||
"narHash": "sha256-IxV/7YKqeFoBFc1SXgUPdnWi34JkBieSzWM+gP8YzWI=",
|
||||
"lastModified": 1723447286,
|
||||
"narHash": "sha256-P3YvswRWaPlBr6YOkeNOVs4P/IcjPC24FfN8gUM7VkY=",
|
||||
"owner": "roc-lang",
|
||||
"repo": "roc",
|
||||
"rev": "698bbc3cf1c279baf76b6015754aab58d5ffeffb",
|
||||
"rev": "3ebff4348ff8a361e59b9ca3997c41ac8076a201",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -1027,11 +1027,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1720930114,
|
||||
"narHash": "sha256-VZK73b5hG5bSeAn97TTcnPjXUXtV7j/AtS4KN8ggCS0=",
|
||||
"lastModified": 1723303070,
|
||||
"narHash": "sha256-krGNVA30yptyRonohQ+i9cnK+CfCpedg6z3qzqVJcTs=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "b92afa1501ac73f1d745526adc4f89b527595f14",
|
||||
"rev": "14c092e0326de759e16b37535161b3cb9770cea3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -1101,11 +1101,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723205416,
|
||||
"narHash": "sha256-VF5o0Ogk2PyQSs22aQijjqIC0U3Z4mzjTcrsnhSfQ9U=",
|
||||
"lastModified": 1723508807,
|
||||
"narHash": "sha256-2j6u7X2ziCjpUgeZbP1h4/MNG6glc4sO2DzDXgw43o0=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "f4d2e3b5855a66a763e49d8030edbb6b852c4b1a",
|
||||
"rev": "4dbfd05d2d1382eaf40ff1ebab854abe7e30702f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -1127,11 +1127,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722987529,
|
||||
"narHash": "sha256-r7tnq70psZQXfLlDj+XzidBj352vfQFrICC7hfKHw7M=",
|
||||
"lastModified": 1723396350,
|
||||
"narHash": "sha256-f5RTadUCYeGPDI6Y7xDYa6sJsdKFCdtD4WipGxuof3A=",
|
||||
"owner": "zigtools",
|
||||
"repo": "zls",
|
||||
"rev": "d8084a342f40b444addf772fdef36a589299ebe6",
|
||||
"rev": "3ec8ad16337e5fc391fbdfb394f68f155b2a7a69",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
{ enabled, ... }:
|
||||
{
|
||||
enabled,
|
||||
enableAttrs,
|
||||
listify,
|
||||
...
|
||||
}:
|
||||
{
|
||||
oizys = {
|
||||
languages = [
|
||||
"nim"
|
||||
"node" # for docker langservers
|
||||
"python"
|
||||
"nushell"
|
||||
];
|
||||
rune.motd = enabled;
|
||||
docker = enabled;
|
||||
backups = enabled;
|
||||
nix-ld = enabled;
|
||||
};
|
||||
languages = "nim|node|python|nushell" |> listify;
|
||||
} // ("docker|backups|nix-ld" |> listify |> enableAttrs);
|
||||
|
||||
services.restic.backups.gdrive = {
|
||||
# directories created by gitea and soft-serve aren't world readable
|
||||
|
@ -27,15 +24,6 @@
|
|||
];
|
||||
};
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
users.users = {
|
||||
daylin = {
|
||||
extraGroups = [ "docker" ];
|
||||
};
|
||||
|
||||
git = {
|
||||
isNormalUser = true;
|
||||
};
|
||||
};
|
||||
# git user handles the forgjo ssh authentication
|
||||
users.users.git.isNormalUser = true;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{ enabled, ... }:
|
||||
{
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
services.resolved = enabled;
|
||||
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
services.fail2ban = enabled // {
|
||||
maxretry = 5;
|
||||
bantime = "24h";
|
||||
};
|
||||
|
@ -26,8 +27,9 @@
|
|||
# users.mutableUsers = false;
|
||||
|
||||
# Use the GRUB 2 boot loader.
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
|
||||
boot.loader.grub = enabled // {
|
||||
device = "/dev/sda"; # or "nodev" for efi only
|
||||
};
|
||||
|
||||
# don't delete this you foo bar
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
|
|
|
@ -4,14 +4,13 @@
|
|||
desktop = enabled;
|
||||
nix-ld = enabled;
|
||||
rune.motd = enabled;
|
||||
docker = enabled;
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager.startx.enable = true;
|
||||
windowManager.qtile.enable = true;
|
||||
services.xserver = enabled // {
|
||||
displayManager.startx = enabled;
|
||||
windowManager.qtile = enabled;
|
||||
};
|
||||
|
||||
users.users.daylin.extraGroups = [ "docker" ];
|
||||
}
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
{ enabled, config, ... }:
|
||||
{
|
||||
oizys = {
|
||||
vpn = enabled;
|
||||
desktop = enabled;
|
||||
hyprland = enabled;
|
||||
chrome = enabled;
|
||||
docker = enabled;
|
||||
nix-ld = enabled // {
|
||||
overkill = enabled;
|
||||
};
|
||||
vbox = enabled;
|
||||
backups = enabled;
|
||||
hp-scanner = enabled;
|
||||
languages = [
|
||||
"misc"
|
||||
"nim"
|
||||
"node"
|
||||
"nushell"
|
||||
"python"
|
||||
"roc"
|
||||
"tex"
|
||||
"zig"
|
||||
];
|
||||
llm = enabled;
|
||||
};
|
||||
lib,
|
||||
config,
|
||||
enabled,
|
||||
enableAttrs,
|
||||
listify,
|
||||
...
|
||||
}:
|
||||
{
|
||||
oizys =
|
||||
{
|
||||
nix-ld = enabled // {
|
||||
overkill = enabled;
|
||||
};
|
||||
languages = "misc|nim|node|nushell|python|roc|tex|zig" |> listify;
|
||||
}
|
||||
// (
|
||||
''
|
||||
vpn|desktop|hyprland|chrome
|
||||
docker|vbox|backups|hp-scanner|llm
|
||||
''
|
||||
|> listify
|
||||
|> enableAttrs
|
||||
);
|
||||
|
||||
services.restic.backups.gdrive = {
|
||||
user = "daylin";
|
||||
repository = "rclone:g:archives/othalan";
|
||||
passwordFile = "/home/daylin/.config/restic/othalan-pass";
|
||||
paths = [
|
||||
"/home/daylin/stuff/"
|
||||
"/home/daylin/dev/"
|
||||
];
|
||||
};
|
||||
|
||||
users.users.${config.oizys.user}.extraGroups = [ "audio" ];
|
||||
}
|
||||
|
|
|
@ -3,6 +3,16 @@ let
|
|||
notes-git = ''${pkgs.git}/bin/git -C /home/daylin/stuff/notes'';
|
||||
in
|
||||
{
|
||||
services.restic.backups.gdrive = {
|
||||
user = "daylin";
|
||||
repository = "rclone:g:archives/othalan";
|
||||
passwordFile = "/home/daylin/.config/restic/othalan-pass";
|
||||
paths = [
|
||||
"/home/daylin/stuff/"
|
||||
"/home/daylin/dev/"
|
||||
];
|
||||
};
|
||||
|
||||
systemd.services.notes-bot = {
|
||||
description = "auto commit changes to notes";
|
||||
serviceConfig = {
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ pkgs, enabled, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
enabled,
|
||||
...
|
||||
}:
|
||||
{
|
||||
networking.networkmanager = enabled;
|
||||
services.fwupd = enabled;
|
||||
|
@ -21,7 +26,7 @@
|
|||
support32Bit = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.users.${config.oizys.user}.extraGroups = [ "audio" ];
|
||||
environment.systemPackages = with pkgs; [ pamixer ];
|
||||
|
||||
# catppuccin/tty move to "module"
|
||||
|
|
|
@ -24,7 +24,7 @@ let
|
|||
|
||||
# TODO: start using pipes once support lands in nixd
|
||||
# selfPackages = self.packages.${pkgs.system} |> attrValues;
|
||||
selfPackages = (attrValues self.packages.${pkgs.system});
|
||||
selfPackages = attrValues self.packages.${pkgs.system};
|
||||
in
|
||||
{
|
||||
makePackages =
|
||||
|
@ -34,7 +34,7 @@ in
|
|||
# packages from overlays
|
||||
(with pkgs; [
|
||||
swww
|
||||
# nixVersions.git
|
||||
nixVersions.git
|
||||
])
|
||||
++ [
|
||||
(flake.pkgs "roc").full
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
inputs: final: prev:
|
||||
let
|
||||
inherit (builtins) listToAttrs substring filter;
|
||||
inherit (builtins)
|
||||
listToAttrs
|
||||
substring
|
||||
filter
|
||||
replaceStrings
|
||||
;
|
||||
inherit (final)
|
||||
concatStringsSep
|
||||
hasSuffix
|
||||
|
@ -8,10 +13,13 @@ let
|
|||
mkIf
|
||||
mkOption
|
||||
types
|
||||
splitString
|
||||
trim
|
||||
;
|
||||
inherit (final.filesystem) listFilesRecursive;
|
||||
in
|
||||
let
|
||||
|
||||
enabled = {
|
||||
enable = true;
|
||||
};
|
||||
|
@ -19,6 +27,20 @@ let
|
|||
enable = false;
|
||||
};
|
||||
|
||||
# split a string on newlines and pipes to generate list
|
||||
# "opt1|opt2" |> listify -> ["opt1" "opt2"]
|
||||
# ''
|
||||
# opt1
|
||||
# opt2|opt3
|
||||
# '' |> listify ["opt1" "opt2" "opt3"]
|
||||
listify =
|
||||
s:
|
||||
s
|
||||
|> replaceStrings [ "\n" ] [ "|" ]
|
||||
|> splitString "|"
|
||||
|> filter (s': s' != "")
|
||||
|> map (s': trim s');
|
||||
|
||||
# ["a" "b"] -> {a.enable = true; b.enable = true;}
|
||||
enableAttrs =
|
||||
attrs:
|
||||
|
@ -66,10 +88,12 @@ let
|
|||
flakeVer =
|
||||
flake: "${flake.shortRev or flake.dirtyShortRev}-${mkDate (toString flake.lastModifiedDate)}";
|
||||
|
||||
isNixFile = p: hasSuffix ".nix" p;
|
||||
isDefaultNixFile = p: hasSuffix "default.nix" p;
|
||||
filterNotDefaultNixFile = paths: filter (p: !(isDefaultNixFile p) && (isNixFile p)) paths;
|
||||
listNixFilesRecursive = dir: filterNotDefaultNixFile (listFilesRecursive dir);
|
||||
isNixFile = p: p |> hasSuffix ".nix";
|
||||
isDefaultNixFile = p: p |> hasSuffix "default.nix";
|
||||
# filterNotDefaultNixFile = paths: filter (p: !(isDefaultNixFile p) && (isNixFile p)) paths;
|
||||
filterNotDefaultNixFile = paths: paths |> filter (p: !(isDefaultNixFile p) && (isNixFile p));
|
||||
# listNixFilesRecursive = dir: filterNotDefaultNixFile (listFilesRecursive dir);
|
||||
listNixFilesRecursive = dir: dir |> listFilesRecursive |> filterNotDefaultNixFile;
|
||||
|
||||
# defaultLinuxPackage = flake: flake.packages.x86_64-linux.default;
|
||||
# defaultPackageGeneric = system: flake: "${flake}.packages.${system}.default";
|
||||
|
@ -81,6 +105,7 @@ let
|
|||
pkgs = pkgsFromSystem system;
|
||||
pkg = pkgFromSystem system;
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
inherit
|
||||
|
@ -99,5 +124,6 @@ in
|
|||
pkgFromSystem
|
||||
overlayFrom
|
||||
flakeFromSystem
|
||||
listify
|
||||
;
|
||||
}
|
||||
|
|
|
@ -14,37 +14,34 @@ let
|
|||
enableAttrs
|
||||
isNixFile
|
||||
flakeFromSystem
|
||||
listify
|
||||
;
|
||||
inherit (lib.filesystem) listFilesRecursive;
|
||||
|
||||
# pkgFrom = pkgFromSystem "x86_64-linux";
|
||||
# pkgsFrom = pkgsFromSystem "x86_64-linux";
|
||||
flake = flakeFromSystem "x86_64-linux";
|
||||
hostPath = host: ../. + "/hosts/${host}";
|
||||
# all nix files not including pkgs.nix
|
||||
hostFiles = host: filter isNixFile (listFilesRecursive (hostPath host));
|
||||
# hostFiles = host: filter isNixFile (listFilesRecursive (hostPath host));
|
||||
hostFiles = host: host |> hostPath |> listFilesRecursive |> filter isNixFile;
|
||||
|
||||
commonSpecialArgs = {
|
||||
inherit
|
||||
self
|
||||
inputs
|
||||
lib
|
||||
enabled
|
||||
;
|
||||
};
|
||||
|
||||
mkIso = nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
inputs.lix-module.nixosModules.default
|
||||
self.nixosModules.nix
|
||||
self.nixosModules.essentials
|
||||
(
|
||||
{ pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
|
||||
environment.systemPackages = (with pkgs; [ neovim ]) ++ [ (flake.pkg "self") ];
|
||||
}
|
||||
)
|
||||
self.nixosModules.iso
|
||||
];
|
||||
specialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
lib
|
||||
self
|
||||
enabled
|
||||
;
|
||||
};
|
||||
specialArgs = commonSpecialArgs;
|
||||
};
|
||||
|
||||
mkSystem =
|
||||
|
@ -58,14 +55,11 @@ let
|
|||
inputs.hyprland.nixosModules.default
|
||||
] ++ (hostFiles hostName);
|
||||
|
||||
specialArgs = {
|
||||
specialArgs = commonSpecialArgs // {
|
||||
inherit
|
||||
inputs
|
||||
lib
|
||||
self
|
||||
mkDefaultOizysModule
|
||||
mkOizysModule
|
||||
enabled
|
||||
listify
|
||||
enableAttrs
|
||||
hostName
|
||||
flake
|
||||
|
|
5
modules/iso.nix
Normal file
5
modules/iso.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{ pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
|
||||
environment.systemPackages = (with pkgs; [ neovim ]);
|
||||
}
|
|
@ -11,13 +11,24 @@ mkOizysModule config "vpn" {
|
|||
];
|
||||
|
||||
services.openvpn.servers = {
|
||||
express-ny = {
|
||||
# subscription expired
|
||||
# express-ny = {
|
||||
# config = ''
|
||||
# config /home/daylin/.config/openvpn/express-ny/config.ovpn
|
||||
# auth-user-pass /home/daylin/.config/openvpn/express-ny/credentials
|
||||
# '';
|
||||
# autoStart = false;
|
||||
# updateResolvConf = true;
|
||||
# };
|
||||
#
|
||||
|
||||
mullvad-chi = {
|
||||
config = ''
|
||||
config /home/${config.oizys.user}/.config/openvpn/express-ny/config.ovpn
|
||||
auth-user-pass /home/${config.oizys.user}/.config/openvpn/express-ny/credentials
|
||||
config /home/daylin/.config/openvpn/mullvad-chi/mullvad_us_chi.conf
|
||||
'';
|
||||
autoStart = false;
|
||||
updateResolvConf = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -16,7 +16,11 @@ in
|
|||
# nix.package = pkgs.nixVersions.latest;
|
||||
nix = {
|
||||
settings = {
|
||||
experimental-features = [ "nix-command" "flakes" "pipe-operator"];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"pipe-operator"
|
||||
];
|
||||
use-xdg-base-directories = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
{ ... }:
|
||||
(final: prev: {
|
||||
nimble = prev.nimble.overrideNimAttrs {
|
||||
version = "0.14.2-5e7901760e89108476a4e21976a0ef783403e8fe";
|
||||
nimble = prev.nimble.overrideNimAttrs rec {
|
||||
version = "0.16.0";
|
||||
requiredNimVersion = 2;
|
||||
buildInputs = [ prev.pkgs.openssl ];
|
||||
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "nim-lang";
|
||||
repo = "nimble";
|
||||
|
||||
# most recent commit 2024-03-11
|
||||
rev = "5e7901760e89108476a4e21976a0ef783403e8fe";
|
||||
hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI=";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-nsQAUe+soRkWAFPYP5LftBCvQdkC1SpiIORscDsPQB4=";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
{ ... }:
|
||||
(final: prev: {
|
||||
nimlsp = prev.nimlsp.overrideNimAttrs {
|
||||
requiredNimVersion = 2;
|
||||
nimFlags = [
|
||||
"--threads:on"
|
||||
""
|
||||
"-d:explicitSourcePath=${final.srcOnly final.pkgs.nim-unwrapped-2}"
|
||||
"-d:tempDir=/tmp"
|
||||
];
|
||||
};
|
||||
})
|
21
pkgs/oizys/internal/oizys/ignored.txt
Normal file
21
pkgs/oizys/internal/oizys/ignored.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
ld-library-path
|
||||
builder.pl
|
||||
profile
|
||||
system-path
|
||||
nixos-help
|
||||
nixos-install
|
||||
nixos-version
|
||||
nixos-manual-html
|
||||
nixos-rebuild
|
||||
nixos-configuration-reference-manpage
|
||||
nixos-generate-config
|
||||
nixos-enter
|
||||
nixos-container
|
||||
nixos-build-vms
|
||||
nixos-wsl-version
|
||||
nixos-wsl-welcome-message
|
||||
nixos-wsl-welcome
|
||||
restic-gdrive
|
||||
gitea
|
||||
lock
|
||||
code
|
|
@ -255,6 +255,12 @@ func splitDrv(drv string) (string, string) {
|
|||
return drvName, hash
|
||||
}
|
||||
|
||||
const tableTmpl = `# Building Derivations
|
||||
| derivation | hash |
|
||||
|---|---|
|
||||
%s
|
||||
`
|
||||
|
||||
func writeDervationsToStepSummary(drvs []string) {
|
||||
tableRows := make([]string, len(drvs))
|
||||
for i, drv := range drvs {
|
||||
|
@ -264,16 +270,7 @@ func writeDervationsToStepSummary(drvs []string) {
|
|||
name, hash,
|
||||
)
|
||||
}
|
||||
|
||||
o.writeToGithubStepSummary(
|
||||
fmt.Sprintf(`# Building Derivations
|
||||
| derivation | hash |
|
||||
|---|---|
|
||||
%s
|
||||
`,
|
||||
strings.Join(tableRows, "\n"),
|
||||
),
|
||||
)
|
||||
o.writeToGithubStepSummary(fmt.Sprintf(tableTmpl, strings.Join(tableRows, "\n")))
|
||||
}
|
||||
|
||||
func NixBuild(minimal bool, rest ...string) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package oizys
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
@ -12,22 +13,21 @@ import (
|
|||
"github.com/charmbracelet/log"
|
||||
)
|
||||
|
||||
var ignoredMap = stringSliceToMap(
|
||||
[]string{
|
||||
// nix
|
||||
"ld-library-path", "builder.pl", "profile", "system-path",
|
||||
// nixos
|
||||
"nixos-help",
|
||||
"nixos-install", "nixos-version",
|
||||
"nixos-manual-html", "nixos-rebuild",
|
||||
"nixos-configuration-reference-manpage",
|
||||
"nixos-generate-config", "nixos-enter",
|
||||
"nixos-container", "nixos-build-vms",
|
||||
"nixos-wsl-version", "nixos-wsl-welcome-message", "nixos-wsl-welcome",
|
||||
// trivial packages
|
||||
"restic-gdrive", "gitea", "lock", "code",
|
||||
},
|
||||
)
|
||||
//go:embed ignored.txt
|
||||
var ignoredList string
|
||||
var ignoredMap = stringToMap(ignoredList)
|
||||
|
||||
func stringToMap(s string) map[string]struct{} {
|
||||
return stringSliceToMap(strings.Split(s, "\n"))
|
||||
}
|
||||
|
||||
func stringSliceToMap(slice []string) map[string]struct{} {
|
||||
hashMap := make(map[string]struct{}, len(slice))
|
||||
for _, s := range slice {
|
||||
hashMap[s] = struct{}{}
|
||||
}
|
||||
return hashMap
|
||||
}
|
||||
|
||||
type Derivation struct {
|
||||
InputDrvs map[string]interface{}
|
||||
|
@ -72,13 +72,7 @@ func drvNotIgnored(drv string) bool {
|
|||
return !ok
|
||||
}
|
||||
|
||||
func stringSliceToMap(slice []string) map[string]struct{} {
|
||||
hashMap := make(map[string]struct{}, len(slice))
|
||||
for _, s := range slice {
|
||||
hashMap[s] = struct{}{}
|
||||
}
|
||||
return hashMap
|
||||
}
|
||||
|
||||
|
||||
func drvsToInputs(derivation map[string]Derivation) []string {
|
||||
var drvs []string
|
||||
|
|
Loading…
Reference in a new issue