-- Default Hilbish config local hilbish = require 'hilbish' local lunacolors = require 'lunacolors' local bait = require 'bait' local ansikit = require 'ansikit' local unreadCount = 0 local running = false local function doPrompt(fail) hilbish.prompt(lunacolors.format( '{blue}%u {cyan}%d ' .. (fail and '{red}' or '{green}') .. '∆ ' )) end local function doNotifyPrompt() if running or unreadCount == hilbish.messages.unreadCount() then return end local notifPrompt = string.format('• %s unread notification%s', hilbish.messages.unreadCount(), hilbish.messages.unreadCount() > 1 and 's' or '') unreadCount = hilbish.messages.unreadCount() hilbish.prompt(lunacolors.blue(notifPrompt), 'right') hilbish.timeout(function() hilbish.prompt('', 'right') end, 3000) end doPrompt() bait.catch('command.preexec', function() running = true end) bait.catch('command.exit', function(code) running = false doPrompt(code ~= 0) doNotifyPrompt() end) bait.catch('hilbish.vimMode', function(mode) if mode ~= 'insert' then ansikit.cursorStyle(ansikit.blockCursor) else ansikit.cursorStyle(ansikit.lineCursor) end end) bait.catch('hilbish.notification', function(notif) doNotifyPrompt() end)