{ pkgs, lib, ... }@args: let nurpkgs = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { inherit pkgs; }; firefox-addons = import ./firefox-addons (args // {inherit nurpkgs; }); homeDirectory = "/home/pim"; firefoxSettings = { "browser.aboutConfig.showWarning" = false; "browser.toolbars.bookmarks.visibility" = "always"; "browser.tabs.firefox-view" = false; "browser.shell.checkDefaultBrowser" = false; }; in { home = { username = "pim"; homeDirectory = homeDirectory; stateVersion = "23.05"; packages = with pkgs; [ keepassxc nil moonlight-qt vlc nicotine-plus logseq signal-desktop telegram-desktop strawberry tree gimp libreoffice nodePackages.pyright neofetch gopls ]; }; services = { syncthing.enable = true; }; programs = { home-manager.enable = true; chromium.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 nvim-cmp cmp-nvim-lsp friendly-snippets neodev-nvim ]; extraLuaConfig = builtins.readFile ./neovim.lua; }; alacritty = { enable = true; settings = import ./alacritty.nix; }; firefox = { enable = true; profiles = { default = { id = 0; isDefault = true; settings = firefoxSettings; extensions = firefox-addons.default; }; sue = { id = 1; settings = firefoxSettings; extensions = firefox-addons.sue; }; }; }; 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; extraConfig = "User root"; matchBlocks = { gitlab-sue = lib.hm.dag.entryBefore [ "*" ] { hostname = "gitlab.com"; identityFile = "~/.ssh/sue_ed25519"; identitiesOnly = true; }; github = 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"; }; }; }; 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); "syncthing/config.xml".source = ./syncthing.xml; }; userDirs = { enable = true; music = "${homeDirectory}/sync/Music"; }; desktopEntries.firefox-sue = { categories = [ "Network" "WebBrowser" ]; exec = "firefox -P sue --name firefox %U"; genericName = "Web Browser"; icon = "firefox"; mimeType = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ]; name = "Firefox | Sue"; startupNotify = true; terminal = false; type = "Application"; }; }; }