2021-03-05 21:38:35 +01:00
#include "fastfetch.h"
2021-04-15 18:59:26 +02:00
#define FF_WM_MODULE_NAME "WM"
2022-01-02 16:55:26 +01:00
#define FF_WM_NUM_FORMAT_ARGS 3
2021-04-28 19:53:30 +02:00
2021-04-03 23:10:14 +02:00
void ffPrintWM ( FFinstance * instance )
{
2022-01-10 14:41:34 +01:00
#ifdef __ANDROID__
ffPrintError ( instance , FF_WM_MODULE_NAME , 0 , & instance -> config . wmKey , & instance -> config . wmFormat , FF_WM_NUM_FORMAT_ARGS , "WM detection is not supported on Android" );
return ;
#endif
2022-01-02 16:55:26 +01:00
const FFDisplayServerResult * result = ffConnectDisplayServer ( instance );
2021-04-03 23:10:14 +02:00
2021-05-01 13:03:30 +02:00
if ( result -> wmPrettyName . length == 0 )
2021-04-16 20:22:38 +02:00
{
2021-05-01 13:03:30 +02:00
ffPrintError ( instance , FF_WM_MODULE_NAME , 0 , & instance -> config . wmKey , & instance -> config . wmFormat , FF_WM_NUM_FORMAT_ARGS , "No WM found" );
2021-04-16 20:22:38 +02:00
return ;
}
2021-04-03 23:10:14 +02:00
2021-04-03 21:51:50 +02:00
if ( instance -> config . wmFormat . length == 0 )
{
2022-01-02 16:55:26 +01:00
ffPrintLogoAndKey ( instance , FF_WM_MODULE_NAME , 0 , & instance -> config . wmKey );
2021-04-25 21:32:35 +02:00
2022-02-12 22:30:57 +01:00
ffStrbufWriteTo ( & result -> wmPrettyName , stdout );
if ( result -> wmProtocolName . length > 0 )
2021-04-25 21:32:35 +02:00
{
2022-02-12 22:30:57 +01:00
fputs ( " (" , stdout );
ffStrbufWriteTo ( & result -> wmProtocolName , stdout );
putchar ( ')' );
2021-04-25 21:32:35 +02:00
}
2022-02-12 22:30:57 +01:00
putchar ( '\n' );
2021-03-05 21:38:35 +01:00
}
else
{
2021-04-15 18:59:26 +02:00
ffPrintFormatString ( instance , FF_WM_MODULE_NAME , 0 , & instance -> config . wmKey , & instance -> config . wmFormat , NULL , FF_WM_NUM_FORMAT_ARGS , ( FFformatarg []){
2021-05-01 13:03:30 +02:00
{ FF_FORMAT_ARG_TYPE_STRBUF , & result -> wmProcessName },
{ FF_FORMAT_ARG_TYPE_STRBUF , & result -> wmPrettyName },
{ FF_FORMAT_ARG_TYPE_STRBUF , & result -> wmProtocolName }
2021-04-15 18:59:26 +02:00
});
2021-03-05 21:38:35 +01:00
}
2021-03-27 18:14:19 +01:00
}