home

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit ae9bab469d1e702c61ca7eb5f3cd4ed01665d620
parent 13c095fefc5d7ad6a4ca24cc7060ef79ca2a376f
Author: Vincent Demeester <vincent@sbr.pm>
Date:   Fri, 28 Jun 2019 14:35:01 +0200

profiles.zsh: add zsh-z and j function

Signed-off-by: Vincent Demeester <vincent@sbr.pm>

Diffstat:
Amodules/profiles/assets/zsh/j | 30++++++++++++++++++++++++++++++
Mmodules/profiles/zsh.nix | 26+++++++++++++++++---------
2 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/modules/profiles/assets/zsh/j b/modules/profiles/assets/zsh/j @@ -0,0 +1,30 @@ +local root=~/src/github.com/ +local res results args + +while getopts "np" opt; do + if [[ $opt = "?" ]]; then + print -r -- "$myname: unrecognized option: -$OPTARG" >&2 + return 1 + fi + eval "opt_$opt=\${OPTARG:--\$opt}" +done +(( OPTIND > 1 )) && shift $(( OPTIND - 1 )) + +local fnd=$1 +type -f zshz 2>/dev/null >/dev/null || opt_n=true + +if [[ -n ${fnd} ]];then + + [[ -z ${opt_n} ]] && { + local zz=$(zshz -e ${fnd}) + [[ -n ${zz} ]] && { echo "ZSHZ: ${zz}"; [[ -z ${opt_p} ]] && cd ${zz}; return;} + } + + local results=($(fd -d 2 -t d . ${root}|egrep -i "${fnd}")) + [[ ${#results} == 1 ]] && { echo ${results}; [[ -z ${opt_p} ]] && cd ${results} ; return;} + [[ ${#results} == 0 ]] && { echo "No results found for ${fnd}"; return 1;} + args="-q ${fnd}" +fi + +res=$(fd -d 2 -t d . ${root}|sed "s,${root},,"|fzf --height 50% --border ${args}) +[[ -n ${res} ]] && {echo ${root}${res}; [[ -z ${opt_p} ]] && cd ${root}${res} ; } diff --git a/modules/profiles/zsh.nix b/modules/profiles/zsh.nix @@ -19,6 +19,7 @@ in home.packages = with pkgs; [ zsh-syntax-highlighting ]; + home.file.".config/zsh/functions/j".source = ./assets/zsh/j; programs.zsh = { enable = true; dotDir = ".config/zsh"; @@ -45,7 +46,16 @@ in rev = "26e2d67d566bfcc741891c8e063a00e0674abc92"; sha256 = "0n88w4k5vaz1iyikpmlzdrrkxmfn91x5s4q405k1fxargr1w6bmx"; }; - } + } + { + name = "zsh-z"; + src = pkgs.fetchFromGitHub { + owner = "agkozak"; + repo = "zsh-z"; + rev = "5b903f8f5489783ee2a4af668a941b7d9a02efc9"; + sha256 = "07h6ksiqgqyf5m84hv5xf4jcqrl8q1cj8wd4z52cjmy82kk10fkn"; + }; + } { name = "async"; src = pkgs.fetchFromGitHub { @@ -54,7 +64,7 @@ in rev = "v1.7.0"; sha256 = "1jbbypgn0r4pilhv2s2p11vbkkvlnf75wrhxfcvr7bfjpzyp9wbc"; }; - } + } { name = "pure"; src = pkgs.fetchFromGitHub { @@ -63,9 +73,12 @@ in rev = "v1.10.3"; sha256 = "0zjgnlw01ri0brx108n6miw4y0cxd6al1bh28m8v8ygshm94p1zx"; }; - } + } ]; initExtra = '' + path+="$HOME/${config.programs.zsh.dotDir}/functions" + fpath+="$HOME/${config.programs.zsh.dotDir}/functions" + for func ($HOME/${config.programs.zsh.dotDir}/functions) autoload -U $func/*(x:t) IS_SERIAL=0 case $TTY in /dev/ttyS[0-9]*|/dev/ttyUSB[0-9]*) @@ -86,7 +99,6 @@ in ZSH_HIGHLIGHT_PATTERNS+=('rm -fR *' 'fg=white,bold,bg=red') ZSH_HIGHLIGHT_PATTERNS+=('rm -fr *' 'fg=white,bold,bg=red') # prompt - autoload -Uz promptinit; promptinit PURE_CMD_MAX_EXEC_TIME=10 zstyle :prompt:pure:path color white PURE_PROMPT_SYMBOL='λ' @@ -98,7 +110,7 @@ in PURE_PROMPT_SYMBOL='>' prompt_pure_set_title() {} fi - prompt pure + zstyle ':completion:*' menu select ''; profileExtra = '' if [ -e /home/vincent/.nix-profile/etc/profile.d/nix.sh ]; then . /home/vincent/.nix-profile/etc/profile.d/nix.sh; fi @@ -109,10 +121,6 @@ in enable = true; enableZshIntegration = true; }; - programs.z-lua = { - enable = true; - enableZshIntegration = true; - }; } (mkIf config.profiles.emacs.enable { /*programs.zsh.initExtra = ''