{ pkgs, lib, ... }@args: let nurpkgs = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { inherit pkgs; }; in { home = { username = "pim"; homeDirectory = "/home/pim"; stateVersion = "23.05"; packages = with pkgs; [ keepassxc nil moonlight-qt vlc nicotine-plus logseq signal-desktop telegram-desktop strawberry tree ]; }; services = { syncthing.enable = true; }; programs = { home-manager.enable = true; neovim = { enable = true; viAlias = true; vimAlias = true; vimdiffAlias = true; defaultEditor = true; plugins = with pkgs.vimPlugins; [ nvim-lspconfig gruvbox-nvim leap-nvim telescope-nvim vim-commentary vim-sleuth gitsigns-nvim ]; extraLuaConfig = builtins.readFile ./neovim.lua; }; alacritty = { enable = true; settings = import ./alacritty.nix; }; firefox = { enable = true; profiles.default = { id = 0; isDefault = true; settings = { "browser.aboutConfig.showWarning" = false; "browser.toolbars.bookmarks.visibility" = "always"; }; extensions = import ./firefox-addons (args // {inherit nurpkgs; }); }; }; bash = { enable = true; shellAliases = { htop = "btop"; gp = "git push"; gco = "git checkout"; gd = "git diff"; gc = "git commit"; gpl = "git pull"; gb = "git branch"; ga = "git add"; gl = "git log"; gs = "git status"; }; }; direnv = { enable = true; enableBashIntegration = true; nix-direnv.enable = true; }; git = { enable = true; userName = "Pim Kunis"; userEmail = "pim@kunis.nl"; extraConfig = { core.editor = "nvim"; push.autoSetupRemote = true; }; }; fzf = { enable = true; enableBashIntegration = true; }; ssh = { enable = true; matchBlocks = { "github.com" = lib.hm.dag.entryBefore [ "*" ] { hostname = "github.com"; user = "pizzapim"; identitiesOnly = true; }; "lewis" = lib.hm.dag.entryBefore [ "*" ] { hostname = "lewis.hyp"; }; "atlas" = lib.hm.dag.entryBefore [ "*" ] { hostname = "atlas.hyp"; }; "jefke" = lib.hm.dag.entryBefore [ "*" ] { hostname = "jefke.hyp"; }; "hermes" = lib.hm.dag.entryBefore [ "*" ] { hostname = "hermes.dmz"; }; "maestro" = lib.hm.dag.entryBefore [ "*" ] { hostname = "maestro.dmz"; }; "bancomart" = lib.hm.dag.entryBefore [ "*" ] { hostname = "bancomart.dmz"; }; "handjecontantje" = lib.hm.dag.entryBefore [ "*" ] { hostname = "handjecontantje.dmz"; }; }; extraConfig = "User root"; }; thunderbird = { enable = true; profiles.default = { isDefault = true; }; }; }; # Let home-manager manage the X session xsession = { enable = true; }; xdg.configFile."keepassxc/keepassxc.ini".text = lib.generators.toINI {} (import ./keepassxc.nix); }