summary refs log tree commit diff stats
path: root/user/modules
diff options
context:
space:
mode:
Diffstat (limited to 'user/modules')
-rw-r--r--user/modules/zsh.nix68
1 files changed, 67 insertions, 1 deletions
diff --git a/user/modules/zsh.nix b/user/modules/zsh.nix
index be545635..9ace6f75 100644
--- a/user/modules/zsh.nix
+++ b/user/modules/zsh.nix
@@ -3,7 +3,6 @@
 {
   home.file = {
     ".rm_recycle_home".text = ""; # use trash automatically in home directory
-    ".zshenv".text = builtins.readFile ../zsh/.zshenv;
   };
   home.packages = with pkgs; [
     fzf
@@ -17,4 +16,71 @@
     recursive = true;
     source = ../zsh/.config/zsh;
   };
+
+  programs.zsh = {
+    enable = true;
+
+    enableAutosuggestions = true;
+    enableCompletion = true;
+    defaultKeymap = "emacs";
+
+    dotDir = ".config/zsh";
+
+    history = {
+      expireDuplicatesFirst = true;
+      extended = true;
+      path = ".cache/zsh/history";
+      save = 20000;
+      size = 10000;
+    };
+
+    localVariables = {
+      ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=7";
+    };
+
+    # move to envExtra after 19.09
+    initExtra = ''
+      case $OSTYPE in
+        darwin*)
+          os=darwin
+          ;;
+        linux-gnu)
+          os=linux
+          ;;
+        freebsd*)
+          os=freebsd
+          ;;
+        *)
+          os=unknown
+          ;;
+      esac
+
+      case $MACHTYPE in
+        *64)
+          arch=amd64
+          ;;
+        *)
+          arch=386
+          ;;
+      esac
+      if [[ ''${path[(I)$HOME/.local/bin ]} ]]
+      then
+        path+=($HOME/.local/bin)
+      fi
+
+      if [[ ''${path[(I)$HOME/go/bin ]} ]]
+      then
+        path+=($HOME/go/bin)
+      fi
+
+      if [[ $HOST =~ satoshi ]]
+      then
+        EMAIL=alan@satoshipay.io
+      else
+        EMAIL=alan@alanpearce.eu
+      fi
+
+      export GHQ_ROOT="$HOME/projects:$HOME/go/src:$HOME/quicklisp/local-projects"
+    '' + builtins.readFile ../zsh/.config/zsh/.zshrc;
+  };
 }