Logo: add Windows 95; refactor code

From https://github.com/dylanaraps/neofetch/pull/2346/files
This commit is contained in:
李通洲 2023-07-28 14:12:48 +08:00
parent 340f2b2374
commit 124a49098e
No known key found for this signature in database
GPG Key ID: 269AD4F5325A22A3
9 changed files with 112 additions and 33 deletions

View File

@ -45,6 +45,7 @@ Logo:
* Change the special handling of `kitty` protocol with `.png` image file to a new image protocol `kitty-direct`. This is the fastest image protocol because fastfetch doesn't need to pre-encode the image to base64 or something and the image content doesn't need to be transmitted via tty. Note:
1. Although konsole was said to support `kitty` image protocol, it doesn't support `kitty-direct`
2. wezterm support more image formats other than `.png` (tested with `.jpg` and `.webp`)
* Add `Windows 95`
# 1.12.2

View File

@ -233,11 +233,34 @@ fastfetch_load_text(src/data/help_color.txt DATATEXT_HELP_COLOR)
fastfetch_load_text(src/data/help_format.txt DATATEXT_HELP_FORMAT)
fastfetch_load_text(src/data/help_config.txt DATATEXT_HELP_CONFIG)
######################
# Configure config.h #
######################
configure_file(src/fastfetch_config.h.in fastfetch_config.h @ONLY)
configure_file(src/fastfetch_datatext.h.in fastfetch_datatext.h @ONLY)
configure_file(src/fastfetch_config.h.in fastfetch_config.h)
####################
# Ascii image data #
####################
function(fastfetch_load_raw_text FILENAME OUTVAR)
file(READ "${FILENAME}" TEMP)
string(REGEX REPLACE "\n$" "" TEMP "${TEMP}") # Remove trailing newline
string(JSON TEMP SET "{}" "${TEMP}" "0") # Encode raw strings using JSON_SET
string(REGEX REPLACE "^\\{[ \t\r\n]*" "" TEMP "${TEMP}") # Remove JSON braces
string(REGEX REPLACE "[ \t\r\n]*:[ \t\r\n]*0[ \t\r\n]*\\}$" "" TEMP "${TEMP}") # Remove trailing ` : 0 }`
if(NOT "${TEMP}" MATCHES "^\"[^\n]*\"")
message(FATAL_ERROR "Internal error: unexpected output: '${TEMP}'")
endif()
set(${OUTVAR} "${TEMP}" PARENT_SCOPE)
endfunction(fastfetch_load_raw_text)
file(GLOB LOGO_FILES "src/logo/ascii/*.txt")
foreach(file ${LOGO_FILES})
fastfetch_load_raw_text("${file}" content)
get_filename_component(file "${file}" NAME_WLE)
string(TOUPPER "${file}" file)
string(REGEX REPLACE "\\$\\{c([0-9]+)\\}" "$\\1" DATATEXT_LOGO_${file} "${content}")
endforeach()
configure_file(src/logo/builtin.h.in src_logo_builtin.h @ONLY)
#######################
# libfastfetch target #

View File

@ -96,7 +96,7 @@ Battery, Bios, Bluetooth, Board, Break, Brightness, Colors, Command, CPU, CPUUsa
##### Builtin logos
```
AlmaLinux, Alpine, Android, Arch, Arco, Artix, Bedrock, BSD, CachyOS, CentOS, CRUX, Crystal, Debian, Deepin, Devuan, Endeavour, Enso, Exherbo, Fedora, FreeBSD, Garuda, Gentoo, GhostBSD, KDE Neon, KISS, Kubuntu, LangitKetujuh, Linux, MacOS, Manjaro, Mint, MSYS2, NixOS, Nobara, OpenSUSE, OpenSUSE LEAP, OpenSUSE Tumbleweed, Parabola, Pop!_OS, Raspbian, RebornOS, RedstarOS, Rocky, Rosa, Slackware, Solus, SteamOS, Ubuntu, Vanilla, Void, Windows, Windows 11, Windows 8, Zorin
AlmaLinux, Alpine, Android, Arch, Arco, Artix, Bedrock, BSD, CachyOS, CentOS, CRUX, Crystal, Debian, Deepin, Devuan, Endeavour, Enso, Exherbo, Fedora, FreeBSD, Garuda, Gentoo, GhostBSD, KDE Neon, KISS, Kubuntu, LangitKetujuh, Linux, MacOS, Manjaro, Mint, MSYS2, NixOS, Nobara, OpenSUSE, OpenSUSE LEAP, OpenSUSE Tumbleweed, Parabola, Pop!_OS, Raspbian, RebornOS, RedstarOS, Rocky, Rosa, Slackware, Solus, SteamOS, Ubuntu, Vanilla, Void, Windows, Windows 11, Windows 8, Windows 95, Zorin
```
##### Package managers

View File

@ -6,6 +6,7 @@
#include "common/jsonconfig.h"
#include "util/stringUtils.h"
#include "logo/logo.h"
#include "fastfetch_datatext.h"
#include <stdlib.h>
#include <ctype.h>

View File

@ -1,3 +1,5 @@
#pragma once
#ifndef FASTFETCH_INDLUDED_fastfetch_config_h_in
#define FASTFETCH_INDLUDED_fastfetch_config_h_in
@ -19,13 +21,4 @@
#define FASTFETCH_TARGET_DIR_INSTALL_SYSCONF "@CMAKE_INSTALL_SYSCONFDIR@"
#define FASTFETCH_DATATEXT_STRUCTURE "@DATATEXT_STRUCTURE@"
#define FASTFETCH_DATATEXT_CONFIG_SYSTEM "@DATATEXT_CONFIG_SYSTEM@"
#define FASTFETCH_DATATEXT_CONFIG_USER "@DATATEXT_CONFIG_USER@" //Requires FASTFETCH_PROJECT_VERSION and FASTFETCH_DATATEXT_STRUCTURE to be set
#define FASTFETCH_DATATEXT_MODULES "@DATATEXT_MODULES@"
#define FASTFETCH_DATATEXT_HELP "@DATATEXT_HELP@"
#define FASTFETCH_DATATEXT_HELP_COLOR "@DATATEXT_HELP_COLOR@"
#define FASTFETCH_DATATEXT_HELP_FORMAT "@DATATEXT_HELP_FORMAT@"
#define FASTFETCH_DATATEXT_HELP_CONFIG "@DATATEXT_HELP_CONFIG@"
#endif // FASTFETCH_INDLUDED_fastfetch_config_h_in

View File

@ -0,0 +1,15 @@
#pragma once
#ifndef FASTFETCH_INDLUDED_fastfetch_datatext_h_in
#define FASTFETCH_INDLUDED_fastfetch_datatext_h_in
#define FASTFETCH_DATATEXT_STRUCTURE "@DATATEXT_STRUCTURE@"
#define FASTFETCH_DATATEXT_CONFIG_SYSTEM "@DATATEXT_CONFIG_SYSTEM@"
#define FASTFETCH_DATATEXT_CONFIG_USER "@DATATEXT_CONFIG_USER@" //Requires FASTFETCH_PROJECT_VERSION and FASTFETCH_DATATEXT_STRUCTURE to be set
#define FASTFETCH_DATATEXT_MODULES "@DATATEXT_MODULES@"
#define FASTFETCH_DATATEXT_HELP "@DATATEXT_HELP@"
#define FASTFETCH_DATATEXT_HELP_COLOR "@DATATEXT_HELP_COLOR@"
#define FASTFETCH_DATATEXT_HELP_FORMAT "@DATATEXT_HELP_FORMAT@"
#define FASTFETCH_DATATEXT_HELP_CONFIG "@DATATEXT_HELP_CONFIG@"
#endif

View File

@ -0,0 +1,18 @@
${c6} ___
.--=+++++=-:.
. _ *%@@@@@@@@@@@@@@*
*:+:.__ :+* @@@ @"${c5}_*&%${c6}@@${c4}%&&&*${c6}"@@@
"+.-#+ +%* " _ ${c5}++&&&%${c6}@@${c4}%&&&&&#${c6}@@
${c5}" , ${c6}%@@ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@
${c5} * oo *# ${c6}" _ ${c5}&&&&&%${c6}@@${c4}%&&&&&#${c6}@@
${c5}" , ${c6}%@@ ${c5}&&&&"${c6}@@@@#*${c4}"&&&${c6}@@
.${c5} * oo *# ${c6}" _ %@@@@@@@@@@@@@@@@
*:+:.__ :=* %@@ @"${c1}**&%${c6}@@${c3}%&&&*${c6}"@@@
"+.-#+ +%* " _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
${c1}" , ${c6}%@@ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
${c1} * oo *# ${c6}" _ ${c1}&&&&&%${c6}@@${c3}%&&&&&#${c6}@@
${c1}" , ${c6}%@@ ${c1}&&*"${c6}%@@@@@@${c3}"*%&${c6}@@
.${c1} * oo *# ${c6}" _ @@@@@@@@@@@@@@@@@
*:+:.__ :+# @@@ @%#=+""""""+==%#@
"+.-#+ +%* %+" " ":@
" "

View File

@ -1,4 +1,5 @@
#include "logo.h"
#include "src_logo_builtin.h" // Generated with `src/logo/builtin.h`
#define FF_LOGO_INIT static FFlogo logo; static bool init = false; if(init) return &logo; init = true;
// The names of small logo must end with `_small` or `-small`
@ -335,25 +336,25 @@ static const FFlogo* getLogoBSD(void)
FF_LOGO_INIT
FF_LOGO_NAMES("bsd")
FF_LOGO_LINES(
"$1 , ,\n"
" /( )`\n"
" \\ \\___ / |\n"
" /- _ `-/ '\n"
" ($2/\\/ \\ $1\\ /\\\n"
" $2/ / | ` $1\\\n"
" $3O O $2) $1/ |\n"
" $2`-^--'$1`< '\n"
" (_.) _ ) /\n"
" `.___/` /\n"
" `-----' /\n"
"$4<----. __ / __ \\\n"
"$4<----|====$1O)))$4==$1) \\) /$4====|\n"
"<----' $1`--' `.__,' \\\n"
" | |\n"
" \\ / /\\\n"
" $5______$1( (_ / \\______/\n"
" $5,' ,-----' |\n"
" `--{__________)\n"
"$1 , ,\n"
" /( )`\n"
" \\ \\___ / |\n"
" /- _ `-/ '\n"
" ($2/\\/ \\ $1\\ /\\\n"
" $2/ / | ` $1\\\n"
" $3O O $2) $1/ |\n"
" $2`-^--'$1`< '\n"
" (_.) _ ) /\n"
" `.___/` /\n"
" `-----' /\n"
"$4<----. __ / __ \\\n"
"$4<----|====$1O)))$4==$1) \\) /$4====|\n"
"<----' $1`--' `.__,' \\\n"
" | |\n"
" \\ / /\\\n"
" $5______$1( (_ / \\______/\n"
" $5,' ,-----' |\n"
" `--{__________)\n"
)
FF_LOGO_COLORS(
"31",
@ -1724,6 +1725,24 @@ static const FFlogo* getLogoWindows(void)
FF_LOGO_RETURN
}
static const FFlogo* getLogoWindows95(void)
{
FF_LOGO_INIT
FF_LOGO_NAMES("Windows 9x", "Windows 95")
FF_LOGO_LINES(FASTFETCH_DATATEXT_LOGO_WINDOWS95)
FF_LOGO_COLORS(
"36", //cyan
"34", //blue
"33", //yellow
"32", //green
"31",
"30"
)
FF_LOGO_COLOR_KEYS("36"); //cyan
FF_LOGO_COLOR_TITLE("34"); //blue
FF_LOGO_RETURN
}
static const FFlogo* getLogoNixOS(void)
{
FF_LOGO_INIT
@ -2759,6 +2778,7 @@ GetLogoMethod* ffLogoBuiltinGetAll(void)
getLogoWindows11Small,
getLogoWindows8,
getLogoWindows,
getLogoWindows95,
getLogoNixOS,
getLogoNixOsOld,
getLogoNixOsSmall,

8
src/logo/builtin.h.in Normal file
View File

@ -0,0 +1,8 @@
#pragma once
#ifndef FASTFETCH_INDLUDED_logo_builtin_h_in
#define FASTFETCH_INDLUDED_logo_builtin_h_in
#define FASTFETCH_DATATEXT_LOGO_WINDOWS95 @DATATEXT_LOGO_WINDOWS95@
#endif