nixos-config/modules/home-manager/profiles/dev.nix

62 lines
2.1 KiB
Nix
Raw Normal View History

2021-12-26 08:02:57 +00:00
# Arsenal for development (which is rare nowadays). ;p
# If you're looking for text editors, go to `./editors.nix`.
{ config, options, lib, pkgs, ... }:
let cfg = config.profiles.dev;
in {
options.profiles.dev = {
2021-12-26 08:02:57 +00:00
enable =
lib.mkEnableOption "foo-dogsquared's user-specific development setup";
shell.enable =
lib.mkEnableOption "configuration of foo-dogsquared's shell of choice";
2022-02-02 04:25:03 +00:00
extras.enable = lib.mkEnableOption "additional tools for development stuff";
};
config = lib.mkIf cfg.enable (lib.mkMerge [
({
home.packages = with pkgs; [
lazygit # Git interface for the lazy.
fzf # A fuzzy finder that enables fuzzy finding not furry finding, a common misconception.
gopass # An improved version of the password manager for hipsters.
perl534Packages.vidir # Bulk rename for your organizing needs.
zellij # A modern tmux?
2021-12-13 07:20:34 +00:00
tealdeer # An easy cop-out for basic help.
lf # File manager in the terminal, really.
# Coreutils replacement.
fd # Oh nice, a more reliable `find`.
ripgrep # On nice, a more reliable `grep`.
exa # Oh nice, a shinier `ls`.
bat # dog > bat > cat
];
})
(lib.mkIf cfg.shell.enable {
2022-05-20 06:47:09 +00:00
programs.atuin.enable = true;
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.zoxide.enable = true;
2022-02-02 04:25:03 +00:00
# Enable Starship prompt.
programs.starship = {
enable = true;
settings = { add_newline = false; };
};
})
2022-02-02 04:25:03 +00:00
(lib.mkIf cfg.extras.enable {
home.packages = with pkgs; [
tree-sitter # The modern way of text highlighting.
hyperfine # Command-line profiling.
2022-04-30 12:30:22 +00:00
github-cli # So you don't have to use much of GitHub on the site, I guess.
hut # Easier interfacing with Sourcehut.
act # Test your CI without embarrassing yourself pushing into upstream.
irssi # Communicate in the terminal like a normal person.
hexchat # Communicate on the desktop like an insane person.
2022-02-02 04:25:03 +00:00
];
})
]);
}