blob: e04c9db9957602e665e9bf96687f564e48a31152 [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.vscode.enable = true;
programs.vscode.package = pkgs.vscode-fhs;
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; [
steam-tui steam-run
minecraft
git-crypt gnupg pinentry_qt
spotify
keepassxc
grim slurp
neovim helix
qemu
bind
file
nur.repos.kira-bruneau.rofi-wayland
rofimoji
anytype-latest
htop
hue-cli
comma
zip
mindustry-alpha-wayland
nodejs-17_x
];
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" "$@";
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;
};
};
xdg.mime.defaultApplications = {
"text/html" = "chromium-browser.desktop";
"x-scheme-handler/http" = "chromium-browser.desktop";
"x-scheme-handler/https" = "chromium-browser.desktop";
"x-scheme-handler/about" = "chromium-browser.desktop";
"x-scheme-handler/unknown" = "chromium-browser.desktop";
};
environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
# 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;
}