feat: develpment environment module
This should remove the necessity of dot013/shell and dot013/environment
This commit is contained in:
@@ -88,5 +88,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
homeManagerModules = {
|
||||
devenv = ./modules/home-manager/devenv.nix;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
home.homeDirectory = "/home/guz";
|
||||
|
||||
imports = [
|
||||
self.homeManagerModules.devenv
|
||||
|
||||
./desktop.nix
|
||||
./keymaps.nix
|
||||
|
||||
96
modules/home-manager/devenv.nix
Normal file
96
modules/home-manager/devenv.nix
Normal file
@@ -0,0 +1,96 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim"; # Default editor
|
||||
SHELL = lib.getExe config.programs.zsh.package;
|
||||
TERMINAL = lib.getExe config.programs.ghostty.package;
|
||||
};
|
||||
|
||||
# Local development shells
|
||||
programs.direnv.enable = true;
|
||||
programs.direnv.enableZshIntegration = true;
|
||||
programs.direnv.nix-direnv.enable = true;
|
||||
|
||||
# Ghostty (Terminal)
|
||||
programs.ghostty.enable = true;
|
||||
programs.ghostty.enableZshIntegration = true;
|
||||
|
||||
# Git
|
||||
programs.git.enable = true;
|
||||
programs.git.userEmail = "contact@guz.one";
|
||||
programs.git.userName = "Gustavo \"Guz\" L de Mello";
|
||||
programs.git.extraConfig = {
|
||||
credential.helper = "store";
|
||||
http.proxy = "";
|
||||
https.proxy = "";
|
||||
signing.singByDefault = true;
|
||||
};
|
||||
|
||||
# Better git diff
|
||||
programs.git.delta.enable = true;
|
||||
|
||||
# GPG Keyring
|
||||
programs.gpg.enable = true;
|
||||
programs.gpg.mutableKeys = true;
|
||||
programs.gpg.mutableTrust = true;
|
||||
|
||||
services.gpg-agent.enable = true;
|
||||
services.gpg-agent.enableZshIntegration = true;
|
||||
services.gpg-agent.defaultCacheTtl = 3600 * 24;
|
||||
services.gpg-agent.pinentryPackage = pkgs.pinentry-gtk2;
|
||||
|
||||
# Git TUI
|
||||
programs.lazygit.enable = true;
|
||||
programs.lazygit.settings = {
|
||||
git.paging.colorArg = "always";
|
||||
git.paging.pager = "${lib.getExe config.programs.git.delta.package} --dark --paging=never";
|
||||
};
|
||||
|
||||
# Neovim (Code editor)
|
||||
programs.neovim.enable = true;
|
||||
# programs.neovim.package = pkgs.callPackage ../../packages/nvim/neovim.nix {
|
||||
# go-grip = inputs.go-grip.packages.${pkgs.system}.default;
|
||||
# yazi = config.programs.yazi.package;
|
||||
# };
|
||||
|
||||
# Shell decoration
|
||||
programs.starship.enable = true;
|
||||
programs.starship.enableZshIntegration = true;
|
||||
|
||||
# SSH
|
||||
programs.ssh.enable = true;
|
||||
programs.ssh.matchBlocks = {
|
||||
"battleship" = {
|
||||
hostname = "battleship";
|
||||
user = "${config.home.username}";
|
||||
identitiesOnly = true;
|
||||
identityFile = "${config.home.homeDirectory}/home/battleship";
|
||||
extraOptions = {RequestTTY = "yes";};
|
||||
};
|
||||
"fithter" = {
|
||||
hostname = "fighter";
|
||||
user = "${config.home.username}";
|
||||
identitiesOnly = true;
|
||||
identityFile = "${config.home.homeDirectory}/home/fighter";
|
||||
extraOptions = {RequestTTY = "yes";};
|
||||
};
|
||||
};
|
||||
|
||||
# Yazi (File manager)
|
||||
programs.yazi.enable = true;
|
||||
programs.yazi.enableZshIntegration = true;
|
||||
|
||||
# Zellij (Terminal multiplexer)
|
||||
programs.zellij.enable = true;
|
||||
programs.zellij.enableZshIntegration = true;
|
||||
|
||||
# Default shell
|
||||
programs.zsh.enable = true;
|
||||
programs.zsh.autosuggestion.enable = true;
|
||||
programs.zsh.enableCompletion = true;
|
||||
}
|
||||
Reference in New Issue
Block a user