blob: 690b226e883d2c5dadef98d19d1de5ed92c4400c [file] [log] [blame]
Skyler Grey252927a2022-10-18 22:18:15 +01001{ pkgs
2, home
3, username
4, fzf-tab
5, ...
Skyler Greya2dca222022-09-02 00:02:49 +01006}: {
Skyler Grey32e31052023-04-06 18:04:26 +00007 config.programs.zsh.enable = true;
Skyler Greya2dca222022-09-02 00:02:49 +01008 home = {
9 programs.zsh = {
10 enable = true;
Skyler Grey934f1422022-09-04 11:50:04 +010011 plugins = [
12 {
13 name = "fzf-tab";
14 src = fzf-tab;
15 }
16 ];
Skyler Greya2dca222022-09-02 00:02:49 +010017 oh-my-zsh = {
18 enable = true;
Skyler Grey252927a2022-10-18 22:18:15 +010019 plugins = [ "git" ];
Skyler Greya2dca222022-09-02 00:02:49 +010020 theme = "crunch";
21 };
22 history = {
23 size = 10000;
24 path = "${home.xdg.dataHome}/zsh/history";
25 expireDuplicatesFirst = true;
26 extended = true;
27 };
28 initExtra = ''
Skyler Grey9f68e082022-10-31 00:16:15 +000029 unset __HM_SESS_VARS_SOURCED
30 . "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
31
Skyler Greya2dca222022-09-02 00:02:49 +010032 bindkey -v
33 bindkey "\'\'$\{key[Up]}" up-line-or-search
34
Skyler Greya2dca222022-09-02 00:02:49 +010035 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
Skyler Greyf8f06532022-11-04 10:58:38 +000036 typeset -gA ZSH_HIGHLIGHT_STYLES
Skyler Greya2dca222022-09-02 00:02:49 +010037 ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
38
39
40 if [[ $SHLVL != "1" ]]; then
41 export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%} '
42 fi
43
44 function tempd {
45 cd "$(mktemp -d)"
46 }
47
48 # disable sort when completing `git checkout`
49 zstyle ':completion:*:git-checkout:*' sort false
50 # set descriptions format to enable group support
51 zstyle ':completion:*:descriptions' format '[%d]'
52 # set list-colors to enable filename colorizing
53 zstyle ':completion:*' list-colors ''${(s.:.)LS_COLORS}
54 # preview directory's content with exa when completing cd
55 zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 -l --color=always $realpath'
56 # switch group using `,` and `.`
57 zstyle ':fzf-tab:*' switch-group ',' '.'
Skyler Grey934f1422022-09-04 11:50:04 +010058 enable-fzf-tab
Skyler Greya2dca222022-09-02 00:02:49 +010059
60 alias compinit="true"
Skyler Grey65e23692022-09-09 23:14:03 +010061
Skyler Grey9f68e082022-10-31 00:16:15 +000062 ulimit -n 131072
63
Skyler Grey65e23692022-09-09 23:14:03 +010064 source "${./zsh/completions/bun.zsh}"
Skyler Greyb3504ab2022-10-31 00:09:02 +000065 source "${./zsh/completions/charm.zsh}"
Skyler Greyf957c5a2023-02-19 22:21:02 +000066
67 setopt HIST_IGNORE_SPACE
Skyler Greya2dca222022-09-02 00:02:49 +010068 '';
69 enableSyntaxHighlighting = true;
70 enableAutosuggestions = true;
71 autocd = true;
72 dotDir = ".config/zsh";
73 };
74
Skyler Grey934f1422022-09-04 11:50:04 +010075 home = {
76 shellAliases = {
77 ":q" = "exit";
Skyler Grey04122e82022-10-30 23:13:01 +000078 "q" = "exit";
Skyler Grey934f1422022-09-04 11:50:04 +010079 };
Skyler Grey252927a2022-10-18 22:18:15 +010080 packages = [ pkgs.fzf ];
Skyler Greya2dca222022-09-02 00:02:49 +010081 };
82 };
Skyler Grey252927a2022-10-18 22:18:15 +010083 config.environment.persistence."/nix/persist".users.${username}.directories = [ ".local/share/zsh" ];
Skyler Greya2dca222022-09-02 00:02:49 +010084}