mirror of
https://github.com/turtlebasket/env.git
synced 2026-03-07 21:14:27 -08:00
misc
This commit is contained in:
@@ -11,7 +11,12 @@ window-height = 50
|
|||||||
term = xterm-256color
|
term = xterm-256color
|
||||||
|
|
||||||
# reduce dimming for unfocused split panes (1.0 disables dimming)
|
# reduce dimming for unfocused split panes (1.0 disables dimming)
|
||||||
unfocused-split-opacity = 0.88
|
unfocused-split-opacity = 0.77
|
||||||
|
split-divider-color = #666666
|
||||||
|
|
||||||
|
window-inherit-working-directory = false
|
||||||
|
tab-inherit-working-directory = true
|
||||||
|
|
||||||
|
|
||||||
# USE PRERELEASE
|
# USE PRERELEASE
|
||||||
# > While you can set this setting back to `stable` at any time, this will only take effect when a later stable
|
# > While you can set this setting back to `stable` at any time, this will only take effect when a later stable
|
||||||
@@ -19,13 +24,12 @@ unfocused-split-opacity = 0.88
|
|||||||
auto-update-channel = tip
|
auto-update-channel = tip
|
||||||
auto-update = off
|
auto-update = off
|
||||||
|
|
||||||
# window-inherit-working-directory = false
|
|
||||||
|
|
||||||
# binds
|
# binds
|
||||||
keybind = cmd+,=open_config
|
keybind = cmd+,=open_config
|
||||||
|
|
||||||
keybind = cmd+b>shift+'=new_split:down
|
keybind = cmd+b>shift+'=new_split:down
|
||||||
keybind = cmd+b>shift+5=new_split:right
|
keybind = cmd+b>shift+5=new_split:right
|
||||||
|
keybind = cmd+b>cmd+b=goto_split:next
|
||||||
|
|
||||||
keybind = cmd+b>right=goto_split:right
|
keybind = cmd+b>right=goto_split:right
|
||||||
keybind = cmd+b>left=goto_split:left
|
keybind = cmd+b>left=goto_split:left
|
||||||
|
|||||||
@@ -14,34 +14,97 @@ opt.termguicolors = true
|
|||||||
opt.mouse = 'a'
|
opt.mouse = 'a'
|
||||||
opt.smartindent = true
|
opt.smartindent = true
|
||||||
opt.wrap = false
|
opt.wrap = false
|
||||||
opt.relativenumber = true
|
opt.number = true
|
||||||
|
opt.relativenumber = false
|
||||||
opt.tabstop = 4
|
opt.tabstop = 4
|
||||||
opt.shiftwidth = 4
|
opt.shiftwidth = 4
|
||||||
opt.expandtab = true
|
opt.expandtab = true
|
||||||
|
vim.o.sessionoptions = 'blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions'
|
||||||
|
|
||||||
vim.hl.priorities.semantic_tokens = 140
|
vim.hl.priorities.semantic_tokens = 140
|
||||||
vim.hl.priorities.treesitter = 100
|
vim.hl.priorities.treesitter = 100
|
||||||
|
|
||||||
vim.filetype.add({ extension = { svelte = 'svelte' } })
|
vim.filetype.add({
|
||||||
vim.api.nvim_create_autocmd('FileType', { pattern = 'markdown', command = 'setlocal wrap' })
|
extension = {
|
||||||
|
svelte = 'svelte',
|
||||||
|
svx = 'markdown',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd('FileType', { pattern = { 'markdown', 'svx' }, command = 'setlocal wrap' })
|
||||||
|
|
||||||
local function map(mode, lhs, rhs)
|
local function map(mode, lhs, rhs)
|
||||||
vim.keymap.set(mode, lhs, rhs, { silent = true })
|
vim.keymap.set(mode, lhs, rhs, { silent = true })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function confirm_clear_buffers()
|
||||||
|
local choice = vim.fn.confirm('Clear all buffers?', '&Yes\n&No', 2)
|
||||||
|
if choice ~= 1 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local listed_buffers = {}
|
||||||
|
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
|
||||||
|
if vim.api.nvim_buf_is_valid(buf) and vim.bo[buf].buflisted then
|
||||||
|
listed_buffers[#listed_buffers + 1] = buf
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local ok, err = pcall(vim.cmd, 'enew')
|
||||||
|
if not ok then
|
||||||
|
vim.notify(err, vim.log.levels.WARN)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local scratch = vim.api.nvim_get_current_buf()
|
||||||
|
vim.bo[scratch].buftype = 'nofile'
|
||||||
|
vim.bo[scratch].bufhidden = 'wipe'
|
||||||
|
vim.bo[scratch].buflisted = false
|
||||||
|
vim.bo[scratch].swapfile = false
|
||||||
|
|
||||||
|
local failed = false
|
||||||
|
for _, buf in ipairs(listed_buffers) do
|
||||||
|
if buf ~= scratch and vim.api.nvim_buf_is_valid(buf) then
|
||||||
|
local deleted = pcall(vim.api.nvim_buf_delete, buf, {})
|
||||||
|
failed = failed or not deleted
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if failed then
|
||||||
|
vim.notify('Some buffers could not be deleted', vim.log.levels.WARN)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function telescope_workspace_symbols()
|
||||||
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
|
|
||||||
|
for _, client in ipairs(vim.lsp.get_clients({ bufnr = bufnr })) do
|
||||||
|
if client:supports_method('workspace/symbol', bufnr) then
|
||||||
|
require('telescope.builtin').lsp_dynamic_workspace_symbols()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.notify('No attached LSP client supports workspace/symbol for this buffer', vim.log.levels.WARN)
|
||||||
|
end
|
||||||
|
|
||||||
for _, m in ipairs({
|
for _, m in ipairs({
|
||||||
{ 'n', '<c-b>', '<cmd>NvimTreeToggle<cr>' },
|
{ 'n', '<c-b>', '<cmd>NvimTreeFindFileToggle<cr>' },
|
||||||
{ 'n', '<c-`>', '<cmd>ToggleTerm direction="float"<cr>' },
|
{ 'n', '<c-`>', '<cmd>ToggleTerm direction="float"<cr>' },
|
||||||
{ 't', '<c-`>', '<cmd>ToggleTerm<cr>' },
|
{ 't', '<c-`>', '<cmd>ToggleTerm<cr>' },
|
||||||
{ 'n', '<leader>gs', '<cmd>Telescope git_status<cr>' },
|
{ 'n', '<leader>gs', '<cmd>Telescope git_status<cr>' },
|
||||||
{ 'n', '<leader>gc', '<cmd>Telescope git_commits<cr>' },
|
{ 'n', '<leader>gc', '<cmd>Telescope git_commits<cr>' },
|
||||||
{ 'n', '<leader>:', '<cmd>Telescope commands<cr>' },
|
{ 'n', '<leader>:', '<cmd>Telescope commands<cr>' },
|
||||||
{ 'n', '<leader><leader>', '<cmd>Telescope find_files<cr>' },
|
{ 'n', '<leader><leader>', '<cmd>Telescope find_files<cr>' },
|
||||||
{ 'n', '<leader>f', '<cmd>Telescope grep_string<cr>' },
|
{ 'n', '<leader>ff', '<cmd>Telescope live_grep<cr>' },
|
||||||
|
{ 'n', '<leader>fz', '<cmd>Telescope grep_string<cr>' },
|
||||||
|
{ 'n', '<leader>t', telescope_workspace_symbols },
|
||||||
{ 'n', '<leader>b', '<cmd>Telescope buffers<cr>' },
|
{ 'n', '<leader>b', '<cmd>Telescope buffers<cr>' },
|
||||||
|
{ 'n', '<leader>dB', confirm_clear_buffers },
|
||||||
{ 'n', 'B', '<cmd>Telescope buffers<cr>' },
|
{ 'n', 'B', '<cmd>Telescope buffers<cr>' },
|
||||||
{ 'n', '<leader>e', vim.diagnostic.open_float },
|
{ 'n', '<leader>e', vim.diagnostic.open_float },
|
||||||
{ 'n', '\\', vim.lsp.buf.hover },
|
{ 'n', '\\', vim.lsp.buf.hover },
|
||||||
|
{ 'n', '<F12>', vim.lsp.buf.definition },
|
||||||
|
{ 'n', '<F2>', vim.lsp.buf.rename },
|
||||||
{ 'n', '<a-k>', '<cmd>GitGutterPrevHunk<cr>' },
|
{ 'n', '<a-k>', '<cmd>GitGutterPrevHunk<cr>' },
|
||||||
{ 'n', '<a-j>', '<cmd>GitGutterNextHunk<cr>' },
|
{ 'n', '<a-j>', '<cmd>GitGutterNextHunk<cr>' },
|
||||||
{ 'n', '<c-h>', '<cmd>bp<cr>' },
|
{ 'n', '<c-h>', '<cmd>bp<cr>' },
|
||||||
@@ -72,21 +135,47 @@ require('lazy').setup({
|
|||||||
config = function() require('vscode').setup({ transparent = true }) end,
|
config = function() require('vscode').setup({ transparent = true }) end,
|
||||||
},
|
},
|
||||||
{ 'airblade/vim-gitgutter' },
|
{ 'airblade/vim-gitgutter' },
|
||||||
|
{
|
||||||
|
'numToStr/Comment.nvim',
|
||||||
|
config = function()
|
||||||
|
require('Comment').setup()
|
||||||
|
vim.keymap.set('n', '<leader>/', function()
|
||||||
|
return vim.v.count == 0 and '<Plug>(comment_toggle_linewise_current)'
|
||||||
|
or '<Plug>(comment_toggle_linewise_count)'
|
||||||
|
end, { expr = true, silent = true, desc = 'Toggle line comment' })
|
||||||
|
|
||||||
|
vim.keymap.set('x', '<leader>/', '<Plug>(comment_toggle_blockwise_visual)', {
|
||||||
|
silent = true,
|
||||||
|
desc = 'Toggle block comment',
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'nvim-lualine/lualine.nvim',
|
'nvim-lualine/lualine.nvim',
|
||||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
config = function() require('lualine').setup({ options = { theme = 'vscode', globalstatus = true } }) end,
|
config = function()
|
||||||
|
require('lualine').setup({
|
||||||
|
options = { theme = 'vscode', globalstatus = true },
|
||||||
|
sections = {
|
||||||
|
lualine_z = {
|
||||||
|
'location',
|
||||||
|
function() return 'L:' .. vim.api.nvim_buf_line_count(0) end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
build = ':TSUpdate',
|
build = ':TSUpdate',
|
||||||
config = function()
|
config = function()
|
||||||
local wanted = { 'svelte', 'javascript', 'typescript', 'html', 'css' }
|
local wanted = { 'svelte', 'javascript', 'typescript', 'html', 'css', 'markdown', 'svx' }
|
||||||
local ts_runtime = vim.fn.stdpath('data') .. '/lazy/nvim-treesitter/runtime'
|
local ts_runtime = vim.fn.stdpath('data') .. '/lazy/nvim-treesitter/runtime'
|
||||||
if vim.loop.fs_stat(ts_runtime) then
|
if vim.loop.fs_stat(ts_runtime) then
|
||||||
vim.opt.rtp:append(ts_runtime)
|
vim.opt.rtp:append(ts_runtime)
|
||||||
end
|
end
|
||||||
require('nvim-treesitter').setup({ install_dir = vim.fn.stdpath('data') .. '/site' })
|
require('nvim-treesitter').setup({ install_dir = vim.fn.stdpath('data') .. '/site' })
|
||||||
|
vim.treesitter.language.register('markdown', 'svx')
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
pattern = wanted,
|
pattern = wanted,
|
||||||
@@ -161,7 +250,27 @@ require('lazy').setup({
|
|||||||
{
|
{
|
||||||
'nvim-tree/nvim-tree.lua',
|
'nvim-tree/nvim-tree.lua',
|
||||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
config = function() require('nvim-tree').setup({ view = { width = 42 } }) end,
|
config = function()
|
||||||
|
vim.api.nvim_set_hl(0, 'NvimTreeNormal', { bg = '#0f0f12' })
|
||||||
|
vim.api.nvim_set_hl(0, 'NvimTreeEndOfBuffer', { bg = '#0f0f12' })
|
||||||
|
vim.api.nvim_set_hl(0, 'NvimTreeWinSeparator', { bg = '#0f0f12', fg = '#0f0f12' })
|
||||||
|
require('nvim-tree').setup({
|
||||||
|
view = { width = 42 },
|
||||||
|
update_focused_file = {
|
||||||
|
enable = true,
|
||||||
|
update_root = false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'rmagatti/auto-session',
|
||||||
|
lazy = false,
|
||||||
|
opts = {
|
||||||
|
suppressed_dirs = { '~/', '~/Downloads', '/' },
|
||||||
|
close_filetypes_on_save = { 'checkhealth', 'NvimTree' },
|
||||||
|
auto_delete_empty_sessions = false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'nvim-telescope/telescope.nvim',
|
'nvim-telescope/telescope.nvim',
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
{
|
{
|
||||||
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
|
"auto-session": { "branch": "main", "commit": "62437532b38495551410b3f377bcf4aaac574ebe" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
|
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "44acfe887d4056f704ccc4f17513ed41c9e2b2e6" },
|
"nvim-lspconfig": { "branch": "master", "commit": "b7dcde3e6195b43476ae799720b177aedc16d44c" },
|
||||||
"nvim-tree.lua": { "branch": "master", "commit": "e11ce83ed9a00f065bf676ae4e6c261c766989ba" },
|
"nvim-tree.lua": { "branch": "master", "commit": "e49b0d9bfa70989cf8b5abf5557f51e6e57f68d6" },
|
||||||
"nvim-treesitter": { "branch": "main", "commit": "3edb01f912867603c2aef9079f208f0244c0885b" },
|
"nvim-treesitter": { "branch": "main", "commit": "d660b7c002f3922b6bb3da47206645488a698426" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "746ffbb17975ebd6c40142362eee1b0249969c5c" },
|
"nvim-web-devicons": { "branch": "master", "commit": "746ffbb17975ebd6c40142362eee1b0249969c5c" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
||||||
|
|||||||
24
config/tmux/tmux.conf
Normal file
24
config/tmux/tmux.conf
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# ~/.tmux.conf
|
||||||
|
|
||||||
|
set -g monitor-bell on
|
||||||
|
|
||||||
|
# Ctrl+a instead of Ctrl+b for command prefix (like Screen)
|
||||||
|
# set -g prefix C-a
|
||||||
|
# unbind C-b
|
||||||
|
# bind C-a send-prefix
|
||||||
|
|
||||||
|
# ctrl+b C creates a new window to the right (NOTE: capital C)
|
||||||
|
# NOTE: this doesn't work for some reason!!
|
||||||
|
# unbind -T prefix C
|
||||||
|
# bind -T prefix C new-window -a .
|
||||||
|
|
||||||
|
unbind l
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
bind -r H resize-pane -L 5
|
||||||
|
bind -r J resize-pane -D 5
|
||||||
|
bind -r K resize-pane -U 5
|
||||||
|
bind -r L resize-pane -R 5
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
#
|
#
|
||||||
# ntfy-bell - run a command, forwarding OSC 9 notifications and BEL to ntfy
|
# ntfy-bell - run a command, forwarding OSC 9 notifications to ntfy
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# ntfy-bell <command> [args...]
|
# ntfy-bell <command> [args...]
|
||||||
@@ -102,9 +102,9 @@ def _copy_winsize(src_fd: int, dst_fd: int) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
topic = os.environ.get("BELL2NTFY_TOPIC")
|
topic = os.environ.get("NTFY_ME_TOPIC")
|
||||||
if not topic:
|
if not topic:
|
||||||
print("Error: environment variable BELL2NTFY_TOPIC not set", file=sys.stderr)
|
print("Error: environment variable NTFY_ME_TOPIC not set", file=sys.stderr)
|
||||||
return 2
|
return 2
|
||||||
|
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
@@ -155,7 +155,6 @@ def main() -> int:
|
|||||||
signal.signal(signal.SIGWINCH, _on_winch)
|
signal.signal(signal.SIGWINCH, _on_winch)
|
||||||
|
|
||||||
osc_last_sent = 0.0
|
osc_last_sent = 0.0
|
||||||
bel_last_sent = 0.0
|
|
||||||
cooldown_s = 1.5
|
cooldown_s = 1.5
|
||||||
parse_buf = bytearray()
|
parse_buf = bytearray()
|
||||||
stdin_eof_sent = False
|
stdin_eof_sent = False
|
||||||
@@ -224,19 +223,6 @@ def main() -> int:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if bytes([BEL]) in data and parse_buf.find(OSC9_PREFIX) == -1:
|
|
||||||
now = time.time()
|
|
||||||
if now - bel_last_sent >= cooldown_s:
|
|
||||||
bel_last_sent = now
|
|
||||||
try:
|
|
||||||
notify_ntfy(
|
|
||||||
topic=topic,
|
|
||||||
title="Terminal bell",
|
|
||||||
message=f"BEL from: {' '.join(cmd)}",
|
|
||||||
)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
if stdin_fd is not None and stdin_is_tty and old_tty_attrs is not None:
|
if stdin_fd is not None and stdin_is_tty and old_tty_attrs is not None:
|
||||||
try:
|
try:
|
||||||
Reference in New Issue
Block a user