diff --git a/lvim/lua/configs/noice.lua b/lvim/lua/configs/noice.lua index 0e6fbeb..805861f 100644 --- a/lvim/lua/configs/noice.lua +++ b/lvim/lua/configs/noice.lua @@ -1,4 +1,36 @@ +local focused = true + +vim.api.nvim_create_autocmd("FocusGained", { + callback = function() + focused = true + end, +}) +vim.api.nvim_create_autocmd("FocusLost", { + callback = function() + focused = false + end, +}) + + require("noice").setup({ + table.insert(opts.routes, { + filter = { + event = "notify", + find = "No information available", + }, + opts = { skip = true }, + }), + + table.insert(opts.routes, 1, { + filter = { + cond = function() + return not focused + end, + }, + view = "notify_send", + opts = { stop = false }, + }), + lsp = { -- override markdown rendering so that **cmp** and other plugins use **Treesitter** override = { diff --git a/lvim/lua/configs/notify.lua b/lvim/lua/configs/notify.lua new file mode 100644 index 0000000..399ea8f --- /dev/null +++ b/lvim/lua/configs/notify.lua @@ -0,0 +1,40 @@ +local BUILTIN_STAGES = { + FADE = "fade", + SLIDE = "slide", + FADE_IN_SLIDE_OUT = "fade_in_slide_out", + STATIC = "static", +} + +require("notify").setup({ + level = vim.log.levels.TRACE, + timeout = 5000, + max_height = function() + return math.floor(vim.o.lines * 0.75) + end, + max_width = function() + return math.floor(vim.o.columns * 0.75) + end, + on_open = function(win) + vim.api.nvim_win_set_config(win, { zindex = 100 }) + end, + stages = BUILTIN_STAGES.SLIDE, + render = "default", + background_colour = "NotifyBackground", + on_close = function () end, + minimum_width = 50, + fps = 10, + top_down = true, + time_formats = { + notification_history = "%FT%T", + notification = "%T", + }, + icons = { + ERROR = " ", + WARN = "", + INFO = "", + DEBUG = " ", + TRACE = "✎ ", + }, +}) + +require("notify")("You're welcome!")