get started with home-manager and nix

This commit is contained in:
willemml 2022-12-02 19:48:46 -08:00
commit 0452ac1eb2
Signed by: willemml
GPG key ID: C3DE5DF6198DACBD
7 changed files with 1791 additions and 0 deletions

7
configs/emacs.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
programs.emacs = {
enable = true;
};
}

20
configs/git.nix Normal file
View file

@ -0,0 +1,20 @@
{ pkgs, ... }:
{
programs.git = {
enable = true;
delta = {
enable = true;
};
signing = {
gpgPath = "/opt/homebrew/bin/gpg";
key = "C3DE5DF6198DACBD";
signByDefault = true;
};
extraConfig.init.defaultBranch = "master";
extraConfig.core.autocrlf = false;
package = pkgs.gitAndTools.gitFull;
userName = "willemml";
userEmail = "willem@leit.so";
};
}

17
configs/gpg.nix Normal file
View file

@ -0,0 +1,17 @@
{ config, ... }:
{
programs.gpg = {
enable = true;
homedir = "${config.home.homeDirectory}/.gnupg";
settings = {
use-agent = true;
default-key = "860B5C62BF1FCE4272D26BF8C3DE5DF6198DACBD";
};
};
services.gpg-agent = {
enable = false;
enableZshIntegration = true;
pinentryFlavor = "mac";
};
}

8
configs/main.nix Normal file
View file

@ -0,0 +1,8 @@
{
imports = [
./emacs.nix
./git.nix
./gpg.nix
./zsh.nix
];
}

1664
configs/p10k-config/p10k.zsh Normal file

File diff suppressed because it is too large Load diff

41
configs/zsh.nix Normal file
View file

@ -0,0 +1,41 @@
{ pkgs, ... }:
{
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
enableCompletion = true;
enableSyntaxHighlighting = true;
enableVteIntegration = true;
autocd = true;
defaultKeymap = "emacs";
dirHashes = {
docs = "$HOME/Documents";
appsup = "$HOME/Library/Application Support";
dls = "$HOME/Downloads";
ubc = "$HOME/Documents/school/ubc";
};
dotDir = ".config/zsh";
history = {
path = "$HOME/.local/zsh/history";
extended = true;
ignoreDups = true;
};
plugins = with pkgs; [
{
name = "powerlevel10k";
src = pkgs.zsh-powerlevel10k;
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
}
{
name = "powerlevel10k-config";
src = lib.cleanSource ./p10k-config;
file = "p10k.zsh";
}
];
};
}

34
home.nix Normal file
View file

@ -0,0 +1,34 @@
{ config, pkgs, ... }:
{
imports = [
./configs/main.nix
];
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "22.05";
home.username = "willem";
home.homeDirectory = "/Users/willem";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
nix = {
package = pkgs.nix;
settings.experimental-features = [ "nix-command" ];
};
home.packages = with pkgs; [
htop
wget
texlive.combined.scheme-full
];
}