Initial commit: bash, zsh, docker, git, subl
This commit is contained in:
16
.editorconfig
Normal file
16
.editorconfig
Normal file
@@ -0,0 +1,16 @@
|
||||
; this is pretty universal config, not only for this repo
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_size = 2
|
||||
24
README.md
Normal file
24
README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Axenov dotfiles
|
||||
|
||||
```shell
|
||||
# install stow
|
||||
sudo apt install -y stow
|
||||
|
||||
# clone dotfiles
|
||||
git clone https://git.axenov.dev/anthony/dotfiles.git ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
|
||||
# install git dotfiles (or any other ones) in $HOME
|
||||
stow -v git
|
||||
|
||||
# remove them from $HOME
|
||||
stow -v git -D
|
||||
```
|
||||
|
||||
Target (`-t`) defaults to the parent of `pwd`, so if you clone this repo not in `$HOME` then you MUST explicitly provide `-t ~` or `-t $HOME` every time.
|
||||
|
||||
## Documentation
|
||||
|
||||
* <https://www.gnu.org/software/stow/manual/stow.html>
|
||||
* <https://tamerlan.dev/how-i-manage-my-dotfiles-using-gnu-stow/>
|
||||
* <https://gist.github.com/andreibosco/cb8506780d0942a712fc>
|
||||
15
docker/etc/docker/daemon.json
Normal file
15
docker/etc/docker/daemon.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://dockerhub.timeweb.cloud",
|
||||
"https://dh-mirror.gitverse.ru",
|
||||
"https://mirror.gcr.io",
|
||||
"https://daocloud.io",
|
||||
"https://c.163.com/",
|
||||
"https://registry.docker-cn.com",
|
||||
"https://huecker.io",
|
||||
"https://public.ecr.aws",
|
||||
"https://quay.io",
|
||||
"https://registry.access.redhat.com",
|
||||
"https://registry.redhat.io"
|
||||
]
|
||||
}
|
||||
217
git/.git_aliases
Normal file
217
git/.git_aliases
Normal file
@@ -0,0 +1,217 @@
|
||||
[alias]
|
||||
exec = "!exec" ; make aliases usable in aliases
|
||||
;####################################################
|
||||
; basic shortcuts
|
||||
;####################################################
|
||||
|
||||
a = "add"
|
||||
b = "branch"
|
||||
br = "branch"
|
||||
c = "commit"
|
||||
cl = "clean"
|
||||
co = "checkout"
|
||||
cp = "cherry-pick"
|
||||
d = "diff"
|
||||
f = "fetch"
|
||||
l = "log"
|
||||
m = "merge"
|
||||
p = "pull"
|
||||
r = "reset"
|
||||
rb = "rebase"
|
||||
re = "remote"
|
||||
rv = "revert"
|
||||
s = "status"
|
||||
st = "status"
|
||||
sb = "show-branch"
|
||||
sub = "submodule"
|
||||
|
||||
;####################################################
|
||||
; config
|
||||
;####################################################
|
||||
|
||||
aliases = "config --get-regexp '^alias.*'" ; show all aliases
|
||||
whoami = "config --local --get-regexp '^user'" ; show local user settings (in current repo)
|
||||
user = "config --local --get-regexp '^user'"
|
||||
guser = "config --global --get-regexp '^user'" ; show global user settings
|
||||
gwhoami = "guser"
|
||||
|
||||
;####################################################
|
||||
; branching
|
||||
;####################################################
|
||||
|
||||
bra = "branch -a"
|
||||
branches = "branch -a"
|
||||
bm = "branch --merged" ; branches whose tips are reachable from commit or HEAD
|
||||
merged = "bm"
|
||||
bnm = "branch --no-merged" ; branches whose tips are NOT reachable from commit or HEAD
|
||||
brd = "branch -D" ; force delete unmerged branch
|
||||
bv = "branch -v" ; show branch list with those last commits
|
||||
bvv = "branch -vv" ; bv + remote branches tracked by them
|
||||
|
||||
cob = "checkout -b" ; create new branch with name given
|
||||
|
||||
ma = "merge --abort" ; abort merging
|
||||
mc = "merge --continue" ; continue merging
|
||||
mn = "merge --no-commit" ; merge without commit
|
||||
|
||||
current-branch = "branch --show-current"
|
||||
default-branch = "config init.defaultBranch" ; get default branch name
|
||||
upstream-branch = "!git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD)"
|
||||
|
||||
;####################################################
|
||||
; staging
|
||||
;####################################################
|
||||
|
||||
aa = "add --all" ; add all unstaged into index
|
||||
|
||||
dc = "diff --cached" ; show diff of staged files
|
||||
dw = "diff --word-diff" ; show word diff in unstaged files
|
||||
dwc = "diff --word-diff --cached" ; dc + dw
|
||||
|
||||
clf = "clean -df" ; remove new files in current and nested dirs
|
||||
clff = "clean -dff" ; remove new files in current and nested dirs + repos
|
||||
clx = "clean -dffx" ; remove new + ignored files in current and nested dirs + repos
|
||||
cleanout = "!git clean -df && git checkout -- ."
|
||||
|
||||
discard = "checkout --" ; удаляет изменения в файле
|
||||
unstage = "reset HEAD" ; staged file => unstaged
|
||||
|
||||
;####################################################
|
||||
; committing
|
||||
;####################################################
|
||||
|
||||
ca = "commit --all" ; stage all changes and make a commit (interative)
|
||||
cm = "commit --message" ; make a commit with message given (non-interactive)
|
||||
cam = "commit --all --message" ; ca + cm (non-interactive)
|
||||
amendm = "commit --amend --all --message" ; amend + edit commit message (non-interactive)
|
||||
amend = "commit --amend --all --no-edit" ; add new changes into last commit (non-interactive)
|
||||
|
||||
cpa = "cherry-pick --abort" ; abort cherry-picking
|
||||
cpc = "cherry-pick --continue" ; continue cherry-picking
|
||||
cpn = "cherry-pick --no-commit" ; cherry-pick without commit
|
||||
cpnx = "cherry-pick --no-commit -x" ; cherry-pick without commit and add commit name to COMMIT_MSG
|
||||
|
||||
rh = "reset --hard" ; откат коммита с удалением всех изменений
|
||||
rhh = "reset --hard HEAD" ; откат коммита с удалением всех изменений на последний коммит
|
||||
rs = "reset --soft" ; откат коммита с сохранением всех изменений
|
||||
rsh = "reset --soft HEAD" ; откат коммита с сохранением всех изменений
|
||||
|
||||
; make a temporary commit with current worktree state as is
|
||||
wip = "!git add . && git commit --message 'WIP' --no-verify"
|
||||
wipa = "!git add . && git commit --message 'WIP' --no-verify --amend"
|
||||
|
||||
; undo last commit preserving all changes
|
||||
undo = "reset --soft HEAD~1"
|
||||
uncommit = "reset --soft HEAD~1"
|
||||
rvn = "revert --no-commit"
|
||||
|
||||
;####################################################
|
||||
; rebasing
|
||||
;####################################################
|
||||
|
||||
rba = "rebase --abort"
|
||||
rbc = "rebase --continue"
|
||||
rbi = "rebase --interactive"
|
||||
rbs = "rebase --skip"
|
||||
|
||||
;####################################################
|
||||
; manage remotes
|
||||
;####################################################
|
||||
|
||||
remotes = "remote --verbose" ; show remote repos list
|
||||
rev = "remote --verbose"
|
||||
rea = "remote add"
|
||||
rs = "remote show"
|
||||
rso = "remote show origin" ; show state of local branches against origin ones
|
||||
rp = "remote prune" ; remove stale local references to remote branches
|
||||
rpd = "remote prune --dry-run" ; show stale local references to remote branches
|
||||
rpo = "remote prune origin" ; remove stale local references to origin branches
|
||||
rpo = "remote prune origin --dry-run" ; show stale local references to origin branches
|
||||
|
||||
;####################################################
|
||||
; garbage
|
||||
;####################################################
|
||||
|
||||
; remove unreachable objects
|
||||
vacuum="!git reflog expire --expire-unreachable=now --all; git gc --prune=now"
|
||||
|
||||
; force remove current branch from local (brd) and remote repos
|
||||
brod = "!git branch -D "$1"; git push origin :"$1";"
|
||||
|
||||
orphans = "fsck --full"
|
||||
repacker = "repack -Adf --depth=300 --window=300 --window-memory=1g"
|
||||
pruner = "!git prune --expire=now; git reflog expire --expire-unreachable=now --rewrite --all"
|
||||
optimizer = "!git pruner; git repacker; git prune-packed"
|
||||
; trim = "!DEFAULT=$(git default-branch); git branch --merged ${1-$DEFAULT} | grep -v " ${1-$DEFAULT}$" | xargs git branch -d; git remote prune origin;"
|
||||
|
||||
;####################################################
|
||||
; logs
|
||||
;####################################################
|
||||
|
||||
lo = "log --oneline"
|
||||
lgda = "log --graph --decorate --all"
|
||||
head = "log -1 HEAD" ; show the last commit in current branch
|
||||
heads = "log --graph --decorate --simplify-by-decoration --oneline" ; show last commit of each branch as tree graph
|
||||
log-small = "log --graph --decorate --all --pretty=format:'%C(bold red)%h%C(reset) %C(bold blue)%an%C(reset) %C(green)%cr%C(reset) [%aD]%d%n%B'"
|
||||
log-my = "!git log --author $(git config user.email)" ; show only my own commits
|
||||
; outbound = "log @{upstream}.."
|
||||
inbound = "!git remote update --prune; git log ..@{upstream}"
|
||||
|
||||
;####################################################
|
||||
; updating local repo
|
||||
;####################################################
|
||||
|
||||
pf = "pull --force"
|
||||
pullf = "pull --force"
|
||||
pullt = "pull --tags"
|
||||
pt = "pull --tags"
|
||||
pullft = "pull --force --tags"
|
||||
pft = "pull --force --tags"
|
||||
prs = "pull --recurse-submodules" ; pull with submodules
|
||||
|
||||
fa = "fetch --all" ; fetch branches from all remotes
|
||||
|
||||
;####################################################
|
||||
; updating remote repo
|
||||
;####################################################
|
||||
|
||||
pushf = "push --force"
|
||||
pusht = "push --tags"
|
||||
pushft = "push --tags --force"
|
||||
|
||||
repush = "!git push origin :$1 && git push origin $1'" ; when 'push --force' is prohibited
|
||||
|
||||
;####################################################
|
||||
; statistics
|
||||
;####################################################
|
||||
|
||||
contributors = "shortlog --summary --numbered --no-merges" ; users participating in development
|
||||
|
||||
;####################################################
|
||||
; complex tasks
|
||||
;####################################################
|
||||
|
||||
archive = "!f() { top=$(rev-parse --show-toplevel); cd $top; tar cvzf $top.tar.gz $top ; }; f" ; make repo .tar.gz
|
||||
gzip = "archive"
|
||||
targz = "archive"
|
||||
|
||||
dev = "!git checkout dev && git pull" ; quick switch on 'dev' branch and update it
|
||||
develop = "!git checkout develop && git pull" ; quick switch on 'develop' branch and update it
|
||||
main = "!git checkout main && git pull" ; quick switch on main branch and update it
|
||||
master = "!git checkout master && git pull" ; quick switch on master branch and update it
|
||||
|
||||
;####################################################
|
||||
; other tasks
|
||||
;####################################################
|
||||
|
||||
tags = "tag -n1 --list" ; shot tag names and commit message
|
||||
stashes = "stash list" ; show stashed changes
|
||||
init = "init -q" ; blm is racism, 'master' branch must be 'master' branch
|
||||
start = "!git init --quiet --initial-branch maste; git commit --no-verify --allow-empty --message 'Initial commit'" ; quick start empty repo
|
||||
cloner = "clone --recursive" ; clone with submodules
|
||||
fuck = "!git checkout $(git config init.defaultBranch); git fetch origin --prune; git reset --hard origin/$(git config init.defaultBranch); git clean -dff"
|
||||
|
||||
; https://words.filippo.io/git-fixup-amending-an-older-commit/
|
||||
cf = "!f() { TARGET=$(git rev-parse \"$1\"); git commit --fixup=$TARGET && GIT_EDITOR=true git rebase --interactive --autosquash $TARGET~; }; f"
|
||||
|
||||
; dehead = "!BR=$(git branch --show-current); if [ -n "$BR" ]; then echo $BR; else git describe --contains --all HEAD; fi;"
|
||||
25
git/.gitconfig
Normal file
25
git/.gitconfig
Normal file
@@ -0,0 +1,25 @@
|
||||
[core]
|
||||
editor = nano
|
||||
autocrlf = input
|
||||
[commit]
|
||||
gpgSign = true
|
||||
[tag]
|
||||
gpgSign = true
|
||||
[init]
|
||||
defaultBranch = master
|
||||
[push]
|
||||
default = current
|
||||
followTags = true
|
||||
[pull]
|
||||
default = current
|
||||
rebase = false
|
||||
[diff "bin"]
|
||||
textconv = hexdump -v -C
|
||||
[help]
|
||||
autocorrect = 1
|
||||
[remote "origin"]
|
||||
prune = true
|
||||
[include]
|
||||
path = ~/.git_aliases
|
||||
[include]
|
||||
path = ~/.gitconfig.extra ; use this file to store other personal settings and aliases
|
||||
10
git/.gitignore
vendored
Normal file
10
git/.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
.DS_Store
|
||||
Desktop.ini
|
||||
Thumbs.db
|
||||
nbproject/
|
||||
._*
|
||||
*._*
|
||||
*.log
|
||||
*.bak
|
||||
*.rdb
|
||||
|
||||
160
shell/.bash_aliases
Normal file
160
shell/.bash_aliases
Normal file
@@ -0,0 +1,160 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# alias bashrc='source ~/.bashrc'
|
||||
alias aliases='cat ~/.bash_aliases'
|
||||
alias zshrc='source ~/.zshrc'
|
||||
alias realias='source ~/.bash_aliases'
|
||||
alias stow="stow -v"
|
||||
alias reload='exec ${SHELL} -l'
|
||||
alias sudo='sudo ' # enable aliases to be sudo’ed
|
||||
alias g='git'
|
||||
alias hosts="sudo nano /etc/hosts"
|
||||
alias shrug="echo '¯\_(ツ)_/¯' | xclip -selection c"
|
||||
|
||||
alias ..='cd ..' # zsh builtin
|
||||
alias ~='cd ~' # zsh builtin
|
||||
alias -- -='cd -' # zsh builtin
|
||||
|
||||
alias chmod='chmod --preserve-root'
|
||||
alias chown='chown --preserve-root'
|
||||
|
||||
alias free='free -h'
|
||||
alias duh='du -ha --max-depth=1'
|
||||
alias sduh='sudo du -ha --max-depth=1'
|
||||
|
||||
alias l='ls -pCFh --color=auto'
|
||||
alias la='ls -pAFh --color=auto'
|
||||
alias ll='ls -palFh --color=auto'
|
||||
|
||||
alias mkdir='mkdir -pv'
|
||||
alias where='whereis' # zsh builtin
|
||||
|
||||
alias ps='ps auxf'
|
||||
alias psg='ps aux | grep -v grep | grep -i -e VSZ -e'
|
||||
|
||||
alias is='type -a'
|
||||
alias upgrade='sudo apt update && sudo apt upgrade -y && sudo snap refresh'
|
||||
alias untargz='tar -czf'
|
||||
alias mkcd="mkdir -p $1 && cd $1"
|
||||
alias cl='cd $1 && ll'
|
||||
alias myip='curl http://ipecho.net/plain; echo'
|
||||
alias ports='netstat -tulpan'
|
||||
|
||||
alias ssh.pub='cat ~/.ssh/*.pub'
|
||||
alias gpg.new="gpg --full-generate-key"
|
||||
alias gpg.pub="gpg --armor --export $@"
|
||||
alias gpg.list='gpg --list-keys --keyid-format SHORT'
|
||||
|
||||
alias lite-xl="LITE_SCALE=1 lite-xl"
|
||||
alias wine='LANG=ru_RU.utf8 wine'
|
||||
alias docker.prune='docker image prune -f; docker network prune -f; docker container prune -f'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
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$//'\'')"'
|
||||
|
||||
# https://obsproject.com/forum/threads/how-to-start-virtual-camera-without-sudo-privileges.139783/
|
||||
alias obscam="sudo modprobe v4l2loopback video_nr=2 card_label='OBS Virtual Camera'"
|
||||
|
||||
# Download music from Youtube or Youtube Music
|
||||
# and save as top quality flac file without video
|
||||
# Playlist and video/track URLs are supported
|
||||
# Usage: $ ytm https://www.youtube.com/watch\?v=dQw4w9WgXcQ
|
||||
# More info: https://github.com/ytdl-org/youtube-dl
|
||||
ytm() {
|
||||
youtube-dl \
|
||||
--extract-audio \
|
||||
--audio-format flac \
|
||||
--audio-quality 0 \
|
||||
--format bestaudio \
|
||||
--write-info-json \
|
||||
--output "${HOME}/Музыка/ytm/%(playlist_title)s/%(channel)s - %(title)s.%(ext)s" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
|
||||
docker.ip() {
|
||||
if [ "$1" ]; then
|
||||
if [ "$1" = "-a" ]; then
|
||||
docker ps -aq \
|
||||
| xargs -n 1 docker inspect --format '{{.Name}}{{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' \
|
||||
| sed -e 's#^/##' \
|
||||
| column -t
|
||||
elif [ "$1" = "-c" ]; then
|
||||
docker-compose ps -q \
|
||||
| xargs -n 1 docker inspect --format '{{.Name}}{{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' \
|
||||
| sed -e 's#^/##' \
|
||||
| column -t
|
||||
else
|
||||
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$1"
|
||||
docker port "$1"
|
||||
fi
|
||||
else
|
||||
docker ps -q \
|
||||
| xargs -n 1 docker inspect --format '{{.Name}}{{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' \
|
||||
| sed -e 's#^/##' \
|
||||
| column -t
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#################################################################################
|
||||
|
||||
# $1 -- file/dir path
|
||||
# $2 -- permissions (0644, 0755, etc)
|
||||
# own() { #TODO refactor
|
||||
# [ "$1" ] && PATH="${1/#\~/$HOME}" || {
|
||||
# echo "Error (1): path not provided"
|
||||
# }
|
||||
# echo $PATH
|
||||
|
||||
# [ "$2" ] && PERM="$2" || {
|
||||
# if [ -d $PATH ]; then
|
||||
# PERM="0755"
|
||||
# elif [ -f $PATH ]; then
|
||||
# PERM="0644"
|
||||
# else
|
||||
# echo "Error (2): path not exists"
|
||||
# fi;
|
||||
# }
|
||||
# echo $PERM
|
||||
|
||||
# sudo chmod $PERM -R --preserve-root $PATH
|
||||
# sudo chown $USER. -R --preserve-root $PATH
|
||||
# }
|
||||
|
||||
# function extract {
|
||||
# if [ -z "$1" ]; then
|
||||
# # display usage if no parameters given
|
||||
# echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
|
||||
# echo " extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
|
||||
# return 1
|
||||
# else
|
||||
# for n in $@
|
||||
# do
|
||||
# if [ -f "$n" ] ; then
|
||||
# case "${n%,}" in
|
||||
# *.tar.bz2|*.tar.gz|*.tar.xz|*.tbz2|*.tgz|*.txz|*.tar)
|
||||
# tar xvf "$n" ;;
|
||||
# *.lzma) unlzma ./"$n" ;;
|
||||
# *.bz2) bunzip2 ./"$n" ;;
|
||||
# *.rar) unrar x -ad ./"$n" ;;
|
||||
# *.gz) gunzip ./"$n" ;;
|
||||
# *.zip) unzip ./"$n" ;;
|
||||
# *.z) uncompress ./"$n" ;;
|
||||
# *.7z|*.arj|*.cab|*.chm|*.deb|*.dmg|*.iso|*.lzh|*.msi|*.rpm|*.udf|*.wim|*.xar)
|
||||
# 7z x ./"$n" ;;
|
||||
# *.xz) unxz ./"$n" ;;
|
||||
# *.exe) cabextract ./"$n" ;;
|
||||
# *)
|
||||
# echo "extract: '$n' - unknown archive method"
|
||||
# return 1
|
||||
# ;;
|
||||
# esac
|
||||
# else
|
||||
# echo "'$n' - file does not exist"
|
||||
# return 1
|
||||
# fi
|
||||
# done
|
||||
# fi
|
||||
# }
|
||||
101
shell/.bashrc
Normal file
101
shell/.bashrc
Normal file
@@ -0,0 +1,101 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color|*-256color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1";;
|
||||
*);;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# colored GCC warnings and errors
|
||||
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
source /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
source /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
[[ -f ~/.bash_aliases ]] && source ~/.bash_aliases
|
||||
[[ -f ~/.bashrc.extra ]] && source ~/.bashrc.extra
|
||||
[[ -f ~/.profile ]] && source ~/.profile
|
||||
57
shell/.profile
Normal file
57
shell/.profile
Normal file
@@ -0,0 +1,57 @@
|
||||
# ~/.profile: executed by the command interpreter for login shells.
|
||||
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
||||
# exists.
|
||||
# see /usr/share/doc/bash/examples/startup-files for examples.
|
||||
# the files are located in the bash-doc package.
|
||||
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/.local/bin" ] ; then
|
||||
PATH="$HOME/.local/bin:$PATH"
|
||||
fi
|
||||
|
||||
### AAA ##########################################
|
||||
|
||||
[ -f ~/.bash_aliases ] && source ~/.bash_aliases
|
||||
[ -f ~/.profile.extra ] && source ~/.profile.extra
|
||||
|
||||
export LITE_SCALE=1 # workaround https://github.com/lite-xl/lite-xl/issues/1173
|
||||
|
||||
export JAVA_HOME="/usr/bin/"
|
||||
export PATH="/opt/nvim/bin:$PATH"
|
||||
export PATH="$HOME/.local/bin/:$PATH"
|
||||
export PATH="$HOME/.local/share/JetBrains/Toolbox/scripts:$PATH"
|
||||
export PATH="$(composer config -g home)/vendor/bin:$PATH"
|
||||
|
||||
# phpbrew
|
||||
# export PHPBREW_SET_PROMPT=1
|
||||
# export PHPBREW_RC_ENABLE=1
|
||||
# [ -f ~/.phpbrew/bashrc ] && source ~/.phpbrew/bashrc
|
||||
|
||||
# golang
|
||||
export PATH="/usr/local/go/bin:$PATH"
|
||||
export GOPATH="$HOME/.go"
|
||||
|
||||
# rust cargo
|
||||
[ -f ~/.cargo/env ] && source ~/.cargo/env
|
||||
|
||||
# nvm
|
||||
# export NVM_DIR="$HOME/.nvm"
|
||||
# [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
# [ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
# neovim
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
# The next line updates PATH for Yandex Cloud CLI.
|
||||
[ -f "$HOME/yandex-cloud/path.bash.inc" ] && source "$HOME/yandex-cloud/path.bash.inc"
|
||||
|
||||
# The next line enables shell command completion for yc.
|
||||
[ -f "$HOME/yandex-cloud/completion.zsh.inc" ] && source "$HOME/yandex-cloud/completion.zsh.inc"
|
||||
|
||||
89
shell/.zshrc
Normal file
89
shell/.zshrc
Normal file
@@ -0,0 +1,89 @@
|
||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||
# Initialization code that may require console input (password prompts, [y/n]
|
||||
# confirmations, etc.) must go above this block; everything else may go below.
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
# Set name of the theme to load --- if set to "random", it will
|
||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
|
||||
# Set list of themes to pick from when loading at random
|
||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||
# a theme from this variable instead of looking in $ZSH/themes/
|
||||
# If set to an empty array, this variable will have no effect.
|
||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment one of the following lines to change the auto-update behavior
|
||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
||||
# zstyle ':omz:update' mode auto # update automatically without asking
|
||||
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# zstyle ':omz:update' frequency 13
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# You can also set it to another string to have that shown instead of the default red dots.
|
||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# You can set one of the optional three formats:
|
||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# or set a custom format using the strftime function format specifications,
|
||||
# see 'man strftime' for details.
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load?
|
||||
# Standard plugins can be found in $ZSH/plugins/
|
||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(git docker docker-compose composer zsh-autosuggestions zsh-syntax-highlighting)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
|
||||
|
||||
[[ -f ~/.bash_aliases ]] && source ~/.bash_aliases
|
||||
[[ -f ~/.bashrc.extra ]] && source ~/.bashrc.extra
|
||||
[[ -f ~/.profile ]] && source ~/.profile
|
||||
@@ -0,0 +1,85 @@
|
||||
// https://docs.sublimetext.io/reference/commands.html
|
||||
// https://docs.sublimetext.io/reference/key_bindings.html
|
||||
[
|
||||
// привычные комбинации из vscode
|
||||
{ "keys": ["ctrl+k", "ctrl+o"], "command": "prompt_open_folder" },
|
||||
{ "keys": ["ctrl+f2"], "command": "find_all_under"},
|
||||
|
||||
// переназначено на ctrl с alt, чтоб не конфликтоввать со сменой раскладки
|
||||
{
|
||||
"keys": ["ctrl+shift+1"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+shift+2"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 0.5, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+shift+3"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 0.33, 0.66, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+shift+4"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 0.25, 0.5, 0.75, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1], [3, 0, 4, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+shift+8"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 0.5, 1.0],
|
||||
"cells": [[0, 0, 1, 1], [0, 1, 1, 2]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+shift+9"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 0.33, 0.66, 1.0],
|
||||
"cells": [[0, 0, 1, 1], [0, 1, 1, 2], [0, 2, 1, 3]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+shift+5"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 0.5, 1.0],
|
||||
"rows": [0.0, 0.5, 1.0],
|
||||
"cells":
|
||||
[
|
||||
[0, 0, 1, 1], [1, 0, 2, 1],
|
||||
[0, 1, 1, 2], [1, 1, 2, 2]
|
||||
]
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
// https://docs.sublimetext.io/reference/commands.html
|
||||
// https://docs.sublimetext.io/reference/mouse_bindings.html
|
||||
[
|
||||
{
|
||||
"button": "button2", "modifiers": ["ctrl"],
|
||||
"command": "fold",
|
||||
"press_command": "drag_select"
|
||||
},
|
||||
]
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"bootstrapped": true,
|
||||
"in_process_packages":
|
||||
[
|
||||
"Package Control",
|
||||
"phpfmt",
|
||||
],
|
||||
"installed_packages":
|
||||
[
|
||||
"Docker Based Build Systems",
|
||||
"Dockerfile Syntax Highlighting",
|
||||
"LogView",
|
||||
"Markdown Extended",
|
||||
"MarkdownLivePreview",
|
||||
"MarkdownPreview",
|
||||
"Materialize",
|
||||
"Package Control",
|
||||
"phpfmt",
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"ignored_packages":
|
||||
[
|
||||
"Package Control",
|
||||
"phpfmt",
|
||||
"Vintage",
|
||||
],
|
||||
"color_scheme": "Packages/Materialize/schemes/Material One Dark.tmTheme",
|
||||
"theme": "Material One Dark.sublime-theme",
|
||||
"index_files": false,
|
||||
"font_face": "JetBrains Mono NL",
|
||||
"font_options": [
|
||||
"dlig",
|
||||
"ss01",
|
||||
"gray_antialias"
|
||||
],
|
||||
"fade_fold_buttons": false,
|
||||
"rulers": [120],
|
||||
"translate_tabs_to_spaces": true,
|
||||
"highlight_line": true,
|
||||
"control_character_style": "names",
|
||||
"trim_trailing_white_space_on_save": "all",
|
||||
"trim_only_modified_white_space": false,
|
||||
"ensure_newline_at_eof_on_save": true,
|
||||
"scroll_speed": 1.2,
|
||||
"show_tab_close_buttons": false,
|
||||
"folder_exclude_patterns": [".svn", ".hg", "CVS", ".Trash", ".Trash-*"],
|
||||
}
|
||||
3998
xcompose/.XCompose
Normal file
3998
xcompose/.XCompose
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user