nix-conf/home-manager/home.nix
Thiago Sposito 0251529a8a
feat: add email integration with mu4e and protonmail-bridge
- Configure mu4e in Doom Emacs with Proton mail account
- Add protonmail-bridge service and mbsync/msmtp for mail sync
- Integrate sops-nix for secrets management (mail password)
- Create mail.nix with full IMAP/SMTP configuration
- Add ComfyUI user service module
- Add custom ASCII banner for Doom dashboard
- Enable nix module in Doom Emacs
- Add force-quit gnome extension
- Ignore secrets directory in git
- also add comfy-ui
2026-01-18 21:14:44 -03:00

205 lines
4 KiB
Nix

{
pkgs,
lib,
inputs,
sops,
...
}:
let
pkgsUnstable = import inputs.nixpkgs-unstable {
system = "x86_64-linux";
config.allowUnfree = true;
config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"code-cursor"
"cursor"
"cursor-cli"
"vscode"
];
};
in
{
imports = [
./custom.nix
./emacs
./gnome
./icons.nix
./nvim
./services
./zsh.nix
./mail.nix
];
nixpkgs = {
config = {
allowUnfree = true;
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"code-cursor"
"cursor"
"cursor-cli"
"vscode"
];
};
};
home = {
homeDirectory = "/home/thiago";
packages = with pkgs; [
cmake
pkgsUnstable.code-cursor
pkgsUnstable.cursor-cli
direnv
distrobox
fd
fennel-ls
fira-code
firefox
glow
guile
guile-lsp-server
hwinfo
inkscape
keymapp
lazygit
luajit
lua-language-server
luajitPackages.fennel
luajitPackages.luacheck
nerd-fonts.fira-code
nil
nitrokey-app2
nixd
nixfmt-rfc-style
nixpkgs-fmt
nodejs
nordic
obsidian
pandoc
pinentry-curses
podman
protonmail-bridge
python3
racket
ripgrep
shellcheck
statix
stylua
uget
unzip
vscode
waydroid
wl-clipboard
xorg.xhost
];
sessionVariables = {
# DBUS_SESSION_BUS_ADDRESS = "unix:path=${config.home.homeDirectory}/.dbus-session-bus";
};
username = "thiago";
};
programs = {
git = {
enable = true;
settings = {
aliases = {
br = "branch";
ca = "commit --amend";
can = "commit --amend --no-edit";
ci = "commit";
co = "checkout";
lg = "log --oneline --graph --decorate --all";
st = "status";
};
extraConfig = {
color.ui = "auto";
core = {
editor = "nvim";
autocrlf = "input";
};
init.defaultBranch = "main";
pull.rebase = true;
};
lfs.enable = true;
signing = {
key = "EC7C84664FF515B63AD510B63065EA73A976D430";
signByDefault = false;
};
user = {
email = "th.spo@pm.me";
name = "Thiago Sposito";
};
};
};
gpg = {
enable = true;
package = pkgs.gnupg;
};
home-manager.enable = true;
kitty = {
enable = true;
keybindings = {
# splitting
"ctrl+shift+enter" = "new_window";
"ctrl+shift+\\" = "new_window --location=hsplit";
"super+-" = "new_window --location=hsplit";
"super+|" = "new_window --location=vsplit";
# resizing
"ctrl+alt+left" = "resize_window narrower";
"ctrl+alt+right" = "resize_window wider";
"ctrl+alt+up" = "resize_window taller";
"ctrl+alt+down" = "resize_window shorter";
};
settings = {
hide_window_decorations = "titlebar-only";
font_size = 18;
font_family = "GohuFont 14 Nerd Font Mono";
inactive_text_alpha = "0.6";
# background_blur = 32;
background_opacity = 1.0;
};
};
mbsync.enable = true;
vscode = {
enable = true;
};
};
services = {
gpg-agent = {
enable = true;
enableZshIntegration = true;
pinentry.package = pkgs.pinentry-curses;
};
protonmail-bridge = {
enable = true;
extraPackages = [
pkgs.gnome-keyring
];
};
};
sops = {
gnupg.home = "/home/thiago/.gnupg";
age.keyFile = null; # We are using the Nitrokey (PGP) instead
};
#systemd.user.startServices = "sd-switch";
home.stateVersion = "25.11";
# sops configuration
# sops = {
# age.keyFile = "/home/thiago/.config/sops/age/keys.txt";
# gnupg.home = "/home/thiago/.gnupg";
# };
}