nix/modules/home-manager/common.nix

114 lines
2.3 KiB
Nix

{
pkgs,
lib,
system,
inputs,
outputs,
config,
...
}: {
imports = with outputs.homeManagerModules; [
# nix-colors.homeManagerModules.default
fish
bat
helix
git
zellij
broot
nnn
htop
tmux
];
programs.home-manager.enable = true;
# services.ssh-agent.enable = true;
home = {
username = lib.mkDefault "lytedev";
homeDirectory = lib.mkDefault "/home/lytedev";
stateVersion = lib.mkDefault "23.11";
sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "less";
MANPAGER = "less";
};
packages = with pkgs; [
# tools I use when editing nix code
nil
alejandra
gnupg
(pkgs.buildEnv {
name = "my-common-scripts";
paths = [./scripts/common];
})
];
};
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.eza = {
enable = true;
package = inputs.nixpkgs.legacyPackages.${system}.eza;
};
programs.skim = {
# https://github.com/lotabout/skim/issues/494
enable = false;
enableFishIntegration = true;
defaultOptions = ["--no-clear-start" "--color=16"];
};
programs.atuin = {
enable = true;
enableBashIntegration = config.programs.bash.enable;
enableFishIntegration = config.programs.fish.enable;
enableZshIntegration = config.programs.zsh.enable;
enableNushellIntegration = config.programs.nushell.enable;
flags = [
"--disable-up-arrow"
];
settings = {
auto_sync = true;
sync_frequency = "1m";
sync_address = "https://atuin.h.lyte.dev";
keymap_mode = "vim-insert";
inline_height = 10;
show_preview = true;
sync = {
records = true;
};
dotfiles = {
enabled = true;
};
};
};
programs.fzf = {
# using good ol' fzf until skim sucks less out of the box I guess
enable = true;
# enableFishIntegration = true;
# defaultCommand = "fd --type f";
# defaultOptions = ["--height 40%"];
# fileWidgetOptions = ["--preview 'head {}'"];
};
# TODO: regular cron or something?
programs.nix-index = {
enable = true;
enableBashIntegration = config.programs.bash.enable;
enableFishIntegration = config.programs.fish.enable;
enableZshIntegration = config.programs.zsh.enable;
};
}