diff options
Diffstat (limited to 'config/essentials')
-rw-r--r-- | config/essentials/git/config | 4 | ||||
-rw-r--r-- | config/essentials/shell/aliases.sh | 12 | ||||
-rw-r--r-- | config/essentials/shell/functions.sh | 27 | ||||
m--------- | config/essentials/vis/plugins/vis-cursors | 0 | ||||
m--------- | config/essentials/vis/plugins/vis-title | 0 | ||||
-rw-r--r-- | config/essentials/vis/themes/nord.lua | 123 | ||||
-rw-r--r-- | config/essentials/vis/visrc.lua | 84 | ||||
-rw-r--r-- | config/essentials/zsh/.zshrc | 8 | ||||
-rw-r--r-- | config/essentials/zsh/comp.zsh | 6 |
9 files changed, 248 insertions, 16 deletions
diff --git a/config/essentials/git/config b/config/essentials/git/config index cb16983..99cf21e 100644 --- a/config/essentials/git/config +++ b/config/essentials/git/config @@ -8,9 +8,9 @@ autosetupremote = true [pull] rebase = false -[commit] - gpgsign = true [merge] ff = false [alias] change-commits = "!f() { VAR1=$1; VAR='$'$1; OLD=$2; NEW=$3; echo \"Are you sure for replace $VAR $OLD => $NEW ?(Y/N)\";read OK;if [ \"$OK\" = 'Y' ] ; then shift 3; git filter-branch --env-filter \"if [ \\\"${VAR}\\\" = '$OLD' ]; then export $VAR1='$NEW';echo 'to $NEW'; fi\" $@; fi;}; f " +[commit] + gpgsign = true diff --git a/config/essentials/shell/aliases.sh b/config/essentials/shell/aliases.sh index 5db3d65..fdd9d17 100644 --- a/config/essentials/shell/aliases.sh +++ b/config/essentials/shell/aliases.sh @@ -2,7 +2,7 @@ # s/alias \([^-]\)/alias -g \1 # The most important one -alias vi='nvim' +alias vi='vis' which z > /dev/null 2>&1 && alias cd='z' @@ -83,7 +83,7 @@ alias lst2='ls --tree -L2' alias lst3='ls --tree -L3' alias ls.='ls -dl .*' which eza >/dev/null 2>&1 && - alias ls='eza --sort extension --group-directories-first --no-time --git' || + alias ls='eza --sort extension --group-directories-first --git' || alias ls='ls --color --group-directories-first --sort=extension' # pacman aliases @@ -197,7 +197,7 @@ alias gdate='date +%y_%m_%d-%T' alias tpid='tail -f /dev/null --pid' alias pwdcp='pwd | clipp' alias gw="grep -ri" -alias srcsupd='echo ~/src/{installdrier,dotfiles,password-store} ~/proj/suckless/*/ ~/proj/personal/scripts/*/ ~/.config/emacs ~/.config/nvim | supd' +alias srcsupd='echo ~/src/{installdrier,dotfiles,password-store} ~/proj/suckless/*/ ~/.config/emacs ~/.config/nvim | supd' # systemctl aliases alias smc='systemctl' @@ -341,6 +341,12 @@ alias ddeps='pactree -r -d 1' alias update-mirrors='reflector -p https | rankmirrors -n 10 -p -w - | doas tee /etc/pacman.d/mirrorlist' alias tmpd='cd $(mktemp -d)' +alias tmpf='$EDITOR $(mktemp)' alias brs='$BROWSER' which bat > /dev/null 2>&1 && alias cat="bat -p" + +alias glf='git pull --ff' +alias glnf='git pull --no-ff' +alias quickvms='/media/cricket/vms/quickemu/"$(find '\''/media/cricket/vms/quickemu/'\'' -type f -iname '\''*.conf'\'' -printf '\''%f +'\'' | sed '\''s/\.conf$//'\'' | fzf)".conf 2> /dev/null' diff --git a/config/essentials/shell/functions.sh b/config/essentials/shell/functions.sh index 3676f26..8e51135 100644 --- a/config/essentials/shell/functions.sh +++ b/config/essentials/shell/functions.sh @@ -45,12 +45,12 @@ o() test "$1" && shift test -f "$f" && $EDITOR $@ "$f" } -go() +og() { _googoo_fzf_opt "$1" cd "$(goo d "$dest" | fzf $opt)" } -ogo() +oog() { _googoo_fzf_opt "$1" cd "$(dirname "$(goo f "$dest" | fzf $opt)")" @@ -109,7 +109,7 @@ clip() { then echo -n "$@" | wl-copy else - echo -n "$@" | xclip -selection clipboard -rmlastnl + echo -n "$@" | xsel -b fi } @@ -241,6 +241,7 @@ pacsize() mime-default () { + mime= [ "${mime:=$1}" ] || mime="$(find /usr/share/applications/ -iname '*.desktop' -printf '%f\n' | sed 's/\.desktop$//' | @@ -357,3 +358,23 @@ ssh_port() ssh -f -N -L 0.0.0.0:"$3":localhost:"$1" "$2" >&2 printf "Forwarded port '%s' on '%s' to '%s'.\n" "$1" "$2" "$3" } +ffconcat () { + tmp=$(mktemp -p . ffconcat.XXXXX) + sed 's/.*/file &/' > "$tmp" + ffmpeg -y -f concat -safe 0 -i $tmp -c copy "$1" + rm $tmp +} + +# wrap ssh and add key if exists +ssh() { + if [ "$#" -gt 1 ] + then + /usr/bin/ssh $@ + return + fi + + grep -E "Host\s+$1" $HOME/.ssh/config > /dev/null 2>&1 && + keyadd "$1" > /dev/null 2>&1 + /usr/bin/ssh "$1" +} + diff --git a/config/essentials/vis/plugins/vis-cursors b/config/essentials/vis/plugins/vis-cursors new file mode 160000 +Subproject f86c584fc2d4a2bab47df0cd5d187dd81fb7185 diff --git a/config/essentials/vis/plugins/vis-title b/config/essentials/vis/plugins/vis-title new file mode 160000 +Subproject 9c808f7e71b43aca31dee8553dcfce2214d7fc4 diff --git a/config/essentials/vis/themes/nord.lua b/config/essentials/vis/themes/nord.lua new file mode 100644 index 0000000..a21f0fa --- /dev/null +++ b/config/essentials/vis/themes/nord.lua @@ -0,0 +1,123 @@ +-- base16-vis (https://github.com/pshevtsov/base16-vis) +-- by Petr Shevtsov +-- Nord scheme by arcticicestudio + +local lexers = vis.lexers + +local colors = { + ['bg'] = '#2E3440', + ['black'] = '#3B4252', + ['light_black'] = '#434C5E', + ['dark_gray'] = '#4C566A', + ['gray'] = '#D8DEE9', + ['light_gray'] = '#616E88', + ['fg'] = '#E5E9F0', + ['white'] = '#ECEFF4', + ['turquoise'] = '#8FBCBB', + ['light_cyan'] = '#88C0D0', + ['cyan'] = '#81A1C1', + ['blue'] = '#5E81AC', + ['red'] = '#BF616A', + ['orange'] = '#D08770', + ['yellow'] = '#EBCB8B', + ['green'] = '#A3BE8C', + ['magenta'] = '#B48EAD', +} + +lexers.colors = colors + +local fg = 'fore:'..colors.fg +local bg = 'back:'..colors.bg + +lexers.STYLE_DEFAULT = bg..','..fg +lexers.STYLE_NOTHING = bg +lexers.STYLE_CLASS = 'fore:'..colors.blue +lexers.STYLE_COMMENT = 'fore:'..colors.light_gray..',italics' +lexers.STYLE_CONSTANT = 'fore:'..colors.cyan +lexers.STYLE_DEFINITION = 'fore:'..colors.green +lexers.STYLE_ERROR = 'fore:'..colors.light_cyan..',italics' +lexers.STYLE_FUNCTION = 'fore:'..colors.light_cyan..',bold' +lexers.STYLE_HEADING = 'fore:'..colors.bg..',back:'..colors.yellow +lexers.STYLE_KEYWORD = 'fore:'..colors.cyan..',bold' +lexers.STYLE_LABEL = 'fore:'..colors.blue +lexers.STYLE_NUMBER = 'fore:'..colors.magenta +lexers.STYLE_OPERATOR = 'fore:'..colors.light_cyan +lexers.STYLE_REGEX = 'fore:'..colors.orange +lexers.STYLE_STRING = 'fore:'..colors.green +lexers.STYLE_PREPROCESSOR = 'fore:'..colors.blue +lexers.STYLE_TAG = 'fore:'..colors.blue +lexers.STYLE_TYPE = 'fore:'..colors.cyan +lexers.STYLE_VARIABLE = 'fore:'..colors.cyan..',bold' +lexers.STYLE_WHITESPACE = 'fore:'..colors.light_black +lexers.STYLE_EMBEDDED = 'fore:'..colors.magenta +lexers.STYLE_IDENTIFIER = fg..',bold' + +lexers.STYLE_LINENUMBER = 'fore:'..colors.light_black..',back:'..colors.bg +lexers.STYLE_CURSOR = 'fore:'..colors.bg..',back:'..colors.fg +lexers.STYLE_CURSOR_PRIMARY = 'fore:'..colors.bg..',back:'..colors.fg +lexers.STYLE_CURSOR_LINE = 'back:'..colors.black +lexers.STYLE_COLOR_COLUMN = 'back:'..colors.black +lexers.STYLE_SELECTION = 'back:'..colors.light_black +lexers.STYLE_STATUS = 'fore:'..colors.gray..',back:'..colors.black +lexers.STYLE_STATUS_FOCUSED = 'fore:'..colors.cyan..',back:'..colors.black +lexers.STYLE_SEPARATOR = lexers.STYLE_DEFAULT +lexers.STYLE_INFO = 'fore:default,back:default,bold' +lexers.STYLE_EOF = '' + +-- lexer specific styles + +-- Diff +lexers.STYLE_ADDITION = 'back:'..colors.green..',fore:'..colors.bg +lexers.STYLE_DELETION = 'back:'..colors.red..',fore:'..colors.bg +lexers.STYLE_CHANGE = 'back:'..colors.yellow..',fore:'..colors.bg + +-- CSS +lexers.STYLE_PROPERTY = lexers.STYLE_ATTRIBUTE +lexers.STYLE_PSEUDOCLASS = '' +lexers.STYLE_PSEUDOELEMENT = '' + +-- HTML +lexers.STYLE_TAG_UNKNOWN = lexers.STYLE_TAG .. ',italics' +lexers.STYLE_ATTRIBUTE_UNKNOWN = lexers.STYLE_ATTRIBUTE .. ',italics' + +-- Latex, TeX, and Texinfo +lexers.STYLE_COMMAND = lexers.STYLE_KEYWORD +lexers.STYLE_COMMAND_SECTION = lexers.STYLE_CLASS +lexers.STYLE_ENVIRONMENT = lexers.STYLE_TYPE +lexers.STYLE_ENVIRONMENT_MATH = lexers.STYLE_NUMBER + +-- Makefile +lexers.STYLE_TARGET = '' + +-- Markdown +lexers.STYLE_HR = '' +lexers.STYLE_HEADING_H1 = 'fore:'..colors.orange..',bold' +lexers.STYLE_HEADING_H2 = 'fore:'..colors.red..',bold' +for i = 3,6 do lexers['STYLE_HEADING_H'..i] = 'fore:'..colors.magenta..',bold' end +lexers.STYLE_BOLD = 'bold' +lexers.STYLE_ITALIC = 'italics' +lexers.STYLE_LIST = lexers.STYLE_KEYWORD +lexers.STYLE_LINK = 'fore:'..colors.yellow..',italics' +lexers.STYLE_REFERENCE = 'fore:'..colors.blue +lexers.STYLE_CODE = 'back:'..colors.black..',fore:'..colors.turquoise + +-- Output +lexers.STYE_FILENAME = 'bold' +lexers.STYLE_LINE = 'fore:'..colors.green +lexers.STYLE_COLUMN = 'underline' +lexers.STYLE_MESSAGE = '' + +-- Python +lexers.STYLE_KEYWORD_SOFT = '' + +-- YAML +lexers.STYLE_ERROR_INDENT = 'back:'..colors.red + + +-- GO +lexers.STYLE_CONSTANT_BUILTIN = 'fore:'..colors.yellow +lexers.STYLE_FUNCTION_METHOD = 'fore:'..colors.light_cyan +lexers.STYLE_FUNCTION_BUILTIN = 'fore:'..colors.light_cyan..',bold' + +-- Lua +lexers.STYLE_ATTRIBUTE = 'fore:'..colors.yellow..',bold' diff --git a/config/essentials/vis/visrc.lua b/config/essentials/vis/visrc.lua new file mode 100644 index 0000000..a424613 --- /dev/null +++ b/config/essentials/vis/visrc.lua @@ -0,0 +1,84 @@ +------------------------------------ +--- LIBRARIES +------------------------------------ + +require('vis') +require('plugins/vis-cursors') +require('plugins/vis-title') + +------------------------------------ +--- EVENTS +------------------------------------ + +vis.events.subscribe(vis.events.INIT, function() + vis.options.ignorecase = true + vis.options.autoindent = true + vis.options.shell = "/bin/sh" + theme = "nord" + vis:command("set theme " .. theme) +end) + +vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args + win.options.relativenumbers = true +end) + +------------------------------------ +--- FUNCTIONS +------------------------------------ + +function map_cmd(mode, map, command, help) + vis:map(mode, map, function() + vis:command(command) + end, help) +end + +function map_cmd_restore(mode, map, command, help) + vis:map(mode, map, function() + if (mode == vis.modes.INSERT) then + vis:feedkeys("<Escape>") + end + + vis:feedkeys("m") + vis:command(command) + vis:feedkeys("M") + + if (mode == vis.modes.INSERT) then + vis:feedkeys("i") + end + end, help) +end + +------------------------------------ +--- VARIABLES +------------------------------------ + +local m = vis.modes + +------------------------------------ +--- COMMANDS +------------------------------------ + +vis:command_register("Q", function(argv, force, win, selection, range) + vis:command("qa!") +end, "Quit all") + +------------------------------------- +--- MAPPINGS +------------------------------------- + +map_cmd_restore(m.NORMAL, " r", "e $vis_filepath", "Reload active file") + +map_cmd(m.NORMAL, " c", "e ~/.config/vis/visrc.lua", "Edit config file") +map_cmd(m.NORMAL, " q", "q!", "Quit (force)") +map_cmd(m.NORMAL, " s", "!doas vis $vis_filepath", "Edit as superuser") +map_cmd(m.NORMAL, " w", "w", "Write") +map_cmd(m.NORMAL, " x", "!chmod u+x $vis_filepath", "Make active file executable") + +vis:map(m.NORMAL, " eh", function() + vis:command("!lowdown $vis_filepath > ${vis_filepath%.md}.html") + vis:info("exported.") +end, "Export markdown to html") +vis:map(m.NORMAL, " nl", function() vis:feedkeys(":<seq -f '%0.0f. ' 1 ") end, "Insert numbered list") + + +-- select markdown list element: ,x/^(\d+\.|[-*])\s+.+\n(^ .+\n)*/ diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index 2b3ae1a..5981fd9 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -33,20 +33,16 @@ eval "$(zoxide init zsh)" [ -f "$HOME/.local/share/zap/zap.zsh" ] && source "$HOME/.local/share/zap/zap.zsh" # plug "MichaelAquilina/zsh-you-should-use" plug "chivalryq/git-alias" -plug "kutsan/zsh-system-clipboard" # plug "marlonrichert/zsh-autocomplete" -plug "xPMo/zsh-toggle-command-prefix" plug "zap-zsh/fzf" -plug "zap-zsh/vim" plug "zdharma-continuum/fast-syntax-highlighting" plug "zsh-users/zsh-autosuggestions" plug "zsh-users/zsh-completions" -plug "zsh-users/zsh-history-substring-search" plug "MichaelAquilina/zsh-auto-notify" export AUTO_NOTIFY_TITLE="zsh" export AUTO_NOTIFY_BODY="%command [%exit_code]" -AUTO_NOTIFY_IGNORE+=("gurk" "ttyper" "pulsemixer" "tmux" "btop" "vis") +AUTO_NOTIFY_IGNORE+=("gurk" "ttyper" "pulsemixer" "tmux" "btop" "vis" "clock") # Substring search settings export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="bg=blue,fg=black,bold" @@ -63,7 +59,7 @@ fi # Add nnn shell level to prompt -[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1" +[ -n "$NNNLVL" ] && PS1="N$NNNLVL$PS1" # cd on nnn quiting nnn_cd () diff --git a/config/essentials/zsh/comp.zsh b/config/essentials/zsh/comp.zsh index 4836111..076882d 100644 --- a/config/essentials/zsh/comp.zsh +++ b/config/essentials/zsh/comp.zsh @@ -2,11 +2,10 @@ # Find most of the stuff at https://github.com/zap-zsh/completions zmodload zsh/complist -autoload -Uz compinit; compinit zstyle ':compinstall' filename '/home/aluc/.zshrc' # cache -zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path "$ZDOTDIR/zcompcache" +zstyle ':completion:*' use-cache on # completers zstyle ':completion:*' completer _extensions _complete @@ -37,6 +36,9 @@ zstyle ':completion:*' keep-prefix true # ui zstyle ':completion:*' menu select +ZSH_COMPDUMP="$ZDOTDIR"/zcompcache +autoload -Uz compinit; compinit -d "$ZSH_COMPDUMP" + _dotnet_zsh_complete() { local completions=("$(dotnet complete "$words")") |