Files
dotfiles/config/nvim/lua/plugins/ui.lua
2025-11-11 14:02:07 +02:00

229 lines
7.0 KiB
Lua

return {
{
'catppuccin/nvim',
name = 'catppuccin',
priority = 1000,
config = function()
require('catppuccin').setup {
flavour = 'auto', -- latte, frappe, macchiato, mocha
background = { -- :h background
light = 'latte',
dark = 'mocha',
},
transparent_background = false,
float = {
transparent = true, -- enable transparent floating windows
solid = false, -- use solid styling for floating windows, see |winborder|
},
show_end_of_buffer = false, -- shows the '~' characters after the end of buffers
term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`)
dim_inactive = {
enabled = true, -- dims the background color of inactive window
shade = 'dark',
percentage = 0.15, -- percentage of the shade to apply to the inactive window
},
no_italic = false, -- Force no italic
no_bold = false, -- Force no bold
no_underline = false, -- Force no underline
styles = { -- Handles the styles of general hi groups (see `:h highlight-args`):
comments = { 'italic' }, -- Change the style of comments
conditionals = { 'italic' },
loops = {},
functions = {},
keywords = {},
strings = {},
variables = {},
numbers = {},
booleans = {},
properties = {},
types = {},
operators = {},
-- miscs = {}, -- Uncomment to turn off hard-coded styles
},
lsp_styles = { -- Handles the style of specific lsp hl groups (see `:h lsp-highlight`).
virtual_text = {
errors = { 'italic' },
hints = { 'italic' },
warnings = { 'italic' },
information = { 'italic' },
ok = { 'italic' },
},
underlines = {
errors = { 'underline' },
hints = { 'underline' },
warnings = { 'underline' },
information = { 'underline' },
ok = { 'underline' },
},
inlay_hints = {
background = true,
},
},
color_overrides = {},
custom_highlights = {},
default_integrations = true,
auto_integrations = false,
integrations = {
cmp = true,
gitsigns = true,
nvimtree = true,
notify = false,
mini = {
enabled = true,
indentscope_color = '',
},
-- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations)
},
}
-- setup must be called before loading
vim.cmd.colorscheme 'catppuccin'
end,
},
-- {
-- 'neanias/everforest-nvim',
-- version = false,
-- lazy = false,
-- priority = 1000, -- make sure to load this before all the other start plugins
-- config = function()
-- require('everforest').setup {
-- background = 'medium', -- hard, medium, soft
-- transparent_background_level = 2, -- 0, 1, 2
-- sign_column_background = 'grey', -- none, grey
-- disable_italic_comments = false,
-- diagnostic_virtual_text = 'coloured', -- coloured, gray, underline, none
-- diagnostic_line_highlight = true,
-- diagnostic_line_highlight_background = 'dimmed', -- dimmed, normal
-- diagnostic_text_highlight = true,
-- ui_contrast = 'low', -- high, low
-- italics = true,
-- spell_foreground = true,
-- show_eob = true,
-- colours_override = function() end,
-- float_style = 'dim',
-- on_highlights = function(_, _) end,
-- dim_inactive_windows = true,
-- inlay_hints_background = 'dimmed',
-- }
-- end,
-- },
-- Automatic dark mode
-- https://github.com/f-person/auto-dark-mode.nvim
{
'f-person/auto-dark-mode.nvim',
opts = {
update_interval = 1000,
set_dark_mode = function()
vim.api.nvim_set_option_value('background', 'dark', {})
-- vim.cmd.colorscheme(vim.g.colors_variant_dark)
-- vim.cmd 'colorscheme rose-pine'
end,
set_light_mode = function()
vim.api.nvim_set_option_value('background', 'light', {})
-- vim.cmd.colorscheme(vim.g.colors_variant_light)
-- vim.cmd 'colorscheme rose-pine-dawn'
end,
},
},
-- The fastest Neovim colorizer
-- https://github.com/catgoose/nvim-colorizer.lua
{
'catgoose/nvim-colorizer.lua',
event = 'BufReadPre',
opts = {
user_default_options = {
names = false,
},
},
},
-- Remove all background colors to make nvim transparent
-- https://github.com/xiyaowong/nvim-transparent
-- {
-- 'xiyaowong/nvim-transparent',
-- lazy = false,
-- enabled = true,
-- config = function()
-- local t = require 'transparent'
-- t.setup {
-- extra_groups = {
-- 'NormalNC',
-- 'NormalFloat',
-- 'EndOfBuffer',
-- 'FloatTitle',
-- 'FloatBorder',
-- 'NotifyDEBUGBorder',
-- 'NotifyERRORBorder',
-- 'NotifyINFOBorder',
-- 'NotifyINFOBorder73',
-- 'NotifyINFOBorder75',
-- 'NotifyINFOBorder101',
-- 'NotifyTRACEBorder',
-- 'NotifyWARNBorder',
-- 'NotifyBackground',
-- 'TelescopeBorder',
-- 'TelescopePromptBorder',
-- 'TelescopeResultsBorder',
-- 'TelescopePreviewBorder',
-- },
-- }
-- t.clear_prefix 'NeoTree'
-- end,
-- },
-- Display a character as the colorcolumn
-- https://github.com/lukas-reineke/virt-column.nvim
{ 'lukas-reineke/virt-column.nvim', opts = {} },
-- Neovim plugin for locking a buffer to a window
-- https://github.com/stevearc/stickybuf.nvim
{ 'stevearc/stickybuf.nvim', opts = {} },
-- Break bad habits, master Vim motions
-- https://github.com/m4xshen/hardtime.nvim
{
'm4xshen/hardtime.nvim',
lazy = false,
dependencies = { 'MunifTanjim/nui.nvim' },
opts = {
restriction_mode = 'hint',
disabled_keys = {
['<Up>'] = { '', 'n' },
['<Down>'] = { '', 'n' },
['<Left>'] = { '', 'n' },
['<Right>'] = { '', 'n' },
['<C-Up>'] = { '', 'n' },
['<C-Down>'] = { '', 'n' },
['<C-Left>'] = { '', 'n' },
['<C-Right>'] = { '', 'n' },
},
disabled_filetypes = {
'TelescopePrompt',
'Trouble',
'lazy',
'mason',
'help',
'notify',
'dashboard',
'alpha',
},
hints = {
['[dcyvV][ia][%(%)]'] = {
message = function(keys)
return 'Use ' .. keys:sub(1, 2) .. 'b instead of ' .. keys
end,
length = 3,
},
['[dcyvV][ia][%{%}]'] = {
message = function(keys)
return 'Use ' .. keys:sub(1, 2) .. 'B instead of ' .. keys
end,
length = 3,
},
},
},
},
}