blob: eb50e71289c60e3a16b4563b39e05dae76e2821a [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}: {
7 home = {
8 programs.zsh = {
9 enable = true;
Skyler Grey934f1422022-09-04 11:50:04 +010010 plugins = [
11 {
12 name = "fzf-tab";
13 src = fzf-tab;
14 }
15 ];
Skyler Greya2dca222022-09-02 00:02:49 +010016 oh-my-zsh = {
17 enable = true;
Skyler Grey252927a2022-10-18 22:18:15 +010018 plugins = [ "git" ];
Skyler Greya2dca222022-09-02 00:02:49 +010019 theme = "crunch";
20 };
21 history = {
22 size = 10000;
23 path = "${home.xdg.dataHome}/zsh/history";
24 expireDuplicatesFirst = true;
25 extended = true;
26 };
27 initExtra = ''
Skyler Grey9f68e082022-10-31 00:16:15 +000028 unset __HM_SESS_VARS_SOURCED
29 . "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
30
Skyler Greya2dca222022-09-02 00:02:49 +010031 bindkey -v
32 bindkey "\'\'$\{key[Up]}" up-line-or-search
33
Skyler Greya2dca222022-09-02 00:02:49 +010034 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
Skyler Greyf8f06532022-11-04 10:58:38 +000035 typeset -gA ZSH_HIGHLIGHT_STYLES
Skyler Greya2dca222022-09-02 00:02:49 +010036 ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
37
38
39 if [[ $SHLVL != "1" ]]; then
40 export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%} '
41 fi
42
43 function tempd {
44 cd "$(mktemp -d)"
45 }
46
47 # disable sort when completing `git checkout`
48 zstyle ':completion:*:git-checkout:*' sort false
49 # set descriptions format to enable group support
50 zstyle ':completion:*:descriptions' format '[%d]'
51 # set list-colors to enable filename colorizing
52 zstyle ':completion:*' list-colors ''${(s.:.)LS_COLORS}
53 # preview directory's content with exa when completing cd
54 zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 -l --color=always $realpath'
55 # switch group using `,` and `.`
56 zstyle ':fzf-tab:*' switch-group ',' '.'
Skyler Grey934f1422022-09-04 11:50:04 +010057 enable-fzf-tab
Skyler Greya2dca222022-09-02 00:02:49 +010058
59 alias compinit="true"
Skyler Grey65e23692022-09-09 23:14:03 +010060
Skyler Grey9f68e082022-10-31 00:16:15 +000061 ulimit -n 131072
62
Skyler Grey65e23692022-09-09 23:14:03 +010063 source "${./zsh/completions/bun.zsh}"
Skyler Greyb3504ab2022-10-31 00:09:02 +000064 source "${./zsh/completions/charm.zsh}"
Skyler Greyf957c5a2023-02-19 22:21:02 +000065
66 setopt HIST_IGNORE_SPACE
Skyler Greya2dca222022-09-02 00:02:49 +010067 '';
68 enableSyntaxHighlighting = true;
69 enableAutosuggestions = true;
70 autocd = true;
71 dotDir = ".config/zsh";
72 };
73
Skyler Grey934f1422022-09-04 11:50:04 +010074 home = {
75 shellAliases = {
76 ":q" = "exit";
Skyler Grey04122e82022-10-30 23:13:01 +000077 "q" = "exit";
Skyler Grey934f1422022-09-04 11:50:04 +010078 };
Skyler Grey252927a2022-10-18 22:18:15 +010079 packages = [ pkgs.fzf ];
Skyler Greya2dca222022-09-02 00:02:49 +010080 };
81 };
Skyler Grey252927a2022-10-18 22:18:15 +010082 config.environment.persistence."/nix/persist".users.${username}.directories = [ ".local/share/zsh" ];
Skyler Greya2dca222022-09-02 00:02:49 +010083}