reorganize packages
This commit is contained in:
parent
ec50d3f12f
commit
05bdb4abdc
3
TODO.md
Normal file
3
TODO.md
Normal file
@ -0,0 +1,3 @@
|
||||
alacritty,borders,ghostty,htop,karabiner,linearmouse,nvim,sol,wezterm
|
||||
|
||||
- fix nvim in terminal nvim exit sequences
|
||||
@ -1,8 +0,0 @@
|
||||
return {
|
||||
cmd = { "vscode-json-language-server", "--stdio" },
|
||||
filetypes = { "json", "jsonc" },
|
||||
init_options = {
|
||||
provideFormatter = true,
|
||||
},
|
||||
root_markers = { ".git" },
|
||||
}
|
||||
@ -1,40 +0,0 @@
|
||||
live_config_reload = true
|
||||
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[font]
|
||||
normal = { family = "SF Mono", style = "Regular" }
|
||||
size = 12
|
||||
offset = { x = 0, y = 0 }
|
||||
|
||||
[window]
|
||||
decorations_theme_variant = "Dark"
|
||||
padding = { x = 4, y = 0 }
|
||||
dynamic_padding = false
|
||||
resize_increments = true
|
||||
|
||||
[keyboard]
|
||||
bindings = [
|
||||
# Create new window
|
||||
{ action = "SpawnNewInstance", key = "N", mods = "Command" },
|
||||
# Jump back one word
|
||||
{ key = "Left", mods = "Alt", chars = "\u001bb" },
|
||||
# Jump forward one word
|
||||
{ key = "Right", mods = "Alt", chars = "\u001bf" },
|
||||
# Move to start of line
|
||||
{ key = "Left", mods = "Command", chars = "\u0001" },
|
||||
# Move to end of line
|
||||
{ key = "Right", mods = "Command", chars = "\u0005" },
|
||||
|
||||
# Delete backwards
|
||||
{ key = "Back", mods = "Alt", chars = "\u001B\u007F" }, # word
|
||||
{ key = "Back", mods = "Command", chars = "\u0015" }, # line
|
||||
|
||||
# Delete forwards
|
||||
{ key = "Delete", mods = "Alt", chars = "\u001Bd" }, # word
|
||||
{ key = "Delete", mods = "Command", chars = "\u000B" } # line
|
||||
]
|
||||
|
||||
[scrolling]
|
||||
multiplier = 1
|
||||
@ -1,16 +0,0 @@
|
||||
font=monospace:size=10
|
||||
pad=4x0
|
||||
[key-bindings]
|
||||
# scrollback-up-page=Shift+Page_Up Shift+KP_Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down Shift+KP_Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
clipboard-copy=Control+c XF86Copy
|
||||
clipboard-paste=Control+v XF86Paste
|
||||
|
||||
[text-bindings]
|
||||
\x03=Mod4+c
|
||||
@ -1,161 +0,0 @@
|
||||
-- Helper function for key mappings
|
||||
local function map(mode, lhs, rhs, opts)
|
||||
local options = { silent = true, noremap = true }
|
||||
|
||||
if opts then
|
||||
options = vim.tbl_extend("force", options, opts)
|
||||
end
|
||||
|
||||
if type(mode) == "table" then
|
||||
for _, m in ipairs(mode) do
|
||||
vim.keymap.set(m, lhs, rhs, options)
|
||||
end
|
||||
else
|
||||
vim.keymap.set(mode, lhs, rhs, options)
|
||||
end
|
||||
end
|
||||
|
||||
-- Mode-specific mapping functions
|
||||
local function nmap(lhs, rhs, opts) map("n", lhs, rhs, opts) end
|
||||
local function imap(lhs, rhs, opts) map("i", lhs, rhs, opts) end
|
||||
local function vmap(lhs, rhs, opts) map("v", lhs, rhs, opts) end
|
||||
local function tmap(lhs, rhs, opts) map("t", lhs, rhs, opts) end
|
||||
vim.opt.signcolumn = "no"
|
||||
|
||||
|
||||
-- Map Leader
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Use Nerd Font
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
-- Add vertical line
|
||||
-- vim.opt.colorcolumn = "100"
|
||||
|
||||
-- Enable TrueColor
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
-- Disable Neovim background
|
||||
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
|
||||
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
|
||||
|
||||
-- Scroll lines/columns
|
||||
vim.opt.mousescroll = "hor:1,ver:1"
|
||||
|
||||
-- Set indentation preferences
|
||||
vim.opt.expandtab = true -- Convert tabs to spaces
|
||||
vim.opt.shiftwidth = 2 -- Number of spaces for auto-indent
|
||||
vim.opt.tabstop = 2 -- Number of spaces a tab counts for
|
||||
vim.opt.softtabstop = 2 -- Number of spaces a tab counts for when editing
|
||||
vim.opt.autoindent = true -- Copy indent from current line when starting new line
|
||||
vim.opt.smartindent = true -- Do smart autoindenting when starting a new line
|
||||
|
||||
-- Disable line wrapping
|
||||
vim.opt.wrap = false
|
||||
|
||||
-- Enable break indent
|
||||
vim.opt.breakindent = true
|
||||
|
||||
-- Make line numbers default
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example
|
||||
vim.opt.mouse = "a"
|
||||
|
||||
-- Full path on status line
|
||||
vim.opt.statusline = "%F%m%r%h%w%=%l,%c %P"
|
||||
|
||||
-- Sync clipboard between OS and Neovim
|
||||
vim.schedule(function()
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
end)
|
||||
|
||||
-- Save undo history
|
||||
vim.opt.undofile = true
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
-- Decrease update time
|
||||
vim.opt.updatetime = 250
|
||||
|
||||
-- Decrease mapped sequence wait time
|
||||
-- Displays which-key popup sooner
|
||||
vim.opt.timeoutlen = 300
|
||||
|
||||
-- Configure how new splits should be opened
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
|
||||
-- Sets how neovim will display certain whitespace characters in the editor.
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" }
|
||||
|
||||
-- Preview substitutions live, as you type
|
||||
vim.opt.inccommand = "split"
|
||||
|
||||
-- Show which line your cursor is on
|
||||
vim.opt.cursorline = true
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor
|
||||
vim.opt.scrolloff = 10
|
||||
|
||||
-- Highlight when yanking (copying) text
|
||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Keymaps
|
||||
|
||||
nmap("<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })
|
||||
|
||||
imap("jk", "<Esc>", { desc = "Exit insert mode with jk" })
|
||||
nmap("<Esc>", "<cmd>nohlsearch<CR>", { desc = "Clear highlights" })
|
||||
|
||||
-- Prevent "x" from overriding the register
|
||||
nmap("x", '"_x')
|
||||
|
||||
-- Window Navigation
|
||||
nmap("<C-h>", "<C-w>h", { desc = "Move focus to the left window" })
|
||||
nmap("<C-l>", "<C-w>l", { desc = "Move focus to the right window" })
|
||||
nmap("<C-j>", "<C-w>j", { desc = "Move focus to the lower window" })
|
||||
nmap("<C-k>", "<C-w>k", { desc = "Move focus to the upper window" })
|
||||
|
||||
-- Tab management
|
||||
nmap("<Leader>tn", ":tabnew<CR>", { desc = "[T]ab [N]ew" })
|
||||
nmap("<Leader>tc", ":tabclose<CR>", { desc = "[T]ab [C]lose" })
|
||||
nmap("<Leader>to", ":tabonly<CR>", { desc = "[T]ab [O]nly" })
|
||||
nmap("<Leader>tl", ":tabnext<CR>", { desc = "[T]ab Next" })
|
||||
nmap("<Leader>th", ":tabprevious<CR>", { desc = "[T]ab Previous" })
|
||||
nmap("<Leader>tm.", ":tabmove +1<CR>", { desc = "[T]ab [M]ove Right" })
|
||||
nmap("<Leader>tm,", ":tabmove -1<CR>", { desc = "[T]ab [M]ove Left" })
|
||||
for i = 1, 9 do
|
||||
nmap(string.format("<Leader>%d", i), string.format("%dgt", i), { desc = string.format("[T]ab %d", i) })
|
||||
end
|
||||
|
||||
-- Buffer Management
|
||||
nmap("<Leader>bl", ":ls<CR>", { desc = "[B]uffer [L]ist" })
|
||||
nmap("<Leader>bd", ":bdelete<CR>", { desc = "[B]uffer [D]elete" })
|
||||
nmap("]b", ":bnext<CR>", { desc = "[B]uffer [N]ext" })
|
||||
nmap("[b", ":bprevious<CR>", { desc = "[B]uffer [P]revious" })
|
||||
nmap("<Leader>bb", ":b<Space>", { desc = "[B]uffer Select" })
|
||||
nmap("<Leader>bo", ":bufdo bd|1bd<CR>", { desc = "[B]uffer Delete Others" })
|
||||
|
||||
-- Terminal
|
||||
nmap("<Leader>tet", function()
|
||||
vim.cmd("terminal")
|
||||
vim.cmd("startinsert")
|
||||
end, { desc = "[T]erminal" })
|
||||
nmap("<leader>ter", function()
|
||||
local buf_dir = vim.fn.expand("%:p:h")
|
||||
vim.cmd("edit term://" .. buf_dir .. "//zsh")
|
||||
vim.cmd("startinsert")
|
||||
end, { desc = "[T]erminal [R]elative" })
|
||||
tmap("<Esc>", "<C-\\><C-n>", { desc = "Terminal Normal Mode" })
|
||||
tmap("jk", "<C-\\><C-n>", { desc = "Terminal Normal Mode" })
|
||||
tmap("<C-w>", "<C-\\><C-n><C-w>", { desc = "Terminal Window Command" })
|
||||
6
config/shared/nvim/lsp/json_ls.lua
Normal file
6
config/shared/nvim/lsp/json_ls.lua
Normal file
@ -0,0 +1,6 @@
|
||||
return {
|
||||
cmd = { 'vscode-json-language-server', '--stdio' },
|
||||
filetypes = { 'json', 'jsonc' },
|
||||
init_options = { provideFormatter = true },
|
||||
root_markers = { '.git' },
|
||||
}
|
||||
@ -10,7 +10,7 @@ import shutil
|
||||
DOTFILES_DIR = Path(__file__).parent
|
||||
SETUPS_DIR = DOTFILES_DIR / "setups"
|
||||
CONFIG_DIR = DOTFILES_DIR / "config"
|
||||
CONFIG_PATH = DOTFILES_DIR / "config.json"
|
||||
CONFIG_PATH = DOTFILES_DIR / "manifest.json"
|
||||
|
||||
def load_config():
|
||||
if not CONFIG_PATH.exists():
|
||||
|
||||
142
manifest.json
142
manifest.json
@ -1,23 +1,22 @@
|
||||
{
|
||||
"template": {
|
||||
"htop": {
|
||||
"link": {
|
||||
"from": "shared/htop",
|
||||
"to": "~/.config/htop"
|
||||
}
|
||||
},
|
||||
"bin": {
|
||||
"link": {
|
||||
"from": "shared/bin",
|
||||
"to": "~/bin"
|
||||
}
|
||||
},
|
||||
"nvim": {
|
||||
"htop": {
|
||||
"link": {
|
||||
"from": "shared/nvim",
|
||||
"to": "~/.config/nvim/init.lua"
|
||||
"from": "shared/htop",
|
||||
"to": "~/.config/htop"
|
||||
}
|
||||
},
|
||||
"post-link": "(grep -q 'alias vim=nvim' ~/.zshrc || echo 'alias vim=nvim' >> ~/.zshrc) || true"
|
||||
"git": {
|
||||
"link": {
|
||||
"from": "shared/git",
|
||||
"to": "~/.gitconfig"
|
||||
}
|
||||
},
|
||||
"zsh": {
|
||||
"link": {
|
||||
@ -31,51 +30,25 @@
|
||||
"to": "~/.tmux.conf"
|
||||
}
|
||||
},
|
||||
"git": {
|
||||
"nvim": {
|
||||
"link": {
|
||||
"from": "shared/git",
|
||||
"to": "~/.gitconfig"
|
||||
}
|
||||
},
|
||||
"wezterm": {
|
||||
"link": {
|
||||
"from": "shared/wezterm",
|
||||
"to": "~/.wezterm.lua"
|
||||
}
|
||||
},
|
||||
"alacritty": {
|
||||
"link": {
|
||||
"from": "shared/alacritty",
|
||||
"to": "~/.alacritty.toml"
|
||||
}
|
||||
},
|
||||
"ghostty": {
|
||||
"link": {
|
||||
"from": "shared/ghostty",
|
||||
"to": "~/.config/ghostty"
|
||||
"from": "shared/nvim",
|
||||
"to": "~/.config/nvim"
|
||||
}
|
||||
}
|
||||
},
|
||||
"environments": {
|
||||
"macos": [
|
||||
"git",
|
||||
"zsh",
|
||||
"tmux",
|
||||
"nvim",
|
||||
"bin",
|
||||
{
|
||||
"package": "bin",
|
||||
"link": {
|
||||
"from": "macos/bin",
|
||||
"to": "~/bin"
|
||||
}
|
||||
},
|
||||
"tmux",
|
||||
"nvim",
|
||||
"git",
|
||||
"ghostty",
|
||||
"alacritty",
|
||||
{
|
||||
"package": "karabiner",
|
||||
"link": {
|
||||
"from": "macos/karabiner",
|
||||
"to": "~/.config/karabiner"
|
||||
"to": "~/.local/bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -88,9 +61,46 @@
|
||||
{
|
||||
"package": "rectangle",
|
||||
"link-comment": "Needs manual import from config/macos/linearmouse"
|
||||
},
|
||||
{
|
||||
"package": "wezterm",
|
||||
"link": {
|
||||
"from": "macos/wezterm",
|
||||
"to": "~/.config/wezterm"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "alacritty",
|
||||
"link": {
|
||||
"from": "macos/alacritty",
|
||||
"to": "~/.config/alacritty"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "ghostty",
|
||||
"link": {
|
||||
"from": "macos/ghostty",
|
||||
"to": "~/.config/ghostty"
|
||||
}
|
||||
}
|
||||
],
|
||||
"linux-vm": [
|
||||
"bin",
|
||||
{
|
||||
"package": "bin",
|
||||
"link": {
|
||||
"from": "linux-vm/bin",
|
||||
"to": "~/.local/bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "htop",
|
||||
"install": "sudo apt install -y htop"
|
||||
},
|
||||
{
|
||||
"package": "git",
|
||||
"install": "sudo apt install -y git"
|
||||
},
|
||||
{
|
||||
"package": "zsh",
|
||||
"install": "sudo apt install -y zsh",
|
||||
@ -98,48 +108,42 @@
|
||||
},
|
||||
{
|
||||
"package": "tmux",
|
||||
"link": {
|
||||
"from": "linux-vm/tmux",
|
||||
"to": "~/.tmux.conf"
|
||||
},
|
||||
"install": "sudo apt install -y tmux"
|
||||
},
|
||||
{
|
||||
"package": "nvim",
|
||||
"install": "bash -c 'wget -O nvim.deb https://gitea.tomastm.com/tomas.mirchev/neovim/releases/download/v0.10.0/nvim-linux-$(dpkg --print-architecture).deb && sudo dpkg -i nvim.deb && rm nvim.deb'"
|
||||
},
|
||||
"post-install": "echo 'Neovim needs setup'"
|
||||
}
|
||||
],
|
||||
"container": [
|
||||
"bin",
|
||||
{
|
||||
"package": "git",
|
||||
"install": "sudo apt install -y git"
|
||||
"package": "bin",
|
||||
"link": {
|
||||
"from": "container/bin",
|
||||
"to": "~/.local/bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "htop",
|
||||
"install": "sudo apt install -y htop"
|
||||
},
|
||||
"bin"
|
||||
],
|
||||
"linux-dev": [
|
||||
{
|
||||
"package": "git",
|
||||
"install": "sudo apt install -y git"
|
||||
},
|
||||
{
|
||||
"package": "zsh",
|
||||
"install": "sudo apt install -y zsh",
|
||||
"post-link": "./scripts/linux-setup_zsh.sh"
|
||||
},
|
||||
{
|
||||
"package": "tmux",
|
||||
"install": "sudo apt install -y tmux"
|
||||
},
|
||||
{
|
||||
"package": "nvim",
|
||||
"ignore-template": true,
|
||||
"link": {
|
||||
"from": "linux-dev/nvim",
|
||||
"to": "~/.config/nvim"
|
||||
},
|
||||
"post-link": "nvim --headless '+Lazy! restore' +qa"
|
||||
},
|
||||
{
|
||||
"package": "git",
|
||||
"install": "sudo apt install -y git"
|
||||
},
|
||||
{
|
||||
"package": "htop",
|
||||
"install": "sudo apt install -y htop"
|
||||
"post-install": "echo 'Neovim needs setup'"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user