{ 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 ripgrep ripgrep-all sd ]; }; 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; } attrs ]; pass = path: "${pkgs.pass}/bin/pass show ${path}"; in { shire = mkAccount { address = my.email; gpg = { inherit (my.pgp) key; signByDefault = true; encryptByDefault = false; }; primary = true; imap.host = "shire.me"; smtp.host = "shire.me"; userName = "azahi@shire.me"; passwordCommand = pass "email/shire.me/azahi"; }; yahoo = mkAccount { address = "a.gondor@yahoo.com"; imap.host = "imap.yahoo.com"; smtp.host = "smtp.yahoo.com"; userName = "a.gondor@yahoo.com"; passwordCommand = pass "email/yahoo.com/a.gondor"; }; }; }; programs = { mbsync.enable = true; msmtp.enable = true; mu.enable = true; }; }; environment.systemPackages = with pkgs; [ (aspellWithDicts (p: with p; [en ru])) arping dnsutils inetutils ldns socat tcpdump ]; }; }