6 Commits

Author SHA1 Message Date
jaandrle 1a9bfb612a potd 2025-09-11 15:14:17 +02:00
jaandrle ac48910f5e 🔤 Update README with instructions for setting up dotfiles on termux 2024-02-28 14:20:28 +01:00
jaandrle 4a6a47950f 🐛 source complete_alias 2024-02-28 14:10:14 +01:00
jaandrle 361beea62b completition 2024-02-28 14:06:02 +01:00
jaandrle c7193de91f gitdotfiles 2024-02-28 12:52:58 +01:00
jaandrle fba5b40824 Termux variant 2024-02-28 12:48:12 +01:00
167 changed files with 1036 additions and 9101 deletions
-84
View File
@@ -1,84 +0,0 @@
# jaandrle customizations
include "/usr/share/X11/locale/cs_CZ.UTF-8/Compose" # Include Czech locale Compose file
<Multi_key> <backslash> <space> : "" U202F # Thin non-breaking space
<Multi_key> <bar> <space> : "" U200B # Zero-width space
<Multi_key> <8> <8> : "∞" U221E # Infinity symbol
<Multi_key> <equal> <equal>: "≡" # Triple equals (identical to)
<Multi_key> <asciitilde> <asciitilde>: "≈" # Almost equal to
<Multi_key> <equal> <asciitilde>: "≃" # Asymptotically equal to
<Multi_key> <asterisk> <asterisk>: "★" # Black star
<Multi_key> <c> <h> <e> <c> <k> : "✓" # Check mark
<Multi_key> <c> <r> <o> <s> <s> : "✗" # Ballot X (cross mark)
# Arrows (numeric keypad and number row)
<Multi_key> <a> <minus> <8> : "↑" # Up arrow (numeric keypad)
<Multi_key> <a> <minus> <6> : "→" # Right arrow (numeric keypad)
<Multi_key> <a> <minus> <2> : "↓" # Down arrow (numeric keypad)
<Multi_key> <a> <minus> <4> : "←" # Left arrow (numeric keypad)
<Multi_key> <a> <minus> <5> : "↔" # Left-right arrow (numeric keypad)
<Multi_key> <a> <minus> <7> : "↖" # Up-left arrow (numeric keypad)
<Multi_key> <a> <minus> <9> : "↗" # Up-right arrow (numeric keypad)
<Multi_key> <a> <minus> <3> : "↘" # Down-right arrow (numeric keypad)
<Multi_key> <a> <minus> <1> : "↙" # Down-left arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_8> : "↑" # Up arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_6> : "→" # Right arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_2> : "↓" # Down arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_4> : "←" # Left arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_5> : "↔" # Left-right arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_7> : "↖" # Up-left arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_9> : "↗" # Up-right arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_3> : "↘" # Down-right arrow (numeric keypad)
<Multi_key> <a> <minus> <KP_1> : "↙" # Down-left arrow (numeric keypad)
# Double-arrows (numeric keypad and number row)
<Multi_key> <a> <equal> <8> : "⇑" # Double up arrow (numeric keypad)
<Multi_key> <a> <equal> <6> : "⇒" # Double right arrow (numeric keypad)
<Multi_key> <a> <equal> <2> : "⇓" # Double down arrow (numeric keypad)
<Multi_key> <a> <equal> <4> : "⇐" # Double left arrow (numeric keypad)
<Multi_key> <a> <equal> <5> : "⇔" # Double left-right arrow (numeric keypad)
<Multi_key> <a> <equal> <KP_8> : "⇑" # Double up arrow (numeric keypad)
<Multi_key> <a> <equal> <KP_6> : "⇒" # Double right arrow (numeric keypad)
<Multi_key> <a> <equal> <KP_2> : "⇓" # Double down arrow (numeric keypad)
<Multi_key> <a> <equal> <KP_4> : "⇐" # Double left arrow (numeric keypad)
<Multi_key> <a> <equal> <KP_5> : "⇔" # Double left-right arrow (numeric keypad)
# Greek letters (lowercase)
<Multi_key> <g> <a> : "α" # Alpha (greek letter lowercase)
<Multi_key> <g> <b> : "β" # Beta (greek letter lowercase)
<Multi_key> <g> <g> : "γ" # Gamma (greek letter lowercase)
<Multi_key> <g> <d> : "δ" # Delta (greek letter lowercase)
<Multi_key> <g> <3> : "ε" # Epsilon (greek letter lowercase)
<Multi_key> <g> <z> : "ζ" # Zeta (greek letter lowercase)
<Multi_key> <g> <e> : "η" # Eta (greek letter lowercase)
<Multi_key> <g> <h> : "θ" # Theta (greek letter lowercase)
<Multi_key> <g> <i> : "ι" # Iota (greek letter lowercase)
<Multi_key> <g> <k> : "κ" # Kappa (greek letter lowercase)
<Multi_key> <g> <l> : "λ" # Lambda (greek letter lowercase)
<Multi_key> <g> <m> : "μ" # Mu (greek letter lowercase)
<Multi_key> <g> <n> : "ν" # Nu (greek letter lowercase)
<Multi_key> <g> <x> : "ξ" # Xi (greek letter lowercase)
# note: no omicron (greek letter lowercase)
<Multi_key> <g> <p> : "π" # Pi (greek letter lowercase)
<Multi_key> <G> <k> : "Ϟ" # Koppa (old greek letter lowercase)
<Multi_key> <g> <r> : "ρ" # Rho (greek letter lowercase)
<Multi_key> <g> <s> : "σ" # Sigma (greek letter lowercase)
<Multi_key> <g> <t> : "τ" # Tau (greek letter lowercase)
<Multi_key> <g> <u> : "ψ" # Psi (greek letter lowercase)
<Multi_key> <g> <f> : "φ" # Phi (greek letter lowercase)
<Multi_key> <g> <c> : "χ" # Chi (greek letter lowercase)
<Multi_key> <g> <o> : "ω" # Omega (greek letter lowercase)
# Greek letters (uppercase)
<Multi_key> <g> <G> : "Γ" # Gamma (greek letter uppercase)
<Multi_key> <g> <D> : "Δ" # Delta (greek letter uppercase)
<Multi_key> <g> <H> : "Θ" # Theta (greek letter uppercase)
<Multi_key> <g> <L> : "Λ" # Lambda (greek letter uppercase)
<Multi_key> <g> <X> : "Ξ" # Xi (greek letter uppercase)
<Multi_key> <g> <P> : "Π" # Pi (greek letter uppercase)
<Multi_key> <g> <S> : "Σ" # Sigma (greek letter uppercase)
<Multi_key> <g> <F> : "Φ" # Phi (greek letter uppercase)
<Multi_key> <g> <U> : "Ψ" # Psi (greek letter uppercase)
<Multi_key> <g> <O> : "Ω" # Omega (greek letter uppercase)
# Math (https://gist.github.com/m93a/187539552593dd4ed8b122167c09384c)
<Multi_key> <m> <E> : "∃" # There exists (math symbol)
<Multi_key> <m> <exclam> <E> : "∄" # There does not exist (math symbol)
<Multi_key> <m> <minus> : "" # Minus sign (math symbol)
<Multi_key> <m> <exclam> <minus> : "¬" # Logical NOT (math symbol)
<Multi_key> <m> <i> <n> : "∈" # Element of (math symbol)
<Multi_key> <m> <exclam> <i> <n> : "∉" # Not an element of (math symbol)
-24
View File
@@ -1,24 +0,0 @@
# Bash Configuration
This directory contains the bash configuration files organized by responsibility.
## Structure
```
.bash/
```
- [`system/`](./system/README.md): System-level configurations for `.profile`
- [`shell/`](./shell/README.md): Shell-specific configurations
- [`toolchains/`](./toolchains/README.md): (Development) toolchain configurations
- [`hooks/`](./hooks/README.md): hooks scripts
## Usage
The main `.bashrc` and `.profile` files source the appropriate index files from each category:
```bash
# In .bashrc:
[ -f "$BASH_DOTFILES/system/index.sh" ] && . "$BASH_DOTFILES/system/index.sh"
[ -f "$BASH_DOTFILES/shell/index.sh" ] && . "$BASH_DOTFILES/shell/index.sh"
[ -f "$BASH_DOTFILES/toolchains/index.sh" ] && . "$BASH_DOTFILES/toolchains/index.sh"
```
-14
View File
@@ -1,14 +0,0 @@
# Hook Scripts
Bash hook scripts executed at specific points during shell operation.
## Files
- `oncd` - Executed on directory change
- `onprompt` - Executed when displaying prompt
## Important Notes
- Hooks should be fast and non-blocking
- Currently minimal implementations
- Can be extended for additional functionality
-4
View File
@@ -1,4 +0,0 @@
#!/bin/env bash
if [[ -f "/dev/shm/bash/$BASHPID/oncd" ]]; then
source "/dev/shm/bash/$BASHPID/oncd"
fi
-5
View File
@@ -1,5 +0,0 @@
#!/bin/env bash
if [[ -f "/dev/shm/bash/$BASHPID/onexit" ]]; then
source "/dev/shm/bash/$BASHPID/onexit"
fi
rm -rf /dev/shm/bash/$BASHPID
-4
View File
@@ -1,4 +0,0 @@
#! /bin/env bash
if [[ -x /usr/bin/neofetch ]]; then
neofetch
fi
-5
View File
@@ -1,5 +0,0 @@
#!/bin/env bash
if [[ -f "/dev/shm/bash/$BASHPID/onpostgit" ]]; then
source "/dev/shm/bash/$BASHPID/onpostgit"
fi
git
-5
View File
@@ -1,5 +0,0 @@
#!/bin/env bash
if [[ -f "/dev/shm/bash/$BASHPID/onprompt" ]]; then
source "/dev/shm/bash/$BASHPID/onprompt"
fi
history -a
-19
View File
@@ -1,19 +0,0 @@
# Shell Configuration
Shell-specific bash configurations controlling shell behavior and appearance.
## Files
- `index.sh` - Main entry point
- `bindings.sh` - Key bindings and editor settings
- `complete-alias/` - Alias completion system with test suite (submodule)
- `completion/` - Completion function scripts
- `completion.sh` - Tab completion configurations
- `config.sh` - General shell settings
- `history.sh` - History control
- `ux.sh` - Prompt and UI/UX configuration (renamed from ui.sh)
## Important Notes
- Controls how bash behaves and looks
- Automatically sourced by main `.bashrc`
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Editor bindings and preferences
export EDITOR='vim'
export SUDO_EDITOR="$HOME/.local/bin/vim"
export PAGER="less -RFX"
[[ "$-" != *i* ]] && return
set -o vi # Vi editing mode
bind -m vi-command 'Control-l: clear-screen'
bind -m vi-insert 'Control-l: clear-screen'
# export MANPAGER="/bin/sh -c \"sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | vim --appimage-extract-and-run --not-a-term -c 'set ft=man ts=8 nomod nolist noma' -\""
export MANPAGER="vim --appimage-extract-and-run +MANPAGER --not-a-term -c 'set ts=8 nolist number' -"
alias cat=/usr/local/bin/vimcat
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env bash
[[ "$-" != *i* ]] && return
if ! shopt -oq posix; then # Enable programmable completion features
if [ -f /usr/share/bash-completion/bash_completion ]; then
source /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
source /etc/bash_completion
fi
fi
SCRIPT_DIR=$(builtin cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
source "$SCRIPT_DIR/complete-alias/complete_alias"
source <(bs .completion bash)
source <(gh completion -s bash)
source <(roxy completions bash)
source <(node --completion-bash)
source <(npm completion)
source <(nodejsscript --completion bash)
# NPX completion
_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
# On demand
alias C--pnpm='source "$BASH_DOTFILES/shell/completion/pnpm.completion"'
alias C--cordova='source "$BASH_DOTFILES/shell/completion/cordova.completion"'
alias C--uu='source <($HOME/.local/bin/uu --completion-bash)'
alias C--jc='source <(jc -B)'
alias C--but='source <(but completions bash)'
-134
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
-32
View File
@@ -1,32 +0,0 @@
###-begin-pnpm-completion-###
if type complete &>/dev/null; then
_pnpm_completion () {
local words cword
if type _get_comp_words_by_ref &>/dev/null; then
_get_comp_words_by_ref -n = -n @ -n : -w words -i cword
else
cword="$COMP_CWORD"
words=("${COMP_WORDS[@]}")
fi
local si="$IFS"
IFS=$'\n' COMPREPLY=($(COMP_CWORD="$cword" \
COMP_LINE="$COMP_LINE" \
COMP_POINT="$COMP_POINT" \
SHELL=bash \
pnpm completion-server -- "${words[@]}" \
2>/dev/null)) || return $?
IFS="$si"
if [ "$COMPREPLY" = "__tabtab_complete_files__" ]; then
COMPREPLY=($(compgen -f -- "$cword"))
fi
if type __ltrim_colon_completions &>/dev/null; then
__ltrim_colon_completions "${words[cword]}"
fi
}
complete -o default -F _pnpm_completion pnpm
fi
###-end-pnpm-completion-###
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# General shell configuration
# use `2>/dev/null` for prevent fail when on old bash
shopt -s expand_aliases
export GPG_TTY=$(tty)
shopt -s globstar 2>/dev/null || true # Recursive globbing
[[ "$-" != *i* ]] && return
# Auto-correct
shopt -s cdspell
shopt -s dirspell 2>/dev/null || true
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/env bash
[[ "$-" != *i* ]] && return
export HISTCONTROL="ignoreboth:erasedups"
shopt -s histappend cmdhist
export HISTFILESIZE=10000
export HISTSIZE="$HISTFILESIZE"
export HISTIGNORE="?? :but:but rub *:but commit:but ?? ?? :tree:vim:git:git info:git i:git lazy:git l"
bind '"\C-@": "\e^I history | grep '\''\e\e^A'\''\e\ei"'
-57
View File
@@ -1,57 +0,0 @@
#!/usr/bin/env bash
[[ "$-" != *i* ]] && return
declare -r store_all=/dev/shm/bash
declare -r store_pid="$store_all/$BASHPID/"
declare -r hooks="$BASH_DOTFILES/hooks"
shm() {
local -r hook="$hooks/onfirst"
if [[ ! -d "$store_all" && -f "$hook" ]]; then
source "$hook"
fi
mkdir -p "$store_pid"
trap "source '$hooks/onexit'" EXIT
}
shm
unset -f shm
ON() {
if [[ "$1" == "--help" || "$1" == "-h" ]]; then
echo "Manage bash hooks"
echo "Usage: ON <hook> [pid|all]"
return 0
fi
if [[ -z "$1" ]]; then
tree "$hooks"
tree "$store_pid"
return 0
fi
if [[ ! -f "$hooks/on$1" ]]; then
echo "No such hook: '$1'" >&2
return 1
fi
local -r name="on$1"
local -r where="${2:-pid}" # pid or all
local target="$hooks/$name"
if [[ "$where" == "pid" ]]; then
target="$store_pid/$name"
if [[ ! -f "$target" ]]; then
echo "#!/usr/bin/env bash" > "$target"
chmod u+x "$target"
fi
fi
vim "$target"
}
__ON_complete() {
if [[ "$COMP_CWORD" == 1 ]]; then
COMPREPLY=($(compgen -W "$(for f in "$hooks"/on*; do echo "${f##*/on}"; done)" -- "${COMP_WORDS[COMP_CWORD]}"))
return 0
fi
if [[ "$COMP_CWORD" == 2 ]]; then
COMPREPLY=($(compgen -W "pid all" -- "${COMP_WORDS[COMP_CWORD]}"))
return 0
fi
}
complete -F __ON_complete ON
-9
View File
@@ -1,9 +0,0 @@
#!/usr/bin/env bash
# Shell configuration index
# Source all shell-related configuration files
declare dir="$BASH_DOTFILES/shell"
for file in "$dir"/*.sh; do
[[ -f "$file" && "$file" != "$dir/index.sh" ]] && source "$file"
done
unset dir
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/env bash
[[ "$-" != *i* ]] && return
[[ ! "$(readlink -f /proc/$PPID/exe)" =~ "konsole" ]] && return
[[ ! -x "$(command -v tmux 2>/dev/null)" || -z "$DISPLAY" || -n "$TMUX" ]] && return
tmux new-session -A -s tmux
-95
View File
@@ -1,95 +0,0 @@
#!/usr/bin/env bash
# UI/UX configuration
# Check window size after each command
shopt -s checkwinsize
# Color support for ls and other tools
if [ -x /usr/bin/dircolors ]; then
if [[ -r "$HOME/.dircolors" ]]; then
eval "$(dircolors -b "$HOME/.dircolors")" 2>/dev/null || true
else
eval "$(dircolors -b)" 2>/dev/null || true
fi
fi
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias diff='diff --color=auto'
[[ -x /usr/bin/lesspipe ]] && eval "$(SHELL=/bin/sh lesspipe)" # make less more friendly for non-text input files, see lesspipe(1)
export LS_COLORS="$LS_COLORS:tw=01;04;34:ow=01;04;34:"
alias ls='ls --color=auto -pQFh --group-directories-first'
[[ "$-" != *i* ]] && return
updatePrompt() {
local -r prev_exit="$?"
# color_helper_>>color<< (Note: \[\]= escaping)
local -r chR="\[\033[1;91m\]" #red
local -r chW="\[\033[00m\]" #white
local -r chG="\[\033[01;32m\]" #green
local -r chB="\[\033[0;34m\]" #blue
local -r chP="\[\033[0;35m\]" #purple
local -r chY="\[\033[0;33m\]" #yellow
PS1=""
if [ "$prev_exit" -eq 0 ]; then
PS1+="$chG$chW"
else
PS1+="$chR$chW"
fi
local jobs
jobs=$(jobs -p | wc -w)
[[ "$jobs" -ne 0 ]] && PS1+="${chY}${jobs}${chW}"
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 "
local -r git='command git'
if $git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
local branch
branch="$($git symbolic-ref -q HEAD)"
PS1+="[${branch#refs/heads/}"
local status
status="$($git for-each-ref --format='%(upstream:trackshort)' "$branch" 2>/dev/null | awk '!seen[$1]++ {printf $1}')"
status+="$($git status --porcelain 2>/dev/null | awk '!seen[$1]++ {printf $1}')"
[ "$status" != "" ] && \
PS1+="|$chY$status$chW"
PS1+="] "
fi
PS1+="${chB}\w${chW}"
PS1+="\n${PS1_jaaENV:-:}"
local -r hook="$BASH_DOTFILES/hooks/onprompt"
if [[ -f "$hook" ]]; then
source "$hook"
fi
}
[ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ] \
&& debian_chroot=$(cat /etc/debian_chroot)
setPrompt() {
local color_prompt
[[ $TERM == "xterm-color" ]] || [[ $TERM == *-256color ]] \
&& color_prompt=yes
which tput >&/dev/null && ! tput setaf 1 >&/dev/null \
&& color_prompt=
if [[ "$color_prompt" != yes ]]; then
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND}"
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="updatePrompt${PROMPT_COMMAND:+; $PROMPT_COMMAND}"
PS2="|"
}
setPrompt
unset -f setPrompt
-16
View File
@@ -1,16 +0,0 @@
# System Configuration
System-level bash configurations for environment variables and paths.
## Files
- `index.sh` - Main entry point
- `android.sh` - Android SDK setup
- `bin.sh` - Binary paths and executable configurations
- `gui.sh` - GUI-related environment settings
- `java.sh` - Java environment configuration
## Important Notes
- These configs set environment variables needed system-wide
- Automatically sourced by main `.profile` via index file
-6
View File
@@ -1,6 +0,0 @@
#!/usr/bin/env bash
export ANDROID_HOME_BAK2="$HOME/.local/share/JetBrains/Toolbox/apps/android-studio/"
export ANDROID_HOME_BAK="$HOME/Android/Sdk"
export ANDROID_SDK_ROOT="$HOME/Android/Sdk"
export PATH="$PATH:$ANDROID_SDK_ROOT/platform-tools/"
export PATH="$PATH:$ANDROID_SDK_ROOT/emulator/"
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env bash
[[ -d "$HOME/.local/bin" ]] && \
export PATH="$HOME/.local/bin:$PATH"
export PATH="$PATH:$HOME/.local/share/JetBrains/Toolbox/scripts"
export PATH="$PATH:$HOME/.lmstudio/bin"
-5
View File
@@ -1,5 +0,0 @@
#!/usr/bin/env bash
export APPMENU_DISPLAY_BOTH=1
[[ -z "$UBUNTU_MENUPROXY" ]] && \
export UBUNTU_MENUPROXY=1
export GTK_MODULES UBUNTU_MENUPROXY
-9
View File
@@ -1,9 +0,0 @@
#!/usr/bin/env bash
# System configuration index
# Source all system-related configuration files
declare dir="$BASH_DOTFILES/system"
for file in "$dir"/*.sh; do
[[ -f "$file" && "$file" != "$dir/index.sh" ]] && source "$file"
done
unset dir
-3
View File
@@ -1,3 +0,0 @@
#!/usr/bin/env bash
[[ -z "$JAVA_HOME" ]] && \
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
-45
View File
@@ -1,45 +0,0 @@
# Toolchain Configuration
Development tool configurations including aliases and environment managers.
## Files
- `index.sh` - Main entry point
- `aliases.sh` - Comprehensive aliases collection (grouped by functionality)
- `brew.sh` - Homebrew setup
- `cross-session/` - Cross-session variable management system:
- `index.sh` - Entry point
- `store.sh` - Storage for cross-session variables
- `jaaenv.sh` - Custom environment management (Java, Node.js, PHP, Gradle)
- `nvm-node.sh` - Node/nvm setup
- `portkiller/` - Port killer utility (git submodule)
- `sdkman.sh` - SDKMAN setup
- `tv.sh` - television (completition) setup
- `vifm.sh` - VIFM replaced via this
## Organization
- **Color/UX settings**: Located in `shell/ux.sh`
- **Cross-session management**: Now in `cross-session/` subdirectory
- **Aliases**: Grouped in `aliases.sh` by functionality:
- System aliases (ls, grep, etc.)
- Git and version control
- Utility functions
- Network utilities
- Node.js tools
- RPG utilities
- Process management
- **Environment management**: Split across specialized files:
- `jaaenv.sh` - Main environment system
- `nvm-node.sh` - Node.js version management
- `sdkman.sh` - SDKMAN management
## Important Notes
- Contains development tools and shortcuts
- Environment managers handle Java, Node.js, PHP, Gradle versions
- Automatically sourced by main `.bashrc`
## Todo
- special behaviour inside dolphin? ([`if [[ $(ps -o comm= -p $PPID) == dolphin ]]; then …`](https://unix.stackexchange.com/a/775802))
-144
View File
@@ -1,144 +0,0 @@
#!/usr/bin/env bash
export PATH="$PATH:$HOME/.local/share/soar/bin"
alias vim='vim --servername v'
crossSession 'm0' "$OLDPWD"
cd() {
builtin cd "$@" || return $?
crossSession 'OLDPWD' "$(pwd)"
local -r hook="$BASH_DOTFILES/hooks/oncd"
if [[ -f "$hook" ]]; then
source "$hook"
fi
}
alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'
complete -F _complete_alias gitdotfiles
alias §df='df -Th'
git(){
if [[ -n ${COMP_LINE-} ]]; then # Skip hook logic when bash completion is active
command git "$@"
return $?
fi
if [[ -z "$1" ]]; then
git-i
return $?
fi
command git "$@"
local -r exitcode=$?
local -r hook="$BASH_DOTFILES/hooks/onpostgit"
if [[ -f "$hook" ]]; then
source "$hook"
fi
return $exitcode
}
alias smerge='/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=sublime_merge --file-forwarding com.sublimemerge.App @@u %u @@'
kommit(){
if flatpak info org.kde.kommit > /dev/null 2>&1; then
flatpak run \
--branch=stable --arch=x86_64 \
--file-forwarding \
--command=kommit org.kde.kommit @@u $* @@ > /dev/null 2>&1 & disown;
else
command kommit $* > /dev/null 2>&1 & disown;
fi
}
export SVN_CONFIG_DIR="$HOME/.config/subversion"
alias svn='svn --config-dir "$SVN_CONFIG_DIR"'
§(){
[[ -z "$1" ]] && clear && return 0
echo "$ [--help]= clear or [print this text]"
alias | grep "alias §" --color=never
declare -F | grep 'declare -f §' --color=never
for file in ~/.local/bin/§*; do
[[ -f "$file" ]] && [[ -x "$file" ]] || continue
echo "$file"
done
printenv | grep -e '^l' | xargs -I{} echo \${}
}
bw-session(){
bw logout
login=$(§kwallet.mjs --wallet kdewallet readPassword accounts bw-json)
export BW_CLIENTSECRET=`echo "$login" | jq -r .secret`
export BW_CLIENTID=`echo "$login" | jq -r .id`
bw login --apikey --raw
export BW_SESSION=`bw unlock --raw $(echo "$login" | jq -r .pass)` && echo "Bitwarden session ON" || echo "Bitwarden session FAILED"
unset BW_CLIENTSECRET
unset BW_CLIENTID
}
alias §ps-mem='ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem'
alias §ps-cpu='ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu'
alias §lsoft-all='lsoft -P -i -n'
§ping-test() {
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="\t%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"
}
§curl-location() { curl --silent -I "$1" | grep -i location; }
§interfaces() {
node <<-JAVASCRIPT
var os = require('os');
var i = os.networkInterfaces();
Object.keys(i).forEach(function(name) {
i[name].forEach(function(int) {
if (int.family === 'IPv4') {
console.log('%s: %s', name, int.address);
}
});
});
JAVASCRIPT
}
§speedtest() {
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
}
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$//'\'')"'
§cmdfu() { curl "https://www.commandlinefu.com/commands/matching/$@/$(echo -n $@ | openssl base64)/plaintext"; }
alias npx-wca='npx -y web-component-analyzer'
alias npx-qnm='npx -y qnm'
alias npx-hint='npx -y hint'
alias npx-markdown='npx -y markserv'
alias npx-toon='npx -y @toon-format/cli'
alias ncu='npx npm-check-updates --interactive --format group --cooldown 7'
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-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
}
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
[[ "$-" != *i* ]] && return
if type brew &>/dev/null
then
HOMEBREW_PREFIX="$(brew --prefix)"
if [[ -r "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh" ]]
then
PS1='force' source "${HOMEBREW_PREFIX}/etc/profile.d/bash_completion.sh"
else
for COMPLETION in "${HOMEBREW_PREFIX}/etc/bash_completion.d/"*
do
[[ -r "${COMPLETION}" ]] && source "${COMPLETION}"
done
fi
fi
-39
View File
@@ -1,39 +0,0 @@
#!/usr/bin/env bash
declare -r CROSS_SESSION="$BASH_DOTFILES/toolchains/cross-session/store.sh"
[[ -f "$CROSS_SESSION" ]] && \
source "$CROSS_SESSION"
# Cross session management function
crossSession() {
if [[ '--help' == "${1:---help}" ]]; then
echo 'crossSession [--help]'
echo ' Print this help.'
echo 'crossSession [--list]'
echo ' Lists all cross session variables or print this help.'
echo 'crossSession <name> [<value>]'
echo ' Sets cross session variable <name> to <value> (or empty for unset).'
return 0
fi
if [[ '--list' == "$1" ]]; then
cat "$CROSS_SESSION"
return 0
fi
local name="$1"
local value="$2"
# Check if the variable already exists in the file
if grep -q "^export $name=" "$CROSS_SESSION"; then
if [[ -z "$value" ]]; then
# If new value is empty, remove the variable from the file
sed -i "/^export $name=/d" "$CROSS_SESSION"
else
# If it exists, replace the old value with the new value
sed -i "s|^export $name=.*|export $name=\"$value\"|" "$CROSS_SESSION"
fi
else
if [[ -n "$value" ]]; then
# If it doesn't exist and new value is not empty, append the new variable to the file
echo "export $name='$value'" >> "$CROSS_SESSION"
fi
fi
}
-7
View File
@@ -1,7 +0,0 @@
export OLDPWD="/home/jaandrle/.bash/toolchains"
export mb='/home/jaandrle/.bash'
export m0="/home/jaandrle/.bash/toolchains"
export mg='/home/jaandrle/Vzdálené/GitHub'
export mp='/home/jaandrle/Dokumenty/Projekty'
export mm='/home/jaandrle/Vzdálené/GitHub/Facilitator-App-Native'
export mmbs='/home/jaandrle/.config/bsrc/my/home/jaandrle/Vzdálené/GitHub/Facilitator-App-Native/bs'
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/env bash
# Toolchains configuration index
# Source all toolchain-related configuration files
declare dir="$BASH_DOTFILES/toolchains"
source "$dir/cross-session/index.sh"
for file in "$dir"/*.sh; do
[[ -f "$file" && "$file" != "$dir/index.sh" ]] && source "$file"
done
unset dir
-179
View File
@@ -1,179 +0,0 @@
#!/usr/bin/env bash
# jaaENV - Environment management system
function jaaENV {
if [[ "$1" = "--help" ]]; then
echo "jaaENV - Environment Management System"
echo "Utility to manage multiple tool versions in one config file '.jaaENV'"
echo "Replaces: 'nvm use 16 && sdk use java 11 && ...'"
echo ""
echo "Usage:"
echo " jaaENV # Load settings from .jaaENV or compose.yaml"
echo " jaaENV --help # Show this help"
echo " jaaENV --ls # List available versions (nvm, sdk, php, java)"
echo " jaaENV --save nodejs php # Save current versions to .jaaENV"
echo ""
echo "Example .jaaENV file:"
echo " nodejs=16.13.0"
echo " php=8.1"
echo " java=11"
echo " gradle=7.4"
echo ""
echo "Supported options:"
echo " android_home # Use ANDROID_HOME instead of ANDROID_SDK_ROOT"
echo " jdk # Set JAVA_HOME for Android Studio (9+)"
echo " nodejs|php # Node.js/PHP version management"
echo " java # Java version switching"
echo " gradle # Gradle version management"
echo ""
echo "Requirements:"
echo " NVM: https://github.com/nvm-sh/nvm (Node.js)"
echo " SDKMAN: https://sdkman.io (Java, Gradle, etc.)"
echo " PHP: update-alternatives + https://deb.sury.org/"
echo " Java: update-alternatives"
echo ""
echo "Quick setup:"
echo " sudo update-alternatives --set php /usr/bin/php8.1"
return 0
fi
if [[ "$1" == "--save" ]]; then
shift
rm -vi .jaaENV
while [[ $# -gt 0 ]]; do
case "$1" in
nodejs|node)
echo "nodejs=$(node --version | cut -c2-)" >> .jaaENV
;;
gradle)
echo "gradle=$(gradle --version | awk '/Gradle/ {print $2}')" >> .jaaENV
;;
php)
echo "php=$(php --version | awk '/^PHP/ {print $2}')" >> .jaaENV
;;
java)
local java_version
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ "$java_version" == 1.8* ]]; then
java_version="8"
else
java_version=$(echo "$java_version" | cut -d'.' -f1)
fi
echo "java=$java_version" >> .jaaENV
;;
*)
echo "Unknown '$1' skipped"
;;
esac
shift
done
return 0
fi
if [[ "$1" == "--ls" ]]; then
echo ":: nvm ls --no-alias ::"
nvm ls --no-alias
echo ":: update-alternatives --list php ::"
update-alternatives --list php
echo ":: update-alternatives --list java ::"
update-alternatives --list java
echo ":: sdk ls gradle | grep -E '\*|>' ::"
sdk ls gradle | grep -E '\*|>'
return 0
fi
if [[ -f "compose.yaml" ]]; then
jdk=$(grep -Po 'VERSION_JAVA=\K.*' compose.yaml)
nodejs=$(grep -Po 'VERSION_NODEJS=\K.*' compose.yaml)
elif [[ -f ".jaaENV" ]]; then
source ./.jaaENV
else
echo 'No env file `compose.yaml` or `.jaaENV`'
return 1
fi
local chP="\[\033[0;35m\]" #purple
local chW="\[\033[00m\]" #white
export PS1_jaaENV="${chP}¦${chW}"
if [[ -n "${ANDROID_SDK_ROOT_BAK+x}" ]]; then
export ANDROID_SDK_ROOT="$ANDROID_SDK_ROOT_BAK"
echo "\$ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT_BAK"
unset ANDROID_SDK_ROOT_BAK
fi
if [[ -n "${unset_android_sdk+x}" ]]; then
export ANDROID_SDK_ROOT_BAK="$ANDROID_SDK_ROOT"
unset ANDROID_SDK_ROOT
fi
if [[ -n "${java+x}" ]]; then
if [[ "$java" == "8" ]]; then
java="1.8"
fi
local java_local
java_local=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ "$java_local" != "$java"* ]]; then
if [[ "$java" == "1.8" ]]; then
java="8"
fi
echo "Switching Java version: $java$java_local"
local java_path="/usr/lib/jvm/java-$java-openjdk-amd64/"
if [[ "$java" == "8" ]]; then
java_path+="jre/"
fi
sudo update-alternatives --set java "${java_path}bin/java"
local javac
javac=$(update-alternatives --list javac | grep "java-$java")
if [[ -n "$javac" ]]; then
sudo update-alternatives --set javac "$javac"
fi
sudo -k
fi
export JAVA_HOME=$(readlink -f "$(which java)" | cut -d '/' -f1-5)/
echo "\$JAVA_HOME=$JAVA_HOME"
fi
if [[ -n "${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 [[ -n "${android_home_is_sdk+x}" ]]; then
export ANDROID_HOME="$ANDROID_SDK_ROOT"
echo "\$ANDROID_HOME=$ANDROID_HOME"
fi
if [[ -n "${JAVA_HOME_BAK+x}" ]]; then
export JAVA_HOME="$JAVA_HOME_BAK"
unset JAVA_HOME_BAK
fi
if [[ -n "${jdk+x}" ]]; then
if (( $(echo "$jdk > 9" | bc -l) )); then
export JAVA_HOME_BAK="$JAVA_HOME"
export JAVA_HOME="/snap/android-studio/current/android-studio/jre"
fi
echo "\$JAVA_HOME=$JAVA_HOME"
fi
if [[ -n "${nodejs+x}" ]]; then
if [[ "$(which node)" == *linuxbrew* ]]; then
brew unlink node
fi
nvm use "$nodejs"
fi
if [[ -n "${gradle+x}" ]]; then
sdk use gradle "$gradle" | tr -d '\n'
echo
fi
if [[ -n "${php+x}" ]]; then
local php_local
php_local=$(php --version | awk '/^PHP/ {print $2}')
if [[ "$php_local" == "$php"* ]]; then
echo "PHP version: $php"
else
echo "Switching PHP version: $php$php_local"
sudo update-alternatives --set php "/usr/bin/php$php"
sudo -k
fi
fi
# Cleanup variables
unset android_home unset_android_sdk nodejs gradle php java
}
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/env bash
export NVM_DIR="$HOME/.nvm"
eval "$([[ -s "$NVM_DIR/nvm.sh" ]] && echo "source '$NVM_DIR/nvm.sh'")"
eval "$([[ -s "$NVM_DIR/bash_completion" ]] && echo "source '$NVM_DIR/bash_completion'")"
export NODE_COMPILE_CACHE="$HOME/.cache/nodejs-compile-cache" # https://nolanlawson.com/2024/10/20/why-im-skeptical-of-rewriting-javascript-tools-in-faster-languages/
-7
View File
@@ -1,7 +0,0 @@
#!/usr/bin/env bash
# SDKMAN! - Software Development Kit Manager
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
# Usage: sdk install java 11.0.12-open, sdk use java 11.0.12-open
-462
View File
@@ -1,462 +0,0 @@
#!/usr/bin/env bash
[[ "$-" != *i* ]] && return
_tv() {
local i cur prev opts cmd
COMPREPLY=()
if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
cur="$2"
else
cur="${COMP_WORDS[COMP_CWORD]}"
fi
prev="$3"
cmd=""
opts=""
for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
do
case "${cmd},${i}" in
",$1")
cmd="tv"
;;
tv,help)
cmd="tv__help"
;;
tv,init)
cmd="tv__init"
;;
tv,list-channels)
cmd="tv__list__channels"
;;
tv,update-channels)
cmd="tv__update__channels"
;;
tv__help,help)
cmd="tv__help__help"
;;
tv__help,init)
cmd="tv__help__init"
;;
tv__help,list-channels)
cmd="tv__help__list__channels"
;;
tv__help,update-channels)
cmd="tv__help__update__channels"
;;
*)
;;
esac
done
case "${cmd}" in
tv)
opts="$(tv list-channels) [CHANNEL] -s -p -i -t -k -h -V --source-command --ansi --no-sort --source-display --source-output --source-entry-delimiter --preview-command --preview-header --preview-footer --cache-preview --preview-offset --no-preview --hide-preview --show-preview --preview-border --preview-padding --preview-word-wrap --hide-preview-scrollbar --preview-size --input --input-header --input-prompt --input-position --input-border --input-padding --no-status-bar --hide-status-bar --show-status-bar --results-border --results-padding --layout --no-remote --hide-remote --show-remote --no-help-panel --hide-help-panel --show-help-panel --ui-scale --height --width --inline --tick-rate --watch --autocomplete-prompt --exact --select-1 --take-1 --take-1-fast --keybindings --expect --config-file --cable-dir --global-history --help --version [PATH] list-channels init update-channels help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
--source-command)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-s)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--source-display)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--source-output)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--source-entry-delimiter)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--preview-command)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-p)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--preview-header)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--preview-footer)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--preview-offset)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--preview-border)
COMPREPLY=($(compgen -W "none plain rounded thick" -- "${cur}"))
return 0
;;
--preview-padding)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--preview-size)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--input)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-i)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--input-header)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--input-prompt)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--input-position)
COMPREPLY=($(compgen -W "top bottom" -- "${cur}"))
return 0
;;
--input-border)
COMPREPLY=($(compgen -W "none plain rounded thick" -- "${cur}"))
return 0
;;
--input-padding)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--results-border)
COMPREPLY=($(compgen -W "none plain rounded thick" -- "${cur}"))
return 0
;;
--results-padding)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--layout)
COMPREPLY=($(compgen -W "landscape portrait" -- "${cur}"))
return 0
;;
--ui-scale)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--height)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--width)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--tick-rate)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-t)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--watch)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--autocomplete-prompt)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--keybindings)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
-k)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--expect)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--config-file)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
--cable-dir)
COMPREPLY=($(compgen -f "${cur}"))
return 0
;;
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__help)
opts="list-channels init update-channels help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__help__help)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__help__init)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__help__list__channels)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__help__update__channels)
opts=""
if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__init)
opts="-h --help bash zsh fish power-shell cmd nu"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__list__channels)
opts="-h --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
tv__update__channels)
opts="-h --force --help"
if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
fi
case "${prev}" in
*)
COMPREPLY=()
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
return 0
;;
esac
}
if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
complete -F _tv -o nosort -o bashdefault -o default tv
else
complete -F _tv -o bashdefault -o default tv
fi
_disable_bracketed_paste() {
# Disable bracketed paste mode to prevent unwanted escape sequences
printf '\e[?2004l' > /dev/tty
}
_enable_bracketed_paste() {
# Re-enable bracketed paste mode
printf '\e[?2004h' > /dev/tty
}
__tv_path_completion() {
local base="$1"
local lbuf="$2"
local suffix=""
local tail=" "
local dir leftover matches
# Evaluate the base path (handle ~, variables, etc.)
eval "base=\"$base\"" 2>/dev/null || return
# Extract directory part if base contains a slash
[[ "$base" == *"/"* ]] && dir="$base"
while true; do
if [[ -z "$dir" || -d "$dir" ]]; then
# Calculate leftover part (what comes after the directory)
leftover="${base#"$dir"}"
leftover="${leftover#/}"
# Set default directory if empty
[[ -z "$dir" ]] && dir='.'
# Remove trailing slash unless it's root
[[ "$dir" != "/" ]] && dir="${dir%/}"
# move to the next line so that the prompt is not overwritten
printf "\n"
# Call tv with proper arguments and process output
matches=$(
tv "$dir" --autocomplete-prompt "$lbuf" --no-status-bar --inline --input "$leftover" < /dev/tty | while IFS= read -r item; do
item="${item%$suffix}$suffix"
dirP="$dir/"
[[ "$dirP" == "./" ]] && dirP=""
# Quote the item to handle special characters
printf '%s ' "$dirP$(printf '%q' "$item")"
done
)
# Remove trailing space
matches="${matches% }"
if [[ -n "$matches" ]]; then
# Update readline buffer
local new_line="$lbuf$matches$tail"
local rhs="${READLINE_LINE:$READLINE_POINT}"
READLINE_LINE="$new_line$rhs"
READLINE_POINT=${#new_line}
fi
# move the cursor back to the previous line
printf "\033[A"
break
fi
# Move up one directory level
dir=$(dirname "$dir")
dir="${dir%/}/"
done
}
tv_smart_autocomplete() {
_disable_bracketed_paste
local tokens prefix lbuf
local current_prompt="${READLINE_LINE:0:$READLINE_POINT}"
# Split the current prompt into tokens
# This is a simplified version of zsh's word splitting
read -ra tokens <<< "$current_prompt"
if [[ ${#tokens[@]} -lt 1 ]]; then
# Fall back to default completion if no tokens
_enable_bracketed_paste
return
fi
# Handle trailing space
[[ "${READLINE_LINE:$((READLINE_POINT-1)):1}" == " " ]] && tokens+=("")
# Get the last token as prefix
prefix="${tokens[-1]}"
# Calculate lbuf (everything except the last token)
if [[ -n "$prefix" ]]; then
lbuf="${current_prompt:0:$((${#current_prompt} - ${#prefix}))}"
else
lbuf="$current_prompt"
fi
__tv_path_completion "$prefix" "$lbuf"
_enable_bracketed_paste
}
tv_shell_history() {
_disable_bracketed_paste
local current_prompt="${READLINE_LINE:0:$READLINE_POINT}"
local output
# move to the next line so that the prompt is not overwritten
printf "\n"
# Get history using tv with the same arguments as zsh version
output=$(tv bash-history --no-status-bar --input "$current_prompt" --inline)
if [[ -n "$output" ]]; then
# Clear the right side of cursor and set new line
READLINE_LINE="$output"
READLINE_POINT=${#READLINE_LINE}
# Uncomment this to automatically accept the line
# (i.e. run the command without having to press enter twice)
# accept-line() { echo; }; accept-line
fi
# move the cursor back to the previous line
printf "\033[A"
_enable_bracketed_paste
}
# Bind the functions to key combinations
bind -x '"\C-T": tv_smart_autocomplete'
bind -x '"\C-R": tv_shell_history'
-100
View File
@@ -1,100 +0,0 @@
#!/usr/bin/env bash
# VIFM configuration - migrated from .bash_vifm
vifm() {
\cat <<-"HELP"
Use bash build-in:
- cd (ch dir), ls or tree (list), find
- mkdir (make dir), touch (make file), rm (remove)
- cp (copy), mv (move+rename)
- cat (print file), head (print first lines), tail (print last lines)
- ln (link), chmod (change perm), chown (change owner)
- file/dir info: stat , file , mimetype
- cd stack: pushd, popd, dirs -v
Use helpers:
- rsync (copy), fd (verbo-less find), chafa (ascii images viewer)
- m (marks, `cd "$m<name>"`), cd-kdialog
- trash-* (trash)
Use bash/terminal features:
- history search (`cd`)
- tab completion
- substitution: `!#:`, `!!:`
- globbing: `*`, `?`, `{}``for file in *; do; done`
Use GUI:
- open . or open <file/dir>
- dolphin
Use VIM:
- ls > <batch>.sh → vim <batch>.sh → :wq → bash <batch>.sh
Use vim aliases?:
- y (yank), p (paste), P (paste and clear)
- y [file(s)|dir(s)]; p | xargs -I{} <cp|mv|…> {}; P
Use `$PROMPT_COMMAND`:
- `PROMPT_COMMAND+='; ls -A'; PROMPT_COMMAND="${PROMPT_COMMAND/; ls -A}"`
HELP
}
m() {
if [[ "-d" == "$1" ]]; then
unset "m$2"
crossSession "m$2"
return 0
fi
if [[ -z "$1" ]]; then
printenv | grep -e '^m' | sort | xargs -I{} echo \${}
return 0
fi
if [[ "--help" == "$1" ]]; then
\cat <<-"HELP"
m [--help]
Lists all marks or print this help.
m -d <name>
Deletes mark <name>. Unsets variable and cross session variable.
m <name> [path]
Sets mark <name> to current directory or [path].
The mark is just a bash variable, use `$m<name>`.
cd $m<name>
cd to mark <name>.
HELP
return 0
fi
local n="m$1"
[[ -z "${!n}" ]] || return 1
[[ -z "$2" ]] && local p="$(pwd)" || local p="$(readlink -f $2)"
crossSession "$n" "$p"
export $n="$p"
}
alias cd-kdialog='cd "$(kdialog --getexistingdirectory --title "Vyberte složku" 2>/dev/null)"'
alias fd='fdfind'
# yanked files
export YANKED=()
p() {
for f in "${YANKED[@]}"; do
IFS=$'' echo "$f"
done
} # p | xargs -I{} …
P() { YANKED=(); echo 'YANKED=()'; }
y() {
local pwd
pwd="$(pwd)"
if [[ -z "$1" ]]; then
YANKED=("$pwd")
else
for f in "$@"; do
if [[ "$f" == /* ]]; then
YANKED+=("$f")
elif [[ "$f" == ./* || "$f" == '.' ]]; then
YANKED+=("$pwd${f:1}")
else
YANKED+=("$pwd/$f")
fi
done
fi
echo "$(p)"
}
# tab completion
[[ $(command -v _complete_alias) ]] || source "$BASH_DOTFILES/shell/complete-alias/complete_alias"
source <(fdfind --gen-completions)
complete -F _complete_alias fd
+62 -6
View File
@@ -1,7 +1,63 @@
#!/usr/bin/env bash
export GREP_COLOR="1;32"
export EDITOR="vim"
export SUDO_EDITOR="vim"
export VISUAL="vim"
export BASH_DOTFILES="$HOME/.bash"
[[ -f "$BASH_DOTFILES/shell/index.sh" ]] \
&& source "$BASH_DOTFILES/shell/index.sh"
[[ -f "$BASH_DOTFILES/toolchains/index.sh" ]] \
&& source "$BASH_DOTFILES/toolchains/index.sh"
[[ -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
export HISTCONTROL=ignoreboth:erasedups
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-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 LS_COLORS=$LS_COLORS:'tw=01;04;34:ow=01;04;34:'
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'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias diff='diff --color=auto'
fi
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; }
myup(){ cd $(eval printf '../'%.0s {1..$1}); }
mkcd(){ mkdir -p "${1:?}" && cd "${1}"; }
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"; }
alias gitdotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'
source ./.bash/complete-alias/complete_alias
complete -F _complete_alias gitdotfiles
# termux-setup-storage
-38
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
-20
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
@@ -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
-38
View File
@@ -1,38 +0,0 @@
snippet skeleton "HTML5" b
<!DOCTYPE html>
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
<!-- DEL https://github.com/jensimmons/cssremedy -->
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
<title></title>
<meta name="description" content="">
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
</head>
<body>
<!-- DEL -->
</body>
</html>
endsnippet
snippet cmt "comment"
<!-- ${0} -->
endsnippet
snippet cmt.js "comment"
/* ${0} */
endsnippet
snippet viewport_cordova "viewport used in cordova apps"
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
endsnippet
snippet csp_cordova "CSP used in cordova"
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
endsnippet
-87
View File
@@ -1,87 +0,0 @@
snippet skeleton_node "nodejs" b
#!/usr/bin/env node
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet skeleton_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 skeleton_zx "zx" b
#!/usr/bin/env zx
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet jshint "JSHint header" b
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
/* global ${0} */
endsnippet
snippet global "JSHint global"
/* global ${0} */
endsnippet
snippet global_ns "JSHint global"
/* ${1} *//* global ${0} */
endsnippet
snippet devel "JSHint devel"
${1}/* jshint devel: true *///gulp.keep.line${0}
endsnippet
snippet log "console.log"
${1}console.log('${0}');
endsnippet
snippet stor "localStorage"
${1}localStorage.${2:g}etItem("${0}");
endsnippet
snippet import "import with backward order"
import ${2:values} from "${1:specifier}";$0
endsnippet
snippet promise "return? new Promise"
${1:return }new Promise(function(resolve, reject){
${0:/* async code */}
});
endsnippet
snippet for "classical loop"
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
${0:/* statement */}
}
endsnippet
snippet foreach "PHP-like name" b
for(${2:const} ${3:element} of ${1:iterable}){
${0:/* statement */}
}
endsnippet
snippet switch "classical switch"
switch (${1}){
case ${2}:
${0}
break;
default:
}
endsnippet
snippet desctr "object destructure"
${1:const} { $0 }= ${2:def};
endsnippet
snippet ready "document ready"
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
endsnippet
snippet readyEvent "vanilla JS content ready event name"
${1}DOMContentLoaded${0}
endsnippet
snippet selid
${1}document.getElementById('${0}')
endsnippet
snippet seltag
${1}getElementsByTagName('${0}')
endsnippet
snippet selclass
${1}getElementsByClassName('${0}')
endsnippet
snippet sel
${1}querySelector('${0}')
endsnippet
snippet selall
${1}querySelectorAll('${0}')
endsnippet
@@ -1,88 +0,0 @@
extends javascript
snippet skeleton_node "nodejs" b
#!/usr/bin/env node
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet skeleton_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 skeleton_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
-14
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
-40
View File
@@ -1,40 +0,0 @@
extends html
snippet skeleton "HTML5" b
<!DOCTYPE html>
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
<!-- DEL https://github.com/jensimmons/cssremedy -->
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
<title></title>
<meta name="description" content="">
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
</head>
<body>
<!-- DEL -->
</body>
</html>
endsnippet
snippet cmt "comment"
<!-- ${0} -->
endsnippet
snippet cmt.js "comment"
/* ${0} */
endsnippet
snippet viewport_cordova "viewport used in cordova apps"
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
endsnippet
snippet csp_cordova "CSP used in cordova"
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
endsnippet
#endextends
-40
View File
@@ -1,40 +0,0 @@
extends html
snippet skeleton "HTML5" b
<!DOCTYPE html>
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
<!-- DEL https://github.com/jensimmons/cssremedy -->
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
<title></title>
<meta name="description" content="">
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
</head>
<body>
<!-- DEL -->
</body>
</html>
endsnippet
snippet cmt "comment"
<!-- ${0} -->
endsnippet
snippet cmt.js "comment"
/* ${0} */
endsnippet
snippet viewport_cordova "viewport used in cordova apps"
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
endsnippet
snippet csp_cordova "CSP used in cordova"
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
endsnippet
#endextends
-9
View File
@@ -1,9 +0,0 @@
snippet skeleton "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
-88
View File
@@ -1,88 +0,0 @@
extends javascript
snippet skeleton_node "nodejs" b
#!/usr/bin/env node
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet skeleton_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 skeleton_zx "zx" b
#!/usr/bin/env zx
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet jshint "JSHint header" b
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
/* global ${0} */
endsnippet
snippet global "JSHint global"
/* global ${0} */
endsnippet
snippet global_ns "JSHint global"
/* ${1} *//* global ${0} */
endsnippet
snippet devel "JSHint devel"
${1}/* jshint devel: true *///gulp.keep.line${0}
endsnippet
snippet log "console.log"
${1}console.log('${0}');
endsnippet
snippet stor "localStorage"
${1}localStorage.${2:g}etItem("${0}");
endsnippet
snippet import "import with backward order"
import ${2:values} from "${1:specifier}";$0
endsnippet
snippet promise "return? new Promise"
${1:return }new Promise(function(resolve, reject){
${0:/* async code */}
});
endsnippet
snippet for "classical loop"
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
${0:/* statement */}
}
endsnippet
snippet foreach "PHP-like name" b
for(${2:const} ${3:element} of ${1:iterable}){
${0:/* statement */}
}
endsnippet
snippet switch "classical switch"
switch (${1}){
case ${2}:
${0}
break;
default:
}
endsnippet
snippet desctr "object destructure"
${1:const} { $0 }= ${2:def};
endsnippet
snippet ready "document ready"
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
endsnippet
snippet readyEvent "vanilla JS content ready event name"
${1}DOMContentLoaded${0}
endsnippet
snippet selid
${1}document.getElementById('${0}')
endsnippet
snippet seltag
${1}getElementsByTagName('${0}')
endsnippet
snippet selclass
${1}getElementsByClassName('${0}')
endsnippet
snippet sel
${1}querySelector('${0}')
endsnippet
snippet selall
${1}querySelectorAll('${0}')
endsnippet
@@ -1,88 +0,0 @@
extends javascript
snippet skeleton_node "nodejs" b
#!/usr/bin/env node
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet skeleton_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 skeleton_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
-127
View File
@@ -1,127 +0,0 @@
extends javascript, html
snippet skeleton_node "nodejs" b
#!/usr/bin/env node
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet skeleton_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 skeleton_zx "zx" b
#!/usr/bin/env zx
/* jshint esversion: 8,-W097, -W040, node: true, expr: true, undef: true */
${0}
endsnippet
snippet jshint "JSHint header" b
/* jshint esversion: 6,-W097, -W040, browser: true, expr: true, undef: true */
/* global ${0} */
endsnippet
snippet global "JSHint global"
/* global ${0} */
endsnippet
snippet global_ns "JSHint global"
/* ${1} *//* global ${0} */
endsnippet
snippet devel "JSHint devel"
${1}/* jshint devel: true *///gulp.keep.line${0}
endsnippet
snippet log "console.log"
${1}console.log('${0}');
endsnippet
snippet stor "localStorage"
${1}localStorage.${2:g}etItem("${0}");
endsnippet
snippet import "import with backward order"
import ${2:values} from "${1:specifier}";$0
endsnippet
snippet promise "return? new Promise"
${1:return }new Promise(function(resolve, reject){
${0:/* async code */}
});
endsnippet
snippet for "classical loop"
for(${1:let} ${2:i}= 0, ${2}_length= ${3:ITERABLE}.length; ${2}<${2}_length; ${2}++){
${0:/* statement */}
}
endsnippet
snippet foreach "PHP-like name" b
for(${2:const} ${3:element} of ${1:iterable}){
${0:/* statement */}
}
endsnippet
snippet switch "classical switch"
switch (${1}){
case ${2}:
${0}
break;
default:
}
endsnippet
snippet desctr "object destructure"
${1:const} { $0 }= ${2:def};
endsnippet
snippet ready "document ready"
${1}document.addEventListener('DOMContentLoaded', ${0}, false)
endsnippet
snippet readyEvent "vanilla JS content ready event name"
${1}DOMContentLoaded${0}
endsnippet
snippet selid
${1}document.getElementById('${0}')
endsnippet
snippet seltag
${1}getElementsByTagName('${0}')
endsnippet
snippet selclass
${1}getElementsByClassName('${0}')
endsnippet
snippet sel
${1}querySelector('${0}')
endsnippet
snippet selall
${1}querySelectorAll('${0}')
endsnippet
snippet skeleton "HTML5" b
<!DOCTYPE html>
<!-- ${0}DEL IE https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<!-- DEL IE https://stackoverflow.com/questions/6771258/what-does-meta-http-equiv-x-ua-compatible-content-ie-edge-do -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/viewport-meta -->
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- DEL CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP | https://github.com/Prinzhorn/minimal-csp -->
<!-- DEL https://github.com/jensimmons/cssremedy -->
<!-- DEL meta značky obecně https://www.vzhurudolu.cz/prirucka/meta-open-graph -->
<title></title>
<meta name="description" content="">
<!-- DEL IE https://www.sitepoint.com/html5-older-browsers-and-the-shiv/ -->
<!-- DEL https://www.vzhurudolu.cz/prirucka/checklist -->
</head>
<body>
<!-- DEL -->
</body>
</html>
endsnippet
snippet cmt "comment"
<!-- ${0} -->
endsnippet
snippet cmt.js "comment"
/* ${0} */
endsnippet
snippet viewport_cordova "viewport used in cordova apps"
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
endsnippet
snippet csp_cordova "CSP used in cordova"
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file: gulp_place('app.url_scheme', 'variable'):; style-src 'self' 'unsafe-inline'; img-src * data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval'"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; img-src 'self' data: android-webview-video-poster:; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
endsnippet
#endextends
-19
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"
-120
View File
@@ -1,120 +0,0 @@
# better? defaults
[help]
autocorrect = prompt
[init]
defaultBranch = main
[column]
ui = auto
[branch]
sort = -committerdate
[tag]
sort = version:refname
[status]
branch = true
short = true
showStash = true
showUntrackedFiles = all
submoduleSummary = true
[log]
date = iso
[fetch]
prune = true
pruneTags = true
[push]
autoSetupRemote = true
followTags = true
recurseSubmodules = on-demand
[pull]
rebase = true
[rerere]
enabled = true
autoupdate = true
[gc]
reflogExpire = 200
reflogExpireUnreachable = 90
[commit]
verbose = true
gpgsign = true
template = ~/.config/git/template
[rebase]
autoSquash = true
autoStash = true
updateRefs = true
# my setup
[core]
editor = vim
whitespace = -trailing-space,-space-before-tab
compression = 9 # trade cpu for network
[pager]
diff = diffnav
show = diffnav
[alias]
lazy = !lazygit
l = !lazygit
commit--interactive= !clear && git status && git commit --interactive
diff-dirs = diff --dirstat --find-copies --find-renames --histogram --color
notes-json = !git notes | njs -p '$.stdin.lines().map(l=> l.split(\" \")).map(([ id_note, id_commit ])=> ({id_commit, id_note, head: s.$().run`git show ${id_note}`.head().toString().split(\"\\n\")}))' 'o=> JSON.stringify(o, null, \"\t\")'
submodule-update-merge = submodule update --remote --merge
symbolic-ref-defaultBranch = !git symbolic-ref refs/remotes/origin/HEAD | cut -d'/' -f4-
tag-l = tag -l --sort=-creatordate --format='%(refname:short): [%(creatordate:short)] %(subject)'
h-branches = !echo 'brv (git-extras)'
h-format-htma = !echo '%Cred%h%Creset %Cgreen[%ad] -%C(yellow)%d%Creset %s %C(bold blue)<%an>%Creset'
h-unstage = !echo reset HEAD --
h-undoall = !echo reset --soft HEAD^
h-submodule-delete = !echo 'delete-submodule (git-extras)'
[but "alias"]
sta = status -v
sta-f = status -vf
co = commit
[diff]
wsErrorHighlight = all
tool = vimdiff
submodule = log
algorithm = histogram
# https://git-scm.com/docs/git-diff#Documentation/git-diff.txt-code--color-movedltmodegtcode
colorMoved = dimmed-zebra
mnemonicPrefix = true
renames = true
[interactive]
diffFilter = delta --color-only
[merge]
tool = vimdiff
conflictstyle = zdiff3
[delta] # [dandavison/delta: A syntax-highlighting pager for git, diff, and grep output](https://github.com/dandavison/delta)
syntax-theme= Visual Studio Dark+
dark = true
navigate = true
side-by-side = true
line-numbers = true
[filter "lfs"]
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
[diff "exif"]
textconv = exiftool
[difftool "kommitdiff"]
[mergetool "kommitmerge"]
cmd = kommitmerge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
trustExitCode = true
[maintenance]
repo = /home/jaandrle/Vzdálené/GitHub/dcp-fe-container-certifedpassport
repo = /home/jaandrle/Vzdálené/GitHub/DHLC-Internet-Networking-old
repo = /home/jaandrle/Vzdálené/GitHub/DGF-Certified-Supervisory-Academy
[submodule]
recurse = true
[format]
coverLetter = auto
compactSummary = true
minimal = true
signOff = true
outputDirectory = .patches
thread = shallow
numbered = auto
[am]
# keepcr = true # to preserve line endings
threeWay = true
[include]
path = ./identities/current.conf
-64
View File
@@ -1,64 +0,0 @@
set mainfont {{Ubuntu Mono} 11}
set textfont {{Ubuntu Mono} 11}
set uifont {{Ubuntu Mono} 11 bold}
set tabstop 8
set findmergefiles 0
set maxgraphpct 50
set maxwidth 16
set cmitmode patch
set wrapcomment none
set autoselect 1
set autosellen 40
set showneartags 1
set maxrefs 20
set visiblerefs {"master"}
set hideremotes 0
set showlocalchanges 1
set datetimeformat {%Y-%m-%d %H:%M:%S}
set limitdiffs 1
set uicolor #302c2c
set want_ttk 1
set bgcolor #2e3031
set fgcolor #d9dedc
set uifgcolor black
set uifgdisabledcolor #999
set colors {"#00ff00" red blue magenta darkgrey brown orange}
set diffcolors {{#ffffff} #ffffff #3376f0}
set mergecolors {red blue "#00ff00" purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"}
set markbgcolor #8b8b8e
set diffcontext 3
set selectbgcolor #000000
set foundbgcolor yellow
set currentsearchhitbgcolor orange
set extdifftool meld
set perfile_attrs 0
set headbgcolor #00ff00
set headfgcolor black
set headoutlinecolor black
set remotebgcolor #ffddaa
set tagbgcolor yellow
set tagfgcolor black
set tagoutlinecolor black
set reflinecolor black
set filesepbgcolor #aaaaaa
set filesepfgcolor black
set linehoverbgcolor #ffff80
set linehoverfgcolor black
set linehoveroutlinecolor black
set mainheadcirclecolor yellow
set workingfilescirclecolor red
set indexcirclecolor #00ff00
set circlecolors {white blue gray blue blue}
set linkfgcolor blue
set circleoutlinecolor black
set diffbgcolors {{#600000} #004800}
set web_browser xdg-open
set geometry(main) 1920x1023+0+26
set geometry(state) normal
set geometry(topwidth) 1920
set geometry(topheight) 255
set geometry(pwsash0) "672 1"
set geometry(pwsash1) "1008 1"
set geometry(botwidth) 836
set geometry(botheight) 763
set permviews {}
-21
View File
@@ -1,21 +0,0 @@
[user]
name = Jan Andrle
email = andrle.jan@centrum.cz
signingkey = B3A25AED155AFFAB
[credential]
# see https://stackoverflow.com/questions/5343068/is-there-a-way-to-cache-https-credentials-for-pushing-commits/18362082#18362082
helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
[credential "https://github.com"]
helper = !/usr/bin/gh auth git-credential
[credential "https://gist.github.com"]
helper = !/usr/bin/gh auth git-credential
[credential "https://git.dhl.com"]
helper = !/usr/bin/gh auth git-credential
[sendemail]
anotate = true
smtpserver = smtp.centrum.cz
# chainReplyTo = false
suppresscc = self
smtpuser = andrle.jan@centrum.cz
smtpencryption = ssl
smtpserverport = 465
-252
View File
@@ -1,252 +0,0 @@
{
"target": "/home/jaandrle/.local/bin/",
"packages": [
{
"repository": "shiftkey/desktop",
"name": "GitHub Desktop",
"group": "skip-dev",
"file_name": "github-desktop",
"exec": "yes",
"description": "Fork of GitHub Desktop to support various Linux distributions",
"last_update": "2024-08-17T01:47:21Z",
"downloads": "/home/jaandrle/.local/bin/github-desktop",
"version": "release-3.4.4-linuxbeta2",
"glare": ".*x86_64.*.AppImage"
},
{
"repository": "pinokiocomputer/pinokio",
"name": "Pinokio",
"group": "ai",
"file_name": "pinokio",
"exec": "yes",
"description": "AI Browser",
"glare": "AppImage",
"last_update": "2026-07-11T02:40:59Z",
"version": "v8.0.8",
"downloads": "/home/jaandrle/.local/bin/pinokio"
},
{
"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/.local/bin/jaaCSS.js",
"version": "v1.3.2",
"last_update": "2022-09-02T13:33:16Z",
"glare": "jaaCSS.js"
},
{
"repository": "th-ch/youtube-music",
"name": "youtube-music",
"description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)",
"group": "skip-nondev",
"file_name": "youtube-music",
"exec": "yes",
"last_update": "2024-10-16T11:58:54Z",
"downloads": "/home/jaandrle/.local/bin/youtube-music",
"version": "v3.6.2",
"glare": "AppImage"
},
{
"repository": "rvpanoz/luna",
"name": "luna",
"description": "Manage npm dependencies through a modern UI.",
"group": "skip-dev",
"file_name": "luna",
"exec": "yes",
"glare": "AppImage",
"last_update": "2020-10-29T23:06:39Z",
"version": "v.3.4.6",
"downloads": "/home/jaandrle/.local/bin/luna"
},
{
"repository": "angela-d/wifi-channel-watcher",
"name": "wifi-channel-watcher",
"group": "skip-nondev",
"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": "AppImage/AppImageKit",
"name": "AppImageKit",
"group": "skip-nondev",
"file_name": "appimagekit",
"exec": "yes",
"description": "Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.freenode.net",
"glare": ".*x86_64.*.AppImage",
"last_update": "2023-03-08T23:25:46Z",
"version": "continuous",
"downloads": "/home/jaandrle/.local/bin/appimagekit"
},
{
"repository": "dynobo/normcap",
"name": "NormCap",
"description": "Switched to flatpak version | OCR powered screen-capture tool to capture information instead of images",
"group": "skip-nondev",
"file_name": "normcap",
"exec": "yes",
"last_update": "2023-12-12T22:23:37Z",
"downloads": "/home/jaandrle/.local/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-12-25T13:44:34Z",
"downloads": "/home/jaandrle/.local/bin/upscayl",
"version": "v2.15.0",
"glare": "AppImage"
},
{
"repository": "h3poteto/fedistar",
"name": "Fedistar",
"description": "Multi-column Mastodon, Pleroma, and Friendica client for desktop",
"group": "nondev",
"file_name": "fedistar.appimage",
"exec": "yes",
"last_update": "2026-06-01T15:16:44Z",
"downloads": "/home/jaandrle/.local/bin/fedistar.appimage",
"version": "v1.13.1",
"glare": ".*amd64.*.AppImage"
},
{
"repository": "neovim/neovim",
"name": "neovim",
"tag_name_regex": "v.*",
"description": "Vim-fork focused on extensibility and usability",
"group": "skip-dev",
"file_name": "nvim",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/nvim",
"version": "v0.9.5",
"last_update": "2023-12-30T13:31:47Z"
},
{
"repository": "vim/vim-appimage",
"name": "vim",
"description": "AppImage for gVim",
"group": "dev",
"file_name": "vim",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/vim",
"version": "v9.2.0782",
"glare": "GVim.*x86_64.*.AppImage",
"last_update": "2026-07-04T02:42:41Z"
},
{
"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.appimage",
"exec": "yes",
"last_update": "2026-05-19T07:48:59Z",
"downloads": "/home/jaandrle/.local/bin/escrcpy.appimage",
"version": "v2.11.1",
"glare": ".*x86_64.*.AppImage"
},
{
"repository": "drovp/drovp",
"name": "drovp",
"description": "Desktop app for encoding, converting, upscaling, and much more.",
"group": "dev-test",
"file_name": "drovp",
"exec": "yes",
"last_update": "2024-10-06T16:26:38Z",
"downloads": "/home/jaandrle/.local/bin/drovp",
"version": "0.8.2",
"glare": "x64.AppImage"
},
{
"repository": "janhq/jan",
"name": "Jan",
"description": "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer",
"group": "ai",
"file_name": "jan",
"exec": "yes",
"last_update": "2026-06-24T06:06:52Z",
"downloads": "/home/jaandrle/.local/bin/jan",
"version": "v0.8.3",
"glare": ".*amd64.AppImage"
},
{
"repository": "Bin-Huang/chatbox",
"name": "Chatbox",
"description": "Chatbox is a desktop client for ChatGPT, Claude and other LLMs, available on Windows, Mac, Linux",
"group": "ai",
"file_name": "Chatbox",
"exec": "yes",
"last_update": "2026-06-12T08:19:15Z",
"downloads": "/home/jaandrle/.local/bin/Chatbox",
"version": "v1.21.1",
"glare": ".*x86_64.*.AppImage"
},
{
"repository": "Martichou/rquickshare",
"group": "nondev",
"name": "r-quick-share",
"description": "Rust implementation of NearbyShare/QuickShare from Android for Linux and macOS.",
"file_name": "r-quick-share",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/r-quick-share",
"glare": ".*main.*amd64.AppImage",
"last_update": "2025-02-23T18:15:49Z",
"version": "v0.11.5"
},
{
"repository": "konnektoren/konnektoren-mobile-app",
"group": "nondev",
"name": "Konnektoren",
"description": "Konnektoren Mobile App (learning german) — https://konnektoren.help/home/",
"file_name": "konnektoren",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/konnektoren",
"glare": "AppImage",
"last_update": "2025-04-27T07:33:51Z",
"version": "konnektoren-mobile-app-v0.1.4"
},
{
"repository": "TibixDev/winboat",
"group": "nondev",
"name": "WinBoat",
"description": "Run Windows apps on 🐧 Linux with ✨ seamless integration",
"file_name": "winboat",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/winboat",
"glare": ".*x86_64.AppImage",
"version": "v0.9.0",
"last_update": "2025-11-23T23:23:48Z"
},
{
"repository": "Sarwarhridoy4/github-ssh-manager",
"group": "dev",
"name": "GitHub SSH Manager",
"description": "A cross-platform GUI tool built with **Go** and **Fyne** that allows you to manage multiple GitHub SSH keys effortlessly. Generate keys, view public keys, upload to GitHub, test SSH connections, and manage your `~/.ssh/config` all from one place.",
"file_name": "github-ssh-manager",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/github-ssh-manager",
"glare": "AppImage",
"last_update": "2026-02-23T06:22:10Z",
"version": "2.5"
},
{
"repository": "asinglebit/guitar",
"group": "dev",
"name": "guitar",
"description": "A terminal based git client with topological graph rendering",
"file_name": "guitar",
"exec": "yes",
"downloads": "/home/jaandrle/.local/bin/guitar",
"glare": "linux",
"last_update": "2026-06-21T11:31:28Z",
"version": "v1.0.4"
}
]
}
-2
View File
@@ -1,2 +0,0 @@
[Mouse]
cursorTheme=breeze_cursors
-8
View File
@@ -1,8 +0,0 @@
[General]
ColorScheme=TUXEDODark
[Icons]
Theme=tuxedo-breeze-dark
[KDE]
widgetStyle=Breeze
-3
View File
@@ -1,3 +0,0 @@
[KSplash]
Engine=KSplashQML
Theme=org.tuxedodark.desktop
-10
View File
@@ -1,10 +0,0 @@
[TabBox]
LayoutName=org.kde.breeze.desktop
[Windows]
Placement=Centered
[org.kde.kdecoration2]
NoPlugin=false
library=org.kde.breeze
theme=Breeze
-1
View File
@@ -1 +0,0 @@
org.tuxedodark.desktop
-2
View File
@@ -1,2 +0,0 @@
[Theme]
name=tuxedo-dark
-77
View File
@@ -1,77 +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"
]
},
"§time.mjs": {
"npx": false,
"completions": {
"diff": [
"--unit"
],
"?": "diff",
"zone": [
"--z"
]
},
"completions_all": [
"--help",
"--version"
]
},
"/home/jaandrle/Vzdálené/GitHub/DGF-Certified-Supervisory-Academy/build/bs/publishModule.mjs": {
"npx": true,
"completions": {},
"completions_all": [
"--lang",
"--division",
"--APP_CODE",
"--help",
"--version"
]
},
"§pdftk-data.mjs": {
"npx": false,
"completions": {
"extract": [],
"update": [],
"convert": []
},
"completions_all": [
"--debug",
"--help",
"--version"
]
}
}
}
-18
View File
@@ -1,18 +0,0 @@
Reflect.defineProperty($, "clipboard", {
get(){
if($.env.XDG_SESSION_TYPE === "x11")
return s.$().run`xclip -o -selection clipboard`;
return s.$().run`wl-paste`;
}
})
// /** Custom uncaughtException function */
// export const uncaughtException= console.log;
// /** Place for custom code when script starts */
// export function onscript(){}
/** Place for custom code when REPL starts (`--interactive`) */
export function onrepl(){
Reflect.defineProperty(s, "jq", { get(){ return file=> s.cat(file).xargs(JSON.parse); } });
}
/** Place for custom code when eval starts (`--eval`/`--print`) */
// export function oneval(){}
-11
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
@@ -1,6 +0,0 @@
// Settings in here override those in "Default/Preferences.sublime-settings",
// and are overridden in turn by syntax-specific settings.
{
"theme": "Merge Dark.sublime-theme",
"hardware_acceleration": "opengl",
}
@@ -1,3 +0,0 @@
{
"spell_check": true
}
@@ -1,31 +0,0 @@
// https://github.com/Sublime-Instincts/CommandsBrowser/tree/master/sm_commands_metadata
[
{
"caption": "Switch…",
"command": "checkout_branch",
},
{
"caption": "Switch -C…",
"command": "create_branch",
},
{
"caption": "Checkout -B…",
"command": "create_branch",
},
{
"caption": "Commit…",
"command": "commit",
},
{
"caption": "Browse repository",
"command": "git",
"args": { "argv": [ "browse" ] }
},
{
"caption": "Branch -D --all (delete remote and local branch)",
"command": "delete_branch",
"args": {
"argv": [ true, true, true ]
}
}
]
@@ -1,6 +0,0 @@
[
{
"keys": ["ctrl+;"],
"command": "show_command_palette"
},
]
@@ -1,4 +0,0 @@
{
"draw_white_space": "all",
"word_wrap": true,
}
@@ -1,13 +0,0 @@
// Settings in here override those in "Default/Preferences.sublime-settings",
// and are overridden in turn by syntax-specific settings.
{
"hardware_acceleration": "opengl",
"diff_algorithm": "match_git",
"diff_style": "auto",
"font_face": "Ubuntu Mono",
"side_bar_layout": "tabs",
"signature_error_highlighting": "no_public_key",
"theme": "Merge Dark.sublime-theme",
"expand_merge_commits_by_default": true,
"ignore_diff_white_space": false,
}
-14
View File
@@ -1,14 +0,0 @@
[metadata]
name = "alias"
description = "A channel to select from shell aliases"
[source]
# you may need to adjust the command depending on your shell
command = "$SHELL -ic 'alias'"
output = "{split:=:0}"
[preview]
command = "$SHELL -ic 'alias' | grep -E '^(alias )?{split:=:0}='"
[ui.preview_panel]
size = 30
-23
View File
@@ -1,23 +0,0 @@
[metadata]
name = "channels"
description = "A channel to find and select other channels"
[source]
command = "tv list-channels"
[keybindings]
enter = "actions:zap"
ctrl-t = "actions:echo"
[actions.echo]
description = "Echo the channel name"
command = "echo '{}'"
mode = "execute"
[actions.zap]
description = "Switch to the channel"
command = "tv '{}'"
mode = "execute"
# [preview]
# command = "bat -n --color=always ~/.config/television/cable/'{}'.toml"
-23
View File
@@ -1,23 +0,0 @@
[metadata]
name = "compose"
description = "Search XCompose key mappings (no preview)"
[source]
command = [
"cat ~/.XCompose /usr/share/X11/locale/cs_CZ.UTF-8/Compose",
"cat /usr/share/X11/locale/en_US.UTF-8/Compose",
]
ansi = false
output = "{}"
[ui]
ui_scale = 90
layout = "portrait"
input_bar_position = "top"
input_header = "Search Compose mappings:"
[ui.preview_panel]
hidden = true # No preview panel
[ui.remote_control]
show_channel_descriptions = true
-25
View File
@@ -1,25 +0,0 @@
[metadata]
name = "dirs"
description = "A channel to select from directories"
requirements = ["fdfind"]
[source]
command = ["printenv | grep -e '^m' | sort | cut -d= -f2-", "fdfind -t d", "fdfind -t d --hidden"]
[preview]
command = "ls -la --color=always '{}'"
[keybindings]
shortcut = "f2"
ctrl-o = "actions:cd"
ctrl-up = "actions:goto_parent_dir"
[actions.cd]
description = "Open a shell in the selected directory"
command = "cd '{}' && $SHELL"
mode = "execute"
[actions.goto_parent_dir]
description = "Re-opens tv in the parent directory"
command = "tv dirs .."
mode = "execute"
@@ -1,32 +0,0 @@
[metadata]
name = "docker-compose"
description = "Manage Docker Compose services"
requirements = ["docker"]
[source]
command = "docker compose ps --format '{{.Name}}\t{{.Service}}\t{{.Status}}'"
display = "{split:\t:1} ({split:\t:2})"
output = "{split:\t:1}"
[preview]
command = "docker compose logs --tail=30 --no-log-prefix '{split:\t:1}'"
[actions.up]
description = "Start the selected service"
command = "docker compose up -d '{split:\t:1}'"
mode = "fork"
[actions.down]
description = "Stop and remove the selected service"
command = "docker compose down '{split:\t:1}'"
mode = "fork"
[actions.restart]
description = "Restart the selected service"
command = "docker compose restart '{split:\t:1}'"
mode = "fork"
[actions.logs]
description = "Follow logs of the selected service"
command = "docker compose logs -f '{split:\t:1}'"
mode = "execute"
-19
View File
@@ -1,19 +0,0 @@
[metadata]
name = "dotfiles"
description = "A channel to select from your user's dotfiles"
requirements = ["fdfind", "bat"]
[source]
command = "fdfind -t f . $HOME/.config"
[preview]
command = "bat -n --color=always '{}'"
[keybindings]
enter = "actions:edit"
[actions.edit]
description = "Edit the selected dotfile"
command = "${EDITOR:-vim} '{}'"
shell = "bash"
mode = "execute"
-28
View File
@@ -1,28 +0,0 @@
[metadata]
name = "files"
description = "A channel to select files and directories"
requirements = ["fdfind", "batcat", "cat", "head"]
[source]
command = ["fdfind -t f", "fdfind -t f -H", "fdfind -t f -H -I"]
[preview]
command = ["batcat -n --color=always '{}'", "cat '{}'", "head -50 '{}'"]
env = { BAT_THEME = "ansi" }
[keybindings]
shortcut = "f1"
ctrl-e = "actions:edit"
ctrl-up = "actions:goto_parent_dir"
[actions.edit]
description = "Opens the selected entries with the default editor (falls back to vim)"
command = "${EDITOR:-vim} '{}'"
shell = "bash"
# use `mode = "fork"` if you want to return to tv afterwards
mode = "execute"
[actions.goto_parent_dir]
description = "Re-opens tv in the parent directory"
command = "tv files .."
mode = "execute"
-37
View File
@@ -1,37 +0,0 @@
[metadata]
name = "git-branch"
description = "A channel to select from git branches"
requirements = ["git"]
[source]
command = "git --no-pager branch --all --format=\"%(refname:short)\""
output = "{split: :0}"
[preview]
command = "git show -p --stat --pretty=fuller --color=always '{0}'"
[keybindings]
ctrl-o = "actions:checkout"
ctrl-d = "actions:delete"
ctrl-m = "actions:merge"
ctrl-r = "actions:rebase"
[actions.checkout]
description = "Checkout the selected branch"
command = "git switch '{0}'"
mode = "execute"
[actions.delete]
description = "Delete the selected branch"
command = "git delete-branch '{0}'"
mode = "execute"
[actions.merge]
description = "Merge the selected branch into current branch"
command = "git merge '{0}'"
mode = "execute"
[actions.rebase]
description = "Rebase current branch onto the selected branch"
command = "git rebase '{0}'"
mode = "execute"
-34
View File
@@ -1,34 +0,0 @@
[metadata]
name = "git-diff"
description = "A channel to select files from git diff commands"
requirements = ["git"]
[source]
command = "GIT_PAGER= git diff --name-only HEAD"
[preview]
command = "GIT_PAGER= git diff HEAD --color=always -- '{}'"
[ui]
layout = "portrait"
[keybindings]
ctrl-s = "actions:stage"
ctrl-r = "actions:restore"
ctrl-e = "actions:edit"
[actions.stage]
description = "Stage the selected file"
command = "git add '{}'"
mode = "fork"
[actions.restore]
description = "Discard changes in the selected file"
command = "git restore '{}'"
mode = "fork"
[actions.edit]
description = "Open the selected file in editor"
command = "${EDITOR:-vim} '{}'"
shell = "bash"
mode = "execute"
-34
View File
@@ -1,34 +0,0 @@
[metadata]
name = "git-log"
description = "A channel to select from git log entries"
requirements = ["git"]
[source]
command = "git log --graph --pretty=format:'%C(yellow)%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --color=always"
output = "{strip_ansi|split: :1}"
ansi = true
no_sort = true
frecency = false
[preview]
command = "git show -p --stat --pretty=fuller --color=always '{strip_ansi|split: :1}' | head -n 1000"
[keybindings]
ctrl-y = "actions:cherry-pick"
ctrl-r = "actions:revert"
ctrl-o = "actions:checkout"
[actions.cherry-pick]
description = "Cherry-pick the selected commit"
command = "git cherry-pick '{strip_ansi|split: :1}'"
mode = "execute"
[actions.revert]
description = "Revert the selected commit"
command = "git revert '{strip_ansi|split: :1}'"
mode = "execute"
[actions.checkout]
description = "Checkout the selected commit"
command = "git checkout '{strip_ansi|split: :1}'"
mode = "execute"
-28
View File
@@ -1,28 +0,0 @@
[metadata]
name = "git-reflog"
description = "A channel to select from git reflog entries"
requirements = ["git"]
[source]
command = "git reflog --decorate --color=always"
output = "{0|strip_ansi}"
ansi = true
no_sort = true
frecency = false
[preview]
command = "git show -p --stat --pretty=fuller --color=always '{0|strip_ansi}'"
[keybindings]
ctrl-o = "actions:checkout"
ctrl-r = "actions:reset"
[actions.checkout]
description = "Checkout the selected reflog entry"
command = "git checkout '{0|strip_ansi}'"
mode = "execute"
[actions.reset]
description = "Reset --hard to the selected reflog entry"
command = "git reset --hard '{0|strip_ansi}'"
mode = "execute"
-26
View File
@@ -1,26 +0,0 @@
[metadata]
name = "git-tags"
description = "Browse and checkout git tags"
requirements = ["git"]
[source]
command = "git tag --sort=-creatordate"
no_sort = true
frecency = false
[preview]
command = "git show --color=always '{}'"
[keybindings]
ctrl-o = "actions:checkout"
ctrl-d = "actions:delete"
[actions.checkout]
description = "Checkout the selected tag"
command = "git switch '{}'"
mode = "execute"
[actions.delete]
description = "Delete the selected tag"
command = "git tag -d '{}'"
mode = "execute"
-24
View File
@@ -1,24 +0,0 @@
[metadata]
name = "images"
description = "Browse image files with preview"
requirements = ["fdfind", "chafa"]
[source]
command = [
"fdfind -t f -e png -e jpg -e jpeg -e gif -e webp -e bmp -e svg .",
"fdfind -t f -e png -e jpg -e jpeg -e gif -e webp -e bmp -e svg -H .",
]
[preview]
command = [
"viu -w 40 -h 80 '{}'",
"chafa -s 80x40 '{}' 2>/dev/null || file '{}'",
]
[keybindings]
ctrl-o = "actions:open"
[actions.open]
description = "Open the selected image with default viewer"
command = "xdg-open '{}' 2>/dev/null || open '{}'"
mode = "fork"
-24
View File
@@ -1,24 +0,0 @@
[metadata]
name = "journalctl"
description = "Browse systemd journal log identifiers and their logs"
requirements = ["journalctl"]
[source]
command = "journalctl --field SYSLOG_IDENTIFIER 2>/dev/null | sort -f"
[preview]
command = "journalctl -b --no-pager -o short-iso -n 50 SYSLOG_IDENTIFIER='{}' 2>/dev/null"
[ui]
layout = "portrait"
preview_panel = { size = 70 }
[actions.logs]
description = "Follow live logs for the selected identifier"
command = "journalctl -f SYSLOG_IDENTIFIER='{}'"
mode = "execute"
[actions.full]
description = "View all logs for the selected identifier in a pager"
command = "journalctl -b --no-pager -o short-iso SYSLOG_IDENTIFIER='{}' | less"
mode = "fork"
-33
View File
@@ -1,33 +0,0 @@
[metadata]
name = "pkgs-apt"
description = "List and manage APT packages, including upgradable ones"
requirements = ["dpkg", "apt"]
[source]
command = [
"dpkg-query -W -f='${Package}\t${Version}\t${Status}\n' 2>/dev/null | grep 'install ok installed' | awk -F'\t' '{print $1, $2}'",
"apt-mark showmanual 2>/dev/null | sort -u",
"apt-get -s upgrade 2>/dev/null | grep -oP '^Inst \\K[^ ]+' | sort -u",
]
[preview]
command = "apt show '{split: :0}' 2>/dev/null"
[keybindings]
ctrl-u = "actions:upgrade"
ctrl-d = "actions:remove"
[actions.upgrade]
description = "Upgrade the selected package"
command = "sudo apt install --only-upgrade '{split: :0}'"
mode = "execute"
[actions.reinstall]
description = "Reinstall the selected package"
command = "sudo apt install --reinstall '{split: :0}'"
mode = "execute"
[actions.remove]
description = "Remove the selected package"
command = "sudo apt remove '{split: :0}'"
mode = "execute"
-29
View File
@@ -1,29 +0,0 @@
[metadata]
name = "pkgs-brew"
description = "List and manage Homebrew packages, including outdated ones (installed on request)"
requirements = ["brew"]
[source]
command = [
"comm -12 <(brew list --installed-on-request | sort) <(brew outdated | sort)",
"brew list --installed-on-request",
"brew list --formula",
"brew list --cask",
]
[preview]
command = "brew info '{}'"
[keybindings]
ctrl-u = "actions:upgrade"
ctrl-d = "actions:uninstall"
[actions.upgrade]
description = "Upgrade the selected package"
command = "brew upgrade '{}'"
mode = "execute"
[actions.uninstall]
description = "Uninstall the selected package"
command = "brew uninstall '{}'"
mode = "execute"
@@ -1,27 +0,0 @@
[metadata]
name = "pkgs-flatpak"
description = "List and manage Flatpak applications"
requirements = ["flatpak"]
[source]
command = "flatpak list --app --columns=application,name,version 2>/dev/null"
display = "{split:\t:1} ({split:\t:2})"
output = "{split:\t:0}"
[preview]
command = "flatpak info '{split:\t:0}' 2>/dev/null"
[actions.run]
description = "Launch the selected application"
command = "flatpak run '{split:\t:0}'"
mode = "execute"
[actions.uninstall]
description = "Uninstall the selected application"
command = "flatpak uninstall '{split:\t:0}'"
mode = "execute"
[actions.update]
description = "Update the selected application"
command = "flatpak update '{split:\t:0}'"
mode = "execute"
-28
View File
@@ -1,28 +0,0 @@
[metadata]
name = "pkgs-npm"
description = "List globally installed npm packages"
requirements = ["npm"]
[source]
command = [
"npm outdated -g --depth=0 --json | njs -p '$.stdin.json()' 'Object.entries' 'e=> e.map(([p,i])=> `${p} @${i.current} → ${i.wanted} (${i.latest})`).join(\"\\n\")'",
"npm list -g --depth=0 --json | njs -p '$.stdin.json().dependencies' 'Object.entries' 'e=> e.map(([p,i])=> p).join(\"\\n\")'",
]
output = "{split: :0}"
[preview]
command = "npm info '{split: :0}' 2>/dev/null | head -30"
[keybindings]
ctrl-u = "actions:update"
ctrl-d = "actions:uninstall"
[actions.uninstall]
description = "Uninstall the selected global package"
command = "npm uninstall -g '{split: :0}'"
mode = "execute"
[actions.update]
description = "Update the selected global package"
command = "npm update -g '{split: :0}'"
mode = "execute"
@@ -1,23 +0,0 @@
[metadata]
name = "recent-files"
description = "List recently modified files (via git or filesystem)"
requirements = ["git", "fdfind", "batcat"]
[source]
command = [
"git diff --name-only HEAD~10 HEAD 2>/dev/null || find . -type f -mtime -7 -not -path '*/.*' 2>/dev/null | head -100",
"fdfind -t f --changed-within 7d -E .git -E .cache -E node_modules -E .local/share/Trash",
]
[preview]
command = "batcat -n --color=always '{}'"
env = { BAT_THEME = "ansi" }
[keybindings]
ctrl-e = "actions:edit"
[actions.edit]
description = "Open the selected file in editor"
command = "${EDITOR:-vim} '{}'"
shell = "bash"
mode = "execute"
-29
View File
@@ -1,29 +0,0 @@
[metadata]
name = "text"
description = "A channel to find and select text from files"
requirements = ["rg", "batcat"]
[source]
command = [
"rg . --no-heading --line-number --colors 'match:fg:white' --colors 'path:fg:blue' --color=always",
"rg . --no-heading --line-number --hidden --colors 'match:fg:white' --colors 'path:fg:blue' --color=always",
]
ansi = true
output = "'+{strip_ansi|split:\\::1}' '{strip_ansi|split:\\::0}'"
[preview]
command = "batcat -n --color=always '{strip_ansi|split:\\::0}'"
env = { BAT_THEME = "ansi" }
offset = '{strip_ansi|split:\::1}'
[ui]
preview_panel = { header = '{strip_ansi|split:\::..2}' }
[keybindings]
ctrl-e = "actions:edit"
[actions.edit]
description = "Open file in editor at line"
command = "${EDITOR:-vim} '+{strip_ansi|split:\\::1}' '{strip_ansi|split:\\::0}'"
shell = "bash"
mode = "execute"
-255
View File
@@ -1,255 +0,0 @@
# CONFIGURATION FILE LOCATION ON YOUR SYSTEM:
# -------------------------------------------
# Defaults:
# ---------
# Linux: `$HOME/.config/television/config.toml`
# macOS: `$HOME/.config/television/config.toml`
# Windows: `%LocalAppData%\television\config.toml`
#
# XDG dirs:
# ---------
# You may use XDG_CONFIG_HOME if set on your system.
# In that case, television will expect the configuration file to be in:
# `$XDG_CONFIG_HOME/television/config.toml`
#
# General settings
# ----------------------------------------------------------------------------
tick_rate = 50
default_channel = "files"
# Shell settings
# --------------
# Default shell used for executing commands (source, preview, actions).
# Options: bash, zsh, fish, powershell, cmd, nu
# If not specified, the shell is detected from the environment ($SHELL on Unix).
# Channel-specific shell settings override this global setting.
# shell = "bash"
# History settings
# ---------------
# Maximum number of entries to keep in the global history (default: 100)
# The history tracks search queries across all channels and sessions
# Set to 0 to disable history functionality entirely
history_size = 200
# Whether to use global history (default: false)
# When true: history navigation shows entries from all channels
# When false: history navigation is scoped to the current channel
global_history = false
[ui]
# How much space to allocate for the UI (in percentage of the screen)
# ┌─────────────────────────┐
# │ Terminal screen │
# │ ┌───────────────────┐ │
# │ │ │ │
# │ │ Television UI │ │
# │ │ │ │
# │ └───────────────────┘ │
# │ │
# └─────────────────────────┘
ui_scale = 100
# What orientation should tv be (landscape or portrait)
orientation = "landscape"
# The theme to use for the UI
# A list of builtin themes can be found in the `themes` directory of the television
# repository. You may also create your own theme by creating a new file in a `themes`
# directory in your configuration directory (see the `config.toml` location above).
theme = "television"
# Feature-specific configurations
# Each feature can have its own configuration section
[ui.input_bar]
# Where to place the input bar in the UI (top or bottom)
position = "bottom"
# The input prompt string (defaults to ">" if not specified)
prompt = ">"
# header = "{}"
# padding = {"left": 0, "right": 0, "top": 0, "bottom": 0}
border_type = "rounded" # https://docs.rs/ratatui/latest/ratatui/widgets/block/enum.BorderType.html#variants
[ui.status_bar]
# Status bar separators (bubble):
#separator_open = ""
#separator_close = ""
# Status bar separators (box):
separator_open = ""
separator_close = ""
hidden = false
[ui.results_panel]
border_type = "rounded"
# padding = {"left": 0, "right": 0, "top": 0, "bottom": 0}
[ui.preview_panel]
# Preview panel size (percentage of screen width/height)
size = 50
#header = ""
#footer = ""
scrollbar = true
border_type = "rounded"
# padding = {"left": 0, "right": 0, "top": 0, "bottom": 0}
hidden = false
[ui.help_panel]
# Whether to split the help panel by categories
show_categories = true
hidden = true
[ui.remote_control]
# Whether to show channel descriptions in remote control mode
show_channel_descriptions = true
# Whether to sort channels alphabetically
sort_alphabetically = true
# disabled = false
# Theme color overrides
# ---------------------
# You can override specific colors from the selected theme by adding them here.
# This allows you to customize the appearance without creating a full theme file.
# Colors can be specified as ANSI color names (e.g., "red", "bright-blue") or
# as hex values (e.g., "#ff0000", "#1e1e2e").
#
# Example overrides:
# [ui.theme_overrides]
# background = "#000000"
# text_fg = "#ffffff"
# selection_bg = "#444444"
# match_fg = "#ff0000"
# Keybindings and Events
# ----------------------------------------------------------------------------
#
[keybindings]
# Application control
# ------------------
esc = "quit"
ctrl-c = "quit"
# Navigation and selection
# -----------------------
down = "select_next_entry"
ctrl-n = "select_next_entry"
ctrl-j = "select_next_entry"
up = "select_prev_entry"
ctrl-p = "select_prev_entry"
ctrl-k = "select_prev_entry"
# History navigation
# -----------------
ctrl-up = "select_prev_history"
ctrl-down = "select_next_history"
# Multi-selection
# --------------
tab = "toggle_selection_down"
backtab = "toggle_selection_up"
enter = "confirm_selection"
# Preview panel control
# --------------------
pagedown = "scroll_preview_half_page_down"
pageup = "scroll_preview_half_page_up"
ctrl-f = "cycle_previews"
# Data operations
# --------------
ctrl-y = "copy_entry_to_clipboard"
ctrl-r = "reload_source"
ctrl-s = "cycle_sources"
# UI Features
# ----------
ctrl-t = "toggle_remote_control"
ctrl-x = "toggle_action_picker"
ctrl-o = "toggle_preview"
ctrl-h = "toggle_help"
f12 = "toggle_status_bar"
ctrl-l = "toggle_layout"
# Input field actions
# ----------------------------------------
backspace = "delete_prev_char"
ctrl-w = "delete_prev_word"
ctrl-u = "delete_line"
delete = "delete_next_char"
left = "go_to_prev_char"
right = "go_to_next_char"
home = "go_to_input_start"
ctrl-a = "go_to_input_start"
end = "go_to_input_end"
ctrl-e = "go_to_input_end"
# Shell integration
# ----------------------------------------------------------------------------
#
# The shell integration feature allows you to use television as a picker for
# your shell commands (as well as your shell history with <CTRL-R>).
# E.g. typing `git checkout <CTRL-T>` will open television with a list of
# branches to choose from.
[shell_integration]
# This specifies the default fallback channel if no other channel is matched.
fallback_channel = "files"
[shell_integration.channel_triggers]
# Add your channel triggers here. Each key is a channel that will be triggered
# by the corresponding commands.
# Example: say you want the following commands to trigger the following channels
# when pressing <CTRL-T>:
# `git checkout` should trigger the `git-branches` channel
# `ls` should trigger the `dirs` channel
# `cat` and `cp` should trigger the `files` channel
#
# You would add the following to your configuration file:
# ```
# [shell_integration.channel_triggers]
# "git-branches" = ["git checkout"]
# "dirs" = ["ls"]
# "files" = ["cat", "cp"]
# ```
"alias" = ["alias", "unalias"]
"env" = ["export", "unset"]
"dirs" = ["cd", "ls", "rmdir", "z"]
"files" = [
"cat",
"less",
"head",
"tail",
"vim",
"nano",
"bat",
"cp",
"mv",
"rm",
"touch",
"chmod",
"chown",
"ln",
"tar",
"zip",
"unzip",
"gzip",
"gunzip",
"xz",
]
"git-diff" = ["git add", "git restore"]
"git-branch" = [
"git switch",
"but branch delete",
"git delete-branch",
"git checkout",
"git branch",
"git merge",
"git rebase",
"git pull",
"git push",
]
"git-log" = ["git log", "git show"]
"channels" = ["tv", "television"]
[shell_integration.keybindings]
# controls which key binding should trigger tv
# for shell autocomplete
"smart_autocomplete" = "ctrl-t"
# controls which keybinding should trigger tv
# for command history
"command_history" = "ctrl-r"
-298
View File
@@ -1,298 +0,0 @@
/* stylelint-disable declaration-colon-space-after, scss/dollar-variable-colon-space-after */
:root {
--background-0: #1d2021;
--background-1: #282828;
--background-2: #32302f;
--background-3: #3c3836;
--background-4: #504945;
--background-5: #665c54;
--foreground-0: #665c54;
--foreground-1: #bdae93;
--foreground-2: #d5c4a1;
--foreground-3: #ebdbb2;
--foreground-4: #fbf1c7;
--red: #ea6962;
--orange: #e78a4e;
--yellow: #d8a657;
--green: #a9b665;
--cyan: #89b482;
--blue: #7daea3;
--magenta: #d3869b;
}
:root {
--border-radius-0: 3px;
--border-radius-1: 4px;
--border-radius-2: 6px;
--border-radius-3: 8px;
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--shadow-0:
0 0.1px 0.1px 0 rgb(0 0 0 / 35%),
0 0.4px 0.5px -0.7px rgb(0 0 0 / 35%),
0 1.1px 1.2px -1.5px rgb(0 0 0 / 25%),
0 2.7px 3.2px -2px rgb(0 0 0 / 35%),
0 -0.1px 1.2px 0 rgb(0 0 0 / 20%),
0 0 3.5px -2.2px rgb(0 0 0 / 30%);
--shadow-1:
rgb(0 0 0 / 7%) 0 0.4px 0.5px 0,
rgb(0 0 0 / 7%) 0 1.2px 1.3px -0.8px,
rgb(0 0 0 / 7%) 0 2.9px 3.3px -1.7px,
rgb(0 0 0 / 7%) 0.1px 6.9px 7.8px -2.5px,
rgb(0 0 0 / 10%) 0 0 7.8px -2.5px;
--shadow-2:
rgb(0 0 0 / 15%) 0 0.4px 0.5px 0,
rgb(0 0 0 / 15%) 0 1.8px 2px -0.4px,
rgb(0 0 0 / 15%) 0 3.3px 3.7px -0.7px,
rgb(0 0 0 / 15%) 0.1px 5.3px 6px -1.1px,
rgb(0 0 0 / 15%) 0.1px 8.4px 9.5px -1.4px,
rgb(0 0 0 / 15%) 0.1px 13.1px 14.7px -1.8px,
rgb(0 0 0 / 15%) 0.2px 19.9px 22.4px -2.1px,
rgb(0 0 0 / 15%) 0.3px 29.3px 33px -2.5px,
rgb(0 0 0 / 17.5%) 0 0 9.5px -1.4px;
--font-family-sans:
-apple-system,
blinkmacsystemfont,
"Open Sans",
"Helvetica Neue",
"Segoe UI",
roboto,
oxygen,
ubuntu,
cantarell,
sans-serif;
--font-family-mono:
"Mono Lisa",
sfmono-regular,
"Source Code Pro",
menlo,
monaco,
consolas,
"Liberation Mono",
monospace;
--font-size-1: 10px;
--font-size-2: 16px;
--font-size-3: 20px;
--font-weight-mono-normal: 400;
--font-weight-sans-normal: 400;
--font-weight-mono-semibold: 500;
--font-weight-sans-semibold: 500;
--font-weight-mono-bold: 600;
--font-weight-sans-bold: 600;
}
:root {
--tridactyl-cmdl-font-size: var(--font-size-3);
--tridactyl-header-font-size: var(--font-size-2);
--tridactyl-cmdl-font-family: var(--font-family-mono);
--tridactyl-cmplt-font-family: var(--font-family-mono);
--tridactyl-header-font-weight: var(--font-weight-mono-semibold);
--tridactyl-fg: var(--foreground-2);
--tridactyl-bg: var(--background-2);
--tridactyl-url-fg: var(--blue);
--tridactyl-url-bg: var(--background-2);
--tridactyl-highlight-box-bg: var(--green);
--tridactyl-highlight-box-fg: var(--background-2);
--tridactyl-photon-colours-accent-1: var(--blue);
--tridactyl-hintspan-fg: var(--background-2) !important;
--tridactyl-hintspan-bg: var(--cyan) !important;
--tridactyl-hint-active-fg: none;
--tridactyl-hint-active-bg: none;
--tridactyl-hint-active-outline: none;
--tridactyl-hint-bg: none;
--tridactyl-hint-outline: none;
}
span.TridactylHint {
padding: 1px var(--space-1) 2px !important;
border-radius: var(--border-radius-0) !important;
font-family: var(--font-family-mono) !important;
font-weight: var(--font-weight-mono-semibold) !important;
box-shadow: var(--shadow-0) !important;
animation: 3s linear 1s infinite running hint !important;
}
span.TridactylHint:nth-child(1n) {
background: #ea6962 !important;
}
span.TridactylHint:nth-child(2n) {
background: #e78a4e !important;
}
span.TridactylHint:nth-child(3n) {
background: #d8a657 !important;
}
span.TridactylHint:nth-child(4n) {
background: #a9b665 !important;
}
span.TridactylHint:nth-child(5n) {
background: #89b482 !important;
}
span.TridactylHint:nth-child(6n) {
background: #7daea3 !important;
}
span.TridactylHint:nth-child(7n) {
background: #d3869b !important;
}
#trinewtab > img {
display: none;
}
.TridactylStatusIndicator {
position: fixed !important;
right: 5px !important;
bottom: 0 !important;
bottom: 5px !important;
padding: 0.25rem 0.375rem !important;
border: unset !important;
background: var(--tridactyl-bg) !important;
border-radius: var(--border-radius-1) !important;
box-shadow: var(--shadow-1) !important;
color: var(--yellow) !important;
font-size: 0.75rem !important;
font-weight: 500 !important;
opacity: 0.75;
}
#cmdline_iframe {
position: fixed !important;
z-index: 2147483647 !important;
top: 20% !important;
bottom: unset;
left: 10% !important;
width: 80% !important;
color-scheme: light;
}
.TridactylOwnNamespace > body {
display: flex;
box-sizing: border-box;
flex-direction: column;
align-items: stretch;
padding: 3rem;
}
#command-line-holder {
display: flex;
overflow: hidden;
flex-direction: row;
align-items: center;
order: 1;
background: var(--background-0);
border-radius: 0;
border-top-left-radius: var(--border-radius-3);
border-top-right-radius: var(--border-radius-3);
box-shadow: var(--shadow-2);
color: var(--tridactyl-bg);
opacity: 0.95;
}
#command-line-holder #tridactyl-colon {
padding-left: 0.75rem;
color: var(--foreground-1);
font-size: 1.25rem;
opacity: 0.5;
}
#tridactyl-input {
width: 100%;
box-sizing: border-box;
padding: 1rem;
padding-left: 0.25rem;
background: transparent;
color: var(--tridactyl-fg);
line-height: 1.5;
}
#completions {
--option-height: 1.4em;
display: inline-block;
overflow: hidden;
width: auto;
order: 2;
padding-bottom: 0.5rem;
border-top: unset;
background: var(--tridactyl-bg);
border-radius: 0;
border-bottom-left-radius: var(--border-radius-3);
border-bottom-right-radius: var(--border-radius-3);
box-shadow: var(--shadow-2);
color: var(--tridactyl-fg);
font-size: unset;
opacity: 0.95;
}
#completions > div {
min-height: auto;
max-height: calc(20 * var(--option-height));
}
#completions .sectionHeader {
padding: 0.5rem !important;
padding-bottom: 0.2rem;
padding-left: unset;
border-bottom: unset;
background: var(--background-1);
font-weight: var(--font-weight-mono-semibold);
}
#completions table.optionContainer {
padding-top: 0;
padding-bottom: 1rem;
border-spacing: 0;
table-layout: fixed;
}
#completions table.optionContainer td {
padding: 0.25rem 0.5rem;
}
#completions table.optionContainer td.content, #completions table.optionContainer td.documentation, #completions table.optionContainer td.title {
font-family: var(--font-family-sans);
font-weight: var(--font-weight-sans-normal);
}
#completions table.optionContainer td.title {
width: 50%;
font-weight: var(--font-weight-sans-semibold);
}
#completions table.optionContainer td.privatewindow, #completions table.optionContainer td.container {
display: none;
}
#completions table.optionContainer td.prefix {
color: var(--foreground-0);
font-weight: var(--font-weight-mono-bold);
}
#completions table.optionContainer td.icon {
position: relative;
}
#completions table.optionContainer td.icon img {
filter: sepia(100%);
}
#completions .focused {
background: var(--background-4);
color: var(--foreground-3);
}
#completions .focused .excmd {
color: var(--magenta);
}
#completions .focused .url {
background: var(--background-4);
color: var(--magenta);
}
#completions .BmarkCompletionSource {
min-height: unset;
max-height: unset;
}
#completions .BufferCompletionSource {
min-height: unset;
max-height: unset;
}
#completions .HistoryCompletionSource {
min-height: unset;
max-height: unset;
}
#completions .BufferCompletionSource tablecompletion-table {
width: unset;
border-spacing: unset;
font-size: unset;
table-layout: unset;
}
#completions .HistoryCompletionSource td.prefix {
display: none;
}
/*# sourceMappingURL=dark-soft.css.map */
-133
View File
@@ -1,133 +0,0 @@
:root {
/* Generic */
--tridactyl-font-family: Monospace;
--tridactyl-font-size: 12pt;
--tridactyl-bg: #141414;
--tridactyl-highlight: #C25C3C;
--tridactyl-focused-bg: #2F2F2F;
--tridactyl-fg: #E0D3B3;
--tridactyl-url: #4988BF;
--tridactyl-hint-fg: #FF774D;
/* Hint character tags */
--tridactyl-hintspan-font-family: var(--tridactyl-font-family);
--tridactyl-hintspan-font-size: var(--tridactyl-font-size);
--tridactyl-hintspan-font-weight: bold;
--tridactyl-hintspan-fg: var(--tridactyl-hint-fg);
--tridactyl-hintspan-bg: rgba(0, 0, 0, 0.7);
--tridactyl-hintspan-border-color: black;
--tridactyl-hintspan-border-width: 1px;
--tridactyl-hintspan-border-style: solid;
--tridactyl-hintspan-js-background: hsla(0, 0%, 65%);
/* Element highlights */
--tridactyl-hint-active-fg: none;
--tridactyl-hint-active-bg: none;
--tridactyl-hint-active-outline: none;
--tridactyl-hint-bg: none;
--tridactyl-hint-outline: 0px solid black;
/* :viewsource */
--tridactyl-vs-bg: var(--tridactyl-bg);
--tridactyl-vs-fg: var(--tridactyl-fg);
--tridactyl-vs-font-family: var(--tridactyl-font-family);
/*commandline*/
--tridactyl-cmdl-bg: var(--tridactyl-bg);
--tridactyl-cmdl-fg: var(--tridactyl-fg);
--tridactyl-font-size-cmdl: 1.30rem;
--tridactyl-cmdl-line-height: 1.30em;
--tridactyl-cmdl-font-family: var(--tridactyl-font-family);
--tridactyl-cmdl-font-size: var(--tridactyl-font-size-cmdl);
--tridactyl-cmdl-font-weight: 800;
/*completions*/
--tridactyl-cmplt-option-height: 1.60em;
--tridactyl-cmplt-fg: var(--tridactyl-fg);
--tridactyl-cmplt-bg: var(--tridactyl-bg);
--tridactyl-cmplt-font-size: var(--tridactyl-font-size);
--tridactyl-cmplt-font-family: var(--tridactyl-font-family);
/*url style*/
--tridactyl-url-text-decoration: none;
--tridactyl-url-fg: var(--tridactyl-url);
--tridactyl-url-bg: var(--tridactyl-bg);
--tridactyl-url-cursor: pointer;
}
.TridactylOwnNamespace body {
max-height: 500px;
min-height: 500px;
}
:root #command-line-holder {
order: 2;
border-top: 1px solid black; /* cmdline top */
background: var(--tridactyl-focused-bg);
}
:root #tridactyl-input {
background: var(--tridactyl-focused-bg);
}
:root #completions {
max-height: 470px;
min-height: 470px;
font-weight: 200;
}
:root #completions .sectionHeader {
display: none;
}
:root #tridactyl-colon::before {
content: " :";
font-size: var(--tridactyl-font-size-cmdl);
}
:root #completions > div {
max-height: 500px;
min-height: 500px;
padding: 5px;
}
:root #completions table {
white-space: nowrap;
-webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 97%, rgba(0,0,0,0));
}
:root #completions table tr td.prefix,
:root #completions table tr td.privatewindow,
:root #completions table tr td.container {
display: none;
}
:root #completions .focused,
:root #completions .focused .url {
background: var(--tridactyl-focused-bg);
color: var(--tridactyl-highlight);
text-decoration: none;
}
:root #completions .SessionCompletionOption .extraInfo {
color: var(--tridactyl-url);
}
:root #completions table tr .title {
padding-left: 5px !important;
}
:root #cmdline_iframe {
position: fixed !important;
bottom: unset;
/* opacity: 1; */
top: 30% !important;
left: 23% !important;
width: 60% !important;
z-index: 2147483647 !important;
border: 1px solid black !important; /* around window */
box-shadow: rgba(0, 0, 0, 0.8) 0px 0px 5px !important;
}
:root #cmdline_iframe.cleanslate.hidden {
display: none !important;
}
-120
View File
@@ -1,120 +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
bind --mode=normal § mode ignore
bind --mode=ignore § mode normal
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://chatgpt.com/* ss fillcmdline open B: OPENAI
bindurl ^https://chat.mistral.ai/chat* ss fillcmdline open B: OPENAI
bindurl ^https://rss.jaandrle.cz/* ss nmode ignore 1 mode normal
bindurl ^https://rss.jaandrle.cz/* sn hint -c div
command mlpPritomne js const f= "filter[dostupnost][eq]"; const s= new URLSearchParams(location.search); s[s.has(f)?"delete":"set"](f, "pritomne"); location.search= "?"+s.toString();
bindurl ^https://www.mlp.cz/* ss fillcmdline_notrail mlp
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= ( location.hostname!=="www.disneyplus.com" ? v.duration : (document.querySelector(".time-remaining-label").textContent.split(":").reduce((acc, curr, i)=> (!i ? 60 : 1)*curr+acc, 0)+v.currentTime) )-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
bind \t 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 ž 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 \c 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
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 canonicalHref = document.querySelector('link[rel=canonical]')?.href; const parts = (canonicalHref ? new URL(canonicalHref) : 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 :
+1 -5
View File
@@ -1,13 +1,9 @@
#! /usr/bin/
uu_wd_alias="v2d.wttr.in/${1:-prague}?M"
uu_wd_is_raw=1
uu_w_alias="wttr.in/${1:-prague}?M"
uu_w_is_raw=0
uu_h_alias="cheat.sh/$1"
uu_h_is_raw=0
uu_surl_alias="tinyurl.com/api-create.php?url=$1"
uu_surl_is_raw=1
uu_ip_alias="ip-api.com"
uu_ip_alias="ifconfig.co/json"
uu_ip_is_raw=1
uu_qr_alias="qrenco.de/$1"
uu_qr_is_raw=1

Some files were not shown because too many files have changed in this diff Show More