Compare commits
30 Commits
5f8cd26ac8
...
hotfix/rev
| Author | SHA1 | Date | |
|---|---|---|---|
| e90ba28713 | |||
| a4e644fbbc | |||
| 9bb9eb585f | |||
| a6921b0820 | |||
| 1f975279c6 | |||
| 71adf08dd0 | |||
| 13e6d8e635 | |||
| 3760698ec2 | |||
|
|
6e3217d0db | ||
| 7e4a2d759c | |||
|
|
1313076917 | ||
| 73553faa27 | |||
|
|
d53bbdd0bb | ||
| 2f5c0a1011 | |||
| d970e485e7 | |||
| ec8651d5d1 | |||
| 824d110c88 | |||
| 34f28c4a6e | |||
| ef7287c76e | |||
| 1614015fca | |||
| 0a215cb588 | |||
| e802e32e58 | |||
| a52250876b | |||
| 9db5a4c073 | |||
| 0f4c578c40 | |||
| aa945446a6 | |||
| 21fe5efd26 | |||
| ccff72ace2 | |||
| b1cb79e39f | |||
| 0745540839 |
126
flake.lock
generated
126
flake.lock
generated
@@ -76,11 +76,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1767473845,
|
||||
"narHash": "sha256-Pvd0l14qYA4jBS+JSCufoj8qFpeu2dt0Q9zBvpeLKac=",
|
||||
"lastModified": 1770437015,
|
||||
"narHash": "sha256-+FHN9EthS+kHxnMoSDZEiGLoxwiIuij6ltK3aTmlLMA=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "7f7d9e8b61abade02c6dc0d530ba6b43a50acead",
|
||||
"rev": "65d59f814068d04e532cad2773d281e4951acd95",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -93,11 +93,11 @@
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1764724327,
|
||||
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
|
||||
"lastModified": 1764873433,
|
||||
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
|
||||
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -125,11 +125,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765835352,
|
||||
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -146,11 +146,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763759067,
|
||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -220,11 +220,11 @@
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1764524476,
|
||||
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
|
||||
"lastModified": 1767737596,
|
||||
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
|
||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -242,11 +242,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767556355,
|
||||
"narHash": "sha256-RDTUBDQBi9D4eD9iJQWtUDN/13MDLX+KmE+TwwNUp2s=",
|
||||
"lastModified": 1770491427,
|
||||
"narHash": "sha256-8b+0vixdqGnIIcgsPhjdX7EGPdzcVQqYxF+ujjex654=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "f894bc4ffde179d178d8deb374fcf9855d1a82b7",
|
||||
"rev": "cbd8a72e5fe6af19d40e2741dc440d9227836860",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -283,11 +283,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766066098,
|
||||
"narHash": "sha256-d3HmUbmfTDIt9mXEHszqyo2byqQMoyJtUJCZ9U1IqHQ=",
|
||||
"lastModified": 1768426687,
|
||||
"narHash": "sha256-CopNx3j//gZ2mE0ggEK9dZ474UcbDhpTw+KMor8mSxI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "contrib",
|
||||
"rev": "41dbcac8183bb1b3a4ade0d8276b2f2df6ae4690",
|
||||
"rev": "541628cebe42792ddf5063c4abd6402c2f1bd68f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -337,11 +337,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765267181,
|
||||
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
|
||||
"lastModified": 1770315571,
|
||||
"narHash": "sha256-hy0gcAgAcxrnSWKGuNO+Ob0x6jQ2xkR6hoaR0qJBHYs=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
|
||||
"rev": "2684bb8080a6f2ca5f9d494de5ef875bc1c4ecdb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -402,11 +402,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764234087,
|
||||
"narHash": "sha256-NHF7QWa0ZPT8hsJrvijREW3+nifmF2rTXgS2v0tpcEA=",
|
||||
"lastModified": 1769813415,
|
||||
"narHash": "sha256-nnVmNNKBi1YiBNPhKclNYDORoHkuKipoz7EtVnXO50A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-generators",
|
||||
"rev": "032a1878682fafe829edfcf5fdfad635a2efe748",
|
||||
"rev": "8946737ff703382fda7623b9fab071d037e897d5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -417,11 +417,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1767185284,
|
||||
"narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=",
|
||||
"lastModified": 1769302137,
|
||||
"narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "40b1a28dce561bea34858287fbb23052c3ee63fe",
|
||||
"rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -440,11 +440,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766370075,
|
||||
"narHash": "sha256-gbhR8+gNrhmYxKaNJpTjFivuibr3ZdlB5eU0a8yE36I=",
|
||||
"lastModified": 1769643685,
|
||||
"narHash": "sha256-F0Ey/SpMah0BRsz9hWNb89NMS4kvF9Q1Ex2EciWJzzM=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "nixos-modules",
|
||||
"rev": "db6f2a33500dadb81020b6e5d4281b4820d1b862",
|
||||
"rev": "4a2307f709f3abab9935dc8c455212fdcbe13795",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -471,11 +471,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1765674936,
|
||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||
"lastModified": 1769909678,
|
||||
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -502,11 +502,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1767379071,
|
||||
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
|
||||
"lastModified": 1770197578,
|
||||
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
|
||||
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -528,11 +528,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764773531,
|
||||
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
|
||||
"lastModified": 1767810917,
|
||||
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
|
||||
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -552,11 +552,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767281941,
|
||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
||||
"lastModified": 1769939035,
|
||||
"narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
||||
"rev": "a8ca480175326551d6c4121498316261cbb5b260",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -596,11 +596,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767495280,
|
||||
"narHash": "sha256-hEEgtE/RSRigw8xscchGymf/t1nluZwTfru4QF6O1CQ=",
|
||||
"lastModified": 1770520253,
|
||||
"narHash": "sha256-6rWuHgSENXKnC6HGGAdRolQrnp/8IzscDn7FQEo1uEQ=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "cb24c5cc207ba8e9a4ce245eedd2d37c3a988bc1",
|
||||
"rev": "ebb8a141f60bb0ec33836333e0ca7928a072217f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -616,11 +616,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767499857,
|
||||
"narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=",
|
||||
"lastModified": 1770526836,
|
||||
"narHash": "sha256-xbvX5Ik+0inJcLJtJ/AajAt7xCk6FOCrm5ogpwwvVDg=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190",
|
||||
"rev": "d6e0e666048a5395d6ea4283143b7c9ac704720d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -650,11 +650,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767559556,
|
||||
"narHash": "sha256-Pf1d9Hh9UUQ/oS+evq6dU0MiaDczXXNztTlQekaMbW0=",
|
||||
"lastModified": 1770504996,
|
||||
"narHash": "sha256-CjgGVXmYuEqx9rT4o1EKZVhacp6TuwZRicmaekkSvfE=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "b135edbdd403896d1ef507934c045f716deb5609",
|
||||
"rev": "044ac0cc6d914f1dac22a728013bc3797f77cfab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -729,11 +729,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1763914658,
|
||||
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
|
||||
"lastModified": 1767710407,
|
||||
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
|
||||
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -745,11 +745,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1764465359,
|
||||
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
|
||||
"lastModified": 1767489635,
|
||||
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
|
||||
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -761,11 +761,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1764464512,
|
||||
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
|
||||
"lastModified": 1767488740,
|
||||
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
|
||||
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
inherit lib; # for allowing use of custom functions in nix repl
|
||||
|
||||
hydraJobs = import ./hydra/jobs.nix { inherit inputs outputs systems; };
|
||||
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
|
||||
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt);
|
||||
|
||||
nixosConfigurations = genSystems inputs outputs src (src + "/systems");
|
||||
homeConfigurations = {
|
||||
|
||||
@@ -8,10 +8,7 @@ let
|
||||
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
getCfg = _: cfg: cfg.config.system.build.toplevel;
|
||||
hostToAgg = _: cfg: cfg;
|
||||
|
||||
getHome = _: cfg: cfg.config.home.activationPackage;
|
||||
homeToAgg = _: cfg: cfg;
|
||||
|
||||
# get per-system check derivation (with optional postfix)
|
||||
mapSystems =
|
||||
@@ -27,15 +24,6 @@ rec {
|
||||
host = lib.mapAttrs getCfg outputs.nixosConfigurations;
|
||||
home = lib.mapAttrs getHome outputs.homeConfigurations; # homeConfigurations.alice.config.home.activationPackage
|
||||
|
||||
hosts = pkgs.releaseTools.aggregate {
|
||||
name = "hosts";
|
||||
constituents = lib.mapAttrsToList hostToAgg host;
|
||||
};
|
||||
homes = pkgs.releaseTools.aggregate {
|
||||
name = "homes";
|
||||
constituents = lib.mapAttrsToList homeToAgg home;
|
||||
};
|
||||
|
||||
devChecks = pkgs.releaseTools.aggregate {
|
||||
name = "devChecks";
|
||||
constituents = lib.flatten [
|
||||
|
||||
78
modules/kubernetes.nix
Normal file
78
modules/kubernetes.nix
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
services.kubernetes = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable Kubernetes services";
|
||||
};
|
||||
|
||||
version = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "1.28.0";
|
||||
description = "Kubernetes version to use";
|
||||
};
|
||||
|
||||
clusterName = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "palatine-hill-cluster";
|
||||
description = "Name of the Kubernetes cluster";
|
||||
};
|
||||
|
||||
controlPlaneEndpoint = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "localhost:6443";
|
||||
description = "Control plane endpoint";
|
||||
};
|
||||
|
||||
networking = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = { };
|
||||
description = "Kubernetes networking configuration";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.services.kubernetes.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
kubectl
|
||||
kubernetes
|
||||
];
|
||||
|
||||
# Enable containerd for Kubernetes
|
||||
virtualisation.containerd.enable = true;
|
||||
|
||||
# Enable kubelet
|
||||
services.kubelet = {
|
||||
enable = true;
|
||||
extraFlags = {
|
||||
"pod-infra-container-image" = "registry.k8s.io/pause:3.9";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable kubeadm for cluster initialization
|
||||
environment.etc."kubeadm.yaml".text = ''
|
||||
apiVersion: kubeadm.k8s.io/v1beta3
|
||||
kind: InitConfiguration
|
||||
localAPIEndpoint:
|
||||
advertiseAddress: 127.0.0.1
|
||||
bindPort: 6443
|
||||
---
|
||||
apiVersion: kubeadm.k8s.io/v1beta3
|
||||
kind: ClusterConfiguration
|
||||
clusterName: ${config.services.kubernetes.clusterName}
|
||||
controlPlaneEndpoint: ${config.services.kubernetes.controlPlaneEndpoint}
|
||||
networking:
|
||||
serviceSubnet: 10.96.0.0/12
|
||||
podSubnet: 10.244.0.0/16
|
||||
dnsDomain: cluster.local
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -44,7 +44,7 @@ forEachSystem (
|
||||
pre-commit
|
||||
treefmt
|
||||
statix
|
||||
nixfmt-rfc-style
|
||||
nixfmt
|
||||
jsonfmt
|
||||
mdformat
|
||||
shfmt
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
@@ -78,16 +77,21 @@
|
||||
};
|
||||
};
|
||||
|
||||
users.users.alice.extraGroups = [ "calibre-web" ];
|
||||
users.users = {
|
||||
alice.extraGroups = [ "calibre-web" ];
|
||||
};
|
||||
users.groups.ollama = { };
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
programs.adb.enable = true;
|
||||
|
||||
environment.variables = {
|
||||
"KWIN_DRM_NO_DIRECT_SCANOUT" = "1";
|
||||
};
|
||||
|
||||
#nixpkgs.config = {
|
||||
# rocmSupport = true;
|
||||
#};
|
||||
|
||||
sops = {
|
||||
defaultSopsFile = ./secrets.yaml;
|
||||
#secrets = {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
alacritty
|
||||
attic-client
|
||||
amdgpu_top
|
||||
android-tools
|
||||
bat
|
||||
bitwarden-cli
|
||||
bfg-repo-cleaner
|
||||
@@ -15,6 +16,7 @@
|
||||
candy-icons
|
||||
chromium
|
||||
chromedriver
|
||||
claude-code
|
||||
croc
|
||||
deadnix
|
||||
direnv
|
||||
@@ -36,6 +38,9 @@
|
||||
ipmiview
|
||||
iperf3
|
||||
# ipscan
|
||||
javaPackages.compiler.temurin-bin.jdk-25
|
||||
javaPackages.compiler.temurin-bin.jdk-21
|
||||
javaPackages.compiler.temurin-bin.jdk-17
|
||||
jp2a
|
||||
jq
|
||||
kdePackages.kdenlive
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
./minio.nix
|
||||
./networking.nix
|
||||
./nextcloud.nix
|
||||
./ollama.nix
|
||||
#./plex
|
||||
./postgresql.nix
|
||||
./samba.nix
|
||||
@@ -25,8 +26,10 @@
|
||||
|
||||
programs.git.lfs.enable = false;
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||
nixpkgs.config = {
|
||||
packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||
};
|
||||
};
|
||||
|
||||
boot = {
|
||||
@@ -97,6 +100,13 @@
|
||||
smartd.enable = true;
|
||||
calibre-server.enable = false;
|
||||
|
||||
# Kubernetes example configuration
|
||||
# To enable Kubernetes, uncomment the following:
|
||||
# kubernetes = {
|
||||
# enable = true;
|
||||
# clusterName = "palatine-hill-cluster";
|
||||
# controlPlaneEndpoint = "localhost:6443";
|
||||
# };
|
||||
};
|
||||
|
||||
nix.gc.options = "--delete-older-than 150d";
|
||||
|
||||
@@ -4,6 +4,8 @@ let
|
||||
servers = {
|
||||
atm6 = "atm6.alicehuston.xyz";
|
||||
stoneblock3 = "sb3.alicehuston.xyz";
|
||||
stoneblock-4 = "sb4.alicehuston.xyz";
|
||||
submerged-2 = "sm4.alicehuston.xyz";
|
||||
RAD2 = "rad.alicehuston.xyz";
|
||||
skyfactory = "sf.alicehuston.xyz";
|
||||
divinejourney = "dj.alicehuston.xyz";
|
||||
@@ -23,9 +25,16 @@ let
|
||||
STOP_DURATION = "600";
|
||||
SYNC_CHUNK_WRITES = "false";
|
||||
USE_AIKAR_FLAGS = "true";
|
||||
MEMORY = "8GB";
|
||||
MEMORY = "12G";
|
||||
ALLOW_FLIGHT = "true";
|
||||
MAX_TICK_TIME = "-1";
|
||||
ENABLE_RCON = "true";
|
||||
TZ = "America/New_York";
|
||||
REGION_FILE_COMPRESSION = "none";
|
||||
OPS = ''
|
||||
magpiecat
|
||||
chesiregirl1105
|
||||
'';
|
||||
};
|
||||
|
||||
defaultOptions = [
|
||||
@@ -79,39 +88,68 @@ in
|
||||
hostname = "pii";
|
||||
environment = defaultEnv // {
|
||||
VERSION = "1.20.1";
|
||||
TYPE = "modrinth";
|
||||
MODRINTH_MODPACK = "prominence-2-fabric";
|
||||
MODRINTH_VERSION = "3.9.14hf";
|
||||
CF_SLUG = "prominence-2-hasturian-era";
|
||||
CF_FILENAME_MATCHER = "3.9.14hf";
|
||||
MEMORY = "8G";
|
||||
USE_AIKAR_FLAGS = "false";
|
||||
USE_MEOWICE_FLAGS = "true";
|
||||
USE_MEOWICE_GRAALVM_FLAGS = "true";
|
||||
DIFFICULTY = "hard";
|
||||
ENABLE_COMMAND_BLOCK = "true";
|
||||
CF_FORCE_INCLUDE_FILES = ''
|
||||
emi
|
||||
'';
|
||||
};
|
||||
extraOptions = defaultOptions;
|
||||
log-driver = "local";
|
||||
environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
||||
};
|
||||
stoneblock-4 = {
|
||||
image = "itzg/minecraft-server:java25-graalvm";
|
||||
volumes = [
|
||||
"${minecraft_path}/stoneblock-4/modpacks:/modpacks:ro"
|
||||
"${minecraft_path}/stoneblock-4/data:/data"
|
||||
];
|
||||
hostname = "stoneblock-4";
|
||||
environment = defaultEnv // {
|
||||
VERSION = "1.21.1";
|
||||
CF_SLUG = "ftb-stoneblock-4";
|
||||
CF_FILENAME_MATCHER = "1.6.0";
|
||||
MEMORY = "8G";
|
||||
USE_AIKAR_FLAGS = "false";
|
||||
USE_MEOWICE_FLAGS = "true";
|
||||
USE_MEOWICE_GRAALVM_FLAGS = "true";
|
||||
DIFFICULTY = "hard";
|
||||
ENABLE_COMMAND_BLOCK = "true";
|
||||
};
|
||||
extraOptions = defaultOptions;
|
||||
log-driver = "local";
|
||||
environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
||||
};
|
||||
submerged-2 = {
|
||||
image = "itzg/minecraft-server:java25-graalvm";
|
||||
volumes = [
|
||||
"${minecraft_path}/submerged-2/modpacks:/modpacks:ro"
|
||||
"${minecraft_path}/submerged-2/data:/data"
|
||||
];
|
||||
hostname = "submerged-2";
|
||||
environment = defaultEnv // {
|
||||
VERSION = "1.21.1";
|
||||
CF_SLUG = "submerged-2";
|
||||
CF_FILENAME_MATCHER = "B6.1";
|
||||
USE_AIKAR_FLAGS = "false";
|
||||
USE_MEOWICE_FLAGS = "true";
|
||||
USE_MEOWICE_GRAALVM_FLAGS = "true";
|
||||
DIFFICULTY = "hard";
|
||||
ENABLE_COMMAND_BLOCK = "true";
|
||||
};
|
||||
extraOptions = defaultOptions;
|
||||
log-driver = "local";
|
||||
environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
||||
};
|
||||
# bcg-plus = {
|
||||
# image = "itzg/minecraft-server:java17";
|
||||
# volumes = [
|
||||
# "${minecraft_path}/bcg-plus/modpacks:/modpacks:ro"
|
||||
# "${minecraft_path}/bcg-plus/data:/data"
|
||||
# ];
|
||||
# hostname = "bcg-plus";
|
||||
# environment = defaultEnv // {
|
||||
# VERSION = "1.17";
|
||||
# CF_SLUG = "bcg";
|
||||
# DIFFICULTY = "normal";
|
||||
# DEBUG = "true";
|
||||
# # ENABLE_COMMAND_BLOCK = "true";
|
||||
# };
|
||||
# extraOptions = defaultOptions;
|
||||
# log-driver = "local";
|
||||
# environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
||||
# };
|
||||
};
|
||||
|
||||
sops = {
|
||||
defaultSopsFile = ../secrets.yaml;
|
||||
secrets = {
|
||||
"docker/minecraft".owner = "docker-service";
|
||||
};
|
||||
|
||||
53
systems/palatine-hill/ollama.nix
Normal file
53
systems/palatine-hill/ollama.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services = {
|
||||
ollama = {
|
||||
enable = true;
|
||||
package = pkgs.ollama;
|
||||
syncModels = true;
|
||||
loadModels = [
|
||||
"gemma3"
|
||||
"deepseek-r1:latest"
|
||||
"deepseek-r1:1.5b"
|
||||
"qwen3"
|
||||
#"qwen3-coder-next"
|
||||
"qwen3-coder"
|
||||
"lennyerik/zeta"
|
||||
"llama3.1:8b"
|
||||
"qwen2.5-coder:1.5b-base"
|
||||
"nomic-embed-text:latest"
|
||||
];
|
||||
environmentVariables = {
|
||||
FLASH_ATTENTION = "1";
|
||||
OLLAMA_KV_CACHE_TYPE = "q8_0";
|
||||
# Ollama memory configuration
|
||||
OLLAMA_MAX_LOADED_MODELS = "2";
|
||||
OLLAMA_MAX_QUEUE = "4";
|
||||
OLLAMA_NUM_PARALLEL = "2";
|
||||
|
||||
# ROCm memory optimization
|
||||
#HIP_VISIBLE_DEVICES = "0";
|
||||
#ROCR_VISIBLE_DEVICES = "0";
|
||||
|
||||
# context length for agents
|
||||
OLLAMA_CONTEXT_LENGTH = "64000";
|
||||
};
|
||||
};
|
||||
open-webui = {
|
||||
enable = true;
|
||||
port = 21212;
|
||||
};
|
||||
};
|
||||
users.users.ollama = {
|
||||
extraGroups = [
|
||||
"render"
|
||||
"video"
|
||||
];
|
||||
group = "ollama";
|
||||
isSystemUser = true;
|
||||
};
|
||||
users.groups.ollama = { };
|
||||
}
|
||||
@@ -17,7 +17,7 @@ minio:
|
||||
credentials: ENC[AES256_GCM,data:5Z/cTmxSuMq8BfRgYLGZZJ7o6AtmrQM3yNjR17YHr29S7ZWvGsjfM7DsLKectem01nvv3HoT4uyWSdhkOmZahzDb5OF1NEgjJhLqkKlCETMu0mmpwe1cx6iOd7kjB3E6Az/MWpXqZ/TrryL9FrQD2nnx9bHyWWIHRQv8,iv:jiYZXfU+OssC0rh/3yFZLEzD1+5mVDDl6gQ3oyk76E4=,tag:bevDszFv1zSa+/2qQIgC0w==,type:str]
|
||||
loki: ENC[AES256_GCM,data:ShC6hfsKifVaxLWRo1fqaOpsrYh4+w==,iv:KVSlPd0mBvPZikg/Agnl6q0UhxTmsNOeYdercYOhqMg=,tag:cj6ex9m7vDjInTJDGUlqFQ==,type:str]
|
||||
docker:
|
||||
minecraft: ENC[AES256_GCM,data:2k/m0ksnE92fACxQuBlOO72b19T7Nbnr58ezRddmKUVvePEgrdSnIsR3sh7PnmzwmG/ez0WTD+NKbtkQmRMDQ25vruA8gCf8Ig==,iv:X2SUidKTNAPZfbyiXFKprUbAhBxJcbF5bz+YTy4nuEA=,tag:AAvLXO888r9XvtnNfQgCpA==,type:str]
|
||||
minecraft: ENC[AES256_GCM,data:krSM870t/IATwpUWNuKX8D5HHEvk+HeimKgodXssIYcBmdF1SZAwjUsSlx9fL3JiRtxfu0jSbhyD/2jLHMWqcix1WQGOVgs=,iv:ZTMxmzeSLQRCBF2t6r3dCDlcZ5BsBwZen6jOZN/HvGU=,tag:SES3lhRrRI8zBH1jnaV82w==,type:str]
|
||||
foundry: ENC[AES256_GCM,data:5Z0FvVhJBzTwDPRN6c//caZokiTnkdqiLGFFuyen+tYsdjbQ3AXH5y7HfxKbxsJvU5uShOuIg0jVMvow2NYmzyYDDKBKPOz0bgXOmFq06wzCJubjyZmR/mDcWBBDzAFzaazpyW8=,iv:6wLS00zhX0tjJUe5uADAjzEshJP8QOkF2i4Aw+Y9RSk=,tag:sNr/exY1u3evYGcImyCUlA==,type:str]
|
||||
nextcloud: ENC[AES256_GCM,data:dm2Cha+CvFORgdcBvJAzzdOGcJ95vLJYTZcUJnjNp6HOQIIoJrDone1NOAYJh9rdWG/17/ntOmd+TysAj4AsD0dw/PatZmy3I+dcVghkt2XNTc7jD64QjctIHzR+om1joAbKemG1R3St7qDU68TWYxoxIfYZcJvg3ds/lJcYgFRh079UZ/IRlGVR6sWPEXyY+UUrwtk0Fr+y8UtwwWZiLp0akUbIV06huRGiAp/PeWETuPPuacl2++ayIgJFZkJjUl/a52RI1Q0nLG5iyK6QYpY1JSRJTOkiQQ4PB5GRdLCdoM5/ZXTQ6gGcoM5jXFllsTn+yRicNRucuBp7Z2achbk6eITCdjjdXVI7zM4YXpzVLu5fJckLAu07aEIGYCBT7ZXd7TRgfB68POwtwaJGBozg+nuhq8xEH04yi8jFODH6aFplIgJ+bbaP72zw+92lzZa33FEtOwKdtx+YUv0eLLDJs+8Z6Sn6RyN8prwIz1/9LuIMx39g4R7id9W2bV2MXqTU4nN8f0TXWqe+hnb5pDLBaZOBMkwbRka6Vptsi4dbL5Lnexa2DoIHZ2unyxZ+4SkRt9LH39j8fXf2w5JPFCSLstf7+Zu7xzRS0TTCug7k,iv:oOWcFdQJb/+KZKJmQChhJ5jOCcM3o+ojZSMyiRnO9n8=,tag:PWGQkwPe0juLgAdlKiWKpg==,type:str]
|
||||
redis: ENC[AES256_GCM,data:c+55cN6IpUNeKd+wC2zv3eunYjBsmZtXTczokqaxB2Q=,iv:M3pwNUlT9kUMv4JDE6bp/gub9CdBGxdApIvpOt3JpgE=,tag:3rPlV3U0AP9zAeF7xDouKw==,type:str]
|
||||
@@ -53,8 +53,8 @@ sops:
|
||||
cXNZWmZqd0R0SmhINExscHBKWmxvblUKEFEQvt/zQFARba4S8vHz/1SoKdKg69At
|
||||
LZ58XQGOmlGbBhPr7EzYQ2XSY4flWbnnD174cmCR8DNFm15DsNA5fw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-01-10T05:52:21Z"
|
||||
mac: ENC[AES256_GCM,data:DyLjQrIXJD7udT32xJ20WgCYr+4zXr7s0uuVMxOYSiC1VphhV+BQ2BgGF0bxAfx1n+JiO2BnyX8uD+z/iWh/k/9+UBGnL3MPJ5L5ffvno8hktVU9NHO72xkugYIkbSievTYrJGcSwWAsfJGTm4+1rG9GgcSoxIvRUoR6QJss22s=,iv:pHkPR0Va4bKjZVzNtvsDJ211ORNvNyZfWRf70OWI01w=,tag:/gEp09I+1nD6Cn6dPGZglA==,type:str]
|
||||
lastmodified: "2026-01-17T01:50:50Z"
|
||||
mac: ENC[AES256_GCM,data:8TGSqwEcfmrW1PjuzTVNyDTNs6s3oWbT0tI+rg7u2w5Dcw1EEU+SjJ6VpNY06AZHTjSD6E0O7NzUxybtMpslHUGitOGWwQCk+sbqRJuUseFe7bWFboEVoJpEoYGN5pnn52opMT+NeHGkXumaxjhDjCxfwn1RBHR7TgD4ZHEH6pE=,iv:szBUnn3HL/osWhmTwYmHrUghobWdBR60Lc6uUD/eGMY=,tag:6vgdJeJjL4ZYKc8WjixClg==,type:str]
|
||||
pgp:
|
||||
- created_at: "2024-11-28T18:56:39Z"
|
||||
enc: |-
|
||||
|
||||
@@ -17,4 +17,7 @@ import ../default.nix {
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILWG3cIBju6vzX6s8JlmGNJOiWY7pQ19bHvcqDADtWzv snowi@DESKTOP-EVIR8IH"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEMfC0IXl9sGx+9FjuYZT2OUfffGjciJIHWqZdEU1d3n alice@parthenon-7588"
|
||||
];
|
||||
groups = [
|
||||
"adbusers"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ gestures {
|
||||
|
||||
misc {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
@@ -137,7 +137,7 @@ device {
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
||||
windowrule = suppress_event maximize, match:class .* # You'll probably like this.
|
||||
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
|
||||
@@ -1,51 +1,123 @@
|
||||
{ pkgs, outputs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = pkgs.emacs30-pgtk;
|
||||
};
|
||||
programs.vesktop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
appBadge = false;
|
||||
arRPC = true;
|
||||
checkUpdates = false;
|
||||
customTitleBar = false;
|
||||
hardwareAcceleration = true;
|
||||
programs = {
|
||||
emacs = {
|
||||
enable = true;
|
||||
package = pkgs.emacs30-pgtk;
|
||||
};
|
||||
vencord.useSystem = true;
|
||||
vencord.settings = {
|
||||
autoUpdate = false;
|
||||
autoUpdateNotification = false;
|
||||
notifyAboutUpdates = false;
|
||||
plugins = {
|
||||
AnonymiseFileNames.enabled = true;
|
||||
BetterFolders.enabled = true;
|
||||
BetterGifAltText.enabled = true;
|
||||
CallTimer.enabled = true;
|
||||
ClearURLs.enabled = true;
|
||||
CopyFileContents.enabled = true;
|
||||
CtrlEnterSend.enabled = true;
|
||||
CustomIdle = {
|
||||
enabled = true;
|
||||
remainInIdle = false;
|
||||
vesktop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
appBadge = false;
|
||||
arRPC = true;
|
||||
checkUpdates = false;
|
||||
customTitleBar = false;
|
||||
hardwareAcceleration = true;
|
||||
};
|
||||
vencord.useSystem = true;
|
||||
vencord.settings = {
|
||||
autoUpdate = false;
|
||||
autoUpdateNotification = false;
|
||||
notifyAboutUpdates = false;
|
||||
plugins = {
|
||||
AnonymiseFileNames.enabled = true;
|
||||
BetterFolders.enabled = false;
|
||||
BetterGifAltText.enabled = true;
|
||||
CallTimer.enabled = true;
|
||||
ClearURLs.enabled = true;
|
||||
CopyFileContents.enabled = true;
|
||||
CtrlEnterSend.enabled = true;
|
||||
CustomIdle = {
|
||||
enabled = true;
|
||||
remainInIdle = false;
|
||||
};
|
||||
FriendsSince.enabled = true;
|
||||
GameActivityToggle.enabled = true;
|
||||
ImplicitRelationships.enabled = true;
|
||||
MutualGroupDMs.enabled = true;
|
||||
QuickMention.enabled = true;
|
||||
QuickReply.enabled = true;
|
||||
ReplaceGoogleSearch = {
|
||||
enabled = true;
|
||||
customEngineName = "DuckDuckGo";
|
||||
};
|
||||
ReviewDB.enabled = true;
|
||||
ShowConnections.enabled = true;
|
||||
};
|
||||
FriendsSince.enabled = true;
|
||||
GameActivityToggle.enabled = true;
|
||||
ImplicitRelationships.enabled = true;
|
||||
MutualGroupDMs.enabled = true;
|
||||
QuickMention.enabled = true;
|
||||
QuickReply.enabled = true;
|
||||
ReplaceGoogleSearch = {
|
||||
enabled = true;
|
||||
customEngineName = "DuckDuckGo";
|
||||
};
|
||||
};
|
||||
zed-editor = {
|
||||
enable = true;
|
||||
mutableUserSettings = false;
|
||||
extensions = [
|
||||
"nix"
|
||||
"toml"
|
||||
"rust"
|
||||
"java"
|
||||
"kotlin"
|
||||
"git firefly"
|
||||
"make"
|
||||
"dockerfile"
|
||||
"sql"
|
||||
"latex"
|
||||
"terraform"
|
||||
"log"
|
||||
];
|
||||
userSettings = {
|
||||
colorize_brackets = true;
|
||||
hard_tabs = false;
|
||||
vim_mode = true;
|
||||
minimap = {
|
||||
show = "auto";
|
||||
};
|
||||
buffer_line_height = "comfortable";
|
||||
auto_update = false;
|
||||
autosave = "on_focus_change";
|
||||
agent = {
|
||||
default_model = {
|
||||
provider = "ollama";
|
||||
model = "qwen2.5-coder:latest";
|
||||
};
|
||||
favorite_models = [ ];
|
||||
model_parameters = [ ];
|
||||
};
|
||||
telemetry = {
|
||||
diagnostics = false;
|
||||
metrics = false;
|
||||
};
|
||||
journal = {
|
||||
hour_format = "hour24";
|
||||
};
|
||||
edit_preditions = {
|
||||
provider = "open_ai_compatible_api";
|
||||
open_ai_compatible_api = {
|
||||
api_url = "http://localhost:11434/v1/completions";
|
||||
model = "zeta:latest";
|
||||
prompt_format = "infer";
|
||||
max_requests = 64;
|
||||
};
|
||||
};
|
||||
texlab = {
|
||||
build = {
|
||||
onSave = true;
|
||||
forwardSearchAfter = true;
|
||||
};
|
||||
forwardSearch = {
|
||||
executable = "zathura";
|
||||
args = [
|
||||
"--synctex-forward"
|
||||
"%l:1:%f"
|
||||
"-x"
|
||||
"zed %%{input}:%%{line}"
|
||||
"%p"
|
||||
];
|
||||
};
|
||||
};
|
||||
ReviewDB.enabled = true;
|
||||
ShowConnections.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
cmake
|
||||
shellcheck
|
||||
@@ -66,7 +138,7 @@
|
||||
|
||||
# nix tools
|
||||
nil
|
||||
nixfmt-rfc-style
|
||||
nixfmt
|
||||
nix-init
|
||||
|
||||
# markdown
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
pkgs,
|
||||
name,
|
||||
publicKeys ? [ ],
|
||||
groups ? [ ],
|
||||
defaultShell ? "zsh",
|
||||
}:
|
||||
|
||||
@@ -18,7 +19,6 @@
|
||||
"wheel"
|
||||
"media"
|
||||
(lib.mkIf config.networking.networkmanager.enable "networkmanager")
|
||||
(lib.mkIf config.programs.adb.enable "adbusers")
|
||||
(lib.mkIf config.programs.wireshark.enable "wireshark")
|
||||
(lib.mkIf config.virtualisation.docker.enable "docker")
|
||||
(lib.mkIf (with config.services.locate; (enable && package == pkgs.plocate)) "plocate")
|
||||
@@ -28,5 +28,6 @@
|
||||
"plugdev"
|
||||
"uaccess"
|
||||
"ydotool"
|
||||
];
|
||||
]
|
||||
++ groups;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user