Compare commits

..

47 Commits

Author SHA1 Message Date
42b683b62b cleanup 2025-03-27 09:10:04 -04:00
30e7cf3d02 nvim flutter 2025-03-26 14:36:31 -04:00
b0296177f6 added flutter nvim config and folder to alias 2025-03-26 14:36:31 -04:00
d1c391a7ec added flutter nvim config and folder to alias 2025-03-26 14:36:31 -04:00
ca37a74180 changed nvim setup 2025-03-26 14:36:31 -04:00
19f6c5d5d2 omz load times 2025-03-26 14:36:31 -04:00
550866878e zsh shortcut and fzf 2025-03-24 14:54:55 -04:00
434d371c57 Merge remote-tracking branch 'origin/master' 2024-03-18 15:13:03 -04:00
d509b8a159 quarto config 2024-03-18 15:11:23 -04:00
446ec92655 fetch from all 2024-03-18 15:11:09 -04:00
805f2d06bb alias and zsh startup optimization 2024-03-18 14:56:28 -04:00
801d97d217 navigation 2024-03-18 14:56:07 -04:00
1cc9378eca merged configs 2024-02-25 14:31:15 -05:00
03ce8091f0 obsidian in nvim 2024-02-13 04:55:51 -05:00
e8875ab86b pomodoro 2024-02-11 01:06:41 -05:00
6d0ec8559b QoL fix 2024-02-10 15:53:14 -05:00
1ca0bb9011 updated keyboard layout 2024-02-10 15:37:47 -05:00
837a341c0d clangd encoding fix 2024-02-05 15:16:19 -05:00
de54ccfc01 updated navigation 2024-02-05 15:15:39 -05:00
9aec495a30 bug fixes 2024-02-05 15:13:27 -05:00
05e2f3ea8d more tmux and vim navigation and color 2024-02-03 21:28:55 -05:00
7325ef4410 path stuff 2024-02-03 18:11:49 -05:00
caf3c2a681 tmux nav and statusbar fixes 2024-02-03 18:11:25 -05:00
5a4dd97777 nvim undotree and diffview 2024-02-03 18:07:53 -05:00
345c313eeb cleanup 2024-02-02 13:26:43 -05:00
4f98470a4e color and statusline changes 2024-02-02 13:24:46 -05:00
dc027d7da5 zen mode 2024-02-02 13:24:32 -05:00
7dd5258f9b nvim for git diff 2024-01-31 20:40:40 -05:00
0e56a7626a fixed if-shell 2024-01-29 08:50:46 -05:00
d11cca64b7 fixed if-shell 2024-01-29 08:44:07 -05:00
f4f7565427 simplified tmux configs 2024-01-29 08:32:01 -05:00
656af4089c added rusty tools 2024-01-29 08:30:03 -05:00
3524107556 tmux rezise pane 2024-01-28 03:25:15 -05:00
efaa44b924 synced tmux conf 2024-01-25 15:53:20 -05:00
ea29d06a91 merge confilt resolved 2024-01-25 02:59:08 -05:00
e91d840f90 vim-tmux-navigator(needs some work on bindings) 2024-01-25 02:25:12 -05:00
5c88830f93 manual merge 2024-01-24 14:34:32 -05:00
0ab89f02ba wip 2024-01-24 14:30:44 -05:00
8639ac6164 alias 2024-01-22 14:41:41 -05:00
54b784f6ba work function cleanup 2023-06-15 08:15:12 -04:00
4a9feb214f tmux sync panes 2023-06-15 08:13:09 -04:00
9cd140a8ec syncronized tmux changes across other hosts 2023-06-07 04:50:07 -04:00
2d3cd3f637 Merge branch 'master' of ssh://hs.andreistoica.ca:4944/andrei-stoica/dotfiles 2023-06-07 04:39:46 -04:00
ccb4213dcb added rust's cargo to path and updated work command 2023-06-07 04:38:54 -04:00
b600491360 broadcast bindings 2023-06-07 04:38:54 -04:00
e89461885d nvchad rust 2023-06-07 04:38:54 -04:00
58bd865aa3 ansible 2023-05-31 17:14:32 -04:00
19 changed files with 652 additions and 165 deletions

View File

@@ -1,3 +1,31 @@
# Complex aliasses
## Open notes folder in nvim then return
function notes() { cd $HOME/Notes; nvim; cd -; };
function sb() { cd $HOME/second-brain/; git pull; nvim; git add .; git commit; git push; cd -; };
## Open work folder with fuzzy finder
function work() {
work_dirs=( "$HOME/clones" "$HOME/sandbox" "$HOME/TA/" )
work_dirs=( $(find $work_dirs -maxdepth 0 -type d 2> /dev/null) )
goto=""
if [ ! -z $1 ]; then
goto=$(find $work_dirs -maxdepth 1 -mindepth 1 -type d | fzf -f $1)
fi
if [ -z "$goto" -o $(wc -l <<< "$goto") -ne 1 ]; then
goto=$(find $work_dirs -maxdepth 1 -mindepth 1 -type d | fzf --query=$1 --preview "tree -C -L 2 {}")
fi
[ -z $goto ] && return
if [ -z $TMUX ]; then
tmux new -A -s "$(basename -- $goto)" -c "$goto"
else
tmux new -d -s "$(basename -- $goto)" -c "$goto"
tmux switch-client -t "$(basename -- $goto | tr . _)"
fi
}
# simple
alias clj='rlwrap java -cp ~/Clojure/clojure-1.8.0.jar clojure.main' alias clj='rlwrap java -cp ~/Clojure/clojure-1.8.0.jar clojure.main'
alias ll='ls -l' alias ll='ls -l'
alias la='ls -A' alias la='ls -A'
@@ -7,37 +35,20 @@ alias cdclip="cd \$(xclip -o -selection clipboard)"
alias clipi='xclip -i -selection clipboard' alias clipi='xclip -i -selection clipboard'
alias clipo='xclip -o -selection clipboard' alias clipo='xclip -o -selection clipboard'
alias ssh-agent='ssh-agent -t 1h' alias ssh-agent='ssh-agent -t 1h'
alias ssh-home='ssh home-server' alias saa='eval $(ssh-agent) && ssh-add'
alias tmh='ssh home-server -t "tmux new -A -s sys"' alias tm='tmux new -A'
alias tm='tmux new -A -s '
alias tms='tmux new -A -s sys'
alias hsfs='sshfs andrei@home-server:/utility /hsfs'
alias uhsfs='sudo umount /hsfs'
alias exfs='sudo zpool import external' alias exfs='sudo zpool import external'
alias uexfs='sudo zpool export external' alias uexfs='sudo zpool export external'
alias ta-media='rsync -avr /home/andrei/CSCI_4160/ home-server:/home/andrei/backups/school/TA/CSCI_4160_w19;'
alias ta-web='rsync -avr /home/andrei/CSCI_3230/ home-server:/home/andrei/backups/school/TA/CSCI_3230_w19;'
alias photo='rsync -avr /home/andrei/Pictures/* home-server:/utility/Photos/XPS_2018_VACATION/ --exclude="*_CR2_embedded.jpg"'
alias photo-local='rsync -avr ~/Pictures/* /media/andrei/External/Photos --exclude="*_CR2_embedded.jpg"'
alias socks='ssh -D 8081 -C -q -N home-server' alias socks='ssh -D 8081 -C -q -N home-server'
alias gmonitor='while [ true ] ; do nvidia-smi; nvidia-settings -q gpucoretemp | grep gpu; sensors| grep CPU; sleep 1; clear; done' alias gmonitor='while [ true ] ; do nvidia-smi; nvidia-settings -q gpucoretemp | grep gpu; sensors| grep CPU; sleep 1; clear; done'
alias saa='ssh-agent && ssh-add'
alias gssh='gcloud compute ssh'
alias gc='gcloud compute'
alias gci='gcloud compute instances'
alias gcls='gcloud compute instances list'
alias gcstart='gcloud compute instances start'
alias gcstop='gcloud compute instances stop'
alias gcstopall="gcls | grep RUNNING | awk '{print \$1}' | xargs -I{} gcloud compute instances stop {}"
alias gct='gcloud compute tpus'
alias gctls='gcloud compute tpus list'
alias gctstart='gcloud compute tpus start'
alias gctstop='gcloud compute tpus stop'
alias code='code-oss' alias code='code-oss'
alias tf-docker='docker run --runtime=nvidia -it --rm -p 8888:8888 -v $PWD:/tf/local andrei/dev'
alias conda-activate='source /opt/anaconda/bin/activate' alias conda-activate='source /opt/anaconda/bin/activate'
alias conda-deactivete='source /opt/anaconda/bin/deactivate' alias conda-deactivete='source /opt/anaconda/bin/deactivate'
alias venv='python -m venv' alias venv='python -m venv'
alias venv2='python2 -m venv' alias venv2='python2 -m venv'
alias venv3='python3 -m venv' alias venv3='python3 -m venv'
alias dotvenv='source .venv/bin/activate' alias dotvenv='source .venv/bin/activate'
alias todo='rusty-tasks'
alias ccat='bat'
alias we='watchexec'
alias netcheck='ping 8.8.8.8'

16
.bashrc
View File

@@ -141,18 +141,4 @@ TERM=xterm-256color
export VISUAL=vim export VISUAL=vim
export EDITOR="$VISUAL" export EDITOR="$VISUAL"
# >>> conda initialize >>> . "$HOME/.cargo/env"
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/andrei/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/andrei/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/andrei/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/andrei/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<

1
.config/nvim Submodule

Submodule .config/nvim added at a54d69c808

View File

@@ -13,10 +13,18 @@
d = diff d = diff
dc = diff -cached dc = diff -cached
lol = log --decorate --pretty=oneline --abbrev-commit lol = log --decorate --pretty=oneline --abbrev-commit
lg = log --pretty=format:'%C(auto) %h,%C(green) \"%s\"%Creset, %aN,%C(blue) %cD' lg = "log --pretty=format:'%C(auto) %h,%C(green) \"%s\"%Creset, %aN,%C(blue) %cD'"
[core] [core]
editor = vim editor = nvim
autocrlf = input autocrlf = input
[init] [init]
defaultBranch = main defaultBranch = main
[merge]
tool = nvim
[mergetool]
keepBackup = false
[mergetool "nvim"]
cmd = nvim -d $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'
[fetch]
all = true

4
.gitmodules vendored Normal file
View File

@@ -0,0 +1,4 @@
[submodule ".config/nvim"]
path = .config/nvim
url = git@github.com:andrei-stoica/kickstart.nvim.git
branch = custom

View File

@@ -73,8 +73,8 @@
"KC_F", "KC_F",
"KC_G", "KC_G",
"KC_LEFT", "KC_LEFT",
"KC_UP",
"KC_DOWN", "KC_DOWN",
"KC_UP",
"KC_RGHT", "KC_RGHT",
"KC_QUOT", "KC_QUOT",
"KC_EQL", "KC_EQL",
@@ -123,8 +123,8 @@
"KC_F", "KC_F",
"KC_G", "KC_G",
"KC_HOME", "KC_HOME",
"KC_PGUP",
"KC_PGDN", "KC_PGDN",
"KC_PGUP",
"KC_END", "KC_END",
"KC_F12", "KC_F12",
"KC_ENT", "KC_ENT",
@@ -173,8 +173,8 @@
"KC_F", "KC_F",
"KC_G", "KC_G",
"KC_MPRV", "KC_MPRV",
"KC_VOLU",
"KC_VOLD", "KC_VOLD",
"KC_VOLU",
"KC_MNXT", "KC_MNXT",
"KC_MUTE", "KC_MUTE",
"KC_MPLY", "KC_MPLY",

View File

@@ -5,8 +5,8 @@ local M = {}
local highlights = require "custom.highlights" local highlights = require "custom.highlights"
M.ui = { M.ui = {
theme = "tokyodark", theme = "onedark",
theme_toggle = { "tokyodark", "one_light" }, theme_toggle = { "onedark", "one_light" },
hl_override = highlights.override, hl_override = highlights.override,
hl_add = highlights.add, hl_add = highlights.add,

View File

@@ -4,8 +4,18 @@ local capabilities = require("plugins.configs.lspconfig").capabilities
local lspconfig = require("lspconfig") local lspconfig = require("lspconfig")
-- if you just want default config for the servers then put them in a table -- if you just want default config for the servers then put them in a table
local servers = local servers = {
{ "html", "cssls", "tsserver", "clangd", "docker_compose_language_service", "dockerls", "rust_analyzer", "pyright" } "html",
"cssls",
"tsserver",
"clangd",
"docker_compose_language_service",
"dockerls",
"rust_analyzer",
"pyright",
"grammarly",
"marksman",
}
for _, lsp in ipairs(servers) do for _, lsp in ipairs(servers) do
lspconfig[lsp].setup({ lspconfig[lsp].setup({
@@ -14,5 +24,9 @@ for _, lsp in ipairs(servers) do
}) })
end end
-- lspconfig["clangd"].setup({
-- lspconfig.pyright.setup { blabla} on_attach = on_attach,
capabilities = {
offsetEncoding = { "utf-16" },
},
})

View File

@@ -7,7 +7,6 @@ end
local b = null_ls.builtins local b = null_ls.builtins
local sources = { local sources = {
-- webdev stuff -- webdev stuff
b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast! b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast!
b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes

View File

@@ -0,0 +1,72 @@
local desc = require('utils').plugin_keymap_desc('ufo')
-- Custom fold text handler for ufo showing line count folded
local handler = function(virtText, lnum, endLnum, width, truncate)
local newVirtText = {}
local suffix = (' 󰁂 %d '):format(endLnum - lnum)
local sufWidth = vim.fn.strdisplaywidth(suffix)
local targetWidth = width - sufWidth
local curWidth = 0
for _, chunk in ipairs(virtText) do
local chunkText = chunk[1]
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
if targetWidth > curWidth + chunkWidth then
table.insert(newVirtText, chunk)
else
chunkText = truncate(chunkText, targetWidth - curWidth)
local hlGroup = chunk[2]
table.insert(newVirtText, {chunkText, hlGroup})
chunkWidth = vim.fn.strdisplaywidth(chunkText)
-- str width returned from truncate() may less than 2nd argument, need padding
if curWidth + chunkWidth < targetWidth then
suffix = suffix .. (' '):rep(targetWidth - curWidth - chunkWidth)
end
break
end
curWidth = curWidth + chunkWidth
end
table.insert(newVirtText, {suffix, 'MoreMsg'})
return newVirtText
end
return {
{
'luukvbaal/statuscol.nvim',
config = function()
local builtin = require('statuscol.builtin')
require('statuscol').setup({
segments = {
{text = {builtin.foldfunc}, click = 'v:lua.ScFa'},
{text = {' %s'}, click = 'v:lua.ScSa'},
{text = {builtin.lnumfunc, ' '}, condition = {true, builtin.not_empty}, click = 'v:lua.ScLa'},
},
})
end,
},
{
'kevinhwang91/nvim-ufo',
dependencies = {'kevinhwang91/promise-async'},
opts = {
fold_virt_text_handler = handler,
provider_selector = function(bufnr, filetype, buftype)
return {'treesitter', 'indent'}
end,
},
config = function(_, opts)
local ufo = require('ufo')
ufo.setup(opts)
vim.keymap.set('n', 'zR', ufo.openAllFolds, {desc = desc('Open all folds')})
vim.keymap.set('n', 'zM', ufo.closeAllFolds, {desc = desc('Close all folds')})
vim.keymap.set('n', 'K', function()
local winid = ufo.peekFoldedLinesUnderCursor(true)
if not winid then
vim.lsp.buf.hover()
end
end, {desc = 'LSP: Show hover documentation and folded code'})
end
},
}

View File

@@ -2,17 +2,28 @@ local M = {}
M.treesitter = { M.treesitter = {
ensure_installed = { ensure_installed = {
"vim",
"lua",
"html",
"css",
"javascript",
"typescript", "typescript",
"python", "python",
"tsx", "tsx",
"c", "c",
"javascript",
"json",
"lua",
"luadoc",
"luap",
"markdown", "markdown",
"markdown_inline", "markdown_inline",
"query",
"regex",
"vim",
"vimdoc",
"bash",
"html",
"css",
"javascript",
"yaml",
"julia",
"r",
}, },
indent = { indent = {
enable = true, enable = true,
@@ -62,4 +73,56 @@ M.nvimtree = {
}, },
} }
M.cmp = function(_, opts)
local cmp = require("cmp")
opts.experimental = {
ghost_text = true,
}
opts.sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "nvim_lua" },
{ name = "path" },
{ name = "buffer", keyword_length = 5 },
})
opts.mapping = cmp.config.mapping({
["<C-p>"] = cmp.mapping.select_prev_item(),
["<C-n>"] = cmp.mapping.select_next_item(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<C-y>"] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
}),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif require("luasnip").expand_or_jumpable() then
vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-expand-or-jump", true, true, true), "")
else
fallback()
end
end, {
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif require("luasnip").jumpable(-1) then
vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-jump-prev", true, true, true), "")
else
fallback()
end
end, {
"i",
"s",
}),
})
return opts
end
return M return M

View File

@@ -12,7 +12,6 @@ vim.opt.expandtab = true
vim.opt.number = true vim.opt.number = true
vim.opt.linebreak = true vim.opt.linebreak = true
vim.opt.showbreak = "+++" vim.opt.showbreak = "+++"
vim.opt.textwidth = 100
vim.opt.showmatch = true vim.opt.showmatch = true
vim.opt.visualbell = true vim.opt.visualbell = true
vim.opt.hlsearch = true vim.opt.hlsearch = true
@@ -28,4 +27,4 @@ vim.opt.tabstop = 2
vim.opt.undolevels = 1000 vim.opt.undolevels = 1000
vim.opt.backspace = "indent,eol,start" vim.opt.backspace = "indent,eol,start"
vim.opt.colorcolumn = "80" vim.opt.colorcolumn = "80"
vim.opt.conceallevel = 2

View File

@@ -1,15 +1,76 @@
---@type MappingsTable ---@type MappingsTable
local M = {} local M = {}
local function toggle_telescope(harpoon_files)
local conf = require("telescope.config").values
local file_paths = {}
for _, item in ipairs(harpoon_files.items) do
table.insert(file_paths, item.value)
end
require("telescope.pickers").new({}, {
prompt_title = "Harpoon",
finder = require("telescope.finders").new_table({
results = file_paths,
}),
previewer = conf.file_previewer({}),
sorter = conf.generic_sorter({}),
}):find()
end
M.general = { M.general = {
n = { n = {
-- harpoon -- harpoon
["H"] = {function() require("harpoon.ui").toggle_quick_menu() end, "Open Harpoon" }, ["H"] = {
["<leader>a"] = {function() require("harpoon.mark").add_file() end, "Add file to Harpoon"}, function()
["<leader>s"] = {function() require("harpoon.ui").nav_file(1) end, "Switch to file 1"}, local harpoon = require("harpoon")
["<leader>d"] = {function() require("harpoon.ui").nav_file(2) end, "Switch to file 2"}, toggle_telescope(harpoon:list())
["<leader>f"] = {function() require("harpoon.ui").nav_file(3) end, "Switch to file 3"}, --harpoon.ui:toggle_quick_menu(harpoon:list())
["<leader>g"] = {function() require("harpoon.ui").nav_file(4) end, "Switch to file 4"}, end,
"Open Harpoon in telescope",
},
["<leader>hh"] = {
function()
local harpoon = require("harpoon")
harpoon.ui:toggle_quick_menu(harpoon:list())
end,
"Open Harpoon",
},
["<leader>ha"] = {
function()
local harpoon = require("harpoon")
harpoon:list():append()
end,
"Add file to Harpoon",
},
["<leader>hs"] = {
function()
local harpoon = require("harpoon")
harpoon:list():select(1)
end,
"Switch to file 1",
},
["<leader>hd"] = {
function()
local harpoon = require("harpoon")
harpoon:list():select(2)
end,
"Switch to file 2",
},
["<leader>hf"] = {
function()
local harpoon = require("harpoon")
harpoon:list():select(3)
end,
"Switch to file 3",
},
["<leader>hg"] = {
function()
local harpoon = require("harpoon")
harpoon:list():select(4)
end,
"Switch to file 4",
},
-- navigation -- navigation
["<C-d>"] = { "<C-d>zz", "1/2 page down" }, ["<C-d>"] = { "<C-d>zz", "1/2 page down" },
@@ -17,7 +78,7 @@ M.general = {
["n"] = { "nzz", "find next" }, ["n"] = { "nzz", "find next" },
["N"] = { "Nzz", "find prev" }, ["N"] = { "Nzz", "find prev" },
["Zm"] = { ":ZenMode<CR>", "Enter ZenMode" },
}, },
} }

View File

@@ -1,10 +1,37 @@
local overrides = require "custom.configs.overrides" local overrides = require("custom.configs.overrides")
---@type NvPluginSpec[] ---@type NvPluginSpec[]
local plugins = { local plugins = {
{
"folke/twilight.nvim",
opts = {
context = 20,
expand = {
"function",
},
},
lazy = false,
},
{
"folke/zen-mode.nvim",
opts = {
tmux = {
enable = false,
},
},
lazy = false,
},
{
"alexghergh/nvim-tmux-navigation",
lazy = false,
},
-- Override plugin definition options -- Override plugin definition options
{
"hrsh7th/nvim-cmp",
opts = overrides.cmp,
},
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
dependencies = { dependencies = {
@@ -12,16 +39,31 @@ local plugins = {
{ {
"jose-elias-alvarez/null-ls.nvim", "jose-elias-alvarez/null-ls.nvim",
config = function() config = function()
require "custom.configs.null-ls" require("custom.configs.null-ls")
end, end,
}, },
}, },
config = function() config = function()
require "plugins.configs.lspconfig" require("plugins.configs.lspconfig")
require "custom.configs.lspconfig" require("custom.configs.lspconfig")
end, -- Override to setup mason-lspconfig end, -- Override to setup mason-lspconfig
opts = {
---@type lspconfig.options
servers = {
pyright = {},
r_language_server = {},
julials = {},
marksman = {
-- also needs:
-- $home/.config/marksman/config.toml :
-- [core]
-- markdown.file_extensions = ["md", "markdown", "qmd"]
filetypes = { "markdown", "quarto" },
root_dir = require("lspconfig.util").root_pattern(".git", ".marksman.toml", "_quarto.yml"),
},
},
},
}, },
-- override plugin configs -- override plugin configs
{ {
"williamboman/mason.nvim", "williamboman/mason.nvim",
@@ -54,14 +96,106 @@ local plugins = {
end, end,
}, },
{ "nvim-treesitter/nvim-treesitter-context", lazy = false },
{ {
"theprimeagen/harpoon", "theprimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
config = function(_, opts)
local harpoon = require("harpoon")
harpoon:setup({
settings = {
save_on_toggle = true,
},
})
end,
}, },
{ {
'simrat39/rust-tools.nvim' "simrat39/rust-tools.nvim",
}, },
{
"ellisonleao/glow.nvim",
config = true,
cmd = "Glow",
event = "BufEnter *.md",
},
{
"kevinhwang91/nvim-ufo",
requires = "kevinhwang91/promise-async",
lazy = false,
},
{
"epwalsh/obsidian.nvim",
version = "*", -- recommended, use latest release instead of latest commit
lazy = true,
ft = "markdown",
-- ft = {
-- "BufReadPre ~/Notes/**.md",
-- "BufNewFile ~/Notes/**.md",
-- },
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
workspaces = {
{ name = "second-brain", path = "~/second-brain" },
},
new_notes_location = "notes_subdir",
daily_notes = { folder = "notes/dailies" },
},
},
-- Disable nvchad plugins
{
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
lazy = false,
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
},
{
"quarto-dev/quarto-nvim",
opts = {
lspFeatures = {
languages = { "r", "python", "julia", "bash", "html", "lua" },
},
},
ft = "quarto",
keys = {
{ "<leader>qa", ":QuartoActivate<cr>", desc = "quarto activate" },
{ "<leader>qp", ":lua require'quarto'.quartoPreview()<cr>", desc = "quarto preview" },
{ "<leader>qq", ":lua require'quarto'.quartoClosePreview()<cr>", desc = "quarto close" },
{ "<leader>qh", ":QuartoHelp ", desc = "quarto help" },
{ "<leader>qe", ":lua require'otter'.export()<cr>", desc = "quarto export" },
{ "<leader>qE", ":lua require'otter'.export(true)<cr>", desc = "quarto export overwrite" },
{ "<leader>qrr", ":QuartoSendAbove<cr>", desc = "quarto run to cursor" },
{ "<leader>qra", ":QuartoSendAll<cr>", desc = "quarto run all" },
{ "<leader><cr>", ":SlimeSend<cr>", desc = "send code chunk" },
{ "<c-cr>", ":SlimeSend<cr>", desc = "send code chunk" },
{ "<c-cr>", "<esc>:SlimeSend<cr>i", mode = "i", desc = "send code chunk" },
{ "<c-cr>", "<Plug>SlimeRegionSend<cr>", mode = "v", desc = "send code chunk" },
{ "<cr>", "<Plug>SlimeRegionSend<cr>", mode = "v", desc = "send code chunk" },
{ "<leader>ctr", ":split term://R<cr>", desc = "terminal: R" },
{ "<leader>cti", ":split term://ipython<cr>", desc = "terminal: ipython" },
{ "<leader>ctp", ":split term://python<cr>", desc = "terminal: python" },
{ "<leader>ctj", ":split term://julia<cr>", desc = "terminal: julia" },
},
},
{
"jmbuhr/otter.nvim",
opts = {
buffers = {
set_filetype = true,
},
},
},
-- Disable nvchad plugins -- Disable nvchad plugins
{ {
@@ -69,8 +203,48 @@ local plugins = {
lazy = false, lazy = false,
}, },
{
"debugloop/telescope-undo.nvim",
dependencies = { -- note how they're inverted to above example
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
},
},
keys = {
{ -- lazy style key map
"<leader>u",
"<cmd>Telescope undo<cr>",
desc = "undo history",
},
},
opts = {
-- don't use `defaults = { }` here, do this in the main telescope spec
extensions = {
undo = {
-- telescope-undo.nvim config, see below
},
-- no other extensions here, they can have their own spec too
},
},
config = function(_, opts)
-- Calling telescope's setup from multiple specs does not hurt, it will happily merge the
-- configs for us. We won't use data, as everything is in it's own namespace (telescope
-- defaults, as well as each extension).
require("telescope").setup(opts)
require("telescope").load_extension("undo")
end,
},
{ "NvChad/nvterm", enabled = false }, {
"sindrets/diffview.nvim",
lazy = false,
},
{
"NvChad/nvterm",
enabled = false,
},
-- To make a plugin not be loaded -- To make a plugin not be loaded
-- { -- {

72
.playbook/dev-pb.yaml Normal file
View File

@@ -0,0 +1,72 @@
---
- name: Setup dev environment
hosts: localhost
tasks:
- name: update cache
become: true
when: ansible_facts['distribution'] == "Ubuntu"
ansible.builtin.apt:
update_cache: yes
- name: install pacstall
become: yes
when: ansible_facts['distribution'] == "Ubuntu"
ansible.builtin.shell:
cmd: bash -c "$(curl -fsSL https://pacstall.dev/q/install)"
creates: /usr/bin/pacstall
- name: install most tools
become: true
ansible.builtin.apt:
pkg:
- curl
- tmux
- git
- htop
- build-essential
- fzf
- xclip
- zsh
- yadm
- name: install tailscale
become: yes
become_user: andrei
ansible.builtin.shell:
cmd: sh -c "$(curl -fsSL https://tailscale.com/install.sh)"
creates: /usr/bin/tailscale
- name: instll nvchad
become: yes
become_user: andrei
ansible.builtin.command:
cmd: "git clone https://github.com/NvChad/NvChad /home/andrei/.config/nvim --depth 1"
creates: /home/andrei/.config/nvim
- name : install oh-my-zsh
become: yes
become_user: andrei
ansible.builtin.shell:
cmd: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" --unattended
creates: /home/andrei/.oh-my-zsh
- name : retrieve dotfiles
become: yes
become_user: andrei
ansible.builtin.command:
cmd: yadm clone https://github.com/andrei-stoica/dotfiles.git
creates: /home/andrei/.local/share/yadm/repo.git
- name: install nvchad custom config
become: yes
become_user: andrei
ansible.builtin.command:
cmd: ln -s /home/andrei/.nvchad-custom /home/andrei/.config/nvim/lua/custom
creates: /home/andrei/.config/nvim/lua/custom

85
.tmux.conf##default Normal file
View File

@@ -0,0 +1,85 @@
# plugins
set -g @plugin 'alexghergh/nvim-tmux-navigation'
run '~/.tmux/plugins/tpm/tpm'
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on
# Initialize sesions
bind W source-file ~/.tmux/work
# reload config
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
# spliting windoww
unbind %
unbind '"'
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# sync panes
unbind b
bind b setw synchronize-panes
# reset working dir for session
unbind h
bind h attach-session -t . -c "#{pane_current_path}"
# status bar
set -g status-right '#[fg=black]◢#[bg=black fg=colour135] %H:%M #[fg=default]%b %d %Y '
if-shell 'test "$(acpi -t)"' {
set -g status-right '#[fg=black]◢#[bg=black fg=colour135] %H:%M #[fg=default]%b %d %Y #[fg=pink] ♥#(acpi | cut -d ',' -f 2) '
}
# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?|fzf)(diff)?$'"
bind-key -n -T prefix k if-shell "${is_vim}" 'send-keys C-h' 'select-pane -L'
bind-key -n -T prefix j if-shell "${is_vim}" 'send-keys C-j' 'select-pane -D'
bind-key -n -T prefix h if-shell "${is_vim}" 'send-keys C-k' 'select-pane -U'
bind-key -n -T prefix l if-shell "${is_vim}" 'send-keys C-l' 'select-pane -R'
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
# resize
bind-key -r -T prefix M-k resize-pane -U
bind-key -r -T prefix M-j resize-pane -D
bind-key -r -T prefix M-h resize-pane -L
bind-key -r -T prefix M-l resize-pane -R
bind-key -r -T prefix k select-pane -U
bind-key -r -T prefix j select-pane -D
bind-key -r -T prefix h select-pane -L
bind-key -r -T prefix l select-pane -R
bind C-l send-keys 'C-l'
set-option -g allow-passthrough on
set -g default-terminal "screen-256color"
# status and culors
set -g status-left-length 85
set -g status-left "#[bg=black]#[fg=#(pomodoro tmux-color)]#(pomodoro status -f ' %!r') #[fg=default]working on#[fg=colour135] #S#[bg=default fg=black]◣"
set -g window-status-current-format "#[fg=colour135]#W"
set -g status-style bg=default
set -g pane-active-border-style fg=colour135
set -g status-justify centre
set-option -g status-interval 1
set-option -g clock-mode-color colour135
set-option -g message-style fg=colour135,bg=black

View File

@@ -1,32 +0,0 @@
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on
# Initialize sesions
bind W source-file ~/.tmux/work
# reload config
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
# spliting windoww
unbind %
unbind '"'
bind | split-window -h
bind - split-window -v
# sync panes
bind S setw synchronize-panes
# setting vi mode
set-window-option -g mode-keys vi
# status bar
set -g status-right '♥#(acpi | cut -d ',' -f 2) | %H:%m %d-%b-%y '
# default shell
#set -g default-terminal "screen-256color" /bin/bash
#set-option -g default-shell /bin/bash

View File

@@ -1,29 +0,0 @@
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on
# Initialize sesions
bind W source-file ~/.tmux/work
# reload config
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
# spliting windoww
unbind %
unbind '"'
bind | split-window -h
bind - split-window -v
# broadcast to panes
unbind b
unbind B
bind b setw synchronize-panes on
bind B setw synchronize-panes off
# status bar
set -g status-right '%H:%m %d-%b-%y '

45
.zshrc
View File

@@ -1,20 +1,20 @@
zmodload zsh/zprof
# If you come from bash you might have to change your $PATH. # If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:/usr/lib64/openjdk-17/bin:$PATH export PATH=$HOME/bin:/usr/local/bin:/usr/lib65/openjdk-17/bin:$PATH
# Path to your oh-my-zsh installation. # Path to your oh-my-zsh installation.
export ZSH=/home/andrei/.oh-my-zsh export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random" # Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded. # it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes ZSH_THEME="blokkzh"
ZSH_THEME="blokkzh"
# Set list of themes to load # Set list of themes to load
# Setting this variable when ZSH_THEME="blokkzh" # Setting this variable when ZSH_THEME="blokkzh"
# cause zsh load theme from this variable instead of # cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/ # looking in ~/.oh-my-zsh/themes/
# An empty array have no effect # An empty array have no effect
# ZSH_THEME="blokkzh" ZSH_THEME="blokkzh"
# Uncomment the following line to use case-sensitive completion. # Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true" # CASE_SENSITIVE="true"
@@ -73,7 +73,11 @@ source $ZSH/oh-my-zsh.sh
# Preferred editor for local and remote sessions # Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then # if [[ -n $SSH_CONNECTION ]]; then
if [[ -e /usr/bin/nvim ]]; then
export EDITOR='nvim'
else
export EDITOR='vim' export EDITOR='vim'
fi
# else # else
# export EDITOR='mvim' # export EDITOR='mvim'
# fi # fi
@@ -98,28 +102,23 @@ autoload -z edit-command-line
zle -N edit-command-line zle -N edit-command-line
bindkey "^v" edit-command-line bindkey "^v" edit-command-line
bindkey -s "^w" "work^M"
# adding cargo to path # adding cargo to path
export PATH=$HOME/.cargo/bin:$PATH export PATH=$HOME/.cargo/bin:$PATH
# adding local to path
export PATH=$HOME/.local/bin:$PATH
# Open work folder with fuzzy finder
function work() {
work_dirs=( "$HOME/clones" "$HOME/sandbox" )
projects=() export NVM_DIR="$HOME/.nvm"
#[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
for dr in "${work_dirs[@]}"; do nvm() {
p=$( ls -d -1 ${dr}/* ) unset -f nvm
projects=( "${projects[@]}" "${p[@]}" ) export NVM_DIR=~/.nvm
done [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
nvm "$@"
goto=$(echo "$projects" | fzf --query=$1 --preview "tree -C -L 2 {}")
if [ -z $TMUX ]
then
tmux new -A -s "$(basename -- $goto)" -c "$goto"
else
tmux new -d -s "$(basename -- $goto)" -c "$goto"
tmux switch-client -t "$(basename -- $goto)"
fi
} }
# new fzf command integration
source <(fzf --zsh)