Compare commits
17 Commits
b76a0787bf
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b953e2c9e | ||
|
|
db2dab6ee2 | ||
|
|
d21e83c921 | ||
|
|
eec510c9fb | ||
|
|
36e44c4ea8 | ||
|
|
b4f025c019 | ||
|
|
cef0c0bdf7 | ||
|
|
23fb9d2593 | ||
|
|
4717c01483 | ||
|
|
e82f6e5356 | ||
|
|
5f7db64250 | ||
|
|
05b5c17a56 | ||
|
|
ab111b9fb9 | ||
|
|
905e22a712 | ||
|
|
1930f98e22 | ||
|
|
4fa8591142 | ||
|
|
5549cae9d4 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -15,6 +15,8 @@ mise/*
|
||||
nvim/lazy-lock.json
|
||||
nvim/lazyvim.json
|
||||
|
||||
!tmux/
|
||||
|
||||
!yazi/
|
||||
yazi/flavours/
|
||||
yazi/plugins/
|
||||
|
||||
@@ -67,7 +67,7 @@ plugins=(
|
||||
)
|
||||
```
|
||||
|
||||
###
|
||||
### Fabric
|
||||
https://github.com/Mu-L/fabric-ai/tree/main
|
||||
|
||||
```shell
|
||||
@@ -134,6 +134,13 @@ https://mise.jdx.dev/
|
||||
brew install mise
|
||||
```
|
||||
|
||||
### OpenCode
|
||||
https://github.com/anomalyco/opencode
|
||||
|
||||
```shell
|
||||
brew install opencode
|
||||
```
|
||||
|
||||
### Pwgen
|
||||
https://github.com/aronhoyer/pwgen
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ categories:
|
||||
|
||||
source:
|
||||
# renovate:datasource=github-releases
|
||||
id: pkg:generic/hashicorp/terraform-ls@v0.38.4
|
||||
id: pkg:generic/hashicorp/terraform-ls@v0.38.6
|
||||
download:
|
||||
- target: darwin_arm64
|
||||
files:
|
||||
|
||||
@@ -1,11 +1,21 @@
|
||||
[settings]
|
||||
experimental = true
|
||||
env_shell_expand = true
|
||||
sops.age_key_file = "$HOME/.config/sops/.age"
|
||||
|
||||
[env]
|
||||
_.file = ".secrets.yaml"
|
||||
SOPS_AGE_KEY_FILE = "$HOME/.config/sops/.age"
|
||||
TFENV_REMOTE = "https://hashicorp-releases.yandexcloud.net"
|
||||
K9S_FEATURE_GATE_NODE_SHELL = true
|
||||
|
||||
[shell_alias]
|
||||
nvimc = "nvim ~/.config"
|
||||
nvimm = "nvim ~/.config/mise/config.toml"
|
||||
nvimn = "nvim ~/.config/nvim"
|
||||
nvimz = "nvim ~/.config/zsh/.zshrc"
|
||||
|
||||
gh = "cd ~ && clear"
|
||||
gw = "cd ~/work && clear"
|
||||
gp = "cd ~/personal && clear"
|
||||
|
||||
ytr = "fabric-ai -p rate_content -g ru -s -y"
|
||||
|
||||
@@ -14,10 +14,10 @@ brew install go
|
||||
brew install lazygit
|
||||
|
||||
# https://github.com/getsops/sops
|
||||
brew onstall sops
|
||||
brew install sops
|
||||
|
||||
# https://tree-sitter.github.io/
|
||||
brew install tree-sitter
|
||||
brew install tree-sitter-cli
|
||||
|
||||
# https://github.com/ryanoasis/nerd-fonts
|
||||
brew install --cask font-jetbrains-mono-nerd-font
|
||||
|
||||
@@ -4,7 +4,7 @@ return {
|
||||
filetypes = {
|
||||
"yaml",
|
||||
"yaml.docker-compose",
|
||||
-- "yaml.gitlab",
|
||||
"yaml.gitlab",
|
||||
"yaml.helm-values",
|
||||
},
|
||||
root_markers = {
|
||||
@@ -21,6 +21,9 @@ return {
|
||||
format = {
|
||||
enable = true,
|
||||
},
|
||||
customTags = {
|
||||
"!reference sequence",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -43,3 +43,6 @@ opt.splitbelow = true -- split horizontal window to the bottom
|
||||
|
||||
-- turn off swapfile
|
||||
opt.swapfile = false
|
||||
|
||||
-- set shell to zsh
|
||||
opt.shell = "/bin/zsh"
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
-- https://github.com/mfussenegger/nvim-ansible/tree/main
|
||||
return {
|
||||
"mfussenegger/nvim-ansible",
|
||||
ft = "yaml.ansible",
|
||||
opts = {
|
||||
-- leave empty or see below
|
||||
},
|
||||
}
|
||||
@@ -2,19 +2,19 @@
|
||||
return {
|
||||
"numToStr/Comment.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"JoosepAlviste/nvim-ts-context-commentstring",
|
||||
},
|
||||
config = function()
|
||||
-- import comment plugin safely
|
||||
local comment = require("Comment")
|
||||
|
||||
local ts_context_commentstring = require("ts_context_commentstring.integrations.comment_nvim")
|
||||
|
||||
-- enable comment
|
||||
comment.setup({
|
||||
-- for commenting tsx, jsx, svelte, html files
|
||||
pre_hook = ts_context_commentstring.create_pre_hook(),
|
||||
})
|
||||
end,
|
||||
-- dependencies = {
|
||||
-- "JoosepAlviste/nvim-ts-context-commentstring",
|
||||
-- },
|
||||
-- config = function()
|
||||
-- -- import comment plugin safely
|
||||
-- local comment = require("Comment")
|
||||
--
|
||||
-- local ts_context_commentstring = require("ts_context_commentstring.integrations.comment_nvim")
|
||||
--
|
||||
-- -- enable comment
|
||||
-- comment.setup({
|
||||
-- -- for commenting tsx, jsx, svelte, html files
|
||||
-- pre_hook = ts_context_commentstring.create_pre_hook(),
|
||||
-- })
|
||||
-- end,
|
||||
}
|
||||
|
||||
@@ -1,40 +1,41 @@
|
||||
-- https://github.com/mason-org/mason.nvim
|
||||
-- https://github.com/mason-org/mason-registry
|
||||
-- https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim
|
||||
return {
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = {
|
||||
registries = {
|
||||
"file:~/.config/mason-registry",
|
||||
"github:mason-org/mason-registry",
|
||||
},
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"ansible-language-server", -- https://github.com/ansible/vscode-ansible
|
||||
"docker-language-server", -- https://github.com/docker/docker-language-server
|
||||
"gitlab-ci-ls", -- https://github.com/alesbrelih/gitlab-ci-ls
|
||||
"helm-ls", -- https://github.com/mrjosh/helm-ls
|
||||
"lua-language-server", -- https://github.com/luals/lua-language-server
|
||||
"prettier", -- https://github.com/prettier/prettier
|
||||
"prettierd", -- https://github.com/prettier/prettier
|
||||
"stylua", -- https://github.com/JohnnyMorganz/StyLua
|
||||
"terraform-ls", -- https://github.com/hashicorp/terraform-ls
|
||||
"yaml-language-server", -- https://github.com/redhat-developer/yaml-language-server
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
},
|
||||
},
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
opts = {
|
||||
registries = {
|
||||
"file:~/.config/mason-registry",
|
||||
"github:mason-org/mason-registry",
|
||||
},
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"ansible-language-server", -- https://github.com/ansible/vscode-ansible
|
||||
"docker-language-server", -- https://github.com/docker/docker-language-server
|
||||
"gitlab-ci-ls", -- https://github.com/alesbrelih/gitlab-ci-ls
|
||||
"helm-ls", -- https://github.com/mrjosh/helm-ls
|
||||
"lua-language-server", -- https://github.com/luals/lua-language-server
|
||||
"prettier", -- https://github.com/prettier/prettier
|
||||
"prettierd", -- https://github.com/prettier/prettier
|
||||
"stylua", -- https://github.com/JohnnyMorganz/StyLua
|
||||
"terraform-ls", -- https://github.com/hashicorp/terraform-ls
|
||||
"yaml-language-server", -- https://github.com/redhat-developer/yaml-language-server
|
||||
},
|
||||
},
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -7,5 +7,20 @@ return {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
}
|
||||
search = {
|
||||
command = "rg",
|
||||
args = {
|
||||
"--color=never",
|
||||
"--no-heading",
|
||||
"--with-filename",
|
||||
"--line-number",
|
||||
"--column",
|
||||
"--hidden",
|
||||
},
|
||||
-- regex that will be used to match keywords.
|
||||
-- don't replace the (KEYWORDS) placeholder
|
||||
pattern = [[\b(KEYWORDS):]], -- ripgrep regex
|
||||
-- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,60 +1,33 @@
|
||||
-- https://github.com/nvim-treesitter/nvim-treesitter
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
lazy = false,
|
||||
build = ":TSUpdate",
|
||||
dependencies = {
|
||||
"windwp/nvim-ts-autotag",
|
||||
},
|
||||
config = function()
|
||||
-- import nvim-treesitter plugin
|
||||
local treesitter = require("nvim-treesitter.configs")
|
||||
local treesitter = require("nvim-treesitter")
|
||||
|
||||
-- configure treesitter
|
||||
treesitter.setup({
|
||||
-- enable syntax highlighting
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
-- enable indentation
|
||||
indent = { enable = true },
|
||||
-- enable autotagging (w/ nvim-ts-autotag plugin)
|
||||
autotag = {
|
||||
enable = true,
|
||||
},
|
||||
-- ensure these language parsers are installed
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"dockerfile",
|
||||
"gitignore",
|
||||
"jinja",
|
||||
"jinja_inline",
|
||||
"json",
|
||||
"hcl",
|
||||
"helm",
|
||||
"lua",
|
||||
"luadoc",
|
||||
"luap",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"nginx",
|
||||
"vim",
|
||||
"vimdoc",
|
||||
"yaml",
|
||||
},
|
||||
modules = {},
|
||||
sync_install = false,
|
||||
ignore_install = {},
|
||||
auto_install = false,
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<C-space>",
|
||||
node_incremental = "<C-space>",
|
||||
scope_incremental = false,
|
||||
node_decremental = "<bs>",
|
||||
},
|
||||
},
|
||||
treesitter.setup({})
|
||||
-- install parsers
|
||||
treesitter.install({
|
||||
"bash",
|
||||
"dockerfile",
|
||||
"gitignore",
|
||||
"jinja",
|
||||
"jinja_inline",
|
||||
"json",
|
||||
"hcl",
|
||||
"helm",
|
||||
"lua",
|
||||
"luadoc",
|
||||
"luap",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"nginx",
|
||||
"vim",
|
||||
"vimdoc",
|
||||
"yaml",
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -4,8 +4,6 @@ $directory\
|
||||
$git_branch\
|
||||
$git_state\
|
||||
$git_status\
|
||||
$kubernetes\
|
||||
$cmd_duration\
|
||||
$line_break\
|
||||
$character"""
|
||||
|
||||
|
||||
51
tmux/tmux.conf
Normal file
51
tmux/tmux.conf
Normal file
@@ -0,0 +1,51 @@
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -g terminal-overrides ",*:RGB"
|
||||
|
||||
# Index options
|
||||
set -g base-index 1 # set base index for windows
|
||||
set-window-option -g pane-base-index 1 # ser base index for panes
|
||||
set-option -g renumber-windows on # renumber all windows when any window is closed
|
||||
|
||||
# Base configuration
|
||||
set -g history-limit 1000000 # increase history size (from 2,000)
|
||||
set -g mouse on # Enable mouse
|
||||
set -g set-clipboard on # use system clipboard
|
||||
|
||||
# Vim-like copy/paste
|
||||
set-window-option -g mode-keys vi # set vi mode for windows
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
unbind -T copy-mode-vi MouseDragEnd1Pane # disable copy with mouse
|
||||
|
||||
# Style
|
||||
gray_dark="#3B4252"
|
||||
gray_light="#D8DEE9"
|
||||
gray_medium="#ABB2BF"
|
||||
green_soft="#A3BE8C"
|
||||
cyan_soft="#88C0D0"
|
||||
blue_muted="#81A1C1"
|
||||
magenta="#C099FF"
|
||||
|
||||
set -g status-position top # macOS / darwin style
|
||||
set -g status-left-length 100 # more room for session name
|
||||
set -g status-style "fg=${gray_light},bg=default"
|
||||
set -g status-left " #{?client_prefix,#[fg=${magenta}],#[fg=${green_soft}]}#[bold] #S#[fg=${gray_light},nobold] | "
|
||||
set -g status-right ""
|
||||
set -g window-status-current-format "#[fg=${cyan_soft},bold] #[underscore]#I:#W"
|
||||
set -g window-status-format "#I:#W"
|
||||
set -g message-style "fg=${gray_light},bg=default"
|
||||
set -g mode-style "fg=${gray_dark},bg=${blue_muted}"
|
||||
set -g pane-border-style "fg=${gray_dark}"
|
||||
set -g pane-active-border-style "fg=${gray_medium}"
|
||||
|
||||
# Keybins
|
||||
bind r source-file $HOME/.config/tmux/tmux.conf \; display-message "Configuration reload..."
|
||||
|
||||
# Popups
|
||||
# new session
|
||||
bind C-n display-popup -w 50% -h 5% -E 'bash -i -c "read -p \"Session name: \" name; tmux new-session -d -s \$name && tmux switch-client -t \$name"'
|
||||
# jump to session
|
||||
bind C-j display-popup -E "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t"
|
||||
# terminal
|
||||
bind C-t display-popup -d "#{pane_current_path}" -w 75% -h 75% -E "zsh"
|
||||
64
zsh/.zshrc
64
zsh/.zshrc
@@ -69,30 +69,44 @@ source $ZSH/oh-my-zsh.sh
|
||||
export EDITOR='nvim'
|
||||
fi
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
# YandexCloud CLI completion
|
||||
# NOTE: Versions checked from utility version output
|
||||
source "$HOMEBREW_PREFIX/Caskroom/yandex-cloud-cli/$(yc --version | egrep -o "([0-9]{1,}\.)+[0-9]{1,}")/yandex-cloud-cli/completion.zsh.inc"
|
||||
|
||||
#compdef opencode
|
||||
###-begin-opencode-completions-###
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
alias vi="nvim"
|
||||
alias vim="nvim"
|
||||
alias vimdiff="nvim -d"
|
||||
alias ovim="/usr/bin/vim"
|
||||
# yargs command completion script
|
||||
#
|
||||
# Installation: opencode completion >> ~/.zshrc
|
||||
# or opencode completion >> ~/.zprofile on OSX.
|
||||
#
|
||||
_opencode_yargs_completions()
|
||||
{
|
||||
local reply
|
||||
local si=$IFS
|
||||
IFS=$'
|
||||
' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" opencode --get-yargs-completions "${words[@]}"))
|
||||
IFS=$si
|
||||
if [[ ${#reply} -gt 0 ]]; then
|
||||
_describe 'values' reply
|
||||
else
|
||||
_default
|
||||
fi
|
||||
}
|
||||
if [[ "'${zsh_eval_context[-1]}" == "loadautofunc" ]]; then
|
||||
_opencode_yargs_completions "$@"
|
||||
else
|
||||
compdef _opencode_yargs_completions opencode
|
||||
fi
|
||||
###-end-opencode-completions-###
|
||||
|
||||
alias vimz="nvim ~/.config/zsh/.zshrc"
|
||||
alias vimn="nvim ~/.config/nvim"
|
||||
|
||||
alias gh="cd ~ && clear"
|
||||
alias gw="cd ~/work && clear"
|
||||
alias gp="cd ~/personal && clear"
|
||||
|
||||
# Functions
|
||||
# Add Docker Desktop for Mac (docker)
|
||||
export PATH="$PATH:/Applications/Docker.app/Contents/Resources/bin/"
|
||||
|
||||
## Functions
|
||||
#Generate strong password
|
||||
pwg() {
|
||||
function pwg() {
|
||||
pwgen -cny -r \[\]\{\}\(\)\"\'\-\|\:\;\`\,\<\>\$\= 32 1
|
||||
}
|
||||
|
||||
@@ -106,9 +120,7 @@ function y() {
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
|
||||
# YandexCloud CLI completion
|
||||
# NOTE: Versions checked from utility version output
|
||||
source "$HOMEBREW_PREFIX/Caskroom/yandex-cloud-cli/$(yc --version | egrep -o "([0-9]{1,}\.)+[0-9]{1,}")/yandex-cloud-cli/completion.zsh.inc"
|
||||
|
||||
# Add Docker Desktop for Mac (docker)
|
||||
export PATH="$PATH:/Applications/Docker.app/Contents/Resources/bin/"
|
||||
#DuckDuckGo Search with w3m
|
||||
function ddgs(){
|
||||
w3m https://lite.duckduckgo.com/html/\?q\="$@"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user