Compare commits
33 Commits
main-termu
...
0f1a1146ff
Author | SHA1 | Date | |
---|---|---|---|
0f1a1146ff
|
|||
bf5ee3437d
|
|||
7e64148005
|
|||
219caa08af
|
|||
a7dd1a8521
|
|||
ee94361f1a
|
|||
f02723bdc6
|
|||
352632e5a5
|
|||
b260e411f0
|
|||
1dc978f1c1
|
|||
d8d0c9ba2e
|
|||
60d6583472
|
|||
6a8f73450c
|
|||
1a938fbeb3
|
|||
3c99b8cb34
|
|||
a665006836
|
|||
9737f6cdab
|
|||
4f578e0bb0
|
|||
9051f04328
|
|||
98073783bf
|
|||
08ee9f8b0e
|
|||
068db0c3c8
|
|||
7f4d93f4d2
|
|||
621832506c
|
|||
36376a2e34
|
|||
6269463d7b
|
|||
34dd9f4b01
|
|||
5c4a9851e6
|
|||
3495c81c49
|
|||
5dd77c49a0
|
|||
15be72893c
|
|||
43d220be01
|
|||
8210faf9ce
|
79
.XCompose
Normal file
79
.XCompose
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
# jaandrle customizations
|
||||||
|
include "/usr/share/X11/locale/cs_CZ.UTF-8/Compose"
|
||||||
|
|
||||||
|
<Multi_key> <backslash> <space> : " " U202F # thin nonbreaking space
|
||||||
|
<Multi_key> <bar> <space> : "" U200B
|
||||||
|
<Multi_key> <8> <8> : "∞" U221E
|
||||||
|
<Multi_key> <equal> <equal>: "≡"
|
||||||
|
<Multi_key> <asciitilde> <asciitilde>: "≈"
|
||||||
|
<Multi_key> <equal> <asciitilde>: "≃"
|
||||||
|
<Multi_key> <asterisk> <asterisk>: "★"
|
||||||
|
<Multi_key> <c> <h> <e> <c> <k> : "✓"
|
||||||
|
<Multi_key> <c> <r> <o> <s> <s> : "✗"
|
||||||
|
|
||||||
|
<Multi_key> <a> <minus> <8> : "↑"
|
||||||
|
<Multi_key> <a> <minus> <6> : "→"
|
||||||
|
<Multi_key> <a> <minus> <2> : "↓"
|
||||||
|
<Multi_key> <a> <minus> <4> : "←"
|
||||||
|
<Multi_key> <a> <minus> <5> : "↔"
|
||||||
|
<Multi_key> <a> <minus> <7> : "↖"
|
||||||
|
<Multi_key> <a> <minus> <9> : "↗"
|
||||||
|
<Multi_key> <a> <minus> <3> : "↘"
|
||||||
|
<Multi_key> <a> <minus> <1> : "↙"
|
||||||
|
<Multi_key> <a> <minus> <KP_8> : "↑"
|
||||||
|
<Multi_key> <a> <minus> <KP_6> : "→"
|
||||||
|
<Multi_key> <a> <minus> <KP_2> : "↓"
|
||||||
|
<Multi_key> <a> <minus> <KP_4> : "←"
|
||||||
|
<Multi_key> <a> <minus> <KP_5> : "↔"
|
||||||
|
<Multi_key> <a> <minus> <KP_7> : "↖"
|
||||||
|
<Multi_key> <a> <minus> <KP_9> : "↗"
|
||||||
|
<Multi_key> <a> <minus> <KP_3> : "↘"
|
||||||
|
<Multi_key> <a> <minus> <KP_1> : "↙"
|
||||||
|
|
||||||
|
<Multi_key> <a> <equal> <8> : "⇑"
|
||||||
|
<Multi_key> <a> <equal> <6> : "⇒"
|
||||||
|
<Multi_key> <a> <equal> <2> : "⇓"
|
||||||
|
<Multi_key> <a> <equal> <4> : "⇐"
|
||||||
|
<Multi_key> <a> <equal> <5> : "⇔"
|
||||||
|
<Multi_key> <a> <equal> <KP_8> : "⇑"
|
||||||
|
<Multi_key> <a> <equal> <KP_6> : "⇒"
|
||||||
|
<Multi_key> <a> <equal> <KP_2> : "⇓"
|
||||||
|
<Multi_key> <a> <equal> <KP_4> : "⇐"
|
||||||
|
<Multi_key> <a> <equal> <KP_5> : "⇔"
|
||||||
|
|
||||||
|
# Greek ambiguities: epsilon/eta, theta/tau, pi/phi/psi, omega/omicron
|
||||||
|
<Multi_key> <g> <a> : "α"
|
||||||
|
<Multi_key> <g> <b> : "β"
|
||||||
|
<Multi_key> <g> <g> : "γ"
|
||||||
|
<Multi_key> <g> <d> : "δ"
|
||||||
|
<Multi_key> <g> <3> : "ε"
|
||||||
|
<Multi_key> <g> <z> : "ζ"
|
||||||
|
<Multi_key> <g> <e> : "η"
|
||||||
|
<Multi_key> <g> <h> : "θ"
|
||||||
|
<Multi_key> <g> <i> : "ι"
|
||||||
|
<Multi_key> <g> <k> : "κ"
|
||||||
|
<Multi_key> <g> <l> : "λ"
|
||||||
|
<Multi_key> <g> <m> : "μ"
|
||||||
|
<Multi_key> <g> <n> : "ν"
|
||||||
|
<Multi_key> <g> <x> : "ξ"
|
||||||
|
# note: no omicron
|
||||||
|
<Multi_key> <g> <p> : "π"
|
||||||
|
<Multi_key> <g> <p> : "Ϟ"
|
||||||
|
<Multi_key> <g> <r> : "ρ"
|
||||||
|
<Multi_key> <g> <s> : "σ"
|
||||||
|
<Multi_key> <g> <t> : "τ"
|
||||||
|
<Multi_key> <g> <u> : "ψ"
|
||||||
|
<Multi_key> <g> <f> : "φ"
|
||||||
|
<Multi_key> <g> <c> : "χ"
|
||||||
|
<Multi_key> <g> <o> : "ω"
|
||||||
|
|
||||||
|
<Multi_key> <g> <G> : "Γ"
|
||||||
|
<Multi_key> <g> <D> : "Δ"
|
||||||
|
<Multi_key> <g> <H> : "Θ"
|
||||||
|
<Multi_key> <g> <L> : "Λ"
|
||||||
|
<Multi_key> <g> <X> : "Ξ"
|
||||||
|
<Multi_key> <g> <P> : "Π"
|
||||||
|
<Multi_key> <g> <S> : "Σ"
|
||||||
|
<Multi_key> <g> <F> : "Φ"
|
||||||
|
<Multi_key> <g> <U> : "Ψ"
|
||||||
|
<Multi_key> <g> <O> : "Ω"
|
154
.bash/.bash_aliases
Normal file
154
.bash/.bash_aliases
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
# Make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
alias ls='ls -pQFh --group-directories-first'
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto -pQFh --group-directories-first'
|
||||||
|
alias dir='dir --color=auto'
|
||||||
|
alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
alias diff='diff --color=auto'
|
||||||
|
fi
|
||||||
|
alias §rm='rm -vi'
|
||||||
|
alias §cp='cp -vi'
|
||||||
|
alias §mv='mv -vi'
|
||||||
|
alias §df='df -Th'
|
||||||
|
§du(){
|
||||||
|
[[ "$1" == '--help' ]] && echo "§du; §du '../*'" && return 0
|
||||||
|
du -h -x -s -- ${1:-*} | sort -r -h;
|
||||||
|
}
|
||||||
|
|
||||||
|
alias §xclip-copy='xclip -selection clipboard'
|
||||||
|
alias §xclip-paste='xclip -o -selection clipboard'
|
||||||
|
|
||||||
|
LAST_PWD_PATH="$BASH_DOTFILES/.bash_last_pwd"
|
||||||
|
[ -f "$LAST_PWD_PATH" ] && OLDPWD=`cat $LAST_PWD_PATH`
|
||||||
|
cd(){ builtin cd "$@" && echo `pwd` > "$LAST_PWD_PATH"; }
|
||||||
|
|
||||||
|
history_clean(){ awk '!seen[$0]++ {print $0}' $HOME/.bash_history; }
|
||||||
|
history_edit(){ vim $HOME/.bash_history; }
|
||||||
|
history_cat(){ LC_ALL=C cat ~/.bash_history; }
|
||||||
|
history_most_used(){ LC_ALL=C cat ~/.bash_history | cut -d ';' -f 2- | §awk 1 | sort | uniq -c | sort -r -n | head -n ${1-10}; }
|
||||||
|
|
||||||
|
§(){
|
||||||
|
[[ -z "$1" ]] && clear && return 0
|
||||||
|
echo "$ [--help]= clear or [print this text]"
|
||||||
|
alias | grep "alias §" --color=never
|
||||||
|
declare -F | grep 'declare -f §' --color=never
|
||||||
|
ls ~/bin | grep -P "^§" | sed 's/^§/~\/bin\/ §/'
|
||||||
|
}
|
||||||
|
|
||||||
|
alias §less='less -R -S'
|
||||||
|
|
||||||
|
m(){
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
printenv | grep -e '^m'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [[ "--help" == "$1" ]]; then
|
||||||
|
echo 'm [--help]'
|
||||||
|
echo ' Lists all marks or print this help.'
|
||||||
|
echo 'm <name> [path]'
|
||||||
|
echo ' Sets mark <name> to current directory or [path].'
|
||||||
|
echo ' The mark is just a bash variable, use `$m<name>`.'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
local n="m$1"
|
||||||
|
[[ -z "${!n}" ]] || return 1
|
||||||
|
[[ -z "$2" ]] && local p="$(pwd)" || local p="$(readlink -f $2)"
|
||||||
|
export $n="$p"
|
||||||
|
}
|
||||||
|
alias cd-vifm='cd `vifm --choose-dir -`'
|
||||||
|
mkcd(){ mkdir -p -- "$1" && cd -P -- "$1"; }
|
||||||
|
|
||||||
|
alias gcalendar-dovolené='gcalendar --account "práce" --calendar "Dovolené"'
|
||||||
|
alias gcalendar-události='gcalendar --account "default" --calendar "Události"'
|
||||||
|
|
||||||
|
alias §find.='find . -maxdepth 1'
|
||||||
|
|
||||||
|
alias pdftk='java -jar $HOME/bin/pdftk-all.jar'
|
||||||
|
bw-session(){
|
||||||
|
bw logout
|
||||||
|
# login=`kwallet-query kdewallet -f accounts -r Bitwarden 2> /dev/null`
|
||||||
|
login=$(§kwallet.mjs --wallet kdewallet readPassword accounts bw-json)
|
||||||
|
export BW_CLIENTSECRET=`echo "$login" | jq -r .secret`
|
||||||
|
export BW_CLIENTID=`echo "$login" | jq -r .id`
|
||||||
|
bw login --apikey --raw
|
||||||
|
export BW_SESSION=`bw unlock --raw $(echo "$login" | jq -r .pass)` && echo "Bitwarden session ON" || echo "Bitwarden session FAILED"
|
||||||
|
unset BW_CLIENTSECRET
|
||||||
|
unset BW_CLIENTID
|
||||||
|
}
|
||||||
|
|
||||||
|
alias §psmem_all='ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem'
|
||||||
|
alias §psmem='§psmem_all | head -n 10'
|
||||||
|
alias §pscpu_all='ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu'
|
||||||
|
alias §pscpu='§pscpu_all | head -n 10'
|
||||||
|
alias §psnet_all='lsof -P -i -n'
|
||||||
|
alias §ck-grep='cat /usr/share/X11/locale/en_US.UTF-8/Compose ~/.XCompose | grep -i'
|
||||||
|
|
||||||
|
§ping-test(){ # Pings ip address of noip.com and www.google.com.
|
||||||
|
ping -c 1 -q 8.23.224.107 | grep --color=never -A 1 -i '\---'
|
||||||
|
ping -c 1 -q www.google.com | grep --color=never -A 1 -i '\---'
|
||||||
|
}
|
||||||
|
§whoami(){
|
||||||
|
[[ "$1" == '--help' ]] && echo '§whoami; §whoami --ip' && return 0
|
||||||
|
local ip=$(curl -s ifconfig.me)
|
||||||
|
[[ "$1" == '--ip' ]] && echo "$ip" && return 0
|
||||||
|
local L=" %s\n"
|
||||||
|
printf "\n"
|
||||||
|
printf "$L" "USER: $(echo $USER)"
|
||||||
|
printf "$L" "IP ADDR: $ip"
|
||||||
|
printf "$L" "HOSTNAME: $(hostname -f)"
|
||||||
|
printf "$L" "KERNEL: $(uname -rms)"
|
||||||
|
printf "\n"
|
||||||
|
}
|
||||||
|
§cmdfu(){ curl "https://www.commandlinefu.com/commands/matching/$@/$(echo -n $@ | openssl base64)/plaintext"; }
|
||||||
|
aai(){
|
||||||
|
[[ "$1" == '--help' ]] && ai ask --help && return 0;
|
||||||
|
echo "ai ask \"$*, thanks for your help\""; ai ask "\"$*, thanks for your help\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
alias npx-wca='npx -y web-component-analyzer'
|
||||||
|
alias npx-qnm='npx -y qnm'
|
||||||
|
alias npx-hint='npx -y hint'
|
||||||
|
alias npx-markdown='nohup npx markserv'
|
||||||
|
|
||||||
|
alias fzf=fzf-carroarmato0.fzf
|
||||||
|
|
||||||
|
§url-curl(){ curl --silent -I "$1" | grep -i location; }
|
||||||
|
|
||||||
|
alias bathelp='bat --plain --language=help'
|
||||||
|
|
||||||
|
rpg(){
|
||||||
|
rpg-cli "$@"
|
||||||
|
if ( [[ "$1" == "cd" ]] || [[ "$1" == "ls" ]] ); then
|
||||||
|
[[ "$2" == "" ]] && $1 . && return 0
|
||||||
|
[[ "$2" == ".." ]] && $1 .. && return 0
|
||||||
|
[[ "-1" != "$(nodejsscript --print "s.ls().findIndex(e=> e==='$2'.replace(/\/$/, ''))")" ]] && $1 "$2" && return 0
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
|
||||||
|
# [[ "$(rpg-cli pwd)" == "$(pwd)" ]] && return 0
|
||||||
|
# cd "$(rpg-cli pwd)"
|
||||||
|
}
|
||||||
|
rpg-dungeon(){
|
||||||
|
current=$(basename $PWD)
|
||||||
|
number_re='^[0-9]+$'
|
||||||
|
|
||||||
|
if [[ $current =~ $number_re ]]; then
|
||||||
|
next=$(($current + 1))
|
||||||
|
command mkdir -p $next && cd $next && rpg ls
|
||||||
|
elif [[ -d 1 ]] ; then
|
||||||
|
cd 1 && rpg ls
|
||||||
|
else
|
||||||
|
command mkdir -p dungeon/1 && cd dungeon/1 && rpg ls
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# alias adb-device='adb devices | tail -n +2 | head -n 1 | §awk 1'
|
||||||
|
# make-completion-wrapper, see https://gdhnotes.blogspot.com/2014/02/alias-bash-completion.html
|
49
.bash/.bash_completions
Normal file
49
.bash/.bash_completions
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
eval "$(gh completion -s bash)"
|
||||||
|
# gh tips: https://gist.github.com/ChristopherA/3cca24936fb2c84786a29f67bacacd3e
|
||||||
|
# used ectension: heaths/gh-label
|
||||||
|
[[ $- != *i* ]] && return # dont include rest in Vim
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( builtin cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
source "$SCRIPT_DIR/complete-alias/complete_alias"
|
||||||
|
complete -F _complete_alias gitdotfiles
|
||||||
|
|
||||||
|
alias C--asana='eval "$($HOME/bin/asana.mjs completion_bash)"'
|
||||||
|
alias C--himalaya='\. "$BASH_DOTFILES/himalaya.completion"'
|
||||||
|
alias C--uu='eval "$($HOME/bin/uu --completion-bash)"'
|
||||||
|
alias C--bs='eval "$(bs .completion bash)"'
|
||||||
|
alias C--jc='eval "$(jc -B)" … newer version needed'
|
||||||
|
\. "$BASH_DOTFILES/cordova.completion"
|
||||||
|
eval "$(node --completion-bash)"
|
||||||
|
eval "$(npm completion)"
|
||||||
|
eval "$(nodejsscript --completion bash)"
|
||||||
|
|
||||||
|
_npx() {
|
||||||
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
|
||||||
|
if [[ $COMP_CWORD != 1 ]]; then
|
||||||
|
case "${COMP_WORDS[1]}" in
|
||||||
|
gulp)
|
||||||
|
local compls=$(npx gulp --tasks-simple)
|
||||||
|
if [[ $compls == *"__autocomplete_bash"* ]]; then
|
||||||
|
compls="$compls $(npx gulp -L __autocomplete_bash --_l=$COMP_CWORD --_c=$cur)"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
COMPREPLY=($(compgen -W "$compls" -- "$cur"))
|
||||||
|
return 0;
|
||||||
|
fi
|
||||||
|
|
||||||
|
local dir=$(pwd -P)
|
||||||
|
while [[ -n "$dir" ]]; do
|
||||||
|
if [[ ! -d $dir/node_modules/.bin ]]; then
|
||||||
|
dir=${dir%/*}
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
local execs=( `cd $dir/node_modules/.bin; find -L . -type f -executable` )
|
||||||
|
execs=( ${execs[@]/#.\//} )
|
||||||
|
COMPREPLY=( $(compgen -W "${execs[*]} serve" -- "$cur" ) )
|
||||||
|
break
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _npx npx
|
124
.bash/.bash_jaaENV
Normal file
124
.bash/.bash_jaaENV
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
function jaaENV {
|
||||||
|
if [ "$1" = "--help" ]; then
|
||||||
|
echo "Utility to combine nvm/sdk/… in one script/config file '.jaaENV'"
|
||||||
|
echo " ↘ instead of 'nvm use 16 & sdk use …'"
|
||||||
|
echo ""
|
||||||
|
echo "Usage:"
|
||||||
|
echo " jaaENV"
|
||||||
|
echo " jaaENV [--help|--ls]"
|
||||||
|
echo " jaaENV --save …to_save (example: jaaENV --save nodejs php)"
|
||||||
|
echo ""
|
||||||
|
echo "Description:"
|
||||||
|
echo " - Without arguments loads infos from '.jaaENV'"
|
||||||
|
echo " - 'ls' shows supported options to auto load"
|
||||||
|
echo " - 'save' cerates config file '.jaaENV'"
|
||||||
|
echo ""
|
||||||
|
echo "Usage '.jaaENV' files: "
|
||||||
|
echo " typical: '\nphp=5.6\nnodejs=16.13.0'"
|
||||||
|
echo " link: '. ../.jaaENV' … use settings from parent folder"
|
||||||
|
echo " Options:"
|
||||||
|
echo " 'android_home': Exports 'ANDROID_HOME' (uses 'ANDROID_HOME_BAK') instead of new 'ANDROID_SDK_ROOT'. Value can be anything (use '1')."
|
||||||
|
echo " 'jdk': Exports 'JAVA_HOME' based on wanted version (currently 11/1.8)"
|
||||||
|
echo " 'nodejs'|'php': NodeJS/PHP versions"
|
||||||
|
echo " 'gradle': Cordova uses folder scoped → so unnecesarly"
|
||||||
|
echo ""
|
||||||
|
echo "Install: "
|
||||||
|
echo " gradle ⇒ https://sdkman.io/"
|
||||||
|
echo " node ⇒ https://github.com/nvm-sh/nvm"
|
||||||
|
echo " php ⇒ http://jdem.cz/fgyu56 + https://deb.sury.org/"
|
||||||
|
echo ""
|
||||||
|
echo "Tips:"
|
||||||
|
echo " sudo update-alternatives --set php /usr/bin/php\$php"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ "$1" = "--save" ]; then
|
||||||
|
shift
|
||||||
|
rm -vi .jaaENV
|
||||||
|
while test $# -gt 0
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
nodejs|node)
|
||||||
|
local nodejs_version=$(node --version)
|
||||||
|
echo "nodejs=${nodejs_version:1}" >> .jaaENV
|
||||||
|
;;
|
||||||
|
gradle)
|
||||||
|
local gradle_version=$(gradle --version | head -n 3 | tail -n 1 | §awk 2)
|
||||||
|
echo "gradle=$gradle_version" >> .jaaENV
|
||||||
|
;;
|
||||||
|
php)
|
||||||
|
local php_version=$(php --version | head -n 1 | §awk 2)
|
||||||
|
echo "php=$php_version" >> .jaaENV
|
||||||
|
;;
|
||||||
|
java)
|
||||||
|
local java_version=$(java -version 2>&1 | head -n 1 | cut -d'"' -f2 | cut -d'.' -f1)
|
||||||
|
echo "java=$java_version" >> .jaaENV
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unknown '$1' – skipped"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ "$1" = "--ls" ]; then
|
||||||
|
echo ":: nvm ls ::\n"
|
||||||
|
nvm ls
|
||||||
|
echo ":: find /usr/bin/ -name php* ::\n"
|
||||||
|
find /usr/bin/ -name php*
|
||||||
|
echo ":: sdk ls gradle | cat :: "
|
||||||
|
sdk ls gradle | cat
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "compose.yaml" ]; then
|
||||||
|
jdk=$(grep -Po 'VERSION_JAVA=\K.*' compose.yaml)
|
||||||
|
nodejs=$(grep -Po 'VERSION_NODEJS=\K.*' compose.yaml)
|
||||||
|
else
|
||||||
|
. ./.jaaENV
|
||||||
|
fi
|
||||||
|
if [ ! -z ${java+x} ]; then
|
||||||
|
[[ "$java" == "8" ]] && java=1.8
|
||||||
|
local java_local=$(java -version 2>&1 | head -n 1 | cut -d'"' -f2)
|
||||||
|
if [[ "$java_local" != "$java"* ]]; then
|
||||||
|
[[ "$java" == "1.8" ]] && java=8
|
||||||
|
echo "java $java ← $java_local"
|
||||||
|
local v="/usr/lib/jvm/java-$java-openjdk-amd64/"
|
||||||
|
[[ "$java" == "8" ]] && local vv="jre/" || local vv=""
|
||||||
|
sudo update-alternatives --set java ${v}${vv}bin/java
|
||||||
|
local javac=$(update-alternatives --list javac | grep java-$java)
|
||||||
|
[ $javac ] && sudo update-alternatives --set javac $javac
|
||||||
|
sudo -k
|
||||||
|
fi
|
||||||
|
export JAVA_HOME=$(update-alternatives --display java | grep momentálně | §awk 5 | cut -d \/ -f1-5)/
|
||||||
|
echo \$JAVA_HOME=$JAVA_HOME
|
||||||
|
fi
|
||||||
|
if [ ! -z ${android_home+x} ]; then export ANDROID_HOME=$ANDROID_HOME_BAK; echo "\$ANDROID_HOME=$ANDROID_HOME"; else unset ANDROID_HOME; echo "\$ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT"; fi
|
||||||
|
if [ ! -z ${android_home_is_sdk+x} ]; then export ANDROID_HOME=$ANDROID_SDK_ROOT; echo "\$ANDROID_HOME=$ANDROID_HOME"; fi
|
||||||
|
if [ ! -z ${jdk+x} ]; then
|
||||||
|
if (( $(echo "$jdk > 9" | bc -l) )); then
|
||||||
|
export JAVA_HOME_bk=$JAVA_HOME
|
||||||
|
export JAVA_HOME=/snap/android-studio/current/android-studio/jre;
|
||||||
|
elif [ ! -z ${JAVA_HOME_bk+x} ]; then
|
||||||
|
export JAVA_HOME=$JAVA_HOME_bk
|
||||||
|
fi
|
||||||
|
echo "\$JAVA_HOME=$JAVA_HOME"
|
||||||
|
fi
|
||||||
|
if [ ! -z ${nodejs+x} ]; then nvm use $nodejs; fi
|
||||||
|
if [ ! -z ${gradle+x} ]; then sdk use gradle $gradle | tr -d '\n'; echo ; fi
|
||||||
|
if [ ! -z ${php+x} ]; then
|
||||||
|
local php_local=$(php --version | head -n 1 | §awk 2)
|
||||||
|
if [[ "$php_local" == "$php"* ]]; then
|
||||||
|
echo "php $php"
|
||||||
|
else
|
||||||
|
echo "php $php ← $php_local"
|
||||||
|
sudo update-alternatives --set php /usr/bin/php$php
|
||||||
|
sudo -k
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset android_home
|
||||||
|
unset nodejs
|
||||||
|
unset gradle
|
||||||
|
unset php
|
||||||
|
unset java
|
||||||
|
}
|
3
.bash/.bash_nvm
Normal file
3
.bash/.bash_nvm
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export NVM_DIR="$HOME/.nvm"
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
62
.bash/.bash_promt
Normal file
62
.bash/.bash_promt
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
function setPromt {
|
||||||
|
if [ "$color_prompt" != yes ]; then
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
case "$TERM" in
|
||||||
|
xterm*|rxvt*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
PROMPT_COMMAND=updatePromt
|
||||||
|
PS2="|"
|
||||||
|
}
|
||||||
|
function updatePromt {
|
||||||
|
local prev_exit="$?"
|
||||||
|
# history -n; history -w; history -c; history -r;
|
||||||
|
# color_helper_>>color<< (Note: \[\]= escaping)
|
||||||
|
local chR="\[\e[1;91m\]" #red
|
||||||
|
local chW="\[\033[00m\]" #white
|
||||||
|
local chG="\[\033[01;32m\]" #green
|
||||||
|
local chB="\[\033[0;34m\]" #blue
|
||||||
|
local chP="\[\033[0;35m\]" #purple
|
||||||
|
local chY="\[\033[0;33m\]" #yellow
|
||||||
|
PS1=""
|
||||||
|
if [ $prev_exit == 0 ]; then
|
||||||
|
PS1+="$chG✓ $chW"
|
||||||
|
else
|
||||||
|
PS1+="$chR✗ $chW"
|
||||||
|
fi
|
||||||
|
local jobs="$(jobs | wc -l)"
|
||||||
|
if [ $jobs != 0 ]; then
|
||||||
|
PS1+="${chY}≡$jobs$chW"
|
||||||
|
fi
|
||||||
|
PS1+="${debian_chroot:+($debian_chroot)}"
|
||||||
|
PS1+=" At ${chG}\A${chW}"
|
||||||
|
PS1+=" by ${chP}\u${chW}"
|
||||||
|
if sudo -n true 2>/dev/null; then
|
||||||
|
PS1+="${chR} (sudo)${chW}"
|
||||||
|
fi
|
||||||
|
PS1+=" in "
|
||||||
|
if \git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||||
|
local branch="$(\git symbolic-ref -q HEAD)"
|
||||||
|
PS1+="[${branch#refs/heads/}"
|
||||||
|
local status="$(git for-each-ref --format='%(upstream:trackshort)' refs/heads | awk '!seen[$1]++ {printf $1}')"
|
||||||
|
status+="$(git status --porcelain | awk '!seen[$1]++ {printf $1}')"
|
||||||
|
if [ "$statua"s ]; then
|
||||||
|
PS1+="|$chY$status$chW"
|
||||||
|
fi
|
||||||
|
PS1+="] "
|
||||||
|
fi
|
||||||
|
PS1+="${chB}\w${chW}"
|
||||||
|
PS1+="\n:"
|
||||||
|
history -a
|
||||||
|
}
|
||||||
|
setPromt
|
||||||
|
unset color_prompt
|
||||||
|
unset -f setPromt
|
||||||
|
|
||||||
|
# vim: set filetype=sh tabstop=4 shiftwidth=4 textwidth=250 expandtab :
|
3
.bash/.bash_sdkman
Normal file
3
.bash/.bash_sdkman
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#THIS MUST BE AT THE END OF THE `$HOME/.bashrc` FOR SDKMAN TO WORK!!!
|
||||||
|
export SDKMAN_DIR="$HOME/.sdkman"
|
||||||
|
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
|
7
.bash/.profile_androidsdk
Normal file
7
.bash/.profile_androidsdk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# IMPORT IN `$HOME/.profile`
|
||||||
|
export ANDROID_HOME_BAK="$HOME/.local/share/umake/android/android-studio"
|
||||||
|
export ANDROID_SDK_ROOT="$HOME/.local/share/umake/android/android-studio-sdk"
|
||||||
|
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/
|
||||||
|
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools/
|
||||||
|
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/
|
||||||
|
export PATH=$PATH:$ANDROID_SDK_ROOT/emulator/
|
11
.bash/README.md
Normal file
11
.bash/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Bash
|
||||||
|
|
||||||
|
## Related files
|
||||||
|
- [../.bashrc](../.bashrc)
|
||||||
|
- [../.profile](../.profile)
|
||||||
|
- [../.inputrc](../.inputrc) – Vim bindings for bash
|
||||||
|
- [../.XCompose](../.XCompose) – [Compose key - Wikipedia (en)](https://en.wikipedia.org/wiki/Compose_key), [Klávesa Compose a typografický exkurz z rychlíku (cs)](https://jaandrle.github.io/blog/2020-10/klavesa-compose-a-typografie/)
|
||||||
|
- [./\*](./)
|
||||||
|
|
||||||
|
## Bash completion
|
||||||
|
Completions on demand, use `C--*`, see [./.bash_completions](./.bash_completions)
|
134
.bash/cordova.completion
Normal file
134
.bash/cordova.completion
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
platforms() {
|
||||||
|
get_cordova && COMPREPLY=( $(compgen -W "$(${CORDOVA_BIN} platform ls | tr -d "[]',")" -- $1) )
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins() {
|
||||||
|
get_cordova && COMPREPLY=( $(compgen -W "$(${CORDOVA_BIN} plugin ls | tr -d "[]',")" -- $1) )
|
||||||
|
}
|
||||||
|
|
||||||
|
get_cordova() {
|
||||||
|
local cordova
|
||||||
|
if [[ -n "${CORDOVA_BIN}" ]]; then return 0; fi
|
||||||
|
cordova=$(eval echo ${COMP_WORDS[0]})
|
||||||
|
if [[ -x $cordova ]]; then CORDOVA_BIN=$cordova; return 0; fi
|
||||||
|
cordova=$(which cordova)
|
||||||
|
if [[ $? -eq 0 ]]; then CORDOVA_BIN=$cordova; return 0; fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_top_level_dir() {
|
||||||
|
local path
|
||||||
|
path=$(pwd)
|
||||||
|
while [ $path != '/' ]; do
|
||||||
|
if [ -d $path/.cordova ]; then
|
||||||
|
echo $path
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
path=$(dirname $path)
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
_cordova()
|
||||||
|
{
|
||||||
|
local cur prev opts
|
||||||
|
COMPREPLY=()
|
||||||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
|
||||||
|
# Skip over any initial command line switches
|
||||||
|
local i=1
|
||||||
|
while [[ $i -lt ${#COMP_WORDS[*]} ]] && [[ "${COMP_WORDS[${i}]}" == -* ]]; do
|
||||||
|
i=$((i+1));
|
||||||
|
done
|
||||||
|
|
||||||
|
# For the first word, supply all of the valid top-level commands
|
||||||
|
if [[ ${COMP_CWORD} -eq $i ]]; then
|
||||||
|
opts="help create info platform plugin prepare compile build clean run emulate serve"
|
||||||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "${COMP_WORDS[$i]}" in
|
||||||
|
create)
|
||||||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||||
|
COMPREPLY=( $(compgen -d -- ${cur}) )
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
platform)
|
||||||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||||
|
opts="add rm remove ls"
|
||||||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
case "${COMP_WORDS[$((i+1))]}" in
|
||||||
|
add)
|
||||||
|
opts="ios android wp7 wp8 blackberry www"
|
||||||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||||
|
return 0;
|
||||||
|
;;
|
||||||
|
rm|remove)
|
||||||
|
platforms ${cur}
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
plugin)
|
||||||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||||
|
opts="add rm remove ls"
|
||||||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
case "${COMP_WORDS[$((i+1))]}" in
|
||||||
|
add)
|
||||||
|
COMPREPLY=( $(compgen nospace -d -- ${cur}) )
|
||||||
|
return 0;
|
||||||
|
;;
|
||||||
|
rm|remove)
|
||||||
|
plugins ${cur}
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
prepare|compile|emulate)
|
||||||
|
platforms ${cur}
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
build)
|
||||||
|
platforms ${cur}
|
||||||
|
COMPREPLY+=( $(compgen -W '--release --debug --help --device --emulator --buildConfig' -- ${cur}) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
run)
|
||||||
|
platforms ${cur}
|
||||||
|
COMPREPLY+=( $(compgen -W '--list --noprepare --nobuild --target --release --debug --help --device --emulator --buildConfig' -- ${cur}) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
serve)
|
||||||
|
if [[ ${COMP_CWORD} -eq $((i+1)) ]]; then
|
||||||
|
platforms ${cur}
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
complete -F _cordova cordova
|
2540
.bash/himalaya.completion
Normal file
2540
.bash/himalaya.completion
Normal file
File diff suppressed because it is too large
Load Diff
106
.bashrc
106
.bashrc
@ -1,63 +1,65 @@
|
|||||||
export GREP_COLOR="1;32"
|
#### BASH Config file
|
||||||
export EDITOR="vim"
|
### Jan Andrle
|
||||||
export SUDO_EDITOR="vim"
|
## Info:
|
||||||
export VISUAL="vim"
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) for examples
|
||||||
|
export EDITOR='vim'
|
||||||
|
BASH_DOTFILES=$HOME/.bash
|
||||||
|
[ -f $BASH_DOTFILES/.bash_aliases ] && . $BASH_DOTFILES/.bash_aliases
|
||||||
|
shopt -s expand_aliases
|
||||||
|
|
||||||
|
[ -f $BASH_DOTFILES/.bash_jaaENV ] && . $BASH_DOTFILES/.bash_jaaENV
|
||||||
|
[ -f $BASH_DOTFILES/.bash_sdkman ] && . $BASH_DOTFILES/.bash_sdkman
|
||||||
|
[ -f $BASH_DOTFILES/.bash_nvm ] && . $BASH_DOTFILES/.bash_nvm
|
||||||
|
# Install Ruby Gems to ~/.local/share/gems
|
||||||
|
export GEM_HOME="$HOME/.local/share/gems"
|
||||||
|
export PATH="$HOME/.local/share/gems/bin:$HOME/.local/bin:$PATH"
|
||||||
|
[ -f $BASH_DOTFILES/.bash_completions ] && . $BASH_DOTFILES/.bash_completions # for Vim
|
||||||
|
|
||||||
[[ -f /etc/bashrc ]] && . /etc/bashrc # Source global definitions
|
|
||||||
[ -d "$HOME/bin" ] && PATH="$HOME/bin:$PATH"
|
|
||||||
[[ $- != *i* ]] && return # If not running interactively, don't do anything
|
[[ $- != *i* ]] && return # If not running interactively, don't do anything
|
||||||
|
|
||||||
export HISTCONTROL=ignoreboth:erasedups
|
## General
|
||||||
shopt -s histappend cmdhist
|
set -o vi # VIM mode for bash
|
||||||
shopt -s histverify
|
|
||||||
export HISTSIZE=1000
|
|
||||||
export HISTFILESIZE=2000
|
|
||||||
|
|
||||||
set -o vi
|
|
||||||
bind -m vi-command 'Control-l: clear-screen'
|
bind -m vi-command 'Control-l: clear-screen'
|
||||||
bind -m vi-insert 'Control-l: clear-screen'
|
bind -m vi-insert 'Control-l: clear-screen'
|
||||||
|
|
||||||
export MANPAGER="/bin/sh -c \"col -b | vim --not-a-term -c 'set ft=man ts=8 nomod nolist noma' -\""
|
export MANPAGER="/bin/sh -c \"col -b | vim --not-a-term -c 'set ft=man ts=8 nomod nolist noma' -\""
|
||||||
|
shopt -s checkwinsize # dynamic columns update after every cmd
|
||||||
|
|
||||||
|
## History
|
||||||
|
export HISTCONTROL=ignoreboth:erasedups # No duplicate entries and started with spaces. See bash(1) for more options
|
||||||
|
shopt -s histappend cmdhist # saving multiline + append
|
||||||
|
export HISTFILESIZE=10000 # increase history file size (default is 500)
|
||||||
|
export HISTSIZE=${HISTFILESIZE} # increase history size (default is 500)
|
||||||
|
export HSTR_CONFIG=hicolor,prompt-bottom
|
||||||
|
export HSTR_PROMPT='?: '
|
||||||
|
|
||||||
|
## UI/UX
|
||||||
|
# clors for .inputrc (set colored-stats On)
|
||||||
export LS_COLORS=$LS_COLORS:'tw=01;04;34:ow=01;04;34:'
|
export LS_COLORS=$LS_COLORS:'tw=01;04;34:ow=01;04;34:'
|
||||||
|
# set variable identifying the chroot you work in (used in the prompt below)
|
||||||
|
[ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ] && debian_chroot=$(cat /etc/debian_chroot)
|
||||||
|
# Set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
[[ $TERM == "xterm-color" ]] || [[ $TERM == *-256color ]] && color_prompt=yes
|
||||||
|
[ ! -x /usr/bin/tput ] || ! tput setaf 1 >&/dev/null && color_prompt=
|
||||||
|
|
||||||
alias myip='curl -s -m 5 https://ipleak.net/json/'
|
[ -f $BASH_DOTFILES/.bash_promt ] && . $BASH_DOTFILES/.bash_promt
|
||||||
alias q='exit'
|
|
||||||
if [ -x /usr/bin/dircolors ]; then
|
|
||||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
|
||||||
alias ls='ls --color=auto'
|
|
||||||
alias dir='dir --color=auto'
|
|
||||||
alias vdir='vdir --color=auto'
|
|
||||||
|
|
||||||
alias grep='grep --color=auto'
|
# Add an "alert" alias for long running commands. Use like so:
|
||||||
alias fgrep='fgrep --color=auto'
|
# sleep 10; alert
|
||||||
alias egrep='egrep --color=auto'
|
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||||
alias diff='diff --color=auto'
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
fi
|
fi
|
||||||
alias myls='ls -pQFhA --group-directories-first'
|
fi
|
||||||
alias myrm='rm -vi'
|
export GPG_TTY=$(tty)
|
||||||
alias mycp='cp -vi'
|
|
||||||
alias mymv='mv -vi'
|
|
||||||
alias mydf='df -Th'
|
|
||||||
alias myless='less -R -S'
|
|
||||||
mylsl(){ mls -l $* --color=always | mless; }
|
|
||||||
|
|
||||||
myup(){ cd $(eval printf '../'%.0s {1..$1}); }
|
# HSTR configuration - add this to ~/.bashrc
|
||||||
mkcd(){ mkdir -p "${1:?}" && cd "${1}"; }
|
# if this is interactive shell, then bind hstr to Ctrl-space
|
||||||
update(){ ~/update.sh && mv ~/update_new.sh ~/update.sh; }
|
if [[ $- =~ .*i.* ]]; then bind '"\C-@": "\e^ihstr -- \n"'; fi
|
||||||
myping(){ # Pings ip address of noip.com and www.google.com.
|
|
||||||
ping -c 1 -q 8.23.224.107 | grep --color=never -A 1 -i '\---'
|
|
||||||
ping -c 1 -q www.google.com | grep --color=never -A 1 -i '\---'
|
|
||||||
}
|
|
||||||
pushd(){ builtin pushd "$@" >/dev/null && dirs -v; }
|
|
||||||
popd() { builtin popd "$@" >/dev/null && dirs -v; }
|
|
||||||
usevim() { ln -s $PREFIX/bin/vim ~/bin/termux-file-editor; }
|
|
||||||
|
|
||||||
LAST_PWD_PATH="$(dirname "${BASH_SOURCE[0]}")/.bash_last_pwd"
|
|
||||||
[ -f "$LAST_PWD_PATH" ] && OLDPWD=`cat $LAST_PWD_PATH`
|
|
||||||
cd(){ builtin cd "$@" && echo `pwd` > "$LAST_PWD_PATH"; }
|
|
||||||
|
|
||||||
alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'
|
|
||||||
source ./.bash/complete-alias/complete_alias
|
|
||||||
complete -F _complete_alias gitdotfiles
|
|
||||||
|
|
||||||
# termux-setup-storage
|
|
||||||
|
50
.config/TabNine/tabnine_config.json
Normal file
50
.config/TabNine/tabnine_config.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"version": "4.1.33",
|
||||||
|
"hide_promotional_message": false,
|
||||||
|
"beta_enabled": "No",
|
||||||
|
"ignore_all_lsp": false,
|
||||||
|
"creation_time": "2022-04-13T07:50:41.488698952Z",
|
||||||
|
"guuid": null,
|
||||||
|
"semantic_status": {},
|
||||||
|
"enable_telemetry": true,
|
||||||
|
"user_understands_that_enabling_tabnine_cloud_sends_code_to_tabnine_servers": true,
|
||||||
|
"deep_completions_work_mode": "Hybrid",
|
||||||
|
"hosted_deep_completions_enabled": "Disabled",
|
||||||
|
"tabnine_cloud_host": null,
|
||||||
|
"tabnine_cloud_certificate_domain": null,
|
||||||
|
"tabnine_cloud_port": null,
|
||||||
|
"cloud_whitelist": [],
|
||||||
|
"num_of_suggestions": 5,
|
||||||
|
"line_suggestions": null,
|
||||||
|
"rlhf": null,
|
||||||
|
"omit_prefix_suggestions": null,
|
||||||
|
"api_key": null,
|
||||||
|
"api_base_url": null,
|
||||||
|
"binary_update_interval_seconds": null,
|
||||||
|
"local_enabled": "Unset",
|
||||||
|
"disable_local_when_using_battery": false,
|
||||||
|
"hide_deep_information_message": false,
|
||||||
|
"enable_power_saving_mode": false,
|
||||||
|
"rate_limit_interval_seconds": null,
|
||||||
|
"rate_limit_amount": null,
|
||||||
|
"generation": 47,
|
||||||
|
"local_model_size": null,
|
||||||
|
"model_hash_override": null,
|
||||||
|
"local_indexing": null,
|
||||||
|
"heartbeat_interval_seconds": null,
|
||||||
|
"last_service_level": "FreeCloudRegistered",
|
||||||
|
"override_beams": null,
|
||||||
|
"override_context_length": null,
|
||||||
|
"onboarding": null,
|
||||||
|
"has_git_repos": null,
|
||||||
|
"gusr": null,
|
||||||
|
"exclude_file_masks": null,
|
||||||
|
"inline_suggestions_mode": true,
|
||||||
|
"use_specialized_model_if_available": null,
|
||||||
|
"snippets_enabled_v2": true,
|
||||||
|
"inline_suggestions_mode_clients": null,
|
||||||
|
"tabnine_hub_port": null,
|
||||||
|
"manually_selected_model": null,
|
||||||
|
"hybrid_rendering_mode": null,
|
||||||
|
"force_local_hub": false
|
||||||
|
}
|
37
.config/bubblemail/bubblemail.cfg
Normal file
37
.config/bubblemail/bubblemail.cfg
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
[core]
|
||||||
|
version = 1.8
|
||||||
|
debug = 0
|
||||||
|
poll_interval = 1
|
||||||
|
show_auth_warn = 1
|
||||||
|
window_size = [957, 993]
|
||||||
|
enabled_plugins = ["libnotifyplugin"]
|
||||||
|
plugins_order = ["libnotifyplugin", "spamfilterplugin", "userscriptplugin", "soundplugin"]
|
||||||
|
|
||||||
|
[libnotifyplugin]
|
||||||
|
show_account_errors = 1
|
||||||
|
show_account_name = 1
|
||||||
|
show_avatar = 1
|
||||||
|
newest_first = 1
|
||||||
|
group_mails = 1
|
||||||
|
max_visible_mails = 10
|
||||||
|
show_unread_count = 1
|
||||||
|
|
||||||
|
[Account 16a4e497]
|
||||||
|
backend = imap
|
||||||
|
name = CentrumCZ
|
||||||
|
type = internal
|
||||||
|
server = imap.centrum.cz
|
||||||
|
user = andrle.jan
|
||||||
|
proxy = 0
|
||||||
|
unsecure = 0
|
||||||
|
enabled = 1
|
||||||
|
webmail =
|
||||||
|
port =
|
||||||
|
pxytype =
|
||||||
|
pxyurl =
|
||||||
|
pxyport =
|
||||||
|
pxyusr =
|
||||||
|
pxypass =
|
||||||
|
uuid = 16a4e497
|
||||||
|
folders = ["INBOX", "Hromadn\u00e1", "_Prace", "_Sluzby"]
|
||||||
|
|
38
.config/coc/ultisnips/all.snippets
Normal file
38
.config/coc/ultisnips/all.snippets
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# A valid snippet should starts with:
|
||||||
|
#
|
||||||
|
# snippet trigger_word [ "description" [ options ] ]
|
||||||
|
#
|
||||||
|
# and end with:
|
||||||
|
#
|
||||||
|
# endsnippet
|
||||||
|
#
|
||||||
|
# Snippet options:
|
||||||
|
#
|
||||||
|
# b - Beginning of line.
|
||||||
|
# i - In-word expansion.
|
||||||
|
# w - Word boundary.
|
||||||
|
# r - Regular expression
|
||||||
|
# e - Custom context snippet
|
||||||
|
# A - Snippet will be triggered automatically, when condition matches.
|
||||||
|
#
|
||||||
|
# Basic example:
|
||||||
|
#
|
||||||
|
# snippet emitter "emitter properties" b
|
||||||
|
# private readonly ${1} = new Emitter<$2>()
|
||||||
|
# public readonly ${1/^_(.*)/$1/}: Event<$2> = this.$1.event
|
||||||
|
# endsnippet
|
||||||
|
#
|
||||||
|
# Online reference: https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt
|
||||||
|
snippet cmt "/* | */"
|
||||||
|
${1}/* ${0} */
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet f "inline function"
|
||||||
|
${1}function${2}(${3}){${0}}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet fun "function"
|
||||||
|
${1}function ${2:name}(${3:params}){
|
||||||
|
${0:/* code */}
|
||||||
|
}
|
||||||
|
endsnippet
|
20
.config/coc/ultisnips/gitcommit.snippets
Normal file
20
.config/coc/ultisnips/gitcommit.snippets
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# an idea from https://github.com/robinpokorny/git3moji
|
||||||
|
# [](https://robinpokorny.github.io/git3moji/)
|
||||||
|
snippet zap--⚡️–features-primary-concerns-3 ""
|
||||||
|
:zap:
|
||||||
|
endsnippet
|
||||||
|
snippet bug--🐛-fixes-3 ""
|
||||||
|
:bug:
|
||||||
|
endsnippet
|
||||||
|
snippet zapcop--⚡️👮-refactoring-3 ""
|
||||||
|
:zap::cop:
|
||||||
|
endsnippet
|
||||||
|
snippet tv--📺–ci-tooling-configuration-3 ""
|
||||||
|
:tv:
|
||||||
|
endsnippet
|
||||||
|
snippet cop--👮–tests-linting-comments-3 ""
|
||||||
|
:cop:
|
||||||
|
endsnippet
|
||||||
|
snippet abc--🔤-documentation-3 ""
|
||||||
|
:abc:
|
||||||
|
endsnippet
|
204
.config/coc/ultisnips/gitcommit.snippets-bak
Normal file
204
.config/coc/ultisnips/gitcommit.snippets-bak
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
snippet alembic--experimenting-new-things "" b
|
||||||
|
:alembic:
|
||||||
|
endsnippet
|
||||||
|
snippet alien--updating-code-due-to-external-api-changes "" b
|
||||||
|
:alien:
|
||||||
|
endsnippet
|
||||||
|
snippet ambulance--critical-hotfix "" b
|
||||||
|
:ambulance:
|
||||||
|
endsnippet
|
||||||
|
snippet apple--fixing-something-on-macos "" b
|
||||||
|
:apple:
|
||||||
|
endsnippet
|
||||||
|
snippet arrow_down--downgrading-dependencies "" b
|
||||||
|
:arrow_down:
|
||||||
|
endsnippet
|
||||||
|
snippet arrow_up--upgrading-dependencies "" b
|
||||||
|
:arrow_up:
|
||||||
|
endsnippet
|
||||||
|
snippet art--improving-structure--format-of-the-code "" b
|
||||||
|
:art:
|
||||||
|
endsnippet
|
||||||
|
snippet beers--writing-code-drunkenly "" b
|
||||||
|
:beers:
|
||||||
|
endsnippet
|
||||||
|
snippet bento--adding-or-updating-assets "" b
|
||||||
|
:bento:
|
||||||
|
endsnippet
|
||||||
|
snippet bookmark--releasing--version-tags "" b
|
||||||
|
:bookmark:
|
||||||
|
endsnippet
|
||||||
|
snippet boom--introducing-breaking-changes "" b
|
||||||
|
:boom:
|
||||||
|
endsnippet
|
||||||
|
snippet bug--fixing-a-bug "" b
|
||||||
|
:bug:
|
||||||
|
endsnippet
|
||||||
|
snippet building_construction--making-architectural-changes "" b
|
||||||
|
:building_construction:
|
||||||
|
endsnippet
|
||||||
|
snippet bulb--documenting-source-code "" b
|
||||||
|
:bulb:
|
||||||
|
endsnippet
|
||||||
|
snippet busts_in_silhouette--add-contributor(s) "" b
|
||||||
|
:busts_in_silhouette:
|
||||||
|
endsnippet
|
||||||
|
snippet camera_flash--adding-or-updating-snapshots "" b
|
||||||
|
:camera_flash:
|
||||||
|
endsnippet
|
||||||
|
snippet card_file_box--performing-database-related-changes "" b
|
||||||
|
:card_file_box:
|
||||||
|
endsnippet
|
||||||
|
snippet chart_with_upwards_trend--adding-analytics-or-tracking-code "" b
|
||||||
|
:chart_with_upwards_trend:
|
||||||
|
endsnippet
|
||||||
|
snippet checkered_flag--fixing-something-on-windows "" b
|
||||||
|
:checkered_flag:
|
||||||
|
endsnippet
|
||||||
|
snippet children_crossing--improving-user-experience--usability "" b
|
||||||
|
:children_crossing:
|
||||||
|
endsnippet
|
||||||
|
snippet clown_face--mocking-things "" b
|
||||||
|
:clown_face:
|
||||||
|
endsnippet
|
||||||
|
snippet construction--work-in-progress "" b
|
||||||
|
:construction:
|
||||||
|
endsnippet
|
||||||
|
snippet construction_worker--adding-ci-build-system "" b
|
||||||
|
:construction_worker:
|
||||||
|
endsnippet
|
||||||
|
snippet dizzy--adding-or-updating-animations-and-transitions "" b
|
||||||
|
:dizzy:
|
||||||
|
endsnippet
|
||||||
|
snippet egg--adding-an-easter-egg "" b
|
||||||
|
:egg:
|
||||||
|
endsnippet
|
||||||
|
snippet fire--removing-code-or-files "" b
|
||||||
|
:fire:
|
||||||
|
endsnippet
|
||||||
|
snippet globe_with_meridians--internationalization-and-localization "" b
|
||||||
|
:globe_with_meridians:
|
||||||
|
endsnippet
|
||||||
|
snippet goal_net--catching-errors"-b
|
||||||
|
:goal_net:
|
||||||
|
endsnippet
|
||||||
|
snippet green_apple--fixing-something-on-ios "" b
|
||||||
|
:green_apple:
|
||||||
|
endsnippet
|
||||||
|
snippet green_heart--fixing-ci-build "" b
|
||||||
|
:green_heart:
|
||||||
|
endsnippet
|
||||||
|
snippet heavy_minus_sign--removing-a-dependency "" b
|
||||||
|
:heavy_minus_sign:
|
||||||
|
endsnippet
|
||||||
|
snippet heavy_plus_sign--adding-a-dependency "" b
|
||||||
|
:heavy_plus_sign:
|
||||||
|
endsnippet
|
||||||
|
snippet iphone--working-on-responsive-design "" b
|
||||||
|
:iphone:
|
||||||
|
endsnippet
|
||||||
|
snippet label--adding-or-updating-types--flow--typescript "" b
|
||||||
|
:label:
|
||||||
|
endsnippet
|
||||||
|
snippet lipstick--updating-the-ui-and-style-files "" b
|
||||||
|
:lipstick:
|
||||||
|
endsnippet
|
||||||
|
snippet lock--fixing-security-issues "" b
|
||||||
|
:lock:
|
||||||
|
endsnippet
|
||||||
|
snippet loud_sound--adding-logs "" b
|
||||||
|
:loud_sound:
|
||||||
|
endsnippet
|
||||||
|
snippet mag--improving-seo "" b
|
||||||
|
:mag:
|
||||||
|
endsnippet
|
||||||
|
snippet memo--add-or-update-documentation "" b
|
||||||
|
:memo:
|
||||||
|
endsnippet
|
||||||
|
snippet mute--removing-logs "" b
|
||||||
|
:mute:
|
||||||
|
endsnippet
|
||||||
|
snippet ok_hand--updating-code-due-to-code-review-changes "" b
|
||||||
|
:ok_hand:
|
||||||
|
endsnippet
|
||||||
|
snippet package--updating-compiled-files-or-packages "" b
|
||||||
|
:package:
|
||||||
|
endsnippet
|
||||||
|
snippet page_facing_up--adding-or-updating-license "" b
|
||||||
|
:page_facing_up:
|
||||||
|
endsnippet
|
||||||
|
snippet pencil--writing-docs "" b
|
||||||
|
:pencil:
|
||||||
|
endsnippet
|
||||||
|
snippet pencil2--fixing-typos "" b
|
||||||
|
:pencil2:
|
||||||
|
endsnippet
|
||||||
|
snippet penguin--fixing-something-on-linux "" b
|
||||||
|
:penguin:
|
||||||
|
endsnippet
|
||||||
|
snippet poop--writing-bad-code-that-needs-to-be-improved "" b
|
||||||
|
:poop:
|
||||||
|
endsnippet
|
||||||
|
snippet pushpin--pinning-dependencies-to-specific-versions "" b
|
||||||
|
:pushpin:
|
||||||
|
endsnippet
|
||||||
|
snippet recycle--refactoring-code "" b
|
||||||
|
:recycle:
|
||||||
|
endsnippet
|
||||||
|
snippet rewind--reverting-changes "" b
|
||||||
|
:rewind:
|
||||||
|
endsnippet
|
||||||
|
snippet robot--fixing-something-on-android "" b
|
||||||
|
:robot:
|
||||||
|
endsnippet
|
||||||
|
snippet rocket--deploying-stuff "" b
|
||||||
|
:rocket:
|
||||||
|
endsnippet
|
||||||
|
snippet rotating_light--removing-linter-warnings "" b
|
||||||
|
:rotating_light:
|
||||||
|
endsnippet
|
||||||
|
snippet see_no_evil--adding-or-updating-a- "" b
|
||||||
|
:see_no_evil:
|
||||||
|
endsnippet
|
||||||
|
snippet seedling--adding-or-updating-seed-files"-b
|
||||||
|
:seedling:
|
||||||
|
endsnippet
|
||||||
|
snippet sparkles--introducing-new-features "" b
|
||||||
|
:sparkles:
|
||||||
|
endsnippet
|
||||||
|
snippet speech_balloon--updating-text-and-literals "" b
|
||||||
|
:speech_balloon:
|
||||||
|
endsnippet
|
||||||
|
snippet tada--initial-commit "" b
|
||||||
|
:tada:
|
||||||
|
endsnippet
|
||||||
|
snippet triangular_flag_on_post--adding--updating--or-removing-feature-flags "" b
|
||||||
|
:triangular_flag_on_post:
|
||||||
|
endsnippet
|
||||||
|
snippet truck--moving-or-renaming-files "" b
|
||||||
|
:truck:
|
||||||
|
endsnippet
|
||||||
|
snippet twisted_rightwards_arrows--merging-branches "" b
|
||||||
|
:twisted_rightwards_arrows:
|
||||||
|
endsnippet
|
||||||
|
snippet wastebasket--deprecating-code-that-needs-to-be-cleaned-up "" b
|
||||||
|
:wastebasket:
|
||||||
|
endsnippet
|
||||||
|
snippet whale--work-about-docker "" b
|
||||||
|
:whale:
|
||||||
|
endsnippet
|
||||||
|
snippet wheel_of_dharma--work-about-kubernetes "" b
|
||||||
|
:wheel_of_dharma:
|
||||||
|
endsnippet
|
||||||
|
snippet wheelchair--improving-accessibility "" b
|
||||||
|
:wheelchair:
|
||||||
|
endsnippet
|
||||||
|
snippet white_check_mark--updating-tests "" b
|
||||||
|
:white_check_mark:
|
||||||
|
endsnippet
|
||||||
|
snippet wrench--changing-configuration-files "" b
|
||||||
|
:wrench:
|
||||||
|
endsnippet
|
||||||
|
snippet zap--improving-performance "" b
|
||||||
|
:zap:
|
||||||
|
endsnippet
|
38
.config/coc/ultisnips/html.snippets
Normal file
38
.config/coc/ultisnips/html.snippets
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
snippet sceleton "HTML5" b
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
|
||||||
|
<html class="no-js" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
|
||||||
|
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
|
||||||
|
<!-- DEL https://github.com/jensimmons/cssremedy -->
|
||||||
|
|
||||||
|
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
|
||||||
|
<title></title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
|
||||||
|
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- DEL -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cmt "comment"
|
||||||
|
<!-- ${0} -->
|
||||||
|
endsnippet
|
||||||
|
snippet cmt.js "comment"
|
||||||
|
/* ${0} */
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet viewport_cordova "viewport used in cordova apps"
|
||||||
|
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
|
||||||
|
endsnippet
|
||||||
|
snippet csp_cordova "CSP used in cordova"
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
|
||||||
|
endsnippet
|
87
.config/coc/ultisnips/javascript.snippets
Normal file
87
.config/coc/ultisnips/javascript.snippets
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
snippet sceleton_node "nodejs" b
|
||||||
|
#!/usr/bin/env node
|
||||||
|
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet sceleton_cli "nodejsscript" b
|
||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet sceleton_zx "zx" b
|
||||||
|
#!/usr/bin/env zx
|
||||||
|
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet jshint "JSHint header" b
|
||||||
|
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
|
||||||
|
/* global ${0} */
|
||||||
|
endsnippet
|
||||||
|
snippet global "JSHint global"
|
||||||
|
/* global ${0} */
|
||||||
|
endsnippet
|
||||||
|
snippet global_ns "JSHint global"
|
||||||
|
/* ${1} *//* global ${0} */
|
||||||
|
endsnippet
|
||||||
|
snippet devel "JSHint devel"
|
||||||
|
${1}/* jshint devel: true *///gulp.keep.line${0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet log "console.log"
|
||||||
|
${1}console.log('${0}');
|
||||||
|
endsnippet
|
||||||
|
snippet stor "localStorage"
|
||||||
|
${1}localStorage.${2:g}etItem("${0}");
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet import "import with backward order"
|
||||||
|
import ${2:values} from "${1:specifier}";$0
|
||||||
|
endsnippet
|
||||||
|
snippet promise "return? new Promise"
|
||||||
|
${1:return }new Promise(function(resolve, reject){
|
||||||
|
${0:/* async code */}
|
||||||
|
});
|
||||||
|
endsnippet
|
||||||
|
snippet for "classical loop"
|
||||||
|
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
|
||||||
|
${0:/* statement */}
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
snippet foreach "PHP-like name" b
|
||||||
|
for(${2:const} ${3:element} of ${1:iterable}){
|
||||||
|
${0:/* statement */}
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
snippet switch "classical switch"
|
||||||
|
switch (${1}){
|
||||||
|
case ${2}:
|
||||||
|
${0}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
snippet desctr "object destructure"
|
||||||
|
${1:const} { $0 }= ${2:def};
|
||||||
|
endsnippet
|
||||||
|
snippet ready "document ready"
|
||||||
|
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
|
||||||
|
endsnippet
|
||||||
|
snippet readyEvent "vanilla JS content ready event name"
|
||||||
|
${1}DOMContentLoaded${0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet selid
|
||||||
|
${1}document.getElementById('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet seltag
|
||||||
|
${1}getElementsByTagName('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet selclass
|
||||||
|
${1}getElementsByClassName('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet sel
|
||||||
|
${1}querySelector('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet selall
|
||||||
|
${1}querySelectorAll('${0}')
|
||||||
|
endsnippet
|
1
.config/coc/ultisnips/javascriptreact.snippets
Normal file
1
.config/coc/ultisnips/javascriptreact.snippets
Normal file
@ -0,0 +1 @@
|
|||||||
|
extends javascript
|
14
.config/coc/ultisnips/json.snippets
Normal file
14
.config/coc/ultisnips/json.snippets
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
snippet jshint "JSHint config for package.json" b
|
||||||
|
"jshintConfig": {
|
||||||
|
"esversion": 6,
|
||||||
|
"browser": "true",
|
||||||
|
"undef": "true",
|
||||||
|
"latedef": "true",
|
||||||
|
"maxparams": 4,
|
||||||
|
"maxdepth": 3,
|
||||||
|
"maxcomplexity": 17,
|
||||||
|
"globals": {
|
||||||
|
"gulp_place": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
endsnippet
|
37
.config/coc/ultisnips/markdown.snippets
Normal file
37
.config/coc/ultisnips/markdown.snippets
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
extends html
|
||||||
|
snippet sceleton "HTML5" b
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
|
||||||
|
<html class="no-js" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
|
||||||
|
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
|
||||||
|
<!-- DEL https://github.com/jensimmons/cssremedy -->
|
||||||
|
|
||||||
|
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
|
||||||
|
<title></title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
|
||||||
|
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- DEL -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cmt "comment"
|
||||||
|
<!-- ${0} -->
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet viewport_cordova "viewport used in cordova apps"
|
||||||
|
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
|
||||||
|
endsnippet
|
||||||
|
snippet csp_cordova "CSP used in cordova"
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
|
||||||
|
endsnippet
|
||||||
|
#endextends
|
2366
.config/coc/ultisnips/php.snippets
Normal file
2366
.config/coc/ultisnips/php.snippets
Normal file
File diff suppressed because it is too large
Load Diff
9
.config/coc/ultisnips/sh.snippets
Normal file
9
.config/coc/ultisnips/sh.snippets
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
snippet sceleton "bash" b
|
||||||
|
#!/usr/bin/env ${1:bash}
|
||||||
|
set -eou pipefail
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet info "script name and version" b
|
||||||
|
this="${0##*/}"
|
||||||
|
version="`date +%Y-%m-%d`"
|
||||||
|
endsnippet
|
1
.config/coc/ultisnips/typescript.snippets
Normal file
1
.config/coc/ultisnips/typescript.snippets
Normal file
@ -0,0 +1 @@
|
|||||||
|
extends javascript
|
1
.config/coc/ultisnips/typescriptreact.snippets
Normal file
1
.config/coc/ultisnips/typescriptreact.snippets
Normal file
@ -0,0 +1 @@
|
|||||||
|
extends javascript
|
124
.config/coc/ultisnips/vue.snippets
Normal file
124
.config/coc/ultisnips/vue.snippets
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
extends javascript, html
|
||||||
|
snippet sceleton_node "nodejs" b
|
||||||
|
#!/usr/bin/env node
|
||||||
|
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet sceleton_cli "nodejsscript" b
|
||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet sceleton_zx "zx" b
|
||||||
|
#!/usr/bin/env zx
|
||||||
|
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||||
|
${0}
|
||||||
|
endsnippet
|
||||||
|
snippet jshint "JSHint header" b
|
||||||
|
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
|
||||||
|
/* global ${0} */
|
||||||
|
endsnippet
|
||||||
|
snippet global "JSHint global"
|
||||||
|
/* global ${0} */
|
||||||
|
endsnippet
|
||||||
|
snippet global_ns "JSHint global"
|
||||||
|
/* ${1} *//* global ${0} */
|
||||||
|
endsnippet
|
||||||
|
snippet devel "JSHint devel"
|
||||||
|
${1}/* jshint devel: true *///gulp.keep.line${0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet log "console.log"
|
||||||
|
${1}console.log('${0}');
|
||||||
|
endsnippet
|
||||||
|
snippet stor "localStorage"
|
||||||
|
${1}localStorage.${2:g}etItem("${0}");
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet import "import with backward order"
|
||||||
|
import ${2:values} from "${1:specifier}";$0
|
||||||
|
endsnippet
|
||||||
|
snippet promise "return? new Promise"
|
||||||
|
${1:return }new Promise(function(resolve, reject){
|
||||||
|
${0:/* async code */}
|
||||||
|
});
|
||||||
|
endsnippet
|
||||||
|
snippet for "classical loop"
|
||||||
|
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
|
||||||
|
${0:/* statement */}
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
snippet foreach "PHP-like name" b
|
||||||
|
for(${2:const} ${3:element} of ${1:iterable}){
|
||||||
|
${0:/* statement */}
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
snippet switch "classical switch"
|
||||||
|
switch (${1}){
|
||||||
|
case ${2}:
|
||||||
|
${0}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
endsnippet
|
||||||
|
snippet desctr "object destructure"
|
||||||
|
${1:const} { $0 }= ${2:def};
|
||||||
|
endsnippet
|
||||||
|
snippet ready "document ready"
|
||||||
|
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
|
||||||
|
endsnippet
|
||||||
|
snippet readyEvent "vanilla JS content ready event name"
|
||||||
|
${1}DOMContentLoaded${0}
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet selid
|
||||||
|
${1}document.getElementById('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet seltag
|
||||||
|
${1}getElementsByTagName('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet selclass
|
||||||
|
${1}getElementsByClassName('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet sel
|
||||||
|
${1}querySelector('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet selall
|
||||||
|
${1}querySelectorAll('${0}')
|
||||||
|
endsnippet
|
||||||
|
snippet sceleton "HTML5" b
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
|
||||||
|
<html class="no-js" lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
|
||||||
|
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
|
||||||
|
<!-- DEL https://github.com/jensimmons/cssremedy -->
|
||||||
|
|
||||||
|
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
|
||||||
|
<title></title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
|
||||||
|
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- DEL -->
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet cmt "comment"
|
||||||
|
<!-- ${0} -->
|
||||||
|
endsnippet
|
||||||
|
|
||||||
|
snippet viewport_cordova "viewport used in cordova apps"
|
||||||
|
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
|
||||||
|
endsnippet
|
||||||
|
snippet csp_cordova "CSP used in cordova"
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
|
||||||
|
endsnippet
|
||||||
|
#endextends
|
19
.config/gh/config.yml
Normal file
19
.config/gh/config.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# What protocol to use when performing git operations. Supported values: ssh, https
|
||||||
|
git_protocol: ssh
|
||||||
|
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
|
||||||
|
editor:
|
||||||
|
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
|
||||||
|
prompt: enabled
|
||||||
|
# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager.
|
||||||
|
pager:
|
||||||
|
# Aliases allow you to create nicknames for gh commands
|
||||||
|
aliases:
|
||||||
|
§modules: issue list --label "modules (auxiliary)" --state "closed"
|
||||||
|
§grepAsana_: '!grep "Issue is synchronized with this \[Asana task\]" | §awk -F "(" 2 | §awk -F ")" 1 | §awk -F "/" 6'
|
||||||
|
§indigo: api user/orgs -q '.[0].login'
|
||||||
|
§workflow-test: '!git commit -mWIP .github/workflows/$1 && git push && gh workflow run --ref $(git rev-parse --abbrev-ref HEAD) $@'
|
||||||
|
# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
|
||||||
|
http_unix_socket:
|
||||||
|
# What web browser gh should use when opening URLs. If blank, will refer to environment.
|
||||||
|
browser:
|
||||||
|
version: "1"
|
245
.config/github-releases/config.json
Normal file
245
.config/github-releases/config.json
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
{
|
||||||
|
"target": "/home/jaandrle/bin/",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"repository": "shiftkey/desktop",
|
||||||
|
"name": "GitHub Desktop",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "github-desktop",
|
||||||
|
"exec": "yes",
|
||||||
|
"description": "Fork of GitHub Desktop to support various Linux distributions",
|
||||||
|
"last_update": "2024-03-31T17:49:36Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/github-desktop",
|
||||||
|
"version": "release-3.3.12-linux2",
|
||||||
|
"glare": ".*x86_64.*.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "jaandrle/jaaCSS-cli",
|
||||||
|
"name": "jaaCSS",
|
||||||
|
"description": "EXPERIMENT – Helper for managing functional CSS classes",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "jaaCSS.js",
|
||||||
|
"exec": "yes",
|
||||||
|
"downloads": "/home/jaandrle/bin/jaaCSS.js",
|
||||||
|
"version": "v1.3.2",
|
||||||
|
"last_update": "2022-09-02T13:33:16Z",
|
||||||
|
"glare": "jaaCSS.js"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "th-ch/youtube-music",
|
||||||
|
"name": "youtube-music",
|
||||||
|
"description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "youtube-music",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-13T14:34:34Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/youtube-music",
|
||||||
|
"version": "v3.3.6",
|
||||||
|
"glare": "AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "ArchGPT/insomnium",
|
||||||
|
"name": "insomnium",
|
||||||
|
"description": "Insomnium is a fast local API testing tool that is privacy-focused and 100% local. For testing GraphQL, REST, WebSockets and gRPC. This is a fork of Kong/insomnia",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "insomnium",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-11-13T10:03:28Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/insomnium",
|
||||||
|
"tag_name_regex": "core@.*",
|
||||||
|
"version": "core@0.2.3-a",
|
||||||
|
"glare": "AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "Kong/insomnia",
|
||||||
|
"name": "insomnia",
|
||||||
|
"description": "The open-source, cross-platform API client for GraphQL, REST, and gRPC.",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "insomnia",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-17T16:38:03Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/insomnia",
|
||||||
|
"tag_name_regex": "core@.*",
|
||||||
|
"version": "core@9.0.0-beta.4",
|
||||||
|
"glare": "AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "rvpanoz/luna",
|
||||||
|
"name": "luna",
|
||||||
|
"description": "Manage npm dependencies through a modern UI.",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "luna",
|
||||||
|
"exec": "yes",
|
||||||
|
"glare": "AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "angela-d/wifi-channel-watcher",
|
||||||
|
"name": "wifi-channel-watcher",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "wifi-channel-watcher",
|
||||||
|
"exec": "no",
|
||||||
|
"description": "Monitor channel usage of neighboring routers & get an alert if your active channel is not optimal.\tTroubleshoot wifi without lifting a finger!"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "vinceliuice/Tela-circle-icon-theme",
|
||||||
|
"name": "Tela-circle-icon-theme",
|
||||||
|
"description": "Tela-circle-icon-theme",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "tela-circle-icon-theme.zip",
|
||||||
|
"last_update": "2021-07-19T14:12:05Z",
|
||||||
|
"exec": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "AppImage/AppImageKit",
|
||||||
|
"name": "AppImageKit",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "appimagekit",
|
||||||
|
"exec": "yes",
|
||||||
|
"description": "Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.freenode.net",
|
||||||
|
"glare": ".*x86_64.*.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "dynobo/normcap",
|
||||||
|
"name": "NormCap",
|
||||||
|
"description": "Switched to flatpak version | OCR powered screen-capture tool to capture information instead of images",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "normcap",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-12-12T22:23:37Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/normcap",
|
||||||
|
"version": "v0.5.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "upscayl/upscayl",
|
||||||
|
"name": "upscayl",
|
||||||
|
"description": "🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "upscayl",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-25T04:29:38Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/upscayl",
|
||||||
|
"version": "v2.11.0",
|
||||||
|
"glare": "AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "RasmusLindroth/tut",
|
||||||
|
"name": "tut",
|
||||||
|
"description": "TUI for Mastodon with vim inspired keys",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "tut",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-01-26T17:48:00Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/tut",
|
||||||
|
"version": "2.0.1",
|
||||||
|
"glare": "tut-amd64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "sunner/ChatALL",
|
||||||
|
"name": "ChatALL",
|
||||||
|
"description": " Concurrently chat with ChatGPT, Bing Chat, bard, Alpaca, Vincuna, Claude, ChatGLM, MOSS, iFlytek Spark, ERNIE and more, discover the best answers",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "chatall",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-14T02:09:42Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/chatall",
|
||||||
|
"version": "v1.71.100",
|
||||||
|
"glare": ".*x86_64.*.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "jaandrle/bs",
|
||||||
|
"name": "bs",
|
||||||
|
"description": "The simplest possible build system using executables",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "bs",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-28T13:16:41Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/bs",
|
||||||
|
"version": "v0.7.4",
|
||||||
|
"glare": "bs-linux"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "h3poteto/fedistar",
|
||||||
|
"name": "Fedistar",
|
||||||
|
"description": "Multi-column Mastodon, Pleroma, and Friendica client for desktop",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "fedistar",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-09T14:08:12Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/fedistar",
|
||||||
|
"version": "v1.9.3",
|
||||||
|
"glare": ".*amd64.*.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "ollama/ollama",
|
||||||
|
"name": "ollama",
|
||||||
|
"description": "Get up and running with Llama 2 and other large language models locally",
|
||||||
|
"group": "ai",
|
||||||
|
"file_name": "ollama",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-28T17:51:17Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/ollama",
|
||||||
|
"version": "v0.1.33-rc5",
|
||||||
|
"glare": "linux-amd64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "neovim/neovim",
|
||||||
|
"name": "neovim",
|
||||||
|
"tag_name_regex": "v.*",
|
||||||
|
"description": "Vim-fork focused on extensibility and usability",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "nvim",
|
||||||
|
"exec": "yes",
|
||||||
|
"downloads": "/home/jaandrle/bin/nvim",
|
||||||
|
"version": "v0.9.5",
|
||||||
|
"last_update": "2023-12-30T13:31:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "viarotel-org/escrcpy",
|
||||||
|
"name": "Escrcpy",
|
||||||
|
"description": "📱 Graphical Scrcpy to display and control Android, devices powered by Electron. | 使用图形化的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱动。",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "escrcpy",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-28T02:36:35Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/escrcpy",
|
||||||
|
"version": "v1.18.3",
|
||||||
|
"glare": ".*x86_64.*.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "drovp/drovp",
|
||||||
|
"name": "drovp",
|
||||||
|
"description": "Desktop app for encoding, converting, upscaling, and much more.",
|
||||||
|
"group": "dev-test",
|
||||||
|
"file_name": "drovp",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-12-06T11:30:02Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/drovp",
|
||||||
|
"version": "0.8.0",
|
||||||
|
"glare": "x64.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "janhq/jan",
|
||||||
|
"name": "Jan",
|
||||||
|
"description": "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer",
|
||||||
|
"group": "ai",
|
||||||
|
"file_name": "jan",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-25T06:07:39Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/jan",
|
||||||
|
"version": "v0.4.12",
|
||||||
|
"glare": ".*x86_64.*.AppImage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "Bin-Huang/chatbox",
|
||||||
|
"name": "Chatbox",
|
||||||
|
"description": "Chatbox is a desktop client for ChatGPT, Claude and other LLMs, available on Windows, Mac, Linux",
|
||||||
|
"group": "ai",
|
||||||
|
"file_name": "Chatbox",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-04-18T08:15:47Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/Chatbox",
|
||||||
|
"version": "v1.3.5",
|
||||||
|
"glare": ".*x86_64.*.AppImage"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
39
.config/himalaya/config.toml
Normal file
39
.config/himalaya/config.toml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
name = "Jan Andrle"
|
||||||
|
downloads-dir = "~/Stažené"
|
||||||
|
|
||||||
|
[centrum]
|
||||||
|
default = true
|
||||||
|
email = "andrle.jan@centrum.cz"
|
||||||
|
|
||||||
|
imap-host = "imap.centrum.cz"
|
||||||
|
imap-port = 993
|
||||||
|
imap-login = "andrle.jan@centrum.cz"
|
||||||
|
imap-passwd-cmd = "bw get password mail-centrum"
|
||||||
|
|
||||||
|
smtp-host = "smtp.centrum.cz"
|
||||||
|
smtp-port = 465
|
||||||
|
smtp-login = "andrle.jan@centrum.cz"
|
||||||
|
smtp-passwd-cmd = "bw get password mail-centrum"
|
||||||
|
|
||||||
|
[centrum.mailboxes]
|
||||||
|
sent = "Odeslan&AOE- po&AWE-ta"
|
||||||
|
draft = "Koncepty"
|
||||||
|
|
||||||
|
[indigo]
|
||||||
|
email = "jan.andrle@indigo.cz"
|
||||||
|
|
||||||
|
imap-host = "imap.gmail.com"
|
||||||
|
imap-port = 993
|
||||||
|
imap-login = "jan.andrle@indigo.cz"
|
||||||
|
imap-passwd-cmd = "bw get password mail-gmail-indigo"
|
||||||
|
|
||||||
|
smtp-host = "smtp.gmail.com"
|
||||||
|
smtp-port = 465
|
||||||
|
smtp-login = "jan.andrle@indigo.cz"
|
||||||
|
smtp-passwd-cmd = "bw get password mail-gmail-indigo"
|
||||||
|
|
||||||
|
[indigo.mailboxes]
|
||||||
|
sent = "Odeslan&AOE- po&AWE-ta"
|
||||||
|
draft = "Koncepty"
|
||||||
|
|
||||||
|
# vim: ft=apachestyle cms=#\ %s :
|
8
.config/himalaya/template-inbox.json
Normal file
8
.config/himalaya/template-inbox.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[
|
||||||
|
{ "type": "text", "value": "Složka 'Příchozí'" },
|
||||||
|
{ "type": "himalaya", "value": [ "-m", "inbox", "list" ], "label": "inbox" },
|
||||||
|
{ "type": "text", "value": "Složka 'Hromadná'" },
|
||||||
|
{ "type": "himalaya", "value": [ "-m", "Hromadn&AOE-", "list" ], "label": "Hromadná" },
|
||||||
|
{ "type": "text", "value": "Složka 'Práce'" },
|
||||||
|
{ "type": "himalaya", "value": [ "-m", "_Prace", "list" ], "label": "_Prace" }
|
||||||
|
]
|
2
.config/kdedefaults/kcminputrc
Normal file
2
.config/kdedefaults/kcminputrc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[Mouse]
|
||||||
|
cursorTheme=breeze_cursors
|
8
.config/kdedefaults/kdeglobals
Normal file
8
.config/kdedefaults/kdeglobals
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[General]
|
||||||
|
ColorScheme=BreezeDark
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Theme=breeze-dark
|
||||||
|
|
||||||
|
[KDE]
|
||||||
|
widgetStyle=Breeze
|
2
.config/kdedefaults/kscreenlockerrc
Normal file
2
.config/kdedefaults/kscreenlockerrc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[Greeter]
|
||||||
|
Theme=org.kde.breezedark.desktop
|
3
.config/kdedefaults/ksplashrc
Normal file
3
.config/kdedefaults/ksplashrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[KSplash]
|
||||||
|
Engine=KSplashQML
|
||||||
|
Theme=org.kde.breezedark.desktop
|
6
.config/kdedefaults/kwinrc
Normal file
6
.config/kdedefaults/kwinrc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Windows]
|
||||||
|
Placement=Centered
|
||||||
|
|
||||||
|
[org.kde.kdecoration2]
|
||||||
|
library=org.kde.breeze
|
||||||
|
theme=Breeze
|
1
.config/kdedefaults/package
Normal file
1
.config/kdedefaults/package
Normal file
@ -0,0 +1 @@
|
|||||||
|
org.kde.breezedark.desktop
|
2
.config/kdedefaults/plasmarc
Normal file
2
.config/kdedefaults/plasmarc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[Theme]
|
||||||
|
name=default
|
53
.config/nodejsscript/completions.json
Normal file
53
.config/nodejsscript/completions.json
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0",
|
||||||
|
"scripts": {
|
||||||
|
"§vim_plugins.mjs": {
|
||||||
|
"npx": false,
|
||||||
|
"completions": {
|
||||||
|
"path": [],
|
||||||
|
"clone": [
|
||||||
|
"-t",
|
||||||
|
"--target",
|
||||||
|
"-b",
|
||||||
|
"--branch"
|
||||||
|
],
|
||||||
|
"C": "clone",
|
||||||
|
"remove": [],
|
||||||
|
"R": "remove",
|
||||||
|
"rm": "remove",
|
||||||
|
"list": [
|
||||||
|
"-t",
|
||||||
|
"--type"
|
||||||
|
],
|
||||||
|
"L": "list",
|
||||||
|
"ls": "list",
|
||||||
|
"export": [],
|
||||||
|
"status": [],
|
||||||
|
"S": "status",
|
||||||
|
"pull": [],
|
||||||
|
"P": "pull",
|
||||||
|
"update": "pull"
|
||||||
|
},
|
||||||
|
"completions_all": [
|
||||||
|
"--help",
|
||||||
|
"--version"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"§time.mjs": {
|
||||||
|
"npx": false,
|
||||||
|
"completions": {
|
||||||
|
"diff": [
|
||||||
|
"--unit"
|
||||||
|
],
|
||||||
|
"?": "diff",
|
||||||
|
"zone": [
|
||||||
|
"--z"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"completions_all": [
|
||||||
|
"--help",
|
||||||
|
"--version"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
28
.config/nodejsscript/nodejsscriptrc.mjs
Normal file
28
.config/nodejsscript/nodejsscriptrc.mjs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/* deprecated/fallback */
|
||||||
|
globalThis.cyclicLoop= function*(items){
|
||||||
|
if(!items) items= 'win32'===process.platform ? '|/-\\' : "⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏";
|
||||||
|
const { length }= items;
|
||||||
|
for(let i=0; true; i++){
|
||||||
|
if(i===length) i= 0;
|
||||||
|
yield items[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Reflect.defineProperty($, "clipboard", {
|
||||||
|
get(){ return s.$().run`xclip -o -selection clipboard`; }
|
||||||
|
})
|
||||||
|
|
||||||
|
// /** Custom uncaughtException function */
|
||||||
|
// export const uncaughtException= console.log;
|
||||||
|
// /** Place for custom code when script starts */
|
||||||
|
// export function onscript(){}
|
||||||
|
/** Place for custom code when REPL starts (`--interactive`) */
|
||||||
|
export function onrepl(){
|
||||||
|
Reflect.defineProperty(s, "jq", { get(){ return file=> s.cat(file).xargs(JSON.parse); } });
|
||||||
|
}
|
||||||
|
/** Place for custom code when eval starts (`--eval`/`--print`) */
|
||||||
|
export function oneval(){ /* --print/--echo aliases */
|
||||||
|
Reflect.defineProperty($, "nosed", { get(){ return this.stdin.text(""); }, });
|
||||||
|
Reflect.defineProperty($, "nojq", { get(){ return this.stdin.json(null); }, });
|
||||||
|
Reflect.defineProperty($, "noawk", { get(){ return this.stdin.lines([]); }, });
|
||||||
|
}
|
11
.config/normcap/settings.conf
Normal file
11
.config/normcap/settings.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[General]
|
||||||
|
color=#FF2E88
|
||||||
|
has-screenshot-permission=true
|
||||||
|
language=ces, eng
|
||||||
|
last-update-check=0
|
||||||
|
mode=parse
|
||||||
|
notification=true
|
||||||
|
show-introduction=false
|
||||||
|
tray=false
|
||||||
|
update=false
|
||||||
|
version=false
|
133
.config/rofi/breeze-dark.rasi
Normal file
133
.config/rofi/breeze-dark.rasi
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
/*
|
||||||
|
* breeze-dark.rasi
|
||||||
|
* rofi theme inspired by plasma breeze
|
||||||
|
* MonsieurBedard
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
/* Base */
|
||||||
|
default-background: rgba(49, 52, 56, 97.5%); // <- change this for transparency
|
||||||
|
default-foreground: rgba(239, 240, 241, 100%);
|
||||||
|
default-border: rgba(97, 101, 105, 100%);
|
||||||
|
alternative-background: rgba(35, 38, 41, 100%);
|
||||||
|
invisible: rgba(0, 0, 0, 0%);
|
||||||
|
|
||||||
|
/* Colors */
|
||||||
|
hard-blue: rgba(240, 84, 76, 100%);
|
||||||
|
light-blue: rgba(240, 84, 76, 25%);
|
||||||
|
|
||||||
|
hard-red: rgba(141, 58, 80, 100%);
|
||||||
|
light-red: rgba(77, 31, 37, 100%);
|
||||||
|
|
||||||
|
hard-green: rgba(39, 161, 69, 100%);
|
||||||
|
light-green: rgba(19, 55, 35, 100%);
|
||||||
|
|
||||||
|
/* Universal */
|
||||||
|
background-color: @invisible;
|
||||||
|
border-color: @default-border;
|
||||||
|
font: "Noto Sans 10";
|
||||||
|
text-color: @default-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
background-color: @default-background;
|
||||||
|
border: 1;
|
||||||
|
border-radius: 3;
|
||||||
|
border-color: @default-border;
|
||||||
|
padding: 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#message {
|
||||||
|
border: 1;
|
||||||
|
border-radius: 3;
|
||||||
|
padding: 5;
|
||||||
|
background-color: @alternative-background;
|
||||||
|
}
|
||||||
|
|
||||||
|
#textbox {
|
||||||
|
background-color: @entry-background;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
spacing: 2;
|
||||||
|
scrollbar: false;
|
||||||
|
padding: 2 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element {
|
||||||
|
padding: 5;
|
||||||
|
border: 1;
|
||||||
|
border-radius: 3;
|
||||||
|
border-color: @invisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.normal {
|
||||||
|
background-color: @invisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.urgent {
|
||||||
|
background-color: @light-red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.active {
|
||||||
|
background-color: @light-green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.normal {
|
||||||
|
background-color: @light-blue;
|
||||||
|
border-color: @hard-blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.urgent {
|
||||||
|
background-color: @light-red;
|
||||||
|
border-color: @hard-red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.active {
|
||||||
|
background-color: @light-green;
|
||||||
|
border-color: @hard-green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode-switcher {
|
||||||
|
spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button {
|
||||||
|
border: 0 0 3 0;
|
||||||
|
border-color: @invisible;
|
||||||
|
padding: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button.selected {
|
||||||
|
border-color: @hard-blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inputbar {
|
||||||
|
spacing: 0;
|
||||||
|
padding: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
padding: 3px;
|
||||||
|
background-color: @alternative-background;
|
||||||
|
border: 1 1 1 0;
|
||||||
|
border-radius: 0 2 2 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry {
|
||||||
|
background-color: @alternative-background;
|
||||||
|
padding: 3px;
|
||||||
|
border: 1 0 1 1;
|
||||||
|
border-radius: 2 0 0 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prompt {
|
||||||
|
padding: 3 7 3 0;
|
||||||
|
}
|
1
.config/rofi/config.rasi
Normal file
1
.config/rofi/config.rasi
Normal file
@ -0,0 +1 @@
|
|||||||
|
@theme "~/.config/rofi/breeze-dark.rasi"
|
7
.config/tut/accounts.toml
Normal file
7
.config/tut/accounts.toml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[[Accounts]]
|
||||||
|
Name = 'jaandrle'
|
||||||
|
Server = 'https://fosstodon.org'
|
||||||
|
ClientID = 'ggYBuM2y_jtFV_3wR4tGdJUoNh-4ZfVRl1SByK5bihU'
|
||||||
|
ClientSecret = 'j7ClbSP2UY8syZgV4E-7Kk1bf8Ph_6GQ7szcqVfqDtI'
|
||||||
|
AccessToken = '1iO5wZL-nXcC3dZGjxNHLcbbFoSZ3fmutno96oD_ZY8'
|
||||||
|
|
830
.config/tut/config.ini
Normal file
830
.config/tut/config.ini
Normal file
@ -0,0 +1,830 @@
|
|||||||
|
# Configuration file for tut
|
||||||
|
|
||||||
|
[general]
|
||||||
|
# Shows a confirmation view before actions such as favorite, delete toot, boost
|
||||||
|
# etc.
|
||||||
|
# default=true
|
||||||
|
confirmation=true
|
||||||
|
|
||||||
|
# Enable support for using the mouse in tut to select items.
|
||||||
|
# default=false
|
||||||
|
mouse-support=false
|
||||||
|
|
||||||
|
# Timelines adds windows of feeds. You can customize the number of feeds, what
|
||||||
|
# they should show and the key to activate them.
|
||||||
|
#
|
||||||
|
# Available timelines: home, direct, local, federated, special, bookmarks,
|
||||||
|
# saved, favorited, notifications, lists, mentions, tag
|
||||||
|
#
|
||||||
|
# The one named special are the home timeline with only boosts and/or replies.
|
||||||
|
#
|
||||||
|
# Tag is special as you need to add the tag after, see the example below.
|
||||||
|
#
|
||||||
|
# The syntax is:
|
||||||
|
# timelines=feed,[name],[keys...],[showBoosts],[showReplies]
|
||||||
|
#
|
||||||
|
# Tha values in brackets are optional. You can see the syntax for keys under the
|
||||||
|
# [input] section.
|
||||||
|
#
|
||||||
|
# showBoosts and showReplies must be formated as bools. So either true or false.
|
||||||
|
# They always defaults to true.
|
||||||
|
#
|
||||||
|
# Some examples:
|
||||||
|
#
|
||||||
|
# home timeline with the name Home
|
||||||
|
# timelines=home,Home
|
||||||
|
#
|
||||||
|
# local timeline with the name Local and it gets focus when you press 2. It will
|
||||||
|
# also hide boosts in the timeline, but show toots that are replies.
|
||||||
|
# timelines=local,Local,'2',false,true
|
||||||
|
#
|
||||||
|
# notification timeline with the name [N]otifications and it gets focus when you
|
||||||
|
# press n or N
|
||||||
|
# timelines=notifications,[N]otifications,'n','N'
|
||||||
|
#
|
||||||
|
# tag timeline for #linux with the name Linux and it gets focus when you press
|
||||||
|
# timelines=tag linux,Linux,"F2"
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# If you don't set any timelines it will default to this:
|
||||||
|
# timelines=home
|
||||||
|
# timelines=notifications,[N]otifications,'n','N'
|
||||||
|
#
|
||||||
|
timelines=lists,Lists,'1'
|
||||||
|
timelines=home,Home,'2'
|
||||||
|
timelines=notifications,Notifications,'3'
|
||||||
|
timelines=tag webdev,Webdev,'4'
|
||||||
|
|
||||||
|
|
||||||
|
# The date format to be used. See https://godoc.org/time#Time.Format
|
||||||
|
# default=2006-01-02 15:04
|
||||||
|
date-format=2006-01-02 15:04
|
||||||
|
|
||||||
|
# Format for dates the same day. See date-format for more info.
|
||||||
|
# default=15:04
|
||||||
|
date-today-format=15:04
|
||||||
|
|
||||||
|
# This displays relative dates instead for statuses that are one day or older
|
||||||
|
# the output is 1y2m1d (1 year 2 months and 1 day)
|
||||||
|
#
|
||||||
|
# The value is an integear
|
||||||
|
# -1 = don't use relative dates
|
||||||
|
# 0 = always use relative dates, except for dates < 1 day
|
||||||
|
# 1 - ∞ = number of days to use relative dates
|
||||||
|
#
|
||||||
|
# Example: date-relative=28 will display a relative date for toots that are
|
||||||
|
# between 1-28 days old. Otherwhise it will use the short or long format.
|
||||||
|
# default=-1
|
||||||
|
date-relative=-1
|
||||||
|
|
||||||
|
# The max width of text before it wraps when displaying toots.
|
||||||
|
# 0 = no restriction.
|
||||||
|
# default=0
|
||||||
|
max-width=0
|
||||||
|
|
||||||
|
# Where do you want the list of toots to be placed?
|
||||||
|
# Valid values: left, right, top, bottom.
|
||||||
|
# default=left
|
||||||
|
list-placement=right
|
||||||
|
|
||||||
|
# If you have notification-feed set to true you can display it under the main
|
||||||
|
# list of toots (row) or place it to the right of the main list of toots
|
||||||
|
# (column).
|
||||||
|
# default=row
|
||||||
|
list-split=column
|
||||||
|
|
||||||
|
# You can change the proportions of the list view in relation to the content
|
||||||
|
# view list-proportion=1 and content-proportoin=3 will result in the content
|
||||||
|
# taking up 3 times more space.
|
||||||
|
# Must be n > 0
|
||||||
|
# default=1
|
||||||
|
list-proportion=2
|
||||||
|
|
||||||
|
# See list-proportion
|
||||||
|
# default=2
|
||||||
|
content-proportion=1
|
||||||
|
|
||||||
|
# Hide notifications of this type. If you have multiple you separate them with a
|
||||||
|
# comma. Valid types: mention, status, boost, follow, follow_request, favorite,
|
||||||
|
# poll, edit.
|
||||||
|
# default=
|
||||||
|
notifications-to-hide=
|
||||||
|
|
||||||
|
# If you always want to quote original message when replying.
|
||||||
|
# default=false
|
||||||
|
quote-reply=false
|
||||||
|
|
||||||
|
# If you want to show icons in the list of toots.
|
||||||
|
# default=true
|
||||||
|
show-icons=true
|
||||||
|
|
||||||
|
# If you've learnt all the shortcut keys you can remove the help text and only
|
||||||
|
# show the key in tui. So it gets less cluttered.
|
||||||
|
# default=false
|
||||||
|
short-hints=false
|
||||||
|
|
||||||
|
# If you want to display the filter that filtered a toot.
|
||||||
|
# default=true
|
||||||
|
show-filter-phrase=true
|
||||||
|
|
||||||
|
# If you want to show a message in the cmdbar on how to access the help text.
|
||||||
|
# default=true
|
||||||
|
show-help=true
|
||||||
|
|
||||||
|
# If you always want tut to jump to the newest post. May ruin your reading
|
||||||
|
# experience.
|
||||||
|
# default=false
|
||||||
|
stick-to-top=false
|
||||||
|
|
||||||
|
# If you want to display the username of the person being boosted instead of the
|
||||||
|
# person that boosted.
|
||||||
|
# default=false
|
||||||
|
show-boosted-user=false
|
||||||
|
|
||||||
|
# 0 = No terminal title
|
||||||
|
# 1 = Show title in terminal and top bar
|
||||||
|
# 2 = Only show terminal title, and no top bar in tut.
|
||||||
|
# default=0
|
||||||
|
terminal-title=0
|
||||||
|
|
||||||
|
# If you don't want the whole UI to update, and only the text content you can
|
||||||
|
# set this option to true. This will lead to some artifacts being left on the
|
||||||
|
# screen when emojis are present. But it will keep the UI from flashing on every
|
||||||
|
# single toot in some terminals.
|
||||||
|
# default=true
|
||||||
|
redraw-ui=true
|
||||||
|
|
||||||
|
# The leader is used as a shortcut to run commands as you can do in Vim. By
|
||||||
|
# default this is disabled and you enable it by setting a leader-key. It can
|
||||||
|
# only consist of one char and I like to use comma as leader key. So to set it
|
||||||
|
# you write leader-key=,
|
||||||
|
# default=
|
||||||
|
leader-key=
|
||||||
|
|
||||||
|
# Number of milliseconds before the leader command resets. So if you tap the
|
||||||
|
# leader-key by mistake or are to slow it empties all the input after X
|
||||||
|
# milliseconds.
|
||||||
|
# default=1000
|
||||||
|
leader-timeout=1000
|
||||||
|
|
||||||
|
# You set actions for the leader-key with one or more leader-action. It consists
|
||||||
|
# of two parts first the action then the shortcut. And they're separated by a
|
||||||
|
# comma.
|
||||||
|
#
|
||||||
|
# Available commands: blocking, bookmarks, boosts, clear-notifications,
|
||||||
|
# close-window, compose, direct, edit, favorited, favorites, federated,
|
||||||
|
# followers, following, history, home, list-placement, list-split, lists, local,
|
||||||
|
# mentions, move-window-left, move-window-right, move-window-up,
|
||||||
|
# move-window-down, move-window-home, move-window-end, muting, newer,
|
||||||
|
# notifications, preferences, profile, proportions, refetch, saved, special-all,
|
||||||
|
# special-boosts, special-replies, stick-to-top, switch, tag, tags, window
|
||||||
|
#
|
||||||
|
# The ones named special-* are the home timeline with only boosts and/or
|
||||||
|
# replies. All contains both, -boosts only boosts and -replies only replies.
|
||||||
|
#
|
||||||
|
# The shortcuts are up to you, but keep them quite short and make sure they
|
||||||
|
# don't collide. If you have one shortcut that is "f" and an other one that is
|
||||||
|
# "fav", the one with "f" will always run and "fav" will never run.
|
||||||
|
#
|
||||||
|
# Some special leaders:
|
||||||
|
# tag is special as you need to add the tag after, e.g. tag linux
|
||||||
|
# window is special as it's a shortcut for switching between the timelines
|
||||||
|
# you've set under general and they are zero indexed. window 0 = your first
|
||||||
|
# timeline, window 1 = your second and so on.
|
||||||
|
# list-placement as it takes the argument top, right, bottom or left
|
||||||
|
# list-split as it takes the argument column or row
|
||||||
|
# proportions takes the arguments [int] [int], where the first integer is the
|
||||||
|
# list and the other content, e.g. proportions 1 3. See list-proportion above
|
||||||
|
# for more information.
|
||||||
|
# switch let's you go to a timeline if it already exists, if it doesn't it will
|
||||||
|
# open the timeline in a new window. The syntax is almost the same as in
|
||||||
|
# timelines= and is displayed under the examples.
|
||||||
|
#
|
||||||
|
# Some examples:
|
||||||
|
# leader-action=local,lo
|
||||||
|
# leader-action=lists,li
|
||||||
|
# leader-action=federated,fed
|
||||||
|
# leader-action=direct,d
|
||||||
|
# leader-action=history,h
|
||||||
|
# leader-action=tag linux,tl
|
||||||
|
# leader-action=window 0,h
|
||||||
|
# leader-action=list-placement bottom,b
|
||||||
|
# leader-action=list-split column,c
|
||||||
|
# leader-action=proportions 1 3,3
|
||||||
|
#
|
||||||
|
# Syntax for switch:
|
||||||
|
# leader-action=switch feed,shortcut,[name],[showBoosts],[showReplies]
|
||||||
|
# showBoosts can be either true or false and they are both optional. Here are
|
||||||
|
# some examples:
|
||||||
|
#
|
||||||
|
# leader-action=switch home,h,false,true
|
||||||
|
# leader-action=switch tag tut,tt
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
[media]
|
||||||
|
# Your image viewer.
|
||||||
|
# default=xdg-open
|
||||||
|
image-viewer=xdg-open
|
||||||
|
|
||||||
|
# Open the image viewer in the same terminal as toot. Only for terminal based
|
||||||
|
# viewers.
|
||||||
|
# default=false
|
||||||
|
image-terminal=false
|
||||||
|
|
||||||
|
# If images should open one by one e.g. "imv image.png" multiple times. If set
|
||||||
|
# to false all images will open at the same time like this "imv image1.png
|
||||||
|
# image2.png image3.png". Not all image viewers support this, so try it first.
|
||||||
|
# default=true
|
||||||
|
image-single=true
|
||||||
|
|
||||||
|
# If you want to open the images in reverse order. In some image viewers this
|
||||||
|
# will display the images in the "right" order.
|
||||||
|
# default=false
|
||||||
|
image-reverse=false
|
||||||
|
|
||||||
|
# Your video viewer.
|
||||||
|
# default=xdg-open
|
||||||
|
video-viewer=xdg-open
|
||||||
|
|
||||||
|
# Open the video viewer in the same terminal as toot. Only for terminal based
|
||||||
|
# viewers.
|
||||||
|
# default=false
|
||||||
|
video-terminal=false
|
||||||
|
|
||||||
|
# If videos should open one by one. See image-single.
|
||||||
|
# default=true
|
||||||
|
video-single=true
|
||||||
|
|
||||||
|
# If you want your videos in reverse order. In some video apps this will play
|
||||||
|
# the files in the "right" order.
|
||||||
|
# default=false
|
||||||
|
video-reverse=false
|
||||||
|
|
||||||
|
# Your audio viewer.
|
||||||
|
# default=xdg-open
|
||||||
|
audio-viewer=xdg-open
|
||||||
|
|
||||||
|
# Open the audio viewer in the same terminal as toot. Only for terminal based
|
||||||
|
# viewers.
|
||||||
|
# default=false
|
||||||
|
audio-terminal=false
|
||||||
|
|
||||||
|
# If audio should open one by one. See image-single.
|
||||||
|
# default=true
|
||||||
|
audio-single=true
|
||||||
|
|
||||||
|
# If you want to play the audio files in reverse order. In some audio apps this
|
||||||
|
# will play the files in the "right" order.
|
||||||
|
# default=false
|
||||||
|
audio-reverse=false
|
||||||
|
|
||||||
|
# Your web browser.
|
||||||
|
# default=xdg-open
|
||||||
|
link-viewer=xdg-open
|
||||||
|
|
||||||
|
# Open the browser in the same terminal as toot. Only for terminal based
|
||||||
|
# browsers.
|
||||||
|
# default=false
|
||||||
|
link-terminal=false
|
||||||
|
|
||||||
|
[open-custom]
|
||||||
|
# This sections allows you to set up to five custom programs to open URLs with.
|
||||||
|
# If the url points to an image, you can set c1-name to img and c1-use to imv.
|
||||||
|
# If the program runs in a terminal and you want to run it in the same terminal
|
||||||
|
# as tut. Set cX-terminal to true. The name will show up in the UI, so keep it
|
||||||
|
# short so all five fits.
|
||||||
|
#
|
||||||
|
# c1-name=name
|
||||||
|
# c1-use=program
|
||||||
|
# c1-terminal=false
|
||||||
|
#
|
||||||
|
# c2-name=name
|
||||||
|
# c2-use=program
|
||||||
|
# c2-terminal=false
|
||||||
|
#
|
||||||
|
# c3-name=name
|
||||||
|
# c3-use=program
|
||||||
|
# c3-terminal=false
|
||||||
|
#
|
||||||
|
# c4-name=name
|
||||||
|
# c4-use=program
|
||||||
|
# c4-terminal=false
|
||||||
|
#
|
||||||
|
# c5-name=name
|
||||||
|
# c5-use=program
|
||||||
|
# c5-terminal=false
|
||||||
|
|
||||||
|
[open-pattern]
|
||||||
|
# Here you can set your own glob patterns for opening matching URLs in the
|
||||||
|
# program you want them to open up in. You could for example open Youtube videos
|
||||||
|
# in your video player instead of your default browser.
|
||||||
|
#
|
||||||
|
# You must name the keys foo-pattern, foo-use and foo-terminal, where use is the
|
||||||
|
# program that will open up the URL. To see the syntax for glob pattern you can
|
||||||
|
# follow this URL https://github.com/gobwas/glob#syntax. foo-terminal is if the
|
||||||
|
# program runs in the terminal and should open in the same terminal as tut
|
||||||
|
# itself.
|
||||||
|
#
|
||||||
|
# Example for youtube.com and youtu.be to open up in mpv instead of the browser.
|
||||||
|
#
|
||||||
|
# y1-pattern=*youtube.com/watch*
|
||||||
|
# y1-use=mpv
|
||||||
|
# y1-terminal=false
|
||||||
|
#
|
||||||
|
# y2-pattern=*youtu.be/*
|
||||||
|
# y2-use=mpv
|
||||||
|
# y2-terminal=false
|
||||||
|
|
||||||
|
[desktop-notification]
|
||||||
|
# Notification when someone follows you.
|
||||||
|
# default=false
|
||||||
|
followers=false
|
||||||
|
|
||||||
|
# Notification when someone favorites one of your toots.
|
||||||
|
# default=false
|
||||||
|
favorite=false
|
||||||
|
|
||||||
|
# Notification when someone mentions you.
|
||||||
|
# default=false
|
||||||
|
mention=false
|
||||||
|
|
||||||
|
# Notification when someone edits their toot.
|
||||||
|
# default=false
|
||||||
|
update=false
|
||||||
|
|
||||||
|
# Notification when someone boosts one of your toots.
|
||||||
|
# default=false
|
||||||
|
boost=false
|
||||||
|
|
||||||
|
# Notification of poll results.
|
||||||
|
# default=false
|
||||||
|
poll=true
|
||||||
|
|
||||||
|
# Notification when there is new posts in current timeline.
|
||||||
|
# default=false
|
||||||
|
posts=false
|
||||||
|
|
||||||
|
[style]
|
||||||
|
# All styles can be represented in their HEX value like #ffffff or with their
|
||||||
|
# name, so in this case white. The only special value is "default" which equals
|
||||||
|
# to transparent, so it will be the same color as your terminal.
|
||||||
|
#
|
||||||
|
# You can also use xrdb colors like this xrdb:color1 The program will use colors
|
||||||
|
# prefixed with an * first then look for URxvt or XTerm if it can't find any
|
||||||
|
# color prefixed with an asterisk. If you don't want tut to guess the prefix you
|
||||||
|
# can set the prefix yourself. If the xrdb color can't be found a preset color
|
||||||
|
# will be used. You'll have to set theme=none for this to work.
|
||||||
|
|
||||||
|
# The xrdb prefix used for colors in .Xresources.
|
||||||
|
# default=guess
|
||||||
|
xrdb-prefix=guess
|
||||||
|
|
||||||
|
# You can use some themes that comes bundled with tut. Check out the themes
|
||||||
|
# available on the URL below. If a theme is named "nord.ini" you just write
|
||||||
|
# theme=nord
|
||||||
|
#
|
||||||
|
# https://github.com/RasmusLindroth/tut/tree/master/config/themes
|
||||||
|
#
|
||||||
|
# You can also create a theme file in your config directory e.g.
|
||||||
|
# ~/.config/tut/themes/foo.ini and then set theme=foo.
|
||||||
|
#
|
||||||
|
# If you want to use your own theme but don't want to create a new file, set
|
||||||
|
# theme=none and then you can create your own theme below.
|
||||||
|
# default=default
|
||||||
|
theme=default
|
||||||
|
|
||||||
|
# The background color used on most elements.
|
||||||
|
# default=
|
||||||
|
background=
|
||||||
|
|
||||||
|
# The text color used on most of the text.
|
||||||
|
# default=
|
||||||
|
text=
|
||||||
|
|
||||||
|
# The color to display subtle elements or subtle text. Like lines and help text.
|
||||||
|
# default=
|
||||||
|
subtle=
|
||||||
|
|
||||||
|
# The color for errors or warnings
|
||||||
|
# default=
|
||||||
|
warning-text=
|
||||||
|
|
||||||
|
# This color is used to display username.
|
||||||
|
# default=
|
||||||
|
text-special-one=
|
||||||
|
|
||||||
|
# This color is used to display username and key hints.
|
||||||
|
# default=
|
||||||
|
text-special-two=
|
||||||
|
|
||||||
|
# The color of the bar at the top
|
||||||
|
# default=
|
||||||
|
top-bar-background=
|
||||||
|
|
||||||
|
# The color of the text in the bar at the top.
|
||||||
|
# default=
|
||||||
|
top-bar-text=
|
||||||
|
|
||||||
|
# The color of the bar at the bottom
|
||||||
|
# default=
|
||||||
|
status-bar-background=
|
||||||
|
|
||||||
|
# The color of the text in the bar at the bottom.
|
||||||
|
# default=
|
||||||
|
status-bar-text=
|
||||||
|
|
||||||
|
# The color of the bar at the bottom in view mode.
|
||||||
|
# default=
|
||||||
|
status-bar-view-background=
|
||||||
|
|
||||||
|
# The color of the text in the bar at the bottom in view mode.
|
||||||
|
# default=
|
||||||
|
status-bar-view-text=
|
||||||
|
|
||||||
|
# The color of the text in the command bar at the bottom.
|
||||||
|
# default=
|
||||||
|
command-text=
|
||||||
|
|
||||||
|
# Background of selected list items.
|
||||||
|
# default=
|
||||||
|
list-selected-background=
|
||||||
|
|
||||||
|
# The text color of selected list items.
|
||||||
|
# default=
|
||||||
|
list-selected-text=
|
||||||
|
|
||||||
|
# The background color of selected list items that are out of focus.
|
||||||
|
# default=
|
||||||
|
list-selected-inactive-background=
|
||||||
|
|
||||||
|
# The text color of selected list items that are out of focus.
|
||||||
|
# default=
|
||||||
|
list-selected-inactive-text=
|
||||||
|
|
||||||
|
# The main color of the text for key hints
|
||||||
|
# default=
|
||||||
|
controls-text=
|
||||||
|
|
||||||
|
# The highlight color of for key hints
|
||||||
|
# default=
|
||||||
|
controls-highlight=
|
||||||
|
|
||||||
|
# The background color in dropdowns and autocompletions
|
||||||
|
# default=
|
||||||
|
autocomplete-background=
|
||||||
|
|
||||||
|
# The text color in dropdowns at autocompletions
|
||||||
|
# default=
|
||||||
|
autocomplete-text=
|
||||||
|
|
||||||
|
# The background color for selected value in dropdowns and autocompletions
|
||||||
|
# default=
|
||||||
|
autocomplete-selected-background=
|
||||||
|
|
||||||
|
# The text color for selected value in dropdowns and autocompletions
|
||||||
|
# default=
|
||||||
|
autocomplete-selected-text=
|
||||||
|
|
||||||
|
# The background color on selected button and the text color of unselected
|
||||||
|
# buttons
|
||||||
|
# default=
|
||||||
|
button-color-one=
|
||||||
|
|
||||||
|
# The text color on selected button and the background color of unselected
|
||||||
|
# buttons
|
||||||
|
# default=
|
||||||
|
button-color-two=
|
||||||
|
|
||||||
|
# The background on named timelines.
|
||||||
|
# default=
|
||||||
|
timeline-name-background=
|
||||||
|
|
||||||
|
# The text color on named timelines
|
||||||
|
# default=
|
||||||
|
timeline-name-text=
|
||||||
|
|
||||||
|
[input]
|
||||||
|
# You can edit the keys for tut below.
|
||||||
|
#
|
||||||
|
# The syntax is a bit weird, but it works. And I'll try to explain it as well as
|
||||||
|
# I can.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# status-favorite="[F]avorite","Un[F]avorite",'f','F'
|
||||||
|
# status-delete="[D]elete",'d','D'
|
||||||
|
#
|
||||||
|
# status-favorite and status-delete differs because favorite can be in two
|
||||||
|
# states, so you will have to add two key hints.
|
||||||
|
# Most keys will only have on key hint. Look at the default value for reference.
|
||||||
|
#
|
||||||
|
# Key hints must be in some of the following formats. Remember the quotation
|
||||||
|
# marks.
|
||||||
|
# "" = empty
|
||||||
|
# "[D]elete" = Delete with a highlighted D
|
||||||
|
# "Un[F]ollow" = UnFollow with a highlighted F
|
||||||
|
# "[Enter]" = Enter where everything is highlighted
|
||||||
|
# "Yan[K]" = YanK with a highlighted K
|
||||||
|
#
|
||||||
|
# After the hint (or hints) you must set the keys. You can do this in two ways,
|
||||||
|
# with single quotation marks or double ones.
|
||||||
|
#
|
||||||
|
# The single ones are for single chars like 'a', 'b', 'c' and double marks are
|
||||||
|
# for special keys like "Enter". Remember that they are case sensitive.
|
||||||
|
#
|
||||||
|
# To find the names of special keys you have to go to the following site and
|
||||||
|
# look for "var KeyNames = map[Key]string{"
|
||||||
|
#
|
||||||
|
# https://github.com/gdamore/tcell/blob/master/key.go
|
||||||
|
|
||||||
|
# Keys for moving down
|
||||||
|
# default="",'j','J',"Down"
|
||||||
|
global-down="",'j','J',"Down"
|
||||||
|
|
||||||
|
# Keys for moving up
|
||||||
|
# default="",'k','K',"Up"
|
||||||
|
global-up="",'k','K',"Up"
|
||||||
|
|
||||||
|
# To select items
|
||||||
|
# default="","Enter"
|
||||||
|
global-enter="","Enter"
|
||||||
|
|
||||||
|
# To go back
|
||||||
|
# default="[Esc]","Esc"
|
||||||
|
global-back="[Backspace]","Backspace2"
|
||||||
|
|
||||||
|
# To go back and exit Tut
|
||||||
|
# default="[Q]uit",'q','Q'
|
||||||
|
global-exit="[Q]uit",'q','Q'
|
||||||
|
|
||||||
|
# Move to the top
|
||||||
|
# default="",'g',"Home"
|
||||||
|
main-home="",'g',"Home"
|
||||||
|
|
||||||
|
# Move to the bottom
|
||||||
|
# default="",'G',"End"
|
||||||
|
main-end="",'G',"End"
|
||||||
|
|
||||||
|
# Go to previous feed
|
||||||
|
# default="",'h','H',"Left"
|
||||||
|
main-prev-feed="",'h','H',"Left"
|
||||||
|
|
||||||
|
# Go to next feed
|
||||||
|
# default="",'l','L',"Right"
|
||||||
|
main-next-feed="",'l','L',"Right"
|
||||||
|
|
||||||
|
# Focus on the previous feed window
|
||||||
|
# default="","Backtab"
|
||||||
|
main-prev-window="","Backtab"
|
||||||
|
|
||||||
|
# Focus on the next feed window
|
||||||
|
# default="","Tab"
|
||||||
|
main-next-window="","Tab"
|
||||||
|
|
||||||
|
# Focus on the notification list
|
||||||
|
# default="[N]otifications",'n','N'
|
||||||
|
main-notification-focus="[N]otifications",'n','N'
|
||||||
|
|
||||||
|
# Compose a new toot
|
||||||
|
# default="",'c','C'
|
||||||
|
main-compose="",'c','C'
|
||||||
|
|
||||||
|
# Open avatar
|
||||||
|
# default="[A]vatar",'a','A'
|
||||||
|
status-avatar="[A]vatar",'a','A'
|
||||||
|
|
||||||
|
# Boost a toot
|
||||||
|
# default="[B]oost","Un[B]oost",'b','B'
|
||||||
|
status-boost="[B]oost","Un[B]oost",'b','B'
|
||||||
|
|
||||||
|
# Edit a toot
|
||||||
|
# default="[E]dit",'e','E'
|
||||||
|
status-edit="[E]dit",'E'
|
||||||
|
|
||||||
|
# Delete a toot
|
||||||
|
# default="[D]elete",'d','D'
|
||||||
|
status-delete="[D]elete",'d','D'
|
||||||
|
|
||||||
|
# Favorite a toot
|
||||||
|
# default="[F]avorite","Un[F]avorite",'f','F'
|
||||||
|
status-favorite="[F]avorite","Un[F]avorite",'f','F'
|
||||||
|
|
||||||
|
# Open toots media files
|
||||||
|
# default="[M]edia",'m','M'
|
||||||
|
status-media="M[e]dia",'e'
|
||||||
|
|
||||||
|
# Open links
|
||||||
|
# default="[O]pen",'o','O'
|
||||||
|
status-links="[O]pen",'o','O'
|
||||||
|
|
||||||
|
# Open poll
|
||||||
|
# default="[P]oll",'p','P'
|
||||||
|
status-poll="Pol[l]",'l'
|
||||||
|
|
||||||
|
# Reply to toot
|
||||||
|
# default="[R]eply",'r','R'
|
||||||
|
status-reply="[R]eply",'r','R'
|
||||||
|
|
||||||
|
# Save/bookmark a toot
|
||||||
|
# default="[S]ave","Un[S]ave",'s','S'
|
||||||
|
status-bookmark="[S]ave","Un[S]ave",'s','S'
|
||||||
|
|
||||||
|
# View thread
|
||||||
|
# default="[T]hread",'t','T'
|
||||||
|
status-thread="[T]hread",'t','T'
|
||||||
|
|
||||||
|
# Open user profile
|
||||||
|
# default="[U]ser",'u','U'
|
||||||
|
status-user="[P]rofile",'p','P'
|
||||||
|
|
||||||
|
# Open the view mode
|
||||||
|
# default="[V]iew",'v','V'
|
||||||
|
status-view-focus="[V]iew",'v','V'
|
||||||
|
|
||||||
|
# Yank the url of the toot
|
||||||
|
# default="[Y]ank",'y','Y'
|
||||||
|
status-yank="[Y]ank",'y','Y'
|
||||||
|
|
||||||
|
# Show the content in a content warning
|
||||||
|
# default="Press [Z] to toggle cw",'z','Z'
|
||||||
|
status-toggle-cw="Press [x] to toggle cw",'x','X'
|
||||||
|
|
||||||
|
# Show the content of a filtered toot
|
||||||
|
# default="Press [Z] to view filtered toot",'z','Z'
|
||||||
|
status-show-filtered="Press [x] to view filtered toot",'x','X'
|
||||||
|
|
||||||
|
# View avatar
|
||||||
|
# default="[A]vatar",'a','A'
|
||||||
|
user-avatar="[A]vatar",'a','A'
|
||||||
|
|
||||||
|
# Block the user
|
||||||
|
# default="[B]lock","Un[B]lock",'b','B'
|
||||||
|
user-block="[B]lock","Un[B]lock",'b','B'
|
||||||
|
|
||||||
|
# Follow user
|
||||||
|
# default="[F]ollow","Un[F]ollow",'f','F'
|
||||||
|
user-follow="Follo[w]","UnFollo[w]",'w','W'
|
||||||
|
|
||||||
|
# Follow user
|
||||||
|
# default="Follow [R]equest","Follow [R]equest",'r','R'
|
||||||
|
user-follow-request-decide="Follow [R]equest","Follow [R]equest",'r','R'
|
||||||
|
|
||||||
|
# Mute user
|
||||||
|
# default="[M]ute","Un[M]ute",'m','M'
|
||||||
|
user-mute="[M]ute","Un[M]ute",'m','M'
|
||||||
|
|
||||||
|
# Open links
|
||||||
|
# default="[O]pen",'o','O'
|
||||||
|
user-links="[O]pen",'o','O'
|
||||||
|
|
||||||
|
# View user profile
|
||||||
|
# default="[U]ser",'u','U'
|
||||||
|
user-user="[P]rofile",'p','P'
|
||||||
|
|
||||||
|
# Open view mode
|
||||||
|
# default="[V]iew",'v','V'
|
||||||
|
user-view-focus="[V]iew",'v','V'
|
||||||
|
|
||||||
|
# Yank the user URL
|
||||||
|
# default="[Y]ank",'y','Y'
|
||||||
|
user-yank="[Y]ank",'y','Y'
|
||||||
|
|
||||||
|
# Open list
|
||||||
|
# default="[O]pen",'o','O'
|
||||||
|
list-open-feed="[O]pen",'o','O'
|
||||||
|
|
||||||
|
# List all users in a list
|
||||||
|
# default="[U]sers",'u','U'
|
||||||
|
list-user-list="[U]sers",'u','U'
|
||||||
|
|
||||||
|
# Add user to list
|
||||||
|
# default="[A]dd",'a','A'
|
||||||
|
list-user-add="[A]dd",'a','A'
|
||||||
|
|
||||||
|
# Delete user from list
|
||||||
|
# default="[D]elete",'d','D'
|
||||||
|
list-user-delete="[D]elete",'d','D'
|
||||||
|
|
||||||
|
# Open URL
|
||||||
|
# default="[O]pen",'o','O'
|
||||||
|
link-open="[O]pen",'o','O'
|
||||||
|
|
||||||
|
# Yank the URL
|
||||||
|
# default="[Y]ank",'y','Y'
|
||||||
|
link-yank="[Y]ank",'y','Y'
|
||||||
|
|
||||||
|
# Open tag feed
|
||||||
|
# default="[O]pen",'o','O'
|
||||||
|
tag-open-feed="[O]pen",'o','O'
|
||||||
|
|
||||||
|
# Toggle follow on tag
|
||||||
|
# default="[F]ollow","Un[F]ollow",'f','F'
|
||||||
|
tag-follow="[F]ollow","Un[F]ollow",'f','F'
|
||||||
|
|
||||||
|
# Edit content warning text on new toot
|
||||||
|
# default="[C]W text",'c','C'
|
||||||
|
compose-edit-cw="[C]W text",'c','C'
|
||||||
|
|
||||||
|
# Edit the text on new toot
|
||||||
|
# default="[E]dit text",'e','E'
|
||||||
|
compose-edit-text="[E]dit text",'e','E'
|
||||||
|
|
||||||
|
# Include a quote when replying
|
||||||
|
# default="[I]nclude quote",'i','I'
|
||||||
|
compose-include-quote="[I]nclude quote",'i','I'
|
||||||
|
|
||||||
|
# Focus on adding media to toot
|
||||||
|
# default="[M]edia",'m','M'
|
||||||
|
compose-media-focus="[M]edia",'m','M'
|
||||||
|
|
||||||
|
# Post the new toot
|
||||||
|
# default="[P]ost",'p','P'
|
||||||
|
compose-post="[P]ost",'p','P'
|
||||||
|
|
||||||
|
# Toggle content warning on toot
|
||||||
|
# default="[T]oggle CW",'t','T'
|
||||||
|
compose-toggle-content-warning="[T]oggle CW",'t','T'
|
||||||
|
|
||||||
|
# Edit the visibility on new toot
|
||||||
|
# default="[V]isibility",'v','V'
|
||||||
|
compose-visibility="[V]isibility",'v','V'
|
||||||
|
|
||||||
|
# Edit the language of a toot
|
||||||
|
# default="[L]ang",'l','L'
|
||||||
|
compose-language="[L]ang",'L'
|
||||||
|
|
||||||
|
# Switch to creating a poll
|
||||||
|
# default="P[O]ll",'o','O'
|
||||||
|
compose-poll="Pol[l]",'l'
|
||||||
|
|
||||||
|
# Delete media file
|
||||||
|
# default="[D]elete",'d','D'
|
||||||
|
media-delete="[D]elete",'d','D'
|
||||||
|
|
||||||
|
# Edit the description on media file
|
||||||
|
# default="[E]dit desc",'e','E'
|
||||||
|
media-edit-desc="[E]dit desc",'e','E'
|
||||||
|
|
||||||
|
# Add a new media file
|
||||||
|
# default="[A]dd",'a','A'
|
||||||
|
media-add="[A]dd",'a','A'
|
||||||
|
|
||||||
|
# Vote on poll
|
||||||
|
# default="[V]ote",'v','V'
|
||||||
|
vote-vote="[V]ote",'v','V'
|
||||||
|
|
||||||
|
# Select item to vote on
|
||||||
|
# default="[Enter] to select",' ', "Enter"
|
||||||
|
vote-select="[Enter] to select",' ', "Enter"
|
||||||
|
|
||||||
|
# Add a new poll option
|
||||||
|
# default="[A]dd",'a','A'
|
||||||
|
poll-add="[A]dd",'a','A'
|
||||||
|
|
||||||
|
# Edit a poll option
|
||||||
|
# default="[E]dit",'e','E'
|
||||||
|
poll-edit="[E]dit",'e','E'
|
||||||
|
|
||||||
|
# Delete a poll option
|
||||||
|
# default="[D]elete",'d','D'
|
||||||
|
poll-delete="[D]elete",'d','D'
|
||||||
|
|
||||||
|
# Toggle voting on multiple options
|
||||||
|
# default="Toggle [M]ultiple",'m','M'
|
||||||
|
poll-multi-toggle="Toggle [M]ultiple",'m','M'
|
||||||
|
|
||||||
|
# Change the expiration of poll
|
||||||
|
# default="E[X]pires",'x','X'
|
||||||
|
poll-expiration="E[X]pires",'x','X'
|
||||||
|
|
||||||
|
# Change display name
|
||||||
|
# default="[N]ame",'n','N'
|
||||||
|
preference-name="[N]ame",'n','N'
|
||||||
|
|
||||||
|
# Change default visibility of toots
|
||||||
|
# default="[V]isibility",'v','V'
|
||||||
|
preference-visibility="[V]isibility",'v','V'
|
||||||
|
|
||||||
|
# Change bio in profile
|
||||||
|
# default="[B]io",'b','B'
|
||||||
|
preference-bio="[B]io",'b','B'
|
||||||
|
|
||||||
|
# Save your preferences
|
||||||
|
# default="[S]ave",'s','S'
|
||||||
|
preference-save="[S]ave",'s','S'
|
||||||
|
|
||||||
|
# Edit profile fields
|
||||||
|
# default="[F]ields",'f','F'
|
||||||
|
preference-fields="[F]ields",'f','F'
|
||||||
|
|
||||||
|
# Add new field
|
||||||
|
# default="[A]dd",'a','A'
|
||||||
|
preference-fields-add="[A]dd",'a','A'
|
||||||
|
|
||||||
|
# Edit current field
|
||||||
|
# default="[E]dit",'e','E'
|
||||||
|
preference-fields-edit="[E]dit",'e','E'
|
||||||
|
|
||||||
|
# Delete current field
|
||||||
|
# default="[D]elete",'d','D'
|
||||||
|
preference-fields-delete="[D]elete",'d','D'
|
1277
.config/tut/config.toml
Normal file
1277
.config/tut/config.toml
Normal file
File diff suppressed because it is too large
Load Diff
8
.config/vifm/README.md
Normal file
8
.config/vifm/README.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Vifm
|
||||||
|
[Vifm - Manual](https://vifm.info/manual.shtml).
|
||||||
|
|
||||||
|
## Related files
|
||||||
|
- [./\*](./)
|
||||||
|
|
||||||
|
## Additional
|
||||||
|
- [How to use bat as a fileviewer · Issue #404 · vifm/vifm](https://github.com/vifm/vifm/issues/404)
|
81
.config/vifm/colors/Default.vifm
Normal file
81
.config/vifm/colors/Default.vifm
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
" You can edit this file by hand.
|
||||||
|
" The " character at the beginning of a line comments out the line.
|
||||||
|
" Blank lines are ignored.
|
||||||
|
|
||||||
|
" The Default color scheme is used for any directory that does not have
|
||||||
|
" a specified scheme and for parts of user interface like menus. A
|
||||||
|
" color scheme set for a base directory will also
|
||||||
|
" be used for the sub directories.
|
||||||
|
|
||||||
|
" The standard ncurses colors are:
|
||||||
|
" Default = -1 = None, can be used for transparency or default color
|
||||||
|
" Black = 0
|
||||||
|
" Red = 1
|
||||||
|
" Green = 2
|
||||||
|
" Yellow = 3
|
||||||
|
" Blue = 4
|
||||||
|
" Magenta = 5
|
||||||
|
" Cyan = 6
|
||||||
|
" White = 7
|
||||||
|
|
||||||
|
" Light versions of colors are also available (set bold attribute):
|
||||||
|
" LightBlack
|
||||||
|
" LightRed
|
||||||
|
" LightGreen
|
||||||
|
" LightYellow
|
||||||
|
" LightBlue
|
||||||
|
" LightMagenta
|
||||||
|
" LightCyan
|
||||||
|
" LightWhite
|
||||||
|
|
||||||
|
" Available attributes (some of them can be combined):
|
||||||
|
" bold
|
||||||
|
" underline
|
||||||
|
" reverse or inverse
|
||||||
|
" standout
|
||||||
|
" italic (on unsupported systems becomes reverse)
|
||||||
|
" none
|
||||||
|
|
||||||
|
" Vifm supports 256 colors you can use color numbers 0-255
|
||||||
|
" (requires properly set up terminal: set your TERM environment variable
|
||||||
|
" (directly or using resources) to some color terminal name (e.g.
|
||||||
|
" xterm-256color) from /usr/lib/terminfo/; you can check current number
|
||||||
|
" of colors in your terminal with tput colors command)
|
||||||
|
|
||||||
|
" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color
|
||||||
|
|
||||||
|
highlight clear
|
||||||
|
|
||||||
|
highlight Win cterm=none ctermfg=white ctermbg=black
|
||||||
|
highlight Directory cterm=bold ctermfg=cyan ctermbg=default
|
||||||
|
highlight Link cterm=bold ctermfg=yellow ctermbg=default
|
||||||
|
highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
|
||||||
|
highlight Socket cterm=bold ctermfg=magenta ctermbg=default
|
||||||
|
highlight Device cterm=bold ctermfg=red ctermbg=default
|
||||||
|
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
|
||||||
|
highlight Executable cterm=bold ctermfg=green ctermbg=default
|
||||||
|
highlight Selected cterm=bold ctermfg=magenta ctermbg=default
|
||||||
|
highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default
|
||||||
|
highlight TopLine cterm=none ctermfg=black ctermbg=white
|
||||||
|
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
|
||||||
|
highlight StatusLine cterm=bold ctermfg=black ctermbg=white
|
||||||
|
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
|
||||||
|
highlight CmdLine cterm=none ctermfg=white ctermbg=black
|
||||||
|
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
|
||||||
|
highlight Border cterm=none ctermfg=black ctermbg=white
|
||||||
|
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
|
||||||
|
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
|
||||||
|
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
|
||||||
|
highlight AuxWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight TabLine cterm=none ctermfg=white ctermbg=black
|
||||||
|
highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default
|
||||||
|
highlight User1 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User2 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User3 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User4 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User5 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User6 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User7 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User8 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight User9 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
||||||
|
highlight OtherWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
|
26
.config/vifm/colors/codedark.vifm
Normal file
26
.config/vifm/colors/codedark.vifm
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
" codedark like color scheme for vifm
|
||||||
|
" Reset all styles first
|
||||||
|
highlight clear
|
||||||
|
|
||||||
|
highlight Win cterm=none ctermfg=188 ctermbg=none
|
||||||
|
highlight Border cterm=none ctermfg=none ctermbg=none
|
||||||
|
|
||||||
|
highlight TopLine cterm=none ctermfg=117 ctermbg=235
|
||||||
|
highlight TopLineSel cterm=bold ctermfg=75 ctermbg=235
|
||||||
|
highlight StatusLine cterm=bold ctermfg=65 ctermbg=234
|
||||||
|
highlight ErrorMsg cterm=bold ctermfg=203 ctermbg=235
|
||||||
|
highlight JobLine cterm=bold ctermfg=75 ctermbg=235
|
||||||
|
highlight WildMenu cterm=bold ctermfg=188 ctermbg=235
|
||||||
|
highlight CmdLine cterm=none ctermfg=188 ctermbg=235
|
||||||
|
|
||||||
|
highlight CurrLine cterm=none ctermfg=none ctermbg=0
|
||||||
|
highlight OtherLine cterm=none ctermfg=247 ctermbg=237
|
||||||
|
highlight Selected cterm=none ctermfg=none ctermbg=235
|
||||||
|
|
||||||
|
highlight Directory cterm=none ctermfg=179 ctermbg=none
|
||||||
|
highlight Executable cterm=none ctermfg=176 ctermbg=none
|
||||||
|
highlight Link cterm=none ctermfg=173 ctermbg=none
|
||||||
|
highlight BrokenLink cterm=none ctermfg=164 ctermbg=none
|
||||||
|
highlight Device cterm=none ctermfg=187 ctermbg=none
|
||||||
|
highlight Fifo cterm=none ctermfg=187 ctermbg=none
|
||||||
|
highlight Socket cterm=none ctermfg=187 ctermbg=none
|
27
.config/vifm/colors/ph.vifm
Normal file
27
.config/vifm/colors/ph.vifm
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
" ph
|
||||||
|
|
||||||
|
highlight clear
|
||||||
|
|
||||||
|
highlight Win cterm=none ctermfg=248 ctermbg=234
|
||||||
|
highlight Directory cterm=bold ctermfg=033 ctermbg=234
|
||||||
|
highlight Link cterm=bold ctermfg=yellow ctermbg=234
|
||||||
|
highlight BrokenLink cterm=reverse ctermfg=red ctermbg=default
|
||||||
|
highlight Socket cterm=bold ctermfg=125 ctermbg=default
|
||||||
|
highlight Device cterm=bold ctermfg=red ctermbg=default
|
||||||
|
highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
|
||||||
|
highlight Executable cterm=bold ctermfg=166 ctermbg=default
|
||||||
|
highlight Selected cterm=bold ctermfg=255 ctermbg=237
|
||||||
|
highlight CurrLine cterm=bold ctermfg=default ctermbg=237
|
||||||
|
highlight TopLine cterm=bold ctermfg=black ctermbg=235
|
||||||
|
highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
|
||||||
|
highlight StatusLine cterm=bold ctermfg=black ctermbg=235
|
||||||
|
highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
|
||||||
|
highlight CmdLine cterm=none ctermfg=white ctermbg=black
|
||||||
|
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
|
||||||
|
highlight Border cterm=none ctermfg=black ctermbg=234
|
||||||
|
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
|
||||||
|
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
|
||||||
|
|
||||||
|
if $USER == 'root'
|
||||||
|
highlight Border ctermbg=red
|
||||||
|
endif
|
29
.config/vifm/colors/zenburn_1.vifm
Normal file
29
.config/vifm/colors/zenburn_1.vifm
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
" zenburn like color scheme for vifm
|
||||||
|
" http://kippura.org/zenburnpage/
|
||||||
|
|
||||||
|
" Reset all styles first
|
||||||
|
highlight clear
|
||||||
|
|
||||||
|
highlight Border cterm=none ctermfg=235 ctermbg=237
|
||||||
|
|
||||||
|
highlight TopLine cterm=none ctermfg=108 ctermbg=235
|
||||||
|
highlight TopLineSel cterm=bold ctermfg=186 ctermbg=235
|
||||||
|
|
||||||
|
highlight Win cterm=none ctermfg=188 ctermbg=237
|
||||||
|
highlight Directory cterm=none ctermfg=108 ctermbg=237
|
||||||
|
highlight CurrLine cterm=none ctermfg=223 ctermbg=235
|
||||||
|
highlight OtherLine cterm=none ctermfg=247 ctermbg=237
|
||||||
|
highlight Selected cterm=none ctermfg=116 ctermbg=238
|
||||||
|
|
||||||
|
highlight JobLine cterm=bold ctermfg=116 ctermbg=238
|
||||||
|
highlight StatusLine cterm=bold ctermfg=144 ctermbg=236
|
||||||
|
highlight ErrorMsg cterm=bold ctermfg=115 ctermbg=237
|
||||||
|
highlight WildMenu cterm=bold ctermfg=235 ctermbg=144
|
||||||
|
highlight CmdLine cterm=none ctermfg=188 ctermbg=237
|
||||||
|
|
||||||
|
highlight Executable cterm=none ctermfg=172 ctermbg=237
|
||||||
|
highlight Link cterm=none ctermfg=142 ctermbg=237
|
||||||
|
highlight BrokenLink cterm=none ctermfg=174 ctermbg=237
|
||||||
|
highlight Device cterm=none ctermfg=228 ctermbg=237
|
||||||
|
highlight Fifo cterm=none ctermfg=109 ctermbg=237
|
||||||
|
highlight Socket cterm=none ctermfg=110 ctermbg=237
|
857
.config/vifm/tags
Normal file
857
.config/vifm/tags
Normal file
@ -0,0 +1,857 @@
|
|||||||
|
vifm-!! vifm-help.txt /*vifm-!!*
|
||||||
|
vifm-$ vifm-help.txt /*vifm-$*
|
||||||
|
vifm-$HOME vifm-help.txt /*vifm-$HOME*
|
||||||
|
vifm-$MYVIFMRC vifm-help.txt /*vifm-$MYVIFMRC*
|
||||||
|
vifm-$VIFM vifm-help.txt /*vifm-$VIFM*
|
||||||
|
vifm-$VIFM_FUSE_FILE vifm-help.txt /*vifm-$VIFM_FUSE_FILE*
|
||||||
|
vifm-% vifm-help.txt /*vifm-%*
|
||||||
|
vifm-%C vifm-help.txt /*vifm-%C*
|
||||||
|
vifm-%D vifm-help.txt /*vifm-%D*
|
||||||
|
vifm-%F vifm-help.txt /*vifm-%F*
|
||||||
|
vifm-%IU vifm-help.txt /*vifm-%IU*
|
||||||
|
vifm-%Iu vifm-help.txt /*vifm-%Iu*
|
||||||
|
vifm-%L vifm-help.txt /*vifm-%L*
|
||||||
|
vifm-%M vifm-help.txt /*vifm-%M*
|
||||||
|
vifm-%N vifm-help.txt /*vifm-%N*
|
||||||
|
vifm-%Pl vifm-help.txt /*vifm-%Pl*
|
||||||
|
vifm-%Pz vifm-help.txt /*vifm-%Pz*
|
||||||
|
vifm-%S vifm-help.txt /*vifm-%S*
|
||||||
|
vifm-%U vifm-help.txt /*vifm-%U*
|
||||||
|
vifm-%a vifm-help.txt /*vifm-%a*
|
||||||
|
vifm-%b vifm-help.txt /*vifm-%b*
|
||||||
|
vifm-%c vifm-help.txt /*vifm-%c*
|
||||||
|
vifm-%d vifm-help.txt /*vifm-%d*
|
||||||
|
vifm-%f vifm-help.txt /*vifm-%f*
|
||||||
|
vifm-%i vifm-help.txt /*vifm-%i*
|
||||||
|
vifm-%l vifm-help.txt /*vifm-%l*
|
||||||
|
vifm-%m vifm-help.txt /*vifm-%m*
|
||||||
|
vifm-%n vifm-help.txt /*vifm-%n*
|
||||||
|
vifm-%pc vifm-help.txt /*vifm-%pc*
|
||||||
|
vifm-%pd vifm-help.txt /*vifm-%pd*
|
||||||
|
vifm-%ph vifm-help.txt /*vifm-%ph*
|
||||||
|
vifm-%pu vifm-help.txt /*vifm-%pu*
|
||||||
|
vifm-%pw vifm-help.txt /*vifm-%pw*
|
||||||
|
vifm-%px vifm-help.txt /*vifm-%px*
|
||||||
|
vifm-%py vifm-help.txt /*vifm-%py*
|
||||||
|
vifm-%q vifm-help.txt /*vifm-%q*
|
||||||
|
vifm-%r vifm-help.txt /*vifm-%r*
|
||||||
|
vifm-%s vifm-help.txt /*vifm-%s*
|
||||||
|
vifm-%u vifm-help.txt /*vifm-%u*
|
||||||
|
vifm-%v vifm-help.txt /*vifm-%v*
|
||||||
|
vifm-' vifm-help.txt /*vifm-'*
|
||||||
|
vifm-'aproposprg' vifm-help.txt /*vifm-'aproposprg'*
|
||||||
|
vifm-'autocd' vifm-help.txt /*vifm-'autocd'*
|
||||||
|
vifm-'autochpos' vifm-help.txt /*vifm-'autochpos'*
|
||||||
|
vifm-'caseoptions' vifm-help.txt /*vifm-'caseoptions'*
|
||||||
|
vifm-'cd' vifm-help.txt /*vifm-'cd'*
|
||||||
|
vifm-'cdpath' vifm-help.txt /*vifm-'cdpath'*
|
||||||
|
vifm-'cf' vifm-help.txt /*vifm-'cf'*
|
||||||
|
vifm-'chaselinks' vifm-help.txt /*vifm-'chaselinks'*
|
||||||
|
vifm-'classify' vifm-help.txt /*vifm-'classify'*
|
||||||
|
vifm-'co' vifm-help.txt /*vifm-'co'*
|
||||||
|
vifm-'columns' vifm-help.txt /*vifm-'columns'*
|
||||||
|
vifm-'confirm' vifm-help.txt /*vifm-'confirm'*
|
||||||
|
vifm-'cpo' vifm-help.txt /*vifm-'cpo'*
|
||||||
|
vifm-'cpoptions' vifm-help.txt /*vifm-'cpoptions'*
|
||||||
|
vifm-'cvoptions' vifm-help.txt /*vifm-'cvoptions'*
|
||||||
|
vifm-'deleteprg' vifm-help.txt /*vifm-'deleteprg'*
|
||||||
|
vifm-'dirsize' vifm-help.txt /*vifm-'dirsize'*
|
||||||
|
vifm-'dotdirs' vifm-help.txt /*vifm-'dotdirs'*
|
||||||
|
vifm-'dotfiles' vifm-help.txt /*vifm-'dotfiles'*
|
||||||
|
vifm-'fastrun' vifm-help.txt /*vifm-'fastrun'*
|
||||||
|
vifm-'fcs' vifm-help.txt /*vifm-'fcs'*
|
||||||
|
vifm-'fillchars' vifm-help.txt /*vifm-'fillchars'*
|
||||||
|
vifm-'findprg' vifm-help.txt /*vifm-'findprg'*
|
||||||
|
vifm-'followlinks' vifm-help.txt /*vifm-'followlinks'*
|
||||||
|
vifm-'fusehome' vifm-help.txt /*vifm-'fusehome'*
|
||||||
|
vifm-'gd' vifm-help.txt /*vifm-'gd'*
|
||||||
|
vifm-'gdefault' vifm-help.txt /*vifm-'gdefault'*
|
||||||
|
vifm-'grepprg' vifm-help.txt /*vifm-'grepprg'*
|
||||||
|
vifm-'hi' vifm-help.txt /*vifm-'hi'*
|
||||||
|
vifm-'histcursor' vifm-help.txt /*vifm-'histcursor'*
|
||||||
|
vifm-'history' vifm-help.txt /*vifm-'history'*
|
||||||
|
vifm-'hls' vifm-help.txt /*vifm-'hls'*
|
||||||
|
vifm-'hlsearch' vifm-help.txt /*vifm-'hlsearch'*
|
||||||
|
vifm-'ic' vifm-help.txt /*vifm-'ic'*
|
||||||
|
vifm-'iec' vifm-help.txt /*vifm-'iec'*
|
||||||
|
vifm-'ignorecase' vifm-help.txt /*vifm-'ignorecase'*
|
||||||
|
vifm-'incsearch' vifm-help.txt /*vifm-'incsearch'*
|
||||||
|
vifm-'iooptions' vifm-help.txt /*vifm-'iooptions'*
|
||||||
|
vifm-'is' vifm-help.txt /*vifm-'is'*
|
||||||
|
vifm-'laststatus' vifm-help.txt /*vifm-'laststatus'*
|
||||||
|
vifm-'lines' vifm-help.txt /*vifm-'lines'*
|
||||||
|
vifm-'locateprg' vifm-help.txt /*vifm-'locateprg'*
|
||||||
|
vifm-'ls' vifm-help.txt /*vifm-'ls'*
|
||||||
|
vifm-'lsoptions' vifm-help.txt /*vifm-'lsoptions'*
|
||||||
|
vifm-'lsview' vifm-help.txt /*vifm-'lsview'*
|
||||||
|
vifm-'mediaprg' vifm-help.txt /*vifm-'mediaprg'*
|
||||||
|
vifm-'milleroptions' vifm-help.txt /*vifm-'milleroptions'*
|
||||||
|
vifm-'millerview' vifm-help.txt /*vifm-'millerview'*
|
||||||
|
vifm-'mintimeoutlen' vifm-help.txt /*vifm-'mintimeoutlen'*
|
||||||
|
vifm-'nu' vifm-help.txt /*vifm-'nu'*
|
||||||
|
vifm-'number' vifm-help.txt /*vifm-'number'*
|
||||||
|
vifm-'numberwidth' vifm-help.txt /*vifm-'numberwidth'*
|
||||||
|
vifm-'nuw' vifm-help.txt /*vifm-'nuw'*
|
||||||
|
vifm-'previewoptions' vifm-help.txt /*vifm-'previewoptions'*
|
||||||
|
vifm-'previewprg' vifm-help.txt /*vifm-'previewprg'*
|
||||||
|
vifm-'quickview' vifm-help.txt /*vifm-'quickview'*
|
||||||
|
vifm-'relativenumber' vifm-help.txt /*vifm-'relativenumber'*
|
||||||
|
vifm-'rnu' vifm-help.txt /*vifm-'rnu'*
|
||||||
|
vifm-'ruf' vifm-help.txt /*vifm-'ruf'*
|
||||||
|
vifm-'rulerformat' vifm-help.txt /*vifm-'rulerformat'*
|
||||||
|
vifm-'runexec' vifm-help.txt /*vifm-'runexec'*
|
||||||
|
vifm-'scb' vifm-help.txt /*vifm-'scb'*
|
||||||
|
vifm-'scrollbind' vifm-help.txt /*vifm-'scrollbind'*
|
||||||
|
vifm-'scrolloff' vifm-help.txt /*vifm-'scrolloff'*
|
||||||
|
vifm-'scs' vifm-help.txt /*vifm-'scs'*
|
||||||
|
vifm-'sessionoptions' vifm-help.txt /*vifm-'sessionoptions'*
|
||||||
|
vifm-'sh' vifm-help.txt /*vifm-'sh'*
|
||||||
|
vifm-'shcf' vifm-help.txt /*vifm-'shcf'*
|
||||||
|
vifm-'shell' vifm-help.txt /*vifm-'shell'*
|
||||||
|
vifm-'shellcmdflag' vifm-help.txt /*vifm-'shellcmdflag'*
|
||||||
|
vifm-'shm' vifm-help.txt /*vifm-'shm'*
|
||||||
|
vifm-'shortmess' vifm-help.txt /*vifm-'shortmess'*
|
||||||
|
vifm-'showtabline' vifm-help.txt /*vifm-'showtabline'*
|
||||||
|
vifm-'sizefmt' vifm-help.txt /*vifm-'sizefmt'*
|
||||||
|
vifm-'slowfs' vifm-help.txt /*vifm-'slowfs'*
|
||||||
|
vifm-'smartcase' vifm-help.txt /*vifm-'smartcase'*
|
||||||
|
vifm-'so' vifm-help.txt /*vifm-'so'*
|
||||||
|
vifm-'sort' vifm-help.txt /*vifm-'sort'*
|
||||||
|
vifm-'sortgroups' vifm-help.txt /*vifm-'sortgroups'*
|
||||||
|
vifm-'sortnumbers' vifm-help.txt /*vifm-'sortnumbers'*
|
||||||
|
vifm-'sortorder' vifm-help.txt /*vifm-'sortorder'*
|
||||||
|
vifm-'ssop' vifm-help.txt /*vifm-'ssop'*
|
||||||
|
vifm-'stal' vifm-help.txt /*vifm-'stal'*
|
||||||
|
vifm-'statusline' vifm-help.txt /*vifm-'statusline'*
|
||||||
|
vifm-'stl' vifm-help.txt /*vifm-'stl'*
|
||||||
|
vifm-'suggestoptions' vifm-help.txt /*vifm-'suggestoptions'*
|
||||||
|
vifm-'syncregs' vifm-help.txt /*vifm-'syncregs'*
|
||||||
|
vifm-'syscalls' vifm-help.txt /*vifm-'syscalls'*
|
||||||
|
vifm-'tablabel' vifm-help.txt /*vifm-'tablabel'*
|
||||||
|
vifm-'tabprefix' vifm-help.txt /*vifm-'tabprefix'*
|
||||||
|
vifm-'tabscope' vifm-help.txt /*vifm-'tabscope'*
|
||||||
|
vifm-'tabstop' vifm-help.txt /*vifm-'tabstop'*
|
||||||
|
vifm-'tabsuffix' vifm-help.txt /*vifm-'tabsuffix'*
|
||||||
|
vifm-'timefmt' vifm-help.txt /*vifm-'timefmt'*
|
||||||
|
vifm-'timeoutlen' vifm-help.txt /*vifm-'timeoutlen'*
|
||||||
|
vifm-'title' vifm-help.txt /*vifm-'title'*
|
||||||
|
vifm-'tm' vifm-help.txt /*vifm-'tm'*
|
||||||
|
vifm-'to' vifm-help.txt /*vifm-'to'*
|
||||||
|
vifm-'trash' vifm-help.txt /*vifm-'trash'*
|
||||||
|
vifm-'trashdir' vifm-help.txt /*vifm-'trashdir'*
|
||||||
|
vifm-'ts' vifm-help.txt /*vifm-'ts'*
|
||||||
|
vifm-'tuioptions' vifm-help.txt /*vifm-'tuioptions'*
|
||||||
|
vifm-'ul' vifm-help.txt /*vifm-'ul'*
|
||||||
|
vifm-'undolevels' vifm-help.txt /*vifm-'undolevels'*
|
||||||
|
vifm-'vicmd' vifm-help.txt /*vifm-'vicmd'*
|
||||||
|
vifm-'viewcolumns' vifm-help.txt /*vifm-'viewcolumns'*
|
||||||
|
vifm-'vifminfo' vifm-help.txt /*vifm-'vifminfo'*
|
||||||
|
vifm-'vimhelp' vifm-help.txt /*vifm-'vimhelp'*
|
||||||
|
vifm-'vixcmd' vifm-help.txt /*vifm-'vixcmd'*
|
||||||
|
vifm-'wildmenu' vifm-help.txt /*vifm-'wildmenu'*
|
||||||
|
vifm-'wildstyle' vifm-help.txt /*vifm-'wildstyle'*
|
||||||
|
vifm-'wmnu' vifm-help.txt /*vifm-'wmnu'*
|
||||||
|
vifm-'wordchars' vifm-help.txt /*vifm-'wordchars'*
|
||||||
|
vifm-'wrap' vifm-help.txt /*vifm-'wrap'*
|
||||||
|
vifm-'wrapscan' vifm-help.txt /*vifm-'wrapscan'*
|
||||||
|
vifm-'ws' vifm-help.txt /*vifm-'ws'*
|
||||||
|
vifm-( vifm-help.txt /*vifm-(*
|
||||||
|
vifm-) vifm-help.txt /*vifm-)*
|
||||||
|
vifm-, vifm-help.txt /*vifm-,*
|
||||||
|
vifm--+c vifm-help.txt /*vifm--+c*
|
||||||
|
vifm---choose-dir vifm-help.txt /*vifm---choose-dir*
|
||||||
|
vifm---choose-files vifm-help.txt /*vifm---choose-files*
|
||||||
|
vifm---delimiter vifm-help.txt /*vifm---delimiter*
|
||||||
|
vifm---help vifm-help.txt /*vifm---help*
|
||||||
|
vifm---logging vifm-help.txt /*vifm---logging*
|
||||||
|
vifm---no-configs vifm-help.txt /*vifm---no-configs*
|
||||||
|
vifm---on-choose vifm-help.txt /*vifm---on-choose*
|
||||||
|
vifm---remote vifm-help.txt /*vifm---remote*
|
||||||
|
vifm---remote-expr vifm-help.txt /*vifm---remote-expr*
|
||||||
|
vifm---select vifm-help.txt /*vifm---select*
|
||||||
|
vifm---server-list vifm-help.txt /*vifm---server-list*
|
||||||
|
vifm---server-name vifm-help.txt /*vifm---server-name*
|
||||||
|
vifm---version vifm-help.txt /*vifm---version*
|
||||||
|
vifm--c vifm-help.txt /*vifm--c*
|
||||||
|
vifm--f vifm-help.txt /*vifm--f*
|
||||||
|
vifm--h vifm-help.txt /*vifm--h*
|
||||||
|
vifm--v vifm-help.txt /*vifm--v*
|
||||||
|
vifm-. vifm-help.txt /*vifm-.*
|
||||||
|
vifm-/ vifm-help.txt /*vifm-\/*
|
||||||
|
vifm-0 vifm-help.txt /*vifm-0*
|
||||||
|
vifm-: vifm-help.txt /*vifm-:*
|
||||||
|
vifm-:! vifm-help.txt /*vifm-:!*
|
||||||
|
vifm-:!! vifm-help.txt /*vifm-:!!*
|
||||||
|
vifm-:alink vifm-help.txt /*vifm-:alink*
|
||||||
|
vifm-:apropos vifm-help.txt /*vifm-:apropos*
|
||||||
|
vifm-:au vifm-help.txt /*vifm-:au*
|
||||||
|
vifm-:autocmd vifm-help.txt /*vifm-:autocmd*
|
||||||
|
vifm-:bar vifm-help.txt /*vifm-:bar*
|
||||||
|
vifm-:bmark vifm-help.txt /*vifm-:bmark*
|
||||||
|
vifm-:bmarks vifm-help.txt /*vifm-:bmarks*
|
||||||
|
vifm-:bmgo vifm-help.txt /*vifm-:bmgo*
|
||||||
|
vifm-:c vifm-help.txt /*vifm-:c*
|
||||||
|
vifm-:ca vifm-help.txt /*vifm-:ca*
|
||||||
|
vifm-:cabbrev vifm-help.txt /*vifm-:cabbrev*
|
||||||
|
vifm-:cd vifm-help.txt /*vifm-:cd*
|
||||||
|
vifm-:cds vifm-help.txt /*vifm-:cds*
|
||||||
|
vifm-:change vifm-help.txt /*vifm-:change*
|
||||||
|
vifm-:chmod vifm-help.txt /*vifm-:chmod*
|
||||||
|
vifm-:chown vifm-help.txt /*vifm-:chown*
|
||||||
|
vifm-:clone vifm-help.txt /*vifm-:clone*
|
||||||
|
vifm-:cm vifm-help.txt /*vifm-:cm*
|
||||||
|
vifm-:cmap vifm-help.txt /*vifm-:cmap*
|
||||||
|
vifm-:cno vifm-help.txt /*vifm-:cno*
|
||||||
|
vifm-:cnorea vifm-help.txt /*vifm-:cnorea*
|
||||||
|
vifm-:cnoreabbrev vifm-help.txt /*vifm-:cnoreabbrev*
|
||||||
|
vifm-:cnoremap vifm-help.txt /*vifm-:cnoremap*
|
||||||
|
vifm-:co vifm-help.txt /*vifm-:co*
|
||||||
|
vifm-:colo vifm-help.txt /*vifm-:colo*
|
||||||
|
vifm-:colorscheme vifm-help.txt /*vifm-:colorscheme*
|
||||||
|
vifm-:com vifm-help.txt /*vifm-:com*
|
||||||
|
vifm-:comc vifm-help.txt /*vifm-:comc*
|
||||||
|
vifm-:comclear vifm-help.txt /*vifm-:comclear*
|
||||||
|
vifm-:command vifm-help.txt /*vifm-:command*
|
||||||
|
vifm-:command-params vifm-help.txt /*vifm-:command-params*
|
||||||
|
vifm-:compare vifm-help.txt /*vifm-:compare*
|
||||||
|
vifm-:cope vifm-help.txt /*vifm-:cope*
|
||||||
|
vifm-:copen vifm-help.txt /*vifm-:copen*
|
||||||
|
vifm-:copy vifm-help.txt /*vifm-:copy*
|
||||||
|
vifm-:cq vifm-help.txt /*vifm-:cq*
|
||||||
|
vifm-:cquit vifm-help.txt /*vifm-:cquit*
|
||||||
|
vifm-:cu vifm-help.txt /*vifm-:cu*
|
||||||
|
vifm-:cuna vifm-help.txt /*vifm-:cuna*
|
||||||
|
vifm-:cunabbrev vifm-help.txt /*vifm-:cunabbrev*
|
||||||
|
vifm-:cunmap vifm-help.txt /*vifm-:cunmap*
|
||||||
|
vifm-:d vifm-help.txt /*vifm-:d*
|
||||||
|
vifm-:delbmarks vifm-help.txt /*vifm-:delbmarks*
|
||||||
|
vifm-:delc vifm-help.txt /*vifm-:delc*
|
||||||
|
vifm-:delcommand vifm-help.txt /*vifm-:delcommand*
|
||||||
|
vifm-:delete vifm-help.txt /*vifm-:delete*
|
||||||
|
vifm-:delm vifm-help.txt /*vifm-:delm*
|
||||||
|
vifm-:delmarks vifm-help.txt /*vifm-:delmarks*
|
||||||
|
vifm-:delsession vifm-help.txt /*vifm-:delsession*
|
||||||
|
vifm-:di vifm-help.txt /*vifm-:di*
|
||||||
|
vifm-:dirs vifm-help.txt /*vifm-:dirs*
|
||||||
|
vifm-:display vifm-help.txt /*vifm-:display*
|
||||||
|
vifm-:dm vifm-help.txt /*vifm-:dm*
|
||||||
|
vifm-:dmap vifm-help.txt /*vifm-:dmap*
|
||||||
|
vifm-:dn vifm-help.txt /*vifm-:dn*
|
||||||
|
vifm-:dnoremap vifm-help.txt /*vifm-:dnoremap*
|
||||||
|
vifm-:du vifm-help.txt /*vifm-:du*
|
||||||
|
vifm-:dunmap vifm-help.txt /*vifm-:dunmap*
|
||||||
|
vifm-:e vifm-help.txt /*vifm-:e*
|
||||||
|
vifm-:ec vifm-help.txt /*vifm-:ec*
|
||||||
|
vifm-:echo vifm-help.txt /*vifm-:echo*
|
||||||
|
vifm-:edit vifm-help.txt /*vifm-:edit*
|
||||||
|
vifm-:el vifm-help.txt /*vifm-:el*
|
||||||
|
vifm-:else vifm-help.txt /*vifm-:else*
|
||||||
|
vifm-:elsei vifm-help.txt /*vifm-:elsei*
|
||||||
|
vifm-:elseif vifm-help.txt /*vifm-:elseif*
|
||||||
|
vifm-:empty vifm-help.txt /*vifm-:empty*
|
||||||
|
vifm-:en vifm-help.txt /*vifm-:en*
|
||||||
|
vifm-:endif vifm-help.txt /*vifm-:endif*
|
||||||
|
vifm-:exe vifm-help.txt /*vifm-:exe*
|
||||||
|
vifm-:execute vifm-help.txt /*vifm-:execute*
|
||||||
|
vifm-:exi vifm-help.txt /*vifm-:exi*
|
||||||
|
vifm-:exit vifm-help.txt /*vifm-:exit*
|
||||||
|
vifm-:f vifm-help.txt /*vifm-:f*
|
||||||
|
vifm-:file vifm-help.txt /*vifm-:file*
|
||||||
|
vifm-:filet vifm-help.txt /*vifm-:filet*
|
||||||
|
vifm-:filetype vifm-help.txt /*vifm-:filetype*
|
||||||
|
vifm-:filev vifm-help.txt /*vifm-:filev*
|
||||||
|
vifm-:fileviewer vifm-help.txt /*vifm-:fileviewer*
|
||||||
|
vifm-:filex vifm-help.txt /*vifm-:filex*
|
||||||
|
vifm-:filextype vifm-help.txt /*vifm-:filextype*
|
||||||
|
vifm-:filter vifm-help.txt /*vifm-:filter*
|
||||||
|
vifm-:fin vifm-help.txt /*vifm-:fin*
|
||||||
|
vifm-:find vifm-help.txt /*vifm-:find*
|
||||||
|
vifm-:fini vifm-help.txt /*vifm-:fini*
|
||||||
|
vifm-:finish vifm-help.txt /*vifm-:finish*
|
||||||
|
vifm-:go vifm-help.txt /*vifm-:go*
|
||||||
|
vifm-:goto vifm-help.txt /*vifm-:goto*
|
||||||
|
vifm-:gr vifm-help.txt /*vifm-:gr*
|
||||||
|
vifm-:grep vifm-help.txt /*vifm-:grep*
|
||||||
|
vifm-:h vifm-help.txt /*vifm-:h*
|
||||||
|
vifm-:help vifm-help.txt /*vifm-:help*
|
||||||
|
vifm-:hi vifm-help.txt /*vifm-:hi*
|
||||||
|
vifm-:hideui vifm-help.txt /*vifm-:hideui*
|
||||||
|
vifm-:highlight vifm-help.txt /*vifm-:highlight*
|
||||||
|
vifm-:his vifm-help.txt /*vifm-:his*
|
||||||
|
vifm-:histnext vifm-help.txt /*vifm-:histnext*
|
||||||
|
vifm-:history vifm-help.txt /*vifm-:history*
|
||||||
|
vifm-:histprev vifm-help.txt /*vifm-:histprev*
|
||||||
|
vifm-:if vifm-help.txt /*vifm-:if*
|
||||||
|
vifm-:invert vifm-help.txt /*vifm-:invert*
|
||||||
|
vifm-:jobs vifm-help.txt /*vifm-:jobs*
|
||||||
|
vifm-:keepsel vifm-help.txt /*vifm-:keepsel*
|
||||||
|
vifm-:let vifm-help.txt /*vifm-:let*
|
||||||
|
vifm-:locate vifm-help.txt /*vifm-:locate*
|
||||||
|
vifm-:ls vifm-help.txt /*vifm-:ls*
|
||||||
|
vifm-:lstrash vifm-help.txt /*vifm-:lstrash*
|
||||||
|
vifm-:m vifm-help.txt /*vifm-:m*
|
||||||
|
vifm-:ma vifm-help.txt /*vifm-:ma*
|
||||||
|
vifm-:map vifm-help.txt /*vifm-:map*
|
||||||
|
vifm-:mark vifm-help.txt /*vifm-:mark*
|
||||||
|
vifm-:marks vifm-help.txt /*vifm-:marks*
|
||||||
|
vifm-:media vifm-help.txt /*vifm-:media*
|
||||||
|
vifm-:mes vifm-help.txt /*vifm-:mes*
|
||||||
|
vifm-:messages vifm-help.txt /*vifm-:messages*
|
||||||
|
vifm-:mkdir vifm-help.txt /*vifm-:mkdir*
|
||||||
|
vifm-:mm vifm-help.txt /*vifm-:mm*
|
||||||
|
vifm-:mmap vifm-help.txt /*vifm-:mmap*
|
||||||
|
vifm-:mn vifm-help.txt /*vifm-:mn*
|
||||||
|
vifm-:mnoremap vifm-help.txt /*vifm-:mnoremap*
|
||||||
|
vifm-:move vifm-help.txt /*vifm-:move*
|
||||||
|
vifm-:mu vifm-help.txt /*vifm-:mu*
|
||||||
|
vifm-:munmap vifm-help.txt /*vifm-:munmap*
|
||||||
|
vifm-:nm vifm-help.txt /*vifm-:nm*
|
||||||
|
vifm-:nmap vifm-help.txt /*vifm-:nmap*
|
||||||
|
vifm-:nn vifm-help.txt /*vifm-:nn*
|
||||||
|
vifm-:nnoremap vifm-help.txt /*vifm-:nnoremap*
|
||||||
|
vifm-:no vifm-help.txt /*vifm-:no*
|
||||||
|
vifm-:noh vifm-help.txt /*vifm-:noh*
|
||||||
|
vifm-:nohlsearch vifm-help.txt /*vifm-:nohlsearch*
|
||||||
|
vifm-:noremap vifm-help.txt /*vifm-:noremap*
|
||||||
|
vifm-:norm vifm-help.txt /*vifm-:norm*
|
||||||
|
vifm-:normal vifm-help.txt /*vifm-:normal*
|
||||||
|
vifm-:nun vifm-help.txt /*vifm-:nun*
|
||||||
|
vifm-:nunmap vifm-help.txt /*vifm-:nunmap*
|
||||||
|
vifm-:on vifm-help.txt /*vifm-:on*
|
||||||
|
vifm-:only vifm-help.txt /*vifm-:only*
|
||||||
|
vifm-:plugin vifm-help.txt /*vifm-:plugin*
|
||||||
|
vifm-:plugins vifm-help.txt /*vifm-:plugins*
|
||||||
|
vifm-:popd vifm-help.txt /*vifm-:popd*
|
||||||
|
vifm-:pu vifm-help.txt /*vifm-:pu*
|
||||||
|
vifm-:pushd vifm-help.txt /*vifm-:pushd*
|
||||||
|
vifm-:put vifm-help.txt /*vifm-:put*
|
||||||
|
vifm-:pw vifm-help.txt /*vifm-:pw*
|
||||||
|
vifm-:pwd vifm-help.txt /*vifm-:pwd*
|
||||||
|
vifm-:q vifm-help.txt /*vifm-:q*
|
||||||
|
vifm-:qa vifm-help.txt /*vifm-:qa*
|
||||||
|
vifm-:qall vifm-help.txt /*vifm-:qall*
|
||||||
|
vifm-:qm vifm-help.txt /*vifm-:qm*
|
||||||
|
vifm-:qmap vifm-help.txt /*vifm-:qmap*
|
||||||
|
vifm-:qn vifm-help.txt /*vifm-:qn*
|
||||||
|
vifm-:qnoremap vifm-help.txt /*vifm-:qnoremap*
|
||||||
|
vifm-:quit vifm-help.txt /*vifm-:quit*
|
||||||
|
vifm-:qun vifm-help.txt /*vifm-:qun*
|
||||||
|
vifm-:qunmap vifm-help.txt /*vifm-:qunmap*
|
||||||
|
vifm-:range vifm-help.txt /*vifm-:range*
|
||||||
|
vifm-:redr vifm-help.txt /*vifm-:redr*
|
||||||
|
vifm-:redraw vifm-help.txt /*vifm-:redraw*
|
||||||
|
vifm-:reg vifm-help.txt /*vifm-:reg*
|
||||||
|
vifm-:registers vifm-help.txt /*vifm-:registers*
|
||||||
|
vifm-:regular vifm-help.txt /*vifm-:regular*
|
||||||
|
vifm-:rename vifm-help.txt /*vifm-:rename*
|
||||||
|
vifm-:restart vifm-help.txt /*vifm-:restart*
|
||||||
|
vifm-:restore vifm-help.txt /*vifm-:restore*
|
||||||
|
vifm-:rlink vifm-help.txt /*vifm-:rlink*
|
||||||
|
vifm-:s vifm-help.txt /*vifm-:s*
|
||||||
|
vifm-:screen vifm-help.txt /*vifm-:screen*
|
||||||
|
vifm-:se vifm-help.txt /*vifm-:se*
|
||||||
|
vifm-:select vifm-help.txt /*vifm-:select*
|
||||||
|
vifm-:session vifm-help.txt /*vifm-:session*
|
||||||
|
vifm-:set vifm-help.txt /*vifm-:set*
|
||||||
|
vifm-:setg vifm-help.txt /*vifm-:setg*
|
||||||
|
vifm-:setglobal vifm-help.txt /*vifm-:setglobal*
|
||||||
|
vifm-:setl vifm-help.txt /*vifm-:setl*
|
||||||
|
vifm-:setlocal vifm-help.txt /*vifm-:setlocal*
|
||||||
|
vifm-:sh vifm-help.txt /*vifm-:sh*
|
||||||
|
vifm-:shell vifm-help.txt /*vifm-:shell*
|
||||||
|
vifm-:siblnext vifm-help.txt /*vifm-:siblnext*
|
||||||
|
vifm-:siblprev vifm-help.txt /*vifm-:siblprev*
|
||||||
|
vifm-:so vifm-help.txt /*vifm-:so*
|
||||||
|
vifm-:sor vifm-help.txt /*vifm-:sor*
|
||||||
|
vifm-:sort vifm-help.txt /*vifm-:sort*
|
||||||
|
vifm-:source vifm-help.txt /*vifm-:source*
|
||||||
|
vifm-:sp vifm-help.txt /*vifm-:sp*
|
||||||
|
vifm-:split vifm-help.txt /*vifm-:split*
|
||||||
|
vifm-:st vifm-help.txt /*vifm-:st*
|
||||||
|
vifm-:stop vifm-help.txt /*vifm-:stop*
|
||||||
|
vifm-:substitute vifm-help.txt /*vifm-:substitute*
|
||||||
|
vifm-:sync vifm-help.txt /*vifm-:sync*
|
||||||
|
vifm-:tabc vifm-help.txt /*vifm-:tabc*
|
||||||
|
vifm-:tabclose vifm-help.txt /*vifm-:tabclose*
|
||||||
|
vifm-:tabm vifm-help.txt /*vifm-:tabm*
|
||||||
|
vifm-:tabmove vifm-help.txt /*vifm-:tabmove*
|
||||||
|
vifm-:tabn vifm-help.txt /*vifm-:tabn*
|
||||||
|
vifm-:tabname vifm-help.txt /*vifm-:tabname*
|
||||||
|
vifm-:tabnew vifm-help.txt /*vifm-:tabnew*
|
||||||
|
vifm-:tabnext vifm-help.txt /*vifm-:tabnext*
|
||||||
|
vifm-:tabo vifm-help.txt /*vifm-:tabo*
|
||||||
|
vifm-:tabonly vifm-help.txt /*vifm-:tabonly*
|
||||||
|
vifm-:tabp vifm-help.txt /*vifm-:tabp*
|
||||||
|
vifm-:tabprevious vifm-help.txt /*vifm-:tabprevious*
|
||||||
|
vifm-:touch vifm-help.txt /*vifm-:touch*
|
||||||
|
vifm-:tr vifm-help.txt /*vifm-:tr*
|
||||||
|
vifm-:trashes vifm-help.txt /*vifm-:trashes*
|
||||||
|
vifm-:tree vifm-help.txt /*vifm-:tree*
|
||||||
|
vifm-:undol vifm-help.txt /*vifm-:undol*
|
||||||
|
vifm-:undolist vifm-help.txt /*vifm-:undolist*
|
||||||
|
vifm-:unl vifm-help.txt /*vifm-:unl*
|
||||||
|
vifm-:unlet vifm-help.txt /*vifm-:unlet*
|
||||||
|
vifm-:unm vifm-help.txt /*vifm-:unm*
|
||||||
|
vifm-:unmap vifm-help.txt /*vifm-:unmap*
|
||||||
|
vifm-:unselect vifm-help.txt /*vifm-:unselect*
|
||||||
|
vifm-:ve vifm-help.txt /*vifm-:ve*
|
||||||
|
vifm-:version vifm-help.txt /*vifm-:version*
|
||||||
|
vifm-:vie vifm-help.txt /*vifm-:vie*
|
||||||
|
vifm-:view vifm-help.txt /*vifm-:view*
|
||||||
|
vifm-:vifm vifm-help.txt /*vifm-:vifm*
|
||||||
|
vifm-:vm vifm-help.txt /*vifm-:vm*
|
||||||
|
vifm-:vmap vifm-help.txt /*vifm-:vmap*
|
||||||
|
vifm-:vn vifm-help.txt /*vifm-:vn*
|
||||||
|
vifm-:vnoremap vifm-help.txt /*vifm-:vnoremap*
|
||||||
|
vifm-:volume vifm-help.txt /*vifm-:volume*
|
||||||
|
vifm-:vs vifm-help.txt /*vifm-:vs*
|
||||||
|
vifm-:vsplit vifm-help.txt /*vifm-:vsplit*
|
||||||
|
vifm-:vu vifm-help.txt /*vifm-:vu*
|
||||||
|
vifm-:vunmap vifm-help.txt /*vifm-:vunmap*
|
||||||
|
vifm-:w vifm-help.txt /*vifm-:w*
|
||||||
|
vifm-:winc vifm-help.txt /*vifm-:winc*
|
||||||
|
vifm-:wincmd vifm-help.txt /*vifm-:wincmd*
|
||||||
|
vifm-:windo vifm-help.txt /*vifm-:windo*
|
||||||
|
vifm-:winrun vifm-help.txt /*vifm-:winrun*
|
||||||
|
vifm-:wq vifm-help.txt /*vifm-:wq*
|
||||||
|
vifm-:wqa vifm-help.txt /*vifm-:wqa*
|
||||||
|
vifm-:wqall vifm-help.txt /*vifm-:wqall*
|
||||||
|
vifm-:write vifm-help.txt /*vifm-:write*
|
||||||
|
vifm-:x vifm-help.txt /*vifm-:x*
|
||||||
|
vifm-:xa vifm-help.txt /*vifm-:xa*
|
||||||
|
vifm-:xall vifm-help.txt /*vifm-:xall*
|
||||||
|
vifm-:xit vifm-help.txt /*vifm-:xit*
|
||||||
|
vifm-:y vifm-help.txt /*vifm-:y*
|
||||||
|
vifm-:yank vifm-help.txt /*vifm-:yank*
|
||||||
|
vifm-; vifm-help.txt /*vifm-;*
|
||||||
|
vifm-= vifm-help.txt /*vifm-=*
|
||||||
|
vifm-? vifm-help.txt /*vifm-?*
|
||||||
|
vifm-C vifm-help.txt /*vifm-C*
|
||||||
|
vifm-CTRL-A vifm-help.txt /*vifm-CTRL-A*
|
||||||
|
vifm-CTRL-B vifm-help.txt /*vifm-CTRL-B*
|
||||||
|
vifm-CTRL-C vifm-help.txt /*vifm-CTRL-C*
|
||||||
|
vifm-CTRL-D vifm-help.txt /*vifm-CTRL-D*
|
||||||
|
vifm-CTRL-E vifm-help.txt /*vifm-CTRL-E*
|
||||||
|
vifm-CTRL-F vifm-help.txt /*vifm-CTRL-F*
|
||||||
|
vifm-CTRL-G vifm-help.txt /*vifm-CTRL-G*
|
||||||
|
vifm-CTRL-I vifm-help.txt /*vifm-CTRL-I*
|
||||||
|
vifm-CTRL-L vifm-help.txt /*vifm-CTRL-L*
|
||||||
|
vifm-CTRL-N vifm-help.txt /*vifm-CTRL-N*
|
||||||
|
vifm-CTRL-O vifm-help.txt /*vifm-CTRL-O*
|
||||||
|
vifm-CTRL-P vifm-help.txt /*vifm-CTRL-P*
|
||||||
|
vifm-CTRL-R vifm-help.txt /*vifm-CTRL-R*
|
||||||
|
vifm-CTRL-U vifm-help.txt /*vifm-CTRL-U*
|
||||||
|
vifm-CTRL-W_+ vifm-help.txt /*vifm-CTRL-W_+*
|
||||||
|
vifm-CTRL-W_- vifm-help.txt /*vifm-CTRL-W_-*
|
||||||
|
vifm-CTRL-W_< vifm-help.txt /*vifm-CTRL-W_<*
|
||||||
|
vifm-CTRL-W_= vifm-help.txt /*vifm-CTRL-W_=*
|
||||||
|
vifm-CTRL-W_> vifm-help.txt /*vifm-CTRL-W_>*
|
||||||
|
vifm-CTRL-W_H vifm-help.txt /*vifm-CTRL-W_H*
|
||||||
|
vifm-CTRL-W_J vifm-help.txt /*vifm-CTRL-W_J*
|
||||||
|
vifm-CTRL-W_K vifm-help.txt /*vifm-CTRL-W_K*
|
||||||
|
vifm-CTRL-W_L vifm-help.txt /*vifm-CTRL-W_L*
|
||||||
|
vifm-CTRL-W__ vifm-help.txt /*vifm-CTRL-W__*
|
||||||
|
vifm-CTRL-W_b vifm-help.txt /*vifm-CTRL-W_b*
|
||||||
|
vifm-CTRL-W_bar vifm-help.txt /*vifm-CTRL-W_bar*
|
||||||
|
vifm-CTRL-W_h vifm-help.txt /*vifm-CTRL-W_h*
|
||||||
|
vifm-CTRL-W_j vifm-help.txt /*vifm-CTRL-W_j*
|
||||||
|
vifm-CTRL-W_k vifm-help.txt /*vifm-CTRL-W_k*
|
||||||
|
vifm-CTRL-W_l vifm-help.txt /*vifm-CTRL-W_l*
|
||||||
|
vifm-CTRL-W_o vifm-help.txt /*vifm-CTRL-W_o*
|
||||||
|
vifm-CTRL-W_p vifm-help.txt /*vifm-CTRL-W_p*
|
||||||
|
vifm-CTRL-W_s vifm-help.txt /*vifm-CTRL-W_s*
|
||||||
|
vifm-CTRL-W_t vifm-help.txt /*vifm-CTRL-W_t*
|
||||||
|
vifm-CTRL-W_v vifm-help.txt /*vifm-CTRL-W_v*
|
||||||
|
vifm-CTRL-W_w vifm-help.txt /*vifm-CTRL-W_w*
|
||||||
|
vifm-CTRL-W_x vifm-help.txt /*vifm-CTRL-W_x*
|
||||||
|
vifm-CTRL-W_z vifm-help.txt /*vifm-CTRL-W_z*
|
||||||
|
vifm-CTRL-X vifm-help.txt /*vifm-CTRL-X*
|
||||||
|
vifm-CTRL-Y vifm-help.txt /*vifm-CTRL-Y*
|
||||||
|
vifm-D vifm-help.txt /*vifm-D*
|
||||||
|
vifm-DD vifm-help.txt /*vifm-DD*
|
||||||
|
vifm-Enter vifm-help.txt /*vifm-Enter*
|
||||||
|
vifm-Escape vifm-help.txt /*vifm-Escape*
|
||||||
|
vifm-F vifm-help.txt /*vifm-F*
|
||||||
|
vifm-FUSE_MOUNT vifm-help.txt /*vifm-FUSE_MOUNT*
|
||||||
|
vifm-FUSE_MOUNT2 vifm-help.txt /*vifm-FUSE_MOUNT2*
|
||||||
|
vifm-FUSE_MOUNT3 vifm-help.txt /*vifm-FUSE_MOUNT3*
|
||||||
|
vifm-G vifm-help.txt /*vifm-G*
|
||||||
|
vifm-H vifm-help.txt /*vifm-H*
|
||||||
|
vifm-L vifm-help.txt /*vifm-L*
|
||||||
|
vifm-M vifm-help.txt /*vifm-M*
|
||||||
|
vifm-N vifm-help.txt /*vifm-N*
|
||||||
|
vifm-P vifm-help.txt /*vifm-P*
|
||||||
|
vifm-PageDown vifm-help.txt /*vifm-PageDown*
|
||||||
|
vifm-PageUp vifm-help.txt /*vifm-PageUp*
|
||||||
|
vifm-SHIFT-Tab vifm-help.txt /*vifm-SHIFT-Tab*
|
||||||
|
vifm-Space vifm-help.txt /*vifm-Space*
|
||||||
|
vifm-Tab vifm-help.txt /*vifm-Tab*
|
||||||
|
vifm-V vifm-help.txt /*vifm-V*
|
||||||
|
vifm-Y vifm-help.txt /*vifm-Y*
|
||||||
|
vifm-ZQ vifm-help.txt /*vifm-ZQ*
|
||||||
|
vifm-ZZ vifm-help.txt /*vifm-ZZ*
|
||||||
|
vifm-[R vifm-help.txt /*vifm-[R*
|
||||||
|
vifm-[c vifm-help.txt /*vifm-[c*
|
||||||
|
vifm-[count] vifm-help.txt /*vifm-[count]*
|
||||||
|
vifm-[d vifm-help.txt /*vifm-[d*
|
||||||
|
vifm-[r vifm-help.txt /*vifm-[r*
|
||||||
|
vifm-[s vifm-help.txt /*vifm-[s*
|
||||||
|
vifm-[z vifm-help.txt /*vifm-[z*
|
||||||
|
vifm-]R vifm-help.txt /*vifm-]R*
|
||||||
|
vifm-]c vifm-help.txt /*vifm-]c*
|
||||||
|
vifm-]d vifm-help.txt /*vifm-]d*
|
||||||
|
vifm-]r vifm-help.txt /*vifm-]r*
|
||||||
|
vifm-]s vifm-help.txt /*vifm-]s*
|
||||||
|
vifm-]z vifm-help.txt /*vifm-]z*
|
||||||
|
vifm-^ vifm-help.txt /*vifm-^*
|
||||||
|
vifm-al vifm-help.txt /*vifm-al*
|
||||||
|
vifm-app.txt vifm-help.txt /*vifm-app.txt*
|
||||||
|
vifm-av vifm-help.txt /*vifm-av*
|
||||||
|
vifm-cW vifm-help.txt /*vifm-cW*
|
||||||
|
vifm-c_ALT-. vifm-help.txt /*vifm-c_ALT-.*
|
||||||
|
vifm-c_ALT-B vifm-help.txt /*vifm-c_ALT-B*
|
||||||
|
vifm-c_ALT-D vifm-help.txt /*vifm-c_ALT-D*
|
||||||
|
vifm-c_ALT-F vifm-help.txt /*vifm-c_ALT-F*
|
||||||
|
vifm-c_Backspace vifm-help.txt /*vifm-c_Backspace*
|
||||||
|
vifm-c_CTRL-A vifm-help.txt /*vifm-c_CTRL-A*
|
||||||
|
vifm-c_CTRL-B vifm-help.txt /*vifm-c_CTRL-B*
|
||||||
|
vifm-c_CTRL-C vifm-help.txt /*vifm-c_CTRL-C*
|
||||||
|
vifm-c_CTRL-D vifm-help.txt /*vifm-c_CTRL-D*
|
||||||
|
vifm-c_CTRL-E vifm-help.txt /*vifm-c_CTRL-E*
|
||||||
|
vifm-c_CTRL-F vifm-help.txt /*vifm-c_CTRL-F*
|
||||||
|
vifm-c_CTRL-G vifm-help.txt /*vifm-c_CTRL-G*
|
||||||
|
vifm-c_CTRL-H vifm-help.txt /*vifm-c_CTRL-H*
|
||||||
|
vifm-c_CTRL-I vifm-help.txt /*vifm-c_CTRL-I*
|
||||||
|
vifm-c_CTRL-K vifm-help.txt /*vifm-c_CTRL-K*
|
||||||
|
vifm-c_CTRL-M vifm-help.txt /*vifm-c_CTRL-M*
|
||||||
|
vifm-c_CTRL-N vifm-help.txt /*vifm-c_CTRL-N*
|
||||||
|
vifm-c_CTRL-P vifm-help.txt /*vifm-c_CTRL-P*
|
||||||
|
vifm-c_CTRL-R_= vifm-help.txt /*vifm-c_CTRL-R_=*
|
||||||
|
vifm-c_CTRL-T vifm-help.txt /*vifm-c_CTRL-T*
|
||||||
|
vifm-c_CTRL-U vifm-help.txt /*vifm-c_CTRL-U*
|
||||||
|
vifm-c_CTRL-W vifm-help.txt /*vifm-c_CTRL-W*
|
||||||
|
vifm-c_CTRL-X_/ vifm-help.txt /*vifm-c_CTRL-X_\/*
|
||||||
|
vifm-c_CTRL-X_= vifm-help.txt /*vifm-c_CTRL-X_=*
|
||||||
|
vifm-c_CTRL-X_CTRL-X_c vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_c*
|
||||||
|
vifm-c_CTRL-X_CTRL-X_d vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_d*
|
||||||
|
vifm-c_CTRL-X_CTRL-X_e vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_e*
|
||||||
|
vifm-c_CTRL-X_CTRL-X_r vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_r*
|
||||||
|
vifm-c_CTRL-X_CTRL-X_t vifm-help.txt /*vifm-c_CTRL-X_CTRL-X_t*
|
||||||
|
vifm-c_CTRL-X_a vifm-help.txt /*vifm-c_CTRL-X_a*
|
||||||
|
vifm-c_CTRL-X_c vifm-help.txt /*vifm-c_CTRL-X_c*
|
||||||
|
vifm-c_CTRL-X_d vifm-help.txt /*vifm-c_CTRL-X_d*
|
||||||
|
vifm-c_CTRL-X_e vifm-help.txt /*vifm-c_CTRL-X_e*
|
||||||
|
vifm-c_CTRL-X_m vifm-help.txt /*vifm-c_CTRL-X_m*
|
||||||
|
vifm-c_CTRL-X_r vifm-help.txt /*vifm-c_CTRL-X_r*
|
||||||
|
vifm-c_CTRL-X_t vifm-help.txt /*vifm-c_CTRL-X_t*
|
||||||
|
vifm-c_CTRL-] vifm-help.txt /*vifm-c_CTRL-]*
|
||||||
|
vifm-c_CTRL-_ vifm-help.txt /*vifm-c_CTRL-_*
|
||||||
|
vifm-c_Delete vifm-help.txt /*vifm-c_Delete*
|
||||||
|
vifm-c_Down vifm-help.txt /*vifm-c_Down*
|
||||||
|
vifm-c_End vifm-help.txt /*vifm-c_End*
|
||||||
|
vifm-c_Enter vifm-help.txt /*vifm-c_Enter*
|
||||||
|
vifm-c_Esc vifm-help.txt /*vifm-c_Esc*
|
||||||
|
vifm-c_Home vifm-help.txt /*vifm-c_Home*
|
||||||
|
vifm-c_Left vifm-help.txt /*vifm-c_Left*
|
||||||
|
vifm-c_Right vifm-help.txt /*vifm-c_Right*
|
||||||
|
vifm-c_SHIFT-Tab vifm-help.txt /*vifm-c_SHIFT-Tab*
|
||||||
|
vifm-c_Tab vifm-help.txt /*vifm-c_Tab*
|
||||||
|
vifm-c_Up vifm-help.txt /*vifm-c_Up*
|
||||||
|
vifm-cancellation vifm-help.txt /*vifm-cancellation*
|
||||||
|
vifm-cg vifm-help.txt /*vifm-cg*
|
||||||
|
vifm-chooseopt() vifm-help.txt /*vifm-chooseopt()*
|
||||||
|
vifm-cl vifm-help.txt /*vifm-cl*
|
||||||
|
vifm-clientserver vifm-help.txt /*vifm-clientserver*
|
||||||
|
vifm-co vifm-help.txt /*vifm-co*
|
||||||
|
vifm-color-schemes vifm-help.txt /*vifm-color-schemes*
|
||||||
|
vifm-colors vifm-help.txt /*vifm-colors*
|
||||||
|
vifm-column-view vifm-help.txt /*vifm-column-view*
|
||||||
|
vifm-command-line vifm-help.txt /*vifm-command-line*
|
||||||
|
vifm-command-line-edit vifm-help.txt /*vifm-command-line-edit*
|
||||||
|
vifm-commands vifm-help.txt /*vifm-commands*
|
||||||
|
vifm-commands-and-selection vifm-help.txt /*vifm-commands-and-selection*
|
||||||
|
vifm-commands-bg vifm-help.txt /*vifm-commands-bg*
|
||||||
|
vifm-compare-views vifm-help.txt /*vifm-compare-views*
|
||||||
|
vifm-configure vifm-help.txt /*vifm-configure*
|
||||||
|
vifm-count vifm-help.txt /*vifm-count*
|
||||||
|
vifm-count-variable vifm-help.txt /*vifm-count-variable*
|
||||||
|
vifm-count1-variable vifm-help.txt /*vifm-count1-variable*
|
||||||
|
vifm-cp vifm-help.txt /*vifm-cp*
|
||||||
|
vifm-cpo-f vifm-help.txt /*vifm-cpo-f*
|
||||||
|
vifm-cpo-s vifm-help.txt /*vifm-cpo-s*
|
||||||
|
vifm-cpo-t vifm-help.txt /*vifm-cpo-t*
|
||||||
|
vifm-custom-views vifm-help.txt /*vifm-custom-views*
|
||||||
|
vifm-cw vifm-help.txt /*vifm-cw*
|
||||||
|
vifm-d vifm-help.txt /*vifm-d*
|
||||||
|
vifm-dd vifm-help.txt /*vifm-dd*
|
||||||
|
vifm-do vifm-help.txt /*vifm-do*
|
||||||
|
vifm-dp vifm-help.txt /*vifm-dp*
|
||||||
|
vifm-e vifm-help.txt /*vifm-e*
|
||||||
|
vifm-env-vars vifm-help.txt /*vifm-env-vars*
|
||||||
|
vifm-executable() vifm-help.txt /*vifm-executable()*
|
||||||
|
vifm-expand() vifm-help.txt /*vifm-expand()*
|
||||||
|
vifm-expr-!= vifm-help.txt /*vifm-expr-!=*
|
||||||
|
vifm-expr-' vifm-help.txt /*vifm-expr-'*
|
||||||
|
vifm-expr-+ vifm-help.txt /*vifm-expr-+*
|
||||||
|
vifm-expr-- vifm-help.txt /*vifm-expr--*
|
||||||
|
vifm-expr-. vifm-help.txt /*vifm-expr-.*
|
||||||
|
vifm-expr-< vifm-help.txt /*vifm-expr-<*
|
||||||
|
vifm-expr-<= vifm-help.txt /*vifm-expr-<=*
|
||||||
|
vifm-expr-== vifm-help.txt /*vifm-expr-==*
|
||||||
|
vifm-expr-> vifm-help.txt /*vifm-expr->*
|
||||||
|
vifm-expr->= vifm-help.txt /*vifm-expr->=*
|
||||||
|
vifm-expr-env vifm-help.txt /*vifm-expr-env*
|
||||||
|
vifm-expr-function vifm-help.txt /*vifm-expr-function*
|
||||||
|
vifm-expr-nesting vifm-help.txt /*vifm-expr-nesting*
|
||||||
|
vifm-expr-number vifm-help.txt /*vifm-expr-number*
|
||||||
|
vifm-expr-option vifm-help.txt /*vifm-expr-option*
|
||||||
|
vifm-expr-quote vifm-help.txt /*vifm-expr-quote*
|
||||||
|
vifm-expr-string vifm-help.txt /*vifm-expr-string*
|
||||||
|
vifm-expr-unary-! vifm-help.txt /*vifm-expr-unary-!*
|
||||||
|
vifm-expr-unary-+ vifm-help.txt /*vifm-expr-unary-+*
|
||||||
|
vifm-expr-unary-- vifm-help.txt /*vifm-expr-unary--*
|
||||||
|
vifm-expr-variable vifm-help.txt /*vifm-expr-variable*
|
||||||
|
vifm-expr1 vifm-help.txt /*vifm-expr1*
|
||||||
|
vifm-expr2 vifm-help.txt /*vifm-expr2*
|
||||||
|
vifm-expr3 vifm-help.txt /*vifm-expr3*
|
||||||
|
vifm-expr4 vifm-help.txt /*vifm-expr4*
|
||||||
|
vifm-expr5 vifm-help.txt /*vifm-expr5*
|
||||||
|
vifm-expr6 vifm-help.txt /*vifm-expr6*
|
||||||
|
vifm-expr7 vifm-help.txt /*vifm-expr7*
|
||||||
|
vifm-expression-syntax vifm-help.txt /*vifm-expression-syntax*
|
||||||
|
vifm-ext-rename vifm-help.txt /*vifm-ext-rename*
|
||||||
|
vifm-extcached() vifm-help.txt /*vifm-extcached()*
|
||||||
|
vifm-f vifm-help.txt /*vifm-f*
|
||||||
|
vifm-filename-modifiers vifm-help.txt /*vifm-filename-modifiers*
|
||||||
|
vifm-filetype() vifm-help.txt /*vifm-filetype()*
|
||||||
|
vifm-filters vifm-help.txt /*vifm-filters*
|
||||||
|
vifm-fnameescape() vifm-help.txt /*vifm-fnameescape()*
|
||||||
|
vifm-functions vifm-help.txt /*vifm-functions*
|
||||||
|
vifm-fuse vifm-help.txt /*vifm-fuse*
|
||||||
|
vifm-gA vifm-help.txt /*vifm-gA*
|
||||||
|
vifm-gF vifm-help.txt /*vifm-gF*
|
||||||
|
vifm-gT vifm-help.txt /*vifm-gT*
|
||||||
|
vifm-gU vifm-help.txt /*vifm-gU*
|
||||||
|
vifm-gUU vifm-help.txt /*vifm-gUU*
|
||||||
|
vifm-gUgU vifm-help.txt /*vifm-gUgU*
|
||||||
|
vifm-ga vifm-help.txt /*vifm-ga*
|
||||||
|
vifm-general-keys vifm-help.txt /*vifm-general-keys*
|
||||||
|
vifm-getpanetype() vifm-help.txt /*vifm-getpanetype()*
|
||||||
|
vifm-gf vifm-help.txt /*vifm-gf*
|
||||||
|
vifm-gg vifm-help.txt /*vifm-gg*
|
||||||
|
vifm-gh vifm-help.txt /*vifm-gh*
|
||||||
|
vifm-gj vifm-help.txt /*vifm-gj*
|
||||||
|
vifm-gk vifm-help.txt /*vifm-gk*
|
||||||
|
vifm-gl vifm-help.txt /*vifm-gl*
|
||||||
|
vifm-globs vifm-help.txt /*vifm-globs*
|
||||||
|
vifm-gr vifm-help.txt /*vifm-gr*
|
||||||
|
vifm-gs vifm-help.txt /*vifm-gs*
|
||||||
|
vifm-gt vifm-help.txt /*vifm-gt*
|
||||||
|
vifm-gu vifm-help.txt /*vifm-gu*
|
||||||
|
vifm-gugu vifm-help.txt /*vifm-gugu*
|
||||||
|
vifm-guu vifm-help.txt /*vifm-guu*
|
||||||
|
vifm-gv vifm-help.txt /*vifm-gv*
|
||||||
|
vifm-h vifm-help.txt /*vifm-h*
|
||||||
|
vifm-has() vifm-help.txt /*vifm-has()*
|
||||||
|
vifm-i vifm-help.txt /*vifm-i*
|
||||||
|
vifm-j vifm-help.txt /*vifm-j*
|
||||||
|
vifm-jobcount-variable vifm-help.txt /*vifm-jobcount-variable*
|
||||||
|
vifm-k vifm-help.txt /*vifm-k*
|
||||||
|
vifm-l vifm-help.txt /*vifm-l*
|
||||||
|
vifm-layoutis() vifm-help.txt /*vifm-layoutis()*
|
||||||
|
vifm-literal-string vifm-help.txt /*vifm-literal-string*
|
||||||
|
vifm-local-options vifm-help.txt /*vifm-local-options*
|
||||||
|
vifm-ls-view vifm-help.txt /*vifm-ls-view*
|
||||||
|
vifm-m vifm-help.txt /*vifm-m*
|
||||||
|
vifm-m_/ vifm-help.txt /*vifm-m_\/*
|
||||||
|
vifm-m_: vifm-help.txt /*vifm-m_:*
|
||||||
|
vifm-m_:exi vifm-help.txt /*vifm-m_:exi*
|
||||||
|
vifm-m_:exit vifm-help.txt /*vifm-m_:exit*
|
||||||
|
vifm-m_:noh vifm-help.txt /*vifm-m_:noh*
|
||||||
|
vifm-m_:nohlsearch vifm-help.txt /*vifm-m_:nohlsearch*
|
||||||
|
vifm-m_:q vifm-help.txt /*vifm-m_:q*
|
||||||
|
vifm-m_:quit vifm-help.txt /*vifm-m_:quit*
|
||||||
|
vifm-m_:range vifm-help.txt /*vifm-m_:range*
|
||||||
|
vifm-m_:w vifm-help.txt /*vifm-m_:w*
|
||||||
|
vifm-m_:write vifm-help.txt /*vifm-m_:write*
|
||||||
|
vifm-m_:x vifm-help.txt /*vifm-m_:x*
|
||||||
|
vifm-m_:xit vifm-help.txt /*vifm-m_:xit*
|
||||||
|
vifm-m_? vifm-help.txt /*vifm-m_?*
|
||||||
|
vifm-m_B vifm-help.txt /*vifm-m_B*
|
||||||
|
vifm-m_CTRL-B vifm-help.txt /*vifm-m_CTRL-B*
|
||||||
|
vifm-m_CTRL-C vifm-help.txt /*vifm-m_CTRL-C*
|
||||||
|
vifm-m_CTRL-D vifm-help.txt /*vifm-m_CTRL-D*
|
||||||
|
vifm-m_CTRL-E vifm-help.txt /*vifm-m_CTRL-E*
|
||||||
|
vifm-m_CTRL-F vifm-help.txt /*vifm-m_CTRL-F*
|
||||||
|
vifm-m_CTRL-L vifm-help.txt /*vifm-m_CTRL-L*
|
||||||
|
vifm-m_CTRL-N vifm-help.txt /*vifm-m_CTRL-N*
|
||||||
|
vifm-m_CTRL-P vifm-help.txt /*vifm-m_CTRL-P*
|
||||||
|
vifm-m_CTRL-U vifm-help.txt /*vifm-m_CTRL-U*
|
||||||
|
vifm-m_CTRL-Y vifm-help.txt /*vifm-m_CTRL-Y*
|
||||||
|
vifm-m_Enter vifm-help.txt /*vifm-m_Enter*
|
||||||
|
vifm-m_Escape vifm-help.txt /*vifm-m_Escape*
|
||||||
|
vifm-m_G vifm-help.txt /*vifm-m_G*
|
||||||
|
vifm-m_H vifm-help.txt /*vifm-m_H*
|
||||||
|
vifm-m_L vifm-help.txt /*vifm-m_L*
|
||||||
|
vifm-m_M vifm-help.txt /*vifm-m_M*
|
||||||
|
vifm-m_N vifm-help.txt /*vifm-m_N*
|
||||||
|
vifm-m_ZQ vifm-help.txt /*vifm-m_ZQ*
|
||||||
|
vifm-m_ZZ vifm-help.txt /*vifm-m_ZZ*
|
||||||
|
vifm-m_b vifm-help.txt /*vifm-m_b*
|
||||||
|
vifm-m_c vifm-help.txt /*vifm-m_c*
|
||||||
|
vifm-m_e vifm-help.txt /*vifm-m_e*
|
||||||
|
vifm-m_gf vifm-help.txt /*vifm-m_gf*
|
||||||
|
vifm-m_gg vifm-help.txt /*vifm-m_gg*
|
||||||
|
vifm-m_j vifm-help.txt /*vifm-m_j*
|
||||||
|
vifm-m_k vifm-help.txt /*vifm-m_k*
|
||||||
|
vifm-m_l vifm-help.txt /*vifm-m_l*
|
||||||
|
vifm-m_n vifm-help.txt /*vifm-m_n*
|
||||||
|
vifm-m_q vifm-help.txt /*vifm-m_q*
|
||||||
|
vifm-m_v vifm-help.txt /*vifm-m_v*
|
||||||
|
vifm-m_zH vifm-help.txt /*vifm-m_zH*
|
||||||
|
vifm-m_zL vifm-help.txt /*vifm-m_zL*
|
||||||
|
vifm-m_zb vifm-help.txt /*vifm-m_zb*
|
||||||
|
vifm-m_zh vifm-help.txt /*vifm-m_zh*
|
||||||
|
vifm-m_zl vifm-help.txt /*vifm-m_zl*
|
||||||
|
vifm-m_zt vifm-help.txt /*vifm-m_zt*
|
||||||
|
vifm-m_zz vifm-help.txt /*vifm-m_zz*
|
||||||
|
vifm-macros vifm-help.txt /*vifm-macros*
|
||||||
|
vifm-mappings vifm-help.txt /*vifm-mappings*
|
||||||
|
vifm-menus-and-dialogs vifm-help.txt /*vifm-menus-and-dialogs*
|
||||||
|
vifm-more vifm-help.txt /*vifm-more*
|
||||||
|
vifm-n vifm-help.txt /*vifm-n*
|
||||||
|
vifm-normal vifm-help.txt /*vifm-normal*
|
||||||
|
vifm-options vifm-help.txt /*vifm-options*
|
||||||
|
vifm-p vifm-help.txt /*vifm-p*
|
||||||
|
vifm-pager vifm-help.txt /*vifm-pager*
|
||||||
|
vifm-paneisat() vifm-help.txt /*vifm-paneisat()*
|
||||||
|
vifm-patterns vifm-help.txt /*vifm-patterns*
|
||||||
|
vifm-plugin vifm-help.txt /*vifm-plugin*
|
||||||
|
vifm-q/ vifm-help.txt /*vifm-q\/*
|
||||||
|
vifm-q: vifm-help.txt /*vifm-q:*
|
||||||
|
vifm-q= vifm-help.txt /*vifm-q=*
|
||||||
|
vifm-q? vifm-help.txt /*vifm-q?*
|
||||||
|
vifm-q_% vifm-help.txt /*vifm-q_%*
|
||||||
|
vifm-q_/ vifm-help.txt /*vifm-q_\/*
|
||||||
|
vifm-q_< vifm-help.txt /*vifm-q_<*
|
||||||
|
vifm-q_> vifm-help.txt /*vifm-q_>*
|
||||||
|
vifm-q_? vifm-help.txt /*vifm-q_?*
|
||||||
|
vifm-q_A vifm-help.txt /*vifm-q_A*
|
||||||
|
vifm-q_ALT-< vifm-help.txt /*vifm-q_ALT-<*
|
||||||
|
vifm-q_ALT-> vifm-help.txt /*vifm-q_ALT->*
|
||||||
|
vifm-q_ALT-Space vifm-help.txt /*vifm-q_ALT-Space*
|
||||||
|
vifm-q_ALT-V vifm-help.txt /*vifm-q_ALT-V*
|
||||||
|
vifm-q_CTRL-B vifm-help.txt /*vifm-q_CTRL-B*
|
||||||
|
vifm-q_CTRL-D vifm-help.txt /*vifm-q_CTRL-D*
|
||||||
|
vifm-q_CTRL-E vifm-help.txt /*vifm-q_CTRL-E*
|
||||||
|
vifm-q_CTRL-F vifm-help.txt /*vifm-q_CTRL-F*
|
||||||
|
vifm-q_CTRL-K vifm-help.txt /*vifm-q_CTRL-K*
|
||||||
|
vifm-q_CTRL-L vifm-help.txt /*vifm-q_CTRL-L*
|
||||||
|
vifm-q_CTRL-N vifm-help.txt /*vifm-q_CTRL-N*
|
||||||
|
vifm-q_CTRL-P vifm-help.txt /*vifm-q_CTRL-P*
|
||||||
|
vifm-q_CTRL-R vifm-help.txt /*vifm-q_CTRL-R*
|
||||||
|
vifm-q_CTRL-U vifm-help.txt /*vifm-q_CTRL-U*
|
||||||
|
vifm-q_CTRL-V vifm-help.txt /*vifm-q_CTRL-V*
|
||||||
|
vifm-q_CTRL-Y vifm-help.txt /*vifm-q_CTRL-Y*
|
||||||
|
vifm-q_Enter vifm-help.txt /*vifm-q_Enter*
|
||||||
|
vifm-q_F vifm-help.txt /*vifm-q_F*
|
||||||
|
vifm-q_G vifm-help.txt /*vifm-q_G*
|
||||||
|
vifm-q_N vifm-help.txt /*vifm-q_N*
|
||||||
|
vifm-q_Q vifm-help.txt /*vifm-q_Q*
|
||||||
|
vifm-q_R vifm-help.txt /*vifm-q_R*
|
||||||
|
vifm-q_SHIFT-Tab vifm-help.txt /*vifm-q_SHIFT-Tab*
|
||||||
|
vifm-q_Space vifm-help.txt /*vifm-q_Space*
|
||||||
|
vifm-q_Tab vifm-help.txt /*vifm-q_Tab*
|
||||||
|
vifm-q_ZZ vifm-help.txt /*vifm-q_ZZ*
|
||||||
|
vifm-q_a vifm-help.txt /*vifm-q_a*
|
||||||
|
vifm-q_b vifm-help.txt /*vifm-q_b*
|
||||||
|
vifm-q_d vifm-help.txt /*vifm-q_d*
|
||||||
|
vifm-q_e vifm-help.txt /*vifm-q_e*
|
||||||
|
vifm-q_f vifm-help.txt /*vifm-q_f*
|
||||||
|
vifm-q_g vifm-help.txt /*vifm-q_g*
|
||||||
|
vifm-q_i vifm-help.txt /*vifm-q_i*
|
||||||
|
vifm-q_j vifm-help.txt /*vifm-q_j*
|
||||||
|
vifm-q_k vifm-help.txt /*vifm-q_k*
|
||||||
|
vifm-q_n vifm-help.txt /*vifm-q_n*
|
||||||
|
vifm-q_p vifm-help.txt /*vifm-q_p*
|
||||||
|
vifm-q_q vifm-help.txt /*vifm-q_q*
|
||||||
|
vifm-q_r vifm-help.txt /*vifm-q_r*
|
||||||
|
vifm-q_u vifm-help.txt /*vifm-q_u*
|
||||||
|
vifm-q_v vifm-help.txt /*vifm-q_v*
|
||||||
|
vifm-q_w vifm-help.txt /*vifm-q_w*
|
||||||
|
vifm-q_y vifm-help.txt /*vifm-q_y*
|
||||||
|
vifm-q_z vifm-help.txt /*vifm-q_z*
|
||||||
|
vifm-ranges vifm-help.txt /*vifm-ranges*
|
||||||
|
vifm-regexp vifm-help.txt /*vifm-regexp*
|
||||||
|
vifm-registers vifm-help.txt /*vifm-registers*
|
||||||
|
vifm-reserved vifm-help.txt /*vifm-reserved*
|
||||||
|
vifm-rl vifm-help.txt /*vifm-rl*
|
||||||
|
vifm-scripts vifm-help.txt /*vifm-scripts*
|
||||||
|
vifm-see-also vifm-help.txt /*vifm-see-also*
|
||||||
|
vifm-selection vifm-help.txt /*vifm-selection*
|
||||||
|
vifm-selectors vifm-help.txt /*vifm-selectors*
|
||||||
|
vifm-servername-variable vifm-help.txt /*vifm-servername-variable*
|
||||||
|
vifm-session-variable vifm-help.txt /*vifm-session-variable*
|
||||||
|
vifm-sessions vifm-help.txt /*vifm-sessions*
|
||||||
|
vifm-set-options vifm-help.txt /*vifm-set-options*
|
||||||
|
vifm-skip-param vifm-help.txt /*vifm-skip-param*
|
||||||
|
vifm-startup vifm-help.txt /*vifm-startup*
|
||||||
|
vifm-system() vifm-help.txt /*vifm-system()*
|
||||||
|
vifm-t vifm-help.txt /*vifm-t*
|
||||||
|
vifm-tabpagenr() vifm-help.txt /*vifm-tabpagenr()*
|
||||||
|
vifm-term() vifm-help.txt /*vifm-term()*
|
||||||
|
vifm-to-l vifm-help.txt /*vifm-to-l*
|
||||||
|
vifm-to-p vifm-help.txt /*vifm-to-p*
|
||||||
|
vifm-to-r vifm-help.txt /*vifm-to-r*
|
||||||
|
vifm-to-s vifm-help.txt /*vifm-to-s*
|
||||||
|
vifm-to-u vifm-help.txt /*vifm-to-u*
|
||||||
|
vifm-to-v vifm-help.txt /*vifm-to-v*
|
||||||
|
vifm-trash vifm-help.txt /*vifm-trash*
|
||||||
|
vifm-u vifm-help.txt /*vifm-u*
|
||||||
|
vifm-v vifm-help.txt /*vifm-v*
|
||||||
|
vifm-v:count vifm-help.txt /*vifm-v:count*
|
||||||
|
vifm-v:count1 vifm-help.txt /*vifm-v:count1*
|
||||||
|
vifm-v:jobcount vifm-help.txt /*vifm-v:jobcount*
|
||||||
|
vifm-v:servername vifm-help.txt /*vifm-v:servername*
|
||||||
|
vifm-v:session vifm-help.txt /*vifm-v:session*
|
||||||
|
vifm-v_: vifm-help.txt /*vifm-v_:*
|
||||||
|
vifm-v_CTRL-C vifm-help.txt /*vifm-v_CTRL-C*
|
||||||
|
vifm-v_CTRL-G vifm-help.txt /*vifm-v_CTRL-G*
|
||||||
|
vifm-v_Enter vifm-help.txt /*vifm-v_Enter*
|
||||||
|
vifm-v_Escape vifm-help.txt /*vifm-v_Escape*
|
||||||
|
vifm-v_O vifm-help.txt /*vifm-v_O*
|
||||||
|
vifm-v_U vifm-help.txt /*vifm-v_U*
|
||||||
|
vifm-v_V vifm-help.txt /*vifm-v_V*
|
||||||
|
vifm-v_av vifm-help.txt /*vifm-v_av*
|
||||||
|
vifm-v_cl vifm-help.txt /*vifm-v_cl*
|
||||||
|
vifm-v_cw vifm-help.txt /*vifm-v_cw*
|
||||||
|
vifm-v_gU vifm-help.txt /*vifm-v_gU*
|
||||||
|
vifm-v_gu vifm-help.txt /*vifm-v_gu*
|
||||||
|
vifm-v_gv vifm-help.txt /*vifm-v_gv*
|
||||||
|
vifm-v_o vifm-help.txt /*vifm-v_o*
|
||||||
|
vifm-v_u vifm-help.txt /*vifm-v_u*
|
||||||
|
vifm-v_v vifm-help.txt /*vifm-v_v*
|
||||||
|
vifm-view vifm-help.txt /*vifm-view*
|
||||||
|
vifm-view-look vifm-help.txt /*vifm-view-look*
|
||||||
|
vifm-vifminfo vifm-help.txt /*vifm-vifminfo*
|
||||||
|
vifm-vifmrc vifm-help.txt /*vifm-vifmrc*
|
||||||
|
vifm-visual vifm-help.txt /*vifm-visual*
|
||||||
|
vifm-y vifm-help.txt /*vifm-y*
|
||||||
|
vifm-yy vifm-help.txt /*vifm-yy*
|
||||||
|
vifm-zM vifm-help.txt /*vifm-zM*
|
||||||
|
vifm-zO vifm-help.txt /*vifm-zO*
|
||||||
|
vifm-zR vifm-help.txt /*vifm-zR*
|
||||||
|
vifm-za vifm-help.txt /*vifm-za*
|
||||||
|
vifm-zb vifm-help.txt /*vifm-zb*
|
||||||
|
vifm-zd vifm-help.txt /*vifm-zd*
|
||||||
|
vifm-zf vifm-help.txt /*vifm-zf*
|
||||||
|
vifm-zj vifm-help.txt /*vifm-zj*
|
||||||
|
vifm-zk vifm-help.txt /*vifm-zk*
|
||||||
|
vifm-zm vifm-help.txt /*vifm-zm*
|
||||||
|
vifm-zo vifm-help.txt /*vifm-zo*
|
||||||
|
vifm-zr vifm-help.txt /*vifm-zr*
|
||||||
|
vifm-zt vifm-help.txt /*vifm-zt*
|
||||||
|
vifm-zx vifm-help.txt /*vifm-zx*
|
||||||
|
vifm-zz vifm-help.txt /*vifm-zz*
|
||||||
|
vifm-{ vifm-help.txt /*vifm-{*
|
||||||
|
vifm-} vifm-help.txt /*vifm-}*
|
6509
.config/vifm/vifm-help.txt
Normal file
6509
.config/vifm/vifm-help.txt
Normal file
File diff suppressed because it is too large
Load Diff
373
.config/vifm/vifmrc
Normal file
373
.config/vifm/vifmrc
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
"" VIFM Config file / 2023-03-16 / Jan Andrle
|
||||||
|
"" #region B – Bookmarks
|
||||||
|
if !has('win')
|
||||||
|
:bmark! "~/" home
|
||||||
|
:bmark! "~/Stažené/" downloads
|
||||||
|
:bmark! "~/Dokumenty/" documents
|
||||||
|
:bmark! "~/Dokumenty/Projekty/" projects
|
||||||
|
:bmark! "~/Vzdálené/GitHub/" git github
|
||||||
|
:bmark! "~/Vzdálené/ftp/" ftp
|
||||||
|
:bmark! "~/Vzdálené/OneDrive" onedrive
|
||||||
|
:bmark! "~/.config/vifm/" vifm
|
||||||
|
:bmark! "~/.chatgpt/notes" chatgpt-notes
|
||||||
|
:bmark! "/media/jaandrle/" volumes
|
||||||
|
else
|
||||||
|
:bmark! "~/" home
|
||||||
|
:bmark! "C:/Projekty/" projects cordova
|
||||||
|
:bmark! "~/Documents/GitHub/" projects git github
|
||||||
|
:bmark! "y:/" qnap
|
||||||
|
:bmark! "y:/DHL/" qnap dhl
|
||||||
|
:bmark! "~/Downloads/" downloads
|
||||||
|
:bmark! "~/Downloads/FTPtemp/" ftp temp
|
||||||
|
:bmark! "~/AppData/Roaming/Vifm/" vifm
|
||||||
|
endif
|
||||||
|
mark b ~/bin/
|
||||||
|
mark h ~/
|
||||||
|
"" #endregion B
|
||||||
|
"" #region G – General
|
||||||
|
" set vicmd=elvis\ -G\ termcap | " set vicmd=vile
|
||||||
|
set vicmd=vim
|
||||||
|
"set vimhelp
|
||||||
|
command! README :!vim ~/Dokumenty/GitHub/dotfiles/vifm/README.md
|
||||||
|
command! Help :!vim ~/.config/vifm/vifm-help.txt
|
||||||
|
map <f1> :Help<cr>
|
||||||
|
cabbrev help Help
|
||||||
|
if !has('win')
|
||||||
|
set fusehome=/tmp/vifm_FUSE
|
||||||
|
set slowfs=curlftpfs
|
||||||
|
endif
|
||||||
|
set syscalls norunexec
|
||||||
|
" Automatically resolve symbolic links on l or Enter.
|
||||||
|
set nofollowlinks
|
||||||
|
set trash
|
||||||
|
nmap dd :!trash %"f<cr>
|
||||||
|
nmap d? :exe "!clear && echo 'Native system trash (`trash-cli`): use `trash`|`trash-empty`|`trash-list`|`trash-put`|`trash-restore`|`trash-rm`' && trash-list | sort -r" | shell<cr>
|
||||||
|
set history=100 undolevels=100
|
||||||
|
" What should be saved automatically between vifm sessions. Drop "savedirs"
|
||||||
|
" value if you don't want vifm to remember last visited directories for you.
|
||||||
|
set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
|
||||||
|
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
|
||||||
|
|
||||||
|
cmap <c-b>
|
||||||
|
cmap <c-f>
|
||||||
|
nmap ; :
|
||||||
|
nmap š <tab>
|
||||||
|
nnoremap <c-h> :history<cr>
|
||||||
|
nnoremap \= :filter !{}<left><left>
|
||||||
|
" Open console in current directory
|
||||||
|
if !has('win')
|
||||||
|
nnoremap Ot :!(exo-open --launch TerminalEmulator --working-directory %d > /dev/null 2>&1) &<cr>
|
||||||
|
nnoremap Ov :!(exo-open --launch TerminalEmulator --working-directory %d -- -e "vifm ." > /dev/null 2>&1) &<cr>
|
||||||
|
nnoremap OV :!vim<cr>
|
||||||
|
else
|
||||||
|
nnoremap Ot :!start "[Vifm] PowerShell %d" powershell.exe -c "powershell.exe -NoExit -Command Set-Location -LiteralPath '%d'"<cr>
|
||||||
|
endif
|
||||||
|
"" #endregion G
|
||||||
|
"" #region AD – Apperance/Default
|
||||||
|
set quickview
|
||||||
|
command! SetView :view
|
||||||
|
set dotfiles
|
||||||
|
colorscheme codedark
|
||||||
|
set wildmenu wildstyle=popup
|
||||||
|
set suggestoptions=normal,visual,view,otherpane,keys,foldsubkeys,marks,registers
|
||||||
|
set ignorecase smartcase incsearch
|
||||||
|
set scrolloff=4
|
||||||
|
|
||||||
|
highlight User1 cterm=italic
|
||||||
|
set statusline=" %-E %-d %-A %1*»%-z«%* %= %{&sort} "
|
||||||
|
" hide side borders + use Unicode ellipsis
|
||||||
|
set tuioptions-=s
|
||||||
|
if $TERM != 'linux' | set tuioptions+=u | endif
|
||||||
|
" change appearance of middle border
|
||||||
|
" set fillchars=vborder:·
|
||||||
|
if has('win')
|
||||||
|
set columns=97
|
||||||
|
nnoremap <c-L>c :set columns=97<cr>
|
||||||
|
map <c-L>1 33<c-W>|
|
||||||
|
map <c-L>2 49<c-W>|
|
||||||
|
map <c-L>3 66<c-W>|
|
||||||
|
endif
|
||||||
|
"" #endregion AD
|
||||||
|
"" #region AT – Apperance/Texts
|
||||||
|
" Use KiB, MiB, ... instead of KB, MB, ...
|
||||||
|
set noiec
|
||||||
|
set tabstop=2
|
||||||
|
set timefmt=%y-%m-%dT%H:%M
|
||||||
|
" Customize view columns a bit (enable ellipsis for truncated file names)
|
||||||
|
set viewcolumns=-{root}..,5.4{ext},-6{}
|
||||||
|
command! SetViewColumnsDefault :set viewcolumns=-{root}..,5.4{ext},-6{}
|
||||||
|
command! SetViewColumnsShort :set viewcolumns=-{name}..,{}
|
||||||
|
command! SetWrap :set wrap!
|
||||||
|
"" #endregion AT
|
||||||
|
"" #region AS – Apperance/Sorting+Numbers
|
||||||
|
set sortnumbers sort=+iname
|
||||||
|
command! SetSortAll :sort
|
||||||
|
command! SetSort
|
||||||
|
\ :if &sort == '-size,+name'
|
||||||
|
\ | set sort=-mtime
|
||||||
|
\ | echo 'Sorted by modification date (from latest)'
|
||||||
|
\ |elseif &sort == '-size,+iname'
|
||||||
|
\ | set sort=-mtime
|
||||||
|
\ | echo 'Sorted by modification date (from latest)'
|
||||||
|
\ |elseif &sort == '+iname'
|
||||||
|
\ | set sort=-size
|
||||||
|
\ | echo 'Sorted by size'
|
||||||
|
\ |else
|
||||||
|
\ | set sort=+iname
|
||||||
|
\ | echo 'Sorted by name'
|
||||||
|
\ |endif
|
||||||
|
set number
|
||||||
|
command! SetNumber
|
||||||
|
\ :if &relativenumber
|
||||||
|
\ | set norelativenumber
|
||||||
|
\ | set number
|
||||||
|
\ | echo 'Numbers showned'
|
||||||
|
\ |elseif &number
|
||||||
|
\ | set nonumber
|
||||||
|
\ | echo 'No Numbers'
|
||||||
|
\ |else
|
||||||
|
\ | set relativenumber
|
||||||
|
\ | echo 'Relative numbers showned'
|
||||||
|
\ |endif
|
||||||
|
"" #endregion AS
|
||||||
|
"" #region C – Commands
|
||||||
|
cnoremap <c-b> <a-b>
|
||||||
|
cnoremap <c-f> <a-f>
|
||||||
|
cnoremap <> <><left>
|
||||||
|
cnoremap () ()<left>
|
||||||
|
cnoremap {} {}<left>
|
||||||
|
cnoremap "" ""<left>
|
||||||
|
cnoremap '' ''<left>
|
||||||
|
" #region :com[mand][!] command_name action
|
||||||
|
" The following macros can be used in a command
|
||||||
|
" %a is replaced with the user arguments.
|
||||||
|
" %c the current file under the cursor.
|
||||||
|
" %C the current file under the cursor in the other directory.
|
||||||
|
" %f the current selected file, or files.
|
||||||
|
" %F the current selected file, or files in the other directory.
|
||||||
|
" %b same as %f %F.
|
||||||
|
" %d the current directory name.
|
||||||
|
" %D the other window directory name.
|
||||||
|
" %m run the command in a menu window
|
||||||
|
" #endregion
|
||||||
|
if has('win')
|
||||||
|
command! meld "C:\Program Files (x86)\Meld\Meld.exe" %"f %"F &
|
||||||
|
command! zipAll powershell Compress-Archive -Path %"c/* -CompressionLevel Fastest -DestinationPath %c:r.zip
|
||||||
|
command! isrunnig %m tasklist /FI "IMAGENAME eq %a" 2>NUL | find /I /N "%a"
|
||||||
|
else
|
||||||
|
command! onedrive xfce4-terminal -x bash -c 'echo Microsoft Onedrive Log:; onedrive --synchronize &
|
||||||
|
command! meld meld %"f %"F 2> /dev/null &
|
||||||
|
command! zipAll zip -r "%c:r.zip" ./*
|
||||||
|
command! terminal !(exo-open --launch TerminalEmulator > /dev/null 2>&1) &
|
||||||
|
nmap \t :terminal<cr>
|
||||||
|
endif
|
||||||
|
if !has('win')
|
||||||
|
command! volumes :cd /media/jaandrle/
|
||||||
|
endif
|
||||||
|
|
||||||
|
command! df df -h %m 2> /dev/null
|
||||||
|
command! diff vim -d %f %F
|
||||||
|
command! vim vim %"f
|
||||||
|
command! make !!make %a
|
||||||
|
command! mkcd :mkdir %a | cd %a
|
||||||
|
command! vgrep vim "+grep %a"
|
||||||
|
command! reload :write | restart
|
||||||
|
|
||||||
|
command! run !! ./%f
|
||||||
|
command! runGUI !! ./%f &
|
||||||
|
nmap or :runGUI<cr>
|
||||||
|
nmap oR :run<cr>
|
||||||
|
"" #endregion C
|
||||||
|
" #region F – Filetypes
|
||||||
|
nnoremap ov :!vim %"f<cr>
|
||||||
|
nnoremap oo :file &<cr>l
|
||||||
|
nnoremap oO :file &<cr>/[#$]<cr>l
|
||||||
|
nnoremap on :file &<cr>/xdg-open<cr>l
|
||||||
|
|
||||||
|
" #region Farch – Archives
|
||||||
|
if has('win')
|
||||||
|
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt,
|
||||||
|
\*.docx,*.pptx,*.xmlx,*.epub
|
||||||
|
\ tar -tf %c
|
||||||
|
else
|
||||||
|
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt,
|
||||||
|
\*.docx,*.pptx,*.xmlx,*.epub
|
||||||
|
\ zip -sf %c
|
||||||
|
endif
|
||||||
|
filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg,
|
||||||
|
\*.docx,*.pptx,*.xmlx,
|
||||||
|
\*.epub,*.eml
|
||||||
|
\ {Mount with fuse-zip}
|
||||||
|
\ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
|
||||||
|
\ {View contents}
|
||||||
|
\ zip -sf %c | less,
|
||||||
|
\ {Extract here}
|
||||||
|
\ §extract %"f
|
||||||
|
filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz
|
||||||
|
\ {Mount with archivemount}
|
||||||
|
\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
|
||||||
|
\ {Extract here}
|
||||||
|
\ §extract %"f
|
||||||
|
fileviewer *.tgz,*.tar.gz tar -tzf %c
|
||||||
|
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
|
||||||
|
fileviewer *.tar.txz,*.txz xz --list %c
|
||||||
|
fileviewer *.tar tar -tf %c
|
||||||
|
filetype *.rar {Mount with rar2fs}
|
||||||
|
\ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
|
||||||
|
\ {Extract here}
|
||||||
|
\ §extract %"f
|
||||||
|
fileviewer *.rar unrar v %c
|
||||||
|
filetype *.iso {Mount with fuseiso}
|
||||||
|
\ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
|
||||||
|
\ {Extract here}
|
||||||
|
\ §extract %"f
|
||||||
|
filetype *.7z {Mount with fuse-7z}
|
||||||
|
\ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
|
||||||
|
\ {Extract here}
|
||||||
|
\ §extract %"f
|
||||||
|
fileviewer *.7z 7z l %c
|
||||||
|
" #endregion Farch
|
||||||
|
filetype *.ftp {Mount with curlftpfs}
|
||||||
|
\ FUSE_MOUNT2|curlftpfs -o disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND %CLEAR,
|
||||||
|
"\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND %CLEAR,
|
||||||
|
filetype *.ssh {Mount with sshfs}
|
||||||
|
\ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
|
||||||
|
|
||||||
|
if has('win')
|
||||||
|
" filetype * start, explorer
|
||||||
|
filetype *
|
||||||
|
\ {File Explorer}
|
||||||
|
\ explorer %"c:p &,
|
||||||
|
\ {Total Commander}
|
||||||
|
\ "C:\Program Files (x86)\totalcmd\TOTALCMD.EXE" /O %"c:p &,
|
||||||
|
\ {Notepad++}
|
||||||
|
\ "C:\Program Files\Notepad++\notepad++.exe" %"c:p &
|
||||||
|
filextype *.txt {Open with Notepad} start notepad.exe %f
|
||||||
|
else
|
||||||
|
filetype * {Native Open} xdg-open > /dev/null 2>&1 &
|
||||||
|
endif
|
||||||
|
" #region Futils – Utils (eg. hashs checks)
|
||||||
|
filetype *.torrent ktorrent %f &
|
||||||
|
fileviewer *.torrent dumptorrent -v %c
|
||||||
|
" Object
|
||||||
|
filetype *.o nm %f | less
|
||||||
|
" Man page
|
||||||
|
filetype *.[1-8] man ./%c
|
||||||
|
fileviewer *.[1-8] man ./%c | col -b
|
||||||
|
" MD5 SHA1 SHA256 SHA512 GPG signature
|
||||||
|
filetype *.md5 {Check MD5 hash sum}
|
||||||
|
\ md5sum -c %f %S,
|
||||||
|
filetype *.sha1 {Check SHA1 hash sum}
|
||||||
|
\ sha1sum -c %f %S,
|
||||||
|
filetype *.sha256 {Check SHA256 hash sum}
|
||||||
|
\ sha256sum -c %f %S,
|
||||||
|
filetype *.sha512 {Check SHA512 hash sum}
|
||||||
|
\ sha512sum -c %f %S,
|
||||||
|
filetype *.asc {Check signature}
|
||||||
|
\ !!gpg --verify %c,
|
||||||
|
" #endregion Futils
|
||||||
|
" #region FmediaBin
|
||||||
|
if has('win')
|
||||||
|
fileviewer
|
||||||
|
\*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,
|
||||||
|
\*.exe,*.epub,*.doc,*.docx
|
||||||
|
\*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus,
|
||||||
|
\*.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
|
||||||
|
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
|
||||||
|
\*.as[fx]
|
||||||
|
" \ powershell New-Object System.IO.FileInfo(\"%c:p\")
|
||||||
|
\ forfiles /M %"c /C "cmd /c (echo @path && echo . . . && echo Last modification: @fdate @ftime)" && echo . . . && type %"c
|
||||||
|
else
|
||||||
|
fileviewer
|
||||||
|
\*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,
|
||||||
|
\ env -u COLORTERM viu-image-viewer.viu %"c -w %pw -t &&
|
||||||
|
\ echo $(file -b %f)
|
||||||
|
\ %pc
|
||||||
|
fileviewer
|
||||||
|
\*.exe,*.doc,
|
||||||
|
\*.svg,
|
||||||
|
\ echo $(file -b %f) && echo — && echo $(ls -lh %f)&& echo — && echo $(head %f | tr -d '\0')
|
||||||
|
fileviewer *.pdf pdftotext -nopgbrk %c -
|
||||||
|
fileviewer <video/*>,<audio/*> mediainfo %c
|
||||||
|
endif
|
||||||
|
" #endregion FmediaBin
|
||||||
|
fileviewer .*/,*/ tree %c -L 3 &
|
||||||
|
fileviewer ../ tree %c -L 1 &
|
||||||
|
fileviewer *.js,*.mjs,*.ts,*.sh,
|
||||||
|
\*.css,*.scss,
|
||||||
|
\*.php,
|
||||||
|
\*.md,*.html,
|
||||||
|
\*.json,*.xml
|
||||||
|
\ env -uCOLORTERM bat --color always --theme 'Visual Studio Dark+' --wrap never --pager never --tabs 2 %c -p
|
||||||
|
fileviewer <text/x-*>,<application/*> env -uCOLORTERM bat --color always --theme 'Visual Studio Dark+' --wrap never --pager never --tabs 2 %c -p
|
||||||
|
" #endregion F
|
||||||
|
" #region S – sS keys
|
||||||
|
nnoremap sf :file &
|
||||||
|
nnoremap sjj :cd ./
|
||||||
|
nnoremap sjh :cd ~/
|
||||||
|
nnoremap sjg :cd ~/Vzdálené/GitHub/
|
||||||
|
nnoremap sjp :cd ~/Dokumenty/Projekty/
|
||||||
|
nnoremap sb :bmg
|
||||||
|
nnoremap sS :Set
|
||||||
|
nnoremap SS :<up><cr>
|
||||||
|
" #endregion S
|
||||||
|
" #region Y – Copy files/names/…
|
||||||
|
nmap ycc :clone <cr>
|
||||||
|
" copy/move files to the opposite pane
|
||||||
|
nmap yp :copy <cr>
|
||||||
|
nmap yP :move <cr>
|
||||||
|
" Interaction with system clipboard (yank directory path/curr.file path/filename)
|
||||||
|
if has('win')
|
||||||
|
nnoremap ycp :!echo %"d:gs!\!/! %i | clip<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
|
||||||
|
nnoremap ycf :!echo %"c:gs!\!/! %i | clip<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
|
||||||
|
nnoremap ycn :!echo %"c %i | clip<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
|
||||||
|
elseif executable('xclip')
|
||||||
|
nnoremap ycd :!echo -n %d | xclip -selection clipboard %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
|
||||||
|
nnoremap ycf :!echo -n %c:p | xclip -selection clipboard %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
|
||||||
|
nnoremap ycn :!echo -n %c | xclip -selection clipboard %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
|
||||||
|
elseif executable('xsel')
|
||||||
|
nnoremap ycd :!echo -n %d | xsel --input --primary %i && echo -n %d | xsel --clipboard --input %i<cr>:echo expand('%"d') "is yanked to clipboard"<cr>
|
||||||
|
nnoremap ycf :!echo -n %c:p | xsel --input --primary %i && echo -n %c:p | xsel --clipboard --input %i<cr>:echo expand('%"c:p') "is yanked to clipboard"<cr>
|
||||||
|
nnoremap ycn :!echo -n %c | xsel --input --primary %i && echo -n %c | xsel --clipboard --input %i<cr>:echo expand('%"c') "is yanked to clipboard"<cr>
|
||||||
|
endif
|
||||||
|
" #endregion Y
|
||||||
|
|
||||||
|
"" #region N – Notes
|
||||||
|
"Filter-out build and temporary files
|
||||||
|
" windo filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/
|
||||||
|
" Example of standard two-panel file managers mappings
|
||||||
|
" nnoremap <f3> :!less %f<cr>
|
||||||
|
" nnoremap <f4> :edit<cr>
|
||||||
|
" nnoremap <f5> :copy<cr>
|
||||||
|
" nnoremap <f6> :move<cr>
|
||||||
|
" nnoremap <f7> :mkdir<space>
|
||||||
|
" nnoremap <f8> :delete<cr>
|
||||||
|
|
||||||
|
" ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" Various customization examples
|
||||||
|
|
||||||
|
" Use ag (the silver searcher) instead of grep
|
||||||
|
"
|
||||||
|
" set grepprg=ag\ --line-numbers\ %i\ %a\ %s
|
||||||
|
|
||||||
|
" Add additional place to look for executables
|
||||||
|
"
|
||||||
|
" let $PATH = $HOME.'/bin/fuse:'.$PATH
|
||||||
|
|
||||||
|
" Block particular shortcut
|
||||||
|
"
|
||||||
|
" nnoremap <left> <nop>
|
||||||
|
|
||||||
|
" Export IPC name of current instance as environment variable and use it to
|
||||||
|
" communicate with the instance later.
|
||||||
|
"
|
||||||
|
" It can be used in some shell script that gets run from inside vifm, for
|
||||||
|
" example, like this:
|
||||||
|
" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"
|
||||||
|
"
|
||||||
|
" let $VIFM_SERVER_NAME = v:servername
|
||||||
|
" #endregion N
|
||||||
|
|
||||||
|
" vim: set filetype=vifm tabstop=4 shiftwidth=4 textwidth=250 noexpandtab :
|
||||||
|
" vim>60: set foldmethod=marker foldmarker=#region,#endregion :
|
4
.config/xremap.yml
Normal file
4
.config/xremap.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
keymap:
|
||||||
|
- name: Ctrl+tab alias
|
||||||
|
remap:
|
||||||
|
C-KEY_KPSLASH: C-KEY_TAB
|
2
.inputrc
2
.inputrc
@ -17,7 +17,7 @@ set menu-complete-display-prefix on
|
|||||||
"\e[A":history-search-backward
|
"\e[A":history-search-backward
|
||||||
"\e[B":history-search-forward
|
"\e[B":history-search-forward
|
||||||
|
|
||||||
"\e\C-e": history-and-alias-expand-line
|
"OM": history-and-alias-expand-line
|
||||||
|
|
||||||
set colored-stats On
|
set colored-stats On
|
||||||
|
|
||||||
|
147
.kde/share/apps/color-schemes/BreezeTmavéUpraveno.colors
Normal file
147
.kde/share/apps/color-schemes/BreezeTmavéUpraveno.colors
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
[ColorEffects:Disabled]
|
||||||
|
Color=56,56,56
|
||||||
|
ColorAmount=0
|
||||||
|
ColorEffect=0
|
||||||
|
ContrastAmount=0.65
|
||||||
|
ContrastEffect=1
|
||||||
|
IntensityAmount=0.1
|
||||||
|
IntensityEffect=2
|
||||||
|
|
||||||
|
[ColorEffects:Inactive]
|
||||||
|
ChangeSelectionColor=true
|
||||||
|
Color=112,111,110
|
||||||
|
ColorAmount=0.025
|
||||||
|
ColorEffect=2
|
||||||
|
ContrastAmount=0.1
|
||||||
|
ContrastEffect=2
|
||||||
|
Enable=false
|
||||||
|
IntensityAmount=0
|
||||||
|
IntensityEffect=0
|
||||||
|
|
||||||
|
[Colors:Button]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Complementary]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Header]
|
||||||
|
BackgroundAlternate=42,46,50
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Header][Inactive]
|
||||||
|
BackgroundAlternate=49,54,59
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Selection]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=61,174,233
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=252,252,252
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=253,188,75
|
||||||
|
ForegroundNegative=176,55,69
|
||||||
|
ForegroundNeutral=198,92,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=23,104,57
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Tooltip]
|
||||||
|
BackgroundAlternate=42,46,50
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:View]
|
||||||
|
BackgroundAlternate=35,38,41
|
||||||
|
BackgroundNormal=27,30,32
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Window]
|
||||||
|
BackgroundAlternate=49,54,59
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[General]
|
||||||
|
ColorScheme=BreezeDark
|
||||||
|
Name=Breeze Tmavé (upraveno)
|
||||||
|
shadeSortColumn=true
|
||||||
|
|
||||||
|
[KDE]
|
||||||
|
contrast=7
|
||||||
|
|
||||||
|
[WM]
|
||||||
|
activeBackground=49,54,59
|
||||||
|
activeBlend=252,252,252
|
||||||
|
activeForeground=252,252,252
|
||||||
|
inactiveBackground=42,46,50
|
||||||
|
inactiveBlend=161,169,177
|
||||||
|
inactiveForeground=161,169,177
|
162
.kde/share/config/kdeglobals
Normal file
162
.kde/share/config/kdeglobals
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
[ColorEffects:Disabled]
|
||||||
|
Color=56,56,56
|
||||||
|
ColorAmount=0
|
||||||
|
ColorEffect=0
|
||||||
|
ContrastAmount=0.65
|
||||||
|
ContrastEffect=1
|
||||||
|
IntensityAmount=0.1
|
||||||
|
IntensityEffect=2
|
||||||
|
|
||||||
|
[ColorEffects:Inactive]
|
||||||
|
ChangeSelectionColor=true
|
||||||
|
Color=112,111,110
|
||||||
|
ColorAmount=0.025
|
||||||
|
ColorEffect=2
|
||||||
|
ContrastAmount=0.1
|
||||||
|
ContrastEffect=2
|
||||||
|
Enable=false
|
||||||
|
IntensityAmount=0
|
||||||
|
IntensityEffect=0
|
||||||
|
|
||||||
|
[Colors:Button]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Complementary]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Header]
|
||||||
|
BackgroundAlternate=42,46,50
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Header][Inactive]
|
||||||
|
BackgroundAlternate=49,54,59
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Selection]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=61,174,233
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=252,252,252
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=253,188,75
|
||||||
|
ForegroundNegative=176,55,69
|
||||||
|
ForegroundNeutral=198,92,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=23,104,57
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Tooltip]
|
||||||
|
BackgroundAlternate=42,46,50
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:View]
|
||||||
|
BackgroundAlternate=35,38,41
|
||||||
|
BackgroundNormal=27,30,32
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Window]
|
||||||
|
BackgroundAlternate=49,54,59
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[General]
|
||||||
|
ColorScheme=BreezeDark
|
||||||
|
Name[cs_CZ]=Breeze Tmavé
|
||||||
|
Name=Breeze Dark
|
||||||
|
font=Ubuntu Condensed,10.5,-1,5,50,0,0,0,0,0
|
||||||
|
menuFont=Ubuntu,10,-1,5,50,0,0,0,0,0
|
||||||
|
shadeSortColumn=true
|
||||||
|
smallestReadableFont=Ubuntu,9,-1,5,50,0,0,0,0,0
|
||||||
|
toolBarFont=Ubuntu,10,-1,5,50,0,0,0,0,0
|
||||||
|
widgetStyle=Breeze
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
Theme=breeze-dark
|
||||||
|
|
||||||
|
[KDE]
|
||||||
|
ShowIconsInMenuItems=true
|
||||||
|
ShowIconsOnPushButtons=true
|
||||||
|
contrast=4
|
||||||
|
|
||||||
|
[Toolbar style]
|
||||||
|
ToolButtonStyle=TextBesideIcon
|
||||||
|
ToolButtonStyleOtherToolbars=TextBesideIcon
|
||||||
|
|
||||||
|
[WM]
|
||||||
|
activeBackground=49,54,59
|
||||||
|
activeBlend=252,252,252
|
||||||
|
activeForeground=252,252,252
|
||||||
|
inactiveBackground=42,46,50
|
||||||
|
inactiveBlend=161,169,177
|
||||||
|
inactiveForeground=161,169,177
|
147
.local/share/color-schemes/BreezeTmavéNumix.colors
Normal file
147
.local/share/color-schemes/BreezeTmavéNumix.colors
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
[ColorEffects:Disabled]
|
||||||
|
Color=56,56,56
|
||||||
|
ColorAmount=0
|
||||||
|
ColorEffect=0
|
||||||
|
ContrastAmount=0.65
|
||||||
|
ContrastEffect=1
|
||||||
|
IntensityAmount=0.1
|
||||||
|
IntensityEffect=2
|
||||||
|
|
||||||
|
[ColorEffects:Inactive]
|
||||||
|
ChangeSelectionColor=true
|
||||||
|
Color=112,111,110
|
||||||
|
ColorAmount=0.025
|
||||||
|
ColorEffect=2
|
||||||
|
ContrastAmount=0.1
|
||||||
|
ContrastEffect=2
|
||||||
|
Enable=false
|
||||||
|
IntensityAmount=0
|
||||||
|
IntensityEffect=0
|
||||||
|
|
||||||
|
[Colors:Button]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=240,84,76
|
||||||
|
DecorationHover=240,84,76
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Complementary]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Header]
|
||||||
|
BackgroundAlternate=42,46,50
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Header][Inactive]
|
||||||
|
BackgroundAlternate=49,54,59
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=61,174,233
|
||||||
|
DecorationHover=61,174,233
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Selection]
|
||||||
|
BackgroundAlternate=30,87,116
|
||||||
|
BackgroundNormal=240,84,76
|
||||||
|
DecorationFocus=240,84,76
|
||||||
|
DecorationHover=240,84,76
|
||||||
|
ForegroundActive=252,252,252
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=253,188,75
|
||||||
|
ForegroundNegative=176,55,69
|
||||||
|
ForegroundNeutral=198,92,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=23,104,57
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Tooltip]
|
||||||
|
BackgroundAlternate=42,46,50
|
||||||
|
BackgroundNormal=49,54,59
|
||||||
|
DecorationFocus=240,84,76
|
||||||
|
DecorationHover=240,84,76
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:View]
|
||||||
|
BackgroundAlternate=35,38,41
|
||||||
|
BackgroundNormal=27,30,32
|
||||||
|
DecorationFocus=240,84,76
|
||||||
|
DecorationHover=240,84,76
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[Colors:Window]
|
||||||
|
BackgroundAlternate=49,54,59
|
||||||
|
BackgroundNormal=42,46,50
|
||||||
|
DecorationFocus=240,84,76
|
||||||
|
DecorationHover=240,84,76
|
||||||
|
ForegroundActive=61,174,233
|
||||||
|
ForegroundInactive=161,169,177
|
||||||
|
ForegroundLink=29,153,243
|
||||||
|
ForegroundNegative=218,68,83
|
||||||
|
ForegroundNeutral=246,116,0
|
||||||
|
ForegroundNormal=252,252,252
|
||||||
|
ForegroundPositive=39,174,96
|
||||||
|
ForegroundVisited=155,89,182
|
||||||
|
|
||||||
|
[General]
|
||||||
|
ColorScheme=BreezeDark
|
||||||
|
Name=Breeze Tmavé (numix)
|
||||||
|
shadeSortColumn=true
|
||||||
|
|
||||||
|
[KDE]
|
||||||
|
contrast=4
|
||||||
|
|
||||||
|
[WM]
|
||||||
|
activeBackground=49,54,59
|
||||||
|
activeBlend=252,252,252
|
||||||
|
activeForeground=252,252,252
|
||||||
|
inactiveBackground=33,38,43
|
||||||
|
inactiveBlend=161,169,177
|
||||||
|
inactiveForeground=161,169,177
|
16
.local/share/konsole/Můj.profile
Normal file
16
.local/share/konsole/Můj.profile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[Appearance]
|
||||||
|
AntiAliasFonts=true
|
||||||
|
BoldIntense=true
|
||||||
|
ColorScheme=DarkPastels
|
||||||
|
DimmValue=54
|
||||||
|
Font=Ubuntu Mono,9,-1,5,700,0,0,0,0,0,0,0,0,0,0,1,Bold
|
||||||
|
UseFontLineChararacters=false
|
||||||
|
|
||||||
|
[General]
|
||||||
|
DimWhenInactive=false
|
||||||
|
Name=Můj
|
||||||
|
Parent=FALLBACK/
|
||||||
|
|
||||||
|
[Scrolling]
|
||||||
|
HistoryMode=2
|
||||||
|
ScrollBarPosition=2
|
26
.mozilla/firefox/README.md
Normal file
26
.mozilla/firefox/README.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Mozilla Firefox
|
||||||
|
In fact, lots of settings are synced by Firefox itself.
|
||||||
|
So this folder contains just some infos around and settings for [tridactyl](#tridactyl).
|
||||||
|
|
||||||
|
## Related files
|
||||||
|
- [../../.tridactylrc](../../.tridactylrc)
|
||||||
|
- [../native-messaging-hosts/tridactyl.json](../native-messaging-hosts/tridactyl.json)
|
||||||
|
|
||||||
|
## Extensions
|
||||||
|
1. My collections:
|
||||||
|
1. [Main](https://addons.mozilla.org/cs/firefox/collections/13245610/Ubuntu/)
|
||||||
|
1. [Specific](https://addons.mozilla.org/cs/firefox/collections/13245610/Specific/)
|
||||||
|
1. [Bin](https://addons.mozilla.org/cs/firefox/collections/13245610/Bin/)
|
||||||
|
1. Notes
|
||||||
|
1. tridactyl: [see below](#tridactyl).
|
||||||
|
1. _History AutoDelete_ can clean _LoadTabOnSelect_’s temp urls in history (e.g. `^.*4808bb0d\-324e\-4b8d\-bb9e\-a998b765153c.*$`).
|
||||||
|
1. Shortcuts
|
||||||
|
1. _Open containers panel_: `Ctrl+.`
|
||||||
|
1. _Open the Firefox Screenshots UI_: `Ctrl+Shift+s`
|
||||||
|
1. _Sidebar_: `Shift+Alt+w` (default for Firefox Notes plugin)
|
||||||
|
1. _To Google Translate_: `Ctrl+Shift+\d` (\d= 1,2,3).
|
||||||
|
|
||||||
|
## tridactyl
|
||||||
|
1. Plugin can be found on [tridactyl/tridactyl](https://github.com/tridactyl/tridactyl).
|
||||||
|
1. Load/Export settings see [tridactyl/tridactyl FAQ section](https://github.com/tridactyl/tridactyl#frequently-asked-questions-faq).
|
||||||
|
1. `gn*` (goto quickmark – new tab), `o` in vmode ⇒ reverse selection
|
7
.mozilla/native-messaging-hosts/tridactyl.json
Normal file
7
.mozilla/native-messaging-hosts/tridactyl.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "tridactyl",
|
||||||
|
"description": "Tridactyl native command handler",
|
||||||
|
"path": "/home/jaandrle/.local/share/tridactyl/native_main",
|
||||||
|
"type": "stdio",
|
||||||
|
"allowed_extensions": [ "tridactyl.vim@cmcaine.co.uk","tridactyl.vim.betas@cmcaine.co.uk", "tridactyl.vim.betas.nonewtab@cmcaine.co.uk" ]
|
||||||
|
}
|
@ -53,6 +53,7 @@ bind-key U show-urls
|
|||||||
unbind-key ^B
|
unbind-key ^B
|
||||||
bind-key m bookmark
|
bind-key m bookmark
|
||||||
|
|
||||||
|
# TODO: replace with nocodb
|
||||||
bookmark-cmd "~/bin/pocket-sh-add.sh"
|
bookmark-cmd "~/bin/pocket-sh-add.sh"
|
||||||
bookmark-autopilot yes
|
bookmark-autopilot yes
|
||||||
|
|
||||||
|
155
.newsboat/urls
155
.newsboat/urls
@ -7,19 +7,17 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UCPeHT7xKjaw_-8hHW0GEXLg ! v
|
|||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCD9L1HvpYpmZ8rrXABARCRQ ! video
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCD9L1HvpYpmZ8rrXABARCRQ ! video
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCONH73CdRXUjlh3-DdLGCPw ! video
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCONH73CdRXUjlh3-DdLGCPw ! video
|
||||||
https://herohero.co/services/functions/rss-feed?token=eyJhbGciOiJSUzI1NiJ9.eyJ1IjoiYWpzbHV6YnlsdXh1dnlueSIsImMiOiJuYXBvdGl0a3V6d3VhdWhvZCIsInQiOjE2ODU2MDk1ODl9.LfJHvtdm4fPq25NCfoC5ZU6cPmZLRjXO2Xhl6fcG78j-8tjatznyBDQdKwKiMfdQMKK9peOkYAKyIXTBvjBBN9XJ9CKoOnAfIyHiBlyo200TWeG3Ll37U8LRN7So4npT4-Qr_FzZGSMYO_ispVL6Gj2HYfwYORq6-1t78v9k5Ke7up-w4aM4-jUXD3_Zdsu70jJV5-fEAM11pgkfh8HydW9vm_MvkZ1q1DSIRlZR8jQNQZgGWeYMjzF9owD00TQGUGsXGNH0lit-IhFX9_VFqG5so5i6ugv8AyCJK7g3B59YV6TsWVANtWN5NB_B3f-TXSE4Cs7tOZrU0riVxI-4Ew ! video
|
https://herohero.co/services/functions/rss-feed?token=eyJhbGciOiJSUzI1NiJ9.eyJ1IjoiYWpzbHV6YnlsdXh1dnlueSIsImMiOiJuYXBvdGl0a3V6d3VhdWhvZCIsInQiOjE2ODU2MDk1ODl9.LfJHvtdm4fPq25NCfoC5ZU6cPmZLRjXO2Xhl6fcG78j-8tjatznyBDQdKwKiMfdQMKK9peOkYAKyIXTBvjBBN9XJ9CKoOnAfIyHiBlyo200TWeG3Ll37U8LRN7So4npT4-Qr_FzZGSMYO_ispVL6Gj2HYfwYORq6-1t78v9k5Ke7up-w4aM4-jUXD3_Zdsu70jJV5-fEAM11pgkfh8HydW9vm_MvkZ1q1DSIRlZR8jQNQZgGWeYMjzF9owD00TQGUGsXGNH0lit-IhFX9_VFqG5so5i6ugv8AyCJK7g3B59YV6TsWVANtWN5NB_B3f-TXSE4Cs7tOZrU0riVxI-4Ew ! video
|
||||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCKlOmM_eB0nzTNiDFZibSSA !
|
|
||||||
"query:Sakitech – Note/Update:title =~ \"(Note|Phones|phones)\" and title !~ \"(Wallpaper|wallpaper)\" and rssurl == \"https://www.youtube.com/feeds/videos.xml?channel_id=UCKlOmM_eB0nzTNiDFZibSSA\"" video
|
|
||||||
"exec:~/.newsboat/html2rss-streamCZ.mjs 'Kokoti na neděli' 'https://www.stream.cz/kokoti-na-nedeli'" ! video
|
"exec:~/.newsboat/html2rss-streamCZ.mjs 'Kokoti na neděli' 'https://www.stream.cz/kokoti-na-nedeli'" ! video
|
||||||
"exec:~/.newsboat/html2rss-streamCZ.mjs 'Šťastné pondělí' 'https://www.stream.cz/stastne-pondeli'" !
|
"exec:~/.newsboat/html2rss-streamCZ.mjs 'Šťastné pondělí' 'https://www.stream.cz/stastne-pondeli'" !
|
||||||
"query:Šťastné pondělí:title =~ \"Šťastné pondělí\" and feedtitle == \"Šťastné pondělí\"" video
|
"query:Šťastné pondělí:title =~ \"Šťastné pondělí\" and feedtitle == \"Šťastné pondělí\"" video
|
||||||
https://www.mall.tv/rssfeed/mikyrova-uzasna-pout-internetem ! video
|
https://www.mall.tv/rssfeed/mikyrova-uzasna-pout-internetem ! video
|
||||||
"query:📹:tags # \"video\""
|
"query:📹:tags # \"video\""
|
||||||
|
|
||||||
https://nitter.cz/spreadmastodon/rss
|
|
||||||
|
|
||||||
https://www.mfcr.cz/cs/rss/vydali-jsme-k-hospodareni-statu ! stát
|
https://www.mfcr.cz/cs/rss/vydali-jsme-k-hospodareni-statu ! stát
|
||||||
https://www.sporicidluhopisycr.cz/cs/rss/aktuality ! stát
|
https://www.sporicidluhopisycr.cz/cs/rss/aktuality ! stát
|
||||||
https://nitter.cz/gov_cz/rss ! stát
|
http://www.vlada.cz/cs/urad/RSS/rss.xml ! stát
|
||||||
|
https://mastodonczech.cz/@SpravedlnostCZ ! stát
|
||||||
|
https://zpravobot.news/@NUKIB_CZ ! stát
|
||||||
https://www.ceskezajmy.eu/feed/ ! stát
|
https://www.ceskezajmy.eu/feed/ ! stát
|
||||||
https://poladprahu.cz/category/novinky/feed/ ! stát
|
https://poladprahu.cz/category/novinky/feed/ ! stát
|
||||||
https://sdilenedomy.cz/feed/ ! stát
|
https://sdilenedomy.cz/feed/ ! stát
|
||||||
@ -33,12 +31,13 @@ https://www.investigace.cz/feed/ ! news
|
|||||||
https://denikn.cz/veda/feed?ref=inc ! news/science
|
https://denikn.cz/veda/feed?ref=inc ! news/science
|
||||||
"query:Petr Koubský:author = \"Petr Koubský\"" news/science
|
"query:Petr Koubský:author = \"Petr Koubský\"" news/science
|
||||||
https://vedator.org/feed/ ! news/science
|
https://vedator.org/feed/ ! news/science
|
||||||
|
# TODO: https://www.threads.net/@vedator_cz
|
||||||
http://feeds.feedburner.com/Backreaction ! news/science
|
http://feeds.feedburner.com/Backreaction ! news/science
|
||||||
https://www.osel.cz/rss/rss.php ! news/science
|
https://www.osel.cz/rss/rss.php ! news/science
|
||||||
https://news.mit.edu/rss/feed ! news/science
|
https://news.mit.edu/rss/feed ! news/science
|
||||||
https://news.mit.edu/rss/research ! news/science
|
https://news.mit.edu/rss/research ! news/science
|
||||||
https://nautil.us/feed/ ! news/science
|
https://nautil.us/feed/ ! news/science
|
||||||
https://nitter.cz/PatrikKorenar/rss ! news/science
|
# ? tw PatrikKorenar → patreon, https://www.instagram.com/patrikkorenar
|
||||||
"query:📰🔬:tags # \"news/science\""
|
"query:📰🔬:tags # \"news/science\""
|
||||||
|
|
||||||
https://www.lupa.cz/rss/clanky/ ! news/tech
|
https://www.lupa.cz/rss/clanky/ ! news/tech
|
||||||
@ -66,88 +65,45 @@ https://lemmy.ml/feeds/c/kde.xml?sort=Active ! lemmy
|
|||||||
"query:📰👋💻💡 – Lemmy:tags # \"lemmy\""
|
"query:📰👋💻💡 – Lemmy:tags # \"lemmy\""
|
||||||
|
|
||||||
https://github.com/jordwalke.atom ! twitter/α
|
https://github.com/jordwalke.atom ! twitter/α
|
||||||
# https://nitter.cz/ell2cz/rss ! twitter/α
|
https://gts.eilhart.cz/@kayla.rss ! twitter/α
|
||||||
# https://nitter.cz/fieldsofmoab/rss ! twitter/α
|
# TODO: https://www.threads.net/@annie.tumova
|
||||||
# https://nitter.cz/cztomsik/rss ! twitter/α
|
# TODO: https://www.threads.net/@filip.titlbach
|
||||||
# https://nitter.cz/sw_samuraj/rss ! twitter/α
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCVHFbqXqoYvEWM1Ddxl0QDg ! twitter/α_hide
|
||||||
# https://nitter.cz/AndroidDev/rss ! twitter/α
|
"query:#TheAndroidShow:title =~ \"^#TheAndroidShow\" and rssurl == \"https://www.youtube.com/feeds/videos.xml?channel_id=UCVHFbqXqoYvEWM1Ddxl0QDg\"" twitter/α
|
||||||
# https://nitter.cz/EduardStula/rss ! twitter/α
|
# TODO: https://ubuntuunity.org/blog/
|
||||||
# https://nitter.cz/ubuntu_unity/rss ! twitter/α → ?https://ubuntuunity.org/blog/
|
|
||||||
https://blog.neon.kde.org/feed/ ! twitter/α
|
https://blog.neon.kde.org/feed/ ! twitter/α
|
||||||
https://undinealmani.com/feed/ ! twitter/α
|
https://undinealmani.com/feed/ ! twitter/α
|
||||||
# https://nitter.cz/erikengheim/rss ! twitter/α
|
https://techhub.social/@erikengheim ! twitter/α
|
||||||
# https://nitter.cz/LeaVerou/rss ! twitter/α
|
https://bird.makeup/users/jpschroeder.rss ! twitter/α
|
||||||
# https://nitter.cz/jpschroeder/rss ! twitter/α
|
# TODO: @jpschroeder@fosstodon.org
|
||||||
# https://nitter.cz/machal/rss ! twitter/α
|
https://mastodon.social/@firt.rss ! twitter/α
|
||||||
# https://nitter.cz/devgirlFL/rss ! twitter/α
|
|
||||||
# https://nitter.cz/maxiorel/rss ! twitter/α
|
|
||||||
# https://nitter.cz/firt/rss ! twitter/α
|
|
||||||
https://princiya.com/newblog/feeds/all.atom.xml ! twitter/α
|
https://princiya.com/newblog/feeds/all.atom.xml ! twitter/α
|
||||||
https://davidwalsh.name/feed ! twitter/α
|
https://davidwalsh.name/feed ! twitter/α
|
||||||
# https://nitter.cz/jakubvrana/rss ! twitter/α
|
|
||||||
https://jecas.cz/rss ! twitter/α
|
https://jecas.cz/rss ! twitter/α
|
||||||
# JanKoWeb geekovo zdrojak
|
# JanKoWeb geekovo zdrojak
|
||||||
"query:📰👋💻💡 – Twitter/α:tags # \"twitter/α\""
|
"query:📰👋💻💡 – Twitter/α:tags # \"twitter/α\""
|
||||||
|
|
||||||
# https://nitter.cz/Zeptej_se_vedce/rss ! twitter/mixed
|
# TODO: https://www.threads.net/@Zeptej_se_vedce
|
||||||
# https://nitter.cz/Olinium42/rss ! twitter/mixed
|
# TODO: https://www.threads.net/@oliniumchemistry
|
||||||
#
|
# TODO: https://www.threads.net/@narodnitymzen
|
||||||
https://nitter.cz/narodnitymzen/rss ! twitter/mixed
|
https://mindly.social/@adrianacerna.rss ! twitter/mixed
|
||||||
# https://nitter.cz/Julianne_SF/rss ! twitter/α
|
https://olgarichterova.cz/feed/ ! twitter/mixed
|
||||||
#!
|
|
||||||
https://nitter.cz/_Case/rss ! twitter/α
|
|
||||||
#!
|
|
||||||
https://nitter.cz/olgarichterova/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/eicul/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/CO2IN/rss ! twitter/mixed
|
|
||||||
#
|
|
||||||
https://nitter.cz/Iluminator_cz/rss ! twitter/mixed
|
|
||||||
https://faktaoklimatu.cz/feed.xml ! twitter/mixed
|
https://faktaoklimatu.cz/feed.xml ! twitter/mixed
|
||||||
#?
|
https://www.youtube.com/feeds/videos.xml?channel_id=UCtYxnvekc2-3P74TdLx0srQ ! twitter/mixed
|
||||||
https://nitter.cz/anna_gumplova/rss ! twitter/mixed
|
https://kill-the-newsletter.com/feeds/c6e1z94wpw0eds67.xml ! twitter/mixed
|
||||||
#?
|
https://kill-the-newsletter.com/feeds/39xfn7p1cvf8dif4.xml ! twitter/mixed
|
||||||
https://nitter.cz/DearAbbyHansen/rss ! twitter/mixed
|
https://kill-the-newsletter.com/feeds/5tww0ecg9y4twnxz.xml ! twitter/mixed
|
||||||
# https://nitter.cz/FZU_AVCR/rss ! twitter/mixed
|
https://mastodonczech.cz/@ewajelinek ! twitter/mixed
|
||||||
#!
|
# TODO: https://www.threads.net/@claireklingenberg
|
||||||
https://nitter.cz/_A_d_e_l_k_a_/rss ! twitter/mixed
|
# TODO: https://www.threads.net/@pavlahubalkova
|
||||||
#!
|
# TODO: https://www.threads.net/@popdetective
|
||||||
https://nitter.cz/TGuthJarkovsky/rss ! twitter/mixed
|
https://zpravobot.news/@dan_prokop.rss ! twitter/mixed
|
||||||
# https://nitter.cz/ClaireAccendit/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/PavlaHub/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/laurencikova_k/rss ! twitter/mixed
|
|
||||||
# https://popculturedetective.tumblr.com/rss twitter/mixed
|
|
||||||
#!
|
|
||||||
https://nitter.cz/dan_prokop/rss ! twitter/mixed
|
|
||||||
https://www.paqresearch.cz/blog-feed.xml ! twitter/mixed
|
https://www.paqresearch.cz/blog-feed.xml ! twitter/mixed
|
||||||
#!
|
|
||||||
https://nitter.cz/danusenerudova/rss ! twitter/mixed
|
|
||||||
#!
|
|
||||||
https://nitter.cz/Akademie_ved_CR/rss ! twitter/mixed
|
|
||||||
#!
|
|
||||||
https://nitter.cz/glacier_ecology/rss ! twitter/mixed
|
|
||||||
https://archetypal.cz/feed/ ! twitter/mixed
|
https://archetypal.cz/feed/ ! twitter/mixed
|
||||||
# https://nitter.cz/MarieHermanova/rss ! twitter/mixed
|
# TODO: https://www.threads.net/@mariehermanova
|
||||||
# https://nitter.cz/NKC_CZ/rss ! twitter/mixed
|
https://kill-the-newsletter.com/feeds/xmub9gn72ecekvbi.xml ! twitter/mixed
|
||||||
#!
|
|
||||||
https://nitter.cz/lkristoufek/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/OSAliance/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/Madla_G/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/matfyz/rss ! twitter/mixed
|
|
||||||
#!
|
|
||||||
https://nitter.cz/Mitokochan/rss twitter/mixed
|
|
||||||
https://www.mimoagendu.cz/rss/ ! twitter/mixed
|
https://www.mimoagendu.cz/rss/ ! twitter/mixed
|
||||||
# https://nitter.cz/malyvedec/rss ! twitter/mixed
|
# TODO: https://www.threads.net/@barasoukup
|
||||||
#!
|
|
||||||
https://nitter.cz/kasikp/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/CERN/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/josefslerka/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/hassmanm/rss ! twitter/mixed
|
|
||||||
#!
|
|
||||||
https://nitter.cz/marenamat/rss ! twitter/mixed
|
|
||||||
# https://nitter.cz/traintravels42/rss ! twitter/mixed
|
|
||||||
https://nitter.cz/JulieMontek/rss ! twitter/mixed
|
|
||||||
#
|
|
||||||
https://nitter.cz/bara_soukup/rss ! twitter/mixed
|
|
||||||
# PulseofEuropeCZ KohoVolitEU
|
# PulseofEuropeCZ KohoVolitEU
|
||||||
"query:📰👋💻💡 – Twitter/mixed:tags # \"twitter/mixed\""
|
"query:📰👋💻💡 – Twitter/mixed:tags # \"twitter/mixed\""
|
||||||
|
|
||||||
@ -159,21 +115,13 @@ https://denikn.cz/tag/vylety-n/feed/ ! newsletters
|
|||||||
https://denikn.cz/tag/evropska-unie/feed/ ! newsletters
|
https://denikn.cz/tag/evropska-unie/feed/ ! newsletters
|
||||||
"query:🗞️📰💡 – Newsletters:tags # \"newsletters\""
|
"query:🗞️📰💡 – Newsletters:tags # \"newsletters\""
|
||||||
|
|
||||||
# https://nitter.cz/randomMDN/rss dev/servises
|
|
||||||
# "exec:randomMDN rss --limit 3" dev/servises
|
|
||||||
https://botsin.space/@randomMDN.rss dev/servises
|
https://botsin.space/@randomMDN.rss dev/servises
|
||||||
https://github.com/evanw/esbuild/releases.atom ! dev/servises
|
https://github.com/evanw/esbuild/releases.atom ! dev/servises
|
||||||
https://bun.sh/rss.xml ! dev/servises
|
https://bun.sh/rss.xml ! dev/servises
|
||||||
https://www.githubstatus.com/history.rss ! dev/servises
|
https://www.githubstatus.com/history.rss ! dev/servises
|
||||||
# https://nitter.cz/GitHubSecurity/rss ! dev/servises
|
|
||||||
https://developer.apple.com/news/rss/news.rss "~Apple Dev News" dev/servises
|
https://developer.apple.com/news/rss/news.rss "~Apple Dev News" dev/servises
|
||||||
# https://nitter.cz/JetBrains_Fleet/rss ! dev/servises → ?https://blog.jetbrains.com/feed/
|
|
||||||
# https://nitter.cz/NativeScript/rss ! dev/servises
|
|
||||||
# https://nitter.cz/sveltejs/rss ! dev/servises
|
|
||||||
# https://nitter.cz/github/rss ! dev/servises
|
|
||||||
https://cordova.apache.org/feed.xml ! twitter/α
|
https://cordova.apache.org/feed.xml ! twitter/α
|
||||||
https://www.mozilla.cz/feed/ ! twitter/α
|
https://www.mozilla.cz/feed/ ! twitter/α
|
||||||
#! https://nitter.cz/janovsky/rss ! twitter/α
|
|
||||||
# https://www.githubstatus.com/history.rss ! dev/servises
|
# https://www.githubstatus.com/history.rss ! dev/servises
|
||||||
"query:⌨🖱:tags # \"dev/servises\""
|
"query:⌨🖱:tags # \"dev/servises\""
|
||||||
|
|
||||||
@ -223,3 +171,42 @@ http://casopisargument.cz/?feed=rss2 ! news/rest
|
|||||||
|
|
||||||
https://www.seznamzpravy.cz/rss ! rest
|
https://www.seznamzpravy.cz/rss ! rest
|
||||||
"query:🗞 💤:tags # \"rest\""
|
"query:🗞 💤:tags # \"rest\""
|
||||||
|
|
||||||
|
# TODO: https://www.threads.net/@pirativanbartos
|
||||||
|
https://mastodonczech.cz/@jantvrdon.rss ! mastodon/neak
|
||||||
|
https://mastodonczech.cz/@eliska.rss ! mastodon/neak
|
||||||
|
https://mastodon.rozhlas.cz/@kristinarohackova.rss ! mastodon/neak
|
||||||
|
https://mastodon.social/@Prof_Mirya.rss ! mastodon/neak
|
||||||
|
https://mastodonczech.cz/@NAKIT.rss ! mastodon/neak
|
||||||
|
https://mastodonczech.cz/@strakovka.rss ! mastodon/neak
|
||||||
|
https://mastodonczech.cz/@SpravedlnostCZ.rss ! mastodon/neak
|
||||||
|
https://witter.cz/@petrinfinite.rss ! mastodon/neak
|
||||||
|
https://mastodonczech.cz/@danusenerudova.rss ! mastodon/neak
|
||||||
|
# TODO: https://www.threads.net/@danusenerudova
|
||||||
|
https://witter.cz/@Apolenarychlikova.rss ! mastodon/neak
|
||||||
|
# TODO: https://www.threads.net/@apolenarychlikova
|
||||||
|
https://mastodonczech.cz/@marekl.rss ! mastodon/neak
|
||||||
|
https://mastodon.social/@spreadmastodon.rss ! mastodon/neak
|
||||||
|
https://mastodon.pirati.cz/@OlgaRichterova.rss ! mastodon/neak
|
||||||
|
# TODO: https://www.threads.net/@olga_piratka_richterova
|
||||||
|
https://witter.cz/@zeleni.rss ! mastodon/neak
|
||||||
|
https://mastodonczech.cz/@Lenislavka.rss ! mastodon/neak
|
||||||
|
https://witter.cz/@guth.rss ! mastodon/neak
|
||||||
|
# TODO: https://www.threads.net/@tgjarkovsky
|
||||||
|
https://mastodonczech.cz/@madla.rss ! mastodon/neak
|
||||||
|
# TODO: https://www.threads.net/@madla__g
|
||||||
|
https://witter.cz/@malyvedec.rss ! mastodon/neak
|
||||||
|
# TODO: https://www.threads.net/@malyvedec
|
||||||
|
"query:🗞 🐘:tags # \"mastodon/neak\""
|
||||||
|
|
||||||
|
|
||||||
|
# TW bez náhrady:
|
||||||
|
# fieldsofmoab, machal, devgirlFL,
|
||||||
|
# jakubvrana, _Case, eicul,
|
||||||
|
# CO2IN, Iluminator_cz, DearAbbyHansen,
|
||||||
|
# _A_d_e_l_k_a_, ClaireAccendit, laurencikova_k,
|
||||||
|
# PopDetective, dan_prokop, danusenerudova,
|
||||||
|
# glacier_ecology, MarieHermanova, lkristoufek,
|
||||||
|
# matfyz, Mitokochan, kasikp,
|
||||||
|
# CERN, josefslerka, traintravels42,
|
||||||
|
# JulieMontek, bara_soukup, janovsky
|
||||||
|
@ -1 +0,0 @@
|
|||||||
extra-keys = [['ESC','~','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]
|
|
119
.tridactylrc
Normal file
119
.tridactylrc
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
""" Tridactyl config file | Jan Andrle | 2024-02-28
|
||||||
|
" General Settings
|
||||||
|
set configversion 2.0
|
||||||
|
set theme dark
|
||||||
|
set modeindicatorshowkeys true
|
||||||
|
set modeindicatormodes.ignore false
|
||||||
|
set modeindicator true
|
||||||
|
set hintfiltermode simple
|
||||||
|
set hintchars fsahjklgyuiopqwertnmzxcvb
|
||||||
|
set smoothscroll true
|
||||||
|
|
||||||
|
unbind zI
|
||||||
|
unbind zM
|
||||||
|
unbind zO
|
||||||
|
unbind zR
|
||||||
|
unbind zi
|
||||||
|
unbind zm
|
||||||
|
unbind zo
|
||||||
|
unbind zr
|
||||||
|
unbind zz
|
||||||
|
bind zt hint -z
|
||||||
|
bind zz composite hint -z ; scrollpage -0.5
|
||||||
|
bind zb composite hint -z ; scrollpage -0.95
|
||||||
|
bind gm scrollto 42.5 x
|
||||||
|
bind gM scrollto 42.5 x
|
||||||
|
bind 0zo zoom 1
|
||||||
|
bind zo zoom 0.1 true
|
||||||
|
bind §zo zoom 0.5 true
|
||||||
|
bind zO zoom -0.1 true
|
||||||
|
bind §zO zoom -0.5 true
|
||||||
|
bind §§h scrollpx -1000
|
||||||
|
bind §h scrollpx -500
|
||||||
|
bind §l scrollpx 500
|
||||||
|
bind §§l scrollpx 1000
|
||||||
|
|
||||||
|
" /?*# … search collising with native ui + another problems
|
||||||
|
" https://gist.github.com/BurntSushi/393546a65db38d57cedcfd72c6d89bf3#file-tridactylrc-L18
|
||||||
|
unbind <c-f> " pgdown for scrolling
|
||||||
|
bind gi hint -Jc input,textarea,[contenteditable="true"]
|
||||||
|
|
||||||
|
unbindurl ^https://www.youtube.com/* >>
|
||||||
|
unbindurl ^https://www.youtube.com/* <<
|
||||||
|
" see https://gist.github.com/jaandrle/031198ab5130deb903065138532cc066
|
||||||
|
bindurl ^https://www.youtube.com/* ss fillcmdline open B: YT
|
||||||
|
bindurl ^https://www.o2tv.cz/* ss fillcmdline open B: O2
|
||||||
|
bindurl ^https://chat.openai.com/* ss fillcmdline open B: OPENAI
|
||||||
|
|
||||||
|
|
||||||
|
command pauseVideos js Array.from(document.querySelectorAll("video")).forEach(el=> ( location.hostname!=="www.o2tv.cz" ? el.pause() : [ "Pauza" ].map(l=> document.querySelector(`[aria-label=${l}]`)).find(Boolean)?.dispatchEvent(new Event("click")) ))
|
||||||
|
tri.controller.acceptExCmd(`tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62#${document.title.replace(/["':|\.,\?\!_]/g, '').replace(/ /g, '-').toLowerCase()}`)
|
||||||
|
bind ůp js (v=> { if(!v) return; v.paused ? v.play() : tri.controller.acceptExCmd("pauseVideos"); })(document.querySelector("video"))
|
||||||
|
bind ůP js (v=> { if(!v) return; v.playbackRate ? (v.playbackRate= 0) : (v.playbackRate= 1); })(document.querySelector("video"))
|
||||||
|
bind ůl js (v=> { if(!v) return; v.currentTime+= 15 })(document.querySelector("video"))
|
||||||
|
bind ůh js (v=> { if(!v) return; v.currentTime-= 15 })(document.querySelector("video"))
|
||||||
|
bind ůL fillcmdline_notrail js document.querySelector("video").currentTime+= 15*30
|
||||||
|
bind ůůl fillcmdline_notrail js document.querySelector("video").currentTime+= 15*30
|
||||||
|
bind ůk js (v=> { if(!v) return; v.playbackRate+= 0.25 })(document.querySelector("video"))
|
||||||
|
bind ůj js (v=> { if(!v) return; v.playbackRate-= 0.25 })(document.querySelector("video"))
|
||||||
|
bind ů= js (v=> { if(!v) return; v.playbackRate= 1 })(document.querySelector("video"))
|
||||||
|
bind ůG js (v=> { if(!v) return; v.play(); v.currentTime= v.duration-10; setTimeout(()=> tri.controller.acceptExCmd("pauseVideos"), 5000); })(document.querySelector("video"))
|
||||||
|
|
||||||
|
unbind --mode=normal d
|
||||||
|
bind dd tabclose
|
||||||
|
|
||||||
|
unbind --mode=normal s
|
||||||
|
bind st fillcmdline_notrail tab
|
||||||
|
|
||||||
|
" h keyboardlayoutoverrides … https://gistpreview.github.io/?324119c773fac31651f6422087b36804
|
||||||
|
" set keyboardlayoutoverrides "Digit2: ;, Backquote: :"
|
||||||
|
set keytranslatemap {"ě":";",";":":"}
|
||||||
|
bindurl ^https://mail.centrum.cz/* ;; composite hint_focus ; js document.activeElement.dispatchEvent(new CustomEvent("mouseover"))
|
||||||
|
bind --mode=normal ;gt hint -c [tabindex]
|
||||||
|
|
||||||
|
bind š tab #
|
||||||
|
bind sš fillcmdline tab
|
||||||
|
|
||||||
|
" b→t→n to make more consistent with gn*
|
||||||
|
unbind --mode=normal b
|
||||||
|
unbind --mode=normal B
|
||||||
|
bind --mode=normal t fillcmdline tab
|
||||||
|
bind --mode=normal T fillcmdline taball
|
||||||
|
bind --mode=normal n fillcmdline tabopen
|
||||||
|
bind --mode=normal N current_url tabopen
|
||||||
|
|
||||||
|
bind -c fillcmdline recontain
|
||||||
|
bind sc fillcmdline_notrail container
|
||||||
|
|
||||||
|
bind --mode=visual \t composite js "https://libretranslate.com/?source=auto&target=cs&q="+encodeURI(document.getSelection().toString()) | tabopen
|
||||||
|
bind --mode=visual \T composite js "https://translate.google.com/?sl=auto&tl=cs&op=translate&text="+encodeURI(document.getSelection().toString()) | tabopen
|
||||||
|
bind --mode=normal \t composite js "http://translate.google.com/translate?js=n&tl=cs&u="+encodeURI(location.href) | tabopen
|
||||||
|
|
||||||
|
bind gnk tabopen -c osobní https://keep.google.com/u/0/#NOTE/1UXE_BEihe2EexHwZqEYA2oSdILLxF74SPcaLFMStfIpMkWPnStWJDQqH5C1TryJld_dC
|
||||||
|
bind gok open -c osobní https://keep.google.com/u/0/#NOTE/1UXE_BEihe2EexHwZqEYA2oSdILLxF74SPcaLFMStfIpMkWPnStWJDQqH5C1TryJld_dC
|
||||||
|
bind gwk winopen -c osobní https://keep.google.com/u/0/#NOTE/1UXE_BEihe2EexHwZqEYA2oSdILLxF74SPcaLFMStfIpMkWPnStWJDQqH5C1TryJld_dC
|
||||||
|
bind gnC tabopen -c osobní https://calendar.google.com
|
||||||
|
bind goC open -c osobní https://calendar.google.com
|
||||||
|
bind gwC winopen -c osobní https://calendar.google.com
|
||||||
|
|
||||||
|
" Sites (mails) notes using Github Gists
|
||||||
|
bind sn js tri.controller.acceptExCmd(`tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62#${document.title.replace(/["':|\.,\?\!_]/g, '').replace(/ /g, '-').toLowerCase()}`)
|
||||||
|
bind sN composite clipboard yankmd ; tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62/edit
|
||||||
|
bindurl ^https://mail.centrum.cz/* sn js tri.controller.acceptExCmd(`tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62#${(new URLSearchParams(window.location.search)).get("msg")}`)
|
||||||
|
bindurl ^https://mail.centrum.cz/* sN composite js tri.controller.acceptExCmd(`clipboard yank [${(new URLSearchParams(window.location.search)).get("msg")}](https://mail.centrum.cz/?msg=${(new URLSearchParams(window.location.search)).get("msg")})`) ; tabopen -c pracovní https://gist.github.com/jaandrle/ff1de72c500557f401e190b4ec05aa62/edit
|
||||||
|
|
||||||
|
alias hint_focus hint -;
|
||||||
|
quickmark c moz-extension://616498c0-3916-4f0b-b0a9-ce01ecf2298d/popup.html
|
||||||
|
|
||||||
|
command mastodonUncoverAll composite hint_focus .scrollable ; js (onclick=document.createEvent("Events"), onclick.initEvent("click", true, false), Array.from(document.activeElement.getElementsByClassName("status__content__spoiler-link")).forEach(el=> el.dispatchEvent(onclick)))
|
||||||
|
command mastodonRedirectHome js const parts = location.pathname.split('/'); if(parts.length===2) location.href= `https://fosstodon.org/${parts[1]}@${location.host}`; else location.href= `https://fosstodon.org/authorize_interaction?uri=${location.href}`;
|
||||||
|
bind sm fillcmdline_notrail mastodon
|
||||||
|
|
||||||
|
command data_delall composite hint_focus * ; js document.activeElement.querySelectorAll("input").forEach(el=> el.checked=false)
|
||||||
|
|
||||||
|
command scrollblur js tri.scrolling.setCurrentFocus(document.documentElement || document.body)
|
||||||
|
autocmd DocLoad https://user.centrum.cz/?url=http%3A%2F%2Fmail.centrum.cz open https://mail.centrum.cz/?fld=-666
|
||||||
|
|
||||||
|
" For syntax highlighting see https://github.com/tridactyl/vim-tridactyl
|
||||||
|
" vim: set filetype=tridactyl
|
||||||
|
" vim: set ft=vim :
|
17
.vim/README.md
Normal file
17
.vim/README.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Vim
|
||||||
|
My cross-platform config file. Now primarly **Ubuntu**, in the past also Windows (I don't use them so much now → not tested!).
|
||||||
|
|
||||||
|
To navigate my secondary editor use [../vscode](../vscode).
|
||||||
|
|
||||||
|
## Related files
|
||||||
|
- [../.vimrc](../.vimrc)
|
||||||
|
- [../.config/coc/ultisnips](../.config/coc/ultisnips)
|
||||||
|
- [./\*](./)
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
See [./§vim_plugins_export-v0.json](./§vim_plugins_export-v0.json). Also call `:helptags ~/.vim/bundle/`.
|
||||||
|
|
||||||
|
|
||||||
|
## To consider
|
||||||
|
- [yaegassy/coc-html-css-support: HTML id and class attribute "completion" for coc.nvim.](https://github.com/yaegassy/coc-html-css-support): `alpine.js`, `petite-vue`
|
||||||
|
- [vimwiki/vimwiki: Personal Wiki for Vim](https://github.com/vimwiki/vimwiki)
|
6
.vim/after/ftplugin/gitcommit/ai.vim
Normal file
6
.vim/after/ftplugin/gitcommit/ai.vim
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
nmap <leader>vd /diff --git<cr>0vG$
|
||||||
|
command! AIcommit ALTredir !§ai-commit.mjs
|
||||||
|
command! AIcommitConventional ALTredir !§ai-commit.mjs --format conventional
|
||||||
|
command! AIcommitGitmoji ALTredir !§ai-commit.mjs --format gitmoji
|
||||||
|
command! AIcommitGit3moji ALTredir !§ai-commit.mjs --format git3moji
|
||||||
|
nmap <leader><f1> :AIcommitOP
|
113
.vim/after/ftplugin/markdown/folding.vim
Normal file
113
.vim/after/ftplugin/markdown/folding.vim
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
" Fold expressions {{{1
|
||||||
|
function! StackedMarkdownFolds()
|
||||||
|
let line = getline(v:lnum)
|
||||||
|
let prevline = getline(v:lnum - 1)
|
||||||
|
let nextline = getline(v:lnum + 1)
|
||||||
|
" fenced block
|
||||||
|
if line =~ '^```.*$' && prevline =~ '^\s*$' " start of a fenced block
|
||||||
|
return ">2"
|
||||||
|
elseif line =~ '^```$' && nextline =~ '^\s*$' " end of a fenced block
|
||||||
|
return "<2"
|
||||||
|
endif
|
||||||
|
" headers
|
||||||
|
if s:HeadingDepth(v:lnum)
|
||||||
|
return ">1"
|
||||||
|
endif
|
||||||
|
" frontmatter
|
||||||
|
if line =~ '^----*$'
|
||||||
|
return v:lnum == 1 ? ">1" : '<1'
|
||||||
|
endif
|
||||||
|
return '='
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Helpers {{{1
|
||||||
|
function! s:SID()
|
||||||
|
return matchstr(expand('<sfile>'), '<SNR>\d\+_')
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:HeadingDepth(lnum)
|
||||||
|
if s:LineIsFenced(a:lnum) | return 0 | endif
|
||||||
|
|
||||||
|
let thisline = getline(a:lnum)
|
||||||
|
if thisline =~ '^#\+\s\+'
|
||||||
|
return len(matchstr(thisline, '^#\{1,6}'))
|
||||||
|
else
|
||||||
|
if thisline != ''
|
||||||
|
let prevline = getline(a:lnum - 1)
|
||||||
|
let nextline = getline(a:lnum + 1)
|
||||||
|
if (nextline =~ '^=\+$') && (prevline =~ '^\s*$')
|
||||||
|
return 1
|
||||||
|
elseif (nextline =~ '^-\+$') && (prevline =~ '^\s*$')
|
||||||
|
return 2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:LineIsFenced(lnum)
|
||||||
|
if exists("b:current_syntax") && b:current_syntax ==# 'markdown' || &filetype ==# 'markdown'
|
||||||
|
" It's cheap to check if the current line has 'markdownCode' syntax group
|
||||||
|
return s:HasSyntaxGroup(a:lnum, '\vmarkdown(Code|Highlight)')
|
||||||
|
else
|
||||||
|
" Using searchpairpos() is expensive, so only do it if syntax highlighting
|
||||||
|
" is not enabled
|
||||||
|
return s:HasSurroundingFencemarks(a:lnum)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:HasSyntaxGroup(lnum, targetGroup)
|
||||||
|
let syntaxGroup = map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
|
||||||
|
for value in syntaxGroup
|
||||||
|
if value =~ a:targetGroup
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:HasSurroundingFencemarks(lnum)
|
||||||
|
let cursorPosition = [line("."), col(".")]
|
||||||
|
call cursor(a:lnum, 1)
|
||||||
|
let startFence = '\%^```\|^\n\zs```'
|
||||||
|
let endFence = '```\n^$'
|
||||||
|
let fenceEndPosition = searchpairpos(startFence,'',endFence,'W')
|
||||||
|
call cursor(cursorPosition)
|
||||||
|
return fenceEndPosition != [0,0]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:FoldText()
|
||||||
|
if getline(v:foldstart) =~ '^----*$'
|
||||||
|
let title= ''
|
||||||
|
let i= v:foldstart+1
|
||||||
|
let I= v:foldend
|
||||||
|
while i<I && title !~ '^title'
|
||||||
|
let title= getline(i)
|
||||||
|
let i+= 1
|
||||||
|
endwhile
|
||||||
|
if title !~ '^title'
|
||||||
|
let title= 'Front Matter'
|
||||||
|
endif
|
||||||
|
return title
|
||||||
|
endif
|
||||||
|
let indent = repeat('#', s:HeadingDepth(v:foldstart))
|
||||||
|
let title = substitute(getline(v:foldstart), '^#\+\s\+', '', '')
|
||||||
|
let foldsize = (v:foldend - v:foldstart)
|
||||||
|
let linecount = '['.foldsize.' line'.(foldsize>1?'s':'').']'
|
||||||
|
return indent.' '.title.' '.linecount.' '
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! FoldMarkdownToggle()
|
||||||
|
if &l:foldexpr ==# 'StackedMarkdownFolds()'
|
||||||
|
setlocal foldmethod< foldtext< foldexpr<
|
||||||
|
else
|
||||||
|
setlocal foldmethod=expr
|
||||||
|
let &l:foldtext = s:SID().'FoldText()'
|
||||||
|
let &l:foldexpr = 'StackedMarkdownFolds()'
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Teardown {{{1
|
||||||
|
if !exists("b:undo_ftplugin") | let b:undo_ftplugin = '' | endif
|
||||||
|
let b:undo_ftplugin .= '
|
||||||
|
\ | setlocal foldmethod< foldtext< foldexpr<
|
||||||
|
\ '
|
||||||
|
" vim:set fdm=marker:
|
3
.vim/after/ftplugin/markdown/mdexpr.vim
Normal file
3
.vim/after/ftplugin/markdown/mdexpr.vim
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
execute "source ".system("mdexpr-agenda vim 2> /dev/null")
|
||||||
|
command MDEXPRclose lclose | lexpr []
|
||||||
|
call scommands#map('m', 'MDEXPR', "n")
|
3
.vim/after/syntax/markdown.vim
Normal file
3
.vim/after/syntax/markdown.vim
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
unlet b:current_syntax
|
||||||
|
syntax include @Yaml syntax/yaml.vim
|
||||||
|
syntax region yamlFrontmatter start=/\%^---$/ end=/^---$/ keepend contains=@Yaml
|
30
.vim/coc-settings.json
Normal file
30
.vim/coc-settings.json
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"workspace.rootPatterns": [ ".git", ".vscode" ],
|
||||||
|
"coc.preferences.formatOnType": false,
|
||||||
|
"diagnostic.separateRelatedInformationAsDiagnostics": true,
|
||||||
|
"diagnostic.errorSign": "┅",
|
||||||
|
"diagnostic.warningSign": "┉",
|
||||||
|
"diagnostic.infoSign": "┄",
|
||||||
|
"diagnostic.hintSign": "·",
|
||||||
|
"javascript.showUnused": true,
|
||||||
|
"coc.source.emoji.filetypes": [ "markdown", "magit", "gitcommit" ],
|
||||||
|
"html.filetypes": [ "html", "handlebars", "htmldjango", "blade", "liquid" ],
|
||||||
|
"html.autoClosingTags": false,
|
||||||
|
"html.autoCreateQuotes": false,
|
||||||
|
"javascript.preferences.quoteStyle": "double",
|
||||||
|
"javascript.preferences.importModuleSpecifierEnding": "js",
|
||||||
|
"javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
|
||||||
|
"___eslint.options": {
|
||||||
|
"overrideConfig":{
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"no-use-before-define": ["error", "nofunc"],
|
||||||
|
"max-params": ["error", 4],
|
||||||
|
"max-depth": ["error", 4],
|
||||||
|
"complexity": ["error", 15]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
5
.vim/compiler/jshint.vim
Normal file
5
.vim/compiler/jshint.vim
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
" npm install -g jshint
|
||||||
|
CompilerSet makeprg=jshint
|
||||||
|
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m
|
||||||
|
|
||||||
|
" vim: set sts=4 sw=4 expandtab ff=unix fdm=syntax :
|
51
.vim/intro-template.md
Normal file
51
.vim/intro-template.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
```
|
||||||
|
%%VERSION%%
|
||||||
|
|
||||||
|
Autor: Bram Moolenaar a další
|
||||||
|
Modified by team+vim@tracker.debian.org
|
||||||
|
Vim je volně šiřitelný program s otevřeným zdrojovým kódem
|
||||||
|
|
||||||
|
Pomozte chudým dětem v Ugandě!
|
||||||
|
podrobnější informace získáte pomocí :help iccf<Enter>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Získání nápovědy
|
||||||
|
- `:help<Enter>`: Zobrazit nápovědu (nebo také `<F1>`, `:help __něco__<Enter>`, …)
|
||||||
|
- `:help version8<Enter>`: Zobrazit informace o této verzi
|
||||||
|
- `sh\`, `shs`, `shh<Enter>`: Zobrazit kombinace kláves začínající `\`, `s` a jiné zajímavé
|
||||||
|
|
||||||
|
|
||||||
|
## Jak ukončit VIM
|
||||||
|
- `:q<Enter>`: Ukončit program/okno (nebo také `:qa<Enter>`, `ZZ` a `ZQ` … viz `:help write-quit`)
|
||||||
|
- `:bd<Enter>`: Zavřít soubor (tzv. „buffer”)
|
||||||
|
|
||||||
|
|
||||||
|
## Rychlá navigace na této stránce
|
||||||
|
- `w`: Otevřít *sezení* (viz `:CLsessionLoad`), `W` zkratka pro vyfiltrování jen pracovních
|
||||||
|
- Otevřít soubor:
|
||||||
|
- `o`: *dříve otevřený* (viz `:help oldfiles<Enter>`)
|
||||||
|
- `e`: *prázdný*
|
||||||
|
- `p`: *prázdný a vložit text ze systémové schránky*
|
||||||
|
- `m`: Seznam záložek (viz `:help mark-motions<Enter>`)
|
||||||
|
- `c`: Upravit tento soubor
|
||||||
|
- `P`: Rozbalit poznámky níže
|
||||||
|
|
||||||
|
<!--region Poznámky -->
|
||||||
|
## Poznámky
|
||||||
|
- `:help 'suffixesadd'` [gf (goto file) doesn't work in PHP file : vim](https://www.reddit.com/r/vim/comments/t8o0bw/gf_goto_file_doesnt_work_in_php_file/)
|
||||||
|
<!--endregion-->
|
||||||
|
|
||||||
|
## Náhodná část z konfiguračního souboru `.vimrc`
|
||||||
|
```vim %%VIMRC%%
|
||||||
|
```
|
||||||
|
|
||||||
|
<!--region Mapování -->
|
||||||
|
nnoremap <buffer><silent> e :bd<cr>
|
||||||
|
nnoremap <buffer><silent> p :bd<bar>normal "+p<cr>
|
||||||
|
nnoremap <buffer><silent> o :ALToldfiles<cr>
|
||||||
|
nnoremap <buffer> w :call feedkeys(':CLSESSIONload ', 'tn')<cr>
|
||||||
|
nnoremap <buffer> W :call feedkeys(':CLSESSIONload work_', 'tn')<cr>
|
||||||
|
nnoremap <buffer><silent> m :marks<cr>
|
||||||
|
nnoremap <buffer> P /region<cr>za
|
||||||
|
nnoremap <buffer><silent> c :e ~/.vim/intro-template.md<cr>
|
||||||
|
<!--endregion-->
|
1
.vim/spell/cs.utf-8.add
Normal file
1
.vim/spell/cs.utf-8.add
Normal file
@ -0,0 +1 @@
|
|||||||
|
off
|
BIN
.vim/spell/cs.utf-8.spl
Normal file
BIN
.vim/spell/cs.utf-8.spl
Normal file
Binary file not shown.
495
.vim/syntax/vifm.vim
Normal file
495
.vim/syntax/vifm.vim
Normal file
@ -0,0 +1,495 @@
|
|||||||
|
" vifm syntax file
|
||||||
|
" Maintainer: xaizek <xaizek@posteo.net>
|
||||||
|
" Last Change: October 5, 2021
|
||||||
|
" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.
|
||||||
|
|
||||||
|
if exists('b:current_syntax')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = 'vifm'
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
|
||||||
|
" General commands
|
||||||
|
syntax keyword vifmCommand contained
|
||||||
|
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
||||||
|
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
|
||||||
|
\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
|
||||||
|
\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
|
||||||
|
\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] plugin plugins popd
|
||||||
|
\ pushd pu[t] pw[d] qa[ll] q[uit] redr[aw] reg[isters] regular rename
|
||||||
|
\ restart restore rlink screen sh[ell] siblnext siblprev sor[t] sp[lit]
|
||||||
|
\ st[op] s[ubstitute] tabc[lose] tabm[ove] tabname tabnew tabn[ext]
|
||||||
|
\ tabo[nly] tabp[revious] touch tr trashes tree session sync undol[ist]
|
||||||
|
\ ve[rsion] vie[w] vifm vs[plit] winc[md] w[rite] wq wqa[ll] xa[ll] x[it]
|
||||||
|
\ y[ank]
|
||||||
|
\ nextgroup=vifmArgs
|
||||||
|
syntax keyword vifmCommandCN contained
|
||||||
|
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
||||||
|
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
|
||||||
|
\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
|
||||||
|
\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
|
||||||
|
\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d]
|
||||||
|
\ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink
|
||||||
|
\ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose]
|
||||||
|
\ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr
|
||||||
|
\ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
|
||||||
|
\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
|
||||||
|
\ nextgroup=vifmArgsCN
|
||||||
|
|
||||||
|
" commands that might be prepended to a command without changing everything else
|
||||||
|
syntax keyword vifmPrefixCommands contained windo winrun
|
||||||
|
|
||||||
|
" Map commands
|
||||||
|
syntax keyword vifmMap contained dm[ap] dn[oremap] du[nmap] map mm[ap]
|
||||||
|
\ mn[oremap] mu[nmap] nm[ap] nn[oremap] no[remap] nun[map] qm[ap] qn[oremap]
|
||||||
|
\ qun[map] unm[ap] vm[ap] vn[oremap] vu[nmap]
|
||||||
|
\ skipwhite nextgroup=vifmMapArgs
|
||||||
|
syntax keyword vifmCMapAbbr contained ca[bbrev] cm[ap] cnorea[bbrev] cno[remap]
|
||||||
|
\ cuna[bbrev] cu[nmap]
|
||||||
|
\ skipwhite nextgroup=vifmCMapArgs
|
||||||
|
|
||||||
|
" Other commands
|
||||||
|
syntax keyword vifmAutocmdCommand contained au[tocmd] nextgroup=vifmAutoEvent
|
||||||
|
syntax keyword vifmCdCommand contained cd
|
||||||
|
syntax keyword vifmCmdCommand contained com[mand] nextgroup=vifmCmdCommandName
|
||||||
|
syntax keyword vifmColoCommand contained colo[rscheme]
|
||||||
|
syntax keyword vifmHiCommand contained hi[ghlight]
|
||||||
|
syntax keyword vifmInvertCommand contained invert
|
||||||
|
syntax keyword vifmLetCommand contained let
|
||||||
|
syntax keyword vifmUnletCommand contained unl[et]
|
||||||
|
syntax keyword vifmSetCommand contained se[t] setl[ocal] setg[lobal]
|
||||||
|
syntax keyword vifmSoCommand contained so[urce]
|
||||||
|
syntax keyword vifmMarkCommand contained ma[rk]
|
||||||
|
syntax keyword vifmFtCommand contained filet[ype] filex[type] filev[iewer]
|
||||||
|
syntax keyword vifmExprCommand contained if ec[ho] elsei[f] exe[cute]
|
||||||
|
syntax keyword vifmNormalCommand contained norm[al]
|
||||||
|
\ nextgroup=vifmColonSubcommand
|
||||||
|
syntax match vifmPatternCommands contained /\<\(filter\(!\|\>\)\|select\(!\|\>\)\|unselect\>\)/ skipwhite
|
||||||
|
\ nextgroup=vifmPatterns
|
||||||
|
|
||||||
|
" List of event names for autocommands (case insensitive)
|
||||||
|
syntax case ignore
|
||||||
|
syntax keyword vifmAutoEvent contained DirEnter nextgroup=vifmStatementC
|
||||||
|
syntax case match
|
||||||
|
|
||||||
|
" Builtin functions
|
||||||
|
syntax match vifmBuiltinFunction
|
||||||
|
\ '\(chooseopt\|expand\|executable\|extcached\|filetype\|fnameescape\|getpanetype\|has\|layoutis\|paneisat\|system\|tabpagenr\|term\)\ze('
|
||||||
|
|
||||||
|
" Operators
|
||||||
|
syntax match vifmOperator "\(==\|!=\|>=\?\|<=\?\|\.\|-\|+\|&&\|||\)" skipwhite
|
||||||
|
|
||||||
|
" Highlight groups
|
||||||
|
syntax keyword vifmHiArgs contained cterm ctermfg ctermbg gui guifg guibg
|
||||||
|
syntax case ignore
|
||||||
|
syntax keyword vifmHiGroups contained WildMenu Border Win CmdLine CurrLine
|
||||||
|
\ OtherLine Directory Link Socket Device Executable Selected BrokenLink
|
||||||
|
\ TopLine TopLineSel StatusLine JobLine SuggestBox Fifo ErrorMsg CmpMismatch
|
||||||
|
\ AuxWin OtherWin TabLine TabLineSel HardLink LineNr OddLine
|
||||||
|
\ User1 User2 User3 User4 User5 User6 User7 User8 User9
|
||||||
|
syntax keyword vifmHiStyles contained
|
||||||
|
\ bold underline reverse inverse standout italic combine none
|
||||||
|
syntax keyword vifmHiColors contained black red green yellow blue magenta cyan
|
||||||
|
\ white default lightblack lightred lightgreen lightyellow lightblue
|
||||||
|
\ lightmagenta lightcyan lightwhite Grey0 NavyBlue DarkBlue Blue3 Blue3_2
|
||||||
|
\ Blue1 DarkGreen DeepSkyBlue4 DeepSkyBlue4_2 DeepSkyBlue4_3 DodgerBlue3
|
||||||
|
\ DodgerBlue2 Green4 SpringGreen4 Turquoise4 DeepSkyBlue3 DeepSkyBlue3_2
|
||||||
|
\ DodgerBlue1 Green3 SpringGreen3 DarkCyan LightSeaGreen DeepSkyBlue2
|
||||||
|
\ DeepSkyBlue1 Green3_2 SpringGreen3_2 SpringGreen2 Cyan3 DarkTurquoise
|
||||||
|
\ Turquoise2 Green1 SpringGreen2_2 SpringGreen1 MediumSpringGreen Cyan2
|
||||||
|
\ Cyan1 DarkRed DeepPink4 Purple4 Purple4_2 Purple3 BlueViolet Orange4
|
||||||
|
\ Grey37 MediumPurple4 SlateBlue3 SlateBlue3_2 RoyalBlue1 Chartreuse4
|
||||||
|
\ DarkSeaGreen4 PaleTurquoise4 SteelBlue SteelBlue3 CornflowerBlue
|
||||||
|
\ Chartreuse3 DarkSeaGreen4_2 CadetBlue CadetBlue_2 SkyBlue3 SteelBlue1
|
||||||
|
\ Chartreuse3_2 PaleGreen3 SeaGreen3 Aquamarine3 MediumTurquoise
|
||||||
|
\ SteelBlue1_2 Chartreuse2 SeaGreen2 SeaGreen1 SeaGreen1_2 Aquamarine1
|
||||||
|
\ DarkSlateGray2 DarkRed_2 DeepPink4_2 DarkMagenta DarkMagenta_2 DarkViolet
|
||||||
|
\ Purple Orange4_2 LightPink4 Plum4 MediumPurple3 MediumPurple3_2 SlateBlue1
|
||||||
|
\ Yellow4 Wheat4 Grey53 LightSlateGrey MediumPurple LightSlateBlue Yellow4_2
|
||||||
|
\ DarkOliveGreen3 DarkSeaGreen LightSkyBlue3 LightSkyBlue3_2 SkyBlue2
|
||||||
|
\ Chartreuse2_2 DarkOliveGreen3_2 PaleGreen3_2 DarkSeaGreen3 DarkSlateGray3
|
||||||
|
\ SkyBlue1 Chartreuse1 LightGreen_2 LightGreen_3 PaleGreen1 Aquamarine1_2
|
||||||
|
\ DarkSlateGray1 Red3 DeepPink4_3 MediumVioletRed Magenta3 DarkViolet_2
|
||||||
|
\ Purple_2 DarkOrange3 IndianRed HotPink3 MediumOrchid3 MediumOrchid
|
||||||
|
\ MediumPurple2 DarkGoldenrod LightSalmon3 RosyBrown Grey63 MediumPurple2_2
|
||||||
|
\ MediumPurple1 Gold3 DarkKhaki NavajoWhite3 Grey69 LightSteelBlue3
|
||||||
|
\ LightSteelBlue Yellow3 DarkOliveGreen3_3 DarkSeaGreen3_2 DarkSeaGreen2
|
||||||
|
\ LightCyan3 LightSkyBlue1 GreenYellow DarkOliveGreen2 PaleGreen1_2
|
||||||
|
\ DarkSeaGreen2_2 DarkSeaGreen1 PaleTurquoise1 Red3_2 DeepPink3 DeepPink3_2
|
||||||
|
\ Magenta3_2 Magenta3_3 Magenta2 DarkOrange3_2 IndianRed_2 HotPink3_2
|
||||||
|
\ HotPink2 Orchid MediumOrchid1 Orange3 LightSalmon3_2 LightPink3 Pink3
|
||||||
|
\ Plum3 Violet Gold3_2 LightGoldenrod3 Tan MistyRose3 Thistle3 Plum2
|
||||||
|
\ Yellow3_2 Khaki3 LightGoldenrod2 LightYellow3 Grey84 LightSteelBlue1
|
||||||
|
\ Yellow2 DarkOliveGreen1 DarkOliveGreen1_2 DarkSeaGreen1_2 Honeydew2
|
||||||
|
\ LightCyan1 Red1 DeepPink2 DeepPink1 DeepPink1_2 Magenta2_2 Magenta1
|
||||||
|
\ OrangeRed1 IndianRed1 IndianRed1_2 HotPink HotPink_2 MediumOrchid1_2
|
||||||
|
\ DarkOrange Salmon1 LightCoral PaleVioletRed1 Orchid2 Orchid1 Orange1
|
||||||
|
\ SandyBrown LightSalmon1 LightPink1 Pink1 Plum1 Gold1 LightGoldenrod2_2
|
||||||
|
\ LightGoldenrod2_3 NavajoWhite1 MistyRose1 Thistle1 Yellow1 LightGoldenrod1
|
||||||
|
\ Khaki1 Wheat1 Cornsilk1 Grey100 Grey3 Grey7 Grey11 Grey15 Grey19 Grey23
|
||||||
|
\ Grey27 Grey30 Grey35 Grey39 Grey42 Grey46 Grey50 Grey54 Grey58 Grey62
|
||||||
|
\ Grey66 Grey70 Grey74 Grey78 Grey82 Grey85 Grey89 Grey93
|
||||||
|
|
||||||
|
syntax case match
|
||||||
|
|
||||||
|
" Options
|
||||||
|
syntax keyword vifmOption contained aproposprg autocd autochpos caseoptions
|
||||||
|
\ cdpath cd chaselinks classify columns co confirm cf cpoptions cpo
|
||||||
|
\ cvoptions deleteprg dotdirs dotfiles dirsize fastrun fillchars fcs findprg
|
||||||
|
\ followlinks fusehome gdefault grepprg histcursor history hi hlsearch hls
|
||||||
|
\ iec ignorecase ic iooptions incsearch is laststatus lines locateprg ls
|
||||||
|
\ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu
|
||||||
|
\ numberwidth nuw previewoptions previewprg quickview relativenumber rnu
|
||||||
|
\ rulerformat ruf runexec scrollbind scb scrolloff sessionoptions ssop so
|
||||||
|
\ sort sortgroups sortorder sortnumbers shell sh shellflagcmd shcf shortmess
|
||||||
|
\ shm showtabline stal sizefmt slowfs smartcase scs statusline stl
|
||||||
|
\ suggestoptions syncregs syscalls tablabel tabprefix tabscope tabstop
|
||||||
|
\ tabsuffix timefmt timeoutlen title tm trash trashdir ts tuioptions to
|
||||||
|
\ undolevels ul vicmd viewcolumns vifminfo vimhelp vixcmd wildmenu wmnu
|
||||||
|
\ wildstyle wordchars wrap wrapscan ws
|
||||||
|
|
||||||
|
" Disabled boolean options
|
||||||
|
syntax keyword vifmOption contained noautocd noautochpos nocf nochaselinks
|
||||||
|
\ nodotfiles nofastrun nofollowlinks nohlsearch nohls noiec noignorecase
|
||||||
|
\ noic noincsearch nois nolaststatus nols nolsview nomillerview nonumber
|
||||||
|
\ nonu noquickview norelativenumber nornu noscrollbind noscb norunexec
|
||||||
|
\ nosmartcase noscs nosortnumbers nosyscalls notitle notrash novimhelp
|
||||||
|
\ nowildmenu nowmnu nowrap nowrapscan nows
|
||||||
|
|
||||||
|
" Inverted boolean options
|
||||||
|
syntax keyword vifmOption contained invautocd invautochpos invcf invchaselinks
|
||||||
|
\ invdotfiles invfastrun invfollowlinks invhlsearch invhls inviec
|
||||||
|
\ invignorecase invic invincsearch invis invlaststatus invls invlsview
|
||||||
|
\ invmillerview invnumber invnu invquickview invrelativenumber invrnu
|
||||||
|
\ invscrollbind invscb invrunexec invsmartcase invscs invsortnumbers
|
||||||
|
\ invsyscalls invtitle invtrash invvimhelp invwildmenu invwmnu invwrap
|
||||||
|
\ invwrapscan invws
|
||||||
|
|
||||||
|
" Expressions
|
||||||
|
syntax region vifmStatement start='^\(\s\|:\)*'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||||
|
\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
|
||||||
|
\,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
|
||||||
|
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
|
||||||
|
\,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommandSt,vifmPrefixCommands
|
||||||
|
\,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands
|
||||||
|
" Contained statement with highlighting of angle-brace notation.
|
||||||
|
syntax region vifmStatementCN start='\(\s\|:\)*'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
|
||||||
|
\ contains=vifmCommandCN,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
|
||||||
|
\,vifmFtCommandStN,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
|
||||||
|
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
|
||||||
|
\,vifmNotation,vifmCdCommandStN,vifmSetN,vifmArgument,vifmSoCommand
|
||||||
|
\,vifmSoCommandStN,vifmInvertCommand,vifmInvertCommandStN,vifmPrefixCommands
|
||||||
|
\,vifmLetCN
|
||||||
|
" Contained statement without highlighting of angle-brace notation.
|
||||||
|
syntax region vifmStatementC start='\(\s\|:\)*'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend contained
|
||||||
|
\ contains=vifmCommand,vifmCmdCommand,vifmCmdCommandSt,vifmMarkCommandSt
|
||||||
|
\,vifmFtCommandSt,vifmCMapAbbr,vifmMap,vifmMapSt,vifmCMapSt,vifmExecute
|
||||||
|
\,vifmComment,vifmInlineComment,vifmNotComment,vifmExprCommandSt,vifmNormalCommandSt
|
||||||
|
\,vifmCdCommandSt,vifmSet,vifmArgument,vifmSoCommand,vifmSoCommandSt
|
||||||
|
\,vifmInvertCommand,vifmInvertCommandSt,vifmPrefixCommands
|
||||||
|
\,vifmAutocmdCommand,vifmAutoEvent,vifmPatternCommands,vifmLetC,vifmUnletC
|
||||||
|
syntax region vifmCmdCommandSt start='^\(\s\|:\)*com\%[mand]\>'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||||
|
\ contains=vifmCmdCommand,vifmComment,vifmInlineComment,vifmNotComment
|
||||||
|
syntax region vifmCmdCommandName contained start='!\?\s\+[a-zA-Z]\+' end='\ze\s'
|
||||||
|
\ skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||||
|
\ nextgroup=vifmCmdArgs
|
||||||
|
syntax region vifmCmdArgs start='\(\s*\n\s*\\\)\?\s*\S\+'
|
||||||
|
\ end='\s' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmColonSubcommand,vifmComment
|
||||||
|
syntax region vifmColoCommandSt start='^\(\s\|:\)*colo\%[rscheme]\>' end='$'
|
||||||
|
\ keepend oneline contains=vifmColoCommand
|
||||||
|
syntax region vifmInvertCommandSt start='\(\s\|:\)*invert\>' end='$\||'
|
||||||
|
\ keepend oneline contains=vifmInvertCommand
|
||||||
|
syntax region vifmInvertCommandStN start='\(\s\|:\)*invert\>' end='$\||'
|
||||||
|
\ contained keepend oneline contains=vifmInvertCommand,vifmNotation
|
||||||
|
syntax region vifmSoCommandSt start='\(\s\|:\)*so\%[urce]\>' end='$\||'
|
||||||
|
\ keepend oneline contains=vifmSoCommand,vifmEnvVar,vifmStringInExpr
|
||||||
|
syntax region vifmSoCommandStN start='\(\s\|:\)*so\%[urce]\>' end='$\||'
|
||||||
|
\ contained keepend oneline
|
||||||
|
\ contains=vifmSoCommand,vifmEnvVar,vifmNotation,vifmStringInExpr
|
||||||
|
syntax region vifmMarkCommandSt start='^\(\s\|:\)*ma\%[rk]\>' end='$' keepend
|
||||||
|
\ oneline contains=vifmMarkCommand
|
||||||
|
syntax region vifmCdCommandSt start='\(\s\|:\)*cd\>' end='$\||' keepend oneline
|
||||||
|
\ contains=vifmCdCommand,vifmEnvVar,vifmStringInExpr
|
||||||
|
" Highlight for :cd command with highlighting of angle-brace notation.
|
||||||
|
syntax region vifmCdCommandStN start='\(\s\|:\)*cd\>' end='$\||' keepend oneline
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmCdCommand,vifmEnvVar,vifmNotation,vifmStringInExpr
|
||||||
|
syntax region vifmFtCommandSt start='\(\s\|:\)*file[tvx]'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmFtBeginning,vifmComment
|
||||||
|
syntax region vifmFtCommandStN start='\(\s\|:\)*file[tvx]'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\|\(<[cC][rR]>\)' keepend
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmComment,vifmNotation,vifmFtBeginning
|
||||||
|
syntax region vifmMapSt start='^\(\s\|:\)*\(map\|mm\%[ap]\|mn\%[oremap]\|mu\%[nmap]\|nm\%[ap]\|nn\%[oremap]\|no\%[remap]\|nun\%[map]\|qm\%[ap]\|qn\%[oremap]\|qun\%[map]\|unm\%[ap]\|vm\%[ap]\|vn\%[oremap]\|vu\%[nmap]\)'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||||
|
\ contains=vifmMap
|
||||||
|
syntax region vifmCMapSt
|
||||||
|
\ start='^\(\s\|:\)*\(cm\%[ap]\|cno\%[remap]\|cu\%[nmap]\)'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$' keepend
|
||||||
|
\ contains=vifmCMapAbbr
|
||||||
|
syntax region vifmExprCommandSt
|
||||||
|
\ start='\<\(if\|ec\%[ho]\|elsei\%[f]\|exe\%[cute]\)\>'
|
||||||
|
\ end='$\||'
|
||||||
|
\ contains=vifmExprCommand,vifmString,vifmStringInExpr,vifmBuiltinFunction
|
||||||
|
\,vifmOperator,vifmEnvVar,vifmNumber
|
||||||
|
syntax region vifmNormalCommandSt start='\(\s\|:\)*norm\%[al]\>' end='$' keepend
|
||||||
|
\ oneline
|
||||||
|
\ contains=vifmNormalCommand,vifmComment
|
||||||
|
syntax region vifmExecute start='!' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmNotation,vifmComment
|
||||||
|
syntax region vifmMapArgs start='\ze\S\+'
|
||||||
|
\ end='\ze.' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||||
|
\ contained
|
||||||
|
\ nextgroup=vifmMapArgList
|
||||||
|
syntax region vifmCMapArgs start='\S\+'
|
||||||
|
\ end='\n\s*\\' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmMapLhs,vifmMapCRhs
|
||||||
|
syntax region vifmMapLhs start='\S\+'
|
||||||
|
\ end='\ze\s' skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmNotation,vifmComment
|
||||||
|
\ nextgroup=vifmMapRhs
|
||||||
|
syntax region vifmMapRhs start='.'
|
||||||
|
\ end='\ze<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||||
|
\ contained keepend
|
||||||
|
\ contains=vifmNotation,vifmComment,vifmColonSubcommandN
|
||||||
|
\ nextgroup=vifmMapRhs
|
||||||
|
syntax region vifmMapCRhs start='\s'
|
||||||
|
\ end='<[cC][rR]>' skip='\(\s*\\\)\|\(\s*".*$\)'
|
||||||
|
\ contained keepend
|
||||||
|
\ contains=vifmNotation,vifmComment,vifmSubcommandN
|
||||||
|
syntax region vifmColonSubcommand start='\s*\(\s*\n\s*\\\)\?:\s*\S\+'
|
||||||
|
\ end='$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)'
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmStatementC
|
||||||
|
" Contained sub command with highlighting of angle-brace notation.
|
||||||
|
syntax region vifmColonSubcommandN start='\s*\(\s*\n\s*\\\)\?:\s*\S\+'
|
||||||
|
\ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmStatementCN
|
||||||
|
syntax region vifmSubcommandN start='\s*\(\s*\n\s*\\\)\?:\?\s*\S\+'
|
||||||
|
\ end='\ze<[cC][rR]>\|$' skip='\s*\n\(\s*\\\)\|\(\s*".*$\)' keepend
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmStatementCN
|
||||||
|
" Non-empty pattern or form [!][{]{*.ext,*.e}[}], [!][/]/regex/[/][iI] or
|
||||||
|
" <mime-type-globs>, possibly multi-line.
|
||||||
|
" [!]/regexp/[iI]*
|
||||||
|
syntax region vifmPattern contained
|
||||||
|
\ start='!\?/\ze\(\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+/'
|
||||||
|
\ skip='\\/\|\(\n\s*\\\)\|\(\n\s*".*$\)' end='/[iI]*\ze\|/\ze\S\+' keepend
|
||||||
|
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||||
|
" [!]//regexp//[iI]*
|
||||||
|
syntax region vifmPattern contained
|
||||||
|
\ start='!\?//\ze\(/[^/]\|\n\s*\\\|\n\s*".*$\|[^/]\|\\/\)\+//'
|
||||||
|
\ skip='/[^/]\|\(\n\s*\\\)\|\(\n\s*".*$\)' end='//[iI]*' keepend
|
||||||
|
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||||
|
" [!]{regexp}
|
||||||
|
syntax region vifmPattern contained
|
||||||
|
\ start='!\?{[^}]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}' keepend
|
||||||
|
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||||
|
" [!]{{regexp}}
|
||||||
|
syntax region vifmPattern contained
|
||||||
|
\ start='!\?{{\ze.\{-}}}' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='}}' keepend
|
||||||
|
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||||
|
" [!]<regexp>
|
||||||
|
syntax region vifmPattern contained
|
||||||
|
\ start='!\?<[^>]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='>' keepend
|
||||||
|
\ contains=vifmComment,vifmInlineComment,vifmNotComment,vifmNotPattern
|
||||||
|
syntax region vifmPatterns contained
|
||||||
|
\ start='\(^\|\s\)\zs[/{<!]'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||||
|
\ end='\(/[a-zA-Z]\{,4}\|[}>iI]\)\(\s\)' keepend
|
||||||
|
\ contains=vifmPattern,vifmComment
|
||||||
|
syntax match vifmNotPattern contained '!\?\({{}}\|\<//\>\|////\)'
|
||||||
|
syntax region vifmHi
|
||||||
|
\ start='^\(\s\|:\)*\<hi\%[ghlight]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||||
|
\ end='$' keepend
|
||||||
|
\ contains=vifmHiCommand,vifmHiArgs,vifmHiGroups,vifmHiStyles,vifmHiColors
|
||||||
|
\,vifmNumber,vifmComment,vifmInlineComment,vifmNotComment,vifmHiClear
|
||||||
|
\,vifmPatterns,vifmHexColor
|
||||||
|
syntax region vifmFtBeginning contained
|
||||||
|
\ start='\<\(filet\%[ype]\|filext\%[ype]\|filev\%[iewer]\)\>\s\+\S'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)'
|
||||||
|
\ end='\(\S\zs\s\)' keepend
|
||||||
|
\ contains=vifmFtCommand,vifmPatterns,vifmComment
|
||||||
|
|
||||||
|
" common highlight for :command arguments without highlighting of angle-bracket
|
||||||
|
" notation
|
||||||
|
syntax region vifmArgs start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmStringInExpr,vifmComment
|
||||||
|
" common highlight for :command arguments with highlighting of angle-bracket
|
||||||
|
" notation
|
||||||
|
syntax region vifmArgsCN start='!\?\zs\(\s*\S\+\|[^a-zA-Z]\)'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='|\|$'
|
||||||
|
\ contained
|
||||||
|
\ contains=vifmStringInExpr,vifmNotation
|
||||||
|
|
||||||
|
syntax region vifmSet
|
||||||
|
\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
|
||||||
|
\,vifmSetAssignNS,vifmComment,vifmInlineComment,vifmNotComment
|
||||||
|
syntax region vifmSetN
|
||||||
|
\ start='\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
|
||||||
|
\,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation
|
||||||
|
syntax region vifmSet2 contained
|
||||||
|
\ start='^\(\s\|:\)*\<\(se\%[t]\|setg\%[lobal]\|setl\%[ocal]\)\>'
|
||||||
|
\ skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmSetCommand,vifmOption,vifmSetAssignSQS,vifmSetAssignDQS
|
||||||
|
\,vifmSetAssignNSN,vifmComment,vifmInlineComment,vifmNotComment,vifmNotation
|
||||||
|
|
||||||
|
" Highlight for =value part of :set arguments of form option=value
|
||||||
|
|
||||||
|
" For single quoted string (check that it starts with =')
|
||||||
|
syntax region vifmSetAssignSQS contained
|
||||||
|
\ start="='" skip=+\\\\\|\\'+ end=+'+ keepend
|
||||||
|
\ contains=vifmString
|
||||||
|
" For double quoted string (check that it starts with =")
|
||||||
|
syntax region vifmSetAssignDQS contained
|
||||||
|
\ start='="' skip=+\\\\\|\\"+ end=+"+ keepend
|
||||||
|
\ contains=vifmString
|
||||||
|
" For not strings (check that it doesn't start with either =' or =")
|
||||||
|
syntax region vifmSetAssignNS contained
|
||||||
|
\ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$'
|
||||||
|
\ extend
|
||||||
|
\ contains=vifmNumber,vifmComment,vifmInlineComment
|
||||||
|
" For not strings (check that it doesn't start with either =' or =")
|
||||||
|
syntax region vifmSetAssignNSN contained
|
||||||
|
\ start='=[^"'' ]' skip='\(\n\s*\\\)\|\(\n\s*".*$\)\|^.*\S.*\\\s' end='^\s*\\\s\|[^\\]\s\|$'
|
||||||
|
\ extend
|
||||||
|
\ contains=vifmNumber,vifmComment,vifmInlineComment,vifmNotation
|
||||||
|
|
||||||
|
" :let command with highlighting of angle-brace notation.
|
||||||
|
syntax region vifmLet
|
||||||
|
\ start='^\(\s\|:\)*\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
|
||||||
|
\,vifmInlineComment,vifmNotComment
|
||||||
|
" Contained :let command without highlighting of angle-brace notation.
|
||||||
|
syntax region vifmLetC
|
||||||
|
\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
|
||||||
|
\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction
|
||||||
|
" Contained :let command with highlighting of angle-brace notation.
|
||||||
|
syntax region vifmLetCN
|
||||||
|
\ start='\<let\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmLetCommand,vifmEnvVar,vifmString,vifmStringInExpr,vifmComment
|
||||||
|
\,vifmInlineComment,vifmNotComment,vifmBuiltinFunction,vifmNotation
|
||||||
|
syntax region vifmUnlet
|
||||||
|
\ start='^\(\s\|:\)*\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment
|
||||||
|
syntax region vifmUnletC
|
||||||
|
\ start='\<unl\%[et]\>' skip='\(\n\s*\\\)\|\(\n\s*".*$\)' end='$\||'
|
||||||
|
\ keepend
|
||||||
|
\ contains=vifmUnletCommand,vifmEnvVar,vifmComment,vifmInlineComment,vifmNotComment
|
||||||
|
syntax region vifmString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+
|
||||||
|
syntax region vifmString contained start=+='+hs=s+1 skip=+\\\\\|\\'+ end=+'+
|
||||||
|
syntax region vifmStringInExpr contained start=+=\@<="+hs=s+1 skip=+\\\\\|\\"+
|
||||||
|
\ end=+"+
|
||||||
|
syntax region vifmStringInExpr contained start=+=\@<='+hs=s+1
|
||||||
|
\ skip=+\\\\\|\\'\|''+ end=+'+
|
||||||
|
syntax region vifmStringInExpr contained start=+[.( ]"+hs=s+1 skip=+\\\\\|\\"+
|
||||||
|
\ end=+"+
|
||||||
|
syntax region vifmStringInExpr contained start=+[.( ]'+hs=s+1
|
||||||
|
\ skip=+\\\\\|\\'\|''+ end=+'+
|
||||||
|
syntax region vifmArgument contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||||
|
syntax region vifmArgument contained start=+'+ skip=+\\\\\|\\'\|''+ end=+'+
|
||||||
|
syntax match vifmEnvVar contained /\$[0-9a-zA-Z_]\+/
|
||||||
|
syntax match vifmNumber contained /\d\+/
|
||||||
|
syntax match vifmHexColor contained /#[0-9a-fA-F]\{6}/
|
||||||
|
|
||||||
|
" Optional map arguments right after command name
|
||||||
|
syntax match vifmMapArgList '\(<\(silent\|wait\)>\s*\)*' contained
|
||||||
|
\ nextgroup=vifmMapLhs
|
||||||
|
|
||||||
|
" Ange-bracket notation
|
||||||
|
syntax case ignore
|
||||||
|
syntax match vifmNotation '<\(esc\|cr\|space\|del\|nop\|\(s-\)\?tab\|home\|end\|left\|right\|up\|down\|bs\|delete\|insert\|pageup\|pagedown\|\([acms]-\)\?f\d\{1,2\}\|c-s-[a-z[\]^_]\|s-c-[a-z[\]^_]\|c-[a-z[\]^_@]\|[am]-c-[a-z]\|c-[am]-[a-z]\|[am]-[a-z]\)>'
|
||||||
|
syntax case match
|
||||||
|
|
||||||
|
" Whole line comment
|
||||||
|
syntax region vifmComment contained extend
|
||||||
|
\ contains=@Spell start='^\(\s\|:\)*"' end='$'
|
||||||
|
" Comment at the end of a line
|
||||||
|
syntax match vifmInlineComment contained contains=@Spell '\s"[^"]*$'
|
||||||
|
" This prevents highlighting non-first line of multi-line command
|
||||||
|
syntax match vifmNotComment contained '\s"[^"]*\(\n\s*\(\\\|"\)\)\@='
|
||||||
|
|
||||||
|
" Empty line
|
||||||
|
syntax match vifmEmpty /^\s*$/
|
||||||
|
|
||||||
|
" :highlight clear
|
||||||
|
syntax match vifmHiClear contained /\s*\<clear\>\s*/
|
||||||
|
|
||||||
|
" Check spelling only in syntax elements marked with @Spell
|
||||||
|
syntax spell notoplevel
|
||||||
|
|
||||||
|
" Highlight
|
||||||
|
highlight link vifmAutocmdCommand Statement
|
||||||
|
highlight link vifmPatternCommands Statement
|
||||||
|
highlight link vifmComment Comment
|
||||||
|
highlight link vifmInlineComment Comment
|
||||||
|
highlight link vifmCommand Statement
|
||||||
|
highlight link vifmCommandCN Statement
|
||||||
|
highlight link vifmPrefixCommands Statement
|
||||||
|
highlight link vifmCdCommand Statement
|
||||||
|
highlight link vifmCmdCommand Statement
|
||||||
|
highlight link vifmColoCommand Statement
|
||||||
|
highlight link vifmHiCommand Statement
|
||||||
|
highlight link vifmHiClear Statement
|
||||||
|
highlight link vifmInvertCommand Statement
|
||||||
|
highlight link vifmMarkCommand Statement
|
||||||
|
highlight link vifmFtCommand Statement
|
||||||
|
highlight link vifmExprCommand Statement
|
||||||
|
highlight link vifmNormalCommand Statement
|
||||||
|
highlight link vifmLetCommand Statement
|
||||||
|
highlight link vifmUnletCommand Statement
|
||||||
|
highlight link vifmSetCommand Statement
|
||||||
|
highlight link vifmSoCommand Statement
|
||||||
|
highlight link vifmBuiltinFunction Function
|
||||||
|
highlight link vifmOperator Operator
|
||||||
|
highlight link vifmMap Statement
|
||||||
|
highlight link vifmCMapAbbr Statement
|
||||||
|
highlight link vifmHiArgs Type
|
||||||
|
highlight link vifmAutoEvent Type
|
||||||
|
highlight link vifmHiGroups Identifier
|
||||||
|
highlight link vifmPattern String
|
||||||
|
highlight link vifmHiStyles PreProc
|
||||||
|
highlight link vifmHiColors Special
|
||||||
|
highlight link vifmOption PreProc
|
||||||
|
highlight link vifmNotation Special
|
||||||
|
highlight link vifmMapArgList Special
|
||||||
|
highlight link vifmString String
|
||||||
|
highlight link vifmStringInExpr String
|
||||||
|
highlight link vifmEnvVar PreProc
|
||||||
|
highlight link vifmNumber Number
|
||||||
|
highlight link vifmHexColor Number
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
let &commentstring = '"%s'
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 :
|
51
.vim/user_tips.vim
Normal file
51
.vim/user_tips.vim
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
let g:user_tips_list= [
|
||||||
|
\ ':vebose ★ * … ★: eg. map/set/…',
|
||||||
|
\ ':clist+:cc :+cc :-cc :copen :cwindow :cclose',
|
||||||
|
\ ':undolist :earlier :later',
|
||||||
|
\ 'git mergetool → vimdiff3 → https://stackoverflow.com/a/163659',
|
||||||
|
\ ':llist+:ll :+ll :-ll :lopen :lwindow :lclose',
|
||||||
|
\ ':m ''>+1 … :m ''<-2',
|
||||||
|
\ 'QuickList → :set ma+‘edit’+;w ;s … ;q',
|
||||||
|
\ ':set foldopen-=search',
|
||||||
|
\ 'Buffer info → <c-g> g<c-g> … :map <buffer><tab>',
|
||||||
|
\ 'Rename file → :saveas * | :silent !rm # | :bw #',
|
||||||
|
\ 'packadd cfilter',
|
||||||
|
\ 'Next word location → ]I [I ]<c-I> [<c-I> … <leader>]I <leader>[I',
|
||||||
|
\ ':w !sudo tee > /dev/null %',
|
||||||
|
\ 'v`]o`[ visual last change — https://www.reddit.com/r/vim/comments/ypt6uf/comment/ivl68xu/?utm_source=share&utm_medium=web2x&context=3',
|
||||||
|
\ '`0·`"·`.·`` … last exit·edit·change·pre-jump … also g''*',
|
||||||
|
\ 'q: q? q/ … @: ?<cr> /<cr> :&<cr> , ;',
|
||||||
|
\ '<c-n><c-p> <c-x><c-l> <c-x><c-f> … :h ins-completion',
|
||||||
|
\ ':split +N … open cur. file in N line … :split +/pattern',
|
||||||
|
\ 'vim can edit zip files',
|
||||||
|
\ ':set nowrapscan (cycle search)',
|
||||||
|
\ '<c-x>= <c-v>',
|
||||||
|
\ 'silent! %s/[\\r \\t]\+$//',
|
||||||
|
\ ':ilist pattern … :ijump pattern',
|
||||||
|
\ 'Replace mode → R',
|
||||||
|
\ 'J gJ K gwip g~ ~',
|
||||||
|
\ 'Folds → zm za zi zj zk (zfG/zd) zc zC zo zO … :*fold<tab>',
|
||||||
|
\ '<c-]> (`ž`) <c-t>',
|
||||||
|
\ 'Macro defs. → ]D [D ]<c-D> [<c-D> … :dlist string … :djump string',
|
||||||
|
\ ':update | edit ++ff=dos | setlocal ff=unix',
|
||||||
|
\ 'Shift-V and then type gq → put "overflowed" text on new lines',
|
||||||
|
\ ':set scrollbind (`scb`) … :diffthis :diffoff :diff*<tab>',
|
||||||
|
\ ":let i=10 | 'a,'bg/Abc/s/yy/\=i/ |let i=i+1 # convert yy to 10,11,12 etc",
|
||||||
|
\ 'use \zs \ze \c inside `?`|`/`',
|
||||||
|
\ 'v_* :%s//replacement',
|
||||||
|
\ ':5,10norm! @a … :g/pattern/norm! @a',
|
||||||
|
\ '`textwidth` → n_gq* v_gq',
|
||||||
|
\ 'File encryption → :X … vim -x filename',
|
||||||
|
\ ':sort /,/',
|
||||||
|
\ 'zz zb zt zL zH gm gM',
|
||||||
|
\ '<c-a> <c-x> g<c-a>…',
|
||||||
|
\ ':set spell :spell<tab> … z= zg zug ]s [s',
|
||||||
|
\ ':lhistory :lolder :lnewer',
|
||||||
|
\ ':[m]ove :[co]py (:t) :p :#',
|
||||||
|
\ ':help i_CTRL-<tab> … i_CTRL-Y … i<c-u>',
|
||||||
|
\ '*grep onchange -r . --include=*.\{js,md\} …or http://jdem.cz/fgytv8',
|
||||||
|
\ '%bdelete|edit #|normal `"',
|
||||||
|
\ ':diffget :diffput c] [c',
|
||||||
|
\ ':chistory :colder :cnewer',
|
||||||
|
\ 'Repeat substitution(s) & g& :& :&& :~ … :help :s_flags'
|
||||||
|
\ ]
|
1
.vim/§vim_plugins_export-v0.json
Normal file
1
.vim/§vim_plugins_export-v0.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"bundle":["https://github.com/tpope/vim-repeat.git","https://github.com/machakann/vim-highlightedyank.git","https://github.com/tpope/vim-surround.git","https://github.com/tpope/vim-liquid.git","https://github.com/junegunn/rainbow_parentheses.vim.git","https://github.com/jaandrle/vim-mini_intro.git","git@github.com:jaandrle/vim-mini_sessions.git","https://github.com/jaandrle/vim-jaandrle_utils.git","https://github.com/jaandrle/vim-scommands.git","https://github.com/jaandrle/vim-mini_enhancement.git","https://github.com/ctrlpvim/ctrlp.vim.git","https://github.com/jaandrle/vim-user_tips.git","https://github.com/rantasub/vim-bash-completion.git","https://github.com/rhysd/git-messenger.vim.git","https://github.com/Yilin-Yang/vim-markbar.git","https://github.com/wellle/context.vim.git","https://github.com/tpope/vim-speeddating.git","https://github.com/jonsmithers/vim-html-template-literals.git","git@github.com:leafOfTree/vim-vue-plugin","git@github.com:madox2/vim-ai","git@github.com:AndrewRadev/linediff.vim.git"],"one_files":["https://gist.githubusercontent.com/jaandrle/9356d737ef5dfda2efbe50248d32cb78/raw/7f73e223b93d9cb889eecc77850604ebe7e102a3/cwordhi.vim","https://gist.githubusercontent.com/jaandrle/d0ce92e67d03dd8da4b7b932b379b879/raw/b47b1260759d32823890c39df31909f386cc3f6c/vifm.vim"],"pack":["git@github.com:Exafunction/codeium.vim.git","git@github.com:MaxMEllon/vim-jsx-pretty","https://github.com/neoclide/coc.nvim.git","git@github.com:editorconfig/editorconfig-vim","git@github.com:jaandrle/coc-custom_elements","https://github.com/mbbill/undotree.git"]}
|
482
.vimrc
482
.vimrc
@ -1,82 +1,460 @@
|
|||||||
|
""" VIM config file | Jan Andrle | 2024-02-07 (VIM >=8.1)
|
||||||
|
"" #region B – Base
|
||||||
scriptencoding utf-8 | set encoding=utf-8
|
scriptencoding utf-8 | set encoding=utf-8
|
||||||
let $BASH_ENV = "~/.bashrc"
|
let $BASH_ENV = "~/.bashrc"
|
||||||
|
set runtimepath^=~/.vim/bundle/*
|
||||||
packadd! matchit
|
packadd! matchit
|
||||||
set hidden
|
set hidden
|
||||||
set confirm
|
|
||||||
|
set title
|
||||||
|
colorscheme codedark
|
||||||
|
set updatetime=300 lazyredraw ttyfast " Having longer updatetime (default is 4s) leads to noticeable delays and poor user experience. Also reduce redraw frequency and fast terminal typing
|
||||||
|
set noerrorbells novisualbell
|
||||||
set belloff=esc
|
set belloff=esc
|
||||||
set showcmd cmdheight=2 showmode
|
set confirm
|
||||||
set wildmenu wildmode=list:longest,list:full
|
set guioptions-=T
|
||||||
set history=500
|
|
||||||
set nobackup nowritebackup noswapfile
|
|
||||||
try
|
|
||||||
set undodir=~/.vim/undodir undofile | catch | endtry
|
|
||||||
|
|
||||||
nmap s <nop>
|
cabbrev <expr> %PWD% execute('pwd')
|
||||||
vmap s <nop>
|
cabbrev <expr> %CD% fnameescape(expand('%:p:h'))
|
||||||
nmap S <nop>
|
cabbrev <expr> %CS% mini_enhancement#selectedText()
|
||||||
vmap S <nop>
|
cabbrev <expr> %CW% expand('<cword>')
|
||||||
let mapleader= "s"
|
|
||||||
|
|
||||||
nnoremap <leader>v :
|
let mapleader = "\\"
|
||||||
nnoremap <leader>a @
|
" better for my keyboard, but maybe use `:help keymap`?
|
||||||
nnoremap <leader>A @@
|
nnoremap § @
|
||||||
|
nnoremap §§ @@
|
||||||
|
nnoremap ů ;
|
||||||
|
nnoremap ; :
|
||||||
nnoremap <leader>u U
|
nnoremap <leader>u U
|
||||||
nnoremap U <c-r>
|
nnoremap U <c-r>
|
||||||
nnoremap <leader>l <c-]>
|
nnoremap ž <c-]>
|
||||||
nmap <silent><leader>m :nohlsearch<bar>diffupdate<cr>
|
nnoremap <c-up> <c-y>
|
||||||
|
nnoremap <c-down> <c-e>
|
||||||
|
" <c-bs>
|
||||||
|
imap <c-w>
|
||||||
|
cmap <c-w>
|
||||||
|
|
||||||
|
if has("patch-8.1.0360")
|
||||||
|
set diffopt+=algorithm:patience,indent-heuristic | endif
|
||||||
|
set diffopt+=iwhite
|
||||||
|
augroup vimrc_help
|
||||||
|
autocmd!
|
||||||
|
autocmd BufEnter *.txt if &buftype == 'help' | wincmd L | vertical resize 90 | endif
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
""" #region BB – Build-in plugins
|
||||||
|
" https://github.com/rbtnn/vim-gloaded/blob/master/plugin/gloaded.vim
|
||||||
|
let g:loaded_vimballPlugin = 1 " :h pi_vimball … for plugin creators
|
||||||
|
let g:vifm_replace_netrw= 1 | let g:loaded_netrw= 1 | let g:loaded_netrwPlugin= 1 " this line needs to be commented to let vim dowmload spelllangs!!! … see http://jdem.cz/fgyw25
|
||||||
|
""" #endregion BB
|
||||||
|
"" #endregion B
|
||||||
|
"" #region H – Helpers + remap 'sS' (primary ss, see `vim-scommands`)
|
||||||
|
nmap sh :execute 'ALTredir :map s \<bar> map '.mapleader.' \<bar> map § \<bar> map ů \<bar> map ; \<bar> map U \<bar> map ž'<cr>:g/^$/d<cr>:g/^v s/m$<cr>úgg
|
||||||
|
call scommands#map('s', 'CL', "n,v")
|
||||||
|
command! -nargs=? CLscratch 10split | enew | setlocal buftype=nofile bufhidden=wipe noswapfile nobuflisted | if <q-args>!='' | execute 'normal "'.<q-args>.'p' | endif | nnoremap <buffer> ;q :q<cr>
|
||||||
|
|
||||||
|
call scommands#map('S', 'SET', "n,v")
|
||||||
|
call scommands#map('a', 'ALT', "n,V")
|
||||||
|
cabbrev ALTR ALTredrawSyntax
|
||||||
|
set grepprg=LC_ALL=C\ grep\ -nrsH
|
||||||
|
command! -nargs=0
|
||||||
|
\ ALTredrawSyntax edit | exec 'normal `"' | exec 'set ft='.&ft
|
||||||
|
command! -complete=command -bar -range -nargs=+
|
||||||
|
\ ALTredir call jaandrle_utils#redir(0, <q-args>, <range>, <line1>, <line2>)
|
||||||
|
command! -nargs=+ -complete=file_in_path -bar
|
||||||
|
\ ALTgrep cgetexpr jaandrle_utils#grep(<f-args>) | call setqflist([], 'a', {'title': ':' . g:jaandrle_utils#last_command})
|
||||||
|
command! -nargs=+ -complete=file_in_path -bar
|
||||||
|
\ ALTlgrep lgetexpr jaandrle_utils#grep(<f-args>) | call setloclist(0, [], 'a', {'title': ':' . g:jaandrle_utils#last_command})
|
||||||
|
command! -nargs=0
|
||||||
|
\ ALTargsBWQA execute 'argdo bw' | %argdelete
|
||||||
|
|
||||||
|
let g:quickfix_len= 0
|
||||||
|
function! QuickFixStatus() abort
|
||||||
|
hi! link User1 StatusLine
|
||||||
|
if !g:quickfix_len | return 'Ø' | endif
|
||||||
|
if g:quickfix_len>0 | return g:quickfix_len | endif
|
||||||
|
let type= &termguicolors ? 'gui' : 'cterm'
|
||||||
|
execute 'hi! User1 '.type.'bg='.synIDattr(synIDtrans(hlID('StatusLine')), 'bg').
|
||||||
|
\' '.type.'fg='.synIDattr(synIDtrans(hlID('WarningMsg')), 'fg')
|
||||||
|
return -g:quickfix_len
|
||||||
|
endfunction
|
||||||
|
function! s:QuickFixCmdPost() abort
|
||||||
|
let q_len= len(getqflist())
|
||||||
|
let g:quickfix_len= q_len ? -q_len : len(getloclist(0))
|
||||||
|
endfunction
|
||||||
|
augroup quickfix
|
||||||
|
autocmd!
|
||||||
|
autocmd QuickFixCmdPost * call <sid>QuickFixCmdPost()
|
||||||
|
autocmd filetype qf
|
||||||
|
\ if filter(getwininfo(), {i,v -> v.winnr == winnr()})[0].loclist
|
||||||
|
\| nnoremap <buffer> ;q :lclose<cr>
|
||||||
|
\| nnoremap <buffer> ;w :lgetbuffer<CR>:lclose<CR>:lopen<CR>
|
||||||
|
\| nnoremap <buffer> ;s :ldo s///gc \| update<c-left><c-left><c-left><right><right>
|
||||||
|
\| else
|
||||||
|
\| nnoremap <buffer> ;q :cclose<cr>
|
||||||
|
\| nnoremap <buffer> ;w :cgetbuffer<CR>:cclose<CR>:copen<CR>
|
||||||
|
\| nnoremap <buffer> ;s :cdo s///gc \| update<c-left><c-left><c-left><right><right>
|
||||||
|
\| endif
|
||||||
|
augroup END
|
||||||
|
"" #endregion H
|
||||||
|
"" #region SLH – Status Line + Command Line + History (general) + Sessions + File Update, …
|
||||||
|
set showcmd cmdheight=2 showmode
|
||||||
|
set wildmenu wildoptions=pum
|
||||||
|
"" wildmode=list:longest,list:full " Tab autocomplete in command mode
|
||||||
|
|
||||||
|
cabbrev wbw w<bar>bw
|
||||||
|
|
||||||
|
set sessionoptions-=options
|
||||||
|
command! -nargs=1
|
||||||
|
\ CLSESSIONcreate :call mini_sessions#create(<f-args>)
|
||||||
|
command! -nargs=0
|
||||||
|
\ CLSESSIONconfig :call mini_sessions#sessionConfig()
|
||||||
|
command! -nargs=1 -complete=customlist,mini_sessions#complete
|
||||||
|
\ CLSESSIONload :call mini_sessions#load(<f-args>)
|
||||||
|
command! -nargs=0
|
||||||
|
\ Scd :call mini_sessions#recoverPwd()
|
||||||
|
|
||||||
|
if !has("gui_running")
|
||||||
|
execute 'hi! User2 ctermbg='.synIDattr(synIDtrans(hlID('StatusLine')), 'bg').' ctermfg=grey' | endif
|
||||||
|
set laststatus=2 " Show status line on startup
|
||||||
|
set statusline+=··%1*≡·%{QuickFixStatus()}%*··%2*»·%{user_tips#current()}%*··%=
|
||||||
|
set statusline+=%<%f%R\%M··▶·%{&fileformat}·%{&fileencoding?&fileencoding:&encoding}·%{&filetype}··∷·%{mini_sessions#name('–')}··
|
||||||
|
|
||||||
|
set history=500 " How many lines of (cmd) history has to remember
|
||||||
|
set nobackup nowritebackup noswapfile " …there is issue #649 (for servers) and I’m using git/system backups
|
||||||
|
try
|
||||||
|
set undodir=~/.vim/undodir undofile | catch | endtry
|
||||||
|
command! CLundotree UndotreeToggle | echo 'Use also :undolist :earlier :later' | UndotreeFocus
|
||||||
|
command! SETundoClear let old_undolevels=&undolevels | set undolevels=-1 | exe "normal a \<BS>\<Esc>" | let &undolevels=old_undolevels | unlet old_undolevels | write
|
||||||
|
"" #endregion SLH
|
||||||
|
"" #region LLW – Left Column + Line + Wrap + Scrolling
|
||||||
|
if has("nvim-0.5.0") || has("patch-8.1.1564") " Recently vim can merge signcolumn and number column into one
|
||||||
|
set signcolumn=number | else | set signcolumn=yes | endif " show always to prevent shifting when diagnosticappears
|
||||||
|
set cursorline cursorcolumn " Always show current position
|
||||||
|
set number foldcolumn=2 " enable line numbers and add a bit extra margin to the left
|
||||||
|
set colorcolumn=+1 " …marker visual
|
||||||
|
command -nargs=? SETtextwidth if <q-args> | let &textwidth=<q-args> | let &colorcolumn='<args>,120,240' | else | let &textwidth=250 | let &colorcolumn='120,240' | endif
|
||||||
|
SETtextwidth " wraping lines and show two lines
|
||||||
|
set nowrap " Don't wrap long lines by default
|
||||||
|
set breakindent breakindentopt=shift:2 showbreak=↳
|
||||||
|
|
||||||
|
set scrolloff=5 sidescrolloff=10 " offset for lines/columns when scrolling
|
||||||
|
"" #endregion LLW
|
||||||
|
"" #region CN – Clipboard + Navigation throught Buffers + Windows + … (CtrlP)
|
||||||
|
set pastetoggle=<F2> | nnoremap <F2> :set invpaste paste?<CR>
|
||||||
|
nnoremap <silent> <leader>" :call jaandrle_utils#copyRegister()<cr>
|
||||||
|
|
||||||
|
nmap <expr> š buffer_number("#")==-1 ? "sš<cr>" : "\<c-^>"
|
||||||
|
nmap s3 :buffers<cr>:b<space>
|
||||||
|
nmap sš :CtrlPBuffer<cr>
|
||||||
|
nmap č sš
|
||||||
|
let g:ctrlp_map = 'ě'
|
||||||
|
command! -nargs=? SETctrlp execute 'nnoremap '.g:ctrlp_map.' :CtrlP <args><cr>'
|
||||||
|
call scommands#map(g:ctrlp_map, 'CtrlP', "n")
|
||||||
|
let g:ctrlp_clear_cache_on_exit = 0
|
||||||
|
let g:ctrlp_prompt_mappings= {
|
||||||
|
\ 'ToggleType(1)': ['<c-up>'],
|
||||||
|
\ 'ToggleType(-1)': ['<c-down>'],
|
||||||
|
\ 'PrtCurStart()': ['<c-b>'],
|
||||||
|
\}
|
||||||
|
"" #endregion CN
|
||||||
|
"" #region FOS – File(s) + Openning + Saving
|
||||||
|
set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime
|
||||||
|
set modeline
|
||||||
|
command! -nargs=?
|
||||||
|
\ CLmodeline :call jaandrle_utils#AppendModeline(<q-args>=='basic' ? 0 : 1)
|
||||||
|
|
||||||
|
set path+=src/**,app/**,build/** " File matching for `:find`
|
||||||
|
for ignore in [ '.git', '.npm', 'node_modules' ]
|
||||||
|
exec ':set wildignore+=**'.ignore.'**'
|
||||||
|
exec ':set wildignore+=**/'.ignore.'/**'
|
||||||
|
endfor
|
||||||
|
set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png,*.ico
|
||||||
|
set wildignore+=*.pdf,*.psd
|
||||||
|
|
||||||
|
nmap <leader>e :Vifm<cr>
|
||||||
|
call scommands#map('e', 'Vifm', "n")
|
||||||
|
nnoremap gx :silent exec "!xdg-open '".shellescape(substitute(expand('<cfile>'), '?', '\\?', ''), 1)."'" \| redraw!<cr>
|
||||||
|
vnoremap gx :silent exec "!xdg-open '".shellescape(substitute(mini_enhancement#selectedText(), '?', '\\?', ''), 1)."'" \| redraw!<cr>
|
||||||
|
"" #endregion FOS
|
||||||
|
"" #region EN – Editor navigation + search
|
||||||
|
set hlsearch incsearch " highlight search, start when typing
|
||||||
|
if maparg('<C-L>', 'n') ==# ''
|
||||||
|
nnoremap <silent> <c-l> :nohlsearch<c-r>=has('diff')?'<bar>diffupdate':''<cr><cr><c-l> | endif
|
||||||
|
|
||||||
|
call scommands#map('n', 'NAV', "n")
|
||||||
|
command! NAVjumps call jaandrle_utils#gotoJumpChange('jump')
|
||||||
|
command! NAVchanges call jaandrle_utils#gotoJumpChange('change')
|
||||||
|
command! NAVmarks call jaandrle_utils#gotoMarks()
|
||||||
|
|
||||||
|
let g:markbar_persist_mark_names = v:false
|
||||||
|
nmap <Leader>m <Plug>ToggleMarkbar
|
||||||
|
"" #endregion EN
|
||||||
|
"" #region EA – Editing adjustment + Syntax + White chars + Folds
|
||||||
|
" use <c-v>§ for §
|
||||||
|
inoremap § <esc>
|
||||||
|
set nrformats-=octal
|
||||||
|
command! -nargs=1 SETTOGGLEnrformats if &nf=~<q-args> | set nf-=<args> | else | set nf+=<args> | endif
|
||||||
|
|
||||||
|
let g:htl_css_templates=1
|
||||||
|
let g:markdown_fenced_languages= [ 'javascript', 'js=javascript', 'json', 'html', 'php', 'bash', 'vim', 'vimscript=javascript', 'sass' ]
|
||||||
|
augroup conceal
|
||||||
|
autocmd!
|
||||||
|
au FileType markdown
|
||||||
|
\ syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained conceal
|
||||||
|
\| syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\%(\_[^][]\|\[\_[^][]*\]\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart concealends
|
||||||
|
au FileType markdown,json
|
||||||
|
\ setlocal conceallevel=2
|
||||||
|
augroup END
|
||||||
|
augroup convenient
|
||||||
|
autocmd FileType markdown,text setlocal keywordprg=dict
|
||||||
|
autocmd FileType git,gitcommit setlocal foldmethod=syntax foldlevel=1
|
||||||
|
augroup END
|
||||||
|
" PARENTHESES plugin junegunn/rainbow_parentheses.vim
|
||||||
|
let g:rainbow#pairs= [['(', ')'], ['[', ']'], [ '{', '}' ]]
|
||||||
|
let g:rainbow#blacklist = [203,9]
|
||||||
|
autocmd VimEnter * try
|
||||||
|
\| call rainbow_parentheses#toggle() | catch | endtry
|
||||||
|
command! SETTOGGLErainbowParentheses call rainbow_parentheses#toggle()
|
||||||
|
" HIGHLIGHT&YANK plugins machakann/vim-highlightedyank & cwordhi.vim
|
||||||
|
let g:highlightedyank_highlight_duration= 250
|
||||||
|
let g:cwordhi#autoload= 1
|
||||||
|
set showmatch " Quick highlight oppening bracket/… for currently writted
|
||||||
|
set timeoutlen=1000 ttimeoutlen=0 " Remove timeout when hitting escape TAB
|
||||||
|
if v:version > 703 || v:version == 703 && has("patch541")
|
||||||
|
set formatoptions+=j | endif " Delete comment character when joining commented lines
|
||||||
|
set smarttab
|
||||||
|
command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args>
|
||||||
|
SETtab 4
|
||||||
|
set backspace=indent,eol,start " Allow cursor keys in insert mode: http://vi.stackexchange.com/a/2163
|
||||||
|
set shiftround autoindent " round diff shifts to the base of n*shiftwidth, https://stackoverflow.com/a/18415867
|
||||||
|
filetype plugin indent on
|
||||||
|
" SYNTAX&COLORS
|
||||||
|
if ($TERM =~ '256' && has("termguicolors"))
|
||||||
|
set termguicolors | endif
|
||||||
|
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
|
||||||
|
syntax on | endif
|
||||||
|
set list listchars=tab:»·,trail:·,extends:#,nbsp:~,space:· " Highlight spec. chars / Display extra whitespace
|
||||||
|
augroup syntax_sync_min_lines
|
||||||
|
autocmd!
|
||||||
|
autocmd Syntax * syn sync minlines=2000
|
||||||
|
augroup END
|
||||||
|
let g:vim_vue_plugin_config = { 'foldexpr': 1, 'attribute': 1, 'keyword': 1 }
|
||||||
|
" SPELL
|
||||||
|
if !has("gui_running")
|
||||||
|
hi clear SpellBad | hi SpellBad cterm=underline,italic | endif
|
||||||
|
command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif
|
||||||
|
" EDIT HEPERS
|
||||||
nnoremap <leader>o o<space><bs><esc>
|
nnoremap <leader>o o<space><bs><esc>
|
||||||
nnoremap <leader>O O<space><bs><esc>
|
nnoremap <leader>O O<space><bs><esc>
|
||||||
nnoremap <s-k> a<cr><esc>
|
nnoremap <s-k> a<cr><esc>
|
||||||
for l in [ 'y', 'p', 'P', 'd' ] | for m in [ 'n', 'v' ]
|
for l in [ 'y', 'p', 'P', 'd' ] | for m in [ 'n', 'v' ]
|
||||||
execute m.'noremap <leader>'.l.' "+'.l | endfor | endfor
|
execute m.'noremap <leader>'.l.' "+'.l | endfor | endfor
|
||||||
|
" FOLDS
|
||||||
cabbrev <expr> %PWD% execute('pwd')
|
|
||||||
cabbrev <expr> %CD% fnameescape(expand('%:p:h'))
|
|
||||||
cabbrev <expr> %CW% expand('<cword>')
|
|
||||||
|
|
||||||
set cursorline cursorcolumn
|
|
||||||
set number "foldcolumn=2
|
|
||||||
set colorcolumn=+1
|
|
||||||
set breakindent breakindentopt=shift:2 showbreak=↳
|
|
||||||
set scrolloff=5 sidescrolloff=10 " offset for lines/columns when scrolling
|
|
||||||
set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime
|
|
||||||
set modeline
|
|
||||||
set hlsearch incsearch
|
|
||||||
set smarttab
|
|
||||||
command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args>
|
|
||||||
SETtab 4
|
|
||||||
set showmatch
|
|
||||||
set backspace=indent,eol,start
|
|
||||||
set shiftround autoindent
|
|
||||||
filetype plugin indent on
|
|
||||||
colorscheme codedark
|
|
||||||
if ($TERM =~ '256' && has("termguicolors"))
|
|
||||||
set termguicolors | endif
|
|
||||||
if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
|
|
||||||
syntax on | endif
|
|
||||||
set list listchars=tab:»·,trail:·,extends:#,nbsp:~,space:·
|
|
||||||
augroup syntax_sync_min_lines
|
|
||||||
autocmd!
|
|
||||||
autocmd Syntax * syn sync minlines=200
|
|
||||||
augroup END
|
|
||||||
command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif
|
|
||||||
|
|
||||||
command! -nargs=0 SETFOLDregions set foldmethod=marker
|
command! -nargs=0 SETFOLDregions set foldmethod=marker
|
||||||
command! -nargs=1 SETFOLDindent set foldmethod=indent | let &foldlevel=<q-args> | let &foldnestmax=<q-args>+1
|
command! -nargs=1 SETFOLDindent set foldmethod=indent | let &foldlevel=<q-args> | let &foldnestmax=<q-args>+1
|
||||||
command! -nargs=* SETFOLDindents set foldmethod=indent | let &foldlevel=split(<q-args>, ' ')[0] | let &foldnestmax=split(<q-args>, ' ')[1]
|
command! -nargs=* SETFOLDindents set foldmethod=indent | let &foldlevel=split(<q-args>, ' ')[0] | let &foldnestmax=split(<q-args>, ' ')[1]
|
||||||
set foldmarker=#region,#endregion
|
set foldmarker=#region,#endregion
|
||||||
|
" SAVE VIEW
|
||||||
set viewoptions=cursor,folds
|
set viewoptions=cursor,folds
|
||||||
augroup remember__view
|
augroup remember__view
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd BufWinLeave *.* if &buflisted | mkview | endif
|
autocmd BufWinLeave *.* if &buflisted | mkview | endif
|
||||||
autocmd BufWinEnter *.* silent! loadview
|
autocmd BufWinEnter *.* silent! loadview
|
||||||
augroup END
|
augroup END
|
||||||
|
"" #endregion EA
|
||||||
|
"" #region GIT
|
||||||
|
call scommands#map('g', 'GIT', "n,V")
|
||||||
|
function s:gitCompletion(_, CmdLine, __)
|
||||||
|
let l:cmd= a:CmdLine->split()
|
||||||
|
let l:cmd_start= l:cmd[0]
|
||||||
|
\ ->substitute('GIThub', 'gh', '')
|
||||||
|
\ ->substitute('GIT', 'git ', '')->trim()->split(' ')
|
||||||
|
return bash#complete((l:cmd_start+l:cmd[1:])->join())
|
||||||
|
endfunction
|
||||||
|
function s:gitCmd(candidate)
|
||||||
|
execute '!clear && echo ":: git '.a:candidate->escape('"').' ::" && git '.a:candidate
|
||||||
|
endfunction
|
||||||
|
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||||
|
\ GIT call <sid>gitCmd(<q-args>)
|
||||||
|
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||||
|
\ GITstatus !git status-- <args>
|
||||||
|
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||||
|
\ GITcommit !git commit-- <args>
|
||||||
|
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||||
|
\ GITpush !git push <args>
|
||||||
|
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||||
|
\ GITdiff if <q-args>=='' | execute '!clear && git diff %:p' | else | silent! execute '!git diff <args>' | endif
|
||||||
|
command! -nargs=*
|
||||||
|
\ GITrestore execute '!clear && git status '.(<q-args>=='.' ? '%:p':'<args>').' -bs & git restore '.(<q-args>=='' ? '%:p':'<args>').' --patch'
|
||||||
|
command! -nargs=* -complete=customlist,<sid>gitCompletion
|
||||||
|
\ GIThub execute '!clear && echo ":: gh '.<q-args>->escape('"').' ::" && gh '.<q-args>
|
||||||
|
command! -nargs=?
|
||||||
|
\ GIThubIssue execute '!clear && gh issue view '.expand('<cword>').' '.<q-args>
|
||||||
|
let g:git_messenger_no_default_mappings= v:true
|
||||||
|
let g:git_messenger_date_format= '%Y-%m-%d (%c)'
|
||||||
|
let g:git_messenger_always_into_popup= v:true
|
||||||
|
augroup git_messenger_help
|
||||||
|
autocmd!
|
||||||
|
autocmd FileType gitmessengerpopup setlocal keywordprg=git\ show
|
||||||
|
augroup END
|
||||||
|
command! -nargs=0
|
||||||
|
\ GITblameThis GitMessenger
|
||||||
|
"" #endregion GIT
|
||||||
|
"" #region COC – COC and so on, compilers, code/commands completions
|
||||||
|
let g:coc_global_extensions= ['coc-css', 'coc-docthis', 'coc-emmet', 'coc-emoji', 'coc-eslint', 'coc-gitmoji', 'coc-html', 'coc-json', 'coc-marketplace', 'coc-phpls', 'coc-sh', 'coc-snippets', 'coc-styled-components', 'coc-svg', 'coc-tabnine', 'coc-tsserver']
|
||||||
|
" https://github.com/antonk52/cssmodules-language-server
|
||||||
|
call coc#config('languageserver.cssmodules', {
|
||||||
|
\ "command": "cssmodules-language-server",
|
||||||
|
\ "initializationOptions": {"camelCase": "dashes"},
|
||||||
|
\ "filetypes": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
|
||||||
|
\ "requireRootPattern": 0,
|
||||||
|
\ "settings": {}
|
||||||
|
\ })
|
||||||
|
autocmd FileType scss setl iskeyword+=@-@
|
||||||
|
command -nargs=? ALTmake if &filetype=='javascript' | compiler jshint | elseif &filetype=='php' | compiler php | endif
|
||||||
|
\| if <q-args>!='' | silent make <args> | else | silent make '%' | endif | checktime | silent redraw! " …prev line, hotfix (filetype detection does’t works)
|
||||||
|
function <sid>ToggleALTmakeOnWrite()
|
||||||
|
if exists('#ALTmake_auto#BufWritePost')
|
||||||
|
augroup ALTmake_auto
|
||||||
|
autocmd!
|
||||||
|
augroup END
|
||||||
|
else
|
||||||
|
augroup ALTmake_auto
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWritePost *.{php,js,mjs} execute 'ALTmake' | call <sid>QuickFixCmdPost()
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
command! ALTmakeOnWrite call <sid>ToggleALTmakeOnWrite()
|
||||||
|
function! CustomKeyWord(word)
|
||||||
|
if(a:word=="gulp_place")
|
||||||
|
highlight link gulp_place ErrorMsg
|
||||||
|
syntax match gulp_place "gulp_place"
|
||||||
|
augroup gulp_place
|
||||||
|
autocmd!
|
||||||
|
autocmd BufEnter *.{js,html} syntax match gulp_place "gulp_place"
|
||||||
|
augroup END
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
inoremap <silent><expr> <tab> pumvisible() ? "\<c-n>" : <sid>check_back_space() ? "\<tab>" : "\<c-n>"
|
set completeopt=menuone,preview,noinsert,noselect
|
||||||
inoremap <silent><expr> <s-tab> pumvisible() ? "\<c-p>" : "\<c-h>"
|
inoremap <silent><expr> <F1> coc#pum#visible() ? coc#pum#confirm() : coc#refresh()
|
||||||
|
set wildcharm=<f1>
|
||||||
|
inoremap <silent><expr> <tab> coc#pum#visible() ? coc#pum#next(1) : <sid>check_back_space() ? "\<tab>" : coc#refresh()
|
||||||
|
inoremap <silent><expr> <s-tab> coc#pum#visible() ? coc#pum#prev(1) : "\<c-h>"
|
||||||
function! s:check_back_space() abort
|
function! s:check_back_space() abort
|
||||||
let col = col('.') - 1
|
let col = col('.') - 1
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
return !col || getline('.')[col - 1] =~# '\s'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
nmap <silent> gd <Plug>(coc-definition)
|
||||||
|
nmap <leader>/ :CocSearch
|
||||||
|
nmap <leader>? <leader>/
|
||||||
|
command! -bang NAVdiagnostic call CocActionAsync('diagnostic'.( "<bang>" == '!' ? 'Previous' : 'Next' ))
|
||||||
|
command! NAVdefinition call CocActionAsync('jumpDefinition')
|
||||||
|
command! NAVtype call CocActionAsync('jumpTypeDefinition')
|
||||||
|
command! NAVimplementation call CocActionAsync('jumpImplementation')
|
||||||
|
command! NAVreferences call CocActionAsync('jumpReferences')
|
||||||
|
" navigate diagnostics, use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
|
||||||
|
nnoremap <silent> gh :call <sid>show_documentation(expand("<cword>"))<cr>
|
||||||
|
vnoremap <silent> gh :<c-u>call <sid>show_documentation(mini_enhancement#selectedText())<cr>
|
||||||
|
nnoremap <leader>gf :let g:ctrlp_default_input=expand("<cword>") <bar> execute 'CtrlP' <bar> unlet g:ctrlp_default_input <cr>
|
||||||
|
vnoremap <leader>gf :<c-u>let g:ctrlp_default_input=mini_enhancement#selectedText() <bar> execute 'CtrlP' <bar> unlet g:ctrlp_default_input <cr>
|
||||||
|
""" #region COCP – Coc popups scroll (Remap <C-f> and <C-b> for scroll float windows/popups.)
|
||||||
|
if has('nvim-0.4.0') || has('patch-8.2.0750')
|
||||||
|
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||||
|
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||||
|
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
||||||
|
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
||||||
|
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
||||||
|
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
||||||
|
endif
|
||||||
|
""" #endregion COCP
|
||||||
|
command! -nargs=? SETFOLDcoc :call CocAction('fold', <f-args>)
|
||||||
|
|
||||||
|
call scommands#map('C', 'Coc', "n,v")
|
||||||
|
nmap sc :CocList lists<cr>
|
||||||
|
nmap Sc :CocListResume<cr>
|
||||||
|
nnoremap <c-g> :CLwhereami<cr>
|
||||||
|
command! CLwhereami :call popup_notification([
|
||||||
|
\expand('%:t').( coc#status() != "" ? '/'.CocAction("getCurrentFunctionSymbol")."\t…\t".coc#status() : '' ),
|
||||||
|
\"– – –",
|
||||||
|
\"Line:\t".line('.').' / '.line('$'),
|
||||||
|
\"Column:\t".col('.').' / '.col('$'),
|
||||||
|
\"Path:\t".expand('%:p:h')
|
||||||
|
\], #{ line: &lines-3, pos: 'botleft', moved: 'any', close: 'button', time: 3000 })
|
||||||
|
command! CLhelpCocPlug call feedkeys(':<c-u>help <Plug>(coc ', 'tn')
|
||||||
|
command! CLhelpCocAction call feedkeys(':<c-u>help CocAction('' ', 'tn')
|
||||||
|
command! CLrename call CocActionAsync('rename')
|
||||||
|
command! CLrenameFile exec 'CocCommand workspace.renameCurrentFile'
|
||||||
|
command! -nargs=? -bang
|
||||||
|
\ CLreplace call feedkeys(':<c-u>'.(<q-args>==''?'.':<q-args>).'s/'.("<bang>"=='!'?mini_enhancement#selectedText():expand('<cword>')).'//cgODODOD', 'tn')
|
||||||
|
command! CLrepeatLastChange call feedkeys('/\V<C-r>"<CR>cgn<C-a><Esc>', 'tn')
|
||||||
|
command! CLjsdoc exec 'CocCommand docthis.documentThis'
|
||||||
|
command! CLjshintGlobal normal yiwmm?\/\* global<cr><c-l>f*hi, p`m
|
||||||
|
command! CLcodeactionCursor call CocActionAsync('codeAction', 'cursor')
|
||||||
|
command! CLfixCodeQuick call CocActionAsync('doQuickfix')
|
||||||
|
|
||||||
|
function! AIcodeFn(range, ...) range abort
|
||||||
|
let l:instruction = 'Hi, can you help me with ' . &filetype . 'code? Thanks in advance. I would like to: '
|
||||||
|
if a:0
|
||||||
|
let l:instruction = l:instruction . a:1
|
||||||
|
endif
|
||||||
|
if a:range
|
||||||
|
'<,'>call vim_ai#AIRun(a:range, {}, l:instruction)
|
||||||
|
else
|
||||||
|
call vim_ai#AIRun(a:range, {}, l:instruction)
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
command! -range -nargs=? AIcode <line1>,<line2>call AIcodeFn(<range>, <f-args>)
|
||||||
|
vnoremap <f1> :AI<f1>
|
||||||
|
nnoremap <f1> :AI<f1>
|
||||||
|
command! -nargs=?
|
||||||
|
\ CLcheat call cheat_copilot#open(<q-args>==''?&filetype:<q-args>)
|
||||||
|
|
||||||
|
function! s:show_documentation(word)
|
||||||
|
if (index(['vim', 'help'], &filetype) >= 0)
|
||||||
|
" inspired by https://github.com/tpope/vim-scriptease/blob/74bd5bf46a63b982b100466f9fd47d2d0597fcdd/autoload/scriptease.vim#L737
|
||||||
|
let syn= get(reverse(map(synstack(line('.'), col('.')), 'synIDattr(v:val,"name")')), 0, '')
|
||||||
|
if syn ==# 'vimFuncName' | return <sid>show_documentation_vim('h '.a:word.'()')
|
||||||
|
elseif syn ==# 'vimOption' | return <sid>show_documentation_vim("h '".a:word."'")
|
||||||
|
elseif syn ==# 'vimUserAttrbKey' | return <sid>show_documentation_vim('h :command-'.a:word)
|
||||||
|
endif
|
||||||
|
|
||||||
|
let col= col('.') - 1
|
||||||
|
while col && getline('.')[col] =~# '\k' | let col-= 1 | endwhile
|
||||||
|
let pre= col == 0 ? '' : getline('.')[0 : col]
|
||||||
|
let col= col('.') - 1
|
||||||
|
while col && getline('.')[col] =~# '\k' | let col+= 1 | endwhile
|
||||||
|
if pre =~# '^\s*:\=$' | return <sid>show_documentation_vim('h :'.a:word)
|
||||||
|
elseif pre =~# '\<v:$' | return <sid>show_documentation_vim('h v:'.a:word)
|
||||||
|
endif
|
||||||
|
|
||||||
|
let post= getline('.')[col : -0]
|
||||||
|
if a:word ==# 'v' && post =~# ':\w\+' | return <sid>show_documentation_vim('h v'.matchstr(post, ':\w\+')) | endif
|
||||||
|
return <sid>show_documentation_vim('h '.a:word)
|
||||||
|
endif
|
||||||
|
if (!CocAction('hasProvider', 'hover'))
|
||||||
|
return feedkeys('K', 'in')
|
||||||
|
endif
|
||||||
|
if &filetype=='html' && coc#source#custom_elements#hover(a:word)!=0
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
return CocActionAsync('doHover')
|
||||||
|
endfunction
|
||||||
|
function! s:show_documentation_vim(cmd)
|
||||||
|
call execute(a:cmd) | call histadd("cmd", a:cmd)
|
||||||
|
endfunction
|
||||||
|
"" #endregion COC
|
||||||
|
let g:codeium_disable_bindings = 1
|
||||||
|
imap <script><silent><nowait><expr> <f3><f3> codeium#Accept()
|
||||||
|
imap <f3>n <Cmd>call codeium#CycleCompletions(1)<CR>
|
||||||
|
imap <f3>N <Cmd>call codeium#CycleCompletions(-1)<CR>
|
||||||
|
imap <f3>d <Cmd>call codeium#Clear()<CR>
|
||||||
|
imap <f3>! <Cmd>call codeium#Complete()<CR>
|
||||||
|
|
||||||
|
" vim: set textwidth=250 :
|
||||||
|
" vim>60: set foldmethod=marker foldmarker=#region,#endregion :
|
||||||
|
27
Obrázky/Bing Image Of The Day/index_template.html
Normal file
27
Obrázky/Bing Image Of The Day/index_template.html
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>Bing Image Of The Day</title>
|
||||||
|
<style>
|
||||||
|
body{ display: flex; flex-flow: row nowrap;
|
||||||
|
width: 100vw; height: 100vh; overflow: hidden; margin: 0;
|
||||||
|
}
|
||||||
|
div{ position: relative; flex: 1; }
|
||||||
|
img{ height: 100%; width: 100%; object-fit: cover; }
|
||||||
|
.detail{ position: absolute; bottom: 0; left: 0; padding: .5rem 1rem;
|
||||||
|
max-width: 35ch;
|
||||||
|
text-align: center; background: rgba(0, 0, 0, .35); color: whitesmoke; }
|
||||||
|
.prev .detail{ left: initial; right: 0; }
|
||||||
|
@media screen and (max-aspect-ratio: 16/9){
|
||||||
|
.prev{display: none;}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="now"> <img src="now.jpg"> <div class="detail">::now::</div> </div>
|
||||||
|
<div class="prev"> <img src="prev.jpg"> <div class="detail">::prev::</div> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
109
README.md
109
README.md
@ -3,7 +3,7 @@
|
|||||||
· [*mirrored* on GitHub](https://github.com/jaandrle/dotfiles)
|
· [*mirrored* on GitHub](https://github.com/jaandrle/dotfiles)
|
||||||
· [older version on GitHub](https://github.com/jaandrle/dotfiles-old)
|
· [older version on GitHub](https://github.com/jaandrle/dotfiles-old)
|
||||||
|
|
||||||
# dotfiles **(Termux variant)**
|
# dotfiles **(WIP)**
|
||||||
This repository contains my dotfiles. They are managed by using `git clone --bare`,
|
This repository contains my dotfiles. They are managed by using `git clone --bare`,
|
||||||
see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/dotfiles).
|
see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/dotfiles).
|
||||||
|
|
||||||
@ -12,11 +12,20 @@ see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git
|
|||||||
- [Files overview](#files-overview)
|
- [Files overview](#files-overview)
|
||||||
|
|
||||||
## Files overview
|
## Files overview
|
||||||
|
- [Bash](./.bash/README.md)
|
||||||
|
- [Vim](./.vim/README.md)
|
||||||
|
- [Vifm](./.config/vifm/README.md)
|
||||||
|
- [SSH](./.ssh/README.md)
|
||||||
|
- [Newsboat](./.newsboat/README.md)
|
||||||
|
- Git: [.gitconfig](./.gitconfig), [gh](./.config/gh/config.yml)
|
||||||
|
- [KDE Neon](#kde-neon)
|
||||||
|
- [Mozilla Firefox](./.mozilla/firefox/README.md)
|
||||||
|
- [Bin – scripts and executables](./bin/README.md)
|
||||||
|
|
||||||
## On a new machine
|
## On a new machine
|
||||||
1. install git
|
1. install git
|
||||||
1. `cd ~`
|
1. `cd ~`
|
||||||
1. `gd_branch=main-termux` (see also branches `main`)
|
1. `gd_branch=main` (see also variants `main-termux`)
|
||||||
1. `git clone --bare --branch $gd_branch --depth 1 --recurse-submodules --shallow-submodules git@jaandrle.cz:jaandrle/dotfiles.git ~/.dotfiles`
|
1. `git clone --bare --branch $gd_branch --depth 1 --recurse-submodules --shallow-submodules git@jaandrle.cz:jaandrle/dotfiles.git ~/.dotfiles`
|
||||||
1. `alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'`
|
1. `alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'`
|
||||||
1. `gitdotfiles config --local status.showUntrackedFiles no`
|
1. `gitdotfiles config --local status.showUntrackedFiles no`
|
||||||
@ -25,10 +34,94 @@ see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git
|
|||||||
1. `gitdotfiles checkout -f`
|
1. `gitdotfiles checkout -f`
|
||||||
1. `gitdotfiles submodule update --init --recursive`
|
1. `gitdotfiles submodule update --init --recursive`
|
||||||
|
|
||||||
## Log
|
## PC log (cs)
|
||||||
- for some reason I have to add branch to `.git/config` manually.
|
Sekce obsahuje log změn v Tuxedo laptopu s KDE Neon.
|
||||||
```ini
|
|
||||||
[branch "main-termux"]
|
- [Aloxaf/silicon: Create beautiful image of your source code.](https://github.com/Aloxaf/silicon) {DONE <2024-03-07> *utils* agenda}$
|
||||||
remote = origin
|
|
||||||
merge = refs/heads/main-termux
|
### KDE Neon 6.0 (22.04)
|
||||||
|
{NEXT <2024-03-20> *tilling* *hud* *html-wallpaper* *virtual-desktop* *klipper* agenda}$
|
||||||
|
|
||||||
|
- mostly OK
|
||||||
|
- [ ] Kup is missing in Settings (only restore files option is available): *investigation → report a bug*
|
||||||
|
- [ ] !!! Event calendar widget (in progress [ALikesToCode/plasma-applet-eventcalendar at plasma-6](https://github.com/ALikesToCode/plasma-applet-eventcalendar/tree/plasma-6))
|
||||||
|
- [ ] tilling → try to use native, try to use [zeroxoneafour/polonium: Tiling window manager for KWin 5.27](https://github.com/zeroxoneafour/polonium) (when there will be a new release)
|
||||||
|
- [ ] WIP: hud ([uszie/plasma-hud), in KDE Plasma.](https://github.com/uszie/plasma-hud)/[Zren/plasma-hud](https://github.com/Zren/plasma-hud) still works on X11), but maybe Ctrl+Alt+i and so on is OK?
|
||||||
|
- testing to use command palletes in programs and sets shortcuts to `ctr+;` (✓ kde programs, ✓ gimp, ✓ libreoffice, ✓ inkscape, ✓ vscode)
|
||||||
|
- [ ] [Fingerprint reader support : r/tuxedocomputers](https://www.reddit.com/r/tuxedocomputers/comments/176fscp/fingerprint_reader_support/), still receiving “no match”
|
||||||
|
- [ ] [Clipboard support in Wayland · Issue #5157 · vim/vim](https://github.com/vim/vim/issues/5157#issuecomment-776008833)
|
||||||
|
- [ ] partially FIXED by update: Wayland go to sleep even the external monitor is connected (HDMI)
|
||||||
|
- *→ seems to be this issue [438716 – Lid close leads to suspend even when external monitor is attached](https://bugs.kde.org/show_bug.cgi?id=438716)*
|
||||||
|
- needs to keyboard/mouse imput to intterupt the go sleep process
|
||||||
|
- [x] [PSA: How to re-enable LibreOffice integration in Plasma 6 : r/kde](https://www.reddit.com/r/kde/comments/1b9k755/psa_how_to_reenable_libreoffice_integration_in/)
|
||||||
|
- [x] FIXED by update: ~desktop exceptionally freeze for less than a second: *investigation → report a bug*~
|
||||||
|
- [x] FIXED by update: ~logout/poweroff dialog not showing and not working: *investigation → report a bug* … see below~
|
||||||
|
- [x] krunner not launching → created `/usr/share/dbus-1/services/org.kde.krunner.service` (see below)
|
||||||
|
- [x] meta+tab (last virtual desktop) → workaround [./bin/kde6-workarounds.mjs](./bin/kde6-workarounds.mjs)
|
||||||
|
- [x] klipper (edit last item) → workaround [./bin/kde6-workarounds.mjs](./bin/kde6-workarounds.mjs)
|
||||||
|
- [x] Active Window Control replaced with Window Title widget and its better
|
||||||
|
- [x] FIXED by widget update: ~html wallpaper → workaround just concat images (see [./bin/§wallpaper\_BIOTD](./bin/§wallpaper_BIOTD))~
|
||||||
|
- [x] ctrl+tab using [k0kubun/xremap: Key remapper for X11 and Wayland](https://github.com/k0kubun/xremap) and `sudo crontab -e`+`@reboot` and [./.config/xremap.yml](./.config/xremap.yml)
|
||||||
|
|
||||||
|
- [ ] [`npx npmkill` — Why are node_modules SO BIG 🤦♂️ #javascript #software #technology #code #webdev - YouTube](https://www.youtube.com/shorts/VgPNtow7fNM?app=desktop&si=Kl7CH3vCoyH7tqFU)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 1
|
||||||
|
Cannot find 'org.kde.KSMServerInterface.logout' in object /KSMServer at org.kde.ksmserver
|
||||||
```
|
```
|
||||||
|
[KDE Bugtracking System Main Page](https://bugs.kde.org/)
|
||||||
|
```ini
|
||||||
|
[D-BUS Service]
|
||||||
|
Name=org.kde.krunner
|
||||||
|
Exec=/usr/bin/krunner
|
||||||
|
```
|
||||||
|
|
||||||
|
### KDE neon 5.26 (22.04)
|
||||||
|
{DONE <2022-10-25 17:21> *mail* *hud* *klíčenka* agenda}$
|
||||||
|
|
||||||
|
- Ve směs OK
|
||||||
|
- HUD ztratil stylování, použito breeze pro celé rofi (vygóglováno)
|
||||||
|
- mailnag začal zapomínat heslo po příštím spuštění → nakonec: [Bubblemail - Downloads](http://bubblemail.free.fr/downloads)
|
||||||
|
- z článku [The 10 Best Mail Notification Tools for Linux System](https://www.ubuntupit.com/best-mail-notification-tools-for-linux/)
|
||||||
|
- zkoušen KMail – šlo by s ním žít, jen když už klient tak aby mi vyhovoval/fungoval
|
||||||
|
- thunderbird: nemá možnost notifikací na pozadí (celý program musí běžet)
|
||||||
|
- himalaya: má `watch`, ale detekuje jen nové (ne nově označené jako nepřečtené – asi OK), ale hl. se nedařilo zprovoznit přihlašování (kombinace s bitwarden)
|
||||||
|
- `canonical-livepatch` nefunguje
|
||||||
|
- Gnome klíčenka se neodemyká → přeinstalováno → uvidíme
|
||||||
|
|
||||||
|
### Konsolidace klíčenek správce hesel
|
||||||
|
{DONE <2022-07-14 20:40> *cli* *hesla* agenda}$
|
||||||
|
|
||||||
|
- [x] cli pro KWalletManager
|
||||||
|
1. `keyring get imap centrumCZ`
|
||||||
|
1. `kwalletcli -f imap -e centrumCZ`
|
||||||
|
- [x] Firefox
|
||||||
|
- `nss-password -d ~/.mozilla/firefox/ezjfn8hg.default-release NAME`
|
||||||
|
- [infinity0/mozilla-gnome-keyring: A firefox extension that enables Gnome Keyring integration](https://github.com/infinity0/mozilla-gnome-keyring)
|
||||||
|
- [x] [Bitwarden CLI](https://bitwarden.com/help/cli/)
|
||||||
|
|
||||||
|
### Varování v python scriptech
|
||||||
|
{DONE <2022-07-09 20:37> *python* *workaround* agenda}$
|
||||||
|
|
||||||
|
Postupováno podle návodu [Rename the `~/.local/lib/python3.8/site-packages/pkg_resources` folder to `pkg_resources_back`](https://askubuntu.com/a/1398073).
|
||||||
|
|
||||||
|
### KDE Neon
|
||||||
|
- [KDE Plasma5 Fixes](https://zren.github.io/kde/)
|
||||||
|
- Using ‘HTML Wallpaper’ (wip)
|
||||||
|
- [Bing Image Of The Day](./Obrázky/Bing Image Of The Day/index_template.html)
|
||||||
|
- [GNOME Keyring in KDE Plasma - JWillikers](https://www.jwillikers.com/gnome-keyring-in-kde-plasma)
|
||||||
|
- `sudo apt install $(check-language-support)`, see [Popup Language support is incomplete](http://unix.stackexchange.com/questions/421066/ddg#421079)
|
||||||
|
- [KDE Neon does not have an hibernation option? : kde](https://www.reddit.com/r/kde/comments/6n5m49/kde_neon_does_not_have_an_hibernation_option/dk7hd8v/)
|
||||||
|
- [kde plasma 5 - How to use miracast as an extended desktop on Linux? - Super User](https://superuser.com/questions/1160078/how-to-use-miracast-as-an-extended-desktop-on-linux)
|
||||||
|
- [Best tiling extensions for kwin? : kde](https://www.reddit.com/r/kde/comments/qgsv2u/best_tiling_extensions_for_kwin/?sort=new), https://gitlab.com/faho/kwin-tiling/
|
||||||
|
- [KDE Plasma5 Fixes](https://zren.github.io/kde/)
|
||||||
|
- [Setup git on the CLI to use 2FA with GitHub](https://gist.github.com/ateucher/4634038875263d10fb4817e5ad3d332f)
|
||||||
|
- [G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Main](https://gmic.eu/)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>`{… cmd}$` explanation</summary>
|
||||||
|
|
||||||
|
This is [mdexpr](https://github.com/jaandrle/mdexpr) syntax. This document uses:
|
||||||
|
- {use [agenda](https://github.com/jaandrle/mdexpr-agenda) with states=TODO,NEXT|DONE mdexpr}$
|
||||||
|
|
||||||
|
</details>
|
||||||
|
76
bin/bw-ftp.js
Executable file
76
bin/bw-ftp.js
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
$.is_fatal= true;
|
||||||
|
const css= echo.css`
|
||||||
|
.code, .url{ color: lightblue; }
|
||||||
|
.code::before, .code::after{ content: "\`"; }
|
||||||
|
`;
|
||||||
|
testRequirements();
|
||||||
|
$.api()
|
||||||
|
.version("2023-03-21")
|
||||||
|
.describe([
|
||||||
|
"Small utility to find out FTP url with credentials using Bitwarden CLI.",
|
||||||
|
echo.format("The idea is to use saved login %cusername%c, %cpassword%c and %curl%c.",
|
||||||
|
css.code, css.unset, css.code, css.unset, css.code, css.unset)
|
||||||
|
])
|
||||||
|
.command("get [name]", "Get url with credentials.")
|
||||||
|
.alias("item")
|
||||||
|
.option("--copy", echo.format("Uses %cxclip -selection clipboard%c.", css.code))
|
||||||
|
.action(get)
|
||||||
|
.command("list", echo.format("List all %cftp-*%c.", css.code))
|
||||||
|
.option("--json", "Print output in JSON format.")
|
||||||
|
.action(list)
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
async function get(name, { copy: is_copy= false }){
|
||||||
|
if(!name)
|
||||||
|
name= await $.read({
|
||||||
|
"-p": "Name",
|
||||||
|
completions: list({ is_internal: true }).map(o=> o.name)
|
||||||
|
});
|
||||||
|
const item= s.$().run`bw get item ${name}`;
|
||||||
|
if(!item.trim())
|
||||||
|
$.error(`No record found for ${name}.`);
|
||||||
|
|
||||||
|
const { uris, username, password }= item
|
||||||
|
.xargs(JSON.parse)
|
||||||
|
.login;
|
||||||
|
const url= urlFromUris(uris).replace('://', `://${username}:${password}@`);
|
||||||
|
if(!is_copy){
|
||||||
|
echo(url);
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
s.echo(url).run`xclip -selection clipboard 2>1 > /dev/null`;
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
function list({ json= false, is_internal= false }){
|
||||||
|
const list= s.$().run`bw list items --search="ftp"`
|
||||||
|
.xargs(JSON.parse)
|
||||||
|
.filter(o=> o.name.startsWith("ftp-"))
|
||||||
|
.map(({ name, note, login: { uris } })=> ({ name, url: urlFromUris(uris), note }))
|
||||||
|
.filter(o=> o.url);
|
||||||
|
if(is_internal)
|
||||||
|
return list;
|
||||||
|
if(json)
|
||||||
|
$.exit(0, echo(JSON.stringify(list)));
|
||||||
|
|
||||||
|
list.forEach(pipe(
|
||||||
|
line=> echo.format(line),
|
||||||
|
t=> t.replaceAll("\n", " ").slice(2, -2),
|
||||||
|
echo
|
||||||
|
));
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function urlFromUris(uris){ return uris.find(o=> o.uri)?.uri; }
|
||||||
|
|
||||||
|
function testRequirements(){
|
||||||
|
if(!s.which("bw"))
|
||||||
|
$.error([
|
||||||
|
echo.format("The %cbw%c utility has not been found.", css.code),
|
||||||
|
echo.format("Please install it using %cnpm i @bitwarden/cli --location=global%c.", css.code),
|
||||||
|
echo.format("Respectively, follow the instructions at %chttps://github.com/bitwarden/clients/tree/master/apps/cli", css.url)
|
||||||
|
].join("\n"));
|
||||||
|
}
|
||||||
|
// vim: set tabstop=4 shiftwidth=4 textwidth=250 noexpandtab :
|
||||||
|
// vim>60: set foldmethod=indent foldlevel=1 foldnestmax=2:
|
82
bin/chrome-autoinspect.mjs
Executable file
82
bin/chrome-autoinspect.mjs
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
const css= echo.css`
|
||||||
|
.url{ color: lightblue; }
|
||||||
|
.code { font-style: italic; }
|
||||||
|
.code::before, .code::after { content: "\`"; }
|
||||||
|
`;
|
||||||
|
$.api()
|
||||||
|
.version("2023-03-23")
|
||||||
|
.describe([
|
||||||
|
echo.format("This is small utility around %cchrome-remote-interface%c¹ to auto open inspect for cordova apps.", css.code),
|
||||||
|
echo.format("[1] %chttps://github.com/cyrus-and/chrome-remote-interface", css.url)
|
||||||
|
])
|
||||||
|
.command("open", "This open browser and after 30secs enable auto inspect openning.", true)
|
||||||
|
.option("--browser, -B", "Browser exec. Use one of supported browsers, such as chrome, chromium, opera, edge, …", "chromium")
|
||||||
|
.option("--port, -P", "Chanhe debugging port", 9222)
|
||||||
|
.action(async function({ browser, port }){
|
||||||
|
s.runA`${browser} --remote-debugging-port=${port}`;
|
||||||
|
const { setTimeout }= await import("node:timers/promises");
|
||||||
|
await setTimeout(30_000);
|
||||||
|
await register();
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("enable", "Enable auto inspect openning for already running browser.")
|
||||||
|
.action(async function(){
|
||||||
|
await register();
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
async function register(){
|
||||||
|
const { default: CDP } = await import($.xdg.globalPackage`chrome-remote-interface`);
|
||||||
|
let client;
|
||||||
|
try{
|
||||||
|
await CDP.New();
|
||||||
|
client= await CDP();
|
||||||
|
const { Network, Page, Runtime }= client;
|
||||||
|
await Network.enable();
|
||||||
|
await Page.enable();
|
||||||
|
await Page.navigate({url: 'chrome://inspect/#devices'});
|
||||||
|
await Page.loadEventFired();
|
||||||
|
await Runtime.evaluate({ expression: `const debugCordova= (${autoRunCordovaAppInspect.toString()})();` });
|
||||||
|
} finally {
|
||||||
|
if(!client) return;
|
||||||
|
return await client.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function autoRunCordovaAppInspect(){
|
||||||
|
const { filter, map }= Array.prototype;
|
||||||
|
let /* filters */
|
||||||
|
device_filter, app_filter, last_state;
|
||||||
|
const /* get elements */
|
||||||
|
devicesElements= ()=> filter.call(document.getElementsByClassName("device"), el=> el.id!=="device:localhost"),
|
||||||
|
getApp= el=> el.getElementsByClassName("browser-name")[0].textContent,
|
||||||
|
appTest= browser_candidate_el=> getApp(browser_candidate_el).indexOf(app_filter)!==-1,
|
||||||
|
browsersElements= wrapper_el=> wrapper_el.getElementsByClassName("browser"),
|
||||||
|
actionElementFilter= wrapper_el=> filter.call(wrapper_el.getElementsByClassName("action"), el=> el.textContent==="inspect")[0];
|
||||||
|
|
||||||
|
function run(){
|
||||||
|
const device= !device_filter ? (d=> d&&d[d.length-1])(devicesElements()) : filter.call(devicesElements(), el=> el.id===device_filter)[0];
|
||||||
|
if(!device) return false;
|
||||||
|
const app= !app_filter ? (a=> a&&a[a.length-1])(browsersElements(device)) : filter.call(browsersElements(document), appTest)[0];
|
||||||
|
if(!app) return false;
|
||||||
|
const { id }= app;
|
||||||
|
if(last_state===id) return false;
|
||||||
|
last_state= id;
|
||||||
|
const action= actionElementFilter(app);
|
||||||
|
if(!action) return false;
|
||||||
|
action.click();
|
||||||
|
}
|
||||||
|
const observer= new MutationObserver(run);
|
||||||
|
observer.observe(document.getElementById("devices-list"), { childList: true, subtree: true })
|
||||||
|
return {
|
||||||
|
/* Set string to filter, typically app id or ip */
|
||||||
|
setApp: _app_filter=> app_filter= _app_filter,
|
||||||
|
/* Apply only for given device (see debugCordova.devices). */
|
||||||
|
setDevice: _device_filter=> device_filter= _device_filter,
|
||||||
|
get apps(){ return map.call(browsersElements(document), getApp); },
|
||||||
|
get devices(){ return map.call(devicesElements(), el=> el.id); }
|
||||||
|
};
|
||||||
|
}
|
418
bin/github-releases.js
Executable file
418
bin/github-releases.js
Executable file
@ -0,0 +1,418 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
|
||||||
|
const /* dependencies */
|
||||||
|
[ fs, readline, https, { spawn } ]= [ "fs", "readline", "https", "child_process" ].map(p=> require(p));
|
||||||
|
const /* helper for coloring console | main program params */
|
||||||
|
colors= { e: "\x1b[38;2;252;76;76m", s: "\x1b[38;2;76;252;125m", w: "\x1b[33m", R: "\x1b[0m", y: "\x1b[38;2;200;190;90m", g: "\x1b[38;2;150;150;150m" },
|
||||||
|
info= {
|
||||||
|
name: __filename.slice(__filename.lastIndexOf("/")+1, __filename.lastIndexOf(".")),
|
||||||
|
version: "1.2.1",
|
||||||
|
description: "Helper for working with “packages” stored in GitHub releases.",
|
||||||
|
config: `${__filename.slice(0, __filename.lastIndexOf("."))}.json`,
|
||||||
|
folder: __filename.slice(0, __filename.lastIndexOf("/")+1),
|
||||||
|
commands: [
|
||||||
|
{
|
||||||
|
cmd: "help", args: [ "--help", "-h" ],
|
||||||
|
desc: "Shows this text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cmd: "config", args: [ "--config" ],
|
||||||
|
desc: "Opens config file in terminal editor (defaults to vim)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cmd: "check", args: [ "--check", "-c" ],
|
||||||
|
desc: "Shows/checks updates for registered packages"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cmd: "update", args: [ "--update", "-u" ], param: "group",
|
||||||
|
desc: "Installs lates versions of registered packages"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cmd: "uninstall", args: [ "--uninstall", "-u" ], param: "package",
|
||||||
|
desc: "Deletes downloaded file and moves package to the 'skip' group"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cmd: "register", args: [ "--register", "--change" ], param: "package",
|
||||||
|
desc: "Add package infos to internal list to be able installing/updating"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cmd: "remove", args: [ "--remove" ], param: "package",
|
||||||
|
desc: ([
|
||||||
|
"Uninstall package if needed (see `-u`)",
|
||||||
|
"And remove it from internal list (see `--config`)"
|
||||||
|
]).join(". ")
|
||||||
|
}
|
||||||
|
],
|
||||||
|
params: {
|
||||||
|
group: ([
|
||||||
|
"You can label each package to update only choosen one",
|
||||||
|
"There are sereved options:",
|
||||||
|
" - '' (empty): these packages are includes in all groups",
|
||||||
|
" - 'all': in case of `--update` process all packages (except skipped)",
|
||||||
|
" - 'skip': these packages are “uninstalled”",
|
||||||
|
" No updates will be downloaded",
|
||||||
|
"Group can be setted via '--register'"
|
||||||
|
]).join(". "),
|
||||||
|
package: ([
|
||||||
|
"Represents package identificator, it is in fact GitHub repository path",
|
||||||
|
"So, it schould be in the form `username/repository`"
|
||||||
|
]).join(". ")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
printMain();
|
||||||
|
const current= getCurrent(process.argv.slice(2));
|
||||||
|
(function main_(){
|
||||||
|
const { cmd }= current.command;
|
||||||
|
if(!cmd) return Promise.resolve("No arguments (use `--help` for showing all oprions).");
|
||||||
|
switch(cmd){
|
||||||
|
case "help": return Promise.resolve(printHelp());
|
||||||
|
case "config": return vim_(info.config);
|
||||||
|
}
|
||||||
|
const config= getConfig();
|
||||||
|
switch(cmd){
|
||||||
|
case "register": return register_(config);
|
||||||
|
}
|
||||||
|
if(!config.packages) return Promise.resolve("No packages yet!");
|
||||||
|
switch(cmd){
|
||||||
|
case "check": return check_(config);
|
||||||
|
case "update": return update_(config);
|
||||||
|
case "uninstall":
|
||||||
|
case "remove":
|
||||||
|
return uninstall_(cmd, config);
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
.then(function(message){
|
||||||
|
if(message)
|
||||||
|
log(1, `Operation '${current.command.cmd}' successfull: @s_${message}`);
|
||||||
|
process.exit();
|
||||||
|
})
|
||||||
|
.catch(error);
|
||||||
|
|
||||||
|
async function uninstall_(cmd, config){
|
||||||
|
const progress= [
|
||||||
|
[ "Deleting file", "not needed" ],
|
||||||
|
[ "Check out from updates", "yes" ],
|
||||||
|
[ "Remove from packages list", "no" ]
|
||||||
|
];
|
||||||
|
const pkg_name= current.param;
|
||||||
|
const pkg_index= config.packages.findIndex(({ repository })=> repository===pkg_name);
|
||||||
|
if(pkg_index===-1) return "nothing to do (maybe typo)";
|
||||||
|
|
||||||
|
const pkg= config.packages[pkg_index];
|
||||||
|
const { downloads }= pkg;
|
||||||
|
if(downloads&&fs.existsSync(downloads)){
|
||||||
|
try{ fs.unlinkSync(downloads); progress[0][1]= "done"; }
|
||||||
|
catch (_){ progress[0][1]= colors.e+"error, try manually – "+downloads; }
|
||||||
|
}
|
||||||
|
Reflect.deleteProperty(pkg, "last_update");
|
||||||
|
Reflect.set(pkg, "group", "skip");
|
||||||
|
progress[1][1]= "done";
|
||||||
|
if(cmd!=="remove") return gotoEnd();
|
||||||
|
|
||||||
|
const y= await promt_(`Are you realy want to remove package ${pkg.repository} (yes/no)`, "no");
|
||||||
|
if(y!=="yes") return gotoEnd();
|
||||||
|
|
||||||
|
config.packages.splice(pkg_index, 1);
|
||||||
|
progress[2][1]= "done";
|
||||||
|
return gotoEnd();
|
||||||
|
|
||||||
|
function gotoEnd(){
|
||||||
|
const o= progress.reduce((o, [ k, v ])=> Reflect.set(o, k, v)&&o, {});
|
||||||
|
logSection(" ", pkg_name, o);
|
||||||
|
save(config);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function vim_(file){ return new Promise(function(resolve, reject){
|
||||||
|
const cmd= spawn((process.env.EDITOR||"vim")+(process.platform==="win32"?".bat":""), [ file ], { stdio: 'inherit' });
|
||||||
|
cmd.on('exit', e=> e ? reject("Editor error, try manually: "+file) : resolve("OK"));
|
||||||
|
});}
|
||||||
|
async function update_(config){
|
||||||
|
const filter= current.param;
|
||||||
|
const is_all= filter==="all";
|
||||||
|
let updates= [];
|
||||||
|
log(1, "Collecting packages to download:");
|
||||||
|
for(const [
|
||||||
|
i, { repository, last_update, group, file_name, exec, downloaded, tag_name_regex }
|
||||||
|
] of Object.entries(config.packages)){
|
||||||
|
if(group==="skip") continue;
|
||||||
|
if(!is_all&&group&&filter!==group) continue;
|
||||||
|
|
||||||
|
const { tag_name, published_at, html_url, assets_url }= await githubRelease_(repository, tag_name_regex);
|
||||||
|
const status= packageStatus(last_update, published_at);
|
||||||
|
if(status!==3) continue;
|
||||||
|
|
||||||
|
const assets= await downloadJSON_(repository, assets_url);
|
||||||
|
if(!assets.length){
|
||||||
|
console.log(" Nothing to download: Visit "+html_url);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const options= assets.map(({ name, download_count, size })=>
|
||||||
|
`${name} | size: ${Math.round(size/1048576)}MB | downloads: ${download_count}`);
|
||||||
|
logSection(" ", " "+repository, {
|
||||||
|
"Version": tag_name,
|
||||||
|
"Url": html_url
|
||||||
|
});
|
||||||
|
logSection(" ", " Available assets:", options);
|
||||||
|
const choose= await promt_(" Choose (empty for skip)", "");
|
||||||
|
if(choose==="") continue;
|
||||||
|
|
||||||
|
const { browser_download_url: url, name: remote_name, size }= assets[choose];
|
||||||
|
updates.push({
|
||||||
|
index: i,
|
||||||
|
file_name, exec, downloaded,
|
||||||
|
repository, version: tag_name, last_update: published_at,
|
||||||
|
url, remote_name, size
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(!updates.length){
|
||||||
|
log(2, "No packages in "+`group ${filter} needs updates.`);
|
||||||
|
return Promise.resolve("nothing to update");
|
||||||
|
}
|
||||||
|
log(1, "Downloading:");
|
||||||
|
return applySequentially_(updates, async function(todo){
|
||||||
|
const to= todo.file_name ? info.folder+todo.file_name : (
|
||||||
|
todo.downloaded ? todo.downloaded : info.folder+todo.remote_name);
|
||||||
|
const d= await downloadFile_(to, todo);
|
||||||
|
return Object.assign(todo, d);
|
||||||
|
})
|
||||||
|
.then(function(dones){
|
||||||
|
log(1, "Finalizing:");
|
||||||
|
let e= 0;
|
||||||
|
for(const nth of dones){
|
||||||
|
if(!nth.success){
|
||||||
|
e+= 1;
|
||||||
|
log(2, `${nth.repository}: @e_${nth.message}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Object.assign(config.packages[nth.index], registerDownloads(nth));
|
||||||
|
}
|
||||||
|
save(config);
|
||||||
|
const { length }= dones;
|
||||||
|
const msg= `updated ${length-e} of ${length} packages.`;
|
||||||
|
return e ? Promise.reject(msg) : Promise.resolve(msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function registerDownloads({ repository, last_update, message: downloads, exec, version }){
|
||||||
|
let msg= colors.s+"OK";
|
||||||
|
if(exec==="yes"){
|
||||||
|
try{ fs.chmodSync(downloads, 0o755); }
|
||||||
|
catch(e){ msg= colors.e+"try manual `chmod+x` for '"+downloads+"'"; }
|
||||||
|
}
|
||||||
|
log(2, `${repository}: ${msg}`);
|
||||||
|
return { last_update, downloads, version };
|
||||||
|
}
|
||||||
|
async function check_({ packages }){
|
||||||
|
let updates= 0, skipped= 0;
|
||||||
|
for(const { repository, name, version, last_update, group, tag_name_regex } of packages){
|
||||||
|
const { tag_name, published_at }= await githubRelease_(repository, tag_name_regex);
|
||||||
|
const status= packageStatus(last_update, published_at);
|
||||||
|
updates+= status===3;
|
||||||
|
const skip= group==="skip";
|
||||||
|
skipped+= skip;
|
||||||
|
log(2, `@g_${repository} [${group}]: `+( !version ? "not installed" : packageStatusText(status, skip) ));
|
||||||
|
}
|
||||||
|
const u= updates-skipped;
|
||||||
|
const s= skipped ? ` (inc. skipped: ${updates})` : "";
|
||||||
|
return (!u ? "" : colors.w)+u+" update(s) available"+s;
|
||||||
|
}
|
||||||
|
async function register_(config){
|
||||||
|
const { param: repository }= current;
|
||||||
|
if(!Reflect.has(config, "packages")) Reflect.set(config, "packages", []);
|
||||||
|
const packages= Reflect.get(config, "packages");
|
||||||
|
let local_id= packages.findIndex(p=> p.repository===repository);
|
||||||
|
if(local_id===-1)
|
||||||
|
local_id= packages.push({ repository })-1;
|
||||||
|
const local= config.packages[local_id];
|
||||||
|
const remote= await githubRepo_(repository) || {};
|
||||||
|
|
||||||
|
log(1, "Registering: "+repository);
|
||||||
|
const spaces= " ";
|
||||||
|
local.name= await promt_(spaces+"Name", local.name || remote.name || "");
|
||||||
|
if(!local.description) local.description= remote.description;
|
||||||
|
logLines(2, [
|
||||||
|
"@g_Group info:",
|
||||||
|
"- you can update specific packages by using their group name",
|
||||||
|
"- There some reserved options:",
|
||||||
|
" - '' (empty): will be included in all groups",
|
||||||
|
" - 'skip': will be always skipped"
|
||||||
|
]);
|
||||||
|
local.group= await promt_(spaces+"Group", local.group || "");
|
||||||
|
local.file_name= await promt_(spaces+"File Name", local.file_name || local.name.toLowerCase().replace(/\s/g, "-") || "");
|
||||||
|
local.exec= await promt_(spaces+"Make executable (yes/no)", local.exec || "no");
|
||||||
|
save(config);
|
||||||
|
return `${repository}: saved`;
|
||||||
|
}
|
||||||
|
function packageStatusText(status, skip){
|
||||||
|
const s= skip ? colors.R+"skipped – "+colors.g : "";
|
||||||
|
switch(status){
|
||||||
|
case 0: return s+"nothing to compare";
|
||||||
|
case 1: return s+"@s_up-to-date";
|
||||||
|
case 2: return s+"newer";
|
||||||
|
case 3: return s+"@e_outdated/not instaled";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function packageStatus(local, remote){
|
||||||
|
if(!remote) return 0;
|
||||||
|
if(!local) return 3;
|
||||||
|
if(remote===local) return 1;
|
||||||
|
return 2+(local<remote);
|
||||||
|
}
|
||||||
|
function logSection(spaces, name, data){
|
||||||
|
console.log(spaces+name);
|
||||||
|
for(const [ key, value ] of Object.entries(data))
|
||||||
|
console.log(spaces.repeat(2)+colors.g+key+": "+value.replace(/@(\w)_/g, (_, m)=> colors[m])+colors.R);
|
||||||
|
}
|
||||||
|
function githubRelease_(repository, tag_name_regex= ""){
|
||||||
|
return downloadJSON_(repository, "https://api.github.com/repos/"+repository+"/releases")
|
||||||
|
.then(data=> data.find(function find({ draft, published_at, tag_name }){
|
||||||
|
if(draft||!published_at) return false;
|
||||||
|
if(!tag_name_regex) return true;
|
||||||
|
return (new RegExp(tag_name_regex, 'g')).test(tag_name);
|
||||||
|
})||{});
|
||||||
|
}
|
||||||
|
function githubRepo_(repository){ return downloadJSON_(repository, "https://api.github.com/repos/"+repository); }
|
||||||
|
function promt_(q, def){
|
||||||
|
const rl= readline.createInterface({ input: process.stdin, output: process.stdout });
|
||||||
|
return new Promise(function(resolve){
|
||||||
|
rl.question(q+": ", a=> { rl.close(); resolve(a); });
|
||||||
|
rl.write(def);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function getConfig(){
|
||||||
|
let config;
|
||||||
|
try{ config= JSON.parse(fs.readFileSync(info.config)); }
|
||||||
|
catch(e){ config= {}; log(1, "@w_Missing or corrupted config file. Creates empty one."); }
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
function save(config){
|
||||||
|
return fs.writeFileSync(info.config, JSON.stringify(config, null, " "));
|
||||||
|
}
|
||||||
|
function getCurrent(args){
|
||||||
|
let command, command_arg, param;
|
||||||
|
const hasArg= arg=> ({ args })=> args.includes(arg);
|
||||||
|
for(let i=0, { length }= args, arg; i<length; i++){
|
||||||
|
arg= args[i];
|
||||||
|
if(!command){
|
||||||
|
command= info.commands.find(hasArg(arg));
|
||||||
|
command_arg= arg;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(!command.param||typeof param!=="undefined")
|
||||||
|
break;
|
||||||
|
param= arg;
|
||||||
|
}
|
||||||
|
if(!command)
|
||||||
|
command= { cmd: "" };
|
||||||
|
if(command.param&&typeof param==="undefined")
|
||||||
|
return error(`Missign arguments for '${command_arg}'.`);
|
||||||
|
return { command, param };
|
||||||
|
}
|
||||||
|
function downloadJSON_(repository, url){
|
||||||
|
return downloadText_(url)
|
||||||
|
.then(function(data){
|
||||||
|
try{
|
||||||
|
const response= JSON.parse(data);
|
||||||
|
if(Reflect.has(response, "message")) throw new Error(response.message);
|
||||||
|
return Promise.resolve(JSON.parse(data));
|
||||||
|
} catch(e){
|
||||||
|
log(1, "Received data: "+data);
|
||||||
|
log(1, "@e_"+e);
|
||||||
|
return Promise.reject(`JSON from '${repository}' failed.`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function downloadText_(url){
|
||||||
|
return get_(url)
|
||||||
|
.then(function(response){ return new Promise(function(resolve){
|
||||||
|
let data= "";
|
||||||
|
response.on("data", chunk=> data+= chunk);
|
||||||
|
response.on("end", ()=> resolve(data));
|
||||||
|
}); });
|
||||||
|
}
|
||||||
|
function downloadFile_(to, { url, repository, size }){
|
||||||
|
const file= fs.createWriteStream(to);
|
||||||
|
return get_(url)
|
||||||
|
.then(r=> get_(r.headers.location))
|
||||||
|
.then(function(response){ return new Promise(function(resolve){
|
||||||
|
let progress= 0, pc_prev= 0, avg= 0;
|
||||||
|
const start= new Date();
|
||||||
|
const i= setInterval(function(){
|
||||||
|
readline.clearLine(process.stdout);
|
||||||
|
const pc= (100*progress/size).toFixed(2);
|
||||||
|
if(!pc_prev) pc_prev= pc;
|
||||||
|
else {
|
||||||
|
avg= ((100-pc)/(60*(pc-pc_prev))).toFixed(2);
|
||||||
|
pc_prev= 0;
|
||||||
|
}
|
||||||
|
const running= ((new Date()-start)/60000).toFixed(2);
|
||||||
|
log(2, repository+": "+pc+"%"+` (end in ~${avg} mins, running ${running} mins)`);
|
||||||
|
readline.moveCursor(process.stdout, 0, -1);
|
||||||
|
}, 500);
|
||||||
|
response.on('data', function(chunk){
|
||||||
|
file.write(chunk);
|
||||||
|
progress+= chunk.length;
|
||||||
|
});
|
||||||
|
response.on('end', function(){
|
||||||
|
clearInterval(i);
|
||||||
|
readline.clearLine(process.stdout);
|
||||||
|
log(2, repository+": @s_OK");
|
||||||
|
file.close(()=> resolve({ success: 1, message: to })); /* close() is async, call cb after close completes. */
|
||||||
|
});
|
||||||
|
}); })
|
||||||
|
.catch(({ message })=> {
|
||||||
|
fs.unlink(to); // Delete the file async. (But we don't check the result)
|
||||||
|
return { success: 0, message };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function get_(url){ return new Promise(function(resolve, reject){
|
||||||
|
https.get(
|
||||||
|
url,
|
||||||
|
{ headers: { 'Cache-Control': 'no-cache', 'User-Agent': 'node' } },
|
||||||
|
resolve
|
||||||
|
).on("error", reject);
|
||||||
|
});}
|
||||||
|
function applySequentially_(input, pF){
|
||||||
|
const data= [];
|
||||||
|
let p= pF(input[0]);
|
||||||
|
const tie= nth=> result_mth=> ( data.push(result_mth), pF(input[nth]) );
|
||||||
|
for(let i= 1, { length }= input; i<length; i++)
|
||||||
|
p= p.then(tie(i));
|
||||||
|
return p.then(o=> (data.push(o), data));
|
||||||
|
}
|
||||||
|
function error(message){
|
||||||
|
const help_text= `@w_See help using '${info.commands[0].args[0]}'.`;
|
||||||
|
log(1, `@e_Error: ${message} ${help_text}`);
|
||||||
|
return process.exit(1);
|
||||||
|
}
|
||||||
|
function printMain(){
|
||||||
|
const { name, version, description }= info;
|
||||||
|
log(1, `@w_${name}@${version}`);
|
||||||
|
log(1, description);
|
||||||
|
const cmds= info.commands.map(({args})=> args[0].replace("--", "")).join(", ");
|
||||||
|
log(1, `@w_Usage: ${name} --[cmd] [param]`);
|
||||||
|
log(2, `…cmd: ${cmds}`);
|
||||||
|
log(2, "…param: Based on cmd\n");
|
||||||
|
}
|
||||||
|
function printHelp(){
|
||||||
|
log(1, "@s_Help:");
|
||||||
|
log(2, "Commands:");
|
||||||
|
info.commands.forEach(({ args, param, desc })=> {
|
||||||
|
const args_text= args.join("|");
|
||||||
|
param= param ? " "+param : "";
|
||||||
|
log(3, `@g_${args_text}@R_${param}`);
|
||||||
|
logLines(4, desc);
|
||||||
|
});
|
||||||
|
log(2, "Params:");
|
||||||
|
for(const [ param, desc ] of Object.entries(info.params)){
|
||||||
|
log(3, `@g_${param}`);
|
||||||
|
logLines(4, desc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function log(tab, text){
|
||||||
|
return console.log(" ".repeat(tab)+text.replace(/@(\w)_/g, (_, m)=> colors[m])+colors.R);
|
||||||
|
}
|
||||||
|
function logLines(tab, multiline_text){
|
||||||
|
if(!Array.isArray(multiline_text)) multiline_text= multiline_text.split(/(?<=\.) /g);
|
||||||
|
return log(tab, multiline_text.join("\n"+" ".repeat(tab)));
|
||||||
|
}
|
238
bin/github-releases.json
Normal file
238
bin/github-releases.json
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
{
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"repository": "shiftkey/desktop",
|
||||||
|
"name": "GitHub Desktop",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "github-desktop",
|
||||||
|
"exec": "yes",
|
||||||
|
"description": "Fork of GitHub Desktop to support various Linux distributions",
|
||||||
|
"last_update": "2024-03-31T17:49:36Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/github-desktop",
|
||||||
|
"version": "release-3.3.12-linux2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "jaandrle/jaaCSS-cli",
|
||||||
|
"name": "jaaCSS",
|
||||||
|
"description": "EXPERIMENT – Helper for managing functional CSS classes",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "jaaCSS.js",
|
||||||
|
"exec": "yes",
|
||||||
|
"downloads": "/home/jaandrle/bin/jaaCSS.js",
|
||||||
|
"version": "v1.3.2",
|
||||||
|
"last_update": "2022-09-02T13:33:16Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "th-ch/youtube-music",
|
||||||
|
"name": "youtube-music",
|
||||||
|
"description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "youtube-music",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-26T10:58:44Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/youtube-music",
|
||||||
|
"version": "v3.3.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "ArchGPT/insomnium",
|
||||||
|
"name": "insomnium",
|
||||||
|
"description": "Insomnium is a fast local API testing tool that is privacy-focused and 100% local. For testing GraphQL, REST, WebSockets and gRPC. This is a fork of Kong/insomnia",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "insomnium",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-11-13T10:03:28Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/insomnium",
|
||||||
|
"tag_name_regex": "core@.*",
|
||||||
|
"version": "core@0.2.3-a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "Kong/insomnia",
|
||||||
|
"name": "insomnia",
|
||||||
|
"description": "The open-source, cross-platform API client for GraphQL, REST, and gRPC.",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "insomnia",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-10-16T10:03:28Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/insomnia",
|
||||||
|
"tag_name_regex": "core@.*",
|
||||||
|
"version": "core@8.3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "rvpanoz/luna",
|
||||||
|
"name": "luna",
|
||||||
|
"description": "Manage npm dependencies through a modern UI.",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "luna",
|
||||||
|
"exec": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "angela-d/wifi-channel-watcher",
|
||||||
|
"name": "wifi-channel-watcher",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "wifi-channel-watcher",
|
||||||
|
"exec": "no",
|
||||||
|
"description": "Monitor channel usage of neighboring routers & get an alert if your active channel is not optimal.\tTroubleshoot wifi without lifting a finger!"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "vinceliuice/Tela-circle-icon-theme",
|
||||||
|
"name": "Tela-circle-icon-theme",
|
||||||
|
"description": "Tela-circle-icon-theme",
|
||||||
|
"group": "themes",
|
||||||
|
"file_name": "tela-circle-icon-theme.zip",
|
||||||
|
"last_update": "2021-07-19T14:12:05Z",
|
||||||
|
"exec": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "AppImage/AppImageKit",
|
||||||
|
"name": "AppImageKit",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "appimagekit",
|
||||||
|
"exec": "yes",
|
||||||
|
"description": "Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.freenode.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "dynobo/normcap",
|
||||||
|
"name": "NormCap",
|
||||||
|
"description": "Switched to flatpak version | OCR powered screen-capture tool to capture information instead of images",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "normcap",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-12-12T22:23:37Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/normcap",
|
||||||
|
"version": "v0.5.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "upscayl/upscayl",
|
||||||
|
"name": "upscayl",
|
||||||
|
"description": "🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "upscayl",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-02-29T16:31:09Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/upscayl",
|
||||||
|
"version": "v2.10.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "RasmusLindroth/tut",
|
||||||
|
"name": "tut",
|
||||||
|
"description": "TUI for Mastodon with vim inspired keys",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "tut",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-01-26T17:48:00Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/tut",
|
||||||
|
"version": "2.0.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "sunner/ChatALL",
|
||||||
|
"name": "ChatALL",
|
||||||
|
"description": " Concurrently chat with ChatGPT, Bing Chat, bard, Alpaca, Vincuna, Claude, ChatGLM, MOSS, iFlytek Spark, ERNIE and more, discover the best answers",
|
||||||
|
"group": "skip",
|
||||||
|
"file_name": "chatall",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-09-30T14:08:00Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/chatall",
|
||||||
|
"version": "v1.50.73"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "jaandrle/bs",
|
||||||
|
"name": "bs",
|
||||||
|
"description": "The simplest possible build system using executables",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "bs",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-28T13:16:41Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/bs",
|
||||||
|
"version": "v0.7.4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "h3poteto/fedistar",
|
||||||
|
"name": "Fedistar",
|
||||||
|
"description": "Multi-column Mastodon, Pleroma, and Friendica client for desktop",
|
||||||
|
"group": "nondev",
|
||||||
|
"file_name": "fedistar",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-29T15:39:36Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/fedistar",
|
||||||
|
"version": "v1.9.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "ollama/ollama",
|
||||||
|
"name": "ollama",
|
||||||
|
"description": "Get up and running with Llama 2 and other large language models locally",
|
||||||
|
"group": "ai",
|
||||||
|
"file_name": "ollama",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-10T02:24:04Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/ollama",
|
||||||
|
"version": "v0.1.29"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "neovim/neovim",
|
||||||
|
"name": "neovim",
|
||||||
|
"tag_name_regex": "v.*",
|
||||||
|
"description": "Vim-fork focused on extensibility and usability",
|
||||||
|
"group": "dev-test",
|
||||||
|
"file_name": "nvim",
|
||||||
|
"exec": "yes",
|
||||||
|
"downloads": "/home/jaandrle/bin/nvim",
|
||||||
|
"version": "v0.9.5",
|
||||||
|
"last_update": "2023-12-30T13:31:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "viarotel-org/escrcpy",
|
||||||
|
"name": "Escrcpy",
|
||||||
|
"description": "📱 Graphical Scrcpy to display and control Android, devices powered by Electron. | 使用图形化的 Scrcpy 显示和控制您的 Android 设备,由 Electron 驱动。",
|
||||||
|
"group": "dev",
|
||||||
|
"file_name": "escrcpy",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-29T03:30:14Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/escrcpy",
|
||||||
|
"version": "v1.17.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "drovp/drovp",
|
||||||
|
"name": "drovp",
|
||||||
|
"description": "Desktop app for encoding, converting, upscaling, and much more.",
|
||||||
|
"group": "dev-test",
|
||||||
|
"file_name": "drovp",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2023-12-06T11:30:02Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/drovp",
|
||||||
|
"version": "0.8.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "janhq/jan",
|
||||||
|
"name": "Jan",
|
||||||
|
"description": "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer",
|
||||||
|
"group": "ai",
|
||||||
|
"file_name": "jan",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-11T06:34:40Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/jan",
|
||||||
|
"version": "v0.4.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "Bin-Huang/chatbox",
|
||||||
|
"name": "Chatbox",
|
||||||
|
"description": "Chatbox is a desktop client for ChatGPT, Claude and other LLMs, available on Windows, Mac, Linux",
|
||||||
|
"group": "ai",
|
||||||
|
"file_name": "Chatbox",
|
||||||
|
"exec": "yes",
|
||||||
|
"last_update": "2024-03-15T15:58:59Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/Chatbox",
|
||||||
|
"version": "v1.3.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"repository": "Helium314/HeliBoard",
|
||||||
|
"name": "HeliBoard",
|
||||||
|
"description": "Customizable and privacy-conscious open-source keyboard",
|
||||||
|
"group": "android",
|
||||||
|
"file_name": "heliboard.apk",
|
||||||
|
"exec": "no",
|
||||||
|
"last_update": "2024-03-31T20:11:03Z",
|
||||||
|
"downloads": "/home/jaandrle/bin/heliboard.apk",
|
||||||
|
"version": "v1.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
231
bin/github-releases.mjs
Executable file
231
bin/github-releases.mjs
Executable file
@ -0,0 +1,231 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
// "\x1b[38;2;150;150;150m"
|
||||||
|
// https://talyian.github.io/ansicolors/
|
||||||
|
/**
|
||||||
|
* Represents a package record stored locally
|
||||||
|
*
|
||||||
|
* @typedef ConfigPackage
|
||||||
|
* @type {Object}
|
||||||
|
* @property {string} repository - Repo in the form `<owner>/<repo>`
|
||||||
|
* @property {string} name - Name/Identifier
|
||||||
|
* @property {string} description - A description of the repo/package
|
||||||
|
* @property {string} file_name - The name of the file as stored locally
|
||||||
|
* @property {"yes"|"no"} exec - Whether the file is executable
|
||||||
|
* @property {string} last_update - The date and time of the last update
|
||||||
|
* @property {string} downloads - The path to the file
|
||||||
|
* @property {string} version - The version of the file
|
||||||
|
* @property {string} tag_name_regex - Filter only matching releases
|
||||||
|
* */
|
||||||
|
/**
|
||||||
|
* @typedef Config
|
||||||
|
* @type {{ packages: ConfigPackage[] }}
|
||||||
|
* */
|
||||||
|
/**
|
||||||
|
* Represents a GitHub release information.
|
||||||
|
*
|
||||||
|
* @typedef {Object} GitHubRelease
|
||||||
|
* @property {number} id - The ID of the GitHub release.
|
||||||
|
* @property {string} url - The URL of the GitHub release.
|
||||||
|
* @property {string} assets_url - The URL of the assets associated with the GitHub release.
|
||||||
|
* @property {string} html_url - The HTML URL of the GitHub release.
|
||||||
|
* @property {string} tag_name - The tag name of the GitHub release.
|
||||||
|
* @property {string} published_at - The publication date of the GitHub release.
|
||||||
|
*/
|
||||||
|
import { join } from "node:path";
|
||||||
|
const path_config= $.xdg.config`github-releases`;
|
||||||
|
const path_config_json= join(path_config, "config.json");
|
||||||
|
const path_config_lock= join(path_config, "lock");
|
||||||
|
const path_temp= $.xdg.temp`github-releases.json`;
|
||||||
|
const url_api= "https://api.github.com/repos/";
|
||||||
|
const url_download= "https://glare.now.sh/"; // https://github.com/Contextualist/glare
|
||||||
|
const css= echo.css`
|
||||||
|
.pkg { color: lightcyan; }
|
||||||
|
.ok { color: lightgreen; }
|
||||||
|
.err { color: lightred; }
|
||||||
|
.skip { color: red; color: gray; }
|
||||||
|
.spin { display: list-item; list-style: --terminal-spin; }
|
||||||
|
`;
|
||||||
|
|
||||||
|
$.api()
|
||||||
|
.version("2.0.0")
|
||||||
|
.describe("Helper for working with “packages” stored in GitHub releases.")
|
||||||
|
.command("config [mode]", [ "Config (file), use `mode` with these options:",
|
||||||
|
"- `edit`: opens config file in terminal editor using `$EDITOR` (defaults to vim)",
|
||||||
|
"- `path`: prints path to config file"
|
||||||
|
])
|
||||||
|
.action(async function(mode= "path"){
|
||||||
|
switch(mode){
|
||||||
|
case "path": echo(path_config_json); break;
|
||||||
|
case "edit":
|
||||||
|
const editor= $.env.EDITOR || "vim";
|
||||||
|
await s.runA`${editor} ${path_config_json}`.pipe(process.stdout);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
echo(`Unknown mode: '${mode}'. See '--help' for details.`);
|
||||||
|
}
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("ls", [ "Lists registered packages",
|
||||||
|
"Repositories marked with `-` signifies that the package is in the 'skip' group.",
|
||||||
|
"These are registered by this script but not managed by it (updates, etc).",
|
||||||
|
"Repositories marked with `+` signify that updates of the package are checked."
|
||||||
|
])
|
||||||
|
.option("--group, -G", "Filter by group")
|
||||||
|
.option("--repository, -R", "Filter by repository")
|
||||||
|
.action(function(filter){
|
||||||
|
const config = readConfig();
|
||||||
|
for(const { repository, version, description, group } of grepPackages(config, filter))
|
||||||
|
if(group!=="skip")
|
||||||
|
echo(`+ %c${repository}%c@${version ? version : "—"}: %c${description}`, css.pkg, css.unset, css.skip);
|
||||||
|
else
|
||||||
|
echo(`- %c${repository}: ${description}`, css.skip);
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("check", "Shows/checks updates for registered packages")
|
||||||
|
.option("--group, -G", "Filter by group")
|
||||||
|
.option("--repository, -R", "Filter by repository")
|
||||||
|
.option("--cache", "Use cache [yes, no]", "yes")
|
||||||
|
.action(async function({ cache, ...filter }){
|
||||||
|
const config = readConfig();
|
||||||
|
const results= await check(grepPackages(config, filter), cache);
|
||||||
|
for(const { status, value } of results)
|
||||||
|
echoPkgStatus(status, value);
|
||||||
|
if(!results.length) echo("Nothing to do.");
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("update", "Updates registered packages")
|
||||||
|
.option("--group, -G", "Filter by group")
|
||||||
|
.option("--repository, -R", "Filter by repository")
|
||||||
|
.action(async function(filter){
|
||||||
|
if(s.test("-f", path_config_lock))
|
||||||
|
return $.error(`The lock file '${path_config_lock}' already exists! Check if some other instance is running.`);
|
||||||
|
s.touch(path_config_lock);
|
||||||
|
const config = readConfig();
|
||||||
|
const results= await check(grepPackages(config, filter));
|
||||||
|
const start= Date.now();
|
||||||
|
let done= 0;
|
||||||
|
let todo= [];
|
||||||
|
echo("Collecting packages to update…");
|
||||||
|
for(const { status, value } of results){
|
||||||
|
if(status!==3 || value.local.group==="skip") continue;
|
||||||
|
echo("%c"+value.local.repository, css.pkg);
|
||||||
|
todo.push(download(
|
||||||
|
value,
|
||||||
|
()=> done+= 1,
|
||||||
|
config.target
|
||||||
|
));
|
||||||
|
}
|
||||||
|
const { length }= todo;
|
||||||
|
if(!length){
|
||||||
|
echo("%cAll up-to-date!%c Nothing to do.", css.ok);
|
||||||
|
} else {
|
||||||
|
const id= setInterval(()=>
|
||||||
|
echo.use("-R", `%cUpdating packages (${done}/${length})`, css.spin), 500);
|
||||||
|
const updates= await Promise.allSettled(todo);
|
||||||
|
clearInterval(id);
|
||||||
|
echo("Updating packages completed:");
|
||||||
|
for (const { status, value, reason } of updates) {
|
||||||
|
if(status==="rejected"){
|
||||||
|
echo("%c✗ "+reason.local.repository+": %c"+reason.err, css.err);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const { local, remote }= value;
|
||||||
|
echo("%c✓ "+local.repository+"%c@"+remote.tag_name, css.ok, css.skip);
|
||||||
|
}
|
||||||
|
s.echo(JSON.stringify(config, null, "\t")).to(path_config_json);
|
||||||
|
}
|
||||||
|
s.rm(path_config_lock);
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
import { createWriteStream } from "node:fs";
|
||||||
|
async function download(value, onprogress, target){
|
||||||
|
const { repository, glare }= value.local;
|
||||||
|
const { tag_name }= value.remote;
|
||||||
|
if(!glare) return Promise.reject({ err: "Missing 'glare' in config.", ...value });
|
||||||
|
|
||||||
|
const response= await fetch(url_download+repository+`@${tag_name}/${glare}`);
|
||||||
|
const buffer= Buffer.from(await response.arrayBuffer());
|
||||||
|
const downloads= target+value.local.file_name;
|
||||||
|
const ws= createWriteStream(downloads, { flags: "w" });
|
||||||
|
ws.write(buffer);
|
||||||
|
Object.assign(value.local, {
|
||||||
|
last_update: value.remote.published_at,
|
||||||
|
version: value.remote.tag_name,
|
||||||
|
downloads
|
||||||
|
});
|
||||||
|
if(value.local.exec==="yes")
|
||||||
|
s.chmod("+x", downloads);
|
||||||
|
onprogress();
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function grepPackages({ packages }, { group, repository }){
|
||||||
|
const f= {};
|
||||||
|
let is_filter= false;
|
||||||
|
if(group){ is_filter= true; f.group= group; }
|
||||||
|
if(repository){ is_filter= true; f.repository= repository; }
|
||||||
|
if(!is_filter) return packages;
|
||||||
|
return packages.filter(r=> Object.keys(f).every(k=> r[k]===f[k]));
|
||||||
|
}
|
||||||
|
function echoPkgStatus(status, { local, remote }){
|
||||||
|
let status_css, status_text;
|
||||||
|
if(local.group==="skip"){
|
||||||
|
status_text= "skipped";
|
||||||
|
status_css= "skip";
|
||||||
|
} else {
|
||||||
|
status_text= status===3 ? "outdated" : "up-to-date";
|
||||||
|
status_css= status===3 ? "err" : "ok";
|
||||||
|
}
|
||||||
|
echo((status_text==="outdated" ? "+" : "-") + " %c"+local.repository + "%c: %c"+status_text+"%c (%c"+remote.tag_name+"%c)",
|
||||||
|
css.pkg, css.unset, css[status_css], css.unset, css.skip, css.unset);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param {Config.packages} packages
|
||||||
|
* @return {{ status: 0|1|2|3, value: { remote: GitHubRelease, local: ConfigPackage } }}
|
||||||
|
* */
|
||||||
|
async function check(packages, cache){
|
||||||
|
return (await pipe(
|
||||||
|
ps=> ps.map(p=> fetchRelease(p, cache).then(remote=> ({ local: p, remote }))),
|
||||||
|
ps=> Promise.allSettled(ps)
|
||||||
|
)(packages))
|
||||||
|
.map(({ status, ...v })=> status==="rejected" ?
|
||||||
|
{ status: -1, value: v } :
|
||||||
|
{ status: packageStatus(v.value.local, v.value.remote), value: v.value })
|
||||||
|
.filter(({ status, value })=> {
|
||||||
|
if(status!==-1) return true;
|
||||||
|
echo("%c"+value.reason, css.err);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** @type {(local: ConfigPackage, remote: GitHubRelease)=> 0|1|2|3} */
|
||||||
|
function packageStatus({ last_update: local }, { published_at: remote }){
|
||||||
|
if(!remote) return 0;
|
||||||
|
if(!local) return 3;
|
||||||
|
if(remote===local) return 1;
|
||||||
|
return 2+(local<remote);
|
||||||
|
}
|
||||||
|
/** @param {ConfigPackage} package */
|
||||||
|
async function fetchRelease({ repository, tag_name_regex }, cache){
|
||||||
|
const headers= { 'User-Agent': 'node' };
|
||||||
|
if(cache==="no") headers['Cache-Control'] = 'no-cache';
|
||||||
|
const url= url_api+repository+"/releases";
|
||||||
|
const releases= await fetch(url, { headers }).then(res=> res.json());
|
||||||
|
if(releases.message) return $.error(url+": "+releases.message);
|
||||||
|
|
||||||
|
return releases.find(function ({ draft, published_at, tag_name }){
|
||||||
|
if(draft||!published_at) return false;
|
||||||
|
if(!tag_name_regex) return true;
|
||||||
|
return (new RegExp(tag_name_regex, 'g')).test(tag_name);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function readConfig(){
|
||||||
|
if(!s.test("-f", path_config_json)) return { packages: [] };
|
||||||
|
const out= Object.assign({ target: "~/bin/" },
|
||||||
|
s.cat(path_config_json).xargs(JSON.parse));
|
||||||
|
if(out.target.startsWith("~/")) out.target= $.xdg.home(out.target.slice(2));
|
||||||
|
return out;
|
||||||
|
}
|
78
bin/kde6-workarounds.mjs
Executable file
78
bin/kde6-workarounds.mjs
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
|
||||||
|
const pathLastDesktop= ()=> $.xdg.temp`kde6-workarounds-last-desktop.txt`;
|
||||||
|
const css= echo.css`
|
||||||
|
.code { color: gray; }
|
||||||
|
`;
|
||||||
|
|
||||||
|
$.api()
|
||||||
|
.version("2024-02-29")
|
||||||
|
.describe("Workarounds for KDE6.")
|
||||||
|
.command("logout")
|
||||||
|
.action(function(){
|
||||||
|
$.is_silent= true;
|
||||||
|
const res= s.run([
|
||||||
|
"echo ::options::",
|
||||||
|
"|",
|
||||||
|
"rofi -dmenu -p 'Logout' -l 4 -theme-str 'window { width: 25ch; }' -normal-window"
|
||||||
|
].join(" "), {
|
||||||
|
options: [ "-", "poweroff", "reboot" ].join("\n")
|
||||||
|
}).trim();
|
||||||
|
if(res && res!=="-") s.run(res);
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("klipper-edit", "Edit last item in klipper.")
|
||||||
|
.action(async function(){
|
||||||
|
$.is_silent= true;
|
||||||
|
const qdbus= "qdbus org.kde.klipper /klipper org.kde.klipper.klipper.";
|
||||||
|
try{
|
||||||
|
const candidate= s.run(`${qdbus}getClipboardContents`).trim();
|
||||||
|
const content= await $.read({ "-p": "Edit", completions: [ candidate ] });
|
||||||
|
s.run(`${qdbus}setClipboardContents "${content}"`);
|
||||||
|
$.exit(0);
|
||||||
|
} catch (_){
|
||||||
|
$.exit(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.command("desktops-alttab", "Workaround for KDE6 alt-tab between virtual desktops.")
|
||||||
|
.action(function(){
|
||||||
|
const path= pathLastDesktop();
|
||||||
|
// Regarding ★ : this is a workaround for diagonal switching (it duplicates desktop index)
|
||||||
|
let desktop= s.cat(path).trim() || "1";
|
||||||
|
if(desktop.length>3){ // ★
|
||||||
|
const [ _1, _2, ..._3 ]= desktop.slice(-4, desktop.length);
|
||||||
|
if(_1===_2)
|
||||||
|
desktop= desktop.slice(0, -4).concat(_1, ..._3);
|
||||||
|
}
|
||||||
|
if(desktop.length>2){ // ★
|
||||||
|
const [ _1, _2 ]= desktop.slice(-2, desktop.length);
|
||||||
|
if(_1===_2)
|
||||||
|
desktop= desktop.slice(0, -1);
|
||||||
|
}
|
||||||
|
if(desktop.length>2){
|
||||||
|
desktop= desktop.slice(-2, desktop.length);
|
||||||
|
s.echo(desktop).to(path);
|
||||||
|
}
|
||||||
|
echo(desktop);
|
||||||
|
s.run`qdbus org.kde.KWin /KWin org.kde.KWin.setCurrentDesktop ${desktop[0]}`;
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("desktops-last-dbus")
|
||||||
|
.action(function(){
|
||||||
|
echo([
|
||||||
|
"dbus-monitor",
|
||||||
|
'"interface=org.kde.KWin.VirtualDesktopManager" "member=currentChanged"',
|
||||||
|
"|",
|
||||||
|
'xargs -e -I {} kde6-workarounds.mjs desktops-last-save {}'
|
||||||
|
].join(" "));
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("desktops-last-save <dbus>", "Workaround for KDE6 alt-tab between virtual desktops.")
|
||||||
|
.action(function(dbus){
|
||||||
|
if(-1===dbus.indexOf("path=/VirtualDesktopManager; interface=org.kde.KWin.VirtualDesktopManager; member=currentChanged"))
|
||||||
|
return $.exit(1);
|
||||||
|
const desktop= s.run`qdbus org.kde.KWin /KWin org.kde.KWin.currentDesktop`.trim();
|
||||||
|
s.echo(desktop).toEnd(pathLastDesktop());
|
||||||
|
})
|
||||||
|
.parse();
|
20
bin/nocodb.mjs
Executable file
20
bin/nocodb.mjs
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
import { kwallet } from "./§kwallet.mjs";
|
||||||
|
const url_api= "https://nocodb.jaandrle.cz/api/v1/db/data/v1/Linky/Linky";
|
||||||
|
$.api()
|
||||||
|
.command("add-md")
|
||||||
|
.action(async function addMd(){
|
||||||
|
const { clipboard }= $;
|
||||||
|
const [ title, url ]= clipboard.split("](");
|
||||||
|
|
||||||
|
const res= await fetch(url_api, {
|
||||||
|
body: JSON.stringify({ Popis: title.slice(1), Url: url.slice(0, -1) }),
|
||||||
|
headers: { "xc-token": kwallet([ "readPassword", "Passwords", "nocodb-linky" ])[0].toString(),
|
||||||
|
"accept": "application/json", "Content-Type": "application/json"
|
||||||
|
},
|
||||||
|
method: "post"
|
||||||
|
}).then(res=>res.json());
|
||||||
|
echo(res);
|
||||||
|
})
|
||||||
|
.parse();
|
9
bin/onedrive
Executable file
9
bin/onedrive
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [[ $(mount | grep OneDrive) ]]; then
|
||||||
|
fusermount -uz ~/Vzdálené/OneDrive
|
||||||
|
notify-send -i system-file-manager "OneDrive disk ODPOJEN"
|
||||||
|
else
|
||||||
|
rclone --vfs-cache-mode full mount "onedrive": ~/Vzdálené/OneDrive &
|
||||||
|
dolphin ~/Vzdálené/OneDrive/ &
|
||||||
|
notify-send -i system-file-manager "OneDrive disk PŘIPOJEN"
|
||||||
|
fi
|
71
bin/piper.mjs
Executable file
71
bin/piper.mjs
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
const p_home= $.xdg.home`Applications/piper/`
|
||||||
|
const p_models= p_home+"models/"
|
||||||
|
|
||||||
|
$.api("", true)
|
||||||
|
.version("2023-05-31")
|
||||||
|
.describe([
|
||||||
|
"This is a wrapper around the piper CLI.",
|
||||||
|
"It allows you to get the list of available models, or to simplify `piper` callings.",
|
||||||
|
"",
|
||||||
|
"Visit: https://github.com/rhasspy/piper",
|
||||||
|
"Original help:",
|
||||||
|
...s.$().run`${p_home}piper --help`.stderr.split("\n").filter(Boolean).map(l=> "\t"+l)
|
||||||
|
])
|
||||||
|
.option("--models", "prints available models")
|
||||||
|
.option("--model, -m", "chooses voice model by it's index or by text search (full name)")
|
||||||
|
.option("--input_file, -I", "path to input text file (defaults to stdin)")
|
||||||
|
.action(function main({
|
||||||
|
models: is_models,
|
||||||
|
model= 0,
|
||||||
|
input_file,
|
||||||
|
_,
|
||||||
|
...pass
|
||||||
|
}){
|
||||||
|
if(is_models){
|
||||||
|
models()
|
||||||
|
.forEach(l=> echo(l));
|
||||||
|
echo(helpTextModels("…for more models"))
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
model= getModel(model);
|
||||||
|
pass= Object.entries(pass)
|
||||||
|
.map(([ name, value ])=> `${name.length > 1 ? "--" : "-"}${name} '${value}'`)
|
||||||
|
.join(" ");
|
||||||
|
const o= s.run(`echo ${text(input_file)} | ${p_home}piper --model ${model} ${pass}`);
|
||||||
|
$.exit(o.code);
|
||||||
|
})
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
function text(input_file){
|
||||||
|
const candidate= input_file ? s.cat(input_file).stdout : $.stdin.text();
|
||||||
|
if(typeof candidate!=="string")
|
||||||
|
$.error("Missing input text file or piped text. Use `--help` for more information.");
|
||||||
|
return "'"+candidate.trim().replaceAll("\n", "\t — \t").replaceAll("'", "\"")+"'";
|
||||||
|
}
|
||||||
|
function getModel(identifier){
|
||||||
|
const candidate= typeof identifier==="number" ?
|
||||||
|
models()[identifier] :
|
||||||
|
models().find(l=> l.includes(identifier));
|
||||||
|
if(!candidate)
|
||||||
|
$.error([
|
||||||
|
`Model identifier '${identifier}' seems not to matching any existing model.`,
|
||||||
|
"Try `--models` to see all available models."
|
||||||
|
].join("\n"));
|
||||||
|
return candidate.slice(candidate.indexOf(" ")+1);
|
||||||
|
}
|
||||||
|
function models(){
|
||||||
|
const out= s.ls(`${p_models}*.onnx`)
|
||||||
|
.map((l, n)=> `${n}: ${l}`);
|
||||||
|
if(!out.length)
|
||||||
|
$.error(helpTextModels("No available models."));
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
function helpTextModels(...text_initial){
|
||||||
|
return [
|
||||||
|
...text_initial,
|
||||||
|
"Visits https://github.com/rhasspy/piper",
|
||||||
|
"and download/extract model(s) into "+p_models
|
||||||
|
].join("\n");
|
||||||
|
}
|
10
bin/pocket-sh-add.sh
Executable file
10
bin/pocket-sh-add.sh
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
[ ! -r ~/.config/pocketshaddrc ] && echo "\`~/.config/pocketshaddrc\` not found" && exit 1
|
||||||
|
. ~/.config/pocketshaddrc
|
||||||
|
|
||||||
|
curl -sS -X POST \
|
||||||
|
-F "url=$1" \
|
||||||
|
-F "title=$2" \
|
||||||
|
-F "consumer_key=$CONSUMER_KEY" \
|
||||||
|
-F "access_token=$ACCESS_TOKEN" \
|
||||||
|
https://getpocket.com/v3/add \
|
||||||
|
> /dev/null
|
110
bin/socky.mjs
Executable file
110
bin/socky.mjs
Executable file
@ -0,0 +1,110 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
|
||||||
|
$.api("")
|
||||||
|
.version("2024-03-18")
|
||||||
|
.command("silicon [file]", [
|
||||||
|
"Generovat obrázek s kódem pro sdílení na sociálních sítích. (alternativa k Carbon)",
|
||||||
|
"Toto je jen drobný wrapper s mými defaultními parametry.",
|
||||||
|
"Další nápověda viz `silicon --help`.",
|
||||||
|
])
|
||||||
|
.option("--title", "Set window title (default: file name).")
|
||||||
|
.option("--range", "Select lines from file in the form `start:end`")
|
||||||
|
.option("--font-size, --fs", "Font size", 25)
|
||||||
|
.action(function silicon(file, { title= file, range, fs, ["font-size"]: _fs, _, ...args }){
|
||||||
|
args= Object.assign({
|
||||||
|
theme: "OneHalfDark",
|
||||||
|
font: `Ubuntu Mono =${fs}`,
|
||||||
|
background: "#f06d78",
|
||||||
|
["shadow-blur-radius"]: 30,
|
||||||
|
["tab-width"]: 2
|
||||||
|
}, args);
|
||||||
|
args= Object.keys(args).flatMap(key=> [ "--"+key, args[key] ]);
|
||||||
|
let from= file;
|
||||||
|
const index_ext= file.lastIndexOf(".");
|
||||||
|
const output= !file ? "silicon.png" : file.slice(0, index_ext+1)+"png";
|
||||||
|
if(range && typeof range=== "string" && range.includes(":")){
|
||||||
|
from= $.xdg.temp`silicon-range${file.slice(index_ext)}`;
|
||||||
|
const content= s.$().cat(file).toString().split(/\r?\n/).slice(...range.split(":").map(n=> parseInt(n)+1));
|
||||||
|
s.echo(content.join("\n")).to(from);
|
||||||
|
}
|
||||||
|
s.run`silicon ${from} --output ${output} --window-title ${title} ${args}`;
|
||||||
|
echo(`Generated ${output}`);
|
||||||
|
if(from!== file) s.rm(from);
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("textInImage [file]", "Generovat obrázek s textem pro sdílení na sociálních sítích.")
|
||||||
|
.alias("tii")
|
||||||
|
.option("--pointsize", "Text size", "62")
|
||||||
|
.option("--gravity", "`convert -list gravity`", "Center")
|
||||||
|
.option("--text", "Text")
|
||||||
|
.action(textInImage)
|
||||||
|
.command("textSplit <file>", "Rozdělit text dle zadaného limitu.")
|
||||||
|
.alias("ts")
|
||||||
|
.option("--limit", "Počet znaků kde text rozdělovat.", 500)
|
||||||
|
.option("--counter", "Prepend counter, set no. of chars of counter.", 5)
|
||||||
|
.option("--text", "Text")
|
||||||
|
.action(textSplit)
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
function textSplit(file, { limit, counter, text }){
|
||||||
|
limit= parseInt(limit) - parseInt(counter);
|
||||||
|
const words= getText(file, text).split(" ");
|
||||||
|
let buffer= [], i= -1, chars= limit;
|
||||||
|
for(const word of words){
|
||||||
|
const { length }= word;
|
||||||
|
if((chars+length) < limit){
|
||||||
|
chars+= ( is_empty ? 0 : 1 ) + length;
|
||||||
|
buffer[i].end= i;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
chars= 0;
|
||||||
|
i+= 1;
|
||||||
|
buffer[i]= { start: i };
|
||||||
|
}
|
||||||
|
const { length }= buffer;
|
||||||
|
echo(buffer.map(function({ start, end }, i){
|
||||||
|
return (i+1)+"/"+length+" "+words.slice(start, end).join(" ");
|
||||||
|
}).join("\n============\n"));
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
function textInImage(file, { text, gravity, pointsize }){
|
||||||
|
text= getText(file, text);
|
||||||
|
const output= !file ? "textInImage.png" : (({ pathname: p })=> p.slice(1, p.lastIndexOf(".")+1)+"png")(new URL(file, "file://"));
|
||||||
|
const round_corners= [ //https://9to5answer.com/rounding-corners-of-pictures-with-imagemagick
|
||||||
|
"\\(",
|
||||||
|
"+clone -alpha extract",
|
||||||
|
"-draw 'fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0'",
|
||||||
|
"\\( +clone -flip \\) -compose Multiply -composite",
|
||||||
|
"\\( +clone -flop \\) -compose Multiply -composite",
|
||||||
|
"\\) -alpha off -compose CopyOpacity -composite",
|
||||||
|
].join(" ");
|
||||||
|
s.run([
|
||||||
|
"convert",
|
||||||
|
"\\(",
|
||||||
|
"-size ::size::",
|
||||||
|
"-pointsize ::pointsize::",
|
||||||
|
"-fill ::fill:: -background ::background::",
|
||||||
|
"-gravity ::gravity::",
|
||||||
|
"-family ::family:: -weight Bold",
|
||||||
|
"-bordercolor ::background:: -border 5%",
|
||||||
|
"caption:::text::",
|
||||||
|
"\\)",
|
||||||
|
round_corners,
|
||||||
|
"::output::"
|
||||||
|
].join(" "), {
|
||||||
|
fill: "whitesmoke",
|
||||||
|
background: "#2b2b2b",
|
||||||
|
size: "1024x512",
|
||||||
|
family: "Ubuntu Mono",
|
||||||
|
output, text, gravity, pointsize
|
||||||
|
});
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
function getText(file, text){
|
||||||
|
if(file && s.test("-f", file))
|
||||||
|
return s.cat(file).toString();
|
||||||
|
if(!text)
|
||||||
|
return $.stdin.text().trim();
|
||||||
|
return text;
|
||||||
|
}
|
165
bin/§ai-commit.mjs
Executable file
165
bin/§ai-commit.mjs
Executable file
@ -0,0 +1,165 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
$.is_fatal= true;
|
||||||
|
const token_file= "~/.config/openai.token";
|
||||||
|
let token;
|
||||||
|
const gitmoji_list= {
|
||||||
|
build: "building_construction",
|
||||||
|
chore: "bricks",
|
||||||
|
ci: "construction_worker",
|
||||||
|
docs: "memo",
|
||||||
|
feat: "sparkles",
|
||||||
|
fix: "bug",
|
||||||
|
perf: "zap",
|
||||||
|
refactor: "recycle",
|
||||||
|
revert: "rewind",
|
||||||
|
style: "art",
|
||||||
|
test: "white_check_mark"
|
||||||
|
};
|
||||||
|
const git3moji_list= {
|
||||||
|
build: "tv",
|
||||||
|
chore: "tv",
|
||||||
|
ci: "tv",
|
||||||
|
docs: "abc",
|
||||||
|
feat: "zap",
|
||||||
|
fix: "bug",
|
||||||
|
perf: "zap",
|
||||||
|
refactor: "cop",
|
||||||
|
style: "zap",
|
||||||
|
test: "cop"
|
||||||
|
};
|
||||||
|
const conventional_desc= [
|
||||||
|
"Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)",
|
||||||
|
"Other changes that don't modify src or test files",
|
||||||
|
"Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)",
|
||||||
|
"Documentation only changes",
|
||||||
|
"A new feature",
|
||||||
|
"A bug Fix",
|
||||||
|
"A code change that improves performance",
|
||||||
|
"A code change that neither fixes a bug nor adds a feature",
|
||||||
|
"Reverts a previous commit",
|
||||||
|
"Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)",
|
||||||
|
"Adding missing tests or correcting existing tests"
|
||||||
|
];
|
||||||
|
|
||||||
|
$.api("", true)
|
||||||
|
.version("2024-02-28")
|
||||||
|
.describe([
|
||||||
|
"Utility to use ChatGPT to generate a commit message from COMMIT_EDITMSG file.",
|
||||||
|
`Don't forget to set the token in ${token_file} file.`,
|
||||||
|
"",
|
||||||
|
"Conventional/gitmoji commits should follow https://www.conventionalcommits.org/en/v1.0.0/ (https://github.com/pvdlg/conventional-commit-types).",
|
||||||
|
"For the gitmoji the <type> uses emojis as follows:",
|
||||||
|
...Object.entries(gitmoji_list).map(( v, i )=> echo.format("%c"+v[0]+` (${v[1]}): ${conventional_desc[i]}`, "display: list-item")),
|
||||||
|
...Object.entries(git3moji_list).map(( v, i )=> echo.format("%c"+v[0]+` (${v[1]}): ${conventional_desc[i]}`, "display: list-item"))
|
||||||
|
])
|
||||||
|
.option("--format, -f", [ "Use one of the following formats to generate the commit message: [regular (default), conventional, gitmoji, git3moji]",
|
||||||
|
"For gitmoji see: https://gitmoji.dev/"
|
||||||
|
])
|
||||||
|
.action(async function({ format= "regular" }= {}){
|
||||||
|
const question= questionChatGPT(format);
|
||||||
|
const response= (await pipe(
|
||||||
|
()=> s.cat("./.git/COMMIT_EDITMSG"),
|
||||||
|
s=> s.slice(s.indexOf("diff --git")),
|
||||||
|
diffToChunks(3900-545), //the worst scenario of ★ +new lines
|
||||||
|
ch=> ch.map(pipe( question, requestCommitMessage )),
|
||||||
|
ch=> Promise.all(ch)
|
||||||
|
)())
|
||||||
|
.map(pipe(
|
||||||
|
j=> j.choices[0].text.trim(),
|
||||||
|
convertToArray,
|
||||||
|
format==="regular" || format==="conventional" ? i=> i : i=> gitmoji(i, format==="git3moji"),
|
||||||
|
a=> a.join("\n")
|
||||||
|
))
|
||||||
|
.join("\n\n");
|
||||||
|
echo(response);
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
function diffToChunks(max_tokens){ return function(input){
|
||||||
|
if(input.length < max_tokens)
|
||||||
|
return [ input ];
|
||||||
|
|
||||||
|
return input.split(/(?=diff --git)/g)
|
||||||
|
.flatMap(function(input){
|
||||||
|
if(input.length < max_tokens)
|
||||||
|
return [ input ];
|
||||||
|
|
||||||
|
const [ file, ...diffs ]= input.split(/\n(?=@@)/g);
|
||||||
|
if(file.includes("new file"))
|
||||||
|
return [ file ];
|
||||||
|
return diffs
|
||||||
|
.filter(chunk=> chunk.length < max_tokens)
|
||||||
|
.reduce(function(chunks, chunk){
|
||||||
|
const i= chunks.length-1;
|
||||||
|
if(chunks[i].length + chunk.length < max_tokens-1)
|
||||||
|
chunks[i]+= "\n"+chunk;
|
||||||
|
else
|
||||||
|
chunks.push(file+"\n"+chunk);
|
||||||
|
return chunks;
|
||||||
|
}, [ file ])
|
||||||
|
.filter(chunk=> chunk.length < max_tokens);
|
||||||
|
});
|
||||||
|
}; }
|
||||||
|
function convertToArray(text){
|
||||||
|
// console.log(text);
|
||||||
|
return text.split("\n")
|
||||||
|
.map(line=> line.trim())
|
||||||
|
.filter(line=> line.trim())
|
||||||
|
.map(function(line){
|
||||||
|
if(/^[0-9-].? /.test(line)) line= line.slice(line.indexOf(" ")+1);
|
||||||
|
if(/^["']/.test(line[0])) line= line.slice(1);
|
||||||
|
if(/["']$/.test(line[line.length-1])) line= line.slice(0, -1);
|
||||||
|
return line;
|
||||||
|
})
|
||||||
|
;
|
||||||
|
}
|
||||||
|
function questionChatGPT(format){ return function(diff){
|
||||||
|
const msg= [
|
||||||
|
[
|
||||||
|
"I would like to ask you to act like a git commit message writer.",
|
||||||
|
"I will enter a git diff, and your job is to convert it into a useful commit message",
|
||||||
|
"Make 3 options, one option per line.",
|
||||||
|
"Do not preface the commit with anything, use a concise, precise, present-tense, complete sentence.",
|
||||||
|
"The length should be fewer than 50 characters if possible.",
|
||||||
|
].join(" ") //340chars★
|
||||||
|
];
|
||||||
|
if(format!=="regular")
|
||||||
|
msg.push(
|
||||||
|
[
|
||||||
|
"It should follow the conventional commits.",
|
||||||
|
"The format is <type in lowercase>: <description>.",
|
||||||
|
"A type can be one of the following: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, or test.",
|
||||||
|
].join(" ") //203chars★
|
||||||
|
);
|
||||||
|
msg.push("", diff);
|
||||||
|
return msg.join("\n");
|
||||||
|
}; }
|
||||||
|
function gitmoji(candidates, is_three= false){
|
||||||
|
return candidates.map(message=> message.trim().replace(/^[^:]*:/, toGitmoji));
|
||||||
|
|
||||||
|
function toGitmoji(name){
|
||||||
|
const candidate= ( is_three ? git3moji_list : gitmoji_list )[name.slice(0, -1)];
|
||||||
|
return !candidate ? name : `:${candidate}:`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function requestCommitMessage(prompt){
|
||||||
|
if(!token) token= s.cat(token_file).stdout.trim();
|
||||||
|
const model= "gpt-3.5-turbo-instruct";
|
||||||
|
return fetch(`https://api.openai.com/v1/engines/${model}/completions`, {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"Authorization": "Bearer "+token
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
max_tokens: 1000,
|
||||||
|
temperature: 0.1,
|
||||||
|
prompt
|
||||||
|
}),
|
||||||
|
signal: AbortSignal.timeout(10000)
|
||||||
|
}).then(r=> r.json());
|
||||||
|
}
|
||||||
|
// vim: set tabstop=4 shiftwidth=4 textwidth=250 noexpandtab :
|
||||||
|
// vim>60: set foldmethod=indent foldlevel=1 foldnestmax=2:
|
26
bin/§awk
Executable file
26
bin/§awk
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
this="${0##*/}"
|
||||||
|
USAGE="\
|
||||||
|
usage: $this [<awk_args>] <field_no>
|
||||||
|
Ex: getent passwd | grep andy | $this -F: 5
|
||||||
|
Ex: echo \"A B\" | $this 2
|
||||||
|
"
|
||||||
|
err(){ echo -e "$USAGE" >&2; exit 1; }
|
||||||
|
|
||||||
|
[[ $# -eq 0 ]] && err
|
||||||
|
# bail if the *last* argument isn't a number (source:
|
||||||
|
# http://stackoverflow.com/a/808740)
|
||||||
|
last=${@:(-1)}
|
||||||
|
if ! [ $last -eq $last ] &>/dev/null; then
|
||||||
|
echo "_awk! Last argument (awk field) must be numeric." >&2
|
||||||
|
err
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -gt 1 ]; then
|
||||||
|
# Source:
|
||||||
|
# http://www.cyberciti.biz/faq/linux-unix-bsd-apple-osx-bash-get-last-argument/
|
||||||
|
rest=${@:1:$(( $# - 1 ))}
|
||||||
|
else
|
||||||
|
rest='' # just to be sure
|
||||||
|
fi
|
||||||
|
awk $rest "{ print \$$last }"
|
34
bin/§battery
Executable file
34
bin/§battery
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
version="2022-01-25"
|
||||||
|
this="${0##*/}"
|
||||||
|
USAGE="\
|
||||||
|
$this@v$version
|
||||||
|
Wrapper around 'upower' to show battery info(s).
|
||||||
|
Usage: $this --[help|all|oneline|notify]
|
||||||
|
|
||||||
|
'oneline' [Default] prints 'status | time | percentage'
|
||||||
|
'notify' sends 'oneline' to 'notify-send'
|
||||||
|
'all' prints 'upower -i'
|
||||||
|
'help' prints this text
|
||||||
|
"
|
||||||
|
arg=${1:---oneline}
|
||||||
|
if [[ "$arg" = "--help" ]]; then
|
||||||
|
echo -e "$USAGE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
batt_name=`upower -e | grep 'BAT'`
|
||||||
|
batt_info=`upower -i $batt_name`
|
||||||
|
if [[ "$arg" = "--all" ]]; then
|
||||||
|
echo -e "$batt_info"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
batt_oneline=`echo "$batt_info" | grep -E "state|percentage|to\ full|to\ empty" | §awk -F: 2 | sed 's/^ *//g' | tr -s '\n' '|' | sed 's/|$/\n/' | sed 's/|/ | /g'`
|
||||||
|
if [[ "$arg" = "--oneline" ]]; then
|
||||||
|
echo -e "$batt_oneline"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
icon=`echo "$batt_info" | grep "icon-name" | §awk -F\' 2`
|
||||||
|
notify-send --icon=$icon "Battery" "$batt_oneline"
|
6
bin/§calc
Executable file
6
bin/§calc
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
function _echo(){
|
||||||
|
[ -t 0 ] && echo "$1" && exit
|
||||||
|
notify-send -i kcalc "$1" && exit
|
||||||
|
}
|
||||||
|
_echo `python3 -c 'import sys; print(eval(" ".join(sys.argv[1:])))' "$*"`
|
60
bin/§cordova-release.mjs
Executable file
60
bin/§cordova-release.mjs
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, style, fetch, cyclicLoop */
|
||||||
|
import { join as pathJoin } from "path";
|
||||||
|
import { platform } from "process";
|
||||||
|
const config_path= $.xdg.data`package_global.json`;
|
||||||
|
|
||||||
|
$.is_fatal= true;
|
||||||
|
$.api("[name]", true)
|
||||||
|
.version("2022-10-06")
|
||||||
|
.describe([
|
||||||
|
"Release cordova app with saved data in: "+config_path+".",
|
||||||
|
"This should be JSON file with `cordova_keys_store` key/object:",
|
||||||
|
`{"cordova_keys_store": { "NAME": { "path": "", "password": "", "alias": "" } }}`,
|
||||||
|
"You can lists all saved options (NAME), when you run without arguments." ])
|
||||||
|
.option("--noclear", "Skipping cleaning existing apk files.")
|
||||||
|
.action(function main(name, { noclear }){
|
||||||
|
if(!name){
|
||||||
|
echo("Available options:");
|
||||||
|
pipe(getConfig, Object.keys, a=> "- "+a.join("\n- "), echo)();
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
const /* runtime arguments and cwd */
|
||||||
|
{ path, password, alias }= getConfigFor(name),
|
||||||
|
cwd= process.cwd(),
|
||||||
|
platform_android= toDirPath( cwd, "platforms", "android" ),
|
||||||
|
platform_build= !s.test("-e", toDirPath(platform_android, "app")) ? toDirPath(platform_android, "build") : toDirPath(platform_android, "app", "build"),
|
||||||
|
apk_dir= toDirPath(platform_build, "outputs", "apk"),
|
||||||
|
key_path= pathJoin(cwd, "keystore.jks"),
|
||||||
|
process_clear= !noclear && !s.test("-e", toDirPath(platform_android, "app"));
|
||||||
|
|
||||||
|
$.configAssign({ verbose: true, fatal: true });
|
||||||
|
if(process_clear) s.rm("-Rf", apk_dir+"*");
|
||||||
|
s.cp(path, key_path);
|
||||||
|
s.run("cordova" + ( platform==="win32" ? ".cmd" : "" ) + " ::args::",
|
||||||
|
{ args: [ "build", "--release", "android", "--",'--keystore=keystore.jks', "--storePassword="+password, "--password="+password, "--alias="+alias ] });
|
||||||
|
s.rm(key_path);// cordova si to uklada a uz potom bez nej nelze buildit vubec
|
||||||
|
s.rm(platform_android+"release-signing.properties");
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.parse(process.argv);
|
||||||
|
|
||||||
|
function toDirPath(...path){ return pathJoin(...path)+"/"; }
|
||||||
|
function getConfigFor(name){
|
||||||
|
const config= getConfig();
|
||||||
|
if(Object.hasOwn(config, name))
|
||||||
|
return config[name];
|
||||||
|
|
||||||
|
$.error(`Name '${name}' not found, use one of: `+Object.keys(config));
|
||||||
|
}
|
||||||
|
function getConfig(){
|
||||||
|
if(!s.test("-f", config_path))
|
||||||
|
$.error("No config file found! Tested file path: "+config_path);
|
||||||
|
try{
|
||||||
|
const config= s.cat(config_path).xargs(JSON.parse).cordova_keys_store;
|
||||||
|
if(!Object.keys(config).length) throw new Error();
|
||||||
|
return config;
|
||||||
|
} catch(e){
|
||||||
|
$.error("Unsupported config file: "+config_path+"! Use `--help` for more information.");
|
||||||
|
}
|
||||||
|
}
|
157
bin/§kwallet.mjs
Executable file
157
bin/§kwallet.mjs
Executable file
@ -0,0 +1,157 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
const css= echo.css`
|
||||||
|
.error{ color: lightred; }
|
||||||
|
.code, .method{ color: lightblue; }
|
||||||
|
.code::before, .code::after{ content: "\`"; }
|
||||||
|
.li{ padding-left: 2ch; }
|
||||||
|
`;
|
||||||
|
const default_wallet= "kdewallet";
|
||||||
|
const cmd= "qdbus";
|
||||||
|
if(!s.which(cmd))
|
||||||
|
$.exit(1, echo([
|
||||||
|
`%cError: ${cmd} not found.`,
|
||||||
|
`%cInstall it with: %csudo apt install ${cmd}`,
|
||||||
|
].join("\n"), css.error, css.unset, css.code));
|
||||||
|
|
||||||
|
import { EventEmitter } from "node:events";
|
||||||
|
const events= new EventEmitter();
|
||||||
|
const exit_event= "exit";
|
||||||
|
|
||||||
|
if($.isMain(import.meta)){
|
||||||
|
events.on(exit_event, $.exit);
|
||||||
|
|
||||||
|
$.api("", true)
|
||||||
|
.version("2024-03-05")
|
||||||
|
.describe([
|
||||||
|
`KWallet CLI using ${cmd}.`,
|
||||||
|
"Call with no arguments to list all methods.",
|
||||||
|
])
|
||||||
|
.example("--wallet kdewallet folderList")
|
||||||
|
.example("--wallet kdewallet readPassword folder entry")
|
||||||
|
.option("--wallet, -w", "Wallet name", default_wallet)
|
||||||
|
.action(function main({ _, wallet }){
|
||||||
|
const [ results, is_ls ]= kwallet(_, { wallet });
|
||||||
|
if(is_ls) echoLs(results);
|
||||||
|
else echo(results);
|
||||||
|
events.emit(exit_event);
|
||||||
|
})
|
||||||
|
.parse();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string[]} _ Query/arguments for qdbus
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {string} [options.wallet] Wallet name
|
||||||
|
* @returns {[ string[], true ]|[ string, false ]}
|
||||||
|
* */
|
||||||
|
export function kwallet(_, { wallet= default_wallet }= {}){
|
||||||
|
const qdbus= qdbusGenerator({
|
||||||
|
service: "org.kde.kwalletd6",
|
||||||
|
methods: "/modules/kwalletd6",
|
||||||
|
wallet,
|
||||||
|
exit_event
|
||||||
|
});
|
||||||
|
if(!_.length)
|
||||||
|
return [ qdbus(), true ];
|
||||||
|
else{
|
||||||
|
//TODO: Map (`--literal` in qdbus and decode the result `echoMap`)
|
||||||
|
const result= qdbus(_);
|
||||||
|
return [ result, false ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function qdbusGenerator({ service, methods, wallet, exit_event }){
|
||||||
|
const name= getScriptName();
|
||||||
|
const no_id= [
|
||||||
|
'allWalletsClosed',
|
||||||
|
'applicationDisconnected',
|
||||||
|
'folderListUpdated',
|
||||||
|
'folderUpdated',
|
||||||
|
'walletClosed',
|
||||||
|
'walletCreated',
|
||||||
|
'walletDeleted',
|
||||||
|
'walletListDirty',
|
||||||
|
'walletOpened',
|
||||||
|
'changePassword',
|
||||||
|
'close',
|
||||||
|
'closeAllWallets',
|
||||||
|
'deleteWallet',
|
||||||
|
'disconnectApplication',
|
||||||
|
'folderDoesNotExist',
|
||||||
|
'isEnabled',
|
||||||
|
'isOpen',
|
||||||
|
'keyDoesNotExist',
|
||||||
|
'localWallet',
|
||||||
|
'networkWallet',
|
||||||
|
'open',
|
||||||
|
'openAsync',
|
||||||
|
'openPath',
|
||||||
|
'openPathAsync',
|
||||||
|
'pamOpen',
|
||||||
|
'reconfigure',
|
||||||
|
'users',
|
||||||
|
'wallets'
|
||||||
|
];
|
||||||
|
|
||||||
|
let id;
|
||||||
|
const qdbus= (...args)=> s.$().run`${cmd} ${service} ${methods} ${args}`;
|
||||||
|
events.on(exit_event, ()=>{
|
||||||
|
if(!id) return;
|
||||||
|
qdbus("close", id, false, name);
|
||||||
|
id= null;
|
||||||
|
});
|
||||||
|
return function([ method, ...args ]= []){
|
||||||
|
if(!method) return qdbus();
|
||||||
|
if(no_id.includes(method)) return qdbus(method, ...args);
|
||||||
|
if(!id) open();
|
||||||
|
return qdbus(method, id, ...args, name);
|
||||||
|
};
|
||||||
|
function open(){
|
||||||
|
id= qdbus("open", wallet, 0, name).trim();
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function echoMap(map){
|
||||||
|
map= map.slice(1, -1).split(", ").map(n=> Number.parseInt(n));
|
||||||
|
const ab= new ArrayBuffer(map.length);
|
||||||
|
const view= new Uint8Array(ab);
|
||||||
|
for(let i= 0; i<map.length; i++)
|
||||||
|
view[i]= map[i];
|
||||||
|
|
||||||
|
const words= [];
|
||||||
|
for(let i= 0; i<map.length; i+= 4){
|
||||||
|
words.push(String.fromCharCode.apply(null, view.subarray(i, i+4)));
|
||||||
|
}
|
||||||
|
pipe(
|
||||||
|
echo
|
||||||
|
)(words);
|
||||||
|
}
|
||||||
|
function echoLs(list){
|
||||||
|
const ns= "org.kde.KWallet.";
|
||||||
|
pipe(
|
||||||
|
list=> list.split("\n").filter(l=> l.startsWith("method") && -1!==l.indexOf(ns)),
|
||||||
|
list=> list.map(l=> l.slice(l.indexOf(" ")+1)).map(l=> l.replace(ns, "")),
|
||||||
|
list=> list.reduce((o, l)=> (o[Number(l.indexOf("int handle")!==-1)].push(l), o), [ [], [] ]),
|
||||||
|
([ no_wallet, wallet ])=> [
|
||||||
|
"Methods available without wallet:",
|
||||||
|
...no_wallet.map(formatMethod),
|
||||||
|
"Methods available with wallet (" + echo.format("%c--wallet", css.code) + " option):",
|
||||||
|
...wallet.map(formatMethod)
|
||||||
|
].join("\n"),
|
||||||
|
echo
|
||||||
|
)(list);
|
||||||
|
function formatMethod(line){
|
||||||
|
const ch_type= line.indexOf(" ")+1;
|
||||||
|
const ch_name= line.indexOf("(", ch_type);
|
||||||
|
return echo.format([
|
||||||
|
"",
|
||||||
|
line.slice(0, ch_type),
|
||||||
|
line.slice(ch_type, ch_name),
|
||||||
|
line.slice(ch_name)
|
||||||
|
].join("%c"), css.li, css.method, css.unset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function getScriptName(){
|
||||||
|
const { url }= import.meta;
|
||||||
|
return (new URL(url)).href.slice((new URL("./", url).href.length));
|
||||||
|
}
|
94
bin/§mail.mjs
Executable file
94
bin/§mail.mjs
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, style, fetch, cyclicLoop, xdg, $ */
|
||||||
|
import { basename } from "path";
|
||||||
|
const app= {
|
||||||
|
name: basename(process.argv[1]),
|
||||||
|
version: "2022-09-28",
|
||||||
|
cmd: $.xdg.home`.local/bin/himalaya`,
|
||||||
|
configs: $.xdg.config`himalaya/`,
|
||||||
|
modificator: "§"
|
||||||
|
};
|
||||||
|
const chars= { "&AOE-": "á", "&AWE-": "š", "&ARs-": "ě" };
|
||||||
|
let argv_arr= argvArr();
|
||||||
|
|
||||||
|
if("help"===argv_arr.toString().replaceAll("-", "")){ //#region
|
||||||
|
echo([ `${app.name}@${app.version}`,
|
||||||
|
`This is small wrapper around 'himalaya' fixing coding errors and provide better 'read'. (Use § for calling himalaya directly)`,
|
||||||
|
"" ].join("\n"));
|
||||||
|
s.run(app.cmd+" --help");
|
||||||
|
$.exit(0); //#endregion
|
||||||
|
}
|
||||||
|
if("version"===argv_arr.toString().replaceAll("-", "")){//#region
|
||||||
|
echo(`${app.name} ${app.version}`);
|
||||||
|
s.run(app.cmd+" --version");
|
||||||
|
$.exit(0);//#endregion
|
||||||
|
}
|
||||||
|
if("completion,bash"===argv_arr.toString()){//#region
|
||||||
|
const completion= s.run(app.cmd+" ::argv_arr::", { argv_arr });
|
||||||
|
echo(completion.toString().replace("himalaya)", `himalaya|${app.name})`));
|
||||||
|
echo(`alias ${app.name}-inbox="§mail § | less -R -S"`);
|
||||||
|
echo(`complete -F _himalaya -o bashdefault -o default ${app.name}`);
|
||||||
|
$.exit(0);//#endregion
|
||||||
|
}
|
||||||
|
(async function main(){
|
||||||
|
if(argv_arr.indexOf(app.modificator)!==-1) await runH(argv_arr.filter(l=> l!==app.modificator));
|
||||||
|
|
||||||
|
argv_arr= argv_arr.filter(str=> str!==app.modificator);
|
||||||
|
if(argv_arr.indexOf("list")!==-1){
|
||||||
|
argv_arr.push("-w", process.stdout.columns);
|
||||||
|
await runH(argv_arr);
|
||||||
|
}
|
||||||
|
if(argv_arr.indexOf("read")!==-1){
|
||||||
|
const email= $.xdg.temp`/himalaya-read.eml`;
|
||||||
|
argv_arr.push("-h", "From", "-h", "Subject");
|
||||||
|
await s.$().runA(app.cmd+" ::argv_arr::", { argv_arr }).pipe(s=> s.to(email));
|
||||||
|
await s.runA`vim ${email}`.pipe(process.stdout);
|
||||||
|
$.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(argv_arr[0] && argv_arr[0]!=="--rofi") await runH(argv_arr);
|
||||||
|
|
||||||
|
const template_path= app.configs+"template-inbox.json";
|
||||||
|
if(!s.test("-f", template_path)) await runH([]);
|
||||||
|
|
||||||
|
const out= await pipe(
|
||||||
|
f=> s.cat(f).xargs(JSON.parse),
|
||||||
|
argv_arr.indexOf('--rofi')===-1 ? templateRead : templateRofi,
|
||||||
|
a=> Promise.all(a)
|
||||||
|
)(template_path);
|
||||||
|
for(const l of out){
|
||||||
|
if(typeof l=="string"&&!l.indexOf("%c===\n")) echo(l, "unset:all", "color:magenta");
|
||||||
|
else echo(l);
|
||||||
|
}
|
||||||
|
$.exit(0);
|
||||||
|
})();
|
||||||
|
|
||||||
|
function templateRofi(lines){
|
||||||
|
return lines.filter(line=> line.type!=="text")
|
||||||
|
.map(line=>
|
||||||
|
s.$().runA(app.cmd+" ::value:: -w 120", line)
|
||||||
|
.then(data=> data.toString().split("\n")
|
||||||
|
.filter(l=> l)
|
||||||
|
.map(line=> line.replaceAll("✷ ", "* "))
|
||||||
|
.map(line_result=> line_result+" │ "+line.label)
|
||||||
|
.join("\n"))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function templateRead(lines){
|
||||||
|
argv_arr.push("-w", process.stdout.columns);
|
||||||
|
return lines.map(line=> line.type==="text" ?
|
||||||
|
Promise.resolve("%c===\n%c"+line.value) :
|
||||||
|
s.$().runA(app.cmd+" ::value:: ::argv_arr::", { value: line.value, argv_arr })
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function argvArr(){
|
||||||
|
const _chars= Object.entries(chars).reduce((acc, [ key, val ])=> Reflect.set(acc, val, key) && acc, {});
|
||||||
|
return process.argv.slice(2).map(str=> str.replace(new RegExp(`(${Object.keys(_chars).join("|")})`, "g"), l=> _chars[l]));
|
||||||
|
}
|
||||||
|
async function runH(args){
|
||||||
|
const result= await s.runA(app.cmd+" ::args::", { args }).pipe(process.stdout);
|
||||||
|
$.exit(result.exitCode);
|
||||||
|
}
|
||||||
|
// vim: set tabstop=4 shiftwidth=4 textwidth=250 noexpandtab ft=javascript :
|
||||||
|
// vim>60: set foldmethod=marker foldmarker=#region,#endregion :
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user