nix flake update; nixvim; firefox stuff

This commit is contained in:
xqtc 2024-07-15 15:19:54 +02:00
parent fe076d1056
commit d2556811cf
13 changed files with 459 additions and 251 deletions

View file

@ -41,11 +41,9 @@
trusted-users = ["xqtc"];
substituters = [
"https://nix-community.cachix.org"
"https://cache.saumon.network/proxmox-nixoshttps://cache.saumon.network/proxmox-nixos"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"proxmox-nixos:nveXDuVVhFDRFx8Dn19f1WDEaNRJjPrF2CPD2D+m1ys="
];
};
}

View file

@ -7,11 +7,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1718588737,
"narHash": "sha256-06acqoMEYtc+/w5gWiIIuUFfdtdOBKlp1qrC/InRiBY=",
"lastModified": 1720977090,
"narHash": "sha256-O9S9kbZTAAeZz+R7cDY5FQsqsLD3SloD8eEg6BFx0G0=",
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
"rev": "b0a2376f6c164a0af963d47386c064cc6fdcd5ea",
"rev": "6015c1e2f91896e0b7a983c2824c665af32f568a",
"type": "github"
},
"original": {
@ -24,14 +24,15 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
]
],
"onchg": "onchg"
},
"locked": {
"lastModified": 1720032541,
"narHash": "sha256-PqBjivVCJS3qUXVBMeTLj03OlY2E5/TfJssd/p2m8js=",
"lastModified": 1720429515,
"narHash": "sha256-r73eyaZzaNgysusdaFmanOHcYMVnRxdAYzD4BvkBjmU=",
"owner": "aksiksi",
"repo": "compose2nix",
"rev": "923f6bc058118f76e69ed96332e40a472d8fd702",
"rev": "a55aea08f1eb34cc1681c9ea2d7b42b58730df5d",
"type": "github"
},
"original": {
@ -61,7 +62,7 @@
},
"devshell": {
"inputs": {
"flake-utils": "flake-utils_4",
"flake-utils": "flake-utils_5",
"nixpkgs": [
"nixvim",
"nixpkgs"
@ -83,16 +84,16 @@
},
"firefox-addons": {
"inputs": {
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1720238603,
"narHash": "sha256-XWcTKM/uVy7GP7QT8skZ9ywPqIPLhb9Sw7qBH+ZF5YM=",
"lastModified": 1721016201,
"narHash": "sha256-Jk54PIyWbdYLsi5tTQ3SFG4RWOqA5ui6+I9hjthM63o=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "c8799be7f004121f87ad702d61980d738405a51a",
"rev": "41341e2fdeb70555c92ec7a4d3cd13a8498897fd",
"type": "gitlab"
},
"original": {
@ -132,22 +133,6 @@
}
},
"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": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
@ -170,11 +155,11 @@
]
},
"locked": {
"lastModified": 1719877454,
"narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=",
"lastModified": 1719994518,
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4e3583423212f9303aa1a6337f8dffb415920e4f",
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
"type": "github"
},
"original": {
@ -184,6 +169,21 @@
}
},
"flake-utils": {
"locked": {
"lastModified": 1652776076,
"narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": {
"lastModified": 1629284811,
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
@ -198,7 +198,7 @@
"type": "github"
}
},
"flake-utils_2": {
"flake-utils_3": {
"inputs": {
"systems": "systems"
},
@ -216,7 +216,7 @@
"type": "github"
}
},
"flake-utils_3": {
"flake-utils_4": {
"inputs": {
"systems": "systems_2"
},
@ -234,7 +234,7 @@
"type": "github"
}
},
"flake-utils_4": {
"flake-utils_5": {
"inputs": {
"systems": "systems_3"
},
@ -252,7 +252,7 @@
"type": "github"
}
},
"flake-utils_5": {
"flake-utils_6": {
"inputs": {
"systems": "systems_5"
},
@ -287,7 +287,10 @@
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
@ -299,11 +302,11 @@
]
},
"locked": {
"lastModified": 1719259945,
"narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=",
"lastModified": 1720524665,
"narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07",
"rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1",
"type": "github"
},
"original": {
@ -341,11 +344,11 @@
]
},
"locked": {
"lastModified": 1720188602,
"narHash": "sha256-lC3byBmhVZFzWl/dCic8+cKUEEAXAswWOYjq4paFmbo=",
"lastModified": 1720734513,
"narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e3582e5151498bc4d757e8361431ace8529e7bb7",
"rev": "90ae324e2c56af10f20549ab72014804a3064c7f",
"type": "github"
},
"original": {
@ -363,11 +366,11 @@
]
},
"locked": {
"lastModified": 1719827439,
"narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=",
"lastModified": 1720734513,
"narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "59ce796b2563e19821361abbe2067c3bb4143a7d",
"rev": "90ae324e2c56af10f20549ab72014804a3064c7f",
"type": "github"
},
"original": {
@ -392,7 +395,7 @@
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_4",
"flakey-profile": "flakey-profile",
"lix": "lix",
"nixpkgs": [
@ -416,11 +419,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1718355099,
"narHash": "sha256-o4K6QHBjXrmcYkX9MIw9gZ+DHM3OaEVswswHRX9h8Is=",
"lastModified": 1720270372,
"narHash": "sha256-G5iteuo2gobI0Y5jHNEBc6UN9ixjwj6zopPKi7bJBE4=",
"owner": "viperML",
"repo": "nh",
"rev": "6fb30a4d490a98d08628ed93a90a9d23820ef9c8",
"rev": "7f8a1859ed6ea971fcf49b07ca8938e3000c3af4",
"type": "github"
},
"original": {
@ -437,11 +440,11 @@
]
},
"locked": {
"lastModified": 1719845423,
"narHash": "sha256-ZLHDmWAsHQQKnmfyhYSHJDlt8Wfjv6SQhl2qek42O7A=",
"lastModified": 1720845312,
"narHash": "sha256-yPhAsJTpyoIPQZJGC8Fw8W2lAXyhLoTn+HP20bmfkfk=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "ec12b88104d6c117871fad55e931addac4626756",
"rev": "5ce8503cf402cf76b203eba4b7e402bea8e44abc",
"type": "github"
},
"original": {
@ -450,6 +453,29 @@
"type": "github"
}
},
"nix-pre-commit": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"compose2nix",
"onchg",
"nixpkgs"
]
},
"locked": {
"lastModified": 1653259102,
"narHash": "sha256-XfCEu4zur/N2Dk4v8wFiQAgJ7bgNqPqwWp1vBXkeczM=",
"owner": "jmgilman",
"repo": "nix-pre-commit",
"rev": "6a99b2711c7eac9960939d8eb91e84322b22d50c",
"type": "github"
},
"original": {
"owner": "jmgilman",
"repo": "nix-pre-commit",
"type": "github"
}
},
"nixos-aarch64-widevine": {
"inputs": {
"nixpkgs": "nixpkgs_4"
@ -470,11 +496,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1719895800,
"narHash": "sha256-xNbjISJTFailxass4LmdWeV4jNhAlmJPwj46a/GxE6M=",
"lastModified": 1720737798,
"narHash": "sha256-G/OtEAts7ZUvW5lrGMXSb8HqRp2Jr9I7reBuvCOL54w=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "6e253f12b1009053eff5344be5e835f604bb64cd",
"rev": "c5013aa7ce2c7ec90acee5d965d950c8348db751",
"type": "github"
},
"original": {
@ -486,27 +512,27 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1718318537,
"narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=",
"lastModified": 1720542800,
"narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
"rev": "feb2849fdeb70028c70d73b848214b00d324a497",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
"rev": "feb2849fdeb70028c70d73b848214b00d324a497",
"type": "github"
}
},
"nixpkgs-2405": {
"locked": {
"lastModified": 1720110830,
"narHash": "sha256-E5dN9GDV4LwMEduhBLSkyEz51zM17XkWZ3/9luvNOPs=",
"lastModified": 1720954236,
"narHash": "sha256-1mEKHp4m9brvfQ0rjCca8P1WHpymK3TOr3v34ydv9bs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c0d0be00d4ecc4b51d2d6948e37466194c1e6c51",
"rev": "53e81e790209e41f0c1efa9ff26ff2fd7ab35e27",
"type": "github"
},
"original": {
@ -518,11 +544,11 @@
},
"nixpkgs-master": {
"locked": {
"lastModified": 1720263701,
"narHash": "sha256-fKYOxXAXAv7zgfPVC1jWPJH6QrJ650IdJpFD9Mm5j0Y=",
"lastModified": 1721038144,
"narHash": "sha256-iIgCW53v4ai+Q7ZUmELXX2aA+gMrZpOMhCOzYenLUnI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "731dc15f156f9d28a60bf6b4629994d6bf883975",
"rev": "113763dc869d2dd4330f6f5614ec5400b0802c60",
"type": "github"
},
"original": {
@ -534,26 +560,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1719426051,
"narHash": "sha256-yJL9VYQhaRM7xs0M867ZFxwaONB9T2Q4LnGo1WovuR4=",
"lastModified": 1720915306,
"narHash": "sha256-6vuViC56+KSr+945bCV8akHK+7J5k6n/epYg/W3I5eQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "89c49874fb15f4124bf71ca5f42a04f2ee5825fd",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-24.05",
"type": "indirect"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1719720450,
"narHash": "sha256-57+R2Uj3wPeDeq8p8un19tzFFlgWiXJ8PbzgKtBgBX8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "78f8641796edff3bfabbf1ef5029deadfe4a21d0",
"rev": "74348da2f3a312ee25cea09b98cdba4cb9fa5d5d",
"type": "github"
},
"original": {
@ -581,11 +592,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1716991068,
"narHash": "sha256-Av0UWCCiIGJxsZ6TFc+OiKCJNqwoxMNVYDBChmhjNpo=",
"lastModified": 1719663039,
"narHash": "sha256-tXlrgAQygNIy49LDVFuPXlWD2zTQV9/F8pfoqwwPJyo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "25cf937a30bf0801447f6bf544fc7486c6309234",
"rev": "4a1e673523344f6ccc84b37f4413ad74ea19a119",
"type": "github"
},
"original": {
@ -613,11 +624,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1720031269,
"narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=",
"lastModified": 1720768451,
"narHash": "sha256-EYekUHJE2gxeo2pM/zM9Wlqw1Uw2XTJXOSAO79ksc4Y=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9f4128e00b0ae8ec65918efeba59db998750ead6",
"rev": "7e7c39ea35c5cdd002cd4588b03a3fb9ece6fad9",
"type": "github"
},
"original": {
@ -645,11 +656,11 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"lastModified": 1718208800,
"narHash": "sha256-US1tAChvPxT52RV8GksWZS415tTS7PV42KTc2PNDBmc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
"rev": "cc54fb41d13736e92229c21627ea4f22199fee6b",
"type": "github"
},
"original": {
@ -688,11 +699,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1720222362,
"narHash": "sha256-3chuZmpQDhod758MzQJQQnoa08NalySx6gyv/T6LEIQ=",
"lastModified": 1721037488,
"narHash": "sha256-8sijRffJ4B6uzoKedXnNMZWZM4M0STV3kQEjZ6x7M3g=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "edc8602d4723e172405ae00e778c7b407885d6c8",
"rev": "433d2f213c76945ae108d7a7c93e7b499d58680e",
"type": "github"
},
"original": {
@ -701,20 +712,42 @@
"type": "github"
}
},
"onchg": {
"inputs": {
"nix-pre-commit": "nix-pre-commit",
"nixpkgs": [
"compose2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1720368454,
"narHash": "sha256-NUSw3G2gsQX8/G64/pDBb1oitM+x13m7nFRvpiI4a+s=",
"owner": "aksiksi",
"repo": "onchg-rs",
"rev": "c42b693d10920874b3644ef1502e33318409d69c",
"type": "github"
},
"original": {
"owner": "aksiksi",
"repo": "onchg-rs",
"type": "github"
}
},
"proxmox-nixos": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat_4",
"flake-compat": "flake-compat_3",
"nixpkgs": "nixpkgs_7",
"nixpkgs-stable": "nixpkgs-stable",
"unstable": "unstable",
"utils": "utils"
},
"locked": {
"lastModified": 1719988415,
"narHash": "sha256-bUVo+LApRTJUUi1YIAQwtH2S521ZHYa8nwityjC2Few=",
"lastModified": 1720733826,
"narHash": "sha256-vceyHamwxJo3E71byjeHhhcXNmEKopV0bRLmVqXhpKE=",
"owner": "SaumonNet",
"repo": "proxmox-nixos",
"rev": "ff9bcfe67d34bf7ae25a065f2a732815904b4001",
"rev": "61b9547a97120b6091b6e919a195ebf92acb33ad",
"type": "github"
},
"original": {
@ -728,7 +761,7 @@
"apple-silicon": "apple-silicon",
"compose2nix": "compose2nix",
"firefox-addons": "firefox-addons",
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils_3",
"home-manager": "home-manager",
"lix-module": "lix-module",
"nh": "nh",
@ -764,14 +797,14 @@
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1720187017,
"narHash": "sha256-Zq+T1Bvd0ShZB9XM+bP0VJK3HjsSVQBLolkaCLBQnfQ=",
"lastModified": 1720926522,
"narHash": "sha256-eTpnrT6yu1vp8C0B5fxHXhgKxHoYMoYTEikQx///jxY=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "1b11e208cee97c47677439625dc22e5289dcdead",
"rev": "0703ba03fd9c1665f8ab68cc3487302475164617",
"type": "github"
},
"original": {
@ -782,7 +815,7 @@
},
"spicetify-nix": {
"inputs": {
"flake-utils": "flake-utils_5",
"flake-utils": "flake-utils_6",
"nixpkgs": "nixpkgs_8"
},
"locked": {
@ -882,11 +915,11 @@
]
},
"locked": {
"lastModified": 1719887753,
"narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=",
"lastModified": 1720818892,
"narHash": "sha256-f52x9srIcqQm1Df3T+xYR5P6VfdnDFa2vkkcLhlTp6U=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c",
"rev": "5b002f8a53ed04c1a4177e7b00809d57bd2c696f",
"type": "github"
},
"original": {
@ -895,6 +928,21 @@
"type": "github"
}
},
"unstable": {
"locked": {
"lastModified": 1718318537,
"narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"utils": {
"inputs": {
"systems": "systems_4"

View file

@ -33,24 +33,111 @@ pkgs=$(nix-store --query --requisites /run/current-system | wc -l)
arch=$(nix-instantiate --eval -E 'builtins.currentSystem')
arch_sanitized=$(echo $arch | sed 's/^"//;s/"$//')
fetch() {
echo "${cyan}$(tput bold) _ ___ ____ ____ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) / |/ (_)_ __/ __ \/ __/ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) / / /\ \ / /_/ /\ \ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) /_/|_/_//_\_"'\\'"____/___/ ${normal}$(tput sgr0)"
echo ""
echo " ╭─────────────╮ "
echo "${red}${normal} user │ ${red}$(whoami)${normal}"
echo "${yellow}${normal} distro │ ${yellow}$(sed -nE "s@PRETTY_NAME=\"([^\"]*)\"@\1@p" /etc/os-release)${normal} "
echo "${green}${normal} kernel │ ${green}$(uname -r)${normal} "
echo "${cyan}󱂬 ${normal} de/wm │ ${cyan}$XDG_CURRENT_DESKTOP${normal} "
echo "${blue}${normal} uptime │ ${blue}${up}${normal} "
echo "${magenta}${normal} shell │ ${magenta}$(echo ${SHELL##*/})${normal} "
echo "${red}󰏖 ${normal} pkgs │ ${red}${pkgs}${normal} "
echo "${yellow}${normal} arch │ ${yellow}${arch_sanitized}${normal} "
echo " ├─────────────┤ "
echo "${_white}${normal}colors │${_white}$unicode${normal}${red}$unicode${normal}${yellow}$unicode${normal}${green}$unicode${normal}${cyan}$unicode${normal}${blue}$unicode${normal}${magenta}$unicode${normal}${_black}$unicode${normal}"
echo " ╰─────────────╯ "
# echo "${cyan}$(tput bold) _ ___ ____ ____ ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold) / |/ (_)_ __/ __ \/ __/ ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold) / / /\ \ / /_/ /\ \ ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold) /_/|_/_//_\_"'\\'"____/___/ ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠞⠛⣦⠎⠁⠹⣆⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣄⣿⠀⠀⢸⠀⠀⢰⡏⢀⠿⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠁⠘⣿⡀⢀⣸⠀⡴⠋⠻⡏⠀⢘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⣀⣸⣇⠀⣼⣷⠞⣷⣾⡅⠀⢠⡗⢀⡼⠟⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⣀⣤⡀⠀⣀⠀⠀⠀⠀⠀⣀⣴⠖⠛⠉⠁⠀⠀⠀⠀⠀⠀⠉⠛⢮⣿⡏⣿⡾⣿⠃⢀⣼⡷⠞⠁⢀⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⢠⡟⠳⣄⡇⠀⢳⡄⠈⢳⡀⢀⣴⠾⠋⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⣿⣷⣼⣷⣄⣦⣾⢿⣷⣶⣺⣍⣀⣀⠀⣀⣀⣀⣀⡀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠸⣇⠀⠘⣷⣄⠀⣧⣀⠀⣧⡾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣷⣄⣀⠀⠀⠹⠿⢿⣿⣿⣻⡾⠁⠀⣽⠋⠀⢸⠛⠁⠀⠀⠀⠀⠙⠒${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⢠⡶⠾⠷⣄⣈⣿⣷⣈⣷⣴⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠙⣿⣏⣻⣯⣆⠙⠶⣷⣿⣷⣿⡿⠁⢐⣾⠃⣀⡴⠿⣾⠉⢉⡿⠁⠀⡠⠂${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠈⢧⡤⢤⣤⡖⠻⣯⡟⣿⣿⣷⣷⠀⠀⠀⢀⣤⣤⣤⠤⠾⠛⠀⠀⠀⠉⡍⠘⠁⠀⠀⠩⠙⣛⣿⣿⣿⡿⢿⠟⣁⣀⣠⠟⠀⡾⠁⠀⡜⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠸⣇⠀⠙⢷⡿⠿⣓⢸⣿⡿⢿⡆⠠⠴⠞⠷⠿⠿⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⢀⣿⣉⠘⠙⢿⣆⠐⣾⠉⠀⠀⢸⠃⠀⠰⡁⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⡴⠞⠷⠦⠈⣳⣄⣹⣿⣿⠻⠾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡞⣿⠳⢶⣄⣀⠀⢀⡾⠃⠙⣷⢶⠾⠉⠋⠁⠀⠀⠀⢸⡄⠀⠀⣇⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠳⣄⣀⣠⡾⠻⣯⡻⢿⣿⡍⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⡈⠆⠀⠈⠛⠛⠟⠓⠒⠾⢧⣤⡀⠀⠀⠀⠀⠀⠀⠈⣇⠀⠀⢸⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⢰⠞⠻⢦⣀⣈⣽⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠓⠒⠶⣤⡀⠀⠀⣿⠀⠀⢸⡇⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠈⠓⠦⡖⠋⢠⠏⢈⣹⣾⡏⠛⣶⣤⣄⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣼⠟⠀⣸⠋⠀⠀⣸⠁⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠁⠈⠙⠶⠟⠉⠋⠀⠸⣧⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠞⢉⣠⡴⠚⠉⠀⠀⣰⠇⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠲⠦⠤⠤⠤⠤⢤⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⡏⠉⠉⠉⠀⠀⠀⠀⣠⡼⠁⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠳⢦⣤⣀⠀⠀⠀⠀⠀⠘⣋⣀⣙⣿⠦⠤⠤⠴⠶⠛⠁⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠷⠶⠶⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣶⣦⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣶⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⣀⡀⢀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣷⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⡃⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⢹⣿⣿⣿⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⢸⣿⣿⣿⡆⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣆⣀⣼⣿⣿⣿⣧⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠏⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠉⠉⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠛⠛⠛⠛⠉⠋⠀⠀⠀⠀⠀⠀⠈⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⢸⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠻⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣿⣿⣿⣿⣿⣿⠃${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠉⠙⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⡿⠟⠋⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⠏⠙⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
if [[ $(($RANDOM % 2)) == 0 ]]; then
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠙⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⢺⣿⣿⡆⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⠀⠀⠀⠀⠀⠀⣾⢡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣷⡦⠀⠀⠀⠀⢰⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠃⣠⣾⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣆⠀⠀⠀⣾⣿⣿⣿⣷⠄⠀⠰⠤⣀⠀⠀⣴⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠃⢺⣿⣿⣿⣿⡄⠀⠀⣿⣿⢿⣿⣿⣦⣦⣦⣶⣼⣭⣼⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣷⡆⠂⣿⣿⣞⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢙⣿⣿⣿⣿⣷⠸⣿⣿⣿⣿⣿⣿⠟⠻⣿⣿⣿⣿⡿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⢿⣿⣿⣿⣿⡄⣿⣿⣿⣿⣿⣿⡀⢀⣿⣿⣿⣿⠀⢸⣿⣿⠅⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢐⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⡀⣠⣾⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⢁⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠠⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⣀⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⣻⣿⣿⣿⣿⣿⡟⠋⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠙⢿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⠿⢿⡿⠛⠋⠁⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣅⠀⠀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⣿⣿⣿⣿⡟⠃⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢻⣿⣿⣿⣿⣿⣤⡀⠀⠀⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠜⢠⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣦⠄⣠⠀${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠠⢸⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠛⣿⣿⣿⡿⠏⠀⠀⠀⠀⠀⠀⢳⣾⣿⣿⣿⣿⣿⣿⡶⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⢨⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⡿⡿⠿⠛⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⠏⠉⠻⠿⠟⠁${normal}$(tput sgr0)"
echo "${cyan}$(tput bold)⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) meow! ${normal}$(tput sgr0)"
else
# echo "${cyan}$(tput bold) _ へ |、 ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold) ૮ - ՛ ) つ(> < 7 ${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold) / ⁻ ៸ 、˜〵${normal}$(tput sgr0)"
# echo "${cyan}$(tput bold) 乀 (ˍ, ل じしˍ,)${normal}$(tput sgr0)"
echo ""
echo " ╭─────────────╮ "
echo "${red}${normal} user │ ${red}$(whoami)${normal}"
echo "${yellow}${normal} distro │ ${yellow}$(sed -nE "s@PRETTY_NAME=\"([^\"]*)\"@\1@p" /etc/os-release)${normal} "
echo "${green}${normal} kernel │ ${green}$(uname -r)${normal} "
echo "${cyan}󱂬 ${normal} de/wm │ ${cyan}$XDG_CURRENT_DESKTOP${normal} "
echo "${blue}${normal} uptime │ ${blue}${up}${normal} "
echo "${magenta}${normal} shell │ ${magenta}$(echo ${SHELL##*/})${normal} "
echo "${red}󰏖 ${normal} pkgs │ ${red}${pkgs}${normal} "
echo "${yellow}${normal} arch │ ${yellow}${arch_sanitized}${normal} "
echo " ├─────────────┤ "
echo "${_white}${normal}colors │${_white}$unicode${normal}${red}$unicode${normal}${yellow}$unicode${normal}${green}$unicode${normal}${cyan}$unicode${normal}${blue}$unicode${normal}${magenta}$unicode${normal}${_black}$unicode${normal}"
echo " ╰─────────────╯ "
fi
}
fetch && exit 0

View file

@ -34,7 +34,7 @@ with inputs; {
noscript
];
search = {
default = "SearX";
default = "DuckDuckGo";
force = true;
engines = {
"SearX" = {
@ -49,6 +49,9 @@ with inputs; {
];
}
];
iconUpdateURL = "https://searx.org/favicon.ico";
definedAliases = ["@sx"];
};
"Nix Packages" = {
urls = [

View file

@ -42,6 +42,23 @@
neocord.enable = true;
rustaceanvim = {
enable = true;
settings = {
dap.autoloadConfigurations = true;
dap.adapter = let
code-lldb = pkgs.vscode-extensions.vadimcn.vscode-lldb;
in {
executable.command = "${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb";
executable.args = [
"--liblldb"
"${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/lldb/lib/liblldb.dylib"
"--port"
"31337"
];
type = "server";
port = "31337";
host = "127.0.0.1";
};
};
server = {
settings = {
inlayHints = {
@ -77,6 +94,13 @@
nil_ls.enable = true;
};
};
dap = {
enable = true;
extensions = {
dap-virtual-text.enable = true;
dap-ui.enable = true;
};
};
gitsigns.enable = true;
fugitive.enable = true;
nix-develop.enable = true;
@ -161,18 +185,45 @@
}
{
type = "text";
val = [
" "
" "
" "
" "
" "
" "
" "
" "
" "
" "
];
# val = [
# " ▒██ ██▒ █████ ▄▄▄█████▓ ▄████▄ "
# " ▒▒ █ █ ▒░▒██▓ ██▒▓ ██▒ ▓▒▒██▀ ▀█ "
# " ░░ █ ░▒██▒ ██░▒ ▓██░ ▒░▒▓█ ▄ "
# " ░ █ █ ▒ ░██ █▀ ░░ ▓██▓ ░ ▒▓▓▄ ▄██▒ "
# " ▒██▒ ▒██▒░▒███▒█▄ ▒██▒ ░ ▒ ▓███▀ ░ "
# " ▒▒ ░ ░▓ ░░░ ▒▒░ ▒ ▒ ░░ ░ ░▒ ▒ ░ "
# " ░░ ░▒ ░ ░ ▒░ ░ ░ ░ ▒ "
# " ░ ░ ░ ░ ░ ░ "
# " ░ ░ ░ ░ ░ "
# " ░ "
# ];
val = [
" "
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
""
" "
];
#val = [
# " ███████████████ ██████████████████"
# " ███████████████ ██ "

View file

@ -4,10 +4,10 @@
pkgs,
...
}: {
services.clamav = {
updater.enable = true;
updater.settings = {LogVerbose = true;};
updater.interval = "hourly";
daemon.enable = true;
};
# services.clamav = {
# updater.enable = true;
# updater.settings = {LogVerbose = true;};
# updater.interval = "hourly";
# daemon.enable = true;
# };
}

View file

@ -21,7 +21,7 @@ with lib; {
./docker.nix
# ./borg.nix
# ./nfs.nix
../../gc.nix
# ../../gc.nix
../../../common
];

View file

@ -7,7 +7,7 @@
}: let
gitea-actions-runner-custom = import ./services/gitea-runner.nix;
in {
imports = [ gitea-actions-runner-custom ];
imports = [gitea-actions-runner-custom];
# config = { services.gitea-actions-runner = gitea-actions-runner-custom.config.services.gitea-actions-runner; };
sops.secrets.forgejo_runner_token = {
owner = "forgejo";
@ -27,7 +27,9 @@ in {
};
DEFAULT = {
APP_NAME = "Git so good it could be heroin";
APP_DESC = "For an account, contact me via Mastodon";
};
metrics = {
ENABLED = true;
};
};
};
@ -43,7 +45,7 @@ in {
"ubuntu-22.04:docker://node:16-bullseye"
"ubuntu-20.04:docker://node:16-bullseye"
"ubuntu-18.04:docker://node:16-buster"
"native:host"
"native:host"
];
hostPackages = with pkgs; [
bash

View file

@ -61,6 +61,7 @@
targets = [
"127.0.0.1:${toString config.services.prometheus.exporters.node.port}"
"127.0.0.1:${toString config.services.prometheus.exporters.nextcloud.port}"
"127.0.0.1:${toString config.services.forgejo.settings.server.HTTP_PORT}"
];
}
];

View file

@ -57,11 +57,11 @@
contacts
calendar
notes
previewgenerator
# previewgenerator
;
recognize = pkgs.fetchNextcloudApp {
sha256 = "sha256-7qp9UbUcMwBNdGixaR0BAigMAtlyCAN39WxqHbsFVGE=";
url = "https://github.com/nextcloud/recognize/releases/download/v7.0.0/recognize-7.0.0.tar.gz";
sha256 = "sha256-hg8uY7cvdYnmEh6vKC36vkORDC+MSZA8lFqGQK2RbkE=";
url = "https://github.com/nextcloud/recognize/releases/download/v7.0.2/recognize-7.0.2.tar.gz";
license = "agpl3Only";
};
};

View file

@ -1,12 +1,12 @@
{ config
, lib
, pkgs
, utils
, ...
}:
let
inherit (lib)
{
config,
lib,
pkgs,
utils,
...
}: let
inherit
(lib)
any
attrValues
concatStringsSep
@ -23,15 +23,16 @@ let
mkIf
nameValuePair
types
;
;
inherit (utils)
inherit
(utils)
escapeSystemdPath
;
;
cfg = config.services.gitea-actions-runner-custom;
settingsFormat = pkgs.formats.yaml { };
settingsFormat = pkgs.formats.yaml {};
# Check whether any runner instance label requires a container runtime
# Empty label strings result in the upstream defined defaultLabels, which require docker
@ -47,16 +48,15 @@ let
hasPodman = config.virtualisation.podman.enable;
tokenXorTokenFile = instance:
(instance.token == null && instance.tokenFile != null) ||
(instance.token != null && instance.tokenFile == null);
in
{
(instance.token == null && instance.tokenFile != null)
|| (instance.token != null && instance.tokenFile == null);
in {
meta.maintainers = with lib.maintainers; [
hexa
];
options.services.gitea-actions-runner-custom = with types; {
package = mkPackageOption pkgs "gitea-actions-runner-custom" { };
package = mkPackageOption pkgs "gitea-actions-runner-custom" {};
instances = mkOption {
default = {};
@ -131,7 +131,7 @@ in
freeformType = settingsFormat.type;
};
default = { };
default = {};
};
hostPackages = mkOption {
@ -169,13 +169,16 @@ in
};
config = mkIf (cfg.instances != {}) {
assertions = [ {
assertion = any tokenXorTokenFile (attrValues cfg.instances);
message = "Instances of gitea-actions-runner-custom can have `token` or `tokenFile`, not both.";
} {
assertion = wantsContainerRuntime -> hasDocker || hasPodman;
message = "Label configuration on gitea-actions-runner-custom instance requires either docker or podman.";
} ];
assertions = [
{
assertion = any tokenXorTokenFile (attrValues cfg.instances);
message = "Instances of gitea-actions-runner-custom can have `token` or `tokenFile`, not both.";
}
{
assertion = wantsContainerRuntime -> hasDocker || hasPodman;
message = "Label configuration on gitea-actions-runner-custom instance requires either docker or podman.";
}
];
systemd.services = let
mkRunnerService = name: instance: let
@ -188,75 +191,90 @@ in
nameValuePair "gitea-runner-${escapeSystemdPath name}" {
inherit (instance) enable;
description = "Gitea Actions Runner";
wants = [ "network-online.target" ];
after = [
"network-online.target"
] ++ optionals (wantsDocker) [
"docker.service"
] ++ optionals (wantsPodman) [
"podman.service"
];
wants = ["network-online.target"];
after =
[
"network-online.target"
]
++ optionals wantsDocker [
"docker.service"
]
++ optionals wantsPodman [
"podman.service"
];
wantedBy = [
"multi-user.target"
];
environment = optionalAttrs (instance.token != null) {
TOKEN = "${instance.token}";
} // optionalAttrs (wantsPodman) {
DOCKER_HOST = "unix:///run/podman/podman.sock";
} // {
HOME = "/var/lib/gitea-runner/${name}";
};
path = with pkgs; [
coreutils
] ++ lib.optionals wantsHost instance.hostPackages;
serviceConfig = {
DynamicUser = true;
User = "gitea-runner";
StateDirectory = "gitea-runner";
WorkingDirectory = "-/var/lib/gitea-runner/${name}";
environment =
optionalAttrs (instance.token != null) {
TOKEN = "${instance.token}";
}
// optionalAttrs wantsPodman {
DOCKER_HOST = "unix:///run/podman/podman.sock";
}
// {
HOME = "/var/lib/gitea-runner/${name}";
};
path = with pkgs;
[
coreutils
]
++ lib.optionals wantsHost instance.hostPackages;
serviceConfig =
{
DynamicUser = true;
User = "gitea-runner";
StateDirectory = "gitea-runner";
WorkingDirectory = "-/var/lib/gitea-runner/${name}";
# gitea-runner might fail when gitea is restarted during upgrade.
Restart = "on-failure";
RestartSec = 2;
# gitea-runner might fail when gitea is restarted during upgrade.
Restart = "on-failure";
RestartSec = 2;
ExecStartPre = [(pkgs.writeShellScript "gitea-register-runner-${name}" ''
export INSTANCE_DIR="$STATE_DIRECTORY/${name}"
export TOKEN=$(cat /run/secrets/forgejo_runner_token)
mkdir -vp "$INSTANCE_DIR"
cd "$INSTANCE_DIR"
ExecStartPre = [
(pkgs.writeShellScript "gitea-register-runner-${name}" ''
export INSTANCE_DIR="$STATE_DIRECTORY/${name}"
export TOKEN=$(cat /run/secrets/forgejo_runner_token)
mkdir -vp "$INSTANCE_DIR"
cd "$INSTANCE_DIR"
# force reregistration on changed labels
export LABELS_FILE="$INSTANCE_DIR/.labels"
export LABELS_WANTED="$(echo ${escapeShellArg (concatStringsSep "\n" instance.labels)} | sort)"
export LABELS_CURRENT="$(cat $LABELS_FILE 2>/dev/null || echo 0)"
# force reregistration on changed labels
export LABELS_FILE="$INSTANCE_DIR/.labels"
export LABELS_WANTED="$(echo ${escapeShellArg (concatStringsSep "\n" instance.labels)} | sort)"
export LABELS_CURRENT="$(cat $LABELS_FILE 2>/dev/null || echo 0)"
if [ ! -e "$INSTANCE_DIR/.runner" ] || [ "$LABELS_WANTED" != "$LABELS_CURRENT" ]; then
# remove existing registration file, so that changing the labels forces a re-registration
rm -v "$INSTANCE_DIR/.runner" || true
if [ ! -e "$INSTANCE_DIR/.runner" ] || [ "$LABELS_WANTED" != "$LABELS_CURRENT" ]; then
# remove existing registration file, so that changing the labels forces a re-registration
rm -v "$INSTANCE_DIR/.runner" || true
# perform the registration
${cfg.package}/bin/act_runner register --no-interactive \
--instance ${escapeShellArg instance.url} \
--token "$TOKEN" \
--name ${escapeShellArg instance.name} \
--labels ${escapeShellArg (concatStringsSep "," instance.labels)} \
--config ${configFile}
# perform the registration
${cfg.package}/bin/act_runner register --no-interactive \
--instance ${escapeShellArg instance.url} \
--token "$TOKEN" \
--name ${escapeShellArg instance.name} \
--labels ${escapeShellArg (concatStringsSep "," instance.labels)} \
--config ${configFile}
# and write back the configured labels
echo "$LABELS_WANTED" > "$LABELS_FILE"
fi
# and write back the configured labels
echo "$LABELS_WANTED" > "$LABELS_FILE"
fi
'')];
ExecStart = "${cfg.package}/bin/act_runner daemon --config ${configFile}";
SupplementaryGroups = optionals (wantsDocker) [
"docker"
] ++ optionals (wantsPodman) [
"podman"
];
} // optionalAttrs (instance.tokenFile != null) {
EnvironmentFile = instance.tokenFile;
};
'')
];
ExecStart = "${cfg.package}/bin/act_runner daemon --config ${configFile}";
SupplementaryGroups =
optionals wantsDocker [
"docker"
]
++ optionals wantsPodman [
"podman"
];
}
// optionalAttrs (instance.tokenFile != null) {
EnvironmentFile = instance.tokenFile;
};
};
in mapAttrs' mkRunnerService cfg.instances;
in
mapAttrs' mkRunnerService cfg.instances;
};
}

View file

@ -22,17 +22,17 @@
privateKeyFile = "/home/xqtc/wireguard-keys/private";
peers = [
{
#anner
publicKey = "5ar4lh3Ra4TRmUJeeBtPgDvZnAkGssJDUN53y9oa3So=";
allowedIPs = [
"2a0f:be01:0:100::/64"
"2a0f:be01:0:200::/64"
"2a0f:be01:fe:f00::/56"
];
endpoint = "[2a0f:be01::1]:51822";
# persistentKeepalive = 15;
}
# {
# #anner
# publicKey = "5ar4lh3Ra4TRmUJeeBtPgDvZnAkGssJDUN53y9oa3So=";
# allowedIPs = [
# "2a0f:be01:0:100::/64"
# "2a0f:be01:0:200::/64"
# "2a0f:be01:fe:f00::/56"
# ];
# endpoint = "[2a0f:be01::1]:51822";
# # persistentKeepalive = 15;
# }
];
};
};

View file

@ -127,7 +127,7 @@
users.users.xqtc = {
isNormalUser = true;
extraGroups = ["wheel" "docker" "libvirtd" "adbusers"]; # Enable sudo for the user.
packages = with pkgs; [nushell clamtk];
packages = with pkgs; [nushell];
shell = pkgs.nushell;
};