{ 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 = "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 ); }