{ pkgs, config, lib, inputs, self-overlay, ... }: with lib; let cfg = config.eboskma.users.erwin; in { home-manager.users.erwin = { _module.args.flake-inputs = inputs; programs.home-manager.enable = true; programs.command-not-found.enable = true; home.username = "erwin"; home.homeDirectory = "/home/erwin"; home.sessionVariables = { EDITOR = "${config.home-manager.users.erwin.eboskma.programs.emacs.package}/bin/emacsclient -c"; }; nixpkgs.config.allowUnfree = true; home.stateVersion = "23.05"; eboskma = { programs = { atuin.enable = true; bat.enable = true; emacs = { enable = true; # package = with pkgs; ((emacsPackagesFor emacsPgtk).emacsWithPackages (epkgs: [ epkgs.emacsql epkgs.emacsql-sqlite ])); package = pkgs.emacsUnstablePgtk.override { treeSitterPlugins = builtins.attrValues (filterAttrs (_: isDerivation) pkgs.tree-sitter-grammars); }; daemon = true; }; electron = { enable = true; wayland = true; }; firefox = { enable = true; work = config.eboskma.base.work; }; fish.enable = true; foot = { enable = true; server = false; }; git = { enable = true; name = "Erwin Boskma"; email = "erwin@datarift.nl"; # signingKey = "EE7ADEFE1D943C7B"; signingKey = "~/.ssh/id_ed25519"; signingKeyFormat = "ssh"; }; gpg.enable = true; neovim.enable = true; nushell.enable = true; rofi = { enable = true; package = pkgs.rofi-wayland; terminal = config.home-manager.users.erwin.wayland.windowManager.sway.config.terminal; }; ssh.enable = true; starship.enable = true; sway.enable = true; swaynotificationcenter.enable = true; waybar.enable = true; }; }; home.packages = with pkgs; [ atool bottom fd gnome.nautilus imagemagick imv iotop libnotify mpv nordzy-cursor-theme quintom-cursor-theme procs ripgrep units unzip xdg-utils wl-clipboard zeal ]; xdg = { enable = true; mime.enable = true; mimeApps = { enable = true; defaultApplications = { "x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/https" = "firefox.desktop"; "x-scheme-handler/chrome" = "firefox.desktop"; "x-scheme-handler/terminal" = "${cfg.terminal}.desktop"; "text/html" = "firefox.desktop"; "application/x-extension-htm" = "firefox.desktop"; "application/x-extension-html" = "firefox.desktop"; "application/x-extension-shtml" = "firefox.desktop"; "application/xhtml+xml" = "firefox.desktop"; "application/x-extension-xhtml" = "firefox.desktop"; "application/x-extension-xht" = "firefox.desktop"; "application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop"; }; associations = { added = { "image/jpeg" = "imv.desktop"; "image/png" = "imv.desktop"; "image/gif" = "imv.desktop"; "application/zip" = "org.gnome.FileRoller.desktop"; }; }; }; userDirs = { enable = true; createDirectories = true; }; }; i18n.inputMethod = { enabled = "fcitx5"; fcitx5.addons = with pkgs; [ fcitx5-m17n fcitx5-gtk fcitx5-configtool ]; }; gtk = { enable = true; theme = { name = "Arc-Dark"; package = pkgs.arc-theme; }; iconTheme = { name = "Papirus-Dark"; package = pkgs.papirus-icon-theme; }; gtk3 = { bookmarks = [ "file:///home/erwin/workspace" ]; extraConfig = { gtk-application-prefer-dark-theme = 1; gtk-cursor-theme-name = "Nordzy-cursors"; }; }; gtk4.extraConfig = { gtk-application-prefer-dark-theme = 1; gtk-cursor-theme-name = "Nordzy-cursors"; }; }; imports = [ { nixpkgs.overlays = [ self-overlay inputs.ha-now-playing.overlays.${pkgs.system} inputs.pamedia.overlays.${pkgs.system} inputs.emacs-overlay.overlay ]; } ../../modules/options ] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules))); }; programs.bandwhich.enable = true; services.ddccontrol.enable = true; }