diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..59f7980 --- /dev/null +++ b/home.nix @@ -0,0 +1,68 @@ +{ config, pkgs, lib, ... }: +let inherit (lib) hm; +in +{ + programs.git = { + enable = true; + userName = "Leonora Tindall"; + userEmail = "nora@nora.codes"; + delta.enable = true; + extraConfig = { + init.defaultBranch = "main"; + }; + }; + + programs.zsh = { + enable = true; + enableAutosuggestions = true; + enableCompletion = true; + enableVteIntegration = true; + }; + + home.packages = with pkgs; [ + htop + wget + ripgrep + bat + fd + neofetch + dfc + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # env vars + home.sessionVariables = {}; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + + # Basic information + home.username = "nora"; + home.homeDirectory = "/home/nora"; + home.stateVersion = "23.11"; + + # Because we're on Debian + targets.genericLinux.enable = true; + + # Because we're on KDE; this refreshes the icon cache and .desktop file cache + home.activation.updateKdeIconCache = hm.dag.entryAfter [ "installPackages" ] '' + run /usr/bin/kbuildsycoca5 --noincremental + ''; + + # Because I want Firefox + nixpkgs.config.allowUnfree = true; +}