feat(nvim): add LaTeX workflow; tweak Hyprland master; refresh CS autoexec; add GTK bookmark
Neovim (LaTeX): - Add TeX ftplugin: spell (en_US,de_DE), soft-wrap + linebreak, conceal=2, no hard wrap - Add plugins: vimtex (zathura; latexmk with LuaLaTeX + shell-escape), LTeX language server via astrolsp + ltex_extra (check on save; motherTongue=de-DE), blink.cmp integration (cmp-vimtex, cmp-latex-symbols → insert macros), LuaSnip LaTeX snippets, Treesitter “latex”, nabla.nvim (inline/popup math; <leader>mp/<leader>mv) Hyprland: - Set master.orientation=left; comment out center_master_* options Counter-Strike autoexec: - Rebind +lookatweapon → MOUSE5; map R → lastinv; radio on Y/U/I/H; J → +radialradio - Crosshair tweaks: size 2.5, gap -3, no outline, alpha off - Mouse: sensitivity 0.619; zoom_sensitivity_ratio 1.0 - Viewmodel: offset_x -2; cl_prefer_lefthanded 0 - Video/perf: gamma 1.6; set fps_max/fps_max_ui 0; drop legacy perf/network cvars (mat_queue_mode, cl_forcepreload, rate/interp*) - HUD cleanup: disable target ID; remove +cl_show_team_equipment GTK: - Add bookmark: Documents/ttrpg/dsa5
This commit is contained in:
39
.config/nvim/lua/plugins/blink-latex.lua
Normal file
39
.config/nvim/lua/plugins/blink-latex.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
return {
|
||||
-- Let blink.cmp consume nvim-cmp sources
|
||||
{ "saghen/blink.compat", version = "2.*", lazy = true, opts = {} },
|
||||
|
||||
-- Add vimtex + latex symbol sources to blink.cmp
|
||||
{
|
||||
"Saghen/blink.cmp",
|
||||
optional = true,
|
||||
dependencies = {
|
||||
"micangl/cmp-vimtex", -- environments, \cite, \ref, etc. via vimtex
|
||||
"kdheepak/cmp-latex-symbols", -- math symbols via LaTeX macros
|
||||
},
|
||||
opts = function(_, opts)
|
||||
opts.sources = opts.sources or {}
|
||||
opts.sources.providers = opts.sources.providers or {}
|
||||
opts.sources.default = opts.sources.default or { "lsp", "path", "snippets", "buffer" }
|
||||
|
||||
-- Only turn on the LaTeX sources for TeX filetypes
|
||||
opts.sources.per_filetype = vim.tbl_deep_extend("force", opts.sources.per_filetype or {}, {
|
||||
tex = { inherit_defaults = true, "vimtex", "latex_symbols" },
|
||||
plaintex = { inherit_defaults = true, "vimtex", "latex_symbols" },
|
||||
})
|
||||
|
||||
-- Expose nvim-cmp sources to blink via blink.compat
|
||||
opts.sources.providers.vimtex = {
|
||||
name = "vimtex",
|
||||
module = "blink.compat.source",
|
||||
}
|
||||
opts.sources.providers.latex_symbols = {
|
||||
name = "latex_symbols",
|
||||
module = "blink.compat.source",
|
||||
-- Insert LaTeX commands (e.g. \alpha) instead of Unicode characters:
|
||||
opts = { strategy = 2 }, -- documented in cmp-latex-symbols README
|
||||
score_offset = -2, -- keep it below LSP/snippets in relevance
|
||||
}
|
||||
return opts
|
||||
end,
|
||||
},
|
||||
}
|
||||
17
.config/nvim/lua/plugins/latex-snippets.lua
Normal file
17
.config/nvim/lua/plugins/latex-snippets.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
-- Gilles Castel-style LaTeX snippets for LuaSnip
|
||||
return {
|
||||
-- Make sure autosnippets are enabled globally
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
opts = function(_, _) require("luasnip").config.setup { enable_autosnippets = true } end,
|
||||
},
|
||||
|
||||
-- The LaTeX snippets themselves
|
||||
{
|
||||
"iurimateus/luasnip-latex-snippets.nvim",
|
||||
ft = { "tex", "plaintex", "markdown" },
|
||||
dependencies = { "L3MON4D3/LuaSnip", "lervag/vimtex" },
|
||||
opts = { use_treesitter = false, allow_on_markdown = true }, -- use vimtex to detect math mode
|
||||
config = function(_, opts) require("luasnip-latex-snippets").setup(opts) end,
|
||||
},
|
||||
}
|
||||
54
.config/nvim/lua/plugins/ltex.lua
Normal file
54
.config/nvim/lua/plugins/ltex.lua
Normal file
@@ -0,0 +1,54 @@
|
||||
-- Grammar & spell checking for LaTeX/Markdown via LanguageTool (LTeX-LS)
|
||||
return {
|
||||
-- Tell AstroLSP to manage the ltex server and pass our settings
|
||||
{
|
||||
"AstroNvim/astrolsp",
|
||||
---@param opts AstroLSPOpts
|
||||
opts = function(_, opts)
|
||||
opts.servers = opts.servers or {}
|
||||
if not vim.tbl_contains(opts.servers, "ltex") then table.insert(opts.servers, "ltex") end
|
||||
|
||||
-- Extend the ltex server configuration
|
||||
opts.config = require("astrocore").extend_tbl(opts.config or {}, {
|
||||
ltex = {
|
||||
filetypes = { "tex", "plaintex", "bib", "markdown" },
|
||||
settings = {
|
||||
ltex = {
|
||||
-- Run checks on save for performance; switch to "edit" if you prefer live feedback
|
||||
checkFrequency = "save",
|
||||
-- Pick the language you want LTeX to check as the document language
|
||||
language = "en-US",
|
||||
-- Mother tongue helps the grammar engine (adjust to your preference)
|
||||
additionalRules = { motherTongue = "de-DE" },
|
||||
-- Let ltex_extra manage dictionaries/rules on disk
|
||||
dictionary = {},
|
||||
disabledRules = {},
|
||||
hiddenFalsePositives = {},
|
||||
},
|
||||
},
|
||||
-- hook up ltex_extra when the server attaches
|
||||
on_attach = function(client, bufnr)
|
||||
local ok, ltex_extra = pcall(require, "ltex_extra")
|
||||
if ok then
|
||||
ltex_extra.setup {
|
||||
-- load both EN+DE dictionaries; change to your set
|
||||
load_langs = { "en-US", "de-DE" },
|
||||
init_check = true,
|
||||
-- store per-project files in .ltex (add to .gitignore if you want)
|
||||
path = ".ltex",
|
||||
log_level = "none",
|
||||
}
|
||||
end
|
||||
end,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- Companion plugin: add-to-dictionary / disable-rule / hide-false-positive
|
||||
{
|
||||
"barreiroleo/ltex_extra.nvim",
|
||||
ft = { "tex", "plaintex", "markdown" },
|
||||
lazy = true,
|
||||
},
|
||||
}
|
||||
19
.config/nvim/lua/plugins/nabla.lua
Normal file
19
.config/nvim/lua/plugins/nabla.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
-- Lightweight inline ASCII preview for LaTeX math
|
||||
return {
|
||||
"jbyuki/nabla.nvim",
|
||||
ft = { "tex", "plaintex", "markdown" },
|
||||
keys = {
|
||||
-- Popup preview for the expression under cursor
|
||||
{ "<leader>mp", function() require("nabla").popup() end, desc = "Math: popup preview" },
|
||||
|
||||
-- Toggle inline virtual rendering; re-enable wrap after toggle (nabla toggles it off)
|
||||
{
|
||||
"<leader>mv",
|
||||
function()
|
||||
require("nabla").toggle_virt { autogen = true }
|
||||
vim.wo.wrap = true
|
||||
end,
|
||||
desc = "Math: toggle inline preview",
|
||||
},
|
||||
},
|
||||
}
|
||||
10
.config/nvim/lua/plugins/treesitter-latex.lua
Normal file
10
.config/nvim/lua/plugins/treesitter-latex.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
-- Ensure Treesitter knows about LaTeX (nabla benefits, and some plugins use it)
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
opts.ensure_installed = opts.ensure_installed or {}
|
||||
if type(opts.ensure_installed) == "table" then
|
||||
if not vim.tbl_contains(opts.ensure_installed, "latex") then table.insert(opts.ensure_installed, "latex") end
|
||||
end
|
||||
end,
|
||||
}
|
||||
24
.config/nvim/lua/plugins/vimtex.lua
Normal file
24
.config/nvim/lua/plugins/vimtex.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return {
|
||||
"lervag/vimtex",
|
||||
lazy = false, -- load immediately (recommended by astrocommunity)
|
||||
init = function()
|
||||
-- Viewer
|
||||
vim.g.vimtex_view_method = "zathura"
|
||||
|
||||
-- Compiler: latexmk + LuaLaTeX
|
||||
vim.g.vimtex_compiler_method = "latexmk"
|
||||
-- Option A: pass -lualatex explicitly to latexmk
|
||||
vim.g.vimtex_compiler_latexmk = {
|
||||
options = {
|
||||
"-lualatex",
|
||||
"-synctex=1",
|
||||
"-interaction=nonstopmode",
|
||||
"-file-line-error",
|
||||
-- remove if you don't need shell-escape:
|
||||
"-shell-escape",
|
||||
},
|
||||
}
|
||||
-- Option B (also helpful): make LuaLaTeX the default engine for latexmk
|
||||
vim.g.vimtex_compiler_latexmk_engines = { _ = "-lualatex" }
|
||||
end,
|
||||
}
|
||||
Reference in New Issue
Block a user