summaryrefslogtreecommitdiff
path: root/homes/kjtsanaktsidis/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'homes/kjtsanaktsidis/default.nix')
-rw-r--r--homes/kjtsanaktsidis/default.nix140
1 files changed, 140 insertions, 0 deletions
diff --git a/homes/kjtsanaktsidis/default.nix b/homes/kjtsanaktsidis/default.nix
new file mode 100644
index 0000000..8195727
--- /dev/null
+++ b/homes/kjtsanaktsidis/default.nix
@@ -0,0 +1,140 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}:
+{
+ home.username = "kjtsanaktsidis";
+ home.homeDirectory = "/home/kjtsanaktsidis";
+ home.stateVersion = "25.11";
+
+ programs.home-manager.enable = true;
+
+ # Install packages
+ home.packages = with pkgs; [
+ htop
+ zellij
+ tmux
+ git-absorb
+ # LazyVim dependencies
+ lazygit
+ ripgrep
+ fd
+ nodejs
+ python3
+ nixos-rebuild-ng
+ ];
+
+ # Configure sops for home-manager
+ sops = {
+ age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+ defaultSopsFile = ./secrets.yaml;
+ secrets = {
+ kj_id_ed25519 = {
+ path = "${config.home.homeDirectory}/.ssh/id_ed25519";
+ };
+ kj_gpg_private_key = {
+ path = "${config.home.homeDirectory}/.gnupg/private-key.asc";
+ };
+ fastmail_app_password = {
+ path = "${config.xdg.configHome}/secrets/fastmail_app_password";
+ };
+ };
+ };
+
+ accounts.email.accounts.fastmail = {
+ enable = true;
+ primary = true;
+ address = "kj@kjtsanaktsidis.id.au";
+ realName = "KJ Tsanaktsidis";
+ userName = "kj@kjtsanaktsidis.id.au";
+ flavor = "fastmail.com";
+ msmtp = {
+ enable = true;
+ extraConfig = {
+ host = "smtp.fastmail.com";
+ port = "465";
+ tls = "on";
+ auth = "on";
+ user = "kj@kjtsanaktsidis.id.au";
+ from = "kj@kjtsanaktsidis.id.au";
+ passwordeval = "cat ${config.sops.secrets.fastmail_app_password.path}";
+ };
+ };
+ };
+ programs.msmtp.enable = true;
+
+ # Git configuration
+ programs.git = {
+ enable = true;
+ settings = {
+ user.name = "KJ Tsanaktsidis";
+ user.email = "kj@kjtsanaktsidis.id.au";
+ pull.rebase = true;
+ sendemail = {
+ sendmailCmd = "${pkgs.msmtp}/bin/msmtp -a default";
+ from = "KJ Tsanaktsidis <kj@kjtsanaktsidis.id.au>";
+ confirm = "always";
+ annotate = true;
+ };
+ };
+ signing = {
+ key = "7F21FB211E24B02A5DEF86E227CD40EB9B81C726";
+ signByDefault = true;
+ };
+ };
+
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ };
+
+ # Zsh configuration
+ programs.zsh = {
+ enable = true;
+ history = {
+ size = 1000000;
+ save = 1000000;
+ append = true;
+ extended = true;
+ ignoreSpace = false;
+ ignoreDups = false;
+ };
+
+ initContent = lib.mkOrder 1000 (builtins.readFile ./zsh-config.zsh);
+ };
+
+ # FZF with standard keybindings
+ programs.fzf = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+
+ programs.gpg = {
+ enable = true;
+ homedir = "${config.home.homeDirectory}/.gnupg";
+ };
+ services.gpg-agent = {
+ enable = true;
+ };
+ systemd.user.services.manage-secrets = {
+ Unit = {
+ Description = "Import GPG and SSH keys from sops secrets";
+ After = [ "sops-nix.service" ];
+ Requires = [ "sops-nix.service" ];
+ };
+ Service = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ ExecStart = toString (pkgs.writeShellScript "manage-secrets" ''
+ export GNUPGHOME="${config.programs.gpg.homedir}"
+ ${pkgs.gnupg}/bin/gpg --batch --verbose --trust-model always --import "${config.sops.secrets.kj_gpg_private_key.path}"
+ ${pkgs.openssh}/bin/ssh-keygen -y -f "${config.home.homeDirectory}/.ssh/id_ed25519" > "${config.home.homeDirectory}/.ssh/id_ed25519.pub"
+ '');
+ };
+ Install = {
+ WantedBy = [ "default.target" ];
+ };
+ };
+}