summaryrefslogtreecommitdiff
path: root/shared/nixos-and-darwin/common-shell-settings/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'shared/nixos-and-darwin/common-shell-settings/default.nix')
-rw-r--r--shared/nixos-and-darwin/common-shell-settings/default.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/shared/nixos-and-darwin/common-shell-settings/default.nix b/shared/nixos-and-darwin/common-shell-settings/default.nix
new file mode 100644
index 0000000..982296d
--- /dev/null
+++ b/shared/nixos-and-darwin/common-shell-settings/default.nix
@@ -0,0 +1,44 @@
+# This module sets options to ensure a consistent Baseline Shell Experince™
+# across the entire fleet. This includes e.g. common utilities and aliases.
+#
+# NOTE: This lives under `shared/nixos-and-darwin`. The configuration in here
+# should be compatible with both nixos and nix-darwin!!
+{pkgs, ...}: {
+ # Set ZSH as the shell.
+ # https://nixos.wiki/wiki/Command_Shell#Changing_default_shelltrue
+ programs.zsh.enable = true;
+ environment.shells = [pkgs.zsh];
+
+ # Very basic system administration tools.
+ environment.systemPackages = with pkgs; [
+ curl
+ jq
+ moreutils
+ neovim
+ tree
+ ];
+
+ # Aliases that are burned into my muscle memory.
+ environment.shellAliases = {
+ "mv" = "mv -i";
+ "rm" = "rm -i";
+ "cp" = "cp -i";
+ "ls" = "ls -F -G -A --color=auto";
+ "grep" = "grep --color=auto";
+ "file" = "file --no-dereference";
+ "tree" = "tree --dirsfirst --gitignore";
+
+ # See: https://github.com/NixOS/nix/issues/5858
+ "nix" = "nix --print-build-logs";
+
+ ".." = "cd ../";
+ "..." = "cd ../../";
+ "...." = "cd ../../../";
+ "....." = "cd ../../../../";
+ "......" = "cd ../../../../../";
+ "......." = "cd ../../../../../../";
+ "........" = "cd ../../../../../../../";
+ "........." = "cd ../../../../../../../../";
+ ".........." = "cd ../../../../../../../../../";
+ };
+}