{ config, pkgs, ... }: { # Home Manager needs a bit of information about you and the # paths it should manage. home.username = "chris"; home.homeDirectory = "/home/chris"; # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage # when a new Home Manager release introduces backwards # incompatible changes. # # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. # Let Home Manager install and manage itself. programs.home-manager.enable = true; # accounts.email.accounts = { # personal = { # address = "chris@cochrun.xyz"; # mbsync.enable = true; # create = "maildir"; # mu.enable = true; # imap = { # host = "mail.cochrun.xyz"; # port = 993; # tls.enable = true; # }; # smtp = { # host = "mail.cochrun.xyz"; # port = 25; # tls.enable = true; # }; # }; # work = { # address = "chris@tfcconnection.org"; # mbsync.enable = true; # create = "maildir"; # mu.enable = true; # imap = { # host = "outlook.office365.com"; # port = 993; # tls.enable = true; # }; # smtp = { # host = "mail.cochrun.xyz"; # port = 25; # tls.enable = true; # }; # }; # }; programs.git = { enable = true; userName = "Chris Cochrun"; userEmail = "chris@cochrun.xyz"; }; home.packages = with pkgs; [ ]; programs.mu.enable = true; # services.emacs = { # enable = true; # package = pkgs.emacsPgtkGcc; # defaultEditor = true; # }; programs.mbsync = { enable = true; extraConfig = '' IMAPAccount gmail Host imap.gmail.com User ccochrun21@gmail.com PassCmd "rbw get gmail" AuthMechs LOGIN SSLType IMAPS SSLVersions SSLv3 # CertificateFile /opt/local/share/curl/curl-ca-bundle.crt IMAPAccount office Host outlook.office365.com User chris@tfcconnection.org PassCmd "rbw get 'Office 365'" AuthMechs LOGIN SSLType IMAPS IMAPAccount outlook Host outlook.office365.com User chris.cochrun@outlook.com PassCmd "rbw get outlook" AuthMechs LOGIN SSLType IMAPS IMAPAccount cochrun Host mail.cochrun.xyz User chris@cochrun.xyz PassCmd "rbw get 'Office 365'" AuthMechs LOGIN SSLType IMAPS # SSLVersions SSLv3 # CertificateFile /opt/local/share/curl/curl-ca-bundle.crt # THEN WE SPECIFY THE LOCAL AND REMOTE STORAGE # - THE REMOTE STORAGE IS WHERE WE GET THE MAIL FROM (E.G., THE # SPECIFICATION OF AN IMAP ACCOUNT) # - THE LOCAL STORAGE IS WHERE WE STORE THE EMAIL ON OUR COMPUTER # REMOTE STORAGE (USE THE IMAP ACCOUNT SPECIFIED ABOVE) IMAPStore gmail-remote Account gmail MaildirStore gmail-local Path ~/Maildir/gmail/ Inbox ~/Maildir/gmail/INBOX IMAPStore office-remote Account office # LOCAL STORAGE (CREATE DIRECTORIES with mkdir -p Maildir/gmail) MaildirStore office-local Path ~/Maildir/office/ Inbox ~/Maildir/office/INBOX Subfolders Verbatim IMAPStore outlook-remote Account outlook MaildirStore outlook-local Path ~/Maildir/outlook/ Inbox ~/Maildir/outlook/INBOX Subfolders Verbatim IMAPStore cochrun-remote Account cochrun MaildirStore cochrun-local Path ~/Maildir/cochrun/ Inbox ~/Maildir/cochrun/INBOX Subfolders Verbatim # CONNECTIONS SPECIFY LINKS BETWEEN REMOTE AND LOCAL FOLDERS # # CONNECTIONS ARE SPECIFIED USING PATTERNS, WHICH MATCH REMOTE MAIl # FOLDERS. SOME COMMONLY USED PATTERS INCLUDE: # # 1 "*" TO MATCH EVERYTHING # 2 "!DIR" TO EXCLUDE "DIR" # 3 "DIR" TO MATCH DIR Channel gmail-inbox Far :gmail-remote: Near :gmail-local: Patterns "INBOX" Create Both Expunge Both SyncState * Channel gmail-trash Far :gmail-remote:"[Gmail]/Bin" Near :gmail-local:"[Gmail].Bin" Create Both Expunge Both SyncState * Channel gmail-sent Far :gmail-remote:"[Gmail]/Sent Mail" Near :gmail-local:"[Gmail].Sent Mail" Create Both Expunge Both SyncState * Channel gmail-all Far :gmail-remote:"[Gmail]/All Mail" Near :gmail-local:"[Gmail].All Mail" Create Both Expunge Both SyncState * Channel gmail-starred Far :gmail-remote:"[Gmail]/Starred" Near :gmail-local:"[Gmail].Starred" Create Both Expunge Both SyncState * Channel office-inbox Far :office-remote: Near :office-local: Patterns "*" Create Both Expunge Both SyncState * Channel outlook-inbox Far :outlook-remote: Near :outlook-local: Patterns "*" Create Both Expunge Both SyncState * Channel cochrun-inbox Far :cochrun-remote: Near :cochrun-local: Patterns "*" Create Both Expunge Both SyncState * # GROUPS PUT TOGETHER CHANNELS, SO THAT WE CAN INVOKE # MBSYNC ON A GROUP TO SYNC ALL CHANNELS # # FOR INSTANCE: "mbsync gmail" GETS MAIL FROM # "gmail-inbox", "gmail-sent", and "gmail-trash" # # Group gmail # Channel gmail-inbox # Channel gmail-sent # Channel gmail-trash # Channel gmail-all # Channel gmail-starred Group office Channel office-inbox Group outlook Channel outlook-inbox Group cochrun Channel cochrun-inbox ''; }; programs.msmtp.enable = true; services.mbsync.enable = true; services.nextcloud-client = { enable = true; startInBackground = true; }; services.syncthing.enable = true; services.kdeconnect.enable = true; services.easyeffects.enable = true; services.espanso = { enable = true; settings = { matches = [ { # dates trigger = ":date"; replace = "{{mydate}}"; vars = [{ name = "mydate"; type = "date"; params = {format = "%m/%d/%Y";}; }]; } { # Shell commands trigger = ":shell"; replace = "{{output}}"; vars = [{ name = "output"; type = "shell"; params = { cmd = "echo Hello from your shell";}; }]; } { # simple text trigger = ":gml"; replace = "ccochrun21@gmail.com"; } { trigger = ":otl"; replace = "chris.cochrun@outlook.com"; } { trigger = ":tfcml"; replace = "chris@tfcconnection.org"; } { trigger = ":name"; replace = "Chris Cochrun"; } ]; }; }; home.file.".config/rofi" = { source = ../rofi; recursive = true; }; programs.rbw.enable = true; home.file.".config/rbw" = { source = ../rbw; recursive = true; }; home.file.".config/fish" = { source = ../fish; recursive = true; }; programs.qutebrowser.enable = true; home.file.".config/qutebrowser" = { source = ../qutebrowser; recursive = true; }; home.file.".config/mpv" = { source = ../mpv; recursive = true; }; home.file.".config/macchina" = { source = ../macchina; recursive = true; }; home.file.".config/awesome" = { source = ../awesome; recursive = true; }; home.file."scripts" = { source = ../scripts; recursive = true; }; programs.starship.enable = true; programs.zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; enableSyntaxHighlighting = true; autocd = true; dotDir = ".config/zsh"; shellAliases = { ls = "exa -l"; la = "exa -la"; mpf = "mpv --profile=fast"; mps = "mpv --profile=slow"; ec = "emacsclient -t"; ecc = "emacsclient -c"; mkdir = "mkdir -pv"; nupd = "update-nix"; nupg = "upgrade-nix"; sysuse = "systemctl --user"; }; initExtra = '' macchina ''; }; }