{ nix-config, config, lib, pkgs, inputs, ... }: { imports = with nix-config.homeModules; [ git-conf yazi shell-conf # shell, shell utils, cli tools, libs, tui's email desktop music langs emacs ]; home = { packages = lib.mkMerge [ [ inputs.affinity-nix.packages.x86_64-linux.photo inputs.affinity-nix.packages.x86_64-linux.publisher inputs.affinity-nix.packages.x86_64-linux.designer ] (with pkgs; [ # sambaFull dconf # xorg.libX11 # xorg.libxcb # freetype # alsa-utils # alsa-oss # dbus cifs-utils sops ispell (aspellWithDicts (dicts: with dicts; [ en en-computers en-science es fr ])) texlive.combined.scheme-full # spice # spice-gtk # spice-protocol # virt-viewer # borgbackup ]) ]; username = "emenel"; homeDirectory = "/home/emenel"; sessionPath = [ "/home/emenel/.config/emacs/bin" "/home/emenel/.npm-packages/bin" "/home/emenel/Applications" "/home/emenel/.local/bin" "/home/emenel/.local/share" "/home/emenel/.nix-profile/lib" "/etc/profiles/per-user/emenel/bin/" "/home/emenel/.local/state/nix/profiles/home-manager/home-path/bin/" ]; sessionVariables = { WINEFSYNC = 1; PKG_CONFIG_PATH = "/home/emenel/.nix-profile/lib/pkgconfig:/home/emenel/.nix-profile/lib64/pkgconfig:/home/emenal/.nix-profile/share/pkgconfig"; GI_TYPELIB_PATH = "/run/current-system/sw/lib/girepository-1.0"; BW_CLIENTID = "$(cat ${config.sops.defaultSymlinkPath}/bw_client_id)"; BW_CLIENTSECRET = "$(cat ${config.sops.defaultSymlinkPath}/bw_api_key)"; NIXOS_OZONE_WL = "1"; GSK_RENDERER = "ngl"; MOZ_ENABLE_WAYLAND = 1; LSP_USE_PLISTS = "true"; NH_FLAKE = "\${HOME}/source/nixos-config"; }; stateVersion = "24.05"; }; sops = { age.keyFile = "/home/emenel/.config/sops/age/keys.txt"; # must have no password! defaultSopsFile = ./secrets.yaml; secrets = { bw_client_id = { path = "${config.sops.defaultSymlinkPath}/bw_client_id"; }; bw_api_key = { path = "${config.sops.defaultSymlinkPath}/bw_api_key"; }; ssh_key = { path = "${config.sops.defaultSymlinkPath}/ssh_key"; }; borg_url = { path = "${config.sops.defaultSymlinkPath}/borg_url"; }; }; }; programs = { home-manager.enable = true; pandoc.enable = true; password-store.enable = true; git = { enable = true; lfs = { enable = true; }; userEmail = "matt@emenel.ca"; userName = "Matt Nish-Lapidus"; ignores = [ ".DS_Store" ]; extraConfig = { core = { editor = "$EDITOR"; pager = "${pkgs.delta}/bin/delta"; }; interactive = { diffFilter = "${pkgs.delta}/bin/delta --color-only"; }; delta = { navigate = true; dark = true; line-numbers = true; side-by-side = true; }; merge = { conflictstyle = "zdiff3"; }; init = { defaultBranch = "main"; }; }; aliases = { co = "checkout"; cm = "commit -m"; aa = "add ."; p = "push"; }; }; borgmatic = { enable = true; backups = { eddie = { location = { patterns = [ "R /home/emenel" "- home/emenel/.cache" "- home/emenel/.nix*" "- home/emenel/.steam*" "- home/emenel/Dropbox" "- home/emenel/Sync" "- home/emenel/.dropbox*" "- home/emenel/.BitwigStudio" "- home/emenel/.local/share/bitwig" ]; repositories = [ { "path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo"; "label" = "eddie on borgbase"; } ]; }; retention = { keepDaily = 3; keepHourly = 3; keepMonthly = 2; }; }; }; }; }; services = { playerctld = { enable = true; package = pkgs.playerctl; }; borgmatic = { enable = true; }; gpg-agent = { enable = true; }; }; xdg.systemDirs.data = [ "/home/emenel/.local/share/applications/wine/Programs" "/home/emenel/.local/share/applications" "/var/lib/flatpak/exports/share" ]; systemd.user = { enable = true; startServices = "sd-switch"; # auto reload services when home is rebuilt sessionVariables = { GSK_RENDERER = "ngl"; MOZ_ENABLE_WAYLAND = 1; XCURSOR_SIZE = 32; XCURSOR_THEME = "Bibata-Modern-Classic"; DISPLAY = ":0"; WAYLAND_DISPLAY="wayland-1"; }; }; # email signature home.file.".signature".source = ./dotfiles/dot_signature; #custom script executables home.file.".local/bin" = { source = ./dotfiles/dot_local/bin; recursive = true; }; }