diff options
| author | Kleidi Bujari <mail@4kb.net> | 2024-12-17 23:03:27 -0500 |
|---|---|---|
| committer | Kleidi Bujari <mail@4kb.net> | 2024-12-17 23:03:27 -0500 |
| commit | eb13a9a552f9e50a66faba985521ba8e3483c447 (patch) | |
| tree | 209193a91b0db20fb1bb30007e72e321f0293696 /machines/xnet/users.nix | |
| parent | f5ed731abbc38d765333b005b9815a5f6d3e59c2 (diff) | |
| download | depot-eb13a9a552f9e50a66faba985521ba8e3483c447.tar.gz depot-eb13a9a552f9e50a66faba985521ba8e3483c447.tar.bz2 depot-eb13a9a552f9e50a66faba985521ba8e3483c447.zip | |
Push configuration out of flake
Projects are not necessarily all exported by the system flake, and
should freely support other derivations. The new "mod" directory will be
used for most projects, and it can be imported by machine
configurations.
That said, the tooling around flakes is pretty good and will still be
used until the dependency is lessened.
Diffstat (limited to 'machines/xnet/users.nix')
| -rw-r--r-- | machines/xnet/users.nix | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/machines/xnet/users.nix b/machines/xnet/users.nix new file mode 100644 index 0000000..53aa15b --- /dev/null +++ b/machines/xnet/users.nix @@ -0,0 +1,74 @@ +{ pkgs, lib, config, ... }: +let + cfg = config.xnet.users; + inherit (lib) mkOption mkIf types; +in +{ + + options.xnet.users = { + enable = mkOption { + type = types.listOf (types.enum [ "kle" ]); + default = [ ]; + description = "Users to enable."; + }; + }; + + config = { + users = { + mutableUsers = false; + users.kle = mkIf (builtins.elem "kle" cfg.enable) { + hashedPassword = "$6$R4dDhaftX.vapGMd$.An36hlp3DXfkIC7bPZ0MDPo6Zvpk8JRrhy2LES.lZZj6JDa74oJkcMW3DCsIySvLJxOPXSShos0TpgJ/w0fH/"; + isNormalUser = true; + createHome = true; + extraGroups = [ "wheel" "users" "networkmanager" "video" ]; + packages = with pkgs; [ + btop + curl + fzf + jq + lynx + neovim + ranger + rsync + sshfs + tree + zip + ]; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP7T2uWJFUu8aFZZgQusGKyEMocb2pKbHLDad2eIJus9" + ]; + }; + }; + + security.sudo = { + execWheelOnly = true; + extraConfig = "Defaults lecture = never"; + }; + + programs.ssh = { + knownHosts = { + "github.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl"; + }; + extraConfig = '' + Host github + HostName github.com + User git + PreferredAuthentications publickey + ''; + }; + + programs.git = { + config = { + init.defaultBranch = "master"; + fetch.prune = true; + core.excludesFile = pkgs.writeText "gitignore" '' + # dev shell caching + .direnv/ + .envrc + ''; + push.default = "upstream"; + push.autoSetupRemote = true; + }; + }; + }; +} |
