{ config, lib, pkgs, inputs, ... }: { # Let Home Manager install and manage itself. programs.home-manager.enable = true; imports = [ ./packages.nix ./unstable.nix ./home-minimal.nix ]; home.sessionVariables = { MOZ_ENABLE_WAYLAND = 1; _JAVA_AWT_WM_NONREPARENTING = 1; }; programs.msmtp.enable = true; programs.mbsync.enable = true; programs.mu.enable = true; accounts.email = { accounts.hacc = { address = "stuebinm@hacc.space"; imap.host = "mail.hacc.space"; mbsync = { enable = true; create = "maildir"; }; msmtp.enable = true; mu.enable = true; primary = true; realName = "stuebinm"; smtp.host = "mail.hacc.space"; userName = "stuebinm@hacc.space"; passwordCommand = "cat ~/mailpasswd"; }; }; programs.bash = { shellAliases = { "lrz-vpn" = "sudo openconnect https://asa-cluster.lrz.de -g AnyConnect"; news = "newsboat"; pj = "pijul"; }; }; programs.nushell = { enable = true; settings = { startup = [ "mkdir ~/.cache/starship" "starship init nu | save ~/.cache/starship/init.nu" "source ~/.cache/starship/init.nu" ]; prompt = "starship_prompt"; }; }; programs.fish = { shellAliases = { "lrz-vpn" = "sudo openconnect https://asa-cluster.lrz.de"; news = "newsboat"; pj = "pijul"; agenda = "almanac month ~/.cache/feedsync/*"; }; }; programs.kitty = { enable = true; extraConfig = '' background_opacity 0.8 ''; }; programs.neovim = { enable = true; viAlias = true; plugins = with pkgs; [ (vimPlugins.nvim-treesitter.withPlugins (plugins: [ tree-sitter-grammars.tree-sitter-nix ])) ]; generatedConfigViml = '' lua </dev/null 2>&1 &" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u" macro f set browser "${pkgs.xdg_utils}/bin/xdg-open %u >/dev/null 2>&1 &" ; open-in-browser ; set browser "${config.programs.newsboat.browser} %u" bind-key j down bind-key k up ''; }; programs.obs-studio = { enable = true; plugins = let move-transition = import obs/move-transition.nix; obs-websocket = import obs/obs-websocket.nix; in with pkgs; [ ]; }; programs.gpg = { enable = true; settings = { auto-key-locate = "keyserver"; with-fingerprint = ""; }; }; services.gpg-agent = { enable = true; pinentryFlavor = "gtk2"; maxCacheTtl = 1800; }; programs.ssh = { forwardAgent = true; enable = true; matchBlocks = let keydir = config.home.homeDirectory + "/.ssh"; hetznerlogin = match: {user = "root"; identityFile = keydir + "/hetzner"; forwardAgent = true;} // match; vpslogin = hostname: hetznerlogin {inherit hostname;}; lmulogin = hostname: {identityFile = keydir + "/key_lmu"; user = "lmu-user"; } // { inherit hostname;}; in { "parsons" = hetznerlogin { hostname = "parsons.hacc.space"; port = 62954; user = "stuebinm"; identityFile = keydir + "/id_rsa"; }; "discuss" = hetznerlogin { user = "root"; hostname = "23.88.58.86"; port = 62954; identityFile = keydir + "/id_rsa"; }; "flora" = vpslogin "nix.stuebinm.eu"; "chaski" = vpslogin "chaski.stuebinm.eu"; "cgit" = vpslogin "flora.stuebinm.eu" // {user = "git";}; "mate" = { hostname = "192.168.69.174"; user = "root"; identityFile = keydir + "/hetzner"; }; "lmucast-test" = lmulogin "lmzveun-h5base.srv.mwn.de"; "lmucast-prod" = lmulogin "lmzveun-pro-h5base.srv.mwn.de"; "lmu-salsa" = { hostname = "lmzveun-salsa.srv.mwn.de"; user = "ra72koc"; identityFile = keydir + "/key_lmu"; }; }; }; programs.mpv = { enable = true; bindings = { "up" = "add speed 0.1"; "down" = "add speed -0.1"; "n" = "add chapter 1"; "p" = "add chapter -1"; }; }; }