blob: e29dbb37b554c4f20189f22bcd17378ce9771d51 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#+title: ZSH Configuration
Open =zsh= configuration.
#+begin_src nix
{ config, pkgs, ... }:
{
programs.zsh = {
enable = true;
#+end_src
Automatically =cd= if only the path is used.
#+begin_src nix
autocd = true;
#+end_src
Enable auto-suggestions.
#+begin_src nix
autosuggestion = {
enable = true;
};
#+end_src
Use =vi= keybindings.
#+begin_src nix
defaultKeymap = "emacs";
#+end_src
Append to the history and ignore duplicates.
#+begin_src nix
history = {
append = true;
ignoreAllDups = true;
};
#+end_src
Specify =ls= aliases.
#+begin_src nix
shellAliases = {
"ll" = "ls -alF";
"la" = "ls -a";
"l" = "ls -F";
"sl" = "ls";
};
#+end_src
Enable syntax highlighting.
#+begin_src nix
syntaxHighlighting.enable = true;
#+end_src
Load extra code.
#+begin_src nix
initExtra = ''
#+end_src
Configure Homebrew =llvm=.
#+begin_src sh
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
export CC='/opt/homebrew/opt/llvm/bin/clang'
export CXX="$CC++"
export LDFLAGS="$LDFLAGS -L/opt/homebrew/opt/llvm/lib"
export CPPFLAGS="$CPPFLAGS -I/opt/homebrew/opt/llvm/include"
#+end_src
Create potential aliases and create the prompt.
#+begin_src sh
which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s"
which eza &> /dev/null && alias ls=eza
#+end_src
Set up fuzzy finder.
#+begin_src sh
which zsh &> /dev/null && source <(fzf --zsh)
#+end_src
Create the prompt.
#+begin_src sh
parse_git_dirty() {
git_status="$(git status 2> /dev/null)"
[[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f"
[[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f"
[[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f"
[[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f"
}
setopt prompt_subst
autoload -Uz vcs_info
precmd () { vcs_info }
zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main)
PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ '
#+end_src
Close the extra code block.
#+begin_src nix
'';
#+end_src
Load =.profile= code.
#+begin_src nix
profileExtra = ''
#+end_src
Launch =ssh-agent= at login.
#+begin_src sh
if [ ! -S ~/.ssh/ssh_auth_sock ]; then
eval `ssh-agent` > /dev/null
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
#+end_src
Close =.profile= code.
#+begin_src nix
'';
#+end_src
Close =zsh= configuration.
#+begin_src nix
};
}
#+end_src
|