mirror of https://github.com/Hilbis/Hilbish
50 lines
1.2 KiB
Lua
50 lines
1.2 KiB
Lua
-- 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)
|