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 crater2150-zsh/conf
@ -6,11 +6,10 @@ zmodule crater2150-zsh/chroma-z
zmodule $ZDOTDIR/plugins/tmpsrc
zmodule $ZDOTDIR/plugins/pyenv
zmodule $ZDOTDIR/plugins/cs-java-home
zmodule $ZDOTDIR/plugins/highlight-config
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:
-------------
Set the `ZDOTDIR` environment variable to the directory of this repo. Note that
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`:
From the checked out repo:
```
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 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 fdfind >/dev/null; then
alias fd="fdfind"
else
fd() {
if [[ "$1" =~ "^-" ]]; then
if [[ "$1" =~ "-*" ]]; then
echo "fd not installed. shell alias supports only basic operation"
return 1
fi
noglob find . -iname "*${*}*"
}
fi
fi
alias sudo="sudo "
alias S='sudo $(history -n -1)'
alias rm="rm -I"
if exists rifle; then
alias v=rifle
else
function v() {
for file in $@; do
xdg-open $file &|
done
}
fi
alias vmemcache="vmtouch -l -m 12G -v"
@ -52,8 +40,8 @@ fork() {
"$@" &>/dev/null &|
}
alias en="pipx run dict.cc.py de en"
alias de="pipx run dict.cc.py en de"
alias en="dict.cc.py de en"
alias de="dict.cc.py en de"
su() {
if [[ -z "$@" ]]; then
@ -92,7 +80,7 @@ E() {
# edit and refresh aliases
aliases() {
$EDITOR $(zdotfile aliases/${1:-functions})
source $(zdotfile aliases)/*
. $(zdotfile aliases)/*
}
# per directory configuration
@ -115,7 +103,7 @@ cd(){
# count files in current or given directory
count() {
find $1 -mindepth 1 \( ! -path '*/.*' \) | wc -l
find $1 \( ! -path '*/.*' \) | wc -l
}
pumount() {
@ -263,8 +251,7 @@ btrfs-subvolume-force-delete() {
# lazy shortcuts
alias -g G="| grep"
alias -g L="| ${PAGER:-less}"
alias -g LE="2>&1 | ${PAGER:-less}"
alias -g L="| less"
alias -g T="| tail"
# xclipboard
@ -323,64 +310,10 @@ alias luarocks="luarocks --local"
alias icat="kitty +kitten icat"
local function hour-float-to-time() {
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
# vim: foldmethod=marker
function lastdl() {
echo ~/downloads/*(oc.[1])
}
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
if [[ -e $i ]]; then
for ignore in "${(f)mapfile[$i]}"; do
ignores+="--ignore=${ignore%/}"
ignores+="--ignore=$ignore"
done
fi
done

View file

@ -1,23 +1,5 @@
#!/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() {
eval $(mpd-host get)
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"
xbps-install() {
local logfile=$(mktemp)
sudo script --return --quiet -c "/usr/bin/xbps-install $*" $logfile
local ret=$?
grep -oP ".*(?=: post-install message)" < $logfile \
sudo script --return --quiet -c "/usr/bin/xbps-install $*" /dev/null \
| tee /dev/stderr \
| grep -oP ".*(?=: post-install message)" \
| ifne xargs -L 1 xbps-query -p install-msg
hash -r
return $ret
}
xupdate() {
@ -41,7 +39,6 @@ xupdate() {
fi
else
xbps-install -SA "$@"
xcheckupdates
fi
}
@ -52,46 +49,25 @@ xowner() {
sv() {
command sv "$@"
ret=$?
if [[ "$1" == "up" ]]; then
shift
sleep 0.5
command sv check "$@"
fi
return $ret
}
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
shift
fi
case "$action" in
add)
for service in "$@"; do
ln -s ${SVDIR_TEMPLATES:-/etc/sv}/${service:s#/##} ${svdir}
ln -s /etc/sv/${service:s#/##} /var/service
done
;;
remove|rm)
for service in "$@"; do
rm ${svdir}/${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}
rm /var/service/${service:s#/##}
done
;;
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
fpath=( "${ZDOTDIR:+$ZDOTDIR/widgets}" $fpath )
bindkey -v
@ -32,9 +31,7 @@ bindkey " " magic-space # Do history expansion on space.
bindkey $'\177' backward-delete-char # backspace
bindkey $'\10' backward-delete-word # C-backspace
autoload -U edit-command-line-split
zle -N edit-command-line-split
bindkey -M vicmd ! edit-command-line-split
bindkey -M vicmd ! edit-command-line-tmux
#unicode input
autoload -U insert-unicode-char

View file

@ -1,11 +1,3 @@
#compdef conf
_conf_locations() {
_alternative \
"configs:Configs:(${(k)conf_locations})" \
"dirs:XDG configs:_files -/ -W ${XDG_CONFIG_HOME:-$HOME/.config}/ -S '' -F '*/*'"
}
_conf_locations
_arguments "1:Commands:(${(k)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
# 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
local ret=1 services
@ -35,9 +35,7 @@ cmds)
check
ret=0;;
args)
if [[ $BUFFER == "sudo "*
|| $BUFFER == "doas "*
|| $BUFFER == "su "*-c* ]] then
if [[ $BUFFER == sudo* ]] then
services=( /var/service/*(-/N:t) )
else
services=( ${SVDIR:-/var/service}/*(-/N:t) )

View file

@ -5,4 +5,4 @@ local context state line
_arguments \
"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
fpath=( "${XDG_DATA_HOME:-$HOME/.local/share}/zsh/site-functions" "${ZDOTDIR:+$ZDOTDIR/compdef}" "/etc/zsh/compdef" $fpath )
fpath=("$XDG_DATA_HOME/scalacli/completions/zsh" $fpath)
fpath=( "${ZDOTDIR:+$ZDOTDIR/compdef}" "/etc/zsh/compdef" $fpath )
[[ -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)

2
confs
View file

@ -11,7 +11,7 @@ nvim-plug $XDG_CONFIG_HOME/nvim/packages.vim
offlineimap $XDG_CONFIG_HOME/offlineimap/config
qutebrowser $XDG_CONFIG_HOME/qutebrowser/
qutebrowser-scripts $XDG_DATA_HOME/qutebrowser/userscripts
ssh $HOME/.ssh/
ssh $HOME/.ssh/config
vdirsyncer $XDG_CONFIG_HOME/vdirsyncer/config
vim $XDG_CONFIG_HOME/vim
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
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

1
env/50_nodejs.zsh vendored
View file

@ -1,4 +1,3 @@
export NPM_PACKAGES="${XDG_DATA_HOME}/npm-packages"
export NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
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
export RUST_SRC_PATH=$(rustup run stable rustc --print sysroot)/lib/rustlib/src/rust/src
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() {
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-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
}
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
# $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
# env-update from the files in /etc/env.d
if [ -e /etc/profile.env ] ; then
@ -40,6 +31,5 @@ set -$shopts
unset sh shopts
if [[ $TTY == /dev/tty1 ]]; then
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
exec startx :1
fi

3
zshenv
View file

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

23
zshrc
View file

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