infra/modules/nixos/community-builder/users.nix
2025-03-07 23:35:57 +00:00

331 lines
6.8 KiB
Nix

{ config, pkgs, ... }:
let
users = [
# To add yourself:
# 1. Add an entry to this list.
# 2. Create a file in `keys` named your user name that contains your SSH key(s), separated by newlines.
{
name = "0x4A6F";
trusted = true;
keys = ./keys/0x4A6F;
}
{
name = "aciceri";
trusted = true;
keys = ./keys/aciceri;
}
{
name = "afh";
trusted = true;
keys = ./keys/afh;
}
{
name = "a-kenji";
trusted = true;
keys = ./keys/a-kenji;
}
{
name = "binarycat";
trusted = true;
keys = ./keys/binarycat;
}
{
name = "binarycat-untrusted";
trusted = false;
keys = ./keys/binarycat;
}
{
name = "bobby285271";
trusted = true;
keys = ./keys/bobby285271;
}
{
name = "ckie";
trusted = true;
keys = ./keys/ckie;
}
{
name = "dandellion";
trusted = true;
keys = ./keys/dandellion;
}
{
name = "fgaz";
trusted = true;
keys = ./keys/fgaz;
}
{
name = "flokli";
trusted = true;
keys = ./keys/flokli;
}
{
name = "fmzakari";
# github: @fzakaria
trusted = true;
keys = ./keys/fmzakari;
}
{
name = "glepage";
trusted = true;
shell = pkgs.fish;
keys = ./keys/glepage;
}
{
name = "hadilq";
trusted = true;
keys = ./keys/hadilq;
}
{
name = "hexchen";
trusted = true;
keys = ./keys/hexchen;
}
{
name = "janik";
trusted = true;
keys = ./keys/janik;
}
{
name = "jfly";
trusted = true;
keys = ./keys/jfly;
}
{
name = "jtojnar";
trusted = true;
keys = ./keys/jtojnar;
}
{
# lib.maintainers.katexochen, https://github.com/katexochen
name = "katexochen";
trusted = true;
keys = ./keys/katexochen;
}
{
# lib.maintainers.khaneliman, https://github.com/khaneliman
name = "khaneliman";
trusted = true;
keys = ./keys/khaneliman;
}
{
name = "lewo";
trusted = true;
keys = ./keys/lewo;
}
{
name = "lily";
trusted = true;
keys = ./keys/lily;
}
{
name = "linj";
# lib.maintainers.linj, https://github.com/jian-lin
trusted = true;
shell = pkgs.fish;
keys = ./keys/linj;
}
{
name = "misuzu";
# lib.maintainers.misuzu https://github.com/misuzu
trusted = true;
keys = ./keys/misuzu;
}
{
name = "mrcjkb";
# lib.maintainers.mrcjkb https://github.com/mrcjkb
trusted = true;
shell = pkgs.zsh;
keys = ./keys/mrcjkb;
}
{
name = "nicoo";
# lib.maintainers.nicoo, @nbraud on github.com
trusted = true;
keys = ./keys/nicoo;
}
{
name = "NobbZ";
trusted = true;
keys = ./keys/nobbz;
}
{
name = "raitobezarius";
trusted = true;
keys = ./keys/raitobezarius;
}
{
name = "networkexception";
trusted = true;
keys = ./keys/networkexception;
}
{
name = "pinpox";
trusted = true;
keys = ./keys/pinpox;
}
{
name = "perchun";
trusted = true;
keys = ./keys/perchun;
}
{
name = "raboof";
# lib.maintainers.raboof, https://github.com/raboof
trusted = true;
keys = ./keys/raboof;
}
{
name = "schmittlauch";
trusted = true;
keys = ./keys/schmittlauch;
}
{
name = "matthiasbeyer";
trusted = true;
keys = ./keys/matthiasbeyer;
}
{
name = "stephank";
trusted = true;
keys = ./keys/stephank;
}
{
name = "supinie";
trusted = true;
keys = ./keys/supinie;
}
{
name = "teto";
trusted = true;
keys = ./keys/teto;
}
{
name = "thecomputerguy";
trusted = true;
keys = ./keys/thecomputerguy;
}
{
name = "tomberek";
trusted = true;
keys = ./keys/tomberek;
}
{
name = "tomfitzhenry";
trusted = true;
keys = ./keys/tomfitzhenry;
}
{
name = "winter";
trusted = true;
keys = ./keys/winter;
}
{
# lib.maintainers.pbsds, https://github.com/pbsds
name = "pbsds";
trusted = true;
keys = ./keys/pbsds;
}
{
name = "matthewcroughan";
trusted = true;
keys = ./keys/matthewcroughan;
}
{
name = "emily";
# lib.maintainers.emily, https://github.com/emilazy
trusted = true;
keys = ./keys/emily;
}
{
name = "emilylange";
# lib.maintainers.emilylange, https://github.com/emilylange
trusted = true;
keys = ./keys/emilylange;
}
{
name = "doronbehar";
# lib.maintainers.doronbehar, https://github.com/doronbehar
trusted = true;
keys = ./keys/doronbehar;
}
{
name = "fpletz";
# lib.maintainers.fpletz, https://github.com/fpletz
trusted = true;
keys = ./keys/fpletz;
}
{
# lib.maintainers.Enzime, https://github.com/Enzime
name = "enzime";
trusted = true;
keys = ./keys/enzime;
}
{
# lib.maintainers.hexa, https://github.com/mweinelt
name = "hexa";
trusted = true;
keys = ./keys/hexa;
}
{
# lib.maintainers.leona, https://github.com/leona-ya
name = "leona";
trusted = true;
keys = ./keys/leona;
}
{
name = "wolfgangwalther";
trusted = true;
keys = ./keys/wolfgangwalther;
}
{
# lib.maintainers.numinit, https://github.com/numinit
name = "numinit";
trusted = true;
keys = ./keys/numinit;
}
{
# lib.maintainers.natsukium, https://github.com/natsukium
name = "natsukium";
trusted = true;
keys = ./keys/natsukium;
}
{
# lib.maintainers.nilp0inter, https://github.com/nilp0inter
name = "nilp0inter";
trusted = true;
keys = ./keys/nilp0inter;
}
{
# lib.maintainers.booxter, https://github.com/booxter
name = "booxter";
trusted = true;
keys = ./keys/booxter;
}
{
name = "sinrohit";
trusted = true;
keys = ./keys/sinrohit;
}
{
name = "getpsyched";
trusted = true;
keys = ./keys/getpsyched;
}
];
in
{
users.users = builtins.listToAttrs (
builtins.map (u: {
inherit (u) name;
value = {
isNormalUser = true;
extraGroups = if (u ? trusted && u.trusted) then [ "trusted" ] else [ ];
home = "/home/${u.name}";
createHome = true;
shell = u.shell or config.users.defaultUserShell;
openssh.authorizedKeys.keyFiles = [ u.keys ];
};
}) users
);
}