zsh: migrate config to home-manager module
All checks were successful
Check flake / build-amd64-linux (push) Successful in 4m0s
All checks were successful
Check flake / build-amd64-linux (push) Successful in 4m0s
This commit is contained in:
parent
84bbcdfa4b
commit
fd57c04419
@ -1,34 +0,0 @@
|
|||||||
source $ZDOTDIR/config.zsh
|
|
||||||
|
|
||||||
if [ ! -d "$ZGEN_DIR" ]; then
|
|
||||||
echo "Installing jandamm/zgenom"
|
|
||||||
git clone https://github.com/jandamm/zgenom "$ZGEN_DIR"
|
|
||||||
fi
|
|
||||||
source $ZGEN_DIR/zgenom.zsh
|
|
||||||
|
|
||||||
zgenom autoupdate
|
|
||||||
|
|
||||||
if ! zgenom saved; then
|
|
||||||
echo "Initializing zgenom"
|
|
||||||
rm -f $ZDOTDIR/*.zwc(N) \
|
|
||||||
$XDG_CACHE_HOME/zsh/*(N) \
|
|
||||||
$ZGEN_INIT.zwc
|
|
||||||
|
|
||||||
zgenom load junegunn/fzf shell
|
|
||||||
zgenom load zdharma-continuum/fast-syntax-highlighting
|
|
||||||
zgenom load zsh-users/zsh-completions src
|
|
||||||
zgenom load zsh-users/zsh-history-substring-search
|
|
||||||
zgenom load softmoth/zsh-vim-mode
|
|
||||||
|
|
||||||
zgenom save
|
|
||||||
zgenom compile $ZDOTDIR
|
|
||||||
fi
|
|
||||||
|
|
||||||
## Bootstrap interactive sessions
|
|
||||||
if [[ $TERM != dumb ]]; then
|
|
||||||
autoload -Uz compinit && compinit -u -d $ZSH_CACHE/zcompdump
|
|
||||||
|
|
||||||
source $ZDOTDIR/keybinds.zsh
|
|
||||||
source $ZDOTDIR/completion.zsh
|
|
||||||
source $ZDOTDIR/aliases.zsh
|
|
||||||
fi
|
|
@ -1,25 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Verbose file operations
|
|
||||||
alias \
|
|
||||||
cp="cp -iv" \
|
|
||||||
mv="mv -iv" \
|
|
||||||
rm="rm -v" \
|
|
||||||
mkdir="mkdir -v"
|
|
||||||
|
|
||||||
# Colorize commands
|
|
||||||
alias \
|
|
||||||
ls="ls -h --color=auto --group-directories-first"
|
|
||||||
|
|
||||||
# Abbreviations
|
|
||||||
alias \
|
|
||||||
e="$EDITOR" \
|
|
||||||
f="$FILE" \
|
|
||||||
g="git" \
|
|
||||||
m="neomutt" \
|
|
||||||
n="$FILE" \
|
|
||||||
v="$EDITOR"
|
|
||||||
|
|
||||||
# XDG fixes
|
|
||||||
alias \
|
|
||||||
mbsync="mbsync -c $XDG_CONFIG_HOME/isync/mbsyncrc -a"
|
|
@ -1,6 +0,0 @@
|
|||||||
fpath+=( $ZDOTDIR/completions )
|
|
||||||
|
|
||||||
# Don't offer history completion; we have fzf, C-r, and
|
|
||||||
# zsh-history-substring-search for that.
|
|
||||||
ZSH_AUTOSUGGEST_STRATEGY=(completion)
|
|
||||||
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=30
|
|
@ -1,99 +0,0 @@
|
|||||||
####
|
|
||||||
## zsh configuration
|
|
||||||
####
|
|
||||||
|
|
||||||
## Colors
|
|
||||||
autoload -U colors && colors
|
|
||||||
|
|
||||||
## Completion
|
|
||||||
setopt HASH_LIST_ALL
|
|
||||||
unsetopt AUTO_NAME_DIRS
|
|
||||||
autoload -Uz compinit
|
|
||||||
zstyle ':completion:*' menu select
|
|
||||||
zmodload zsh/complist
|
|
||||||
compinit
|
|
||||||
_comp_options+=(globdots) # Include hidden files
|
|
||||||
|
|
||||||
## Directories
|
|
||||||
setopt AUTO_PUSHD
|
|
||||||
setopt CDABLE_VARS
|
|
||||||
setopt PUSHD_IGNORE_DUPS
|
|
||||||
setopt PUSHD_SILENT
|
|
||||||
setopt PUSHD_TO_HOME
|
|
||||||
unsetopt AUTO_CD
|
|
||||||
|
|
||||||
## Expansion and globbing
|
|
||||||
setopt EXTENDED_GLOB
|
|
||||||
unsetopt GLOB_DOTS
|
|
||||||
unsetopt NOMATCH
|
|
||||||
|
|
||||||
## History
|
|
||||||
HISTFILE="${XDG_DATA_HOME:-${HOME}/.local/share}/zsh/history"
|
|
||||||
HISTSIZE=1000000
|
|
||||||
SAVEHIST=1000000
|
|
||||||
[[ !( -f "${HISTFILE}" ) ]] && mkdir -p $(dirname ${HISTFILE})
|
|
||||||
|
|
||||||
setopt APPEND_HISTORY
|
|
||||||
setopt BANG_HIST
|
|
||||||
setopt EXTENDED_HISTORY
|
|
||||||
setopt HIST_IGNORE_ALL_DUPS
|
|
||||||
setopt HIST_IGNORE_DUPS
|
|
||||||
setopt HIST_IGNORE_SPACE
|
|
||||||
setopt HIST_SAVE_NO_DUPS
|
|
||||||
setopt HIST_VERIFY
|
|
||||||
setopt INC_APPEND_HISTORY_TIME
|
|
||||||
setopt SHARE_HISTORY
|
|
||||||
|
|
||||||
## I/O
|
|
||||||
setopt INTERACTIVE_COMMENTS
|
|
||||||
setopt MULTIOS
|
|
||||||
unsetopt CLOBBER
|
|
||||||
|
|
||||||
## Jobs
|
|
||||||
setopt LONG_LIST_JOBS
|
|
||||||
setopt AUTO_RESUME
|
|
||||||
unsetopt BG_NICE
|
|
||||||
unsetopt NOTIFY
|
|
||||||
unsetopt HUP
|
|
||||||
unsetopt CHECK_JOBS
|
|
||||||
|
|
||||||
## Shell emulation
|
|
||||||
setopt APPEND_CREATE
|
|
||||||
|
|
||||||
## Prompt
|
|
||||||
PS1="%B%{$fg[magenta]%}%~%{$reset_color%} $%b "
|
|
||||||
|
|
||||||
## Window title
|
|
||||||
precmd () { print -Pn "\e]0;%n@%m: %~\a" }
|
|
||||||
preexec () { print -Pn "\e]0;%n@%m: $1\a" }
|
|
||||||
|
|
||||||
## Vi mode
|
|
||||||
bindkey -v
|
|
||||||
export KEYTIMEOUT=1
|
|
||||||
|
|
||||||
## Zsh line editor
|
|
||||||
unsetopt BEEP
|
|
||||||
|
|
||||||
|
|
||||||
####
|
|
||||||
## Plugins
|
|
||||||
####
|
|
||||||
|
|
||||||
export ZGEN_AUTOLOAD_COMPINIT=0
|
|
||||||
|
|
||||||
# zsh-vim-mode
|
|
||||||
export MODE_INDICATOR=""
|
|
||||||
export MODE_CURSOR_VIINS="#b77ee0 blinking bar"
|
|
||||||
export MODE_CURSOR_REPLACE="$MODE_CURSOR_VIINS #ff3334"
|
|
||||||
export MODE_CURSOR_VICMD="#b77ee0 block"
|
|
||||||
export MODE_CURSOR_SEARCH="#e7c547 steady underline"
|
|
||||||
export MODE_CURSOR_VISUAL="$MODE_CURSOR_VICMD steady bar"
|
|
||||||
export MODE_CURSOR_VLINE="$MODE_CURSOR_VISUAL #54ced6"
|
|
||||||
|
|
||||||
# fzf
|
|
||||||
if (( $+commands[fd] )); then
|
|
||||||
export FZF_DEFAULT_OPTS="--reverse --ansi"
|
|
||||||
export FZF_DEFAULT_COMMAND="fd ."
|
|
||||||
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
|
||||||
export FZF_ALT_C_COMMAND="fd -t d . $HOME"
|
|
||||||
fi
|
|
@ -19,42 +19,137 @@ in
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.zsh;
|
||||||
|
|
||||||
programs.zsh = {
|
home.programs = {
|
||||||
|
zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
autocd = true;
|
||||||
|
autosuggestion = {
|
||||||
|
enable = true;
|
||||||
|
strategy = [ "completion" ];
|
||||||
|
};
|
||||||
|
dotDir = ".config/zsh";
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
enableGlobalCompInit = false;
|
enableVteIntegration = true;
|
||||||
promptInit = "";
|
|
||||||
|
history = {
|
||||||
|
append = true;
|
||||||
|
extended = true;
|
||||||
|
ignoreAllDups = true;
|
||||||
|
ignoreDups = true;
|
||||||
|
ignoreSpace = true;
|
||||||
|
save = 1000000;
|
||||||
|
size = 1000000;
|
||||||
|
};
|
||||||
|
|
||||||
|
historySubstringSearch = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
initExtra = ''
|
||||||
|
## Directories
|
||||||
|
setopt AUTO_PUSHD
|
||||||
|
setopt CDABLE_VARS
|
||||||
|
setopt PUSHD_IGNORE_DUPS
|
||||||
|
setopt PUSHD_SILENT
|
||||||
|
setopt PUSHD_TO_HOME
|
||||||
|
|
||||||
|
## Expansion and globbing
|
||||||
|
setopt EXTENDED_GLOB
|
||||||
|
unsetopt GLOB_DOTS
|
||||||
|
unsetopt NOMATCH
|
||||||
|
|
||||||
|
## History
|
||||||
|
setopt BANG_HIST
|
||||||
|
setopt HIST_VERIFY
|
||||||
|
setopt INC_APPEND_HISTORY_TIME
|
||||||
|
|
||||||
|
## I/O
|
||||||
|
setopt INTERACTIVE_COMMENTS
|
||||||
|
setopt MULTIOS
|
||||||
|
unsetopt CLOBBER
|
||||||
|
|
||||||
|
## Jobs
|
||||||
|
setopt LONG_LIST_JOBS
|
||||||
|
setopt AUTO_RESUME
|
||||||
|
unsetopt BG_NICE
|
||||||
|
unsetopt NOTIFY
|
||||||
|
unsetopt HUP
|
||||||
|
unsetopt CHECK_JOBS
|
||||||
|
|
||||||
|
## Shell emulation
|
||||||
|
setopt APPEND_CREATE
|
||||||
|
|
||||||
|
## Prompt
|
||||||
|
PS1="%B%{$fg[magenta]%}%~%{$reset_color%} $%b "
|
||||||
|
|
||||||
|
## Vi mode
|
||||||
|
bindkey -v
|
||||||
|
export KEYTIMEOUT=1
|
||||||
|
|
||||||
|
## Zsh line editor
|
||||||
|
unsetopt BEEP
|
||||||
|
'';
|
||||||
|
|
||||||
|
initExtraBeforeCompInit = ''
|
||||||
|
setopt HASH_LIST_ALL
|
||||||
|
'';
|
||||||
|
|
||||||
|
plugins = with pkgs; [
|
||||||
|
{
|
||||||
|
name = "fast-syntax-highlighting";
|
||||||
|
src = zsh-fast-syntax-highlighting;
|
||||||
|
file = "share/zsh/site-functions/fast-syntax-highlighting.plugin.zsh";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "zsh-vi-mode";
|
||||||
|
src = zsh-vi-mode;
|
||||||
|
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
MODE_INDICATOR = "";
|
||||||
|
MODE_CURSOR_VIINS = "#b77ee0 blinking bar";
|
||||||
|
MODE_CURSOR_REPLACE = "$MODE_CURSOR_VIINS #ff3334";
|
||||||
|
MODE_CURSOR_VICMD = "#b77ee0 block";
|
||||||
|
MODE_CURSOR_SEARCH = "#e7c547 steady underline";
|
||||||
|
MODE_CURSOR_VISUAL = "$MODE_CURSOR_VICMD steady bar";
|
||||||
|
MODE_CURSOR_VLINE = "$MODE_CURSOR_VISUAL #54ced6";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
# Verbose file operations
|
||||||
|
cp = "cp -iv";
|
||||||
|
mv = "mv -iv";
|
||||||
|
rm = "rm -v";
|
||||||
|
mkdir = "mkdir -v";
|
||||||
|
|
||||||
|
# Colorize commands
|
||||||
|
ls = "ls -h --collor=auto --group-directories-first";
|
||||||
|
|
||||||
|
# Abbreviations
|
||||||
|
e = "$EDITOR";
|
||||||
|
f = "$FILE";
|
||||||
|
g = "git";
|
||||||
|
m = "neomutt";
|
||||||
|
n = "$FILE";
|
||||||
|
v = "$EDITOR";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
package = pkgs.unstable.fzf;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
user.packages = with pkgs; [
|
user.packages = with pkgs; [
|
||||||
fd
|
fd
|
||||||
unstable.fzf
|
|
||||||
jq
|
jq
|
||||||
nix-zsh-completions
|
nix-zsh-completions
|
||||||
nnn
|
nnn
|
||||||
ripgrep
|
ripgrep
|
||||||
zsh
|
|
||||||
];
|
];
|
||||||
|
|
||||||
env = {
|
|
||||||
ZDOTDIR = "$XDG_CONFIG_HOME/zsh";
|
|
||||||
ZSH_CACHE = "$XDG_CACHE_HOME/zsh";
|
|
||||||
ZGEN_DIR = "$XDG_DATA_HOME/zgenom";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.configFile = {
|
|
||||||
"zsh/.zshrc".source = ./.zshrc;
|
|
||||||
"zsh/aliases.zsh".source = ./aliases.zsh;
|
|
||||||
"zsh/completion.zsh".source = ./completion.zsh;
|
|
||||||
"zsh/config.zsh".source = ./config.zsh;
|
|
||||||
"zsh/keybinds.zsh".source = ./keybinds.zsh;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.userActivationScripts.cleanupZgen = ''
|
|
||||||
rm -rf $ZDOTDIR/.*.zwc
|
|
||||||
rm -f $ZDOTDIR/.zcompdump
|
|
||||||
rm -rf $ZSH_CACHE
|
|
||||||
rm -fv $ZGEN_DIR/init.zsh{,.zwc}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
####
|
|
||||||
## Keybindings
|
|
||||||
####
|
|
||||||
stty stop undef
|
|
||||||
bindkey -s '^f' 'cd "$(dirname "$(fzf)")"\n'
|
|
||||||
|
|
||||||
bindkey -M vicmd 'k' history-substring-search-up
|
|
||||||
bindkey -M vicmd 'j' history-substring-search-down
|
|
||||||
|
|
||||||
if (( $+commands[fzf] )); then
|
|
||||||
bindkey '^R' fzf-history-widget
|
|
||||||
fi
|
|
Loading…
x
Reference in New Issue
Block a user