summaryrefslogtreecommitdiff
path: root/modules/default-user.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/default-user.nix')
-rw-r--r--modules/default-user.nix139
1 files changed, 1 insertions, 138 deletions
diff --git a/modules/default-user.nix b/modules/default-user.nix
index 973178c..57e3acb 100644
--- a/modules/default-user.nix
+++ b/modules/default-user.nix
@@ -1,21 +1,15 @@
-{ config, lib, inputs, pkgs, ...}: with lib; let
+{ config, lib, pkgs, ...}: with lib; let
cfg = config.santi-modules;
in {
- imports = [
- inputs.agenix.nixosModules.default
- inputs.home-manager.nixosModules.home-manager
- ];
options.santi-modules = {
default-user.enable = mkOption {
type = types.bool;
default = true;
description = "Enables default user configuration and ssh access";
};
- mu.enable = mkEnableOption "Enables mu, mbsync and msmtp";
};
config = mkIf config.santi-modules.default-user.enable {
environment.systemPackages = with pkgs; [
- rage
deploy-rs
jujutsu
] ++ (if cfg.mu.enable then [ pkgs.parallel ] else []);
@@ -25,33 +19,7 @@ in {
description = "leonardo";
extraGroups = [ "networkmanager" "wheel" ];
shell = pkgs.bashInteractive;
- hashedPasswordFile = config.age.secrets.user-pass.path;
- openssh.authorizedKeys.keys = [ (builtins.readFile ../secrets/user-ssh-key.pub)] ++ builtins.attrValues (import ../secrets/host-pub-keys.nix);
};
- age.secrets = let
- with-perms = name: {
- file = ../secrets/${name}.age;
- owner = "leonardo";
- group = "users";
- };
- in {
- user-pass = with-perms "user-pass";
- user-ssh-key = {
- file = ../secrets/user-ssh-key.age;
- path = "/home/leonardo/.ssh/id_ed25519";
- owner = "leonardo";
- group = "users";
- };
- } // (optionalAttrs cfg.mu.enable (let
- mails = ["work-mail" "personal-mail" "university-mail"];
- mail-cfg = map (n: {name = n; value = with-perms n;}) mails;
- in
- listToAttrs mail-cfg))
- // (optionalAttrs cfg.services.ddns.enable {
- cloudflare = with-perms "cloudflare";
- }) // (optionalAttrs cfg.emacs.enable {
- authinfo = with-perms "authinfo";
- });
programs.ssh.startAgent = true;
services.openssh = {
enable = true;
@@ -60,110 +28,5 @@ in {
PasswordAuthentication = false;
};
};
- home-manager = {
- backupFileExtension = "backup";
- useGlobalPkgs = true;
- useUserPackages = true;
- users.leonardo = {
- imports = [ (import ./gnome/gnome-config.nix config.santi-modules) ];
- home = {
- stateVersion = "23.05";
- homeDirectory = "/home/leonardo";
- file.".ssh/id_ed25519.pub".source = ../secrets/user-ssh-key.pub;
- # file.".mozilla/firefox/leonardo/chrome/firefox-gnome-theme" = mkIf cfg.firefox.enable { source = inputs.firefox-gnome-theme; };
- packages = lib.optionals cfg.desktop-environment.enable (with pkgs; [
- legcord
- slack
- whatsapp-for-linux
- telegram-desktop
- inputs.zen-browser.packages.${system}.default
- ]);
- };
- programs = {
- bash = {
- enable = true;
- enableCompletion = true;
- initExtra = ''
- shopt -s -q autocd
- shopt -s no_empty_cmd_completion
- '';
- };
- fzf = {
- enable = true;
- enableBashIntegration = true;
- };
- git = {
- enable = true;
- lfs.enable = true;
- diff-so-fancy.enable = true;
- extraConfig = {
- user = {
- name = "Leonardo Santiago";
- email = "[email protected]";
- signingkey = "~/.ssh/id_ed25519";
- };
- color.ui = true;
- gpg.format = "ssh";
- commit.gpgsign = true;
- };
- };
- mu.enable = cfg.mu.enable;
- msmtp.enable = cfg.mu.enable;
- mbsync.enable = cfg.mu.enable;
- };
- services.mbsync = mkIf cfg.mu.enable {
- enable = true;
- frequency = "*:0/5";
- };
- accounts.email.accounts = mkIf cfg.mu.enable {
- personal = {
- address = "[email protected]";
- userName = "[email protected]";
- imap.host = "imap.gmail.com";
- smtp.host = "smtp.gmail.com";
- primary = true;
- realName = "Leonardo Ribeiro Santiago";
- mbsync = {
- enable = true;
- create = "both";
- expunge = "both";
- };
- msmtp.enable = true;
- mu.enable = true;
- passwordCommand = "cat ${config.age.secrets.personal-mail.path}";
- };
- university = {
- address = "[email protected]";
- userName = "[email protected]";
- imap.host = "imap.gmail.com";
- smtp.host = "smtp.gmail.com";
- realName = "Leonardo Ribeiro Santiago";
- mbsync = {
- enable = true;
- create = "both";
- expunge = "both";
- };
- msmtp.enable = true;
- mu.enable = true;
- passwordCommand = "cat ${config.age.secrets.university-mail.path}";
- };
- work = {
- address = "[email protected]";
- userName = "[email protected]";
- imap.host = "imap.gmail.com";
- smtp.host = "smtp.gmail.com";
- realName = "Leonardo Ribeiro Santiago";
- mbsync = {
- enable = true;
- create = "both";
- expunge = "both";
- };
- msmtp.enable = true;
- mu.enable = true;
- passwordCommand = "cat ${config.age.secrets.work-mail.path}";
- };
- };
- };
- };
};
}