Add tmux and vim configuration files
- Introduced a comprehensive tmux configuration file with custom themes, key bindings, and session management options. - Added a lightweight vim configuration file utilizing vim-plug for plugin management, including themes, fuzzy finder, file tree, and editing helpers.
This commit is contained in:
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Shell history and dumps
|
||||
*/.zshdump
|
||||
*/.zcompdump
|
||||
*/.zsh_history
|
||||
*/.bash_history
|
||||
*/.history
|
||||
|
||||
# Config files
|
||||
*/.env
|
||||
*/.env.local
|
||||
*/.config/
|
||||
|
||||
# Editor config
|
||||
*/.vscode/
|
||||
*/.idea/
|
||||
|
||||
# OS files
|
||||
*/.DS_Store
|
||||
*/Thumbs.db
|
||||
*/.zcompdump
|
||||
|
||||
4
.stow-local-ignore
Normal file
4
.stow-local-ignore
Normal file
@@ -0,0 +1,4 @@
|
||||
^/README\.md
|
||||
^/\.git
|
||||
^/\.gitignore
|
||||
^/archive
|
||||
11
README.md
Normal file
11
README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Dotfiles
|
||||
|
||||
Мой репозиторий конфигурационных файлов.
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
git clone <repository-url> ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
stow -t ~ */
|
||||
```
|
||||
230
git/.gitconfig
Normal file
230
git/.gitconfig
Normal file
@@ -0,0 +1,230 @@
|
||||
# ════════════════════════════════════════════════════════════
|
||||
# Git Configuration
|
||||
# ════════════════════════════════════════════════════════════
|
||||
|
||||
[user]
|
||||
# Укажите ваше имя и email
|
||||
name = Dmitry
|
||||
email = 124861781+ada-dmitry@users.noreply.github.com
|
||||
|
||||
[core]
|
||||
# Редактор по умолчанию
|
||||
editor = micro
|
||||
|
||||
# Игнорировать изменения прав доступа
|
||||
filemode = false
|
||||
|
||||
# Автоматическое преобразование CRLF в LF
|
||||
autocrlf = input
|
||||
|
||||
# Предупреждать о пробелах в конце строк
|
||||
whitespace = trailing-space,space-before-tab
|
||||
|
||||
# Использовать pager для вывода (bat если установлен)
|
||||
# -F: выходить если вывод помещается на один экран
|
||||
# -R: показывать цвета
|
||||
# -X: не очищать экран при выходе
|
||||
# -S: не переносить длинные строки
|
||||
pager = less -FRXS
|
||||
excludesfile = /home/ada/.gitignore_global
|
||||
|
||||
[init]
|
||||
# Имя основной ветки по умолчанию
|
||||
defaultBranch = main
|
||||
|
||||
[color]
|
||||
# Включить цветной вывод
|
||||
ui = auto
|
||||
branch = auto
|
||||
diff = auto
|
||||
status = auto
|
||||
|
||||
[color "branch"]
|
||||
current = yellow bold
|
||||
local = green
|
||||
remote = cyan
|
||||
|
||||
[color "diff"]
|
||||
meta = yellow
|
||||
frag = magenta bold
|
||||
old = red bold
|
||||
new = green bold
|
||||
whitespace = red reverse
|
||||
|
||||
[color "status"]
|
||||
added = green bold
|
||||
changed = yellow bold
|
||||
untracked = red bold
|
||||
|
||||
# ═══ Алиасы ═════════════════════════════════════════════════
|
||||
|
||||
[alias]
|
||||
# Базовые сокращения
|
||||
st = status
|
||||
co = checkout
|
||||
br = branch
|
||||
ci = commit
|
||||
cm = commit -m
|
||||
ca = commit --amend
|
||||
|
||||
# Добавление файлов
|
||||
a = add
|
||||
aa = add --all
|
||||
ap = add --patch
|
||||
|
||||
# Логи
|
||||
l = log --oneline --graph --decorate
|
||||
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
|
||||
ll = log --pretty=format:'%C(yellow)%h%Cred%d %Creset%s%Cblue [%cn]' --decorate --numstat
|
||||
ls = log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Creset%d %s' --date=short
|
||||
lol = log --graph --decorate --pretty=oneline --abbrev-commit
|
||||
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
|
||||
|
||||
# История файла
|
||||
filelog = log -u
|
||||
fl = log -u
|
||||
|
||||
# Diff
|
||||
d = diff
|
||||
ds = diff --staged
|
||||
dc = diff --cached
|
||||
|
||||
# Показать последний коммит
|
||||
last = log -1 HEAD --stat
|
||||
|
||||
# Отменить последний коммит (сохранив изменения)
|
||||
undo = reset --soft HEAD^
|
||||
|
||||
# Показать изменения в файле
|
||||
blame = blame -w -M -C
|
||||
|
||||
# Быстрое переключение веток
|
||||
switch = checkout
|
||||
sw = checkout
|
||||
|
||||
# Создать и переключиться на новую ветку
|
||||
cob = checkout -b
|
||||
|
||||
# Удалить ветку
|
||||
brd = branch -d
|
||||
brD = branch -D
|
||||
|
||||
# Обновить текущую ветку
|
||||
up = pull --rebase --autostash
|
||||
|
||||
# Отправить текущую ветку
|
||||
push-current = push -u origin HEAD
|
||||
pc = push -u origin HEAD
|
||||
|
||||
# Stash
|
||||
sl = stash list
|
||||
sa = stash apply
|
||||
ss = stash save
|
||||
sp = stash pop
|
||||
|
||||
# Показать файлы в коммите
|
||||
show-files = show --pretty="" --name-only
|
||||
|
||||
# Статистика коммитов
|
||||
contributors = shortlog -sn
|
||||
|
||||
# Удалить удаленные ветки из локального репозитория
|
||||
prune-all = fetch --all --prune
|
||||
|
||||
# Показать ветки с последними коммитами
|
||||
branches = branch -vv
|
||||
|
||||
# Показать удаленные репозитории
|
||||
remotes = remote -v
|
||||
|
||||
# Найти коммит по сообщению
|
||||
find = log --all --oneline --grep
|
||||
|
||||
# Игнорировать изменения в файле
|
||||
ignore = update-index --assume-unchanged
|
||||
unignore = update-index --no-assume-unchanged
|
||||
ignored = !git ls-files -v | grep "^[[:lower:]]"
|
||||
|
||||
# Создать архив текущей ветки
|
||||
archive-branch = !git archive --format=tar --prefix=$(git symbolic-ref --short HEAD)/ HEAD | gzip > $(git symbolic-ref --short HEAD).tar.gz
|
||||
|
||||
# Показать размер репозитория
|
||||
repo-size = count-objects -vH
|
||||
|
||||
[push]
|
||||
# Отправлять только текущую ветку
|
||||
default = current
|
||||
|
||||
# Автоматически создавать удаленную ветку
|
||||
autoSetupRemote = true
|
||||
|
||||
[pull]
|
||||
# Использовать rebase вместо merge при pull
|
||||
rebase = true
|
||||
|
||||
[fetch]
|
||||
# Автоматически удалять несуществующие удаленные ветки
|
||||
prune = true
|
||||
|
||||
[rebase]
|
||||
# Автоматически применять stash перед rebase
|
||||
autoStash = true
|
||||
|
||||
[merge]
|
||||
# Показывать конфликты в стиле diff3
|
||||
conflictStyle = diff3
|
||||
|
||||
# Инструмент для разрешения конфликтов
|
||||
tool = vimdiff
|
||||
|
||||
[diff]
|
||||
# Алгоритм diff для лучшего качества
|
||||
algorithm = histogram
|
||||
|
||||
# Показывать перемещения файлов
|
||||
renames = copies
|
||||
|
||||
# Инструмент для просмотра diff
|
||||
tool = vimdiff
|
||||
|
||||
[status]
|
||||
# Показывать подмодули в статусе
|
||||
submoduleSummary = true
|
||||
|
||||
# Показывать непроиндексированные файлы
|
||||
showUntrackedFiles = all
|
||||
|
||||
[log]
|
||||
# Показывать даты в относительном формате
|
||||
date = relative
|
||||
|
||||
[help]
|
||||
# Автоматически исправлять опечатки в командах (после 0.1 сек)
|
||||
autocorrect = 10
|
||||
|
||||
[credential]
|
||||
# Кэшировать пароли на 1 час
|
||||
helper = cache --timeout=3600
|
||||
|
||||
# ═══ URL shortcuts ══════════════════════════════════════════
|
||||
|
||||
[url "git@github.com:"]
|
||||
insteadOf = gh:
|
||||
|
||||
[url "https://github.com/"]
|
||||
insteadOf = github:
|
||||
|
||||
[url "https://gitlab.com/"]
|
||||
insteadOf = gitlab:
|
||||
|
||||
# ═══ Дополнительные настройки ═══════════════════════════════
|
||||
|
||||
[filter "lfs"]
|
||||
# Git LFS (Large File Storage)
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
|
||||
# ═══ Ваши дополнительные настройки ═════════════════════════
|
||||
# Добавьте свои настройки ниже
|
||||
188
git/.gitignore_global
Normal file
188
git/.gitignore_global
Normal file
@@ -0,0 +1,188 @@
|
||||
# ════════════════════════════════════════════════════════════
|
||||
# Global Git Ignore
|
||||
# Файлы, которые будут игнорироваться во всех репозиториях
|
||||
# ════════════════════════════════════════════════════════════
|
||||
|
||||
# ═══ OS Generated ═══════════════════════════════════════════
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
._*
|
||||
|
||||
# Linux
|
||||
*~
|
||||
.directory
|
||||
.Trash-*
|
||||
|
||||
# Windows
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# ═══ IDEs & Editors ═════════════════════════════════════════
|
||||
|
||||
# VS Code
|
||||
.vscode/
|
||||
*.code-workspace
|
||||
.history/
|
||||
|
||||
# JetBrains IDEs
|
||||
.idea/
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea_modules/
|
||||
|
||||
# Vim
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
.*.sw?
|
||||
Session.vim
|
||||
|
||||
# Emacs
|
||||
*~
|
||||
\#*\#
|
||||
.\#*
|
||||
.projectile
|
||||
|
||||
# Sublime Text
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
|
||||
# ═══ Languages ══════════════════════════════════════════════
|
||||
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
.venv/
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
htmlcov/
|
||||
*.egg-info/
|
||||
dist/
|
||||
build/
|
||||
|
||||
# Node.js
|
||||
node_modules/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.npm
|
||||
.eslintcache
|
||||
.node_repl_history
|
||||
|
||||
# Rust
|
||||
target/
|
||||
Cargo.lock
|
||||
**/*.rs.bk
|
||||
|
||||
# Go
|
||||
*.exe
|
||||
*.test
|
||||
*.prof
|
||||
vendor/
|
||||
|
||||
# Ruby
|
||||
*.gem
|
||||
*.rbc
|
||||
.bundle/
|
||||
.ruby-version
|
||||
.ruby-gemset
|
||||
|
||||
# Java
|
||||
*.class
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
.gradle/
|
||||
build/
|
||||
|
||||
# ═══ Logs & Databases ═══════════════════════════════════════
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
logs/
|
||||
*.pid
|
||||
*.seed
|
||||
|
||||
# Databases
|
||||
*.sql
|
||||
*.sqlite
|
||||
*.sqlite3
|
||||
*.db
|
||||
|
||||
# ═══ Environment & Secrets ══════════════════════════════════
|
||||
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
*.pem
|
||||
*.key
|
||||
*.cert
|
||||
|
||||
# ═══ Build & Dependencies ═══════════════════════════════════
|
||||
|
||||
# Compiled files
|
||||
*.o
|
||||
*.a
|
||||
*.out
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
*.dll
|
||||
*.dylib
|
||||
|
||||
# Packages
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# ═══ Temporary Files ════════════════════════════════════════
|
||||
|
||||
# Temporary
|
||||
tmp/
|
||||
temp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.backup
|
||||
*.cache
|
||||
|
||||
# ═══ Project Specific ═══════════════════════════════════════
|
||||
|
||||
# Coverage reports
|
||||
coverage/
|
||||
.nyc_output/
|
||||
|
||||
# Documentation builds
|
||||
docs/_build/
|
||||
site/
|
||||
|
||||
# Testing
|
||||
.tox/
|
||||
|
||||
# ═══ Other ══════════════════════════════════════════════════
|
||||
|
||||
# CTags
|
||||
tags
|
||||
TAGS
|
||||
|
||||
# Local configuration
|
||||
.local/
|
||||
local.properties
|
||||
9
ssh/.ssh/config
Normal file
9
ssh/.ssh/config
Normal file
@@ -0,0 +1,9 @@
|
||||
# ════════════════════════════════════════════════════════════
|
||||
# SSH Configuration (includes)
|
||||
# ════════════════════════════════════════════════════════════
|
||||
|
||||
# Все настройки вынесены по секциям в config.d/*.conf
|
||||
# Порядок загрузки задаётся префиксом (00-, 10-, 20- ...)
|
||||
|
||||
|
||||
Include config.d/*.conf
|
||||
17
ssh/.ssh/config.d/00-globals.conf
Normal file
17
ssh/.ssh/config.d/00-globals.conf
Normal file
@@ -0,0 +1,17 @@
|
||||
# 00 - Global options
|
||||
|
||||
Host *
|
||||
# Переиспользование соединений (быстрее)
|
||||
# ControlMaster auto
|
||||
# ControlPath ~/.ssh/sockets/%r@%h:%p
|
||||
# ControlPersist 10m
|
||||
|
||||
# Держать соединение живым
|
||||
ServerAliveInterval 60
|
||||
ServerAliveCountMax 3
|
||||
|
||||
# Сжатие данных
|
||||
Compression yes
|
||||
|
||||
# Отключить GSSAPI (ускоряет подключение)
|
||||
GSSAPIAuthentication no
|
||||
13
ssh/.ssh/config.d/10-local.conf
Normal file
13
ssh/.ssh/config.d/10-local.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
# 10 - Local network (direct IP)
|
||||
|
||||
# ПК
|
||||
Host ada-pc
|
||||
HostName 192.168.1.100
|
||||
User ada
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
|
||||
Host ada-x1
|
||||
HostName 192.168.1.101
|
||||
User ada
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
|
||||
67
ssh/.ssh/config.d/20-selfhost.conf
Normal file
67
ssh/.ssh/config.d/20-selfhost.conf
Normal file
@@ -0,0 +1,67 @@
|
||||
# 20 - SelfHost
|
||||
Host vps vps-ada
|
||||
HostName ada-dev.ru
|
||||
User ada
|
||||
IdentityFile ~/.ssh/id_ed25519_homelab
|
||||
|
||||
# Proxmox VE
|
||||
Host pve
|
||||
HostName 192.168.1.10
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
ProxyJump vps
|
||||
|
||||
Host pve-lan
|
||||
HostName 192.168.1.10
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
|
||||
Host gateway
|
||||
HostName 192.168.1.11
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
ProxyJump vps
|
||||
|
||||
Host gateway-lan
|
||||
HostName 192.168.1.11
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
|
||||
# Monitoring LXC
|
||||
Host mon
|
||||
HostName 192.168.1.12
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
ProxyJump vps
|
||||
|
||||
Host mon-lan
|
||||
HostName 192.168.1.12
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
|
||||
# CUPS Server
|
||||
Host cups
|
||||
HostName 192.168.1.15
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
ProxyJump vps
|
||||
|
||||
Host cups-lan
|
||||
HostName 192.168.1.15
|
||||
User ada
|
||||
IdentityFile /home/ada/.ssh/id_ed25519_homelab
|
||||
|
||||
# Gitea
|
||||
Host git.ada-dev.ru
|
||||
HostName 192.168.1.20
|
||||
Port 2222
|
||||
ProxyJump vps
|
||||
|
||||
Host docker-home
|
||||
HostName 192.168.1.20
|
||||
User ada
|
||||
ProxyJump vps
|
||||
|
||||
Host docker-home-lan
|
||||
HostName 192.168.1.20
|
||||
User ada
|
||||
57
ssh/.ssh/config.d/30-corporate.conf
Normal file
57
ssh/.ssh/config.d/30-corporate.conf
Normal file
@@ -0,0 +1,57 @@
|
||||
# 40 - Corporate (PAO IL)
|
||||
|
||||
Host ada-alt
|
||||
HostName 192.168.122.102
|
||||
User ada-alt
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
# UpdateHostKeys yes
|
||||
StrictHostKeyChecking no
|
||||
UserKnownHostsFile /dev/null
|
||||
#ProxyJump ru-vps
|
||||
#ForwardX11 yes
|
||||
#ForwardX11Trusted yes
|
||||
#Compression yes
|
||||
|
||||
|
||||
Host pam
|
||||
HostName 10.1.194.230
|
||||
User antipenkoda@MSK.LAN
|
||||
Port 2244
|
||||
ProxyJump ada-alt
|
||||
StrictHostKeyChecking no
|
||||
UserKnownHostsFile /dev/null
|
||||
|
||||
|
||||
Host ans-srv
|
||||
HostName 10.1.195.233
|
||||
User ada
|
||||
SetEnv TERM=xterm-256color
|
||||
ProxyJump pam
|
||||
|
||||
Host master-ans
|
||||
HostName 10.1.194.160
|
||||
User ada
|
||||
SetEnv TERM=xterm-256color
|
||||
StrictHostKeyChecking no
|
||||
UserKnownHostsFile /dev/null
|
||||
ProxyJump pam
|
||||
|
||||
|
||||
Host pam-tunnel
|
||||
HostName localhost
|
||||
Port 2244
|
||||
User antipenkoda@MSK.LAN
|
||||
StrictHostKeyChecking no
|
||||
UserKnownHostsFile /dev/null
|
||||
|
||||
Host ans-srv-tunnel
|
||||
HostName 10.1.195.233
|
||||
User ada
|
||||
SetEnv TERM=xterm-256color
|
||||
ProxyJump pam-tunnel
|
||||
|
||||
Host ans-srv-direct
|
||||
HostName localhost
|
||||
Port 3322
|
||||
User ada
|
||||
SetEnv TERM=xterm-256color
|
||||
9
terraform/.terraformrc
Normal file
9
terraform/.terraformrc
Normal file
@@ -0,0 +1,9 @@
|
||||
provider_installation {
|
||||
network_mirror {
|
||||
url = "https://terraform-mirror.yandexcloud.net/"
|
||||
include = ["registry.terraform.io/*/*"]
|
||||
}
|
||||
direct {
|
||||
exclude = ["registry.terraform.io/*/*"]
|
||||
}
|
||||
}
|
||||
1886
tmux/.tmux.conf
Normal file
1886
tmux/.tmux.conf
Normal file
File diff suppressed because it is too large
Load Diff
682
tmux/.tmux.conf.local
Normal file
682
tmux/.tmux.conf.local
Normal file
@@ -0,0 +1,682 @@
|
||||
# : << 'EOF'
|
||||
# Oh my tmux!
|
||||
# 💛🩷💙🖤❤️🤍
|
||||
# https://github.com/gpakosz/.tmux
|
||||
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license,
|
||||
# without any warranty.
|
||||
# Copyright 2012— Gregory Pakosz (@gpakosz).
|
||||
|
||||
|
||||
# -- bindings ------------------------------------------------------------------
|
||||
|
||||
# preserve tmux stock bindings,
|
||||
# while adding bindings that don't conflict with these stock bindings
|
||||
# /!\ this disables some of Oh my tmux! bindings described in README.md
|
||||
# - true
|
||||
# - false (default)
|
||||
tmux_conf_preserve_stock_bindings=false
|
||||
|
||||
|
||||
# -- session creation ----------------------------------------------------------
|
||||
|
||||
# prompt for session name when creating a new session, possible values are:
|
||||
# - true
|
||||
# - false (default)
|
||||
# - disabled (do not modify new-session bindings)
|
||||
tmux_conf_new_session_prompt=false
|
||||
|
||||
# new session retains current path, possible values are:
|
||||
# - true
|
||||
# - false (default)
|
||||
# - disabled (do not modify new-session bindings)
|
||||
tmux_conf_new_session_retain_current_path=false
|
||||
|
||||
|
||||
# -- windows & pane creation ---------------------------------------------------
|
||||
|
||||
# new window retains current path, possible values are:
|
||||
# - true
|
||||
# - false (default)
|
||||
# - disabled (do not modify new-window bindings)
|
||||
tmux_conf_new_window_retain_current_path=false
|
||||
|
||||
# new window tries to reconnect ssh sessions, possible values are:
|
||||
# - true
|
||||
# - false (default)
|
||||
# - disabled (do not modify new-window bindings)
|
||||
tmux_conf_new_window_reconnect_ssh=false
|
||||
|
||||
# new pane retains current path, possible values are:
|
||||
# - true (default)
|
||||
# - false
|
||||
# - disabled (do not modify split-window bindings)
|
||||
tmux_conf_new_pane_retain_current_path=true
|
||||
|
||||
# new pane tries to reconnect ssh sessions, possible values are:
|
||||
# - true
|
||||
# - false (default)
|
||||
# - disabled (do not modify split-window bindings)
|
||||
tmux_conf_new_pane_reconnect_ssh=false
|
||||
|
||||
|
||||
# -- display -------------------------------------------------------------------
|
||||
|
||||
# RGB 24-bit colour support, possible values are:
|
||||
# - true
|
||||
# - false
|
||||
# - auto (default)
|
||||
#
|
||||
# automatic detection relies on the COLORTERM environment variable being defined
|
||||
# to 'truecolor' or '24bit' or '$ tput colors' answering '16777216'
|
||||
# see https://github.com/termstandard/colors
|
||||
tmux_conf_24b_colour=auto
|
||||
|
||||
|
||||
# -- theming -------------------------------------------------------------------
|
||||
|
||||
# enable or disable theming:
|
||||
# - enabled (default)
|
||||
# - disabled
|
||||
# when disabled, all tmux_conf_theme_xxx variables are ignored except:
|
||||
# - tmux_conf_theme_pairing
|
||||
# - tmux_conf_theme_prefix
|
||||
# - tmux_conf_theme_mouse
|
||||
# - tmux_conf_theme_root
|
||||
# - tmux_conf_theme_synchronized
|
||||
tmux_conf_theme=enabled
|
||||
|
||||
# Nord theme colors
|
||||
# Polar Night
|
||||
tmux_conf_theme_colour_1="#2E3440" # nord0 - darkest
|
||||
tmux_conf_theme_colour_2="#3B4252" # nord1 - dark gray
|
||||
tmux_conf_theme_colour_3="#4C566A" # nord3 - medium gray
|
||||
tmux_conf_theme_colour_4="#88C0D0" # nord8 - frost cyan
|
||||
tmux_conf_theme_colour_5="#EBCB8B" # nord13 - aurora yellow
|
||||
tmux_conf_theme_colour_6="#2E3440" # nord0 - darkest
|
||||
tmux_conf_theme_colour_7="#ECEFF4" # nord6 - snow white
|
||||
tmux_conf_theme_colour_8="#2E3440" # nord0 - darkest
|
||||
tmux_conf_theme_colour_9="#EBCB8B" # nord13 - aurora yellow
|
||||
tmux_conf_theme_colour_10="#B48EAD" # nord15 - aurora purple
|
||||
tmux_conf_theme_colour_11="#A3BE8C" # nord14 - aurora green
|
||||
tmux_conf_theme_colour_12="#D8DEE9" # nord4 - light snow
|
||||
tmux_conf_theme_colour_13="#ECEFF4" # nord6 - snow white
|
||||
tmux_conf_theme_colour_14="#2E3440" # nord0 - darkest
|
||||
tmux_conf_theme_colour_15="#2E3440" # nord0 - darkest
|
||||
tmux_conf_theme_colour_16="#BF616A" # nord11 - aurora red
|
||||
tmux_conf_theme_colour_17="#ECEFF4" # nord6 - snow white
|
||||
|
||||
# default theme (ansi)
|
||||
#tmux_conf_theme_colour_1="colour0"
|
||||
#tmux_conf_theme_colour_2="colour8"
|
||||
#tmux_conf_theme_colour_3="colour8"
|
||||
#tmux_conf_theme_colour_4="colour14"
|
||||
#tmux_conf_theme_colour_5="colour11"
|
||||
#tmux_conf_theme_colour_6="colour0"
|
||||
#tmux_conf_theme_colour_7="colour15"
|
||||
#tmux_conf_theme_colour_8="colour0"
|
||||
#tmux_conf_theme_colour_9="colour11"
|
||||
#tmux_conf_theme_colour_10="colour13"
|
||||
#tmux_conf_theme_colour_11="colour10"
|
||||
#tmux_conf_theme_colour_12="colour8"
|
||||
#tmux_conf_theme_colour_13="colour15"
|
||||
#tmux_conf_theme_colour_14="colour0"
|
||||
#tmux_conf_theme_colour_15="colour0"
|
||||
#tmux_conf_theme_colour_16="colour1"
|
||||
#tmux_conf_theme_colour_17="colour15"
|
||||
|
||||
# window style
|
||||
tmux_conf_theme_window_fg="default"
|
||||
tmux_conf_theme_window_bg="default"
|
||||
|
||||
# highlight focused pane, possible values are:
|
||||
# - true
|
||||
# - false (default)
|
||||
tmux_conf_theme_highlight_focused_pane=false
|
||||
|
||||
# focused pane colours:
|
||||
tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2"
|
||||
|
||||
# pane border style, possible values are:
|
||||
# - thin (default)
|
||||
# - fat
|
||||
tmux_conf_theme_pane_border_style=thin
|
||||
|
||||
# pane borders colours:
|
||||
tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2"
|
||||
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
|
||||
%if #{>=:#{version},3.2}
|
||||
tmux_conf_theme_pane_active_border="#{?pane_in_mode,$tmux_conf_theme_colour_9,#{?synchronize-panes,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_4}}"
|
||||
%endif
|
||||
|
||||
# pane indicator colours (when you hit <prefix> + q)
|
||||
tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4"
|
||||
tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4"
|
||||
|
||||
# status line style
|
||||
tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1"
|
||||
tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5"
|
||||
tmux_conf_theme_message_attr="bold"
|
||||
|
||||
# status line command style (<prefix> : Escape)
|
||||
tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5"
|
||||
tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1"
|
||||
tmux_conf_theme_message_command_attr="bold"
|
||||
|
||||
# window modes style
|
||||
tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1"
|
||||
tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5"
|
||||
tmux_conf_theme_mode_attr="bold"
|
||||
|
||||
# status line style
|
||||
tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3"
|
||||
tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1"
|
||||
tmux_conf_theme_status_attr="none"
|
||||
|
||||
# terminal title
|
||||
# - built-in variables are:
|
||||
# - #{circled_window_index}
|
||||
# - #{circled_session_name}
|
||||
# - #{hostname}
|
||||
# - #{hostname_ssh}
|
||||
# - #{hostname_full}
|
||||
# - #{hostname_full_ssh}
|
||||
# - #{username}
|
||||
# - #{username_ssh}
|
||||
tmux_conf_theme_terminal_title="#h ❐ #S ● #I #W"
|
||||
|
||||
# window status style
|
||||
# - built-in variables are:
|
||||
# - #{circled_window_index}
|
||||
# - #{circled_session_name}
|
||||
# - #{hostname}
|
||||
# - #{hostname_ssh}
|
||||
# - #{hostname_full}
|
||||
# - #{hostname_full_ssh}
|
||||
# - #{username}
|
||||
# - #{username_ssh}
|
||||
tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3"
|
||||
tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
|
||||
tmux_conf_theme_window_status_attr="none"
|
||||
tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
|
||||
#tmux_conf_theme_window_status_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
|
||||
#tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
||||
|
||||
# window current status style
|
||||
# - built-in variables are:
|
||||
# - #{circled_window_index}
|
||||
# - #{circled_session_name}
|
||||
# - #{hostname}
|
||||
# - #{hostname_ssh}
|
||||
# - #{hostname_full}
|
||||
# - #{hostname_full_ssh}
|
||||
# - #{username}
|
||||
# - #{username_ssh}
|
||||
tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1"
|
||||
tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4"
|
||||
tmux_conf_theme_window_status_current_attr="bold"
|
||||
tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
|
||||
#tmux_conf_theme_window_status_current_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
|
||||
#tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
|
||||
|
||||
# window activity status style
|
||||
tmux_conf_theme_window_status_activity_fg="default"
|
||||
tmux_conf_theme_window_status_activity_bg="default"
|
||||
tmux_conf_theme_window_status_activity_attr="underscore"
|
||||
|
||||
# window bell status style
|
||||
tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_5"
|
||||
tmux_conf_theme_window_status_bell_bg="default"
|
||||
tmux_conf_theme_window_status_bell_attr="blink,bold"
|
||||
|
||||
# window last status style
|
||||
tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_4"
|
||||
tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2"
|
||||
tmux_conf_theme_window_status_last_attr="none"
|
||||
|
||||
# status left/right sections separators
|
||||
tmux_conf_theme_left_separator_main=""
|
||||
tmux_conf_theme_left_separator_sub="|"
|
||||
tmux_conf_theme_right_separator_main=""
|
||||
tmux_conf_theme_right_separator_sub="|"
|
||||
#tmux_conf_theme_left_separator_main='\uE0B0' # /!\ you don't need to install Powerline
|
||||
#tmux_conf_theme_left_separator_sub='\uE0B1' # you only need fonts patched with
|
||||
#tmux_conf_theme_right_separator_main='\uE0B2' # Powerline symbols or the standalone
|
||||
#tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see README.md
|
||||
|
||||
# status left/right content:
|
||||
# - separate main sections with "|"
|
||||
# - separate subsections with ","
|
||||
# - built-in variables are:
|
||||
# - #{battery_bar}
|
||||
# - #{battery_hbar}
|
||||
# - #{battery_percentage}
|
||||
# - #{battery_status}
|
||||
# - #{battery_vbar}
|
||||
# - #{circled_session_name}
|
||||
# - #{hostname_ssh}
|
||||
# - #{hostname}
|
||||
# - #{hostname_full}
|
||||
# - #{hostname_full_ssh}
|
||||
# - #{loadavg}
|
||||
# - #{mouse}
|
||||
# - #{pairing}
|
||||
# - #{prefix}
|
||||
# - #{root}
|
||||
# - #{synchronized}
|
||||
# - #{uptime_y}
|
||||
# - #{uptime_d} (modulo 365 when #{uptime_y} is used)
|
||||
# - #{uptime_h}
|
||||
# - #{uptime_m}
|
||||
# - #{uptime_s}
|
||||
# - #{username}
|
||||
# - #{username_ssh}
|
||||
tmux_conf_theme_status_left=" ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} "
|
||||
#tmux_conf_theme_status_left=" ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} | #{pretty_pane_current_path} "
|
||||
tmux_conf_theme_status_right=" #{prefix}#{mouse}#{pairing}#{synchronized}#{?battery_status,#{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} "
|
||||
|
||||
# status left style
|
||||
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
|
||||
tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11"
|
||||
tmux_conf_theme_status_left_attr="bold,none,none"
|
||||
|
||||
# status right style
|
||||
tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14"
|
||||
tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17"
|
||||
tmux_conf_theme_status_right_attr="none,none,bold"
|
||||
|
||||
# pairing indicator
|
||||
tmux_conf_theme_pairing="⚇" # U+2687
|
||||
tmux_conf_theme_pairing_fg="none"
|
||||
tmux_conf_theme_pairing_bg="none"
|
||||
tmux_conf_theme_pairing_attr="none"
|
||||
|
||||
# prefix indicator
|
||||
tmux_conf_theme_prefix="⌨" # U+2328
|
||||
tmux_conf_theme_prefix_fg="none"
|
||||
tmux_conf_theme_prefix_bg="none"
|
||||
tmux_conf_theme_prefix_attr="none"
|
||||
|
||||
# mouse indicator
|
||||
tmux_conf_theme_mouse="↗" # U+2197
|
||||
tmux_conf_theme_mouse_fg="none"
|
||||
tmux_conf_theme_mouse_bg="none"
|
||||
tmux_conf_theme_mouse_attr="none"
|
||||
|
||||
# root indicator
|
||||
tmux_conf_theme_root="!"
|
||||
tmux_conf_theme_root_fg="none"
|
||||
tmux_conf_theme_root_bg="none"
|
||||
tmux_conf_theme_root_attr="bold,blink"
|
||||
|
||||
# synchronized indicator
|
||||
tmux_conf_theme_synchronized="⚏" # U+268F
|
||||
tmux_conf_theme_synchronized_fg="none"
|
||||
tmux_conf_theme_synchronized_bg="none"
|
||||
tmux_conf_theme_synchronized_attr="none"
|
||||
|
||||
# battery bar symbols
|
||||
tmux_conf_battery_bar_symbol_full="◼"
|
||||
tmux_conf_battery_bar_symbol_empty="◻"
|
||||
#tmux_conf_battery_bar_symbol_full="♥"
|
||||
#tmux_conf_battery_bar_symbol_empty="·"
|
||||
|
||||
# battery bar length (in number of symbols), possible values are:
|
||||
# - auto
|
||||
# - a number, e.g. 5
|
||||
tmux_conf_battery_bar_length="auto"
|
||||
|
||||
# battery bar palette, possible values are:
|
||||
# - gradient (default)
|
||||
# - heat
|
||||
# - "colour_full_fg,colour_empty_fg,colour_bg"
|
||||
# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
|
||||
tmux_conf_battery_bar_palette="gradient"
|
||||
#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000" # red, white, black
|
||||
#tmux_conf_battery_bar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
|
||||
|
||||
# battery hbar palette, possible values are:
|
||||
# - gradient (default)
|
||||
# - heat
|
||||
# - "colour_low,colour_half,colour_full"
|
||||
# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
|
||||
tmux_conf_battery_hbar_palette="gradient"
|
||||
#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green
|
||||
#tmux_conf_battery_hbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
|
||||
|
||||
# battery vbar palette, possible values are:
|
||||
# - gradient (default)
|
||||
# - heat
|
||||
# - "colour_low,colour_half,colour_full"
|
||||
# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
|
||||
tmux_conf_battery_vbar_palette="gradient"
|
||||
#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green
|
||||
#tmux_conf_battery_vbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
|
||||
|
||||
# symbols used to indicate whether battery is charging or discharging
|
||||
tmux_conf_battery_status_charging="↑" # U+2191
|
||||
tmux_conf_battery_status_discharging="↓" # U+2193
|
||||
#tmux_conf_battery_status_charging="🔌" # U+1F50C
|
||||
#tmux_conf_battery_status_discharging="🔋" # U+1F50B
|
||||
|
||||
# clock style (when you hit <prefix> + t)
|
||||
# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right
|
||||
tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4"
|
||||
tmux_conf_theme_clock_style="24"
|
||||
|
||||
|
||||
# -- clipboard -----------------------------------------------------------------
|
||||
|
||||
# in copy mode, copying selection also copies to the OS clipboard
|
||||
# - true
|
||||
# - false (default)
|
||||
# - disabled
|
||||
# on Linux, this requires xsel, xclip or wl-copy
|
||||
tmux_conf_copy_to_os_clipboard=false
|
||||
|
||||
|
||||
# -- urlscan -------------------------------------------------------------------
|
||||
|
||||
# options passed to urlscan
|
||||
tmux_conf_urlscan_options="--compact --dedupe"
|
||||
|
||||
|
||||
# -- user customizations -------------------------------------------------------
|
||||
|
||||
# this is the place to override or undo settings
|
||||
|
||||
# increase history size
|
||||
set -g history-limit 50000
|
||||
|
||||
# start with mouse mode enabled (для прокрутки тачпадом)
|
||||
set -g mouse on
|
||||
|
||||
# force Vi mode
|
||||
# really you should export VISUAL or EDITOR environment variable, see manual
|
||||
#set -g status-keys vi
|
||||
#set -g mode-keys vi
|
||||
|
||||
# replace C-b by C-a instead of using both prefixes
|
||||
# set -gu prefix2
|
||||
# unbind C-a
|
||||
# unbind C-b
|
||||
# set -g prefix C-a
|
||||
# bind C-a send-prefix
|
||||
|
||||
# if you don't want Oh my tmux! to alter a binding or a setting, use #!important
|
||||
# bind c new-window -c '#{pane_current_path}' #!important
|
||||
|
||||
# display a message after toggling mouse support
|
||||
bind m run "cut -c3- '#{TMUX_CONF}' | sh -s _toggle_mouse" \; display 'mouse #{?#{mouse},on,off}'
|
||||
|
||||
# move status line to top
|
||||
#set -g status-position top
|
||||
|
||||
# -- custom key bindings -------------------------------------------------------
|
||||
|
||||
# Alt+стрелки для переключения между окнами (вкладками)
|
||||
bind -n M-Left previous-window
|
||||
bind -n M-Right next-window
|
||||
bind -n M-Up switch-client -p
|
||||
bind -n M-Down switch-client -n
|
||||
|
||||
# Навигация между панелями - поддержка русской раскладки (р/о/л/д = h/j/k/l)
|
||||
bind -r р select-pane -L # h -> р (влево)
|
||||
bind -r о select-pane -D # j -> о (вниз)
|
||||
bind -r л select-pane -U # k -> л (вверх)
|
||||
bind -r д select-pane -R # l -> д (вправо)
|
||||
|
||||
# Изменение размера панелей - поддержка русской раскладки
|
||||
bind -r Р resize-pane -L 2 # H -> Р
|
||||
bind -r О resize-pane -D 2 # J -> О
|
||||
bind -r Л resize-pane -U 2 # K -> Л
|
||||
bind -r Д resize-pane -R 2 # L -> Д
|
||||
|
||||
# Навигация между окнами - русская раскладка
|
||||
bind -r C-р previous-window # C-h -> C-р
|
||||
bind -r C-д next-window # C-l -> C-д
|
||||
|
||||
# Создание нового окна - русская раскладка
|
||||
bind с new-window # c -> с
|
||||
|
||||
# Поиск сессии - русская раскладка
|
||||
bind C-а command-prompt -p find-session 'switch-client -t %%' # C-f -> C-а
|
||||
|
||||
# Ctrl+Alt+h или Ctrl+Alt+р для показа гайда по горячим клавишам (в новом окне с прокруткой)
|
||||
bind -n C-M-h new-window -n "TMUX Шпаргалка" "cat << 'EOF' | less -R
|
||||
╔═══════════════════════════════════════════════════════════════════════════╗
|
||||
║ TMUX ГОРЯЧИЕ КЛАВИШИ (prefix = Ctrl+b или Ctrl+a) ║
|
||||
╚═══════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
📋 ОСНОВНЫЕ КОМАНДЫ:
|
||||
prefix + ? - Показать все горячие клавиши
|
||||
prefix + : - Командная строка tmux
|
||||
prefix + r (к) - Перезагрузить конфигурацию
|
||||
prefix + e (у) - Редактировать ~/.tmux.conf.local
|
||||
Ctrl+l - Очистить экран и историю
|
||||
|
||||
🪟 УПРАВЛЕНИЕ ОКНАМИ (вкладками):
|
||||
prefix + c (с) - Создать новое окно
|
||||
prefix + , - Переименовать текущее окно
|
||||
prefix + & - Закрыть текущее окно
|
||||
prefix + n (т) - Следующее окно
|
||||
prefix + p (з) - Предыдущее окно
|
||||
prefix + Ctrl+h (р) - Предыдущее окно
|
||||
prefix + Ctrl+l (д) - Следующее окно
|
||||
prefix + Tab - Последнее активное окно
|
||||
prefix + 0-9 - Переключиться на окно по номеру
|
||||
Alt + ←/→ - Переключение между окнами
|
||||
Alt + ↑/↓ - Переключение между сессиями
|
||||
|
||||
🔲 УПРАВЛЕНИЕ ПАНЕЛЯМИ:
|
||||
prefix + - - Разделить по горизонтали
|
||||
prefix + _ - Разделить по вертикали
|
||||
prefix + h/j/k/l (р/о/л/д) - Навигация между панелями (vim-style)
|
||||
prefix + H/J/K/L (Р/О/Л/Д) - Изменить размер панели
|
||||
prefix + < - Поменять панели местами (влево)
|
||||
prefix + > - Поменять панели местами (вправо)
|
||||
prefix + + - Развернуть панель на весь экран
|
||||
prefix + x (ч) - Закрыть текущую панель
|
||||
prefix + ! - Превратить панель в окно
|
||||
prefix + z (я) - Zoom панели (toggle)
|
||||
prefix + q (й) - Показать номера панелей
|
||||
|
||||
📋 КОПИРОВАНИЕ И ВСТАВКА:
|
||||
prefix + Enter - Режим копирования
|
||||
prefix + b (и) - Список буферов
|
||||
prefix + p (з) - Вставить из буфера
|
||||
prefix + P (З) - Выбрать буфер для вставки
|
||||
|
||||
В режиме копирования:
|
||||
v (м) - Начать выделение
|
||||
y (н) - Скопировать выделенное
|
||||
Escape - Выйти из режима копирования
|
||||
|
||||
🔧 СЕССИИ:
|
||||
prefix + Ctrl+c (с) - Создать новую сессию
|
||||
prefix + Ctrl+f (а) - Найти сессию
|
||||
prefix + d (в) - Отключиться от сессии
|
||||
prefix + D (В) - Выбрать сессию для отключения
|
||||
prefix + s (ы) - Список сессий
|
||||
|
||||
🖱️ ДРУГОЕ:
|
||||
prefix + m (ь) - Включить/выключить мышь
|
||||
prefix + t (е) - Показать часы
|
||||
prefix + U (Г) - Открыть URL (urlscan/urlview)
|
||||
prefix + F (А) - Facebook PathPicker (если установлен)
|
||||
Ctrl+Alt+h (р) - Показать этот гайд
|
||||
|
||||
💡 Используйте стрелки ↑/↓ или j/k для прокрутки
|
||||
💡 Нажмите q для выхода
|
||||
💡 Русская раскладка поддерживается! (в скобках указаны русские буквы)
|
||||
|
||||
EOF
|
||||
"
|
||||
|
||||
# Дубликат для русской раскладки Ctrl+Alt+р
|
||||
bind -n C-M-р new-window -n "TMUX Шпаргалка" "cat << 'EOF' | less -R
|
||||
╔═══════════════════════════════════════════════════════════════════════════╗
|
||||
║ TMUX ГОРЯЧИЕ КЛАВИШИ (prefix = Ctrl+b или Ctrl+a) ║
|
||||
╚═══════════════════════════════════════════════════════════════════════════╝
|
||||
|
||||
📋 ОСНОВНЫЕ КОМАНДЫ:
|
||||
prefix + ? - Показать все горячие клавиши
|
||||
prefix + : - Командная строка tmux
|
||||
prefix + r (к) - Перезагрузить конфигурацию
|
||||
prefix + e (у) - Редактировать ~/.tmux.conf.local
|
||||
Ctrl+l - Очистить экран и историю
|
||||
|
||||
🪟 УПРАВЛЕНИЕ ОКНАМИ (вкладками):
|
||||
prefix + c (с) - Создать новое окно
|
||||
prefix + , - Переименовать текущее окно
|
||||
prefix + & - Закрыть текущее окно
|
||||
prefix + n (т) - Следующее окно
|
||||
prefix + p (з) - Предыдущее окно
|
||||
prefix + Ctrl+h (р) - Предыдущее окно
|
||||
prefix + Ctrl+l (д) - Следующее окно
|
||||
prefix + Tab - Последнее активное окно
|
||||
prefix + 0-9 - Переключиться на окно по номеру
|
||||
Alt + ←/→ - Переключение между окнами
|
||||
Alt + ↑/↓ - Переключение между сессиями
|
||||
|
||||
🔲 УПРАВЛЕНИЕ ПАНЕЛЯМИ:
|
||||
prefix + - - Разделить по горизонтали
|
||||
prefix + _ - Разделить по вертикали
|
||||
prefix + h/j/k/l (р/о/л/д) - Навигация между панелями (vim-style)
|
||||
prefix + H/J/K/L (Р/О/Л/Д) - Изменить размер панели
|
||||
prefix + < - Поменять панели местами (влево)
|
||||
prefix + > - Поменять панели местами (вправо)
|
||||
prefix + + - Развернуть панель на весь экран
|
||||
prefix + x (ч) - Закрыть текущую панель
|
||||
prefix + ! - Превратить панель в окно
|
||||
prefix + z (я) - Zoom панели (toggle)
|
||||
prefix + q (й) - Показать номера панелей
|
||||
|
||||
📋 КОПИРОВАНИЕ И ВСТАВКА:
|
||||
prefix + Enter - Режим копирования
|
||||
prefix + b (и) - Список буферов
|
||||
prefix + p (з) - Вставить из буфера
|
||||
prefix + P (З) - Выбрать буфер для вставки
|
||||
|
||||
В режиме копирования:
|
||||
v (м) - Начать выделение
|
||||
y (н) - Скопировать выделенное
|
||||
Escape - Выйти из режима копирования
|
||||
|
||||
🔧 СЕССИИ:
|
||||
prefix + Ctrl+c (с) - Создать новую сессию
|
||||
prefix + Ctrl+f (а) - Найти сессию
|
||||
prefix + d (в) - Отключиться от сессии
|
||||
prefix + D (В) - Выбрать сессию для отключения
|
||||
prefix + s (ы) - Список сессий
|
||||
|
||||
🖱️ ДРУГОЕ:
|
||||
prefix + m (ь) - Включить/выключить мышь
|
||||
prefix + t (е) - Показать часы
|
||||
prefix + U (Г) - Открыть URL (urlscan/urlview)
|
||||
prefix + F (А) - Facebook PathPicker (если установлен)
|
||||
Ctrl+Alt+h (р) - Показать этот гайд
|
||||
|
||||
💡 Используйте стрелки ↑/↓ или j/k для прокрутки
|
||||
💡 Нажмите q для выхода
|
||||
💡 Русская раскладка поддерживается! (в скобках указаны русские буквы)
|
||||
|
||||
EOF
|
||||
"
|
||||
|
||||
|
||||
# -- tpm -----------------------------------------------------------------------
|
||||
|
||||
# while I don't use tpm myself, many people requested official support so here
|
||||
# is a seamless integration that automatically installs plugins in parallel
|
||||
|
||||
# whenever a plugin introduces a variable to be used in 'status-left' or
|
||||
# 'status-right', you can use it in 'tmux_conf_theme_status_left' and
|
||||
# 'tmux_conf_theme_status_right' variables.
|
||||
|
||||
# by default, launching tmux will update tpm and all plugins
|
||||
# - true (default)
|
||||
# - false
|
||||
tmux_conf_update_plugins_on_launch=true
|
||||
|
||||
# by default, reloading the configuration will update tpm and all plugins
|
||||
# - true (default)
|
||||
# - false
|
||||
tmux_conf_update_plugins_on_reload=true
|
||||
|
||||
# by default, reloading the configuration will uninstall tpm and plugins when no
|
||||
# plugins are enabled
|
||||
# - true (default)
|
||||
# - false
|
||||
tmux_conf_uninstall_plugins_on_reload=true
|
||||
|
||||
# /!\ the tpm bindings differ slightly from upstream:
|
||||
# - installing plugins: <prefix> + I
|
||||
# - uninstalling plugins: <prefix> + Alt + u
|
||||
# - updating plugins: <prefix> + u
|
||||
|
||||
# /!\ do not add set -g @plugin 'tmux-plugins/tpm'
|
||||
# /!\ do not add run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
# /!\ the 'set -g @tpm_plugins' syntax is not supported
|
||||
# to enable a plugin, use the 'set -g @plugin' syntax:
|
||||
# visit https://github.com/tmux-plugins for available plugins
|
||||
#set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
#set -g @plugin 'tmux-plugins/tmux-cpu'
|
||||
#set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
#set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
#set -g @continuum-restore 'on'
|
||||
|
||||
|
||||
# -- custom variables ----------------------------------------------------------
|
||||
|
||||
# to define a custom #{foo} variable, define a POSIX shell function between the
|
||||
# '# EOF' and the '# "$@"' lines. Please note that the opening brace { character
|
||||
# must be on the same line as the function name otherwise the parse won't detect
|
||||
# it.
|
||||
#
|
||||
# then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the
|
||||
# 'tmux_conf_theme_status_right' variables.
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# # /!\ do not remove the following line
|
||||
# EOF
|
||||
#
|
||||
# # /!\ do not "uncomment" the functions: the leading "# " characters are needed
|
||||
#
|
||||
# # usage: #{weather}
|
||||
# weather() { # see https://github.com/chubin/wttr.in#one-line-output
|
||||
# curl -f -s -m 2 'wttr.in?format=3' || printf '\n' # /!\ make sure curl is installed
|
||||
# sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval
|
||||
# }
|
||||
#
|
||||
# # usage: #{online}
|
||||
# online() {
|
||||
# ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘'
|
||||
# }
|
||||
#
|
||||
# # usage: #{wan_ip_v4}
|
||||
# wan_ip_v4() {
|
||||
# curl -f -s -m 2 -4 ifconfig.me
|
||||
# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
|
||||
# }
|
||||
#
|
||||
# # usage: #{wan_ip_v6}
|
||||
# wan_ip_v6() {
|
||||
# curl -f -s -m 2 -6 ifconfig.me
|
||||
# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
|
||||
# }
|
||||
#
|
||||
# # usage: #{github_stars}, #{github_stars tmux/tmux}, ...
|
||||
# github_stars() {
|
||||
# repository=${1##*https://github.com/}
|
||||
# repository=${repository%% *}
|
||||
# repository=${repository%%.git}
|
||||
# url="https://api.github.com/repos/${repository:-gpakosz/.tmux}"
|
||||
# curl -s "$url" | perl -MJSON::PP=decode_json -CO -0777 -E '$response = decode_json(readline *STDIN); say ($response->{stargazers_count})'
|
||||
# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
|
||||
# }
|
||||
#
|
||||
# "$@"
|
||||
# # /!\ do not remove the previous line
|
||||
# # do not write below this line
|
||||
132
vim/.vimrc
Normal file
132
vim/.vimrc
Normal file
@@ -0,0 +1,132 @@
|
||||
" Ada's Vim config — lightweight and close to Neovim setup
|
||||
" Encoding and basics
|
||||
scriptencoding utf-8
|
||||
set nocompatible
|
||||
|
||||
" Leader
|
||||
let mapleader = " "
|
||||
|
||||
" UI
|
||||
set number
|
||||
set relativenumber
|
||||
set cursorline
|
||||
set signcolumn=yes
|
||||
set termguicolors
|
||||
|
||||
" Indentation
|
||||
set expandtab
|
||||
set shiftwidth=2
|
||||
set tabstop=2
|
||||
set smartindent
|
||||
|
||||
" Search
|
||||
set ignorecase
|
||||
set smartcase
|
||||
set incsearch
|
||||
|
||||
" Files
|
||||
set noswapfile
|
||||
set undofile
|
||||
|
||||
" Performance
|
||||
set updatetime=200
|
||||
set timeoutlen=400
|
||||
|
||||
" Splits
|
||||
set splitbelow
|
||||
set splitright
|
||||
|
||||
" Clipboard (prefer system clipboard if available)
|
||||
if has('unnamedplus')
|
||||
set clipboard=unnamedplus
|
||||
endif
|
||||
|
||||
" Keymaps
|
||||
nnoremap <silent> j gj
|
||||
nnoremap <silent> k gk
|
||||
nnoremap <silent> <leader>w :w<CR>
|
||||
nnoremap <silent> <leader>q :q<CR>
|
||||
nnoremap <silent> <leader>h :nohlsearch<CR>
|
||||
|
||||
" Windows
|
||||
nnoremap <silent> <leader>sv <C-w>v
|
||||
nnoremap <silent> <leader>sh <C-w>s
|
||||
nnoremap <silent> <leader>se <C-w>=
|
||||
nnoremap <silent> <leader>sx :close<CR>
|
||||
|
||||
" Buffers
|
||||
nnoremap <silent> <S-l> :bnext<CR>
|
||||
nnoremap <silent> <S-h> :bprevious<CR>
|
||||
|
||||
" Quickfix
|
||||
nnoremap <silent> ]q :cnext<CR>
|
||||
nnoremap <silent> [q :cprev<CR>
|
||||
|
||||
" Autocommands
|
||||
augroup AdaCore
|
||||
autocmd!
|
||||
" Resize splits equally on terminal resize
|
||||
autocmd VimResized * tabdo wincmd =
|
||||
" Disable auto comment on new line
|
||||
autocmd FileType * setlocal formatoptions-=o formatoptions-=r
|
||||
augroup END
|
||||
|
||||
" ------------------------------
|
||||
" Plugin manager: vim-plug (auto-bootstrap)
|
||||
" ------------------------------
|
||||
if empty(glob('~/.vim/autoload/plug.vim')) && !exists('$VIM_SKIP_PLUG_BOOTSTRAP')
|
||||
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
||||
endif
|
||||
|
||||
call plug#begin('~/.vim/plugged')
|
||||
|
||||
" Theme (Nord for Vim)
|
||||
Plug 'arcticicestudio/nord-vim'
|
||||
|
||||
" Fuzzy finder (fzf)
|
||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
|
||||
" File tree
|
||||
Plug 'preservim/nerdtree'
|
||||
|
||||
" Editing helpers
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'tpope/vim-commentary'
|
||||
|
||||
" Git signs
|
||||
Plug 'airblade/vim-gitgutter'
|
||||
|
||||
" Statusline
|
||||
Plug 'itchyny/lightline.vim'
|
||||
|
||||
" Optional: LSP-like features via coc.nvim (uncomment if needed)
|
||||
" Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
|
||||
call plug#end()
|
||||
|
||||
" Colorscheme
|
||||
try
|
||||
colorscheme nord
|
||||
catch
|
||||
colorscheme default
|
||||
endtry
|
||||
|
||||
" Lightline theme to match colors
|
||||
let g:lightline = { 'colorscheme': 'nord' }
|
||||
|
||||
" NERDTree toggle
|
||||
nnoremap <silent> <leader>e :NERDTreeToggle<CR>
|
||||
|
||||
" FZF mappings
|
||||
nnoremap <silent> <leader>ff :Files<CR>
|
||||
nnoremap <silent> <leader>fg :Rg<CR>
|
||||
nnoremap <silent> <leader>fb :Buffers<CR>
|
||||
nnoremap <silent> <leader>fh :Helptags<CR>
|
||||
|
||||
" Better terminal colors for fzf in Vim
|
||||
let g:fzf_layout = { 'down': '~40%' }
|
||||
|
||||
" If coc.nvim is enabled, you may want additional mappings/settings.
|
||||
" See vim/vimrc comments or vim/README.md for tips.
|
||||
Reference in New Issue
Block a user