Files
nixos/home/.config/nvim/init.lua

157 lines
5.6 KiB
Lua

local vim = vim
local host = vim.loop.os_gethostname()
require("options") -- /etc/nixos/home/.config/nvim/lua/options.lua
require("plugins") -- /etc/nixos/home/.config/nvim/lua/plugins.lua
require("utils.t3_functions") -- /etc/nixos/home/.config/nvim/lua/utils/t3_functions.lua
require("utils.t3_overrides") -- /etc/nixos/home/.config/nvim/lua/utils/t3_overrides.lua
require("utils.reload") -- /etc/nixos/home/.config/nvim/lua/utils/reload.lua
require("vimwiki") -- /etc/nixos/home/.config/nvim/lua/vimwiki.lua
require("keymaps") -- /etc/nixos/home/.config/nvim/lua/keymaps.lua
require("lsp") -- /etc/nixos/home/.config/nvim/lua/lsp.lua
require("completion") -- /etc/nixos/home/.config/nvim/lua/completion.lua
require("treesitter") -- /etc/nixos/home/.config/nvim/lua/treesitter.lua
require("autocmds") -- /etc/nixos/home/.config/nvim/lua/autocmds.lua
require("diagnostics") -- /etc/nixos/home/.config/nvim/lua/diagnostics.lua
require('telescope_configuration') -- /etc/nixos/home/.config/nvim/lua/telescope_configuration.lua
if host == "xps13" then
require('tokyonight').setup({
style = "moon", -- "storm", "moon", "day", "night"
transparent = true, -- Enable transparent background
terminal_colors = true, -- Enable terminal colors
styles = {
comments = { italic = true }, -- Italic comments
keywords = { italic = true }, -- Italic keywords
functions = { bold = true }, -- Bold functions
variables = {}, -- No special style for variables
sidebars = "dark", -- Dark sidebars
floats = "dark", -- Dark floating windows
},
})
elseif host == "Titan" then
require('tokyonight').setup({
style = "storm", -- "storm", "moon", "day", "night"
transparent = false, -- Enable transparent background
terminal_colors = true, -- Enable terminal colors
styles = {
comments = { italic = true }, -- Italic comments
keywords = { italic = true }, -- Italic keywords
functions = { bold = true }, -- Bold functions
variables = {}, -- No special style for variables
sidebars = "dark", -- Dark sidebars
floats = "dark", -- Dark floating windows
},
})
end
local function is_linux_console()
return vim.env.TERM == "linux"
end
local function want_truecolor()
if is_linux_console() then return false end
return vim.fn.has("termguicolors") == 1
or ((vim.env.COLORTERM or ""):lower():find("truecolor") ~= nil)
end
local function set_colorscheme()
if want_truecolor() then
vim.o.termguicolors = true
if not pcall(vim.cmd.colorscheme, "tokyonight") then
pcall(vim.cmd.colorscheme, "habamax")
end
else
vim.o.termguicolors = false
if not pcall(vim.cmd.colorscheme, "industry") then
pcall(vim.cmd.colorscheme, "default")
end
end
end
vim.api.nvim_create_autocmd("VimEnter", {
callback = function()
set_colorscheme()
local tty = is_linux_console()
-- LUALINE: no icons, simple separators, TTY theme
pcall(function()
local ok, lualine = pcall(require, "lualine")
if not ok then return end
if tty then
lualine.setup({
options = {
theme = "16color", -- built-in, safe for TTY
icons_enabled = false,
component_separators = "",
section_separators = "",
globalstatus = true,
},
sections = {
lualine_a = { "mode" },
lualine_b = { "branch" },
lualine_c = { { "filename", file_status = true, path = 1 } },
lualine_x = { "encoding", "fileformat", "filetype" },
lualine_y = { "progress" },
lualine_z = { "location" },
},
})
else
lualine.setup({
options = {
theme = "tokyonight",
icons_enabled = true,
globalstatus = true,
},
})
end
end)
-- BARBAR: kill icons in TTY, simplify separators
pcall(function()
vim.g.barbar_auto_setup = false
local ok, barbar = pcall(require, "barbar")
if not ok then return end
if tty then
barbar.setup({
animation = false,
auto_hide = false,
sidebar_filetypes = { NvimTree = true, undotree = { text = "Undotree" } },
icons = {
-- aggressively disable anything icon-like
buffer_index = false,
buffer_number = false,
button = "", -- close button
diagnostics = {
[vim.diagnostic.severity.ERROR] = { enabled = false },
[vim.diagnostic.severity.WARN] = { enabled = false },
[vim.diagnostic.severity.INFO] = { enabled = false },
[vim.diagnostic.severity.HINT] = { enabled = false },
},
gitsigns = { added = {enabled=false}, changed = {enabled=false}, deleted = {enabled=false} },
filetype = { enabled = false },
pinned = { button = "", filename = true },
modified = { button = "*" }, -- simple ASCII marker
separator = { left = "|", right = "|" },
inactive = { separator = { left = "", right = "" } },
},
})
else
barbar.setup({}) -- your normal config, or keep defaults
end
end)
-- If you use web-devicons, disable it in TTY to avoid glyphs
if is_linux_console() then
-- If using lazy.nvim, better to conditionally load the plugin (see spec below).
if package.loaded["nvim-web-devicons"] then
local ok, devicons = pcall(require, "nvim-web-devicons")
if ok and devicons.has_loaded() then
-- there's no runtime "disable", but not using it in barbar/lualine is enough.
end
end
end
end,
})