Logo: add kitty-direct protocol

This commit is contained in:
李通洲
2023-07-18 21:09:37 +08:00
parent 1dc0ee183c
commit f1ebcd7c31
5 changed files with 21 additions and 9 deletions
+7 -9
View File
@@ -68,9 +68,14 @@ static bool printImageIterm(void)
static bool printImageKittyDirect(void)
{
if (!instance.config.logo.width || !instance.config.logo.height)
{
fputs("Logo: `kitty-direct` protocol only works when both `--logo-width` and `--logo-height` being specified\n", stderr);
return false;
}
ffPrintCharTimes(' ', instance.config.logo.paddingLeft);
ffPrintCharTimes('\n', instance.config.logo.paddingTop);
FFstrbuf base64 = base64Encode(&instance.config.logo.source);
FF_STRBUF_AUTO_DESTROY base64 = base64Encode(&instance.config.logo.source);
printf("\033_Ga=T,f=100,t=f,c=%u,r=%u,C=1;%s\033\\\033[9999999D",
(unsigned) instance.config.logo.width,
(unsigned) instance.config.logo.height,
@@ -80,8 +85,6 @@ static bool printImageKittyDirect(void)
instance.state.logoWidth = instance.config.logo.width + instance.config.logo.paddingLeft + instance.config.logo.paddingRight;
instance.state.logoHeight = instance.config.logo.paddingTop + instance.config.logo.height;
ffStrbufDestroy(&base64);
return true;
}
@@ -741,12 +744,7 @@ bool ffLogoPrintImageIfExists(FFLogoType type, bool printError)
if(type == FF_LOGO_TYPE_IMAGE_ITERM)
return printImageIterm();
if(
type == FF_LOGO_TYPE_IMAGE_KITTY &&
ffStrbufEndsWithIgnCaseS(&instance.config.logo.source, ".png") &&
instance.config.logo.width &&
instance.config.logo.height
)
if(type == FF_LOGO_TYPE_IMAGE_KITTY_DIRECT)
return printImageKittyDirect();
#if !defined(FF_HAVE_CHAFA)