diff options
Diffstat (limited to 'nix/profiles/home-manager/zsh.nix')
-rw-r--r-- | nix/profiles/home-manager/zsh.nix | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/nix/profiles/home-manager/zsh.nix b/nix/profiles/home-manager/zsh.nix new file mode 100644 index 0000000..e704870 --- /dev/null +++ b/nix/profiles/home-manager/zsh.nix @@ -0,0 +1,46 @@ +{ config, pkgs, ... }: +{ + home.packages = with pkgs; [ zsh-completions ]; + + programs.zsh = { + enable = true; + dotDir = ".config/zsh"; + + defaultKeymap = "emacs"; + enableCompletion = true; + enableAutosuggestions = true; + + history = { + size = 500000; + save = 500000; + extended = true; + ignoreSpace = true; + ignoreDups = true; + share = true; + # see + # https://github.com/nix-community/home-manager/blob/32a7da69dc53c9eb5ad0675eb7fdc58f7fe35272/modules/programs/zsh.nix#L537 + path = "${config.xdg.dataHome}/zsh/zsh_history"; + }; + + localVariables = { + # Print timing statistics for everything which takes longer than + # 5 seconds of user + system time. + REPORTTIME = 5; + }; + + shellAliases = { + ll = "ls -l --color=auto"; + lt = "ls -ltrh --color=auto"; + la = "ls -ltrha --color=auto"; + pkgsearch = "nix search nixpkgs"; + flup = "nix flake update --commit-lock-file"; + emacsrescue = "pkill -SIGUSR2 -i emacs"; # then `M-x toggle-debug-on-quit` + }; + + oh-my-zsh = { + enable = true; + plugins = [ "git" ]; + theme = "robbyrussell"; + }; + }; +} |