blob: a807cd1be5860af5b47db39c4ad8049f26e5bc58 [file] [log] [blame]
{ config, pkgs, nixpkgs, ... }:
let
username = "minion";
homedir = "/home/${username}";
comma = import ( pkgs.fetchFromGitHub {
owner = "nix-community";
repo = "comma";
rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
}) {};
in {
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = username;
home.homeDirectory = homedir;
programs.go.enable = true;
# programs.steam.enable = true;
programs.gpg.enable = true;
services.gpg-agent = {
enable = true;
pinentryFlavor = "qt";
};
nixpkgs.overlays = [
(import ./overlays/anytype.nix)
(import ./overlays/mindustry.nix)
(import ./overlays/nur.nix)
];
home.packages = with pkgs; [
];
programs.zsh = {
enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" ];
theme = "crunch";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
expireDuplicatesFirst = true;
extended = true;
};
initExtra = ''
bindkey "\'\'$\{key[Up]}" up-line-or-search
command_not_found_handler ()
{
# echo "Command '$1' not found, searching for it in the Nix store..."
# , $@
local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
"$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
if [ $? = 126 ]; then
"$@";
else
return 127;
fi;
else
echo "$1: command not found" 1>&2;
return 127;
fi
}
'';
enableSyntaxHighlighting = true;
enableAutosuggestions = true;
autocd = true;
dotDir = ".local/share/zsh";
};
programs.git = {
enable = true;
userName = "Skyler Turner";
userEmail = "skyler@clicksminuteper.net";
signing = {
key = "24D31D3B1B986F33";
signByDefault = true;
gpgPath = "gpg2";
};
lfs.enable = true;
delta.enable = true;
extraConfig = {
init.defaultBranch = "development";
color.ui = "auto";
core.autocrlf = "input";
pull.rebase = false;
};
};
# 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 = "21.11";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}