Termux variant

This commit is contained in:
Jan Andrle 2024-02-28 12:48:12 +01:00
parent e9a01401bb
commit fba5b40824
Signed by: jaandrle
GPG Key ID: B3A25AED155AFFAB
98 changed files with 125 additions and 17866 deletions

View File

@ -1,79 +0,0 @@
# 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> : "Ω"

View File

@ -1,141 +0,0 @@
# 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
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'
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 §ls='ls -pQFh --group-directories-first'
alias §less='less -R -S'
alias §cd.='clear;§ls'
§cd..(){ cd $(eval printf '../'%.0s {1..$1}); }
§cd(){
[[ "$1" == '--help' ]] && echo -e "
Usage: §cd NUMBER|PATH
See: dirs -v
" && return 0
[[ -z "$1" ]] && dirs -v | sed 1d && return 0
[[ $1 =~ ^[0-9]+$ ]] && cd "$(dirs -l +$1)" && dirs -v | sed 1d && return 0
builtin pushd "$1" >/dev/null && pushd .
}
alias cd-vifm='cd `vifm --choose-dir -`'
mkcd(){ mkdir -p -- "$1" && cd -P -- "$1"; }
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`
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'
§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 zfz=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

View File

@ -1,49 +0,0 @@
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

View File

@ -1,103 +0,0 @@
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
;;
*)
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 ${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
}

View File

@ -1,3 +0,0 @@
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

View File

@ -1,61 +0,0 @@
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="$?"
# 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 :

View File

@ -1,3 +0,0 @@
#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"

View File

@ -1,7 +0,0 @@
# 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/

View File

@ -1,11 +0,0 @@
# 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)

@ -1 +0,0 @@
Subproject commit 7f2555c2fe7a1f248ed2d4301e46c8eebcbbc4e2

View File

@ -1,134 +0,0 @@
#
# 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

File diff suppressed because it is too large Load Diff

102
.bashrc
View File

@ -1,65 +1,59 @@
#### BASH Config file export GREP_COLOR="1;32"
### Jan Andrle export EDITOR="vim"
## Info: export SUDO_EDITOR="vim"
# ~/.bashrc: executed by bash(1) for non-login shells. export VISUAL="vim"
# 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
## General export HISTCONTROL=ignoreboth:erasedups
set -o vi # VIM mode for bash shopt -s histappend cmdhist
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=
[ -f $BASH_DOTFILES/.bash_promt ] && . $BASH_DOTFILES/.bash_promt alias myip='curl -s -m 5 https://ipleak.net/json/'
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'
# Add an "alert" alias for long running commands. Use like so: alias grep='grep --color=auto'
# sleep 10; alert alias fgrep='fgrep --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 egrep='egrep --color=auto'
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 fi
export GPG_TTY=$(tty) alias myls='ls -pQFhA --group-directories-first'
alias myrm='rm -vi'
alias mycp='cp -vi'
alias mymv='mv -vi'
alias mydf='df -Th'
alias myless='less -R -S'
mylsl(){ mls -l $* --color=always | mless; }
# HSTR configuration - add this to ~/.bashrc myup(){ cd $(eval printf '../'%.0s {1..$1}); }
# if this is interactive shell, then bind hstr to Ctrl-space mkcd(){ mkdir -p "${1:?}" && cd "${1}"; }
if [[ $- =~ .*i.* ]]; then bind '"\C-@": "\e^ihstr -- \n"'; fi update(){ ~/update.sh && mv ~/update_new.sh ~/update.sh; }
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"; }
# termux-setup-storage

View File

@ -1,16 +0,0 @@
[Behavior]
hideDockIcon=false
hideMainWindowWhenStarted=true
[MainWindow]
pos=@Point(0 0)
size=@Size(640 480)
[RepoTreeView]
expandedCategories-e77d1fb=Moje knihovny\tNed\xe1vno aktualizovan\xe9\tSd\xedleno se skupinama
[Settings]
computerName=TUXEDO-InfinityBook-s15gen6
[UsedServerAddresses]
main=https://seafile.jaandrle.cz/

View File

@ -1,50 +0,0 @@
{
"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": "Cloud",
"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
}

View File

@ -1,37 +0,0 @@
[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"]

View File

@ -1,38 +0,0 @@
# 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

View File

@ -1,20 +0,0 @@
# an idea from https://github.com/robinpokorny/git3moji
# [![git3mojiv1.0](https://img.shields.io/badge/git3mojiv1.0-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg?style=flat-square)](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

View File

@ -1,204 +0,0 @@
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

View File

@ -1,60 +0,0 @@
# 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 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

View File

@ -1,87 +0,0 @@
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

View File

@ -1,14 +0,0 @@
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

View File

@ -1,25 +0,0 @@
# 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

View File

@ -1 +0,0 @@
extends php, html

View File

@ -1,9 +0,0 @@
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

View File

@ -1 +0,0 @@
extends javascript, html

View File

@ -1,19 +0,0 @@
# 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"

View File

@ -1,39 +0,0 @@
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 :

View File

@ -1,8 +0,0 @@
[
{ "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" }
]

View File

@ -1,2 +0,0 @@
[Mouse]
cursorTheme=breeze_cursors

View File

@ -1,8 +0,0 @@
[General]
ColorScheme=BreezeDark
[Icons]
Theme=breeze-dark
[KDE]
widgetStyle=Breeze

View File

@ -1,2 +0,0 @@
[Greeter]
Theme=org.kde.breezedark.desktop

View File

@ -1,3 +0,0 @@
[KSplash]
Engine=KSplashQML
Theme=org.kde.breezedark.desktop

View File

@ -1,11 +0,0 @@
[TabBox]
DesktopLayout=org.kde.breeze.desktop
DesktopListLayout=org.kde.breeze.desktop
LayoutName=org.kde.breeze.desktop
[Windows]
Placement=Centered
[org.kde.kdecoration2]
library=org.kde.breeze
theme=Breeze

View File

@ -1 +0,0 @@
org.kde.breezedark.desktop

View File

@ -1,2 +0,0 @@
[Theme]
name=default

View File

@ -1,37 +0,0 @@
{
"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"
]
}
}
}

View File

@ -1,18 +0,0 @@
/* --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([]); }, });
/* 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`; }
})

View File

@ -1,11 +0,0 @@
[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

View File

@ -1,133 +0,0 @@
/*
* 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;
}

View File

@ -1 +0,0 @@
@theme "~/.config/rofi/breeze-dark.rasi"

View File

@ -1,7 +0,0 @@
[[Accounts]]
Name = 'jaandrle'
Server = 'https://fosstodon.org'
ClientID = 'ggYBuM2y_jtFV_3wR4tGdJUoNh-4ZfVRl1SByK5bihU'
ClientSecret = 'j7ClbSP2UY8syZgV4E-7Kk1bf8Ph_6GQ7szcqVfqDtI'
AccessToken = '1iO5wZL-nXcC3dZGjxNHLcbbFoSZ3fmutno96oD_ZY8'

View File

@ -1,830 +0,0 @@
# 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'

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
# 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)

View File

@ -1,81 +0,0 @@
" 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

View File

@ -1,26 +0,0 @@
" 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

View File

@ -1,27 +0,0 @@
" 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

View File

@ -1,29 +0,0 @@
" 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

View File

@ -1,857 +0,0 @@
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-}*

File diff suppressed because it is too large Load Diff

View File

@ -1,373 +0,0 @@
"" 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
.gitmodules vendored
View File

@ -1,4 +0,0 @@
[submodule ".bash/complete-alias"]
path = .bash/complete-alias
url = git@github.com:cykerway/complete-alias.git
branch = master

View File

@ -1,147 +0,0 @@
[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

View File

@ -1,162 +0,0 @@
[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

View File

@ -1,147 +0,0 @@
[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

View File

@ -1,15 +0,0 @@
[Appearance]
AntiAliasFonts=true
BoldIntense=true
ColorScheme=DarkPastels
DimmValue=54
Font=Ubuntu Mono,9,-1,5,75,0,0,0,0,0,Bold
UseFontLineChararacters=false
[General]
DimWhenInactive=false
Name=Můj
Parent=FALLBACK/
[Scrolling]
ScrollBarPosition=2

View File

@ -1,26 +0,0 @@
# 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

View File

@ -1,7 +0,0 @@
{
"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" ]
}

View File

@ -0,0 +1 @@
extra-keys = [['ESC','~','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]

View File

@ -1,119 +0,0 @@
""" 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 :

View File

@ -1,17 +0,0 @@
# 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)

View File

@ -1,6 +0,0 @@
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

View File

@ -1,113 +0,0 @@
" 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:

View File

@ -1,3 +0,0 @@
execute "source ".system("mdexpr-agenda vim 2> /dev/null")
command MDEXPRclose lclose | lexpr []
call scommands#map('m', 'MDEXPR', "n")

View File

@ -1,3 +0,0 @@
unlet b:current_syntax
syntax include @Yaml syntax/yaml.vim
syntax region yamlFrontmatter start=/\%^---$/ end=/^---$/ keepend contains=@Yaml

View File

@ -1,30 +0,0 @@
{
"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]
}
}
}
}

View File

@ -1,5 +0,0 @@
" 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 :

View File

@ -1,51 +0,0 @@
```
%%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-->

View File

@ -1 +0,0 @@
off

Binary file not shown.

View File

@ -1,495 +0,0 @@
" 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 :

View File

@ -1,50 +0,0 @@
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 %',
\ '`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'
\ ]

View File

@ -1 +0,0 @@
{"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"]}

530
.vimrc
View File

@ -1,464 +1,82 @@
""" VIM config file | Jan Andrle | 2024-02-07 (VIM >=8.1) scriptencoding utf-8 | set encoding=utf-8
"" #region B Base let $BASH_ENV = "~/.bashrc"
scriptencoding utf-8 | set encoding=utf-8 packadd! matchit
let $BASH_ENV = "~/.bashrc" set hidden
set runtimepath^=~/.vim/bundle/* set confirm
packadd! matchit set belloff=esc
set hidden set showcmd cmdheight=2 showmode
set wildmenu wildmode=list:longest,list:full
set title set history=500
colorscheme codedark set nobackup nowritebackup noswapfile
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 try
set noerrorbells novisualbell set undodir=~/.vim/undodir undofile | catch | endtry
set belloff=esc
set confirm
set guioptions-=T
cabbrev <expr> %PWD% execute('pwd')
cabbrev <expr> %CD% fnameescape(expand('%:p:h'))
cabbrev <expr> %CS% mini_enhancement#selectedText()
cabbrev <expr> %CW% expand('<cword>')
let mapleader = "\\"
" better for my keyboard, but maybe use `:help keymap`?
nnoremap § @
nnoremap §§ @@
nnoremap ů ;
nnoremap ; :
nnoremap <leader>u U
nnoremap U <c-r>
nnoremap ž <c-]>
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 nmap s <nop>
vmap s <nop>
set sessionoptions-=options nmap S <nop>
command! -nargs=1 vmap S <nop>
\ CLSESSIONcreate :call mini_sessions#create(<f-args>) let mapleader= "s"
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 Im 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 :CtrlPBuffer<cr>
nmap č
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` nnoremap <leader>v :
for ignore in [ '.git', '.npm', 'node_modules' ] nnoremap <leader>a @
exec ':set wildignore+=**'.ignore.'**' nnoremap <leader>A @@
exec ':set wildignore+=**/'.ignore.'/**' nnoremap <leader>u U
endfor nnoremap U <c-r>
set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.png,*.ico nnoremap <leader>l <c-]>
set wildignore+=*.pdf,*.psd nmap <silent><leader>m :nohlsearch<bar>diffupdate<cr>
nmap <leader>e :Vifm<cr> nnoremap <leader>o o<space><bs><esc>
call scommands#map('e', 'Vifm', "n") nnoremap <leader>O O<space><bs><esc>
nnoremap gx :silent exec "!xdg-open '".shellescape(substitute(expand('<cfile>'), '?', '\\?', ''), 1)."'" \| redraw!<cr> nnoremap <s-k> a<cr><esc>
vnoremap gx :silent exec "!xdg-open '".shellescape(substitute(mini_enhancement#selectedText(), '?', '\\?', ''), 1)."'" \| redraw!<cr> for l in [ 'y', 'p', 'P', 'd' ] | for m in [ 'n', 'v' ]
"" #endregion FOS execute m.'noremap <leader>'.l.' "+'.l | endfor | endfor
"" #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") cabbrev <expr> %PWD% execute('pwd')
command! NAVjumps call jaandrle_utils#gotoJumpChange('jump') cabbrev <expr> %CD% fnameescape(expand('%:p:h'))
command! NAVchanges call jaandrle_utils#gotoJumpChange('change') cabbrev <expr> %CW% expand('<cword>')
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 set cursorline cursorcolumn
let g:markdown_fenced_languages= [ 'javascript', 'js=javascript', 'json', 'html', 'php', 'bash', 'vim', 'vimscript=javascript', 'sass' ] set number "foldcolumn=2
augroup conceal set colorcolumn=+1
autocmd! set breakindent breakindentopt=shift:2 showbreak=
au FileType markdown set scrolloff=5 sidescrolloff=10 " offset for lines/columns when scrolling
\ syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained conceal set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime
\| syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\%(\_[^][]\|\[\_[^][]*\]\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart concealends set modeline
au FileType markdown,json set hlsearch incsearch
\ setlocal conceallevel=2 set smarttab
augroup END command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args>
augroup convenient SETtab 4
autocmd FileType markdown,text setlocal keywordprg=dict set showmatch
autocmd FileType git,gitcommit setlocal foldmethod=syntax foldlevel=1 set backspace=indent,eol,start
augroup END set shiftround autoindent
" PARENTHESES plugin junegunn/rainbow_parentheses.vim filetype plugin indent on
let g:rainbow#pairs= [['(', ')'], ['[', ']'], [ '{', '}' ]] colorscheme codedark
let g:rainbow#blacklist = [203,9] if ($TERM =~ '256' && has("termguicolors"))
autocmd VimEnter * try set termguicolors | endif
\| call rainbow_parentheses#toggle() | catch | endtry if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on")
command! SETTOGGLErainbowParentheses call rainbow_parentheses#toggle() syntax on | endif
" HIGHLIGHT&YANK plugins machakann/vim-highlightedyank & cwordhi.vim set list listchars=tab:»·,trail,extends:#,nbsp:~,space
let g:highlightedyank_highlight_duration= 250 augroup syntax_sync_min_lines
let g:cwordhi#autoload= 1 autocmd!
set showmatch " Quick highlight oppening bracket/… for currently writted autocmd Syntax * syn sync minlines=200
set timeoutlen=1000 ttimeoutlen=0 " Remove timeout when hitting escape TAB augroup END
if v:version > 703 || v:version == 703 && has("patch541") command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif
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 <s-k> a<cr><esc>
for l in [ 'y', 'p', 'P', 'd' ] | for m in [ 'n', 'v' ]
execute m.'noremap <leader>'.l.' "+'.l | endfor | endfor
" ik ak (last change pseudo-text objects) src: https://www.reddit.com/r/vim/comments/ypt6uf/comment/ivl68xu/?utm_source=share&utm_medium=web2x&context=3
xnoremap ik `]o`[
onoremap ik :<C-u>normal vik<cr>
onoremap ak :<C-u>normal vikV<cr>
" FOLDS
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=* SETFOLDindents set foldmethod=indent | let &foldlevel=split(<q-args>, ' ')[0] | let &foldnestmax=split(<q-args>, ' ')[1]
set foldmarker=#region,#endregion
" SAVE VIEW
set viewoptions=cursor,folds
augroup remember__view
autocmd!
autocmd BufWinLeave *.* if &buflisted | mkview | endif
autocmd BufWinEnter *.* silent! loadview
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 doest 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
set completeopt=menuone,preview,noinsert,noselect command! -nargs=0 SETFOLDregions set foldmethod=marker
inoremap <silent><expr> <F1> coc#pum#visible() ? coc#pum#confirm() : coc#refresh() command! -nargs=1 SETFOLDindent set foldmethod=indent | let &foldlevel=<q-args> | let &foldnestmax=<q-args>+1
set wildcharm=<f1> command! -nargs=* SETFOLDindents set foldmethod=indent | let &foldlevel=split(<q-args>, ' ')[0] | let &foldnestmax=split(<q-args>, ' ')[1]
inoremap <silent><expr> <tab> coc#pum#visible() ? coc#pum#next(1) : <sid>check_back_space() ? "\<tab>" : coc#refresh() set foldmarker=#region,#endregion
inoremap <silent><expr> <s-tab> coc#pum#visible() ? coc#pum#prev(1) : "\<c-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
nmap <silent> gd <Plug>(coc-definition) set viewoptions=cursor,folds
nmap <leader>/ :CocSearch augroup remember__view
nmap <leader>? <leader>/ autocmd!
command! -bang NAVdiagnostic call CocActionAsync('diagnostic'.( "<bang>" == '!' ? 'Previous' : 'Next' )) autocmd BufWinLeave *.* if &buflisted | mkview | endif
command! NAVdefinition call CocActionAsync('jumpDefinition') autocmd BufWinEnter *.* silent! loadview
command! NAVtype call CocActionAsync('jumpTypeDefinition') augroup END
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") inoremap <silent><expr> <tab> pumvisible() ? "\<c-n>" : <sid>check_back_space() ? "\<tab>" : "\<c-n>"
nmap sc :CocList lists<cr> inoremap <silent><expr> <s-tab> pumvisible() ? "\<c-p>" : "\<c-h>"
nmap Sc :CocListResume<cr> function! s:check_back_space() abort
nnoremap <c-g> :CLwhereami<cr> let col = col('.') - 1
command! CLwhereami :call popup_notification([ return !col || getline('.')[col - 1] =~# '\s'
\expand('%:t').( coc#status() != "" ? '/'.CocAction("getCurrentFunctionSymbol")."\t…\t".coc#status() : '' ), endfunction
\" ",
\"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 :

View File

@ -1,26 +0,0 @@
<!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: contain; }
.detail{ position: absolute; bottom: 0; left: 0; padding: .5rem 1rem;
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>

View File

@ -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 **(WIP)** # dotfiles **(Termux variant)**
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,20 +12,11 @@ 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` 1. `gd_branch=main-termux` (see also branches `main`)
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`
@ -33,61 +24,3 @@ see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git
1. `gitdotfiles reset` (`git-dotfiles reset --hard HEAD`) 1. `gitdotfiles reset` (`git-dotfiles reset --hard HEAD`)
1. `gitdotfiles checkout -f` 1. `gitdotfiles checkout -f`
1. `gitdotfiles submodule update --init --recursive` 1. `gitdotfiles submodule update --init --recursive`
## 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)
- [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/)
## PC log (cs)
Sekce obsahuje log změn v Tuxedo laptopu s KDE Neon.
### 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).
### kwin-tiling
- https://gitlab.com/faho/kwin-tiling/
<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>

View File

@ -1,76 +0,0 @@
#!/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:

View File

@ -1,82 +0,0 @@
#!/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); }
};
}

View File

@ -1,418 +0,0 @@
#!/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)));
}

View File

@ -1,216 +0,0 @@
{
"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": "2023-12-20T15:25:06Z",
"downloads": "/home/jaandrle/bin/github-desktop",
"version": "release-3.3.6-linux3"
},
{
"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-01-05T14:44:27Z",
"downloads": "/home/jaandrle/bin/youtube-music",
"version": "v3.2.2"
},
{
"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": "OCR powered screen-capture tool to capture information instead of images",
"group": "nondev",
"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-01-16T09:54:25Z",
"downloads": "/home/jaandrle/bin/upscayl",
"version": "v2.9.8"
},
{
"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": "2023-06-30T07:48:58Z",
"downloads": "/home/jaandrle/bin/bs",
"version": "v0.7.3"
},
{
"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-01-29T10:29:58Z",
"downloads": "/home/jaandrle/bin/fedistar",
"version": "v1.8.3"
},
{
"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-01-26T18:19:36Z",
"downloads": "/home/jaandrle/bin/ollama",
"version": "v0.1.22"
},
{
"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": "2023-12-27T01:18:21Z",
"downloads": "/home/jaandrle/bin/escrcpy",
"version": "v1.16.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-01-29T05:19:22Z",
"downloads": "/home/jaandrle/bin/jan",
"version": "v0.4.5"
}
]
}

View File

@ -1,19 +0,0 @@
#!/usr/bin/env nodejsscript
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
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": "Js7Qu0oT_wTmGJDFKlIZEBhwk87WF0L1wLmQO01F",
"accept": "application/json", "Content-Type": "application/json"
},
method: "post"
}).then(res=>res.json());
echo(res);
})
.parse();

View File

@ -1,9 +0,0 @@
#!/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

View File

@ -1,71 +0,0 @@
#!/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");
}

View File

@ -1,10 +0,0 @@
[ ! -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

View File

@ -1,80 +0,0 @@
#!/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("2023-08-11")
.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;
}

View File

@ -1,166 +0,0 @@
#!/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,
j=> (console.log(j), j),
format==="regular" ? 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:

View File

@ -1,26 +0,0 @@
#!/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 }"

View File

@ -1,34 +0,0 @@
#!/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"

View File

@ -1,6 +0,0 @@
#!/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:])))' "$*"`

View File

@ -1,60 +0,0 @@
#!/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.");
}
}

View File

@ -1,94 +0,0 @@
#!/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 :

View File

@ -1,71 +0,0 @@
#!/bin/bash
this="${0##*/}"
this_version="2021-12-01"
err() { printf >&2 "Error: $*\n"; exit 1; }
log() { printf ":: $* ::\n"; }
if [ ! -t 0 ]; then
exo-open --launch TerminalEmulator -- -e "$this $*"
exit
fi
action="${1:---help}"
if [[ "$action" = "--help" ]]; then
while read; do printf '%s\n' "$REPLY"
done <<-EOF
$this ($this_version) <andrle.jan@centrum.cz>
Utility for updating my packages managers such as \`npm\`, \`apt\`, \`github-releases\` …
Usage: $this --[help|check|update] [basic|dangerous]
[default] --help: show this text
--check: check updates
--update: update all
--list: list of packages managers
modificators:
[default] basic: checks/updates regular packages managers
dangerous: ↘+also \`pip\`
EOF
exit 0
fi
if [[ "$action" = "--list" ]]; then
echo npm
echo github-releases.js
echo _vim_plugins updates only
echo snap updates only
echo flatpak updates only
echo pip [dangerous]
exit 0
fi
modificator="${2:-basic}"
if [[ "$action" = "--check" ]]; then
log "npm outdated --global (for update use: \`npm update --global\`)"
npm outdated --global
[[ "${?}" = "0" ]] && echo "> all up-to.date"
log "github-releases.js --check (for update use for example: \`github-releases.js --update all\`)"
github-releases.js --check
if [[ ! "$modificator" = "basic" ]]; then
log "pip list --outdated"
pip list --outdated
fi
exit 0
fi
if [[ "$action" = "--update" ]]; then
log "npm update --global"
npm update --global
log "github-releases.js --update all"
github-releases.js --update all
log "_vim_plugins --update"
_vim_plugins --update
log "snap refresh --list"
snap refresh --list
log "flatpak update"
flatpak update
if [[ ! "$modificator" = "basic" ]]; then
log "pip list --outdated --format=freeze | grep -v '^\\-e' | cut -d = -f 1 | xargs -n1 pip install -U --user"
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U --user
fi
exit 0
fi
err "Wrong arguments (use \`--help\`)"

View File

@ -1,22 +0,0 @@
#!/usr/bin/env nodejsscript
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true *//* global echo, $, pipe, s, style, fetch, cyclicLoop */
$.is_fatal= true;
$.api("<lang>")
.version("2022-09-23")
.describe("This is just wrapper around 'trans' cli utility.")
.option("-b", "Turn off '-b' parametrer for 'trans' which is give by this script.")
.option("-c", "Redirect into clipboard ('| xclip -selection clipboard')")
.example("2en pes → 'trans cs:en -b pes'")
.example("en -b dog → 'trans en:cs dog'")
.action(function main(lang, { _: query, c: to_clipboard, b: to_long }){
query= [ `"${query.join(" ").replaceAll('"', '\\"')}"` ];
if(!to_long) query.unshift('-b');
query.unshift(lang[0]==="2" ? lang.replace("2", "cs:") : ( lang.indexOf(":")!==-1 ? lang : lang+":cs" ));
query.push('-no-ansi');
const result= s.$().run("trans "+query.join(" "));
if(!to_clipboard) return echo(result.toString());
result.runA("xclip -selection clipboard 2> /dev/null 1> /dev/null")
.then($.exit.bind(null, 0)).catch($.exit.bind(null, 1));
})
.parse(process.argv);

View File

@ -1,58 +0,0 @@
#!/bin/bash
this="${0##*/}"
this_version="2021-01-22"
USAGE="\
$this@v$this_version
Wrapper around '/etc/os-release' to show Ubuntu (like) os info.
Usage: $this --[help|all|raw]
'all' [default] prints all infos
'pick' prints only given key (default key is 'DESCRIPTION')
'raw' cats '/etc/os-release'
'help' prints this text
Examples:
$this --all
$this --pick NAME
$this --pick VERSION_NAME
$this --all | grep NAME
"
arg=${1:---all}
if [[ "$arg" = "--help" ]]; then
echo -e "$USAGE"
exit 0
fi
if [[ "$arg" = "--raw" ]]; then
cat /etc/os-release
exit 0
fi
. /etc/os-release
out="ID=$ID"
out="${out}\nDESCRIPTION=$PRETTY_NAME"
case "$ID" in
neon) out="${out}\nNAME=$NAME (${VARIANT:-User Edition})"
out="${out}\nVERSION=$VERSION ($VERSION_ID)"
;;
*) out="${out}\nNAME=$NAME"
out="${out}\nVERSION=$VERSION"
;;
esac
out="${out}\nVERSION_NICK=$UBUNTU_CODENAME"
codename=`grep $(lsb_release -rs) /usr/share/python-apt/templates/Ubuntu.info | grep -m 1 "Description: Ubuntu " | cut -d "'" -f2`
out="${out}\nVERSION_NAME=$codename"
# http://www.releases.ubuntu.com/jammy/
out="${out}\nLIKE=$ID_LIKE"
out="${out}\n`grep URL /etc/os-release | sed 's/^\([A-Z_]*\)_URL/URL_\1/'`"
if [[ "$arg" = "--all" ]]; then
echo -e "$out"
exit 0
fi
if [[ "$arg" = "--pick" ]]; then
echo -e `echo -e "$out" | grep "\b${2:-DESCRIPTION}\b" | cut -d = -f 2-`
exit 0
fi
echo "Wrong argument, see '--help'."
exit 1

View File

@ -1,3 +0,0 @@
#!/bin/bash
find ~/.vim/undodir/ -maxdepth 1 -mindepth 1 -type f -mtime +180 -delete
find ~/.vim/view/ -maxdepth 1 -mindepth 1 -type f -mtime +180 -delete

View File

@ -1,281 +0,0 @@
#!/usr/bin/env nodejsscript
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
//TODO: save options!?
$.is_fatal= true;
const dirs= { vim_root: $.xdg.home`.vim` };
Object.assign(dirs, {
pack: dirs.vim_root+"/pack/",
bundle: dirs.vim_root+"/bundle/",
one_files: dirs.vim_root+"/bundle/__one_files/plugin/" });
const file_one_file= dirs.bundle+"one_file.json";
const runResToArr= pipe( s.$().run, ({ stderr, stdout })=> stdout+stderr, o=> o.split("\n"));
const css= echo.css`
.code{ color: yellow; }
.code::before, .code::after{ content: "\`"; }
.url{ color: lightblue; }
.bold{ color: magenta; }
`;
$.api()
.version("2023-04-18")
.describe([
"Utility for managing vim plugins “native” way. It uses two types:",
`- “old” way (${f("bundle", css.code)}): inspiration from ${f("https://shapeshed.com/vim-packages/", css.url)}`,
`- vim8 native package managing (${f("pack", css.code)}): see for example ${f("https://shapeshed.com/vim-packages/", css.url)}`
])
.command("path <type>", [ "Prints paths for given package type",
"Use (S is alias for this script name):",
"- "+f("cd `S path bundle`", css.code),
"- "+f("cd `S path one_files`", css.code),
"- "+f("cd `S path pack`", css.code)
])
.action(function(type){ echo(dirs[type]); $.exit(0); })
.command("clone <type> <url>", [ "Add/install new package.",
`Use ${f("bundle", css.code )}/${f("pack", css.code)} to specify the package ${f("type", css.code)}.`,
`The ${f("url", css.url)} should be a URL to the script itself or url of the git repository or github repository in the form of ${f("username/reponame", css.url)}.`
])
.alias("C")
.option("--target, -t [target]", `In case of ${f("pack", css.code)} type, specify the target sub-directory (typically/defaults ${f("start", css.code)}).`)
.option("--branch, -b [branch]", `In case of ${f("git", css.bold)} repository, specify the branch if it is different from default one.`)
.action(function(type, url, options){
switch(type){
case "bundle": return addBundle(url);
case "pack": return addPack(url, options);
}
echo("Nothing todo, check given arguments (compare to `--help`):", { type, url, options });
$.exit(1);
})
.command("remove <type> <path>", [ "Remove/uninstall package.",
`As ${f("type", css.bold)}/${f("path", css.bold)} use output printed by ${f("list", css.code)} command.`
])
.alias("R").alias("rm")
.action(function(type, path){
switch(type){
case "bundle": return removeBundle(path);
case "pack": return removePack(path);
}
echo("Nothing todo, check given arguments (compare to `--help`):", { type, path });
$.exit(1);
})
.command("list", "List all plugins paths/url/… (based on option).")
.alias("L").alias("ls")
.option("--type, -t [type]", `Defaults to list of paths (${f("paths", css.code)}). Use ${f("repos", css.code)} to show plugins origin.`)
.example("list")
.example("list --type paths")
.example("list --type repos")
.action(actionList)
.command("export", "List all plugins in the form that can be imported by this Utility.")
.action(actionList.bind(null, { type: "json" }))
.command("status", "Loops through all installed plugins and shows overall status.")
.alias("S")
.action(actionStatus)
.command("pull", "Loops through all installed plugins and updates them.")
.alias("P").alias("update")
.action(actionUpdate)
.parse();
function removePack(path){
s.cd(dirs.pack);
s.$("-V").rm("-rf", path);
const root= dirs.pack+path.split("/")[0];
const { code, stdout }= s.$().find(root+"/*/*");
if(!code) echo(stdout);
else if(s.test("-d", root))
s.$("-V").rm("-rf", root);
$.exit(0);
}
function removeBundle(path){
const is_onefile= dirs.one_files.endsWith(path.split("/").slice(0, 2).join("/")+"/");
const name= path.slice(path.lastIndexOf("/")+1);
s.cd(dirs.bundle);
if(is_onefile){
s.rm("-f", path);
pipe( s.cat, JSON.parse, f=> f.filter(u=> !u.endsWith(name)), JSON.stringify, s.echo )
(file_one_file).to(file_one_file);
} else {
s.run`git submodule deinit -f ${path}`;
s.run`git rm ${path}`;
s.rm("-rf", ".git/modules/"+path);
}
const type= is_onefile ? "file" : "repo";
s.run`git commit --all -m "Remove ${type}: ${name}"`;
$.exit(0);
}
async function addBundle(url){
const is_onefile= url.endsWith(".vim");
if(!is_onefile)
url= gitUrl(url);
const name= url.split(/[\/\.]/g).at(is_onefile ? -2 : -1);
s.cd(dirs.bundle);
if(is_onefile){
const file= await fetch(url).then(r=> r.text());
s.echo(file).to(dirs.one_files+name+".vim");
const log= new Set(s.cat(file_one_file).xargs(JSON.parse));
log.add(url);
s.echo(JSON.stringify([ ...log ])).to(file_one_file);
} else {
s.run`git submodule init`;
s.run`git submodule add ${url}`;
}
s.run`git add .`;
const type= is_onefile ? "file" : "repo";
s.run`git commit -m "Added ${type}: ${name}"`;
$.exit(0);
}
/** @param {string} url @param {{ target: "start", branch?: string }} options */
function addPack(url, { target= "start", branch }){
url= gitUrl(url);
const author= url.split(/[:\/]/).at(-2);
const path= dirs.pack+author+"/"+target;
s.mkdir("-p", path);
s.cd(path);
branch= !branch ? "" : `-b ${branch}`;
s.run`git clone ${branch} --single-branch ${url} --depth 1`;
$.exit(0);
}
function gitUrl(url_candidate){
if(url_candidate.endsWith(".git"))
return url_candidate;
return "git@github.com:"+url_candidate;
}
async function actionUpdate(){
const css= echo.css`
.success{ color: lightgreen; }
.success::before{ content: "✓ "; }
`;
updateRepo(dirs.bundle, getBundle());
const todo= getOneFilesUrls();
const progress= echoProgress(todo.length, "Downloaded one-file plugins");
await Promise.all(todo.map(function(url, i){
return fetch(url).then(r=> {
progress.update(i, url);
return r.text();
}).then(f=> s.echo(f).to(dirs.one_files+fileName(url)));
}));
echo("One-file plugin(s) updated.");
s.cd(dirs.bundle).$().run`git commit -m "Update"`;
updateRepo(dirs.pack, getPack());
$.exit(0);
function updateRepo(dir, paths){
echo(dir);
const progress= echoProgress(paths.length, "Pulling");
const todo= paths.map(function(p, i){
progress.update(i, p);
return pull(p);
}).filter(isUpToDate);
if(!todo.length)
return echo("%cAll up-to-date!", css.success);
todo.forEach(([ p, result ])=> echo("%c"+p+"\n", css.success, result.join("\n")));
}
function pull(p){
s.cd(p);
return [ p, runResToArr("git pull") ];
}
function isUpToDate([ _, result ]){
return result[0]===" Already up-to-date.";
}
}
function actionList({ type= "paths" }){
if("paths"===type){
echo("%cbundle", css.bold, dirs.bundle);
getOneFiles().forEach(echoPath);
getBundle().forEach(echoPath);
echo("%cpack", css.bold, dirs.pack);
getPack().forEach(echoPath);
$.exit(0);
}
const progress= echoProgress(3, "Collecting plugins urls");
progress.update(0, dirs.bundle);
const urls_bundle= getBundle().map(getRepo);
progress.update(1, dirs.bundle);
const urls_onefiles= getOneFilesUrls();
progress.update(2, dirs.pack);
const urls_pack= getPack().map(getRepo);
if("repos"===type){
const echoUrl= pipe(
u=> u.replace("git@github.com:", "https://github.com/"),
u=> f(u, css.url),
echo
)
echo("%cbundle", css.bold, dirs.bundle);
urls_bundle.forEach(echoUrl);
echo("%cbundle", css.bold, dirs.one_files);
urls_onefiles.forEach(echoUrl);
echo("%cpack", css.bold, dirs.pack);
urls_pack.forEach(echoUrl);
}
if("json"===type){ //TODO: save options!?
const o= {};
o.bundle= urls_bundle;
o.one_files= urls_onefiles;
o.pack= urls_pack;
echo(JSON.stringify(o));
}
$.exit(0);
function getRepo(p){ s.cd(p); return runResToArr("git remote -v")[0].split(/\s+/g)[1]; }
}
function actionStatus(){
const css= echo.css`
.success { color: lightgreen; }
.success::before { content: "✓ "; }
`;
check(dirs.bundle, getBundle());
echo("Onefiles plugins are not supported yet");
check(dirs.pack, getPack());
$.exit(0);
function check(root, repos){
echo(root);
const progress= echoProgress(repos.length);
const results= repos.flatMap(function(p, i){
progress.update(i, p);
s.cd(p);
const result= runResToArr("git fetch --dry-run --verbose")
.filter(l=> !l ? false : l.startsWith("From") || (!l.startsWith(" = [up-to-date]") && !l.startsWith("POST") ));
if(result.length===1) return [];
return [ [ p, result.join("\n") ] ];
});
if(!results.length)
return echo("%cup-to-date", css.success);
results.forEach(([ p, l ])=> {
echoPath(p);
echo(l);
});
}
}
import { relative } from 'node:path';
function echoPath(path){ return echo(formatPath(path)); }
function formatPath(path){
const type= path.startsWith(dirs.bundle) ? "bundle" : "pack";
return echo.format("%c"+relative(dirs[type], path), "color:lightblue");
}
import { stdout } from 'node:process';
function echoProgress(length, message_start= "Working"){
if(typeof stdout.isTTY === "undefined") return { update(){} };
const css= echo.css`
.progress { color: lightblue; }
`;
echo.use("-R", `${message_start} (%c0/${length}%c)`, css.progress);
return {
update(i, status){
const s= status ? `: ${status}` : "";
return echo.use("-R", `${message_start} (%c${i+1}/${length}%c)${s}`, css.progress);
}
};
}
function getPack(){ return s.ls(dirs.pack).flatMap(f=> s.find(dirs.pack+f+"/start/*/")[0]).filter(Boolean); }
function getBundle(){ return s.cd(dirs.bundle).grep("path", ".gitmodules").split("\n").filter(Boolean).map(l=> dirs.bundle+l.split(" = ")[1]); }
function getOneFiles(){ return s.find(dirs.one_files+"*"); }
function getOneFilesUrls(){ return s.cat(file_one_file).xargs(JSON.parse); }
function fileName(url){ return url.split("/").pop(); }
/** Quick formating of one piece of text. */
function f(text, css){ return echo.format("%c"+text, css); }

View File

@ -1,44 +0,0 @@
#!/usr/bin/env node
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
import { readFileSync, writeFileSync, createWriteStream } from "fs";
import { get } from "https";
import { homedir } from "os";
const url_main= "https://www.bing.com";
const folder= homedir()+"/Obrázky/Bing Image Of The Day/";
get_(url_main+"/HPImageArchive.aspx?format=js&idx=0&n=2&mkt=cs-CZ")
.then(res=> {
let body= "";
res.on("data", chunk=> body+= chunk);
res.on("end", ()=> pipe(data, update)(body));
})
.catch(e=> console.error(String(e)));
function update(data){
if(data===null) return false;
Promise.allSettled(data.map(({ url, copyright }, id)=> getImage_(url, id ? "prev" : "now", copyright)))
.then(res=> {
let template= readFileSync(folder+"index_template.html").toString();
writeFileSync(folder+"index.html", res.reduce((out, { status, value })=> status==="rejected" ? out : out.replace(`::${value.name}::`, value.description), template));
})
.catch(e=> console.error(String(e)));
}
function getImage_(url, name, desc){
const description= desc.replace("(©", "<br>(©");
return get_(url_main+url)
.then(res=> {
const fs= createWriteStream(folder+name+'.jpg');
res.pipe(fs);
return new Promise(res=> fs.on("finish", ()=> {
fs.close();
res({ name, description });
}));
});
}
function data(body){
try { return JSON.parse(body).images; }
catch (_) { return null; }
}
function get_(url){ return new Promise(function(res,rej){ get(url, res).on("error", rej); }); }
function pipe(...f){ return Array.prototype.reduce.bind(f, (acc, f)=> f(acc)); }