2020-11-11 08:15:50 -05:00
|
|
|
{ config, pkgs, ... }:
|
|
|
|
{
|
|
|
|
# Let Home Manager install and manage itself.
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
|
|
|
|
# Home Manager needs a bit of information about you and the
|
|
|
|
# paths it should manage.
|
|
|
|
home.username = builtins.getEnv "USER";
|
|
|
|
home.homeDirectory = builtins.getEnv "HOME";
|
|
|
|
|
2020-11-15 09:50:49 -05:00
|
|
|
xdg.configFile."starship.toml".source = ./home/.config/starship.toml;
|
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
cmake
|
|
|
|
direnv
|
|
|
|
docker
|
|
|
|
docker-compose
|
|
|
|
git
|
|
|
|
htop
|
|
|
|
pinentry
|
|
|
|
ripgrep
|
|
|
|
sqlite
|
2020-11-17 17:34:43 -05:00
|
|
|
wakatime
|
2020-11-15 09:50:49 -05:00
|
|
|
((emacsPackagesNgGen emacs).emacsWithPackages (epkgs: [
|
|
|
|
epkgs.vterm
|
|
|
|
]))
|
|
|
|
|
2020-11-11 08:15:50 -05:00
|
|
|
];
|
|
|
|
|
|
|
|
programs = {
|
|
|
|
zsh = {
|
|
|
|
enable = true;
|
|
|
|
enableAutosuggestions = true;
|
|
|
|
enableCompletion = true;
|
|
|
|
oh-my-zsh = {
|
|
|
|
enable = true;
|
|
|
|
plugins = [
|
2020-11-17 17:34:43 -05:00
|
|
|
"direnv"
|
2020-11-15 09:50:49 -05:00
|
|
|
"docker"
|
2020-11-11 08:15:50 -05:00
|
|
|
"git"
|
|
|
|
"ssh-agent"
|
|
|
|
"tmux"
|
|
|
|
];
|
|
|
|
};
|
2020-11-15 09:50:49 -05:00
|
|
|
sessionVariables = {
|
|
|
|
EDITOR = "vim";
|
2020-11-11 08:15:50 -05:00
|
|
|
};
|
2020-11-15 09:50:49 -05:00
|
|
|
};
|
|
|
|
starship.enable = true;
|
2020-11-11 08:15:50 -05:00
|
|
|
git = {
|
|
|
|
enable = true;
|
|
|
|
userName = "James Walker";
|
|
|
|
userEmail = "walkah@walkah.net";
|
|
|
|
|
|
|
|
signing = {
|
|
|
|
key = "8896FEC44D47A81C";
|
|
|
|
signByDefault = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
gpg = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
default-key = "8896FEC44D47A81C";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
tmux = {
|
|
|
|
enable = true;
|
2020-11-15 09:50:49 -05:00
|
|
|
extraConfig = ''
|
|
|
|
set -g status-bg black
|
|
|
|
set -g status-fg white
|
|
|
|
'';
|
|
|
|
newSession = true;
|
|
|
|
shortcut = "o";
|
|
|
|
terminal = "screen-256color";
|
2020-11-11 08:15:50 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
vim = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
services = {
|
2020-11-15 09:50:49 -05:00
|
|
|
lorri.enable = true;
|
|
|
|
gpg-agent = {
|
|
|
|
enable = true;
|
|
|
|
enableSshSupport = true;
|
|
|
|
extraConfig = ''
|
|
|
|
allow-emacs-pinentry
|
|
|
|
allow-loopback-pinentry
|
|
|
|
'';
|
|
|
|
};
|
2020-11-11 08:15:50 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
# 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.03";
|
|
|
|
}
|