nix/modules/home-manager/common.nix

119 lines
2.5 KiB
Nix
Raw Normal View History

2023-10-05 13:43:28 -05:00
{
pkgs,
lib,
system,
inputs,
outputs,
2024-02-21 20:10:10 -06:00
config,
2023-10-05 13:43:28 -05:00
...
}: {
# TODO: fonts? right now they are only handled at the nixos-level (desktop-usage module)
# TODO: wallpaper?
imports = with outputs.homeManagerModules; [
2023-10-05 13:43:28 -05:00
# nix-colors.homeManagerModules.default
fish
2023-11-07 21:30:26 -06:00
bat
helix
git
zellij
broot
2023-11-21 18:27:53 -06:00
nnn
2023-11-29 21:27:15 -06:00
htop
2023-11-01 11:07:55 -05:00
tmux
2023-10-05 13:43:28 -05:00
];
2024-01-19 09:40:57 -06:00
programs.home-manager.enable = true;
2024-03-24 20:39:24 -05:00
services.ssh-agent.enable = true;
2023-10-05 13:43:28 -05:00
home = {
2024-01-04 17:20:02 -06:00
username = lib.mkDefault "lytedev";
homeDirectory = lib.mkDefault "/home/lytedev";
2023-10-05 13:43:28 -05:00
stateVersion = lib.mkDefault "23.11";
2023-10-06 01:34:46 -05:00
sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "less";
MANPAGER = "less";
};
2023-10-05 13:43:28 -05:00
packages = [
# tools I use when editing nix code
pkgs.nil
pkgs.alejandra
2024-01-04 17:20:02 -06:00
# common scripts
2023-10-05 13:43:28 -05:00
(pkgs.buildEnv {
name = "my-scripts-common";
paths = [./scripts/common];
})
];
};
2024-01-02 18:54:46 -06:00
# TODO: not common?
# programs.password-store = {
# enable = true;
# package = pkgs.pass.withExtensions (exts: [exts.pass-otp]);
# };
2023-10-05 13:43:28 -05:00
2024-01-02 18:54:46 -06:00
# programs.gitui = {
# enable = true;
# };
2023-10-05 13:43:28 -05:00
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.eza = {
enable = true;
2023-10-18 09:14:19 -05:00
package = inputs.nixpkgs.legacyPackages.${system}.eza;
2023-10-05 13:43:28 -05:00
};
programs.skim = {
2023-11-09 15:41:27 -06:00
# https://github.com/lotabout/skim/issues/494
enable = false;
enableFishIntegration = true;
defaultOptions = ["--no-clear-start" "--color=16"];
};
2024-02-21 20:10:10 -06:00
programs.atuin = {
enable = true;
enableBashIntegration = config.programs.bash.enable;
enableFishIntegration = config.programs.fish.enable;
enableZshIntegration = config.programs.zsh.enable;
enableNushellIntegration = config.programs.nushell.enable;
2024-02-21 23:47:45 -06:00
flags = [
"--disable-up-arrow"
];
2024-02-21 20:10:10 -06:00
settings = {
2024-02-21 22:59:49 -06:00
auto_sync = true;
sync_frequency = "1m";
sync_address = "https://atuin.h.lyte.dev";
keymap_mode = "vim-insert";
2024-02-21 20:10:10 -06:00
};
};
2023-11-09 15:41:27 -06:00
programs.fzf = {
# using good ol' fzf until skim sucks less out of the box I guess
2023-10-05 13:43:28 -05:00
enable = true;
2024-02-21 20:10:10 -06:00
# enableFishIntegration = true;
2023-11-09 16:55:01 -06:00
# defaultCommand = "fd --type f";
# defaultOptions = ["--height 40%"];
# fileWidgetOptions = ["--preview 'head {}'"];
2023-10-05 13:43:28 -05:00
};
2024-01-02 18:54:46 -06:00
# TODO: regular cron or something?
2023-10-05 13:43:28 -05:00
programs.nix-index = {
enable = true;
2024-02-21 20:33:50 -06:00
enableBashIntegration = config.programs.bash.enable;
enableFishIntegration = config.programs.fish.enable;
enableZshIntegration = config.programs.zsh.enable;
};
2023-10-05 13:43:28 -05:00
}