{ config, lib, pkgs, this, ... }: with lib; let cfg = config.nixfiles.modules.profiles.headful; in { options.nixfiles.modules.profiles.headful.enable = mkEnableOption "headful profile" // {default = this.isHeadful;}; config = mkIf cfg.enable { nixfiles.modules = { profiles.dev.default.enable = true; alacritty.enable = true; aria2.enable = true; emacs.enable = true; mpv.enable = true; openssh.client.enable = true; password-store.enable = true; }; hm = { home = { file.".digrc".text = '' +answer +multiline +recurse ''; packages = with pkgs; [ fd logcli ripgrep ripgrep-all sd ]; sessionVariables.LOKI_ADDR = "https://loki.shire.net"; }; accounts.email = { maildirBasePath = "${config.my.home}/mail"; accounts = let mkAccount = attrs: mkMerge [ { mbsync = { enable = true; create = "both"; expunge = "both"; patterns = ["*"]; }; msmtp.enable = true; mu.enable = true; thunderbird = { enable = pkgs.stdenv.isLinux; settings = id: { "mail.identity.id_${id}.compose_html" = false; "mail.identity.id_${id}.reply_on_top" = 0; }; }; } attrs ]; pass = path: "${config.hm.programs.password-store.package}/bin/pass show ${path}"; in rec { shire = mkAccount rec { address = my.email; aliases = [address "frodo@rohan.net" "azahi@shire.net"]; realName = my.fullname; gpg = { inherit (my.pgp) key; signByDefault = true; encryptByDefault = false; }; primary = true; imap = { host = "shire.net"; port = 993; tls.enable = true; }; smtp = { host = "shire.net"; port = 465; tls.enable = true; }; userName = "azahi@shire.net"; passwordCommand = pass "email/shire.net/azahi"; }; yahoo = mkAccount rec { address = "admin@yahoo.com"; aliases = [address "admin@yahoo.com"]; realName = "Багавиев Азат"; flavor = "yahoo.com"; userName = "admin@yahoo.com"; passwordCommand = pass "email/yahoo.com/admin"; }; }; }; programs = { mbsync.enable = true; msmtp.enable = true; mu.enable = true; }; }; environment.systemPackages = with pkgs; [ arping dnsutils inetutils ldns socat tcpdump ]; }; }