Compare commits

..

3 commits
master ... zim

Author SHA1 Message Date
crater2150 e18474d56b Fix quoting in fzf-widget settings, switch to active fork 2023-01-13 11:38:12 +01:00
crater2150 45678c7037 Migrate from zplug to zim 2022-12-13 17:43:38 +01:00
crater2150 92bc3d7f21 Add shome shortcuts 2022-12-13 16:45:40 +01:00
39 changed files with 140 additions and 460 deletions

View file

@ -1,6 +0,0 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace

7
.zimrc
View file

@ -1,4 +1,4 @@
zmodule jreese/zsh-titles -n titles zmodule jreese/zsh-titles
zmodule SmartFinn/fzf-widgets zmodule SmartFinn/fzf-widgets
zmodule crater2150-zsh/conf zmodule crater2150-zsh/conf
@ -6,11 +6,10 @@ zmodule crater2150-zsh/chroma-z
zmodule $ZDOTDIR/plugins/tmpsrc zmodule $ZDOTDIR/plugins/tmpsrc
zmodule $ZDOTDIR/plugins/pyenv zmodule $ZDOTDIR/plugins/pyenv
zmodule $ZDOTDIR/plugins/cs-java-home
zmodule $ZDOTDIR/plugins/highlight-config zmodule $ZDOTDIR/plugins/highlight-config
zmodule zsh-users/zsh-syntax-highlighting zmodule zsh-users/zsh-syntax-highlighting
zmodule ohmyzsh/ohmyzsh --root plugins/ng --fpath ./ zmodule ohmyzsh/ohmyzsh --root plugins/ng
zmodule carlosedp/mill-zsh-completions zmodule urbainvaes/fzf-marks

View file

@ -4,14 +4,9 @@ crater's zsh config
Installation: Installation:
------------- -------------
Set the `ZDOTDIR` environment variable to the directory of this repo. Note that From the checked out repo:
this environment variable must be set before the user configuration files of zsh
are read.
One way to do this is to set it in the global zsh configuration in
`/etc/zsh/zshenv`, e.g. to use the XDG basedir spec with this repo at
`~/.config/zsh`:
``` ```
export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}"/zsh ln -s $PWD/zshenv $HOME/.zshenv
``` ```
The zshenv file sets the location to the rest of the config (`$ZDOTDIR`)
automatically, based on the link target.

View file

@ -1,3 +0,0 @@
if exists /usr/bin/node && exists github-copilot-cli; then
eval "$(github-copilot-cli alias -- "$0")"
fi

10
aliases/fork_by_default Executable file
View file

@ -0,0 +1,10 @@
#!/bin/zsh
local forkprogs=(
geeqie
feh
)
for i in $forkprogs; do
alias $i="fork $i"
done

View file

@ -13,37 +13,25 @@ alias :q="exit"
alias rget="rsync -rP --append-verify --inplace" alias rget="rsync -rP --append-verify --inplace"
alias 7zu="7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on" alias 7zu="7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
alias cronmail="mutt -f $MAIL -F <(grep -v 'set folder' ~/.config/mutt/neomuttrc | grep -v 'mailboxes'; echo 'mailboxes $MAIL\nset folder=$MAIL')"
alias d="dragon-drop -a -x -T"
if ! command -v fd >/dev/null; then if ! command -v fd >/dev/null; then
if command -v fdfind >/dev/null; then
alias fd="fdfind"
else
fd() { fd() {
if [[ "$1" =~ "^-" ]]; then if [[ "$1" =~ "-*" ]]; then
echo "fd not installed. shell alias supports only basic operation" echo "fd not installed. shell alias supports only basic operation"
return 1 return 1
fi fi
noglob find . -iname "*${*}*" noglob find . -iname "*${*}*"
} }
fi fi
fi
alias sudo="sudo " alias sudo="sudo "
alias S='sudo $(history -n -1)' alias S='sudo $(history -n -1)'
alias rm="rm -I" alias rm="rm -I"
if exists rifle; then
alias v=rifle
else
function v() { function v() {
for file in $@; do for file in $@; do
xdg-open $file &| xdg-open $file &|
done done
} }
fi
alias vmemcache="vmtouch -l -m 12G -v" alias vmemcache="vmtouch -l -m 12G -v"
@ -52,8 +40,8 @@ fork() {
"$@" &>/dev/null &| "$@" &>/dev/null &|
} }
alias en="pipx run dict.cc.py de en" alias en="dict.cc.py de en"
alias de="pipx run dict.cc.py en de" alias de="dict.cc.py en de"
su() { su() {
if [[ -z "$@" ]]; then if [[ -z "$@" ]]; then
@ -92,7 +80,7 @@ E() {
# edit and refresh aliases # edit and refresh aliases
aliases() { aliases() {
$EDITOR $(zdotfile aliases/${1:-functions}) $EDITOR $(zdotfile aliases/${1:-functions})
source $(zdotfile aliases)/* . $(zdotfile aliases)/*
} }
# per directory configuration # per directory configuration
@ -115,7 +103,7 @@ cd(){
# count files in current or given directory # count files in current or given directory
count() { count() {
find $1 -mindepth 1 \( ! -path '*/.*' \) | wc -l find $1 \( ! -path '*/.*' \) | wc -l
} }
pumount() { pumount() {
@ -263,8 +251,7 @@ btrfs-subvolume-force-delete() {
# lazy shortcuts # lazy shortcuts
alias -g G="| grep" alias -g G="| grep"
alias -g L="| ${PAGER:-less}" alias -g L="| less"
alias -g LE="2>&1 | ${PAGER:-less}"
alias -g T="| tail" alias -g T="| tail"
# xclipboard # xclipboard
@ -323,64 +310,10 @@ alias luarocks="luarocks --local"
alias icat="kitty +kitten icat" alias icat="kitty +kitten icat"
local function hour-float-to-time() { # vim: foldmethod=marker
printf "%d:%02dh" $1 $(( $1 * 60 % 60 ))
}
batstat() {
for bat in /sys/class/power_supply/BAT*; do
local energy_full=$(<$bat/energy_full)
local energy_now=$(<$bat/energy_now)
local power_now=$(<$bat/power_now)
local bat_status=$(<$bat/status)
local remain_text
local remain
case $bat_status in
Charging)
remain=$(((energy_full - energy_now) / power_now))
remain_text=", $(hour-float-to-time $remain) until full"
;;
Discharging)
remain=$((energy_now / power_now))
remain_text=", $(hour-float-to-time $remain) left"
;;
*)
remain_text=""
;;
esac
printf "%s: %.1f %%, %s%s\n" \
${bat:t} \
$(( energy_now * 100.0 / energy_full )) \
$bat_status \
$remain_text
done
}
if [[ $DISPLAY ]] && exists xinput && exists xrandr && \
xinput | grep -q Wacom && xrandr | grep -q eDP1; then
xrandr() {
command xrandr $@
for dev in $(xinput | grep Wacom | grep -oP '(?<=id=)\d*'); do
xinput map-to-output $dev eDP1
done
}
fi
function lastdl() { function lastdl() {
echo ~/downloads/*(oc.[1]) echo ~/downloads/*(oc.[1])
} }
alias mpvu="noglob mpv" alias mpvu="noglob mpv"
# copilot
function gh-copilot-cli() {
local tpe="$1"; shift
gh copilot suggest -t $tpe "$*"
}
alias C="gh-copilot-cli shell"
alias Cgit="gh-copilot-cli git"
alias Cgh="gh-copilot-cli gh"
alias e="nvim -c 'lua require(\"telescope.builtin\").fd { cwd = require(\"findroot\")(require(\"telescope.utils\").buffer_dir()) } '"

View file

@ -47,7 +47,7 @@ gls() {
for i in $gitignore $globalgitignore; do for i in $gitignore $globalgitignore; do
if [[ -e $i ]]; then if [[ -e $i ]]; then
for ignore in "${(f)mapfile[$i]}"; do for ignore in "${(f)mapfile[$i]}"; do
ignores+="--ignore=${ignore%/}" ignores+="--ignore=$ignore"
done done
fi fi
done done

View file

@ -1,23 +1,5 @@
#!/bin/zsh #!/bin/zsh
mpd-host() {
case "$1" in
set)
echo "MPD_HOST='$2';MPD_PORT='$3'" > ~/.cache/mpd-host.zsh
;;
get)
if [ ! -f ~/.cache/mpd-host.zsh ]; then
echo "MPD_HOST='localhost';MPD_PORT='6600'" > ~/.cache/mpd-host.zsh
fi
cat ~/.cache/mpd-host.zsh
;;
*)
echo "Usage: mpd-host set HOST PORT"
echo " mpd-host get"
;;
esac
}
mpc() { mpc() {
eval $(mpd-host get) eval $(mpd-host get)
export MPD_HOST export MPD_HOST

View file

@ -1,4 +0,0 @@
#!/bin/zsh
matrix() {
curl --header "Authorization: Bearer $(pass servers/matrix/matrix.qwertyuiop.de_admintoken)" -X $1 "https://qwertyuiop.de:8448/${2#/}"
}

View file

@ -23,13 +23,11 @@ xqn() {
alias xfiles="xbps-query -f" alias xfiles="xbps-query -f"
xbps-install() { xbps-install() {
local logfile=$(mktemp) sudo script --return --quiet -c "/usr/bin/xbps-install $*" /dev/null \
sudo script --return --quiet -c "/usr/bin/xbps-install $*" $logfile | tee /dev/stderr \
local ret=$? | grep -oP ".*(?=: post-install message)" \
grep -oP ".*(?=: post-install message)" < $logfile \
| ifne xargs -L 1 xbps-query -p install-msg | ifne xargs -L 1 xbps-query -p install-msg
hash -r hash -r
return $ret
} }
xupdate() { xupdate() {
@ -41,7 +39,6 @@ xupdate() {
fi fi
else else
xbps-install -SA "$@" xbps-install -SA "$@"
xcheckupdates
fi fi
} }
@ -52,46 +49,25 @@ xowner() {
sv() { sv() {
command sv "$@" command sv "$@"
ret=$?
if [[ "$1" == "up" ]]; then if [[ "$1" == "up" ]]; then
shift shift
sleep 0.5 sleep 0.5
command sv check "$@" command sv check "$@"
fi fi
return $ret
} }
sv-manage() { sv-manage() {
local action service svdir
zparseopts -D -E d:=dir -dir:=dir
svdir=${dir[2]:-${SVDIR:-/var/service}}
if [[ -z $1 ]]; then
action=list
else
action=$1 action=$1
shift shift
fi
case "$action" in case "$action" in
add) add)
for service in "$@"; do for service in "$@"; do
ln -s ${SVDIR_TEMPLATES:-/etc/sv}/${service:s#/##} ${svdir} ln -s /etc/sv/${service:s#/##} /var/service
done done
;; ;;
remove|rm) remove|rm)
for service in "$@"; do for service in "$@"; do
rm ${svdir}/${service:s#/##} rm /var/service/${service:s#/##}
done
;;
list|ls)
sv status ${svdir}/* | sed "
s@${svdir}/@@
s@run@\x1b[1;92mrun\x1b[0m@g
s@down@\x1b[1;31mdown\x1b[0m@g
" | column -t
;;
status)
for service in ${SVDIR:-/var/service}/*/supervise; do
sv status ${service:h}
done done
;; ;;
esac esac

View file

@ -1,2 +0,0 @@
#!/bin/zsh
alias adb='HOME="$XDG_DATA_HOME"/android adb'

View file

@ -1,70 +0,0 @@
typeset -a __yank_buffer __cut_buffer
fyank() {
__yank_buffer=()
for i in "$@"; do
__yank_buffer+=("${i:a}")
done
}
fcut() {
__cut_buffer=()
for i in "$@"; do
__cut_buffer+=("${i:a}")
done
}
fyankadd() {
for i in "$@"; do
__yank_buffer+=("${i:a}")
done
}
fcutadd() {
for i in "$@"; do
__cut_buffer+=("${i:a}")
done
}
fpasteclear() {
__yank_buffer=()
__cut_buffer=()
}
fpastelist() {
if [[ -n $__yank_buffer ]]; then
echo "Copying ${#__yank_buffer[@]} files:"
printf " %s\n" ${__yank_buffer[@]}
fi
if [[ -n $__cut_buffer ]]; then
echo "Moving ${#__cut_buffer[@]} files"
printf " %s\n" ${__cut_buffer[@]}
fi
}
fpaste() {
if [[ -n $__yank_buffer ]]; then
echo "Copying ${#__yank_buffer[@]} files"
fi
if [[ -n $__cut_buffer ]]; then
echo "Moving ${#__cut_buffer[@]} files"
fi
if [[ -n $__cut_buffer || -n $__yank_buffer ]]; then
echo -n "Continue? [y/N] "
read -q || return
else
echo "Error: No files to paste. Use fyank or fcut first"
return 1
fi
local target=${1:-$PWD}
for file in "${__yank_buffer[@]}"; do
cp -r "$file" "$target"
done
for file in "${__cut_buffer[@]}"; do
mv "$file" "$target"
done
fpasteclear
}
# vim: set ft=zsh:

View file

@ -1,5 +1,4 @@
#!/bin/zsh #!/bin/zsh
fpath=( "${ZDOTDIR:+$ZDOTDIR/widgets}" $fpath )
bindkey -v bindkey -v
@ -32,9 +31,7 @@ bindkey " " magic-space # Do history expansion on space.
bindkey $'\177' backward-delete-char # backspace bindkey $'\177' backward-delete-char # backspace
bindkey $'\10' backward-delete-word # C-backspace bindkey $'\10' backward-delete-word # C-backspace
autoload -U edit-command-line-split bindkey -M vicmd ! edit-command-line-tmux
zle -N edit-command-line-split
bindkey -M vicmd ! edit-command-line-split
#unicode input #unicode input
autoload -U insert-unicode-char autoload -U insert-unicode-char

View file

@ -1,11 +1,3 @@
#compdef conf #compdef conf
_arguments "1:Commands:(${(k)conf_locations})"
_conf_locations() {
_alternative \
"configs:Configs:(${(k)conf_locations})" \
"dirs:XDG configs:_files -/ -W ${XDG_CONFIG_HOME:-$HOME/.config}/ -S '' -F '*/*'"
}
_conf_locations

View file

@ -1,6 +0,0 @@
#compdef _cs cs
function _cs {
eval "$(cs complete zsh-v1 $CURRENT $words[@])"
}

View file

@ -1,5 +0,0 @@
#compdef _scala-cli scala-cli
function _scala-cli {
eval "$(scala-cli complete zsh-v1 $CURRENT $words[@])"
}

View file

@ -1,7 +1,7 @@
#compdef sv #compdef sv
# completion for runit sv(1) # completion for runit sv(1)
# Leah Neukirchen <leah@vuxu.org> # Christian Neukirchen <chneukirchen@gmail.com>
# runit 2.1.1, services in /var/service are completed by default # runit 2.1.1, services in /var/service are completed by default
local ret=1 services local ret=1 services
@ -35,9 +35,7 @@ cmds)
check check
ret=0;; ret=0;;
args) args)
if [[ $BUFFER == "sudo "* if [[ $BUFFER == sudo* ]] then
|| $BUFFER == "doas "*
|| $BUFFER == "su "*-c* ]] then
services=( /var/service/*(-/N:t) ) services=( /var/service/*(-/N:t) )
else else
services=( ${SVDIR:-/var/service}/*(-/N:t) ) services=( ${SVDIR:-/var/service}/*(-/N:t) )

View file

@ -5,4 +5,4 @@ local context state line
_arguments \ _arguments \
"1:Action:(add rm remove)"\ "1:Action:(add rm remove)"\
"*:service:_files -W ${SVDIR_TEMPLATES:-/etc/sv}" "*:service:_files -W /etc/sv"

View file

@ -1,6 +1,5 @@
# autoload completions # autoload completions
fpath=( "${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions" "${ZDOTDIR:+$ZDOTDIR/compdef}" "/etc/zsh/compdef" $fpath ) fpath=( "${ZDOTDIR:+$ZDOTDIR/compdef}" "/etc/zsh/compdef" $fpath )
fpath=("$XDG_DATA_HOME/scalacli/completions/zsh" $fpath)
[[ -n $(echo /etc/zsh/compdef/*(N:t)) ]] && autoload -U /etc/zsh/compdef/*(N:t) [[ -n $(echo /etc/zsh/compdef/*(N:t)) ]] && autoload -U /etc/zsh/compdef/*(N:t)
[[ -n $(echo $ZDOTDIR/compdef/*(N:t)) ]] && autoload -U $ZDOTDIR/compdef/*(N:t) [[ -n $(echo $ZDOTDIR/compdef/*(N:t)) ]] && autoload -U $ZDOTDIR/compdef/*(N:t)

2
confs
View file

@ -11,7 +11,7 @@ nvim-plug $XDG_CONFIG_HOME/nvim/packages.vim
offlineimap $XDG_CONFIG_HOME/offlineimap/config offlineimap $XDG_CONFIG_HOME/offlineimap/config
qutebrowser $XDG_CONFIG_HOME/qutebrowser/ qutebrowser $XDG_CONFIG_HOME/qutebrowser/
qutebrowser-scripts $XDG_DATA_HOME/qutebrowser/userscripts qutebrowser-scripts $XDG_DATA_HOME/qutebrowser/userscripts
ssh $HOME/.ssh/ ssh $HOME/.ssh/config
vdirsyncer $XDG_CONFIG_HOME/vdirsyncer/config vdirsyncer $XDG_CONFIG_HOME/vdirsyncer/config
vim $XDG_CONFIG_HOME/vim vim $XDG_CONFIG_HOME/vim
xd $XDG_CONFIG_HOME/xd.conf xd $XDG_CONFIG_HOME/xd.conf

4
env/00_xdg.zsh vendored
View file

@ -1,4 +0,0 @@
XDG_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache}
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config}
XDG_DATA_HOME=${XDG_DATA_HOME:-${HOME}/.local/share}
XDG_STATE_HOME=${XDG_STATE_HOME:-${HOME}/.local/state}

19
env/01_xdg-fixes.zsh vendored
View file

@ -1,19 +0,0 @@
export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
export ANSIBLE_HOME="$XDG_DATA_HOME"/ansible
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
export CARGO_HOME="$XDG_DATA_HOME"/cargo
export ELINKS_CONFDIR="$XDG_CONFIG_HOME"/elinks
export GNUPGHOME=$XDG_CONFIG_HOME/gnupg
export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
export SQLITE_HISTORY="$XDG_CACHE_HOME"/sqlite_history
export TERMINFO="$XDG_DATA_HOME"/terminfo
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo
export TEXMFCONFIG=$XDG_CONFIG_HOME/texlive/texmf-config
export TEXMFHOME=$XDG_DATA_HOME/texmf
export TEXMFVAR=$XDG_CACHE_HOME/texlive/texmf-var
export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java"

13
env/15_basic.zsh vendored
View file

@ -1,13 +0,0 @@
local function first-command() {
while [[ -n $1 ]]; do
if command -v $1 > /dev/null; then
echo $1
return 0
fi
shift
done
return 1
}
export PAGER=${PAGER:-$(first-command nvimpager vimpager less)}
export MANPAGER=${PAGER}

View file

@ -1,3 +0,0 @@
if [[ -e $XDG_RUNTIME_DIR/podman/podman.sock ]]; then
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
fi

6
env/20_services.zsh vendored
View file

@ -1,9 +1,3 @@
if [[ $DISPLAY && $UID != 0 ]]; then if [[ $DISPLAY && $UID != 0 ]]; then
export SVDIR="$HOME/.local/session_service" export SVDIR="$HOME/.local/session_service"
export SVDIR_TEMPLATES="$HOME/.service-available"
elif [[ $UID != 0 ]]; then
export SVDIR=$HOME/.service
export SVDIR_TEMPLATES="$HOME/.service-available"
else
export SVDIR_TEMPLATES="/etc/sv"
fi fi

1
env/50_nodejs.zsh vendored
View file

@ -1,4 +1,3 @@
export NPM_PACKAGES="${XDG_DATA_HOME}/npm-packages" export NPM_PACKAGES="${XDG_DATA_HOME}/npm-packages"
export NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" export NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
export PATH="$PATH:$NPM_PACKAGES/bin" export PATH="$PATH:$NPM_PACKAGES/bin"
export MANPATH="${MANPATH}:$NPM_PACKAGES/share/man"

3
env/50_rust.zsh vendored
View file

@ -1,6 +1,3 @@
export RUSTUP_HOME="${XDG_DATA_HOME}/rustup"
export CARGO_HOME="${XDG_DATA_HOME}/cargo"
export PATH="${CARGO_HOME}/bin:${PATH}"
if which rustup &>/dev/null && [[ -n $(rustup show active-toolchain) ]]; then if which rustup &>/dev/null && [[ -n $(rustup show active-toolchain) ]]; then
export RUST_SRC_PATH=$(rustup run stable rustc --print sysroot)/lib/rustlib/src/rust/src export RUST_SRC_PATH=$(rustup run stable rustc --print sysroot)/lib/rustlib/src/rust/src
fi fi

1
env/50_scala.zsh vendored
View file

@ -1 +0,0 @@
export SBT_OPTS="-XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=10G -Xmx10G"

1
env/90_pass.zsh vendored
View file

@ -1 +0,0 @@
export PASSWORD_STORE_ENABLE_EXTENSIONS=true

View file

@ -1,4 +0,0 @@
if command -v podman &>/dev/null; then
export DOCKER_SOCKET=$(podman system info -f '{{.Host.RemoteSocket.Path}}')
export DOCKER_HOST=unix://$DOCKER_SOCKET
fi

View file

@ -1,41 +0,0 @@
## vim:ft=zsh
## Written by Frank Terbeck <ft@bewatermyfriend.org>
## Distributed under the same BSD-ish license as zsh itself.
# Helper function for VCS_INFO_detect_*
#
# Usage:
# vcs_comm[detect_need_file]=FILENAMES VCS_INFO_bydir_detect DIRNAME
# where DIRNAME is a directory name and FILENAMES is a space-separated list
# of filenames.
#
# If any parent directory of the current working directory, other than the root
# directory, contains a subdirectory named DIRNAME that contains a file whose name
# is in FILENAMES, set vcs_comm[basedir] to the path of that parent directory and
# return true. Otherwise, return false.
setopt localoptions NO_shwordsplit
local dirname=$1
local basedir="." file
basedir=$(realpath ${basedir})
while [[ ${basedir} != '/' ]]; do
[[ -r ${basedir} ]] || return 1
if [[ -n ${vcs_comm[detect_need_file]} ]] ; then
[[ -d ${basedir}/${dirname} ]] && {
for file in ${(s: :)${vcs_comm[detect_need_file]}}; do
[[ -e ${basedir}/${dirname}/${file} ]] && break 2
done
}
else
[[ -d ${basedir}/${dirname} ]] && break
fi
basedir=${basedir:h}
done
[[ ${basedir} == "/" ]] && return 1
vcs_comm[basedir]=${basedir}
# TODO: Would the following be correct? ---
# rrn=${vcs_comm[basedir]:t}
return 0

View file

@ -1,41 +0,0 @@
typeset -a chpwd_functions __chromaz_extra_left
SYSTEM_JAVA_HOME=${CS_FORMER_JAVA_HOME:-$JAVA_HOME}
local cs_jvm_id
local cs_java_home
remove-from-path() {
for elem in $@; do
path=("${(@)path:#$elem}")
done
}
cs-set-java-home() {
local dir=${1:-${PWD:a}}
if [[ $dir == / ]]; then
export JAVA_HOME=${SYSTEM_JAVA_HOME}
remove-from-path $cs_java_home/bin
cs_jvm_id=
return
fi
if [[ -e $dir/.jvm ]]; then
cs_jvm_id=$(<$dir/.jvm)
#echo "Setting Java version to ${cs_jvm_id}"
cs_java_home=$(cs java-home --jvm ${cs_jvm_id})
path=( $cs_java_home/bin $path )
export JAVA_HOME=${cs_java_home}
else
cs-set-java-home ${dir:h}
fi
#
}
cs-current-java() {
echo ${cs_jvm_id:+JVM: }${cs_jvm_id}
}
chpwd_functions+=cs-set-java-home
__chromaz_extra_left+=cs-current-java
cs-set-java-home

View file

@ -18,11 +18,6 @@ else
pyenv() { pyenv() {
echo -n "pyenv is not installed. Install now? [yn] "; read -q || return echo -n "pyenv is not installed. Install now? [yn] "; read -q || return
git clone https://github.com/pyenv/pyenv.git $PYENV_ROOT git clone https://github.com/pyenv/pyenv.git $PYENV_ROOT
git clone https://github.com/pyenv/pyenv-update.git $PYENV_ROOT/plugins/pyenv-update
git clone https://github.com/pyenv/pyenv-virtualenv.git $PYENV_ROOT/plugins/pyenv-virtualenv
git clone https://github.com/jawshooah/pyenv-default-packages.git $PYENV_ROOT/plugins/pyenv-default-packages
git clone https://github.com/fizista/pyenv-choice.git $PYENV_ROOT/plugins/pyenv-choice
echo ptpython > $PYENV_ROOT/default-packages
_init_pyenv _init_pyenv
} }
fi fi

View file

@ -1,16 +0,0 @@
local tmpfile=${TMPPREFIX:-/tmp/zsh}ecl$$
print -R - "$PREBUFFER$BUFFER" >$tmpfile
exec </dev/tty
if [[ $KITTY_WINDOW_ID ]]; then
kitty @launch --type overlay vim -c 'set laststatus=0 showtabline=0 ft=zsh' $tmpfile
tail -f --pid=$(pgrep -f "vim.*${tmpfile}") /dev/null &> /dev/null
else
${=${VISUAL:-${EDITOR:-vi}}} $tmpfile
fi
print -Rz - "$(<$tmpfile)"
command rm -f $tmpfile
zle send-break # Force reload from the buffer stack
# vim:ft=zsh

View file

@ -0,0 +1,18 @@
ECLHEIGHT=${ECLHEIGHT:-5}
edit-command-line-tmux() {
local tmpfile=${TMPPREFIX:-/tmp/zsh}ecl$$
print -R - "$PREBUFFER$BUFFER" >$tmpfile
exec </dev/tty
if [ -n "$TMUX" ] && [ "$UID" -ne 0 ]; then
tmux splitw -v -l $ECLHEIGHT "vim -c 'set laststatus=0 showtabline=0 ft=zsh' $tmpfile"
pid=$(ps -ef | awk "/[0-9] vim.*${tmpfile:t}/ { print \$2 }")
wait_on_pid $pid
else
${=${VISUAL:-${EDITOR:-vi}}} $tmpfile
fi
print -Rz - "$(<$tmpfile)"
command rm -f $tmpfile
zle send-break # Force reload from the buffer stack
}

57
zplug.zsh Normal file
View file

@ -0,0 +1,57 @@
export ZPLUG_HOME=$ZDOTDIR/zplug
source $(zdotfile zplug/init.zsh)
zplug 'zplug/zplug', hook-build:'zplug --self-manage'
zplug "MichaelAquilina/zsh-you-should-use"
zplug 'jreese/zsh-titles'
zplug 'crater2150-zsh/fzf-widgets'
zplug 'crater2150-zsh/conf'
zplug 'crater2150-zsh/chroma-z', as:theme
zplug $ZDOTDIR/plugins/highlight-config, from:local, defer:3
#zplug $ZDOTDIR/plugins/bundled-compdefs, from:local
zplug $ZDOTDIR/plugins/tmpsrc, from:local
zplug $ZDOTDIR/plugins/pyenv, from:local
zplug 'molovo/revolver', \
as:command, \
use:revolver
zplug 'zunit-zsh/zunit', \
as:command, \
use:zunit, \
hook-build:'./build.zsh'
zplug "zsh-users/zsh-syntax-highlighting", defer:2
zplug "plugins/ng", from:oh-my-zsh
zplug "zpm-zsh/colors"
zplug "urbainvaes/fzf-marks"
zplug "crater2150-zsh/tmsu-fzf", as:plugin
zplug load
if zplug check 'crater2150-zsh/fzf-widgets'; then
# Map widgets to key
bindkey '\ec' fzf-change-directory
bindkey '^r' fzf-insert-history
bindkey '^xf' fzf-insert-files
bindkey '^xd' fzf-insert-directory
bindkey '^xn' fzf-insert-named-directory
# Start fzf in a tmux pane
FZF_WIDGET_TMUX=1
# use fd for finding directories and files
FZF_CHANGE_DIR_FIND_COMMAND="fd -t d"
FZF_INSERT_DIR_COMMAND="fd -t d"
FZF_INSERT_FILES_COMMAND="fd -t f"
FZF_EDIT_FILES_COMMAND="fd -t f"
# modify history command to remove duplicates
FZF_HISTORY_COMMAND="fc -l 1 | sed 's/ *[0-9]* //g' | awk '!seen[\$0]++'"
fi

View file

@ -1,15 +1,6 @@
# /etc/zsh/zprofile # /etc/zsh/zprofile
# $Header: /var/cvsroot/gentoo-x86/app-shells/zsh/files/zprofile-1,v 1.1 2010/08/15 12:21:56 tove Exp $ # $Header: /var/cvsroot/gentoo-x86/app-shells/zsh/files/zprofile-1,v 1.1 2010/08/15 12:21:56 tove Exp $
append_path () {
case ":$PATH:" in
*:"$1":*)
;;
*)
PATH="${PATH:+$PATH:}$1"
esac
}
# Load environment settings from profile.env, which is created by # Load environment settings from profile.env, which is created by
# env-update from the files in /etc/env.d # env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then if [ -e /etc/profile.env ] ; then
@ -40,6 +31,5 @@ set -$shopts
unset sh shopts unset sh shopts
if [[ $TTY == /dev/tty1 ]]; then if [[ $TTY == /dev/tty1 ]]; then
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
exec startx :1 exec startx :1
fi fi

3
zshenv
View file

@ -1,3 +1,5 @@
export ZDOTDIR="${$(readlink $HOME/.zshenv):h:a}"
exists() { command -v "$@" >/dev/null } exists() { command -v "$@" >/dev/null }
function(){ function(){
local i local i
@ -5,3 +7,4 @@ function(){
. $i . $i
done done
} }

23
zshrc
View file

@ -1,12 +1,6 @@
typeset -U path typeset -U path
HISTFILE=${XDG_STATE_HOME:-$HOME/.local/state}/zsh/histfile HISTFILE=~/.histfile
if [[ ! -d ${HISTFILE:h} ]]; then
mkdir -p ${HISTFILE:h}
fi
if [[ ! -e $HISTFILE && -e ~/.histfile ]]; then
mv ~/.histfile $HISTFILE
fi
HISTSIZE=100000 HISTSIZE=100000
SAVEHIST=100000 SAVEHIST=100000
unsetopt histsavenodups unsetopt histsavenodups
@ -18,14 +12,13 @@ setopt hist_ignore_space share_history
#setopt hist_ignore_all_dups #setopt hist_ignore_all_dups
setopt no_auto_remove_slash auto_param_slash setopt no_auto_remove_slash auto_param_slash
setopt completeinword setopt completeinword
#setopt chase_links setopt chase_links
setopt short_loops setopt short_loops
setopt cdable_vars setopt cdable_vars
WORDCHARS=${WORDCHARS//\/} WORDCHARS=${WORDCHARS//\/}
cdpath+=$HOME cdpath+=$HOME
export ZDOTDIR=${ZDOTDIR:-$HOME/.zsh} export ZDOTDIR=${ZDOTDIR:-$HOME/.zsh}
fpath=($ZDOTDIR/functions $fpath)
function exists { command -v "$@" >/dev/null } function exists { command -v "$@" >/dev/null }
@ -77,6 +70,8 @@ source ${ZIM_HOME}/init.zsh
. $(zdotfile completion.zsh) . $(zdotfile completion.zsh)
#source $(zdotfile zplug.zsh)
. $(zdotfile bindings.zsh) . $(zdotfile bindings.zsh)
stty -ixon stty -ixon
@ -107,13 +102,3 @@ if [[ -e $HOME/.calendars ]]; then
} }
__chromaz_extra_left+=_prompt_todos __chromaz_extra_left+=_prompt_todos
fi fi
if exists mail; then
_prompt_cron_mails() {
[[ ! -e $MAIL ]] && return
local newmails=$(mail -Hf $MAIL | grep -c '^.N')
[[ $newmails -gt 0 ]] && echo "Cron Notifications: $newmails"
}
__chromaz_extra_left+=_prompt_cron_mails
fi
tabs -4