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`.
|
2021-11-29 09:56:24 +00:00
|
|
|
{ config, options, lib, pkgs, ... }:
|
|
|
|
|
2022-01-09 05:38:59 +00:00
|
|
|
let cfg = config.profiles.dev;
|
2021-12-11 05:16:45 +00:00
|
|
|
in {
|
2022-01-09 05:38:59 +00:00
|
|
|
options.profiles.dev = {
|
2021-12-26 08:02:57 +00:00
|
|
|
enable =
|
|
|
|
lib.mkEnableOption "foo-dogsquared's user-specific development setup";
|
2021-12-11 05:16:45 +00:00
|
|
|
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";
|
2021-12-11 05:16:45 +00:00
|
|
|
};
|
2021-11-29 09:56:24 +00:00
|
|
|
|
2021-12-11 05:16:45 +00:00
|
|
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
|
|
|
({
|
|
|
|
home.packages = with pkgs; [
|
2023-05-27 09:47:16 +00:00
|
|
|
dasel # Universal version of jq.
|
2021-12-11 05:16:45 +00:00
|
|
|
gopass # An improved version of the password manager for hipsters.
|
2023-05-27 09:47:16 +00:00
|
|
|
lf # File manager in the terminal, really.
|
|
|
|
moar # More 'more'.
|
2022-10-13 10:32:47 +00:00
|
|
|
perl534Packages.vidir # Bulk rename for your organizing needs in the terminal.
|
2021-12-13 07:20:34 +00:00
|
|
|
tealdeer # An easy cop-out for basic help.
|
2021-11-29 09:56:24 +00:00
|
|
|
|
2021-12-11 05:16:45 +00:00
|
|
|
# Coreutils replacement.
|
|
|
|
fd # Oh nice, a more reliable `find`.
|
|
|
|
ripgrep # On nice, a more reliable `grep`.
|
|
|
|
exa # Oh nice, a shinier `ls`.
|
|
|
|
];
|
2023-04-20 06:57:41 +00:00
|
|
|
|
2023-06-23 09:12:31 +00:00
|
|
|
# Git interface for the lazy who cannot be asked to add hunks properly.
|
|
|
|
programs.lazygit = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
gui = {
|
|
|
|
expandFocusedSidePanel = true;
|
|
|
|
showBottomLine = false;
|
|
|
|
skipRewordInEditorWarning = true;
|
|
|
|
theme = {
|
|
|
|
selectedLineBgColor = [ "reverse" ];
|
|
|
|
selectedRangeBgColor = [ "reverse" ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
notARepository = "skip";
|
|
|
|
};
|
|
|
|
};
|
2023-06-23 09:12:10 +00:00
|
|
|
|
|
|
|
# A fuzzy finder that enables fuzzy finding not furry finding, a common misconception.
|
|
|
|
programs.fzf = let
|
|
|
|
fd = "${lib.getBin pkgs.fd}/bin/fd";
|
|
|
|
in {
|
|
|
|
enable = true;
|
|
|
|
changeDirWidgetCommand = "${fd} --type d";
|
|
|
|
defaultCommand = "${fd} --type f";
|
|
|
|
};
|
|
|
|
|
2023-05-02 04:34:12 +00:00
|
|
|
# dog > sky dog > cat.
|
2023-04-20 06:57:41 +00:00
|
|
|
programs.bat = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
pager = "${lib.getBin pkgs.moar}/bin/moar";
|
|
|
|
theme = "base16";
|
|
|
|
style = "plain";
|
|
|
|
};
|
|
|
|
};
|
2023-06-23 09:12:43 +00:00
|
|
|
|
|
|
|
# Modern tmux? Yeah, modern tmux! For layout configurations, they are
|
|
|
|
# more individualized so just set your home-manager users individually
|
|
|
|
# with those. pls?
|
|
|
|
programs.zellij = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
mouse_mode = false;
|
|
|
|
copy_on_select = false;
|
|
|
|
pane_frames = false;
|
|
|
|
};
|
|
|
|
};
|
2021-12-11 05:16:45 +00:00
|
|
|
})
|
2021-11-29 09:56:24 +00:00
|
|
|
|
2021-12-11 05:16:45 +00:00
|
|
|
(lib.mkIf cfg.shell.enable {
|
2022-07-05 22:37:32 +00:00
|
|
|
programs.bash = {
|
|
|
|
enable = true;
|
2022-11-26 06:13:59 +00:00
|
|
|
historyControl = [ "erasedups" "ignoredups" "ignorespace" ];
|
2022-07-05 22:37:32 +00:00
|
|
|
historyIgnore = [
|
|
|
|
"cd"
|
|
|
|
"exit"
|
|
|
|
"lf"
|
|
|
|
"ls"
|
|
|
|
"nvim"
|
|
|
|
];
|
|
|
|
};
|
2022-10-13 10:32:47 +00:00
|
|
|
|
2022-11-06 09:38:51 +00:00
|
|
|
# Supercharging your shell history. Just don't forget to flush them out
|
|
|
|
# before doing questionable things.
|
2022-07-14 00:04:24 +00:00
|
|
|
programs.atuin = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
search_mode = "fuzzy";
|
|
|
|
filter_mode = "global";
|
|
|
|
};
|
|
|
|
};
|
2022-10-13 10:32:47 +00:00
|
|
|
|
2022-11-06 09:38:51 +00:00
|
|
|
# virtualenv but for anything else.
|
2021-12-11 05:16:45 +00:00
|
|
|
programs.direnv = {
|
|
|
|
enable = true;
|
2022-10-18 11:52:30 +00:00
|
|
|
config.global = {
|
|
|
|
load_dotenv = true;
|
|
|
|
strict_env = true;
|
|
|
|
};
|
2021-12-11 05:16:45 +00:00
|
|
|
nix-direnv.enable = true;
|
|
|
|
};
|
2022-02-02 04:25:03 +00:00
|
|
|
|
2022-11-06 09:38:51 +00:00
|
|
|
# Learn teleportation in the filesystem.
|
2022-10-13 10:32:47 +00:00
|
|
|
programs.zoxide.enable = true;
|
2022-11-06 09:38:51 +00:00
|
|
|
|
|
|
|
# Some lazy bastard's shell prompt configuration.
|
2021-12-11 05:16:45 +00:00
|
|
|
programs.starship = {
|
|
|
|
enable = true;
|
2022-06-09 05:00:07 +00:00
|
|
|
settings = {
|
|
|
|
add_newline = false;
|
|
|
|
hostname = {
|
|
|
|
ssh_only = false;
|
|
|
|
trim_at = "";
|
|
|
|
};
|
|
|
|
};
|
2021-12-11 05:16:45 +00:00
|
|
|
};
|
|
|
|
})
|
2022-02-02 04:25:03 +00:00
|
|
|
|
|
|
|
(lib.mkIf cfg.extras.enable {
|
|
|
|
home.packages = with pkgs; [
|
2023-05-02 04:34:12 +00:00
|
|
|
act # Test your CI without embarrassing yourself repeatedly pushing into GitHub repos.
|
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.
|
2022-10-13 10:32:47 +00:00
|
|
|
hut # So you don't have to see much of Sourcehut's brutalist design, I guess.
|
2023-05-02 04:34:12 +00:00
|
|
|
hyperfine # Making sure your apps are not just fine but REEEEEEAAAAALY fine.
|
2022-04-30 12:30:22 +00:00
|
|
|
irssi # Communicate in the terminal like a normal person.
|
2023-05-02 04:33:15 +00:00
|
|
|
license-cli # A nice generator template for license files.
|
2023-05-02 04:34:12 +00:00
|
|
|
tree-sitter # The modern way of text highlighting.
|
2022-06-12 05:48:24 +00:00
|
|
|
treefmt # I like the tagline of this tool: "One CLI for formatting your code tree." (It rhymes somewhat.)
|
2023-03-09 03:44:21 +00:00
|
|
|
zenith # Very fanciful system dashboard.
|
2022-02-02 04:25:03 +00:00
|
|
|
];
|
|
|
|
})
|
2021-12-11 05:16:45 +00:00
|
|
|
]);
|
2021-11-29 09:56:24 +00:00
|
|
|
}
|