pyv
This commit is contained in:
parent
1512f3b23f
commit
d781bb4768
8 changed files with 198 additions and 31 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -253,3 +253,5 @@ VirtualBox/
|
|||
knfsshare
|
||||
lazygit/
|
||||
glow/
|
||||
heroic/
|
||||
kwinoutputconfig.json
|
||||
|
|
|
@ -160,15 +160,16 @@ Plug 'Gavinok/vim-troff'
|
|||
Plug 'ibhagwan/fzf-lua'
|
||||
Plug 'preservim/tagbar'
|
||||
" Plug 'morhetz/gruvbox'
|
||||
Plug 'sainnhe/gruvbox-material'
|
||||
" Plug 'sainnhe/gruvbox-material'
|
||||
Plug 'sainnhe/everforest'
|
||||
Plug 'jceb/vim-orgmode'
|
||||
Plug 'mikelue/vim-maven-plugin'
|
||||
call plug#end()
|
||||
|
||||
" gruvbox-material
|
||||
" theme
|
||||
set background=dark
|
||||
let g:gruvbox_material_background = 'hard'
|
||||
colorscheme gruvbox-material
|
||||
let g:everforest_background = 'hard'
|
||||
colorscheme everforest
|
||||
|
||||
" AutoComplPop
|
||||
inoremap <expr> <Tab> pumvisible() ? "<C-y>" : "<Tab>"
|
||||
|
|
|
@ -10,10 +10,10 @@ menu="menu_dmenu"
|
|||
font="JetbrainsMono"
|
||||
font_size="10"
|
||||
col_white="#ebdbb2" # White
|
||||
col_nb="#1d2021" # Normal background
|
||||
col_nf="#606060" # Normal foreground
|
||||
col_sb="#fabd2f" # Selected background
|
||||
col_sf="#1d2021" # Selected foreground
|
||||
col_nb="#1e2326" # Normal background
|
||||
col_nf="#374145" # Normal foreground
|
||||
col_sb="#7fbbb3" # Selected background
|
||||
col_sf="#1e2326" # Selected foreground
|
||||
|
||||
menu_bemenu() {
|
||||
bemenu$BRUN \
|
||||
|
|
30
shell/bashrc
30
shell/bashrc
|
@ -13,11 +13,6 @@ if ! shopt -oq posix; then
|
|||
. /etc/bash_completion
|
||||
fi
|
||||
|
||||
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
|
||||
|
||||
HISTCONTROL=ignoreboth
|
||||
HISTSIZE=
|
||||
HISTFILESIZE=
|
||||
bind "set completion-ignore-case on"
|
||||
shopt -s checkwinsize
|
||||
shopt -s histappend
|
||||
|
@ -25,16 +20,9 @@ shopt -s cdspell
|
|||
shopt -s autocd
|
||||
set -o vi
|
||||
|
||||
PATH="$HOME/.config/scripts/status${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/menu${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/menu/xclipmenu${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/sway${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/dwm${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/wrappers${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.local/bin${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.local/state/nix/profile/bin${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/emacs/bin${PATH:+:${PATH}}"
|
||||
HISTCONTROL=ignoreboth
|
||||
HISTIZE=
|
||||
HISTFILESIZE=
|
||||
|
||||
format_workdir() {
|
||||
CODE="$?"
|
||||
|
@ -67,8 +55,6 @@ $(format_git_branch ${?})\
|
|||
$(format_prompt ${?})\
|
||||
'
|
||||
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/wget-hsts"
|
||||
|
||||
! command -v sudo >/dev/null 2>&1 &&
|
||||
alias sudo="doas" &&
|
||||
complete -cf doas
|
||||
|
@ -115,13 +101,21 @@ alias \
|
|||
qr="qrencode -t ansiutf8" \
|
||||
clip="xsel -ib" \
|
||||
em="emacsclient -c -a 'emacs' $@" \
|
||||
venv=". ~/.local/share/venv/base/bin/activate" \
|
||||
wget="wget --hsts-file=$XDG_DATA_HOME/wget/wget-hsts" \
|
||||
ssh="ssh ${SSH_CONFIG} " \
|
||||
|
||||
[ -f ~/.config/shell/kit ] && . ~/.config/shell/kit
|
||||
|
||||
for func in ~/.config/shell/functions/* ; do
|
||||
[ -f "$func" ] && . $func
|
||||
done
|
||||
|
||||
if [ "$(tty)" = "/dev/tty1" ] ; then
|
||||
sleep 0.5
|
||||
amixer &
|
||||
exec startx
|
||||
#exec sway
|
||||
elif [ "$(tty)" = "/dev/tty2" ] ; then
|
||||
sleep 0.5
|
||||
exec /usr/lib/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland
|
||||
fi
|
||||
|
|
18
shell/env
18
shell/env
|
@ -1,6 +1,17 @@
|
|||
#!/bin/sh
|
||||
# $ printf '[ -f ~/.config/shell/env ] && . ~/.config/shell/env' | sudo tee -a /etc/profile
|
||||
|
||||
PATH="$HOME/.config/scripts/status${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/menu${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/menu/xclipmenu${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/sway${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts/dwm${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/wrappers${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/scripts${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.local/bin${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.local/state/nix/profile/bin${PATH:+:${PATH}}"
|
||||
PATH="$HOME/.config/emacs/bin${PATH:+:${PATH}}"
|
||||
|
||||
export \
|
||||
XDG_STATE_HOME="$HOME/.local/state" \
|
||||
XDG_CACHE_HOME="$HOME/.local/cache" \
|
||||
|
@ -30,17 +41,14 @@ export \
|
|||
WGETRC="$HOME/.config/wget/wgetrc" \
|
||||
GNUPGHOME="$XDG_DATA_HOME/gnupg" \
|
||||
GOPATH="$XDG_DATA_HOME/go" \
|
||||
SSH_CONFIG="-F ${XDG_CONFIG_HOME}/ssh/config" \
|
||||
GIT_SSH_COMMAND="ssh -F ${XDG_CONFIG_HOME}/ssh/config" \
|
||||
|
||||
if [ -n "$HISTFILE" ] && ! [ -d "${HISTFILE%/*}" ] ; then
|
||||
mkdir -p "${HISTFILE%/*}" && touch "$HISTFILE"
|
||||
fi
|
||||
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/wget-hsts"
|
||||
|
||||
export \
|
||||
HISTCONTROL=ignoreboth \
|
||||
HISTIZE= \
|
||||
HISTFILESIZE= \
|
||||
DATE=$(date -I) \
|
||||
WEEK=$(date '+%U') \
|
||||
|
||||
|
|
139
shell/functions/pyv
Normal file
139
shell/functions/pyv
Normal file
|
@ -0,0 +1,139 @@
|
|||
#!/bin/sh
|
||||
|
||||
_pyv_err() {
|
||||
printf '\033[91mError:\033[0m \033[2m%s\033[0m\n' "$1"
|
||||
}
|
||||
|
||||
_pyv_warn() {
|
||||
printf '\033[93mWarn:\033[0m \033[2m%s\033[0m\n' "$1"
|
||||
}
|
||||
|
||||
_pyv_log() {
|
||||
printf '\033[94mpyv:\033[0m \033[2m%s\033[0m\n' "$1"
|
||||
}
|
||||
|
||||
_pyv_help() {
|
||||
printf 'Usage:\n \033[92mpyv\033[0m \033[94m[ls|new|rm|go|exit]\033[0m \033[95mmyvenv\033[0m\n'
|
||||
}
|
||||
|
||||
_pyv_avail() {
|
||||
venvs="$(for v in "$VENV_DIR"/* ; do
|
||||
if [ -d "$v" ] ; then
|
||||
if [ "$VIRTUAL_ENV" == "$v" ] ; then
|
||||
printf '\033[95m%s\033[0m, ' "*${v##*/}"
|
||||
else
|
||||
printf '\033[95m%s\033[0m, ' "${v##*/}"
|
||||
fi
|
||||
fi
|
||||
done)"
|
||||
venvs="${venvs%,*}"
|
||||
[ -n "$venvs" ] && printf 'Available venvs:\n %s\n' "$venvs"
|
||||
}
|
||||
|
||||
_pyv_prompt() {
|
||||
printf '%s [y/N]: ' "$1"
|
||||
read -r s
|
||||
case "$(echo "$s" | tr '[:upper:]' '[:lower:]')" in
|
||||
y|yes) return 0 ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
pyv() {
|
||||
VENV_OPT=
|
||||
VENV_LIST=
|
||||
|
||||
PYTHON="${PYTHON:=$(command -v python 2>&-)}"
|
||||
PYTHON="${PYTHON:=$(command -v python3 2>&-)}"
|
||||
[ -z "$PYTHON" ] && _pyv_err "Could not find python in PATH" && return 1
|
||||
|
||||
if ! $PYTHON -m venv -h >&- 2>&- ; then
|
||||
_pyv_err "python-venv module not available" && return 1
|
||||
fi
|
||||
|
||||
if [ -z "$VENV_DIR" ] ; then
|
||||
if [ -n "$XDG_DATA_HOME" ] ; then
|
||||
VENV_DIR="$XDG_DATA_HOME/venv"
|
||||
else
|
||||
[ -z "$HOME" ] && _pyv_err "No safe venv location" && return 1
|
||||
VENV_DIR="$HOME/.local/share/venv"
|
||||
fi
|
||||
fi
|
||||
mkdir -p "$VENV_DIR"
|
||||
|
||||
case "$1" in
|
||||
new|go|rm)
|
||||
VENV_OPT="$1" ; VENV_LIST="${@#${VENV_OPT}}" ; VENV_LIST="${VENV_LIST#* }" ;;
|
||||
-d)
|
||||
VENV_OPT="rm" ; VENV_LIST="${@#${VENV_OPT}}" ; VENV_LIST="${VENV_LIST#* }" ;;
|
||||
exit|quit|q)
|
||||
if command -v deactivate >&- 2>&- ; then
|
||||
_pyv_log "Deactivating venv ${VIRTUAL_ENV##*/}..."
|
||||
deactivate
|
||||
else
|
||||
_pyv_warn "No currently active venv"
|
||||
fi
|
||||
return 0 ;;
|
||||
-l*|--l*|l|ls|list)
|
||||
_pyv_avail
|
||||
return 0 ;;
|
||||
-*|help|h|"")
|
||||
_pyv_help
|
||||
avail="$(_pyv_avail)"
|
||||
[ -n "$avail" ] && printf '\n%s\n' "$avail"
|
||||
return 0 ;;
|
||||
*)
|
||||
VENV_OPT="go" ; VENV_LIST="$@" ;;
|
||||
esac
|
||||
|
||||
for v in $VENV_LIST ; do
|
||||
if ! [ -d "$VENV_DIR/$v" ] && [ "$VENV_OPT" != "new" ] ; then
|
||||
_pyv_err "venv $v not found"
|
||||
VENV_LIST=
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$VENV_LIST" ] ; then
|
||||
_pyv_help
|
||||
echo
|
||||
_pyv_avail
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$VENV_OPT" == "new" ] ; then
|
||||
for v in $VENV_LIST ; do
|
||||
if [ -d "$VENV_DIR/$v" ] ; then
|
||||
_pyv_warn "venv $v already exists, skipping..."
|
||||
else
|
||||
_pyv_log "Creating new venv $v..."
|
||||
$PYTHON -m venv "$VENV_DIR/$v"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$VENV_OPT" == "rm" ] ; then
|
||||
for v in $VENV_LIST ; do
|
||||
if _pyv_prompt "Remove venv at '$VENV_DIR/$v'?" ; then
|
||||
_pyv_log "Removing venv $v..."
|
||||
rm -rf "$VENV_DIR/$v" && _pyv_log "Done"
|
||||
else
|
||||
_pyv_log "Keeping venv $v"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$VENV_OPT" == "go" ] ; then
|
||||
command -v deactivate >&- 2>&- && deactivate
|
||||
venv="${VENV_LIST%% *}"
|
||||
_pyv_log "Activating $venv..."
|
||||
|
||||
case "${0##*/}" in
|
||||
bash|zsh|dash|ksh|sh)
|
||||
. "$VENV_DIR/$venv/bin/activate" ;;
|
||||
fish)
|
||||
source "$VENV_DIR/$venv/bin/activate.fish" ;;
|
||||
csh|tcsh)
|
||||
source "$VENV_DIR/$venv/bin/activate.csh" ;;
|
||||
esac
|
||||
fi
|
||||
}
|
20
ssh/config
Normal file
20
ssh/config
Normal file
|
@ -0,0 +1,20 @@
|
|||
Host *
|
||||
IdentityFile ${XDG_DATA_HOME}/ssh/id_ed25519
|
||||
UserKnownHostsFile ${XDG_DATA_HOME}/ssh/known_hosts
|
||||
|
||||
Host home
|
||||
AddressFamily inet
|
||||
#HostName 192.168.100.83
|
||||
HostName tavo.one
|
||||
port 22
|
||||
|
||||
Host tavo.one
|
||||
AddressFamily inet
|
||||
port 21
|
||||
|
||||
Host dev
|
||||
AddressFamily inet
|
||||
#HostName 192.168.100.83
|
||||
HostName tavo.one
|
||||
Port 2222
|
||||
User dev
|
3
wrappers/cvim
Executable file
3
wrappers/cvim
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
VIMINIT="source $HOME/.config/cvim/vimrc" nvim $@
|
Loading…
Reference in a new issue