From 4091d33c56ea6ccfd4b4f31a92be43eee5b2aceb Mon Sep 17 00:00:00 2001 From: Carter Li Date: Fri, 9 Aug 2024 14:28:19 +0800 Subject: [PATCH 01/27] Packaging: update debian stuff [ci skip] --- debian/changelog | 6 ++++++ debian/files | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 90f04afb8..810ab5666 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +fastfetch (2.21.1) jammy; urgency=medium + + * Update to 2.21.1 + + -- Carter Li Fri, 09 Aug 2024 14:27:10 +0800 + fastfetch (2.21.0) jammy; urgency=medium * Update to 2.21.0 diff --git a/debian/files b/debian/files index 4bba4091c..ed4ebcd12 100644 --- a/debian/files +++ b/debian/files @@ -1 +1 @@ -fastfetch_2.20.0_source.buildinfo universe/utils optional +fastfetch_2.21.1_source.buildinfo universe/utils optional From e8932895e816225867c5feebdecfd4d1d1a657f3 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 10 Aug 2024 07:41:31 +0800 Subject: [PATCH 02/27] CMake (Linux): complain about `pthread_timedjoin_np` is not found --- CMakeLists.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c08ead253..64d3ddeb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1210,13 +1210,17 @@ if(NOT WIN32) if(HAVE_WORDEXP) target_compile_definitions(libfastfetch PRIVATE FF_HAVE_WORDEXP=1) endif() - CHECK_INCLUDE_FILE("pthread_np.h" HAVE_PTHREAD_NP) - if(HAVE_PTHREAD_NP) - target_compile_definitions(libfastfetch PRIVATE FF_HAVE_PTHREAD_NP=1) - endif() - check_function_exists("pthread_timedjoin_np" HAVE_TIMEDJOIN_NP) - if(HAVE_TIMEDJOIN_NP) - target_compile_definitions(libfastfetch PRIVATE FF_HAVE_TIMEDJOIN_NP=1) + if(ENABLE_THREADS) + CHECK_INCLUDE_FILE("pthread_np.h" HAVE_PTHREAD_NP) + if(HAVE_PTHREAD_NP) + target_compile_definitions(libfastfetch PRIVATE FF_HAVE_PTHREAD_NP=1) + endif() + check_function_exists("pthread_timedjoin_np" HAVE_TIMEDJOIN_NP) + if(HAVE_TIMEDJOIN_NP) + target_compile_definitions(libfastfetch PRIVATE FF_HAVE_TIMEDJOIN_NP=1) + else() + message(WARNING "pthread_timedjoin_np was not found; networking timeout will not work") + endif() endif() endif() From e42dfe63c31b913edb88040481dbba7ff13cc768 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 10 Aug 2024 12:13:21 +0800 Subject: [PATCH 03/27] GPU (Linux): fix bad Intel Arc GPU name Fix #1177 --- src/detection/gpu/gpu_linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index f469d08cc..f111f3de6 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -205,7 +205,7 @@ static void pciDetectIntelSpecific(FFGPUResult* gpu, FFstrbuf* pciDir, FFstrbuf* // https://patchwork.kernel.org/project/intel-gfx/patch/1422039866-11572-3-git-send-email-ville.syrjala@linux.intel.com/ if (ffStrbufStartsWithS(&gpu->name, "Intel ")) - ffStrbufSubstrAfter(&gpu->name, (uint32_t) strlen("Intel ")); + ffStrbufSubstrAfter(&gpu->name, (uint32_t) strlen("Intel")); gpu->type = ffStrbufStartsWithIgnCaseS(&gpu->name, "Arc ") ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; if (ffStrbufEqualS(&gpu->driver, "xe")) From bdb0a9262ce02c4cc438f14040a43d3fb77bc785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sat, 10 Aug 2024 21:03:56 +0800 Subject: [PATCH 04/27] GPU (Linux): fix intel GPU type detection Ref: #1177 --- src/detection/gpu/gpu.h | 2 +- src/detection/gpu/gpu_bsd.c | 10 ++++++++-- src/detection/gpu/gpu_linux.c | 17 ++++++++++++----- src/detection/gpu/gpu_pci.c | 9 ++++++++- src/detection/gpu/gpu_sunos.c | 2 +- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/detection/gpu/gpu.h b/src/detection/gpu/gpu.h index 6e999d6ee..9737b4bfb 100644 --- a/src/detection/gpu/gpu.h +++ b/src/detection/gpu/gpu.h @@ -47,5 +47,5 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus); const char* ffGetGPUVendorString(unsigned vendorId); #if defined(__linux__) || defined(__FreeBSD__) || defined(__sun) -void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu); +void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu, FFstrbuf* coreName); #endif diff --git a/src/detection/gpu/gpu_bsd.c b/src/detection/gpu/gpu_bsd.c index 519263556..fbc5b4a29 100644 --- a/src/detection/gpu/gpu_bsd.c +++ b/src/detection/gpu/gpu_bsd.c @@ -70,11 +70,12 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus) ffParsePropFileData("libdrm/amdgpu.ids", query, &gpu->name); } + FF_STRBUF_AUTO_DESTROY coreName = ffStrbufCreate(); if (gpu->name.length == 0) { if (pciids.length == 0) loadPciIds(&pciids); - ffGPUParsePciIds(&pciids, pc->pc_subclass, pc->pc_vendor, pc->pc_device, gpu); + ffGPUParsePciIds(&pciids, pc->pc_subclass, pc->pc_vendor, pc->pc_device, gpu, &coreName); } if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_NVIDIA && (options->temp || options->driverSpecific)) @@ -114,7 +115,12 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus) } else if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_INTEL) { - gpu->type = ffStrbufStartsWithIgnCaseS(&gpu->name, "Arc ") ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; + if ((coreName->chars[0] == 'D' || coreName->chars[0] == 'S') && + coreName->chars[1] == 'G' && + ffCharIsDigit(coreName->chars[2])) + gpu->type = FF_GPU_TYPE_DISCRETE; // DG1 / DG2 / SG1 + else + gpu->type = FF_GPU_TYPE_INTEGRATED; } } } diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index f111f3de6..b2e766b09 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -199,14 +199,20 @@ static void pciDetectAmdSpecific(const FFGPUOptions* options, FFGPUResult* gpu, } } -static void pciDetectIntelSpecific(FFGPUResult* gpu, FFstrbuf* pciDir, FFstrbuf* buffer) +static void pciDetectIntelSpecific(FFGPUResult* gpu, FFstrbuf* pciDir, FFstrbuf* buffer, const FFstrbuf* coreName) { // Works for Intel GPUs // https://patchwork.kernel.org/project/intel-gfx/patch/1422039866-11572-3-git-send-email-ville.syrjala@linux.intel.com/ if (ffStrbufStartsWithS(&gpu->name, "Intel ")) - ffStrbufSubstrAfter(&gpu->name, (uint32_t) strlen("Intel")); - gpu->type = ffStrbufStartsWithIgnCaseS(&gpu->name, "Arc ") ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; + ffStrbufSubstrAfter(&gpu->name, (uint32_t) strlen("Intel ")); + + if ((coreName->chars[0] == 'D' || coreName->chars[0] == 'S') && + coreName->chars[1] == 'G' && + ffCharIsDigit(coreName->chars[2])) + gpu->type = FF_GPU_TYPE_DISCRETE; // DG1 / DG2 / SG1 + else + gpu->type = FF_GPU_TYPE_INTEGRATED; if (ffStrbufEqualS(&gpu->driver, "xe")) { @@ -322,6 +328,7 @@ static const char* detectPci(const FFGPUOptions* options, FFlist* gpus, FFstrbuf ffStrbufSubstrBefore(deviceDir, drmDirPathLength); } + FF_STRBUF_AUTO_DESTROY coreName = ffStrbufCreate(); if (gpu->name.length == 0) { static FFstrbuf pciids; @@ -330,7 +337,7 @@ static const char* detectPci(const FFGPUOptions* options, FFlist* gpus, FFstrbuf ffStrbufInit(&pciids); loadPciIds(&pciids); } - ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, gpu); + ffGPUParsePciIds(&pciids, subclassId, (uint16_t) vendorId, (uint16_t) deviceId, gpu, &coreName); } pciDetectDriver(gpu, deviceDir, buffer, drmKey); @@ -343,7 +350,7 @@ static const char* detectPci(const FFGPUOptions* options, FFlist* gpus, FFstrbuf } else if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_INTEL) { - pciDetectIntelSpecific(gpu, deviceDir, buffer); + pciDetectIntelSpecific(gpu, deviceDir, buffer, &coreName); ffStrbufSubstrBefore(deviceDir, drmDirPathLength); } else diff --git a/src/detection/gpu/gpu_pci.c b/src/detection/gpu/gpu_pci.c index c4b1e56ff..b865d8af9 100644 --- a/src/detection/gpu/gpu_pci.c +++ b/src/detection/gpu/gpu_pci.c @@ -1,6 +1,6 @@ #include "gpu.h" -void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu) +void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint16_t device, FFGPUResult* gpu, FFstrbuf* coreName) { if (content->length) { @@ -50,7 +50,14 @@ void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint openingBracket++; char* closingBracket = memchr(openingBracket, ']', (uint32_t) (end - openingBracket)); if (closingBracket) + { ffStrbufSetNS(&gpu->name, (uint32_t) (closingBracket - openingBracket), openingBracket); + if (coreName) + { + ffStrbufSetNS(coreName, (uint32_t) (closingBracket - openingBracket), start); + ffStrbufTrimRight(coreName, ' '); + } + } } if (!gpu->name.length) ffStrbufSetNS(&gpu->name, (uint32_t) (end - start), start); diff --git a/src/detection/gpu/gpu_sunos.c b/src/detection/gpu/gpu_sunos.c index 168cfaac1..442d87ce8 100644 --- a/src/detection/gpu/gpu_sunos.c +++ b/src/detection/gpu/gpu_sunos.c @@ -76,7 +76,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* { if (pciids.length == 0) ffReadFileBuffer(FASTFETCH_TARGET_DIR_ROOT "/usr/share/hwdata/pci.ids", &pciids); - ffGPUParsePciIds(&pciids, (uint8_t) subclass, (uint16_t) vendorId, (uint16_t) deviceId, gpu); + ffGPUParsePciIds(&pciids, (uint8_t) subclass, (uint16_t) vendorId, (uint16_t) deviceId, gpu, NULL); } } From 87d964c7ca8704a2435a857a045fec2580441670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sat, 10 Aug 2024 21:08:35 +0800 Subject: [PATCH 05/27] GPU (Linux): fix uninited struct fields --- src/detection/gpu/gpu.h | 2 +- src/detection/gpu/gpu_linux.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/detection/gpu/gpu.h b/src/detection/gpu/gpu.h index 9737b4bfb..a914d5c2d 100644 --- a/src/detection/gpu/gpu.h +++ b/src/detection/gpu/gpu.h @@ -33,11 +33,11 @@ typedef struct FFGPUResult FFstrbuf driver; FFstrbuf platformApi; double temperature; + double coreUsage; int32_t coreCount; uint32_t frequency; // Maximum time clock frequency in MHz FFGPUMemory dedicated; FFGPUMemory shared; - double coreUsage; uint64_t deviceId; // Used internally, may be uninitialized } FFGPUResult; diff --git a/src/detection/gpu/gpu_linux.c b/src/detection/gpu/gpu_linux.c index b2e766b09..bcf1f2c91 100644 --- a/src/detection/gpu/gpu_linux.c +++ b/src/detection/gpu/gpu_linux.c @@ -299,6 +299,7 @@ static const char* detectPci(const FFGPUOptions* options, FFlist* gpus, FFstrbuf ffStrbufInit(&gpu->driver); ffStrbufInit(&gpu->platformApi); gpu->temperature = FF_GPU_TEMP_UNSET; + gpu->coreUsage = FF_GPU_CORE_USAGE_UNSET; gpu->coreCount = FF_GPU_CORE_COUNT_UNSET; gpu->type = FF_GPU_TYPE_UNKNOWN; gpu->dedicated.total = gpu->dedicated.used = gpu->shared.total = gpu->shared.used = FF_GPU_VMEM_SIZE_UNSET; From fb1c7276413e10fa89e6bf34c5aacd4794d910ee Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 10 Aug 2024 21:59:03 +0800 Subject: [PATCH 06/27] GPU (Linux): ensure we correctly get the marketing name --- src/detection/gpu/gpu_pci.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/detection/gpu/gpu_pci.c b/src/detection/gpu/gpu_pci.c index b865d8af9..de81f9b60 100644 --- a/src/detection/gpu/gpu_pci.c +++ b/src/detection/gpu/gpu_pci.c @@ -44,17 +44,17 @@ void ffGPUParsePciIds(FFstrbuf* content, uint8_t subclass, uint16_t vendor, uint if (!end) end = content->chars + content->length; - char* openingBracket = memchr(start, '[', (uint32_t) (end - start)); - if (openingBracket) + char* closingBracket = end - 1; + if (*closingBracket == ']') { - openingBracket++; - char* closingBracket = memchr(openingBracket, ']', (uint32_t) (end - openingBracket)); - if (closingBracket) + char* openingBracket = memrchr(start, '[', (size_t) (closingBracket - start)); + if (openingBracket) { + openingBracket++; ffStrbufSetNS(&gpu->name, (uint32_t) (closingBracket - openingBracket), openingBracket); if (coreName) { - ffStrbufSetNS(coreName, (uint32_t) (closingBracket - openingBracket), start); + ffStrbufSetNS(coreName, (uint32_t) (openingBracket - start) - 1, start); ffStrbufTrimRight(coreName, ' '); } } From 55b1603b83bd7a8e84a863b98206fba8694c3922 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 10 Aug 2024 23:31:29 +0800 Subject: [PATCH 07/27] GPU (BSD): fix build --- src/detection/gpu/gpu_bsd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/detection/gpu/gpu_bsd.c b/src/detection/gpu/gpu_bsd.c index fbc5b4a29..6d75ed9c1 100644 --- a/src/detection/gpu/gpu_bsd.c +++ b/src/detection/gpu/gpu_bsd.c @@ -3,6 +3,7 @@ #include "common/io/io.h" #include "common/properties.h" #include "util/mallocHelper.h" +#include "util/stringUtils.h" #include #include @@ -115,9 +116,9 @@ const char* ffDetectGPUImpl(const FFGPUOptions* options, FFlist* gpus) } else if (gpu->vendor.chars == FF_GPU_VENDOR_NAME_INTEL) { - if ((coreName->chars[0] == 'D' || coreName->chars[0] == 'S') && - coreName->chars[1] == 'G' && - ffCharIsDigit(coreName->chars[2])) + if ((coreName.chars[0] == 'D' || coreName.chars[0] == 'S') && + coreName.chars[1] == 'G' && + ffCharIsDigit(coreName.chars[2])) gpu->type = FF_GPU_TYPE_DISCRETE; // DG1 / DG2 / SG1 else gpu->type = FF_GPU_TYPE_INTEGRATED; From df4350666a5bc93cbf58084faf5110a6c3296b79 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Mon, 12 Aug 2024 10:19:18 +0800 Subject: [PATCH 08/27] CPU (Linux): embed the arm part codes of lscpu Fix #1175 --- src/detection/cpu/cpu_arm.h | 358 ++++++++++++++++++++++++++++++++++ src/detection/cpu/cpu_linux.c | 182 ++++++++--------- 2 files changed, 439 insertions(+), 101 deletions(-) create mode 100644 src/detection/cpu/cpu_arm.h diff --git a/src/detection/cpu/cpu_arm.h b/src/detection/cpu/cpu_arm.h new file mode 100644 index 000000000..c4db12cf1 --- /dev/null +++ b/src/detection/cpu/cpu_arm.h @@ -0,0 +1,358 @@ +#pragma once + +#include "fastfetch.h" + +// https://github.com/util-linux/util-linux/blob/master/sys-utils/lscpu-arm.c +// We use the util-linux's data but not its code. Call me if it violates util-linux's GPL license. + +static const char* hwImplId2Vendor(uint32_t implId) +{ + switch (implId) + { + case 0x41: return "ARM"; + case 0x42: return "Broadcom"; + case 0x43: return "Cavium"; + case 0x44: return "DEC"; + case 0x46: return "FUJITSU"; + case 0x48: return "HiSilicon"; + case 0x49: return "Infineon"; + case 0x4d: return "Motorola"; + case 0x4e: return "NVIDIA"; + case 0x50: return "APM"; + case 0x51: return "Qualcomm"; + case 0x53: return "Samsung"; + case 0x56: return "Marvell"; + case 0x61: return "Apple"; + case 0x66: return "Faraday"; + case 0x69: return "Intel"; + case 0x6D: return "Microsoft"; + case 0x70: return "Phytium"; + case 0xc0: return "Ampere"; + default: return 0; + } +} + +static const char* armPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x810: return "ARM810"; + case 0x920: return "ARM920"; + case 0x922: return "ARM922"; + case 0x926: return "ARM926"; + case 0x940: return "ARM940"; + case 0x946: return "ARM946"; + case 0x966: return "ARM966"; + case 0xa20: return "ARM1020"; + case 0xa22: return "ARM1022"; + case 0xa26: return "ARM1026"; + case 0xb02: return "ARM11 MPCore"; + case 0xb36: return "ARM1136"; + case 0xb56: return "ARM1156"; + case 0xb76: return "ARM1176"; + case 0xc05: return "Cortex-A5"; + case 0xc07: return "Cortex-A7"; + case 0xc08: return "Cortex-A8"; + case 0xc09: return "Cortex-A9"; + case 0xc0d: return "Cortex-A17"; /* Originally A12 */ + case 0xc0f: return "Cortex-A15"; + case 0xc0e: return "Cortex-A17"; + case 0xc14: return "Cortex-R4"; + case 0xc15: return "Cortex-R5"; + case 0xc17: return "Cortex-R7"; + case 0xc18: return "Cortex-R8"; + case 0xc20: return "Cortex-M0"; + case 0xc21: return "Cortex-M1"; + case 0xc23: return "Cortex-M3"; + case 0xc24: return "Cortex-M4"; + case 0xc27: return "Cortex-M7"; + case 0xc60: return "Cortex-M0+"; + case 0xd01: return "Cortex-A32"; + case 0xd02: return "Cortex-A34"; + case 0xd03: return "Cortex-A53"; + case 0xd04: return "Cortex-A35"; + case 0xd05: return "Cortex-A55"; + case 0xd06: return "Cortex-A65"; + case 0xd07: return "Cortex-A57"; + case 0xd08: return "Cortex-A72"; + case 0xd09: return "Cortex-A73"; + case 0xd0a: return "Cortex-A75"; + case 0xd0b: return "Cortex-A76"; + case 0xd0c: return "Neoverse-N1"; + case 0xd0d: return "Cortex-A77"; + case 0xd0e: return "Cortex-A76AE"; + case 0xd13: return "Cortex-R52"; + case 0xd15: return "Cortex-R82"; + case 0xd16: return "Cortex-R52+"; + case 0xd20: return "Cortex-M23"; + case 0xd21: return "Cortex-M33"; + case 0xd22: return "Cortex-M55"; + case 0xd23: return "Cortex-M85"; + case 0xd40: return "Neoverse-V1"; + case 0xd41: return "Cortex-A78"; + case 0xd42: return "Cortex-A78AE"; + case 0xd43: return "Cortex-A65AE"; + case 0xd44: return "Cortex-X1"; + case 0xd46: return "Cortex-A510"; + case 0xd47: return "Cortex-A710"; + case 0xd48: return "Cortex-X2"; + case 0xd49: return "Neoverse-N2"; + case 0xd4a: return "Neoverse-E1"; + case 0xd4b: return "Cortex-A78C"; + case 0xd4c: return "Cortex-X1C"; + case 0xd4d: return "Cortex-A715"; + case 0xd4e: return "Cortex-X3"; + case 0xd4f: return "Neoverse-V2"; + case 0xd80: return "Cortex-A520"; + case 0xd81: return "Cortex-A720"; + case 0xd82: return "Cortex-X4"; + default: return "Unknown"; + } +} + +static const char* brcmPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x0f: return "Brahma-B15"; + case 0x100: return "Brahma-B53"; + case 0x516: return "ThunderX2"; + default: return "Unknown"; + } +} + +static const char* decPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0xa10: return "SA110"; + case 0xa11: return "SA1100"; + default: return "Unknown"; + } +} + +static const char* caviumPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x0a0: return "ThunderX"; + case 0x0a1: return "ThunderX-88XX"; + case 0x0a2: return "ThunderX-81XX"; + case 0x0a3: return "ThunderX-83XX"; + case 0x0af: return "ThunderX2-99xx"; + case 0x0b0: return "OcteonTX2"; + case 0x0b1: return "OcteonTX2-98XX"; + case 0x0b2: return "OcteonTX2-96XX"; + case 0x0b3: return "OcteonTX2-95XX"; + case 0x0b4: return "OcteonTX2-95XXN"; + case 0x0b5: return "OcteonTX2-95XXMM"; + case 0x0b6: return "OcteonTX2-95XXO"; + case 0x0b8: return "ThunderX3-T110"; + default: return "Unknown"; + } +} + +static const char* apmPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x000: return "X-Gene"; + default: return "Unknown"; + } +} + +static const char* qcomPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x001: return "Oryon"; + case 0x00f: return "Scorpion"; + case 0x02d: return "Scorpion"; + case 0x04d: return "Krait"; + case 0x06f: return "Krait"; + case 0x201: return "Kryo"; + case 0x205: return "Kryo"; + case 0x211: return "Kryo"; + case 0x800: return "Falkor-V1/Kryo"; + case 0x801: return "Kryo-V2"; + case 0x802: return "Kryo-3XX-Gold"; + case 0x803: return "Kryo-3XX-Silver"; + case 0x804: return "Kryo-4XX-Gold"; + case 0x805: return "Kryo-4XX-Silver"; + case 0xc00: return "Falkor"; + case 0xc01: return "Saphira"; + default: return "Unknown"; + } +} + +static const char* samsungPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x001: return "exynos-m1"; + case 0x002: return "exynos-m3"; + case 0x003: return "exynos-m4"; + case 0x004: return "exynos-m5"; + default: return "Unknown"; + } +} + +static const char* nvidiaPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x000: return "Denver"; + case 0x003: return "Denver 2"; + case 0x004: return "Carmel"; + default: return "Unknown"; + } +} + +static const char* marvellPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x131: return "Feroceon-88FR131"; + case 0x581: return "PJ4/PJ4b"; + case 0x584: return "PJ4B-MP"; + default: return "Unknown"; + } +} + +static const char* applePartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x000: return "Swift"; + case 0x001: return "Cyclone"; + case 0x002: return "Typhoon"; + case 0x003: return "Typhoon/Capri"; + case 0x004: return "Twister"; + case 0x005: return "Twister/Elba/Malta"; + case 0x006: return "Hurricane"; + case 0x007: return "Hurricane/Myst"; + case 0x008: return "Monsoon"; + case 0x009: return "Mistral"; + case 0x00b: return "Vortex"; + case 0x00c: return "Tempest"; + case 0x00f: return "Tempest-M9"; + case 0x010: return "Vortex/Aruba"; + case 0x011: return "Tempest/Aruba"; + case 0x012: return "Lightning"; + case 0x013: return "Thunder"; + case 0x020: return "Icestorm-A14"; + case 0x021: return "Firestorm-A14"; + case 0x022: return "Icestorm-M1"; + case 0x023: return "Firestorm-M1"; + case 0x024: return "Icestorm-M1-Pro"; + case 0x025: return "Firestorm-M1-Pro"; + case 0x026: return "Thunder-M10"; + case 0x028: return "Icestorm-M1-Max"; + case 0x029: return "Firestorm-M1-Max"; + case 0x030: return "Blizzard-A15"; + case 0x031: return "Avalanche-A15"; + case 0x032: return "Blizzard-M2"; + case 0x033: return "Avalanche-M2"; + case 0x034: return "Blizzard-M2-Pro"; + case 0x035: return "Avalanche-M2-Pro"; + case 0x036: return "Sawtooth-A16"; + case 0x037: return "Everest-A16"; + case 0x038: return "Blizzard-M2-Max"; + case 0x039: return "Avalanche-M2-Max"; + default: return "Unknown"; + } +} + +static const char* faradayPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x526: return "FA526"; + case 0x626: return "FA626"; + default: return "Unknown"; + } +} + +static const char* intelPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x200: return "i80200"; + case 0x210: return "PXA250A"; + case 0x212: return "PXA210A"; + case 0x242: return "i80321-400"; + case 0x243: return "i80321-600"; + case 0x290: return "PXA250B/PXA26x"; + case 0x292: return "PXA210B"; + case 0x2c2: return "i80321-400-B0"; + case 0x2c3: return "i80321-600-B0"; + case 0x2d0: return "PXA250C/PXA255/PXA26x"; + case 0x2d2: return "PXA210C"; + case 0x411: return "PXA27x"; + case 0x41c: return "IPX425-533"; + case 0x41d: return "IPX425-400"; + case 0x41f: return "IPX425-266"; + case 0x682: return "PXA32x"; + case 0x683: return "PXA930/PXA935"; + case 0x688: return "PXA30x"; + case 0x689: return "PXA31x"; + case 0xb11: return "SA1110"; + case 0xc12: return "IPX1200"; + default: return "Unknown"; + } +} + +static const char* fujitsuPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x001: return "A64FX"; + default: return "Unknown"; + } +} + +static const char* hisiPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0xd01: return "TaiShan-v110"; /* used in Kunpeng-920 SoC */ + case 0xd02: return "TaiShan-v120"; /* used in Kirin 990A and 9000S SoCs */ + case 0xd40: return "Cortex-A76"; /* HiSilicon uses this ID though advertises A76 */ + case 0xd41: return "Cortex-A77"; /* HiSilicon uses this ID though advertises A77 */ + default: return "Unknown"; + } +} + +static const char* amperePartId2name(uint32_t partId) +{ + switch (partId) + { + case 0xac3: return "Ampere-1"; + case 0xac4: return "Ampere-1a"; + default: return "Unknown"; + } +} + +static const char* ftPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0x303: return "FTC310"; + case 0x660: return "FTC660"; + case 0x661: return "FTC661"; + case 0x662: return "FTC662"; + case 0x663: return "FTC663"; + case 0x664: return "FTC664"; + case 0x862: return "FTC862"; + default: return "Unknown"; + } +} + +static const char* msPartId2name(uint32_t partId) +{ + switch (partId) + { + case 0xd49: return "Azure-Cobalt-100"; + default: return "Unknown"; + } +} diff --git a/src/detection/cpu/cpu_linux.c b/src/detection/cpu/cpu_linux.c index 422f7f51d..5ddfa29b3 100644 --- a/src/detection/cpu/cpu_linux.c +++ b/src/detection/cpu/cpu_linux.c @@ -74,18 +74,66 @@ static void detectAndroid(FFCPUResult* cpu) } #endif -static const char* parseCpuInfo(FFCPUResult* cpu, FFstrbuf* physicalCoresBuffer, FFstrbuf* cpuMHz, FFstrbuf* cpuIsa, FFstrbuf* cpuUarch) -{ - FF_AUTO_CLOSE_FILE FILE* cpuinfo = fopen("/proc/cpuinfo", "r"); - if(cpuinfo == NULL) - return "fopen(\"/proc/cpuinfo\", \"r\") failed"; +#ifdef __aarch64__ +#include "cpu_arm.h" +static void detectArmName(FILE* cpuinfo, FFCPUResult* cpu, uint32_t implId) +{ FF_AUTO_FREE char* line = NULL; + rewind(cpuinfo); size_t len = 0; + const char* lastName = NULL; + uint32_t num = 0; + while(getline(&line, &len, cpuinfo) != -1) + { + if (!ffStrStartsWith(line, "CPU part\t: ")) continue; + uint32_t partId = (uint32_t) strtoul(line + strlen("CPU part\t: "), NULL, 16); + const char* name = NULL; + switch (implId) + { + case 0x41: name = armPartId2name(partId); break; + case 0x42: name = brcmPartId2name(partId); break; + case 0x43: name = caviumPartId2name(partId); break; + case 0x44: name = decPartId2name(partId); break; + case 0x46: name = fujitsuPartId2name(partId); break; + case 0x48: name = hisiPartId2name(partId); break; + case 0x4e: name = nvidiaPartId2name(partId); break; + case 0x50: name = apmPartId2name(partId); break; + case 0x51: name = qcomPartId2name(partId); break; + case 0x53: name = samsungPartId2name(partId); break; + case 0x56: name = marvellPartId2name(partId); break; + case 0x61: name = applePartId2name(partId); break; + case 0x66: name = faradayPartId2name(partId); break; + case 0x69: name = intelPartId2name(partId); break; + case 0x6d: name = msPartId2name(partId); break; + case 0x70: name = ftPartId2name(partId); break; + case 0xc0: name = amperePartId2name(partId); break; + default: name = "Unknown"; break; + } + if (lastName != name) + { + if (lastName) + { + if (num > 1) + ffStrbufAppendF(&cpu->name, "*%u", num); + ffStrbufAppendS(&cpu->name, " + "); + } + ffStrbufAppendS(&cpu->name, name); + lastName = name; + num = 1; + } + else + ++num; + } + if (num > 1) + ffStrbufAppendF(&cpu->name, "*%u", num); +} +#endif - #ifdef __aarch64__ - FF_STRBUF_AUTO_DESTROY implementer = ffStrbufCreate(); - #endif +static const char* parseCpuInfo(FILE* cpuinfo, FFCPUResult* cpu, FFstrbuf* physicalCoresBuffer, FFstrbuf* cpuMHz, FFstrbuf* cpuIsa, FFstrbuf* cpuUarch, FFstrbuf* cpuImplementer) +{ + FF_AUTO_FREE char* line = NULL; + size_t len = 0; while(getline(&line, &len, cpuinfo) != -1) { @@ -101,35 +149,22 @@ static const char* parseCpuInfo(FFCPUResult* cpu, FFstrbuf* physicalCoresBuffer, ffParsePropLine(line, "isa :", cpuIsa) || ffParsePropLine(line, "uarch :", cpuUarch) || - #ifdef __aarch64__ - (cpu->vendor.length == 0 && ffParsePropLine(line, "CPU implementer :", &implementer)) || + #if __aarch64__ + (cpu->vendor.length == 0 && ffParsePropLine(line, "CPU implementer :", cpuImplementer)) || #endif - + #if __ANDROID__ (cpu->name.length == 0 && ffParsePropLine(line, "Hardware :", &cpu->name)) || //For Android devices + #endif + #if __powerpc__ || __powerpc (cpu->name.length == 0 && ffParsePropLine(line, "cpu :", &cpu->name)) || //For POWER - (cpu->name.length == 0 && ffParsePropLine(line, "cpu model :", &cpu->name)) //For MIPS + #endif + #if __mips__ + (cpu->name.length == 0 && ffParsePropLine(line, "cpu model :", &cpu->name)) || //For MIPS + #endif + false ); } - #ifdef __aarch64__ - // https://github.com/util-linux/util-linux/blob/2cd89de14549d2b2c079a4f8b73f75500d229fee/sys-utils/lscpu-arm.c#L286 - if (cpu->vendor.length == 0 && implementer.length > 2 /* 0xX */) - { - uint32_t implId = (uint32_t) strtoul(implementer.chars, NULL, 16); - switch (implId) - { - case 0x41: ffStrbufSetStatic(&cpu->vendor, "ARM"); break; - case 0x42: ffStrbufSetStatic(&cpu->vendor, "Broadcom"); break; - case 0x48: ffStrbufSetStatic(&cpu->vendor, "HiSilicon"); break; - case 0x4e: ffStrbufSetStatic(&cpu->vendor, "Nvidia"); break; - case 0x51: ffStrbufSetStatic(&cpu->vendor, "Qualcomm"); break; - case 0x53: ffStrbufSetStatic(&cpu->vendor, "Samsung"); break; - case 0x61: ffStrbufSetStatic(&cpu->vendor, "Apple"); break; - case 0x69: ffStrbufSetStatic(&cpu->vendor, "Intel"); break; - } - } - #endif - return NULL; } @@ -279,14 +314,19 @@ void detectAsahi(FFCPUResult* cpu) const char* ffDetectCPUImpl(const FFCPUOptions* options, FFCPUResult* cpu) { + FF_AUTO_CLOSE_FILE FILE* cpuinfo = fopen("/proc/cpuinfo", "r"); + if(cpuinfo == NULL) + return "fopen(\"/proc/cpuinfo\", \"r\") failed"; + cpu->temperature = options->temp ? detectCPUTemp() : FF_CPU_TEMP_UNSET; FF_STRBUF_AUTO_DESTROY physicalCoresBuffer = ffStrbufCreate(); FF_STRBUF_AUTO_DESTROY cpuMHz = ffStrbufCreate(); FF_STRBUF_AUTO_DESTROY cpuIsa = ffStrbufCreate(); FF_STRBUF_AUTO_DESTROY cpuUarch = ffStrbufCreate(); + FF_STRBUF_AUTO_DESTROY cpuImplementerStr = ffStrbufCreate(); - const char* error = parseCpuInfo(cpu, &physicalCoresBuffer, &cpuMHz, &cpuIsa, &cpuUarch); + const char* error = parseCpuInfo(cpuinfo, cpu, &physicalCoresBuffer, &cpuMHz, &cpuIsa, &cpuUarch, &cpuImplementerStr); if (error) return error; cpu->coresLogical = (uint16_t) get_nprocs_conf(); @@ -311,83 +351,23 @@ const char* ffDetectCPUImpl(const FFCPUOptions* options, FFCPUResult* cpu) ffStrbufAppend(&cpu->name, &cpuIsa); } + #ifdef __aarch64__ + uint32_t cpuImplementer = (uint32_t) strtoul(cpuImplementerStr.chars, NULL, 16); + ffStrbufSetStatic(&cpu->vendor, hwImplId2Vendor(cpuImplementer)); + #endif + #ifdef __ANDROID__ detectAndroid(cpu); #endif - #if defined(__linux__) && defined(__aarch64__) + #if defined(__linux__) && defined(__aarch64__) && !defined(__ANDROID__) detectAsahi(cpu); #endif + #ifdef __aarch64__ if (cpu->name.length == 0) - { - FF_STRBUF_AUTO_DESTROY buffer = ffStrbufCreate(); - if (ffProcessAppendStdOut(&buffer, (char *const[]) { "lscpu", NULL }) == NULL) - { - char* pstart = buffer.chars; - - if (cpu->vendor.length == 0) - { - pstart = strstr(pstart, "Vendor ID:"); - if (pstart) - { - pstart += strlen("Vendor ID:"); - while (isspace(*pstart)) ++pstart; - if (*pstart) - { - char* pend = strchr(pstart, '\n'); - if (pend != NULL) - ffStrbufAppendNS(&cpu->vendor, (uint32_t) (pend - pstart), pstart); - else - { - ffStrbufAppendS(&cpu->vendor, pstart); - } - pstart = pend + 1; - if (pstart >= buffer.chars + buffer.length) - return NULL; - } - } - else - { - pstart = buffer.chars; - } - } - - while ((pstart = strstr(pstart, "Model name:"))) - { - pstart += strlen("Model name:"); - while (isspace(*pstart)) ++pstart; - if (*pstart == '\0') - break; - - if (cpu->name.length > 0) - ffStrbufAppendS(&cpu->name, " + "); - - if (*pstart == '-') - { - if (cpu->vendor.length > 0) - ffStrbufAppend(&cpu->name, &cpu->vendor); - else - ffStrbufAppendS(&cpu->name, "Unknown"); - ++pstart; - continue; - } - - char* pend = strchr(pstart, '\n'); - if (pend != NULL) - ffStrbufAppendNS(&cpu->name, (uint32_t) (pend - pstart), pstart); - else - { - ffStrbufAppendS(&cpu->name, pstart); - break; - } - - pstart = pend + 1; - if (pstart >= buffer.chars + buffer.length) - return NULL; - } - } - } + detectArmName(cpuinfo, cpu, cpuImplementer); + #endif return NULL; } From a89955b0802f9ba5ac93fb3cfe6d9dc968581c89 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 10 Aug 2024 23:33:38 +0800 Subject: [PATCH 09/27] Logo (Image): try support tmux (doesn't work yet) --- src/logo/image/image.c | 73 +++++++++++++++++++++++++++++++++--------- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/src/logo/image/image.c b/src/logo/image/image.c index cfb1558b2..58a4d5f9c 100644 --- a/src/logo/image/image.c +++ b/src/logo/image/image.c @@ -30,6 +30,12 @@ static bool printImageIterm(bool printError) fflush(stdout); + bool inTmux = false; + { + const char* term = getenv("TERM"); + inTmux = term && (ffStrStartsWith(term, "screen") || ffStrStartsWith(term, "tmux")); + } + FF_STRBUF_AUTO_DESTROY base64 = ffBase64EncodeStrbuf(&buf); ffStrbufClear(&buf); @@ -57,10 +63,15 @@ static bool printImageIterm(bool printError) } ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;9999999H\e[%uD", (unsigned) options->paddingTop + 1, (unsigned) options->paddingRight + options->width); } + if (inTmux) + ffStrbufAppendS(&buf, "\ePtmux;\e"); + if (options->width) ffStrbufAppendF(&buf, "\e]1337;File=inline=1;width=%u:%s\a", (unsigned) options->width, base64.chars); else ffStrbufAppendF(&buf, "\e]1337;File=inline=1:%s\a", base64.chars); + if (inTmux) + ffStrbufAppendS(&buf, "\e\\"); ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf); if (options->position == FF_LOGO_POSITION_LEFT || options->position == FF_LOGO_POSITION_RIGHT) @@ -90,12 +101,17 @@ static bool printImageIterm(bool printError) ffStrbufAppendF(&buf, "\e[9999999C\e[%uD", (unsigned) options->paddingRight + options->width); else if (options->paddingLeft) ffStrbufAppendF(&buf, "\e[%uC", (unsigned) options->paddingLeft); - ffStrbufAppendF(&buf, "\e]1337;File=inline=1;width=%u;height=%u;preserveAspectRatio=%u:%s\a\n", + if (inTmux) + ffStrbufAppendS(&buf, "\ePtmux;\e"); + ffStrbufAppendF(&buf, "\e]1337;File=inline=1;width=%u;height=%u;preserveAspectRatio=%u:%s\a", (unsigned) options->width, (unsigned) options->height, (unsigned) options->preserveAspectRatio, base64.chars ); + if (inTmux) + ffStrbufAppendS(&buf, "\e\\"); + ffStrbufAppendC(&buf, '\n'); if (options->position == FF_LOGO_POSITION_LEFT) { @@ -130,22 +146,31 @@ static bool printImageKittyDirect(bool printError) return false; } + fflush(stdout); + + bool inTmux = false; + { + const char* term = getenv("TERM"); + inTmux = term && (ffStrStartsWith(term, "screen") || ffStrStartsWith(term, "tmux")); + } + FF_STRBUF_AUTO_DESTROY base64 = ffBase64EncodeStrbuf(&options->source); + FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate(); if (!options->width || !options->height) { if (options->position == FF_LOGO_POSITION_LEFT) { // We must clear the entre screen to make sure that terminal buffer won't scroll up - printf("\e[2J\e[3J\e[%u;%uH", + ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;%uH", (unsigned) options->paddingTop + 1, (unsigned) options->paddingLeft + 1 ); } else if (options->position == FF_LOGO_POSITION_TOP) { - ffPrintCharTimes('\n', options->paddingTop); - ffPrintCharTimes(' ', options->paddingLeft); + ffStrbufAppendNC(&buf, options->paddingTop, '\n'); + ffStrbufAppendNC(&buf, options->paddingLeft, ' '); } else if (options->position == FF_LOGO_POSITION_RIGHT) { @@ -155,14 +180,23 @@ static bool printImageKittyDirect(bool printError) fputs("Logo (iterm): Must set logo width when using position right\n", stderr); return false; } - printf("\e[2J\e[3J\e[%u;9999999H\e[%uD", (unsigned) options->paddingTop + 1, (unsigned) options->paddingRight + options->width); + ffStrbufAppendF(&buf, "\e[2J\e[3J\e[%u;9999999H\e[%uD", (unsigned) options->paddingTop + 1, (unsigned) options->paddingRight + options->width); } + if (inTmux) + ffStrbufAppendS(&buf, "\ePtmux;\e"); if (options->width) - printf("\e_Ga=T,f=100,t=f,c=%u;%s\e\\", (unsigned) options->width, base64.chars); + ffStrbufAppendF(&buf, "\e_Ga=T,f=100,t=f,c=%u;%s", (unsigned) options->width, base64.chars); else - printf("\e_Ga=T,f=100,t=f;%s\e\\", base64.chars); - fflush(stdout); + ffStrbufAppendF(&buf, "\e_Ga=T,f=100,t=f;%s", base64.chars); + if (inTmux) + ffStrbufAppendC(&buf, '\e'); + ffStrbufAppendS(&buf, "\e\\"); + if (inTmux) + ffStrbufAppendS(&buf, "\e\\"); + + ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf); + if (options->position == FF_LOGO_POSITION_LEFT || options->position == FF_LOGO_POSITION_RIGHT) { uint16_t X = 0, Y = 0; @@ -186,33 +220,42 @@ static bool printImageKittyDirect(bool printError) } else { - ffPrintCharTimes('\n', options->paddingTop); + ffStrbufAppendNC(&buf, options->paddingTop, '\n'); + if (options->position == FF_LOGO_POSITION_RIGHT) - printf("\e[9999999C\e[%uD", (unsigned) options->paddingRight + options->width); + ffStrbufAppendF(&buf, "\e[9999999C\e[%uD", (unsigned) options->paddingRight + options->width); else if (options->paddingLeft) - printf("\e[%uC", (unsigned) options->paddingLeft); + ffStrbufAppendF(&buf, "\e[%uC", (unsigned) options->paddingLeft); - printf("\e_Ga=T,f=100,t=f,c=%u,r=%u;%s\e\\\n", + if (inTmux) + ffStrbufAppendS(&buf, "\ePtmux;\e"); + + ffStrbufAppendF(&buf, "\e_Ga=T,f=100,t=f,c=%u,r=%u;%s\e\\", (unsigned) options->width, (unsigned) options->height, base64.chars ); + if (inTmux) + ffStrbufAppendS(&buf, "\e\\"); + ffStrbufAppendC(&buf, '\n'); if (options->position == FF_LOGO_POSITION_LEFT) { instance.state.logoWidth = options->width + options->paddingLeft + options->paddingRight; instance.state.logoHeight = options->paddingTop + options->height; - printf("\e[%uA", (unsigned) instance.state.logoHeight); + ffStrbufAppendF(&buf, "\e[%uA", (unsigned) instance.state.logoHeight); } else if (options->position == FF_LOGO_POSITION_TOP) { instance.state.logoWidth = instance.state.logoHeight = 0; - ffPrintCharTimes('\n', options->paddingRight); + ffStrbufAppendNC(&buf, options->paddingRight, '\n'); } else if (options->position == FF_LOGO_POSITION_RIGHT) { instance.state.logoWidth = instance.state.logoHeight = 0; - printf("\e[1G\e[%uA", (unsigned) options->height); + ffStrbufAppendF(&buf, "\e[1G\e[%uA", (unsigned) options->height); } + + ffWriteFDBuffer(FFUnixFD2NativeFD(STDOUT_FILENO), &buf); } return true; From a11ec589f0402a2947dde7108d062421260e8dec Mon Sep 17 00:00:00 2001 From: Princess-Sunset-Shimmer <102773277+Princess-Sunset-Shimmer@users.noreply.github.com> Date: Mon, 12 Aug 2024 19:58:09 +0800 Subject: [PATCH 10/27] Logo (Builtin): HyprOS logo (#1180) * Update builtin.c * Create hypros.txt --- src/logo/ascii/hypros.txt | 17 +++++++++++++++++ src/logo/builtin.c | 11 +++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/logo/ascii/hypros.txt diff --git a/src/logo/ascii/hypros.txt b/src/logo/ascii/hypros.txt new file mode 100644 index 000000000..5b8b10ffb --- /dev/null +++ b/src/logo/ascii/hypros.txt @@ -0,0 +1,17 @@ + ___ + ,adZZEEEE#&$2>=x. + $1,zAP*~'$4_,-$2'~*VM$2N&x. + $1,%&P^`$4<$3,.$4<<$2,-===--.N>x + $1.%M7$4//$3,%^$2,x<3#$13EEbo$2<&>&b + $1&#/$4/$3.<^$4/$2x<>^$4-.`$1`+&WW$2<&N&; +$1/#/$4//$34$4//$2/W/ $4^+.`$1`###$2NM\ +$1##'$4|$3.l$4|$2,&/ $4`.',$1I#I$2HI# +$1#I$4||$3`I$4|$2(#( $3)`'$1)##$2H~^ +$1@\$4|||$3\$4\$2`X\ $3///$1,##%V$3'/ +$4\\\\\\$3Y,$2*@b, $3.-+//$1/&#%#/$3,' +$4`\\\\$2,.$4\$3<$2`*$3^`x<$1,z<#&#x"$3,' + $3`x<<$2`Xx,$3`<_`$1+{##&@P^$4'>$3' + $3`<_<<$2^<\-.$3`*`>$1<^'$4,-' + $3`<_=-$2^\Xx$1XX\.$3+<. + $3`^<_-$2^ Date: Tue, 13 Aug 2024 06:32:13 +0800 Subject: [PATCH 11/27] GPU (Windows): don't skip GPU silently Ref: #1181 --- src/detection/gpu/gpu_windows.c | 43 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/detection/gpu/gpu_windows.c b/src/detection/gpu/gpu_windows.c index e9d4ffbb1..6d9153be4 100644 --- a/src/detection/gpu/gpu_windows.c +++ b/src/detection/gpu/gpu_windows.c @@ -33,10 +33,31 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* SP_DEVINFO_DATA did = { .cbSize = sizeof(did) }; for (DWORD idev = 0; SetupDiEnumDeviceInfo(hdev, idev, &did); ++idev) { + FFGPUResult* gpu = (FFGPUResult*)ffListAdd(gpus); + ffStrbufInit(&gpu->vendor); + ffStrbufInit(&gpu->name); + ffStrbufInit(&gpu->driver); + ffStrbufInitStatic(&gpu->platformApi, "Direct3D"); + gpu->temperature = FF_GPU_TEMP_UNSET; + gpu->coreCount = FF_GPU_CORE_COUNT_UNSET; + gpu->coreUsage = FF_GPU_CORE_USAGE_UNSET; + gpu->type = FF_GPU_TYPE_UNKNOWN; + gpu->dedicated.total = gpu->dedicated.used = gpu->shared.total = gpu->shared.used = FF_GPU_VMEM_SIZE_UNSET; + gpu->deviceId = 0; + gpu->frequency = FF_GPU_FREQUENCY_UNSET; + + wchar_t name[256]; + if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_DEVICEDESC, NULL, (PBYTE) name, sizeof(name), NULL)) + ffStrbufSetWS(&gpu->name, name); + wchar_t hardwareId[256]; if (!SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_HARDWAREID, NULL, (PBYTE) hardwareId, sizeof(hardwareId), NULL)) continue; + unsigned vendorId = 0, deviceId = 0, subSystemId = 0, revId = 0; + swscanf(hardwareId, L"PCI\\VEN_%x&DEV_%x&SUBSYS_%x&REV_%x", &vendorId, &deviceId, &subSystemId, &revId); + ffStrbufSetStatic(&gpu->vendor, ffGetGPUVendorString(vendorId)); + wchar_t videoId[39]; { FF_HKEY_AUTO_DESTROY hKey = SetupDiOpenDevRegKey(hdev, &did, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE); @@ -50,28 +71,6 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* FF_HKEY_AUTO_DESTROY hKey = NULL; if (!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regControlVideoKey, &hKey, NULL)) continue; - unsigned vendorId = 0, deviceId = 0, subSystemId = 0, revId = 0; - swscanf(hardwareId, L"PCI\\VEN_%x&DEV_%x&SUBSYS_%x&REV_%x", &vendorId, &deviceId, &subSystemId, &revId); - - FFGPUResult* gpu = (FFGPUResult*)ffListAdd(gpus); - ffStrbufInitStatic(&gpu->vendor, ffGetGPUVendorString(vendorId)); - ffStrbufInit(&gpu->name); - ffStrbufInit(&gpu->driver); - ffStrbufInitStatic(&gpu->platformApi, "Direct3D"); - gpu->temperature = FF_GPU_TEMP_UNSET; - gpu->coreCount = FF_GPU_CORE_COUNT_UNSET; - gpu->coreUsage = FF_GPU_CORE_USAGE_UNSET; - gpu->type = FF_GPU_TYPE_UNKNOWN; - gpu->dedicated.total = gpu->dedicated.used = gpu->shared.total = gpu->shared.used = FF_GPU_VMEM_SIZE_UNSET; - gpu->deviceId = 0; - gpu->frequency = FF_GPU_FREQUENCY_UNSET; - - if (!ffRegReadStrbuf(hKey, L"DriverDesc", &gpu->name, NULL)) // faster, for some reason - { - wchar_t name[256]; - if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_DEVICEDESC, NULL, (PBYTE) name, sizeof(name), NULL)) - ffStrbufSetWS(&gpu->name, name); - } ffRegReadStrbuf(hKey, L"DriverVersion", &gpu->driver, NULL); wmemcpy(regDirectxKey + regDirectxKeyPrefixLength, videoId, FF_GUID_STRLEN); From 0b85fc74eb166b38a41dce8b06acd7eaf418698c Mon Sep 17 00:00:00 2001 From: Carter Li Date: Mon, 12 Aug 2024 11:03:52 +0800 Subject: [PATCH 12/27] Fastfetch: increase precision of `--stat` --- src/common/commandoption.c | 6 +++--- src/common/jsonconfig.c | 6 +++--- src/common/time.h | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/common/commandoption.c b/src/common/commandoption.c index c906d9416..a54b57ce7 100644 --- a/src/common/commandoption.c +++ b/src/common/commandoption.c @@ -111,7 +111,7 @@ void ffPrintCommandOption(FFdata* data, yyjson_mut_doc* jsonDoc) uint32_t colonIndex = ffStrbufNextIndexC(&data->structure, startIndex, ':'); data->structure.chars[colonIndex] = '\0'; - uint64_t ms = 0; + double ms = 0; if(instance.config.display.stat) ms = ffTimeGetTick(); @@ -124,12 +124,12 @@ void ffPrintCommandOption(FFdata* data, yyjson_mut_doc* jsonDoc) if (jsonDoc) { yyjson_mut_val* moduleJson = yyjson_mut_arr_get_last(jsonDoc->root); - yyjson_mut_obj_add_uint(jsonDoc, moduleJson, "stat", ms); + yyjson_mut_obj_add_real(jsonDoc, moduleJson, "stat", ms); } else { char str[32]; - int len = snprintf(str, sizeof str, "%" PRIu64 "ms", ms); + int len = snprintf(str, sizeof str, "%.3fms", ms); printf("\033[s\033[1A\033[9999999C\033[%dD%s\033[u", len, str); // Save; Up 1; Right 9999999; Left ; Print ; Load } } diff --git a/src/common/jsonconfig.c b/src/common/jsonconfig.c index 384d8f0b4..537607641 100644 --- a/src/common/jsonconfig.c +++ b/src/common/jsonconfig.c @@ -185,7 +185,7 @@ static const char* printJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc) size_t idx, max; yyjson_arr_foreach(modules, idx, max, item) { - uint64_t ms = 0; + double ms = 0; if(!prepare && instance.config.display.stat) ms = ffTimeGetTick(); @@ -214,12 +214,12 @@ static const char* printJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc) if (jsonDoc) { yyjson_mut_val* moduleJson = yyjson_mut_arr_get_last(jsonDoc->root); - yyjson_mut_obj_add_uint(jsonDoc, moduleJson, "stat", ms); + yyjson_mut_obj_add_real(jsonDoc, moduleJson, "stat", ms); } else { char str[32]; - int len = snprintf(str, sizeof str, "%" PRIu64 "ms", ms); + int len = snprintf(str, sizeof str, "%.3fms", ms); printf("\033[s\033[1A\033[9999999C\033[%dD%s\033[u", len, str); // Save; Up 1; Right 9999999; Left ; Print ; Load } } diff --git a/src/common/time.h b/src/common/time.h index d98ca8e34..1b0fba635 100644 --- a/src/common/time.h +++ b/src/common/time.h @@ -9,18 +9,18 @@ #include #endif -static inline uint64_t ffTimeGetTick() //In msec +static inline double ffTimeGetTick() //In msec { #ifdef _WIN32 LARGE_INTEGER frequency; QueryPerformanceFrequency(&frequency); LARGE_INTEGER start; QueryPerformanceCounter(&start); - return (uint64_t)(start.QuadPart * 1000 / frequency.QuadPart); + return (double) start.QuadPart * 1000 / (double) frequency.QuadPart; #else struct timespec timeNow; clock_gettime(CLOCK_MONOTONIC, &timeNow); - return (uint64_t)(((uint64_t) timeNow.tv_sec * 1000u) + ((uint64_t) timeNow.tv_nsec / 1000000u)); + return (double) timeNow.tv_sec * 1000. + (double) timeNow.tv_nsec / 1000000.; #endif } From f6e1e5c96b1458b47ebd25d076a023ced94e5aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Aug 2024 16:16:47 +0800 Subject: [PATCH 13/27] Fastfetch: support `--stat ` --- doc/json_schema.json | 14 +++++++++--- src/common/commandoption.c | 12 ++++++---- src/common/jsonconfig.c | 12 ++++++---- src/common/time.h | 4 ++-- src/options/display.c | 45 ++++++++++++++++++++++++++++++++++---- src/options/display.h | 2 +- 6 files changed, 71 insertions(+), 18 deletions(-) diff --git a/doc/json_schema.json b/doc/json_schema.json index a6e0bca2b..c7786dcea 100644 --- a/doc/json_schema.json +++ b/doc/json_schema.json @@ -357,9 +357,17 @@ "additionalProperties": false, "properties": { "stat": { - "type": "boolean", - "description": "Show time usage (in ms) for individual modules", - "default": false + "description": "Show time usage (in ms) for individual modules with optional threshold", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "integer", + "minimum": 1 + } + ] }, "pipe": { "type": "boolean", diff --git a/src/common/commandoption.c b/src/common/commandoption.c index a54b57ce7..b71ef2bf4 100644 --- a/src/common/commandoption.c +++ b/src/common/commandoption.c @@ -1,4 +1,5 @@ #include "commandoption.h" +#include "common/color.h" #include "common/printing.h" #include "common/time.h" #include "common/jsonconfig.h" @@ -105,6 +106,7 @@ static void parseStructureCommand( void ffPrintCommandOption(FFdata* data, yyjson_mut_doc* jsonDoc) { //Parse the structure and call the modules + uint32_t thres = (uint32_t) instance.config.display.stat; uint32_t startIndex = 0; while (startIndex < data->structure.length) { @@ -112,12 +114,12 @@ void ffPrintCommandOption(FFdata* data, yyjson_mut_doc* jsonDoc) data->structure.chars[colonIndex] = '\0'; double ms = 0; - if(instance.config.display.stat) + if(thres >= 0) ms = ffTimeGetTick(); parseStructureCommand(data->structure.chars + startIndex, genJsonResult, jsonDoc); - if(instance.config.display.stat) + if(thres >= 0) { ms = ffTimeGetTick() - ms; @@ -128,9 +130,11 @@ void ffPrintCommandOption(FFdata* data, yyjson_mut_doc* jsonDoc) } else { - char str[32]; + char str[64]; int len = snprintf(str, sizeof str, "%.3fms", ms); - printf("\033[s\033[1A\033[9999999C\033[%dD%s\033[u", len, str); // Save; Up 1; Right 9999999; Left ; Print ; Load + if (thres > 0) + snprintf(str, sizeof str, "\e[%sm%.3fms\e[m", (ms <= thres ? FF_COLOR_FG_GREEN : ms <= 2 * thres ? FF_COLOR_FG_YELLOW : FF_COLOR_FG_RED), ms); + printf("\e[s\e[1A\e[9999999C\e[%dD%s\e[u", len, str); // Save; Up 1; Right 9999999; Left ; Print ; Load } } diff --git a/src/common/jsonconfig.c b/src/common/jsonconfig.c index 537607641..673047b2d 100644 --- a/src/common/jsonconfig.c +++ b/src/common/jsonconfig.c @@ -1,4 +1,5 @@ #include "fastfetch.h" +#include "common/color.h" #include "common/jsonconfig.h" #include "common/printing.h" #include "common/io/io.h" @@ -181,12 +182,13 @@ static const char* printJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc) if (!modules) return NULL; if (!yyjson_is_arr(modules)) return "Property 'modules' must be an array of strings or objects"; + uint32_t thres = (uint32_t) instance.config.display.stat; yyjson_val* item; size_t idx, max; yyjson_arr_foreach(modules, idx, max, item) { double ms = 0; - if(!prepare && instance.config.display.stat) + if(!prepare && thres >= 0) ms = ffTimeGetTick(); yyjson_val* module = item; @@ -208,7 +210,7 @@ static const char* printJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc) else if(!parseModuleJsonObject(type, module, jsonDoc)) return "Unknown module type"; - if(!prepare && instance.config.display.stat) + if(!prepare && thres >= 0) { ms = ffTimeGetTick() - ms; if (jsonDoc) @@ -218,9 +220,11 @@ static const char* printJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc) } else { - char str[32]; + char str[64]; int len = snprintf(str, sizeof str, "%.3fms", ms); - printf("\033[s\033[1A\033[9999999C\033[%dD%s\033[u", len, str); // Save; Up 1; Right 9999999; Left ; Print ; Load + if (thres > 0) + snprintf(str, sizeof str, "\e[%sm%.3fms\e[m", (ms <= thres ? FF_COLOR_FG_GREEN : ms <= 2 * thres ? FF_COLOR_FG_YELLOW : FF_COLOR_FG_RED), ms); + printf("\e[s\e[1A\e[9999999C\e[%dD%s\e[u", len, str); // Save; Up 1; Right 9999999; Left ; Print ; Load } } diff --git a/src/common/time.h b/src/common/time.h index 1b0fba635..588ba7847 100644 --- a/src/common/time.h +++ b/src/common/time.h @@ -9,7 +9,7 @@ #include #endif -static inline double ffTimeGetTick() //In msec +static inline double ffTimeGetTick(void) //In msec { #ifdef _WIN32 LARGE_INTEGER frequency; @@ -24,7 +24,7 @@ static inline double ffTimeGetTick() //In msec #endif } -static inline uint64_t ffTimeGetNow() +static inline uint64_t ffTimeGetNow(void) { #ifdef _WIN32 uint64_t timeNow; diff --git a/src/options/display.c b/src/options/display.c index cc844b08f..0dc0ad6a9 100644 --- a/src/options/display.c +++ b/src/options/display.c @@ -20,8 +20,23 @@ const char* ffOptionsParseDisplayJsonConfig(FFOptionsDisplay* options, yyjson_va if (ffStrEqualsIgnCase(key, "stat")) { - if ((options->stat = yyjson_get_bool(val))) + if (yyjson_is_bool(val)) + { + if (yyjson_get_bool(val)) + { + options->stat = 0; + options->showErrors = true; + } + else + options->stat = -1; + } + else if (yyjson_is_uint(val)) + { + options->stat = (int) yyjson_get_uint(val); options->showErrors = true; + } + else + return "display.stat must be a boolean or a positive integer"; } else if (ffStrEqualsIgnCase(key, "pipe")) options->pipe = yyjson_get_bool(val); @@ -271,8 +286,25 @@ bool ffOptionsParseDisplayCommandLine(FFOptionsDisplay* options, const char* key { if(ffStrEqualsIgnCase(key, "--stat")) { - if((options->stat = ffOptionParseBoolean(value))) + if(ffOptionParseBoolean(value)) + { + options->stat = 0; options->showErrors = true; + } + else if (value) + { + char* end; + uint32_t num = (uint32_t) strtoul(value, &end, 10); + if (*end == '\0') + { + options->stat = (int32_t) num; + options->showErrors = true; + } + else + options->stat = -1; + } + else + options->stat = -1; } else if(ffStrEqualsIgnCase(key, "--pipe")) options->pipe = ffOptionParseBoolean(value); @@ -470,7 +502,7 @@ void ffOptionsInitDisplay(FFOptionsDisplay* options) options->sizeBinaryPrefix = FF_SIZE_BINARY_PREFIX_TYPE_IEC; options->sizeNdigits = 2; options->sizeMaxPrefix = UINT8_MAX; - options->stat = false; + options->stat = -1; options->noBuffer = false; options->keyWidth = 0; options->keyPaddingLeft = 0; @@ -519,7 +551,12 @@ void ffOptionsGenerateDisplayJsonConfig(FFOptionsDisplay* options, yyjson_mut_do yyjson_mut_val* obj = yyjson_mut_obj(doc); if (options->stat != defaultOptions.stat) - yyjson_mut_obj_add_bool(doc, obj, "stat", options->stat); + { + if (options->stat <= 0) + yyjson_mut_obj_add_bool(doc, obj, "stat", options->stat == 0); + else + yyjson_mut_obj_add_int(doc, obj, "stat", options->stat); + } if (options->pipe != defaultOptions.pipe) yyjson_mut_obj_add_bool(doc, obj, "pipe", options->pipe); diff --git a/src/options/display.h b/src/options/display.h index 934c2cac1..fe1f0ba5d 100644 --- a/src/options/display.h +++ b/src/options/display.h @@ -28,7 +28,7 @@ typedef struct FFOptionsDisplay FFstrbuf keyValueSeparator; - bool stat; + int32_t stat; // <0: disable stat; 0: no threshold; >0: threshold in ms bool pipe; //disables all escape sequences bool showErrors; bool disableLinewrap; From ea18d93a4063f857b252d2ea32c8c2b4c5c9fc0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 12 Aug 2024 16:23:01 +0800 Subject: [PATCH 14/27] Display / Monitor (macOS): code refactor --- .../displayserver/displayserver_apple.c | 38 +++++++++---------- src/detection/monitor/monitor_apple.m | 11 +++--- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/detection/displayserver/displayserver_apple.c b/src/detection/displayserver/displayserver_apple.c index d2e87ecf2..d05eb8b1e 100644 --- a/src/detection/displayserver/displayserver_apple.c +++ b/src/detection/displayserver/displayserver_apple.c @@ -8,10 +8,11 @@ #include #include +#ifdef MAC_OS_X_VERSION_10_15 extern CFDictionaryRef CoreDisplay_DisplayCreateInfoDictionary(CGDirectDisplayID display) __attribute__((weak_import)); -#ifndef MAC_OS_X_VERSION_10_15 -#import -extern CFDictionaryRef CoreDisplay_IODisplayCreateInfoDictionary(io_service_t framebuffer, IOOptionBits options) __attribute__((weak_import)); +extern Boolean CoreDisplay_Display_IsHDRModeEnabled(CGDirectDisplayID display) __attribute__((weak_import)); +#else +#include #endif static void detectDisplays(FFDisplayServerResult* ds) @@ -43,30 +44,22 @@ static void detectDisplays(FFDisplayServerResult* ds) } FF_STRBUF_AUTO_DESTROY name = ffStrbufCreate(); + CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = NULL; #ifdef MAC_OS_X_VERSION_10_15 if(CoreDisplay_DisplayCreateInfoDictionary) - { - CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = CoreDisplay_DisplayCreateInfoDictionary(screen); - if(displayInfo) - { - CFDictionaryRef productNames; - if(!ffCfDictGetDict(displayInfo, CFSTR(kDisplayProductName), &productNames)) - ffCfDictGetString(productNames, CFSTR("en_US"), &name); - } - } + displayInfo = CoreDisplay_DisplayCreateInfoDictionary(screen); #else - if(CoreDisplay_IODisplayCreateInfoDictionary) { io_service_t servicePort = CGDisplayIOServicePort(screen); - CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = CoreDisplay_IODisplayCreateInfoDictionary(servicePort, kIODisplayOnlyPreferredName); - if(displayInfo) - { - CFDictionaryRef productNames; - if(!ffCfDictGetDict(displayInfo, CFSTR(kDisplayProductName), &productNames)) - ffCfDictGetString(productNames, CFSTR("en_US"), &name); - } + displayInfo = IODisplayCreateInfoDictionary(servicePort, kIODisplayOnlyPreferredName); } #endif + if(displayInfo) + { + CFDictionaryRef productNames; + if(!ffCfDictGetDict(displayInfo, CFSTR(kDisplayProductName), &productNames)) + ffCfDictGetString(productNames, CFSTR("en_US"), &name); + } CGSize size = CGDisplayScreenSize(screen); @@ -95,6 +88,11 @@ static void detectDisplays(FFDisplayServerResult* ds) ffCfDictGetInt(dict, kCGDisplayBitsPerSample, &bitDepth); display->bitDepth = (uint8_t) bitDepth; } + + if (CoreDisplay_Display_IsHDRModeEnabled) + { + display->hdrEnabled = CoreDisplay_Display_IsHDRModeEnabled(screen); + } } CGDisplayModeRelease(mode); } diff --git a/src/detection/monitor/monitor_apple.m b/src/detection/monitor/monitor_apple.m index 2c4a1e3c2..70d71eeb6 100644 --- a/src/detection/monitor/monitor_apple.m +++ b/src/detection/monitor/monitor_apple.m @@ -7,11 +7,10 @@ #import #import +#ifdef MAC_OS_X_VERSION_10_15 extern CFDictionaryRef CoreDisplay_DisplayCreateInfoDictionary(CGDirectDisplayID display) __attribute__((weak_import)); - -#ifndef MAC_OS_X_VERSION_10_15 -#import -extern CFDictionaryRef CoreDisplay_IODisplayCreateInfoDictionary(io_service_t framebuffer, IOOptionBits options) __attribute__((weak_import)); +#else +#include #endif static bool detectHdrSupportWithNSScreen(FFDisplayResult* display) @@ -57,7 +56,7 @@ static bool detectHdrSupportWithNSScreen(FFDisplayResult* display) CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = CoreDisplay_DisplayCreateInfoDictionary((CGDirectDisplayID) display->id); #else io_service_t servicePort = CGDisplayIOServicePort((CGDirectDisplayID) display->id); - CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = CoreDisplay_IODisplayCreateInfoDictionary(servicePort, kIODisplayOnlyPreferredName); + CFDictionaryRef FF_CFTYPE_AUTO_RELEASE displayInfo = IODisplayCreateInfoDictionary(servicePort, kIODisplayOnlyPreferredName); #endif if(!displayInfo) continue; @@ -67,7 +66,7 @@ static bool detectHdrSupportWithNSScreen(FFDisplayResult* display) uint8_t edidData[128] = {}; uint32_t edidLength = 0; - if (ffCfDictGetData(displayInfo, CFSTR("IODisplayEDID"), 0, sizeof(edidData), edidData, &edidLength) == NULL) + if (ffCfDictGetData(displayInfo, CFSTR(kIODisplayEDIDKey), 0, sizeof(edidData), edidData, &edidLength) == NULL) { uint32_t width, height; ffEdidGetPhysicalResolution(edidData, &width, &height); From c6e16773693f97e2c5a5bbb82371203a6af7e704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 13 Aug 2024 14:46:24 +0800 Subject: [PATCH 15/27] BootMgr (Windows): `ControlSet001` -> `CurrentControlSet` --- src/detection/bootmgr/bootmgr_windows.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/detection/bootmgr/bootmgr_windows.c b/src/detection/bootmgr/bootmgr_windows.c index e3c687d02..af6199b80 100644 --- a/src/detection/bootmgr/bootmgr_windows.c +++ b/src/detection/bootmgr/bootmgr_windows.c @@ -46,7 +46,7 @@ const char* ffDetectBootmgr(FFBootmgrResult* result) ffEfiFillLoadOption((FFEfiLoadOption *)buffer, result); DWORD uefiSecureBootEnabled = 0, bufSize = 0; - if (RegGetValueW(HKEY_LOCAL_MACHINE, L"SYSTEM\\ControlSet001\\Control\\SecureBoot\\State", L"UEFISecureBootEnabled", RRF_RT_REG_DWORD, NULL, &uefiSecureBootEnabled, &bufSize) == ERROR_SUCCESS) + if (RegGetValueW(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\SecureBoot\\State", L"UEFISecureBootEnabled", RRF_RT_REG_DWORD, NULL, &uefiSecureBootEnabled, &bufSize) == ERROR_SUCCESS) result->secureBoot = !!uefiSecureBootEnabled; return NULL; From 96c838d3f328b089dbeaf73333dd537a26b1c9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 13 Aug 2024 14:51:41 +0800 Subject: [PATCH 16/27] GPU (Windows): code refactor --- src/detection/gpu/gpu_windows.c | 45 +++++++++++++++------------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/detection/gpu/gpu_windows.c b/src/detection/gpu/gpu_windows.c index 6d9153be4..d4d616c1e 100644 --- a/src/detection/gpu/gpu_windows.c +++ b/src/detection/gpu/gpu_windows.c @@ -15,7 +15,7 @@ static inline void wrapSetupDiDestroyDeviceInfoList(HDEVINFO* hdev) } #define FF_EMPTY_GUID_STR L"{00000000-0000-0000-0000-000000000000}" -#define FF_GUID_STRLEN (sizeof(FF_EMPTY_GUID_STR) / sizeof(wchar_t) - 1) +enum { FF_GUID_STRLEN = sizeof(FF_EMPTY_GUID_STR) / sizeof(wchar_t) - 1 }; const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* gpus) { @@ -37,7 +37,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* ffStrbufInit(&gpu->vendor); ffStrbufInit(&gpu->name); ffStrbufInit(&gpu->driver); - ffStrbufInitStatic(&gpu->platformApi, "Direct3D"); + ffStrbufInitStatic(&gpu->platformApi, "SetupAPI"); gpu->temperature = FF_GPU_TEMP_UNSET; gpu->coreCount = FF_GPU_CORE_COUNT_UNSET; gpu->coreUsage = FF_GPU_CORE_USAGE_UNSET; @@ -46,34 +46,31 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* gpu->deviceId = 0; gpu->frequency = FF_GPU_FREQUENCY_UNSET; - wchar_t name[256]; - if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_DEVICEDESC, NULL, (PBYTE) name, sizeof(name), NULL)) - ffStrbufSetWS(&gpu->name, name); + wchar_t buffer[256]; + if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_DEVICEDESC, NULL, (PBYTE) buffer, sizeof(buffer), NULL)) + ffStrbufSetWS(&gpu->name, buffer); - wchar_t hardwareId[256]; - if (!SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_HARDWAREID, NULL, (PBYTE) hardwareId, sizeof(hardwareId), NULL)) + if (!SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_HARDWAREID, NULL, (PBYTE) buffer, sizeof(buffer), NULL)) continue; unsigned vendorId = 0, deviceId = 0, subSystemId = 0, revId = 0; - swscanf(hardwareId, L"PCI\\VEN_%x&DEV_%x&SUBSYS_%x&REV_%x", &vendorId, &deviceId, &subSystemId, &revId); + swscanf(buffer, L"PCI\\VEN_%x&DEV_%x&SUBSYS_%x&REV_%x", &vendorId, &deviceId, &subSystemId, &revId); ffStrbufSetStatic(&gpu->vendor, ffGetGPUVendorString(vendorId)); - wchar_t videoId[39]; - { - FF_HKEY_AUTO_DESTROY hKey = SetupDiOpenDevRegKey(hdev, &did, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE); - if (!hKey) continue; - DWORD videoIdLength = sizeof(videoId); - if (RegGetValueW(hKey, NULL, L"VideoID", RRF_RT_REG_SZ, NULL, videoId, &videoIdLength) != ERROR_SUCCESS || videoIdLength != (FF_GUID_STRLEN + 1) * sizeof(wchar_t)) - continue; - } + FF_HKEY_AUTO_DESTROY hVideoIdKey = SetupDiOpenDevRegKey(hdev, &did, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE); + if (!hVideoIdKey) continue; + DWORD videoIdLength = sizeof(buffer); + if (RegGetValueW(hVideoIdKey, NULL, L"VideoID", RRF_RT_REG_SZ, NULL, buffer, &videoIdLength) != ERROR_SUCCESS) + continue; - wmemcpy(regControlVideoKey + regControlVideoKeyPrefixLength, videoId, FF_GUID_STRLEN); - FF_HKEY_AUTO_DESTROY hKey = NULL; - if (!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regControlVideoKey, &hKey, NULL)) continue; + if (videoIdLength != (FF_GUID_STRLEN + 1) * sizeof(wchar_t)) + continue; // Should not happen - ffRegReadStrbuf(hKey, L"DriverVersion", &gpu->driver, NULL); + wmemcpy(regControlVideoKey + regControlVideoKeyPrefixLength, buffer, FF_GUID_STRLEN); + FF_HKEY_AUTO_DESTROY hRegControlVideoKey = NULL; + if (!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regControlVideoKey, &hRegControlVideoKey, NULL)) continue; - wmemcpy(regDirectxKey + regDirectxKeyPrefixLength, videoId, FF_GUID_STRLEN); + wmemcpy(regDirectxKey + regDirectxKeyPrefixLength, buffer, FF_GUID_STRLEN); FF_HKEY_AUTO_DESTROY hDirectxKey = NULL; if (ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regDirectxKey, &hDirectxKey, NULL)) { @@ -97,17 +94,17 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* else if(ffRegReadUint(hDirectxKey, L"MaxD3D11FeatureLevel", &featureLevel, NULL) && featureLevel) ffStrbufSetF(&gpu->platformApi, "Direct3D 11.%u", (featureLevel & 0x0F00) >> 8); } - else if (!ffRegReadUint64(hKey, L"HardwareInformation.qwMemorySize", &gpu->dedicated.total, NULL)) + else if (!ffRegReadUint64(hRegControlVideoKey, L"HardwareInformation.qwMemorySize", &gpu->dedicated.total, NULL)) { uint32_t vmem = 0; - if (ffRegReadUint(hKey, L"HardwareInformation.MemorySize", &vmem, NULL)) + if (ffRegReadUint(hRegControlVideoKey, L"HardwareInformation.MemorySize", &vmem, NULL)) gpu->dedicated.total = vmem; gpu->type = gpu->dedicated.total > 1024 * 1024 * 1024 ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; } if (gpu->vendor.length == 0) { - ffRegReadStrbuf(hKey, L"ProviderName", &gpu->vendor, NULL); + ffRegReadStrbuf(hRegControlVideoKey, L"ProviderName", &gpu->vendor, NULL); if (ffStrbufContainS(&gpu->vendor, "Intel")) ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_INTEL); else if (ffStrbufContainS(&gpu->vendor, "NVIDIA")) From 2281caaff87e05be6aa090adb09e1637248dd88c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 13 Aug 2024 15:28:07 +0800 Subject: [PATCH 17/27] Fastfetch: fix bug that stat info is unexpectly printed --- src/common/commandoption.c | 2 +- src/common/jsonconfig.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/commandoption.c b/src/common/commandoption.c index b71ef2bf4..01335a1ff 100644 --- a/src/common/commandoption.c +++ b/src/common/commandoption.c @@ -106,7 +106,7 @@ static void parseStructureCommand( void ffPrintCommandOption(FFdata* data, yyjson_mut_doc* jsonDoc) { //Parse the structure and call the modules - uint32_t thres = (uint32_t) instance.config.display.stat; + int32_t thres = instance.config.display.stat; uint32_t startIndex = 0; while (startIndex < data->structure.length) { diff --git a/src/common/jsonconfig.c b/src/common/jsonconfig.c index 673047b2d..5732e33b3 100644 --- a/src/common/jsonconfig.c +++ b/src/common/jsonconfig.c @@ -182,7 +182,7 @@ static const char* printJsonConfig(bool prepare, yyjson_mut_doc* jsonDoc) if (!modules) return NULL; if (!yyjson_is_arr(modules)) return "Property 'modules' must be an array of strings or objects"; - uint32_t thres = (uint32_t) instance.config.display.stat; + int32_t thres = instance.config.display.stat; yyjson_val* item; size_t idx, max; yyjson_arr_foreach(modules, idx, max, item) From fe7e684e85735a6bfae87f7fefce7ec6f943d250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 13 Aug 2024 16:42:39 +0800 Subject: [PATCH 18/27] GPU (Windows): fix missing GPUs sometimes --- src/detection/gpu/gpu_windows.c | 129 ++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 58 deletions(-) diff --git a/src/detection/gpu/gpu_windows.c b/src/detection/gpu/gpu_windows.c index d4d616c1e..6ad1cd2e8 100644 --- a/src/detection/gpu/gpu_windows.c +++ b/src/detection/gpu/gpu_windows.c @@ -17,6 +17,11 @@ static inline void wrapSetupDiDestroyDeviceInfoList(HDEVINFO* hdev) #define FF_EMPTY_GUID_STR L"{00000000-0000-0000-0000-000000000000}" enum { FF_GUID_STRLEN = sizeof(FF_EMPTY_GUID_STR) / sizeof(wchar_t) - 1 }; +wchar_t regDirectxKey[] = L"SOFTWARE\\Microsoft\\DirectX\\" FF_EMPTY_GUID_STR; +const uint32_t regDirectxKeyPrefixLength = (uint32_t) __builtin_strlen("SOFTWARE\\Microsoft\\DirectX\\"); +wchar_t regDriverKey[] = L"SYSTEM\\CurrentControlSet\\Control\\Class\\" FF_EMPTY_GUID_STR L"\\0000"; +const uint32_t regDriverKeyPrefixLength = (uint32_t) __builtin_strlen("SYSTEM\\CurrentControlSet\\Control\\Class\\"); + const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* gpus) { HDEVINFO hdev __attribute__((__cleanup__(wrapSetupDiDestroyDeviceInfoList))) = @@ -25,11 +30,6 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* if(hdev == INVALID_HANDLE_VALUE) return "SetupDiGetClassDevsW(&GUID_DEVCLASS_DISPLAY) failed"; - wchar_t regDirectxKey[] = L"SOFTWARE\\Microsoft\\DirectX\\" FF_EMPTY_GUID_STR; - const uint32_t regDirectxKeyPrefixLength = (uint32_t) strlen("SOFTWARE\\Microsoft\\DirectX\\"); - wchar_t regControlVideoKey[] = L"SYSTEM\\CurrentControlSet\\Control\\Video\\" FF_EMPTY_GUID_STR L"\\0000"; - const uint32_t regControlVideoKeyPrefixLength = (uint32_t) strlen("SYSTEM\\CurrentControlSet\\Control\\Video\\"); - SP_DEVINFO_DATA did = { .cbSize = sizeof(did) }; for (DWORD idev = 0; SetupDiEnumDeviceInfo(hdev, idev, &did); ++idev) { @@ -50,67 +50,73 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_DEVICEDESC, NULL, (PBYTE) buffer, sizeof(buffer), NULL)) ffStrbufSetWS(&gpu->name, buffer); - if (!SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_HARDWAREID, NULL, (PBYTE) buffer, sizeof(buffer), NULL)) - continue; - - unsigned vendorId = 0, deviceId = 0, subSystemId = 0, revId = 0; - swscanf(buffer, L"PCI\\VEN_%x&DEV_%x&SUBSYS_%x&REV_%x", &vendorId, &deviceId, &subSystemId, &revId); - ffStrbufSetStatic(&gpu->vendor, ffGetGPUVendorString(vendorId)); - FF_HKEY_AUTO_DESTROY hVideoIdKey = SetupDiOpenDevRegKey(hdev, &did, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE); if (!hVideoIdKey) continue; - DWORD videoIdLength = sizeof(buffer); - if (RegGetValueW(hVideoIdKey, NULL, L"VideoID", RRF_RT_REG_SZ, NULL, buffer, &videoIdLength) != ERROR_SUCCESS) - continue; - - if (videoIdLength != (FF_GUID_STRLEN + 1) * sizeof(wchar_t)) - continue; // Should not happen - - wmemcpy(regControlVideoKey + regControlVideoKeyPrefixLength, buffer, FF_GUID_STRLEN); - FF_HKEY_AUTO_DESTROY hRegControlVideoKey = NULL; - if (!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regControlVideoKey, &hRegControlVideoKey, NULL)) continue; - - wmemcpy(regDirectxKey + regDirectxKeyPrefixLength, buffer, FF_GUID_STRLEN); - FF_HKEY_AUTO_DESTROY hDirectxKey = NULL; - if (ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regDirectxKey, &hDirectxKey, NULL)) + DWORD bufferLen = sizeof(buffer); + if (RegGetValueW(hVideoIdKey, NULL, L"VideoID", RRF_RT_REG_SZ, NULL, buffer, &bufferLen) == ERROR_SUCCESS && + bufferLen == (FF_GUID_STRLEN + 1) * sizeof(wchar_t)) { - uint64_t dedicatedVideoMemory = 0; - if(ffRegReadUint64(hDirectxKey, L"DedicatedVideoMemory", &dedicatedVideoMemory, NULL)) - gpu->type = dedicatedVideoMemory >= 1024 * 1024 * 1024 ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; - - uint64_t dedicatedSystemMemory, sharedSystemMemory; - if(ffRegReadUint64(hDirectxKey, L"DedicatedSystemMemory", &dedicatedSystemMemory, NULL) && - ffRegReadUint64(hDirectxKey, L"SharedSystemMemory", &sharedSystemMemory, NULL)) + wmemcpy(regDirectxKey + regDirectxKeyPrefixLength, buffer, FF_GUID_STRLEN); + FF_HKEY_AUTO_DESTROY hDirectxKey = NULL; + if (ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regDirectxKey, &hDirectxKey, NULL)) { - gpu->dedicated.total = dedicatedVideoMemory + dedicatedSystemMemory; - gpu->shared.total = sharedSystemMemory; + uint64_t dedicatedVideoMemory = 0; + if(ffRegReadUint64(hDirectxKey, L"DedicatedVideoMemory", &dedicatedVideoMemory, NULL)) + gpu->type = dedicatedVideoMemory >= 1024 * 1024 * 1024 ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; + + uint64_t dedicatedSystemMemory, sharedSystemMemory; + if(ffRegReadUint64(hDirectxKey, L"DedicatedSystemMemory", &dedicatedSystemMemory, NULL) && + ffRegReadUint64(hDirectxKey, L"SharedSystemMemory", &sharedSystemMemory, NULL)) + { + gpu->dedicated.total = dedicatedVideoMemory + dedicatedSystemMemory; + gpu->shared.total = sharedSystemMemory; + } + + ffRegReadUint64(hDirectxKey, L"AdapterLuid", &gpu->deviceId, NULL); + + uint32_t featureLevel = 0; + if(ffRegReadUint(hDirectxKey, L"MaxD3D12FeatureLevel", &featureLevel, NULL) && featureLevel) + ffStrbufSetF(&gpu->platformApi, "Direct3D 12.%u", (featureLevel & 0x0F00) >> 8); + else if(ffRegReadUint(hDirectxKey, L"MaxD3D11FeatureLevel", &featureLevel, NULL) && featureLevel) + ffStrbufSetF(&gpu->platformApi, "Direct3D 11.%u", (featureLevel & 0x0F00) >> 8); + + uint64_t driverVersion = 0; + if(ffRegReadUint64(hDirectxKey, L"DriverVersion", &driverVersion, NULL) && driverVersion) + { + ffStrbufSetF(&gpu->driver, "%u.%u.%u.%u", + (unsigned) (driverVersion >> 48) & 0xFFFF, + (unsigned) (driverVersion >> 32) & 0xFFFF, + (unsigned) (driverVersion >> 16) & 0xFFFF, + (unsigned) (driverVersion >> 0) & 0xFFFF + ); + } + + uint32_t vendorId = 0; + if(ffRegReadUint(hDirectxKey, L"VendorId", &vendorId, NULL) && vendorId) + ffStrbufSetStatic(&gpu->vendor, ffGetGPUVendorString(vendorId)); } - - ffRegReadUint64(hDirectxKey, L"AdapterLuid", &gpu->deviceId, NULL); - - uint32_t featureLevel = 0; - if(ffRegReadUint(hDirectxKey, L"MaxD3D12FeatureLevel", &featureLevel, NULL) && featureLevel) - ffStrbufSetF(&gpu->platformApi, "Direct3D 12.%u", (featureLevel & 0x0F00) >> 8); - else if(ffRegReadUint(hDirectxKey, L"MaxD3D11FeatureLevel", &featureLevel, NULL) && featureLevel) - ffStrbufSetF(&gpu->platformApi, "Direct3D 11.%u", (featureLevel & 0x0F00) >> 8); - } - else if (!ffRegReadUint64(hRegControlVideoKey, L"HardwareInformation.qwMemorySize", &gpu->dedicated.total, NULL)) - { - uint32_t vmem = 0; - if (ffRegReadUint(hRegControlVideoKey, L"HardwareInformation.MemorySize", &vmem, NULL)) - gpu->dedicated.total = vmem; - gpu->type = gpu->dedicated.total > 1024 * 1024 * 1024 ? FF_GPU_TYPE_DISCRETE : FF_GPU_TYPE_INTEGRATED; } if (gpu->vendor.length == 0) { - ffRegReadStrbuf(hRegControlVideoKey, L"ProviderName", &gpu->vendor, NULL); - if (ffStrbufContainS(&gpu->vendor, "Intel")) - ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_INTEL); - else if (ffStrbufContainS(&gpu->vendor, "NVIDIA")) - ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_NVIDIA); - else if (ffStrbufContainS(&gpu->vendor, "AMD") || ffStrbufContainS(&gpu->vendor, "ATI")) - ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_AMD); + bufferLen = sizeof(buffer); + if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_DRIVER, NULL, (PBYTE) buffer, sizeof(buffer), &bufferLen) && bufferLen == (FF_GUID_STRLEN + strlen("\\0000") + 1) * 2) + { + wmemcpy(regDriverKey + regDriverKeyPrefixLength, buffer, FF_GUID_STRLEN + strlen("\\0000")); + FF_HKEY_AUTO_DESTROY hRegDriverKey = NULL; + if (ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, regDriverKey, &hRegDriverKey, NULL)) + { + if (ffRegReadStrbuf(hRegDriverKey, L"ProviderName", &gpu->vendor, NULL)) + { + if (ffStrbufContainS(&gpu->vendor, "Intel")) + ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_INTEL); + else if (ffStrbufContainS(&gpu->vendor, "NVIDIA")) + ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_NVIDIA); + else if (ffStrbufContainS(&gpu->vendor, "AMD") || ffStrbufContainS(&gpu->vendor, "ATI")) + ffStrbufSetStatic(&gpu->vendor, FF_GPU_VENDOR_NAME_AMD); + } + } + } } __typeof__(&ffDetectNvidiaGpuInfo) detectFn; @@ -118,6 +124,13 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* if (getDriverSpecificDetectionFn(gpu->vendor.chars, &detectFn, &dllName) && (options->temp || options->driverSpecific)) { + unsigned vendorId = 0, deviceId = 0, subSystemId = 0, revId = 0; + if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_HARDWAREID, NULL, (PBYTE) buffer, sizeof(buffer), NULL)) + { + swscanf(buffer, L"PCI\\VEN_%x&DEV_%x&SUBSYS_%x&REV_%x", &vendorId, &deviceId, &subSystemId, &revId); + ffStrbufSetStatic(&gpu->vendor, ffGetGPUVendorString(vendorId)); + } + uint32_t pciBus, pciAddr; if (SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_BUSNUMBER, NULL, (PBYTE) &pciBus, sizeof(pciBus), NULL) && SetupDiGetDeviceRegistryPropertyW(hdev, &did, SPDRP_ADDRESS, NULL, (PBYTE) &pciAddr, sizeof(pciAddr), NULL)) @@ -129,7 +142,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* &(FFGpuDriverCondition) { .type = FF_GPU_DRIVER_CONDITION_TYPE_DEVICE_ID | (gpu->deviceId > 0 ? FF_GPU_DRIVER_CONDITION_TYPE_LUID : 0) - | FF_GPU_DRIVER_CONDITION_TYPE_BUS_ID, + | (vendorId > 0 ? FF_GPU_DRIVER_CONDITION_TYPE_BUS_ID : 0), .pciDeviceId = { .deviceId = deviceId, .vendorId = vendorId, From dd666261654824d322a723013735dd5881b27ba3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 08:31:14 +0800 Subject: [PATCH 19/27] Display: remove detection of `WCG enabled` --- src/detection/displayserver/displayserver.c | 1 - src/detection/displayserver/displayserver.h | 1 - src/detection/displayserver/displayserver_windows.c | 1 - src/detection/displayserver/linux/wayland/kde-output.c | 9 +-------- src/detection/displayserver/linux/wayland/wayland.h | 1 - src/modules/display/display.c | 5 +---- 6 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/detection/displayserver/displayserver.c b/src/detection/displayserver/displayserver.c index 73f1cd0c8..ddc973962 100644 --- a/src/detection/displayserver/displayserver.c +++ b/src/detection/displayserver/displayserver.c @@ -34,7 +34,6 @@ FFDisplayResult* ffdsAppendDisplay( display->bitDepth = 0; display->hdrEnabled = false; - display->wcgEnabled = false; return display; } diff --git a/src/detection/displayserver/displayserver.h b/src/detection/displayserver/displayserver.h index aa0bd9007..127dbc5fe 100644 --- a/src/detection/displayserver/displayserver.h +++ b/src/detection/displayserver/displayserver.h @@ -64,7 +64,6 @@ typedef struct FFDisplayResult bool primary; uint8_t bitDepth; bool hdrEnabled; - bool wcgEnabled; } FFDisplayResult; typedef struct FFDisplayServerResult diff --git a/src/detection/displayserver/displayserver_windows.c b/src/detection/displayserver/displayserver_windows.c index e443a7fd8..3c685e287 100644 --- a/src/detection/displayserver/displayserver_windows.c +++ b/src/detection/displayserver/displayserver_windows.c @@ -178,7 +178,6 @@ static void detectDisplays(FFDisplayServerResult* ds) if (DisplayConfigGetDeviceInfo(&advColorInfo.header) == ERROR_SUCCESS) { display->hdrEnabled = !!advColorInfo.advancedColorEnabled; - display->wcgEnabled = !!advColorInfo.wideColorEnforced; display->bitDepth = (uint8_t) advColorInfo.bitsPerColorChannel; } } diff --git a/src/detection/displayserver/linux/wayland/kde-output.c b/src/detection/displayserver/linux/wayland/kde-output.c index e02d6dbf2..fd0d4809b 100644 --- a/src/detection/displayserver/linux/wayland/kde-output.c +++ b/src/detection/displayserver/linux/wayland/kde-output.c @@ -119,12 +119,6 @@ static void waylandKdeHdrListener(void *data, FF_MAYBE_UNUSED struct kde_output_ display->hdrEnabled = !!hdr_enabled; } -static void waylandKdeWcgListener(void *data, FF_MAYBE_UNUSED struct kde_output_device_v2 *kde_output_device_v2, uint32_t wcg_enabled) -{ - WaylandDisplay* display = data; - display->wcgEnabled = !!wcg_enabled; -} - static struct kde_output_device_v2_listener outputListener = { .geometry = waylandKdeGeometryListener, .current_mode = waylandKdeCurrentModeListener, @@ -143,7 +137,7 @@ static struct kde_output_device_v2_listener outputListener = { .name = waylandKdeNameListener, .high_dynamic_range = waylandKdeHdrListener, .sdr_brightness = (void*) stubListener, - .wide_color_gamut = waylandKdeWcgListener, + .wide_color_gamut = (void*) stubListener, .auto_rotate_policy = (void*) stubListener, .icc_profile_path = (void*) stubListener, .brightness_metadata = (void*) stubListener, @@ -202,7 +196,6 @@ void ffWaylandHandleKdeOutput(WaylandData* wldata, struct wl_registry* registry, if (item) { item->hdrEnabled = display.hdrEnabled; - item->wcgEnabled = display.wcgEnabled; } ffStrbufDestroy(&display.description); diff --git a/src/detection/displayserver/linux/wayland/wayland.h b/src/detection/displayserver/linux/wayland/wayland.h index c5d57c71a..df7056a7b 100644 --- a/src/detection/displayserver/linux/wayland/wayland.h +++ b/src/detection/displayserver/linux/wayland/wayland.h @@ -47,7 +47,6 @@ typedef struct WaylandDisplay FFstrbuf edidName; uint64_t id; bool hdrEnabled; - bool wcgEnabled; void* internal; } WaylandDisplay; diff --git a/src/modules/display/display.c b/src/modules/display/display.c index d89a042af..8d73a67ce 100644 --- a/src/modules/display/display.c +++ b/src/modules/display/display.c @@ -6,7 +6,7 @@ #include -#define FF_DISPLAY_NUM_FORMAT_ARGS 16 +#define FF_DISPLAY_NUM_FORMAT_ARGS 15 static int sortByNameAsc(FFDisplayResult* a, FFDisplayResult* b) { @@ -156,7 +156,6 @@ void ffPrintDisplay(FFDisplayOptions* options) {FF_FORMAT_ARG_TYPE_DOUBLE, &ppi, "ppi"}, {FF_FORMAT_ARG_TYPE_UINT8, &result->bitDepth, "bit-depth"}, {FF_FORMAT_ARG_TYPE_BOOL, &result->hdrEnabled, "hdr-enabled"}, - {FF_FORMAT_ARG_TYPE_BOOL, &result->wcgEnabled, "wcg-enabled"}, })); } } @@ -326,7 +325,6 @@ void ffGenerateDisplayJsonResult(FF_MAYBE_UNUSED FFDisplayOptions* options, yyjs yyjson_mut_obj_add_uint(doc, obj, "rotation", item->rotation); yyjson_mut_obj_add_uint(doc, obj, "bitDepth", item->bitDepth); yyjson_mut_obj_add_bool(doc, obj, "hdrEnabled", item->hdrEnabled); - yyjson_mut_obj_add_bool(doc, obj, "wcgEnabled", item->wcgEnabled); switch (item->type) { @@ -361,7 +359,6 @@ void ffPrintDisplayHelpFormat(void) "Pixels per inch (PPI) - ppi", "Bits per color channel - bit-depth", "True if high dynamic range (HDR) is enabled - hdr-enabled", - "True if wide color gamut (WCG) is enabled - wcg-enabled", })); } From d37bf7252de0876cd3b7566eee1b31cd8f2d14e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 08:45:02 +0800 Subject: [PATCH 20/27] Logo (Builtin): trim final new line --- src/logo/ascii/adelie.txt | 2 +- src/logo/ascii/aeros.txt | 2 +- src/logo/ascii/afterglow.txt | 2 +- src/logo/ascii/alpine2_small.txt | 2 +- src/logo/ascii/alter.txt | 2 +- src/logo/ascii/altlinux.txt | 2 +- src/logo/ascii/amazon.txt | 2 +- src/logo/ascii/amazon_linux.txt | 2 +- src/logo/ascii/amogos.txt | 2 +- src/logo/ascii/anarchy.txt | 2 +- src/logo/ascii/antergos.txt | 2 +- src/logo/ascii/antix.txt | 2 +- src/logo/ascii/aoscos.txt | 2 +- src/logo/ascii/aoscos_old.txt | 2 +- src/logo/ascii/aoscosretro.txt | 2 +- src/logo/ascii/aoscosretro_small.txt | 2 +- src/logo/ascii/aperture.txt | 2 +- src/logo/ascii/apricity.txt | 2 +- src/logo/ascii/arch.txt | 2 +- src/logo/ascii/arch2.txt | 2 +- src/logo/ascii/arch3.txt | 2 +- src/logo/ascii/arch_small.txt | 2 +- src/logo/ascii/archbox.txt | 2 +- src/logo/ascii/archcraft.txt | 2 +- src/logo/ascii/archcraft2.txt | 2 +- src/logo/ascii/archlabs.txt | 2 +- src/logo/ascii/archstrike.txt | 2 +- src/logo/ascii/arco_small.txt | 2 +- src/logo/ascii/arkane.txt | 2 +- src/logo/ascii/armbian.txt | 2 +- src/logo/ascii/armbian2.txt | 2 +- src/logo/ascii/arselinux.txt | 2 +- src/logo/ascii/artix2_small.txt | 2 +- src/logo/ascii/arya.txt | 2 +- src/logo/ascii/asahi.txt | 2 +- src/logo/ascii/asahi2.txt | 2 +- src/logo/ascii/aster.txt | 2 +- src/logo/ascii/asteroidos.txt | 2 +- src/logo/ascii/astos.txt | 2 +- src/logo/ascii/astra_linux.txt | 2 +- src/logo/ascii/athena.txt | 2 +- src/logo/ascii/azos.txt | 2 +- src/logo/ascii/biglinux.txt | 2 +- src/logo/ascii/bitrig.txt | 2 +- src/logo/ascii/blackarch.txt | 2 +- src/logo/ascii/blackmesa.txt | 2 +- src/logo/ascii/blackpanther.txt | 2 +- src/logo/ascii/blag.txt | 2 +- src/logo/ascii/blankon.txt | 2 +- src/logo/ascii/bluelight.txt | 2 +- src/logo/ascii/bodhi.txt | 2 +- src/logo/ascii/bonsai.txt | 2 +- src/logo/ascii/bsd.txt | 2 +- src/logo/ascii/bunsenlabs.txt | 2 +- src/logo/ascii/cachyos_small.txt | 2 +- src/logo/ascii/calculate.txt | 2 +- src/logo/ascii/calinixos.txt | 2 +- src/logo/ascii/calinixos_small.txt | 2 +- src/logo/ascii/carbs.txt | 2 +- src/logo/ascii/cbl_mariner.txt | 2 +- src/logo/ascii/center.txt | 2 +- src/logo/ascii/cereus.txt | 2 +- src/logo/ascii/chakra.txt | 2 +- src/logo/ascii/chaletos.txt | 2 +- src/logo/ascii/chapeau.txt | 2 +- src/logo/ascii/chonkysealos.txt | 2 +- src/logo/ascii/chrom.txt | 2 +- src/logo/ascii/cleanjaro.txt | 2 +- src/logo/ascii/cleanjaro_small.txt | 2 +- src/logo/ascii/clear_linux.txt | 2 +- src/logo/ascii/clearos.txt | 2 +- src/logo/ascii/clover.txt | 2 +- src/logo/ascii/cobalt.txt | 2 +- src/logo/ascii/condres.txt | 2 +- src/logo/ascii/crux.txt | 2 +- src/logo/ascii/crux_small.txt | 2 +- src/logo/ascii/cucumber.txt | 2 +- src/logo/ascii/cuerdos.txt | 2 +- src/logo/ascii/cutefishos.txt | 2 +- src/logo/ascii/cuteos.txt | 2 +- src/logo/ascii/cyberos.txt | 2 +- src/logo/ascii/cycledream.txt | 2 +- src/logo/ascii/dahlia.txt | 2 +- src/logo/ascii/darkos.txt | 2 +- src/logo/ascii/desaos.txt | 2 +- src/logo/ascii/devuan.txt | 2 +- src/logo/ascii/devuan_small.txt | 2 +- src/logo/ascii/dietpi.txt | 2 +- src/logo/ascii/dracos.txt | 2 +- src/logo/ascii/dragonfly.txt | 2 +- src/logo/ascii/dragonfly_old.txt | 2 +- src/logo/ascii/dragonfly_small.txt | 2 +- src/logo/ascii/drauger.txt | 2 +- src/logo/ascii/droidian.txt | 2 +- src/logo/ascii/elbrus.txt | 2 +- src/logo/ascii/elementary.txt | 2 +- src/logo/ascii/elementary_small.txt | 2 +- src/logo/ascii/elive.txt | 2 +- src/logo/ascii/encryptos.txt | 2 +- src/logo/ascii/endeavour_small.txt | 2 +- src/logo/ascii/endless.txt | 2 +- src/logo/ascii/enso.txt | 2 +- src/logo/ascii/eshanizedos.txt | 2 +- src/logo/ascii/eurolinux.txt | 2 +- src/logo/ascii/evolinx.txt | 2 +- src/logo/ascii/evolutionos.txt | 2 +- src/logo/ascii/evolutionos_old.txt | 2 +- src/logo/ascii/evolutionos_small.txt | 2 +- src/logo/ascii/exherbo.txt | 2 +- src/logo/ascii/exodia_predator.txt | 2 +- src/logo/ascii/fedora_coreos.txt | 2 +- src/logo/ascii/fedora_kinoite.txt | 2 +- src/logo/ascii/fedora_sericea.txt | 2 +- src/logo/ascii/fedora_silverblue.txt | 2 +- src/logo/ascii/femboyos.txt | 2 +- src/logo/ascii/feren.txt | 2 +- src/logo/ascii/finnix.txt | 2 +- src/logo/ascii/floflis.txt | 2 +- src/logo/ascii/freemint.txt | 2 +- src/logo/ascii/frugalware.txt | 2 +- src/logo/ascii/funtoo.txt | 2 +- src/logo/ascii/furreto.txt | 2 +- src/logo/ascii/galliumos.txt | 2 +- src/logo/ascii/garuda_dragon.txt | 2 +- src/logo/ascii/ghostbsd.txt | 2 +- src/logo/ascii/glaucus.txt | 2 +- src/logo/ascii/gnewsense.txt | 2 +- src/logo/ascii/gobolinux.txt | 2 +- src/logo/ascii/grapheneos.txt | 2 +- src/logo/ascii/grombyang.txt | 2 +- src/logo/ascii/guix.txt | 2 +- src/logo/ascii/guix_small.txt | 2 +- src/logo/ascii/hamonikr.txt | 2 +- src/logo/ascii/hardclanz.txt | 2 +- src/logo/ascii/hash.txt | 2 +- src/logo/ascii/huayra.txt | 2 +- src/logo/ascii/hybrid.txt | 2 +- src/logo/ascii/hydroos.txt | 2 +- src/logo/ascii/hyperbola.txt | 2 +- src/logo/ascii/hyperbola_small.txt | 2 +- src/logo/ascii/hypros.txt | 2 +- src/logo/ascii/iglunix.txt | 2 +- src/logo/ascii/instantos.txt | 2 +- src/logo/ascii/interix.txt | 2 +- src/logo/ascii/irix.txt | 2 +- src/logo/ascii/ironclad.txt | 2 +- src/logo/ascii/itc.txt | 2 +- src/logo/ascii/januslinux.txt | 2 +- src/logo/ascii/kaisen.txt | 2 +- src/logo/ascii/kali.txt | 2 +- src/logo/ascii/kali_small.txt | 2 +- src/logo/ascii/kaos.txt | 2 +- src/logo/ascii/kernelos.txt | 2 +- src/logo/ascii/kibojoe.txt | 2 +- src/logo/ascii/kiss.txt | 2 +- src/logo/ascii/kogaion.txt | 2 +- src/logo/ascii/korora.txt | 2 +- src/logo/ascii/krassos.txt | 2 +- src/logo/ascii/kslinux.txt | 2 +- src/logo/ascii/lainos.txt | 2 +- src/logo/ascii/langitketujuh.txt | 2 +- src/logo/ascii/laxeros.txt | 2 +- src/logo/ascii/lede.txt | 2 +- src/logo/ascii/lfs.txt | 2 +- src/logo/ascii/libreelec.txt | 2 +- src/logo/ascii/linspire.txt | 2 +- src/logo/ascii/linux_small.txt | 2 +- src/logo/ascii/linuxlite.txt | 2 +- src/logo/ascii/linuxlite_small.txt | 2 +- src/logo/ascii/live_raizo.txt | 2 +- src/logo/ascii/locos.txt | 2 +- src/logo/ascii/lunar.txt | 2 +- src/logo/ascii/macos3.txt | 2 +- src/logo/ascii/mageia.txt | 2 +- src/logo/ascii/mageia_small.txt | 2 +- src/logo/ascii/magpieos.txt | 2 +- src/logo/ascii/mainsailos.txt | 2 +- src/logo/ascii/mainsailos_small.txt | 2 +- src/logo/ascii/massos.txt | 2 +- src/logo/ascii/matuusos.txt | 2 +- src/logo/ascii/maui.txt | 2 +- src/logo/ascii/mauna.txt | 2 +- src/logo/ascii/meowix.txt | 2 +- src/logo/ascii/mer.txt | 2 +- src/logo/ascii/miracle_linux.txt | 2 +- src/logo/ascii/mos.txt | 2 +- src/logo/ascii/mx.txt | 2 +- src/logo/ascii/mx2.txt | 2 +- src/logo/ascii/mx_small.txt | 2 +- src/logo/ascii/namib.txt | 2 +- src/logo/ascii/nekos.txt | 2 +- src/logo/ascii/neptune.txt | 2 +- src/logo/ascii/netrunner.txt | 2 +- src/logo/ascii/nitrux.txt | 2 +- src/logo/ascii/nixos_old_small.txt | 2 +- src/logo/ascii/nixos_small.txt | 2 +- src/logo/ascii/nobara.txt | 2 +- src/logo/ascii/nurunner.txt | 2 +- src/logo/ascii/nutyx.txt | 2 +- src/logo/ascii/obarun.txt | 2 +- src/logo/ascii/obrevenge.txt | 2 +- src/logo/ascii/omnios.txt | 2 +- src/logo/ascii/opak.txt | 2 +- src/logo/ascii/openeuler.txt | 2 +- src/logo/ascii/openindiana.txt | 2 +- src/logo/ascii/openmamba.txt | 2 +- src/logo/ascii/openstage.txt | 2 +- src/logo/ascii/opensuse_microos.txt | 2 +- src/logo/ascii/opnsense.txt | 2 +- src/logo/ascii/orchid.txt | 2 +- src/logo/ascii/orchid_small.txt | 2 +- src/logo/ascii/os_elbrus.txt | 2 +- src/logo/ascii/osmc.txt | 2 +- src/logo/ascii/pacbsd.txt | 2 +- src/logo/ascii/panwah.txt | 2 +- src/logo/ascii/parch.txt | 2 +- src/logo/ascii/pardus.txt | 2 +- src/logo/ascii/parrot.txt | 2 +- src/logo/ascii/parsix.txt | 2 +- src/logo/ascii/pcbsd.txt | 2 +- src/logo/ascii/pclinuxos.txt | 2 +- src/logo/ascii/pearos.txt | 2 +- src/logo/ascii/pengwin.txt | 2 +- src/logo/ascii/pentoo.txt | 2 +- src/logo/ascii/peppermint.txt | 2 +- src/logo/ascii/peropesis.txt | 2 +- src/logo/ascii/phyos.txt | 2 +- src/logo/ascii/pikaos.txt | 2 +- src/logo/ascii/pisi.txt | 2 +- src/logo/ascii/pnm_linux.txt | 2 +- src/logo/ascii/porteus.txt | 2 +- src/logo/ascii/postmarketos.txt | 2 +- src/logo/ascii/postmarketos_small.txt | 2 +- src/logo/ascii/proxmox.txt | 2 +- src/logo/ascii/puffos.txt | 2 +- src/logo/ascii/puppy.txt | 2 +- src/logo/ascii/pureos.txt | 2 +- src/logo/ascii/pureos_small.txt | 2 +- src/logo/ascii/q4os.txt | 2 +- src/logo/ascii/qubes.txt | 2 +- src/logo/ascii/qubyt.txt | 2 +- src/logo/ascii/quibian.txt | 2 +- src/logo/ascii/quirinux.txt | 2 +- src/logo/ascii/radix.txt | 2 +- src/logo/ascii/ravynos.txt | 2 +- src/logo/ascii/reborn.txt | 36 +++++++++++++-------------- src/logo/ascii/reborn_small.txt | 10 ++++---- src/logo/ascii/redcore.txt | 2 +- src/logo/ascii/redos.txt | 2 +- src/logo/ascii/redos_small.txt | 2 +- src/logo/ascii/redstar.txt | 2 +- src/logo/ascii/refracted_devuan.txt | 2 +- src/logo/ascii/regata.txt | 2 +- src/logo/ascii/regolith.txt | 2 +- src/logo/ascii/rhaymos.txt | 2 +- src/logo/ascii/rhel_old.txt | 2 +- src/logo/ascii/rocky_small.txt | 2 +- src/logo/ascii/sabayon.txt | 2 +- src/logo/ascii/sabotage.txt | 2 +- src/logo/ascii/sailfish.txt | 2 +- src/logo/ascii/salentos.txt | 2 +- src/logo/ascii/salientos.txt | 2 +- src/logo/ascii/salix.txt | 2 +- src/logo/ascii/sambabox.txt | 2 +- src/logo/ascii/sasanqua.txt | 2 +- src/logo/ascii/scientific.txt | 2 +- src/logo/ascii/semc.txt | 2 +- src/logo/ascii/septor.txt | 2 +- src/logo/ascii/serene.txt | 2 +- src/logo/ascii/sharklinux.txt | 2 +- src/logo/ascii/shastraos.txt | 2 +- src/logo/ascii/siduction.txt | 2 +- src/logo/ascii/skiffos.txt | 2 +- src/logo/ascii/slackel.txt | 2 +- src/logo/ascii/slitaz.txt | 2 +- src/logo/ascii/smartos.txt | 2 +- src/logo/ascii/soda.txt | 2 +- src/logo/ascii/solus.txt | 2 +- src/logo/ascii/source_mage.txt | 2 +- src/logo/ascii/sparky.txt | 2 +- src/logo/ascii/spoinkos.txt | 2 +- src/logo/ascii/star.txt | 2 +- src/logo/ascii/steamos.txt | 2 +- src/logo/ascii/stock_linux.txt | 2 +- src/logo/ascii/sulin.txt | 2 +- src/logo/ascii/suse.txt | 2 +- src/logo/ascii/swagarch.txt | 2 +- src/logo/ascii/t2.txt | 2 +- src/logo/ascii/tails.txt | 2 +- src/logo/ascii/tatra.txt | 2 +- src/logo/ascii/tearch.txt | 2 +- src/logo/ascii/tileos.txt | 2 +- src/logo/ascii/torizoncore.txt | 2 +- src/logo/ascii/trisquel.txt | 2 +- src/logo/ascii/tuxedo_os.txt | 2 +- src/logo/ascii/twister.txt | 2 +- src/logo/ascii/ubuntu.txt | 2 +- src/logo/ascii/ubuntu2_old.txt | 2 +- src/logo/ascii/ubuntu_budgie.txt | 2 +- src/logo/ascii/ubuntu_cinnamon.txt | 2 +- src/logo/ascii/ubuntu_gnome.txt | 2 +- src/logo/ascii/ubuntu_old.txt | 2 +- src/logo/ascii/ubuntu_studio.txt | 2 +- src/logo/ascii/ubuntu_sway.txt | 2 +- src/logo/ascii/ubuntu_touch.txt | 2 +- src/logo/ascii/ubuntu_unity.txt | 2 +- src/logo/ascii/ultramarine.txt | 2 +- src/logo/ascii/univalent.txt | 2 +- src/logo/ascii/univention.txt | 2 +- src/logo/ascii/urukos.txt | 2 +- src/logo/ascii/uwuntu.txt | 2 +- src/logo/ascii/vanilla2.txt | 2 +- src/logo/ascii/vanilla_small.txt | 2 +- src/logo/ascii/venom.txt | 2 +- src/logo/ascii/venom_small.txt | 2 +- src/logo/ascii/vnux.txt | 2 +- src/logo/ascii/void_small.txt | 2 +- src/logo/ascii/vzlinux.txt | 2 +- src/logo/ascii/wii_linux_ngx.txt | 2 +- src/logo/ascii/windows_11_small.txt | 2 +- src/logo/ascii/xenia.txt | 2 +- src/logo/ascii/xferience.txt | 2 +- src/logo/ascii/xray_os.txt | 2 +- src/logo/ascii/yiffos.txt | 2 +- src/logo/ascii/zos.txt | 2 +- 325 files changed, 346 insertions(+), 346 deletions(-) diff --git a/src/logo/ascii/adelie.txt b/src/logo/ascii/adelie.txt index 417b5eb04..3185950e1 100644 --- a/src/logo/ascii/adelie.txt +++ b/src/logo/ascii/adelie.txt @@ -13,4 +13,4 @@ ${c1} ///////${c3}\\\\\\\\\\// /\\\/${c1}\\/ /\\\\// ////// - /// ${c3}\\\\\ + /// ${c3}\\\\\ \ No newline at end of file diff --git a/src/logo/ascii/aeros.txt b/src/logo/ascii/aeros.txt index b7d99524a..9448c5183 100644 --- a/src/logo/ascii/aeros.txt +++ b/src/logo/ascii/aeros.txt @@ -18,4 +18,4 @@ oOO OOo oO OOo oOO OOo oOO OOo - ooo OOO OOO ooo + ooo OOO OOO ooo \ No newline at end of file diff --git a/src/logo/ascii/afterglow.txt b/src/logo/ascii/afterglow.txt index 3b86a44d4..40127217d 100644 --- a/src/logo/ascii/afterglow.txt +++ b/src/logo/ascii/afterglow.txt @@ -12,4 +12,4 @@ ${c1}g@@@@M" ${c2}"VP`${c3}.L! ${c4}<@JJJJ` ${c3}.@FJJJF`${c4},@LFFFF` ${c3}_@FFFFF ${c4}VLLLP` ${c3}J@@LL@" ${c4}`" - ${c3}V@@" + ${c3}V@@" \ No newline at end of file diff --git a/src/logo/ascii/alpine2_small.txt b/src/logo/ascii/alpine2_small.txt index 8f231cc2b..9a512c55d 100644 --- a/src/logo/ascii/alpine2_small.txt +++ b/src/logo/ascii/alpine2_small.txt @@ -3,4 +3,4 @@ ${c1} /\\ /\\ /${c2}// ${c1}\\ \\ /${c2}// ${c1}\\ \\ ${c2}// ${c1}\\ \\ - \\ + \\ \ No newline at end of file diff --git a/src/logo/ascii/alter.txt b/src/logo/ascii/alter.txt index 990221c90..c5727e941 100644 --- a/src/logo/ascii/alter.txt +++ b/src/logo/ascii/alter.txt @@ -17,4 +17,4 @@ @~:~~: ~:~~:~:(zltlltlO a,wwwwww 8~~:~~:~~~~:~~~~_1ltltu ,www 5~~:~~:~~:~~:~~:~~~_1ltq N,, - g~:~~:~~~:~~:~~:~:~~~~1q N, + g~:~~:~~~:~~:~~:~:~~~~1q N, \ No newline at end of file diff --git a/src/logo/ascii/altlinux.txt b/src/logo/ascii/altlinux.txt index ab09b3954..55bf89204 100644 --- a/src/logo/ascii/altlinux.txt +++ b/src/logo/ascii/altlinux.txt @@ -19,4 +19,4 @@ #####$2##%:$3######$2:############$1## ##$2+##*$3########$2############$1 $2###$3#########$2##########$1 - $3########$2###### + $3########$2###### \ No newline at end of file diff --git a/src/logo/ascii/amazon.txt b/src/logo/ascii/amazon.txt index e995cfdff..27ff31a9e 100644 --- a/src/logo/ascii/amazon.txt +++ b/src/logo/ascii/amazon.txt @@ -16,4 +16,4 @@ dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd dMMMMMMMMMMMMMMMMh yMMMMMMMMMMMMMMMMd .:+ydNMMMMMMMMMMMh yMMMMMMMMMMMNdy+:. `.:+shNMMMMMh yMMMMMNhs+:`` - `-+shy shs+:` + `-+shy shs+:` \ No newline at end of file diff --git a/src/logo/ascii/amazon_linux.txt b/src/logo/ascii/amazon_linux.txt index 915267868..04394bc6d 100644 --- a/src/logo/ascii/amazon_linux.txt +++ b/src/logo/ascii/amazon_linux.txt @@ -7,4 +7,4 @@ ~~~ / ~~._. _/ _/ _/ - _/m/' + _/m/' \ No newline at end of file diff --git a/src/logo/ascii/amogos.txt b/src/logo/ascii/amogos.txt index 4b1919133..24f4a45b1 100644 --- a/src/logo/ascii/amogos.txt +++ b/src/logo/ascii/amogos.txt @@ -16,4 +16,4 @@ ${c1} ___________ | / ____/ | \_________/ / | \ __/ - \_______/ + \_______/ \ No newline at end of file diff --git a/src/logo/ascii/anarchy.txt b/src/logo/ascii/anarchy.txt index 76b74cd35..d0f5a1402 100644 --- a/src/logo/ascii/anarchy.txt +++ b/src/logo/ascii/anarchy.txt @@ -25,4 +25,4 @@ ${c2}.${c1} ${c2}.:+++${c1}. ${c2}.:${c1}: ${c2}..${c1} - ${c2}..${c1} + ${c2}..${c1} \ No newline at end of file diff --git a/src/logo/ascii/antergos.txt b/src/logo/ascii/antergos.txt index 023af9bd8..81e2b71f1 100644 --- a/src/logo/ascii/antergos.txt +++ b/src/logo/ascii/antergos.txt @@ -16,4 +16,4 @@ dmmmdddddddhhhyso${c1}++++++${c2}shhhhhddddddmmmmh -dmmmdddddddhhys${c1}o++++o${c2}shhhhdddddddmmmmd- .smmmmddddddddhhhhhhhhhdddddddddmmmms. `+ydmmmdddddddddddddddddddmmmmdy/. - `.:+ooyyddddddddddddyyso+:.` + `.:+ooyyddddddddddddyyso+:.` \ No newline at end of file diff --git a/src/logo/ascii/antix.txt b/src/logo/ascii/antix.txt index 57a97dafa..85b56ccb5 100644 --- a/src/logo/ascii/antix.txt +++ b/src/logo/ascii/antix.txt @@ -9,4 +9,4 @@ \,_/\_/ | |_/|_/|_/_/ \, , / ,\ , / , ' \ - ' - , _ _ _ , ' + ' - , _ _ _ , ' \ No newline at end of file diff --git a/src/logo/ascii/aoscos.txt b/src/logo/ascii/aoscos.txt index 8681218b4..c0a0255a9 100644 --- a/src/logo/ascii/aoscos.txt +++ b/src/logo/ascii/aoscos.txt @@ -14,4 +14,4 @@ ${c4}^MMM@@@@@@@@@@@MP" ${c3},ggppww__ ${c3}_gBNNNNNNNNNNNNNNNNNP" ${c3}_wNNNNNNNNNNNNNNNNNNNM^ ${c3}""Y^^MNNNNNNNNNNNNP` - ${c3}`""""""" + ${c3}`""""""" \ No newline at end of file diff --git a/src/logo/ascii/aoscos_old.txt b/src/logo/ascii/aoscos_old.txt index 2886c092d..16f31c22c 100644 --- a/src/logo/ascii/aoscos_old.txt +++ b/src/logo/ascii/aoscos_old.txt @@ -17,4 +17,4 @@ +NMMMMMms/.` mMMMMMMMMMMMN+ `+mMMMMMMMMNmddMMMMMMMMMMm+` .ohNMMMMMMMMMMMMMMNho. - .:+syhhhhys+:. + .:+syhhhhys+:. \ No newline at end of file diff --git a/src/logo/ascii/aoscosretro.txt b/src/logo/ascii/aoscosretro.txt index 1ae7f8748..7f563d68f 100644 --- a/src/logo/ascii/aoscosretro.txt +++ b/src/logo/ascii/aoscosretro.txt @@ -15,4 +15,4 @@ ${c2} ......... ${c3}................ ${c4}*********** ${c3}................ ${c4}########### ${c3}**************** - ${c3}################ + ${c3}################ \ No newline at end of file diff --git a/src/logo/ascii/aoscosretro_small.txt b/src/logo/ascii/aoscosretro_small.txt index 9a6798062..c7b2fe6cc 100644 --- a/src/logo/ascii/aoscosretro_small.txt +++ b/src/logo/ascii/aoscosretro_small.txt @@ -6,4 +6,4 @@ ${c2} _____ ${c1}_____${c2} \\ / _____ \\${c4}___ ${c3}|${c2}/_/ ${c3}| ${c4}| | ${c3}| | ${c4}|___| - ${c3}|_____| + ${c3}|_____| \ No newline at end of file diff --git a/src/logo/ascii/aperture.txt b/src/logo/ascii/aperture.txt index a3ffb5889..778779e1b 100644 --- a/src/logo/ascii/aperture.txt +++ b/src/logo/ascii/aperture.txt @@ -17,4 +17,4 @@ =XMMM@MM@MM#H;,-+HMM@M+ /MMMX= =%@M@M#@S-.=S@MM@@@M; %M%= ,:+S+-,/H#MMMMMMM@= =, - =++%%%%+/:-. + =++%%%%+/:-. \ No newline at end of file diff --git a/src/logo/ascii/apricity.txt b/src/logo/ascii/apricity.txt index 1f3166583..ec991e996 100644 --- a/src/logo/ascii/apricity.txt +++ b/src/logo/ascii/apricity.txt @@ -15,4 +15,4 @@ MMMMMM/`.-/ohmNMMMMMMy- MMMMMMNmNNMMMMMMMMmo. MMMMMMMMMMMMMMMms:` MMMMMMMMMMNds/. -dhhyys+/-` +dhhyys+/-` \ No newline at end of file diff --git a/src/logo/ascii/arch.txt b/src/logo/ascii/arch.txt index b3d234755..75338f0d2 100644 --- a/src/logo/ascii/arch.txt +++ b/src/logo/ascii/arch.txt @@ -16,4 +16,4 @@ $2 .oossssso-````/ossssss+` `/ossssso+/:- -:/+osssso+- `+sso+:-` `.-/+oso: `++:. `-/+/ -.` `/ +.` `/ \ No newline at end of file diff --git a/src/logo/ascii/arch2.txt b/src/logo/ascii/arch2.txt index 5da1b5540..138883b6c 100644 --- a/src/logo/ascii/arch2.txt +++ b/src/logo/ascii/arch2.txt @@ -16,4 +16,4 @@ $2 ▟█████████▛▀▀▜████████▙ ▟██████████▛ ▜█████████▙ ▟██████▀▀▀ ▀▀██████▙ ▟███▀▘ ▝▀███▙ -▟▛▀ ▀▜▙ +▟▛▀ ▀▜▙ \ No newline at end of file diff --git a/src/logo/ascii/arch3.txt b/src/logo/ascii/arch3.txt index 23973f1ab..bf76557d4 100644 --- a/src/logo/ascii/arch3.txt +++ b/src/logo/ascii/arch3.txt @@ -16,4 +16,4 @@ $2 / ,.-+-.. \ / __,--+" "+--.__ \ / _,+'" "'+._ \ /,-' `-.\ -' ' +' ' \ No newline at end of file diff --git a/src/logo/ascii/arch_small.txt b/src/logo/ascii/arch_small.txt index 22ae23a10..e1957f7ad 100644 --- a/src/logo/ascii/arch_small.txt +++ b/src/logo/ascii/arch_small.txt @@ -4,4 +4,4 @@ / \ $2 / ,, \ / | | \ -/_-'' ''-_\ +/_-'' ''-_\ \ No newline at end of file diff --git a/src/logo/ascii/archbox.txt b/src/logo/ascii/archbox.txt index 682a183ae..e295ec948 100644 --- a/src/logo/ascii/archbox.txt +++ b/src/logo/ascii/archbox.txt @@ -16,4 +16,4 @@ /:::+`hhhhoos` `hhhhhhhhhhhhhhhhhs+` `--/:` /: `hhhhhhhhhhhho/- -/:. `hhhhhhs+:-` - ::::/ho/-` + ::::/ho/-` \ No newline at end of file diff --git a/src/logo/ascii/archcraft.txt b/src/logo/ascii/archcraft.txt index a57f7b7bf..f0126e777 100644 --- a/src/logo/ascii/archcraft.txt +++ b/src/logo/ascii/archcraft.txt @@ -17,4 +17,4 @@ ${c4}⠄⠄⠄⠄${c1}⢀⣾⣿⣿⣿⣿⣿⣿⣷⣤⡀${c4}⠄⠄⠄${c1}⠻⣿ ${c5}⠄⠄⠄${c1}⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏${c5}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⢿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀${c5}⠄⠄⠄ ${c6}⠄⠄${c1}⢠⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁${c6}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⡄${c6}⠄⠄ ${c1}⠄${c1}⣠⣿⣿⣿⣿⠿⠛⠋⠁${c1}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠻⢿⣿⣿⣿⣿⣆${c1}⠄ -${c1}⡰⠟⠛⠉⠁${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠛⠿⢆ +${c1}⡰⠟⠛⠉⠁${c2}⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄${c1}⠉⠙⠛⠿⢆ \ No newline at end of file diff --git a/src/logo/ascii/archcraft2.txt b/src/logo/ascii/archcraft2.txt index 75e553bf6..28ec4cd74 100644 --- a/src/logo/ascii/archcraft2.txt +++ b/src/logo/ascii/archcraft2.txt @@ -17,4 +17,4 @@ +ooooooooos. .=sooooooo+- .+osossos+-` `-+osososs+. :sss+=-:` `:-=+ssss: -:=-:` `-=+: +:=-:` `-=+: \ No newline at end of file diff --git a/src/logo/ascii/archlabs.txt b/src/logo/ascii/archlabs.txt index 49af8b709..cedb10d4c 100644 --- a/src/logo/ascii/archlabs.txt +++ b/src/logo/ascii/archlabs.txt @@ -18,4 +18,4 @@ 'xKXXXXK0kdl:. $2.ok; $1.cdk0KKXXXKx' 'xKK0koc,.. $2'c, $1 ..,cok0KKk, ,xko:'. $2.. $1 .':okx; - .,'. .',. + .,'. .',. \ No newline at end of file diff --git a/src/logo/ascii/archstrike.txt b/src/logo/ascii/archstrike.txt index a65d51011..444665a4d 100644 --- a/src/logo/ascii/archstrike.txt +++ b/src/logo/ascii/archstrike.txt @@ -14,4 +14,4 @@ ${c1} * ****${c2}/${c1}**** ${c2}/////${c1}***${c2}/${c1}**** ******${c2}/${c1}*** ${c2}//// ${c1}**${c2}/${c1}****** ********${c2}/${c1}* ${c2}/// ${c1}*${c2}/${c1}******** - ,****** ${c2}// ______ / ${c1}******, + ,****** ${c2}// ______ / ${c1}******, \ No newline at end of file diff --git a/src/logo/ascii/arco_small.txt b/src/logo/ascii/arco_small.txt index 45da66921..ecbae5a7b 100644 --- a/src/logo/ascii/arco_small.txt +++ b/src/logo/ascii/arco_small.txt @@ -8,4 +8,4 @@ ooooo ooooo ooooo ${c2}${c1} ooooo ${c2}${c1} -ooooo ${c2} +ooooo ${c2} \ No newline at end of file diff --git a/src/logo/ascii/arkane.txt b/src/logo/ascii/arkane.txt index 34894053d..57f50dec3 100644 --- a/src/logo/ascii/arkane.txt +++ b/src/logo/ascii/arkane.txt @@ -20,4 +20,4 @@ $2.-==+++***++*$3*#########$1=:::. $2.-=++++*++++**$3#######%%###$1= $2.:==++++++**$3#############$1: $2.$1-+*++*+++==$3###$1+ - -$3*+$1: + -$3*+$1: \ No newline at end of file diff --git a/src/logo/ascii/armbian.txt b/src/logo/ascii/armbian.txt index d9699f3a3..d5e1374d9 100644 --- a/src/logo/ascii/armbian.txt +++ b/src/logo/ascii/armbian.txt @@ -19,4 +19,4 @@ l**c)tttttttttttttttttttttttt(z**, 'I)$2))(\()($1tt$2))|\()($1{;' $2.~~~~~~~|)~~~~~~~<$1 '$2[)))))1$1|($2)))))))$1? - $2",,," ",,,^ + $2",,," ",,,^ \ No newline at end of file diff --git a/src/logo/ascii/armbian2.txt b/src/logo/ascii/armbian2.txt index 774e2b9b4..7307cf22d 100644 --- a/src/logo/ascii/armbian2.txt +++ b/src/logo/ascii/armbian2.txt @@ -11,4 +11,4 @@ ▄▄██ ██ ██ ██▄▄ ▄▄██ ██▄▄ ███████████████████████ - █ █ █ █ █ █ █ █ █ █ █ + █ █ █ █ █ █ █ █ █ █ █ \ No newline at end of file diff --git a/src/logo/ascii/arselinux.txt b/src/logo/ascii/arselinux.txt index 6e673bc81..303f9b842 100644 --- a/src/logo/ascii/arselinux.txt +++ b/src/logo/ascii/arselinux.txt @@ -12,4 +12,4 @@ ⢸⣿⠀⠀⠀⠀⠀⣤⣤⣴⣶⣾⠿⠟⣿⡏⠙⠛⠛⠛⠋⠉⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⡄⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠇⠀⠀⠀⠀⠀⠀⠘⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ \ No newline at end of file diff --git a/src/logo/ascii/artix2_small.txt b/src/logo/ascii/artix2_small.txt index 14e70835a..22459ee53 100644 --- a/src/logo/ascii/artix2_small.txt +++ b/src/logo/ascii/artix2_small.txt @@ -10,4 +10,4 @@ 'ookxxkoo'` .'oo' 'ooxoo'` .:ooxxo' 'io'` `'oo' -'` `' +'` `' \ No newline at end of file diff --git a/src/logo/ascii/arya.txt b/src/logo/ascii/arya.txt index 7d603e20d..5e4342bf1 100644 --- a/src/logo/ascii/arya.txt +++ b/src/logo/ascii/arya.txt @@ -12,4 +12,4 @@ ${c1} +yyyyyys :yyyyyy/${c2}-yyyyyy+ ${c1} .oyyyyyyo. :yyyyyy/${c2}-yyyyyy+ --------- ${c1} .syyyyyy+` :yyyyyy/${c2}-yyyyy+-+syyyyyyyy ${c1} -syyyyyy/ :yyyyyy/${c2}-yyys:.syyyyyyyyyy -${c1}:syyyyyy/ :yyyyyy/${c2}-yyo.:syyyyyyyyyyy +${c1}:syyyyyy/ :yyyyyy/${c2}-yyo.:syyyyyyyyyyy \ No newline at end of file diff --git a/src/logo/ascii/asahi.txt b/src/logo/ascii/asahi.txt index 4ee539605..90de3192b 100644 --- a/src/logo/ascii/asahi.txt +++ b/src/logo/ascii/asahi.txt @@ -15,4 +15,4 @@ $3((((((((((((((((((((($5@@@$6&%&$5@@@%$4,.......... $3/(((((((((((($5@@@@@@/$4.../&& $3.((((((((($5@@@@($4.... $3/((((($5@@#$4... - $3.(($4&, + $3.(($4&, \ No newline at end of file diff --git a/src/logo/ascii/asahi2.txt b/src/logo/ascii/asahi2.txt index 12847906a..9cec0634a 100644 --- a/src/logo/ascii/asahi2.txt +++ b/src/logo/ascii/asahi2.txt @@ -15,4 +15,4 @@ $4_MMMMMMMMMMMMMMMMMMMM$5MMMM$7M0$5MMMW$6MMMMMMMMMM_ $4~MMMMMMMMMM$5MMMMM$60MMM~~ $4~MMMMMM$5MMM$60MM~ $4~MM$5M$6@~ - $4M + $4M \ No newline at end of file diff --git a/src/logo/ascii/aster.txt b/src/logo/ascii/aster.txt index 52d893d1d..f5c2a1a7c 100644 --- a/src/logo/ascii/aster.txt +++ b/src/logo/ascii/aster.txt @@ -15,4 +15,4 @@ cMM; dMMW' OMMc ... xMMx ;XMN: - ,. + ,. \ No newline at end of file diff --git a/src/logo/ascii/asteroidos.txt b/src/logo/ascii/asteroidos.txt index 124bf92a2..9511b356d 100644 --- a/src/logo/ascii/asteroidos.txt +++ b/src/logo/ascii/asteroidos.txt @@ -14,4 +14,4 @@ ${c3} /######## ######## ${c4} #######%####### ${c4} (#%%%%%%%# ${c4} %%%%% -${c4} %%% +${c4} %%% \ No newline at end of file diff --git a/src/logo/ascii/astos.txt b/src/logo/ascii/astos.txt index 3e06aefd7..bf6fbb231 100644 --- a/src/logo/ascii/astos.txt +++ b/src/logo/ascii/astos.txt @@ -20,4 +20,4 @@ uURF$##Bv nKWB$%ABc aM@3R@D@b 8 M @ O # % % & G U @ @ & @ # % % # -!HGN@MNCf t&S9#%HQr ?@G#6S@QP +!HGN@MNCf t&S9#%HQr ?@G#6S@QP \ No newline at end of file diff --git a/src/logo/ascii/astra_linux.txt b/src/logo/ascii/astra_linux.txt index 97b7bc686..30f086532 100644 --- a/src/logo/ascii/astra_linux.txt +++ b/src/logo/ascii/astra_linux.txt @@ -19,4 +19,4 @@ ${c1} aA${c2}/${c1}a${c2}\\\\\\${c1}Aa${c2}\\/${c1}AA${c2}\\\\\\\\\\${c1}A ${c1} aA${c2}/${c1}aA${c2}\\\\/${c1}aAa aAa${c2}\\\\\\${c1}Aa${c2}\\${c1}Aa ${c1} aA${c2}/\\${c1}A${c2}\\/${c1}Aa aA${c2}\\\\${c1}A${c2}\\\\${c1}Aa ${c1} A${c2}|/${c1}aaAa aAaa${c2}\\|${c1}A -${c1} aAaa aaAa +${c1} aAaa aaAa \ No newline at end of file diff --git a/src/logo/ascii/athena.txt b/src/logo/ascii/athena.txt index 1cbd3145b..dcdbb5d33 100644 --- a/src/logo/ascii/athena.txt +++ b/src/logo/ascii/athena.txt @@ -21,4 +21,4 @@ ${c1} ###### ${c2}########${c1} # ${c1} ### ${c2}#######${c1} ${c1} ${c2}######${c1} ${c1} ${c2}####${c1} -${c1} ${c2}##${c1} +${c1} ${c2}##${c1} \ No newline at end of file diff --git a/src/logo/ascii/azos.txt b/src/logo/ascii/azos.txt index 09fa5c910..366fb3cb1 100644 --- a/src/logo/ascii/azos.txt +++ b/src/logo/ascii/azos.txt @@ -14,4 +14,4 @@ ${c1}//////// ///////// ${c2} &(((((((( @(((((((( ${c1}//////// ////// ${c2} @(((( @(((((((( ${c1}//////// ${c2} @(((((((( ${c1}//////// ${c2} @(((((((( -${c1} ///// ${c2} ((((( +${c1} ///// ${c2} ((((( \ No newline at end of file diff --git a/src/logo/ascii/biglinux.txt b/src/logo/ascii/biglinux.txt index 3570e8588..c8457566b 100644 --- a/src/logo/ascii/biglinux.txt +++ b/src/logo/ascii/biglinux.txt @@ -16,4 +16,4 @@ ${c3} .X. oMMMMW. l. dMk:..;xWMMMMW, kMMMMMMMMMMX. :XMMMMMMK: - ':MM:" Made in Brazil + ':MM:" Made in Brazil \ No newline at end of file diff --git a/src/logo/ascii/bitrig.txt b/src/logo/ascii/bitrig.txt index c360216ff..ef26184a3 100644 --- a/src/logo/ascii/bitrig.txt +++ b/src/logo/ascii/bitrig.txt @@ -14,4 +14,4 @@ :NMMMNmmmmmMMh /MN/-------oNN: hMd. .dMh -sm/ /ms +sm/ /ms \ No newline at end of file diff --git a/src/logo/ascii/blackarch.txt b/src/logo/ascii/blackarch.txt index d8dd4afc4..dfffbcdd7 100644 --- a/src/logo/ascii/blackarch.txt +++ b/src/logo/ascii/blackarch.txt @@ -18,4 +18,4 @@ ${c2} .oossssso-`${c3}//${c1}`/ossssss+` `/ossssso+/:- ${c3}//${c1} -:/+osssso+- `+sso+:-` ${c3}//${c1} `.-/+oso: `++:. ${c3}//${c1} `-/+/ - .` ${c3}/${c1} `/ + .` ${c3}/${c1} `/ \ No newline at end of file diff --git a/src/logo/ascii/blackmesa.txt b/src/logo/ascii/blackmesa.txt index bc7e979d2..c25a44d3b 100644 --- a/src/logo/ascii/blackmesa.txt +++ b/src/logo/ascii/blackmesa.txt @@ -17,4 +17,4 @@ H@: :HHHHHHHHHHHHHHHHHHX, =@H =X@@@@@@@@@@@@@@@@@@@@@@@@@@@X= :$$@@@@@@@@@@@@@@@@@@M@@@@$$: \$$@@@@@@@@@@@@@@@@@@X/- - .-;+$$XXHHHHHX$$+;-. + .-;+$$XXHHHHHX$$+;-. \ No newline at end of file diff --git a/src/logo/ascii/blackpanther.txt b/src/logo/ascii/blackpanther.txt index e14329fb6..f96da9141 100644 --- a/src/logo/ascii/blackpanther.txt +++ b/src/logo/ascii/blackpanther.txt @@ -20,4 +20,4 @@ ${c3} ........ `╙▀█▄@»»»;`▀███▌¿ ,▄▀Ñ"` `"╨▀█▄▄▄░`▐█████▄, ,▄▄▀▀░` `"╙╩▀▀▀▀████████▓▌▌▌▀▀▀╨"`` - ``""░╚╨╝╝╝╝╨╨░""`` + ``""░╚╨╝╝╝╝╨╨░""`` \ No newline at end of file diff --git a/src/logo/ascii/blag.txt b/src/logo/ascii/blag.txt index 1275cf657..f8eafb10b 100644 --- a/src/logo/ascii/blag.txt +++ b/src/logo/ascii/blag.txt @@ -14,4 +14,4 @@ .NMMMMMNd. `':ldko OMMMK: oWk, - ;: + ;: \ No newline at end of file diff --git a/src/logo/ascii/blankon.txt b/src/logo/ascii/blankon.txt index 43bbd7865..8331431b2 100644 --- a/src/logo/ascii/blankon.txt +++ b/src/logo/ascii/blankon.txt @@ -14,4 +14,4 @@ ${c2} +MMMMMMMNho:.` `.:ohNMMMMMMNo ${c1}`yyyyys ${c2} -hMMMMMMMMNNNmmNNNMMMMMMMMh- ${c1}`yyyyys ${c2} :yNMMMMMMMMMMMMMMMMMMNy:` ${c1}`yyyyys ${c2} .:sdNMMMMMMMMMMNds/. ${c1}`yyyyyo -${c2} `.:/++++/:.` ${c1}:oys+. +${c2} `.:/++++/:.` ${c1}:oys+. \ No newline at end of file diff --git a/src/logo/ascii/bluelight.txt b/src/logo/ascii/bluelight.txt index 05eba637c..00765ef19 100644 --- a/src/logo/ascii/bluelight.txt +++ b/src/logo/ascii/bluelight.txt @@ -16,4 +16,4 @@ ./oyyyyyyyyyo......${c1}+mMMMMMMMM${c2} omdyyyyyyo....${c1}+mMMMMMMMMMM${c2} ${c1}oMMM${c2}mdhyyo..${c1}+mMMMMMMMMMMMM - oNNNNNNm${c2}dso${c1}mMMMMMMMMMMMMMM + oNNNNNNm${c2}dso${c1}mMMMMMMMMMMMMMM \ No newline at end of file diff --git a/src/logo/ascii/bodhi.txt b/src/logo/ascii/bodhi.txt index 6b49f9b3e..d3350dacc 100644 --- a/src/logo/ascii/bodhi.txt +++ b/src/logo/ascii/bodhi.txt @@ -15,4 +15,4 @@ TH${c1}L* ${c3}TKKKKKK##KKKN@KKKK^ ${c1}|I${c2}M Yp${c1}LL ${c1}' |L${c2}$M` `Tp${c1}pLL, ,|||${c2}p'L "Kpp${c1}LL++,., ,,|||$$$${c2}#K* ${c1}'. - ${c2}`"MKWpppppppp#KM"` ${c1}`h, + ${c2}`"MKWpppppppp#KM"` ${c1}`h, \ No newline at end of file diff --git a/src/logo/ascii/bonsai.txt b/src/logo/ascii/bonsai.txt index 4dbc8d5ea..974ee9c22 100644 --- a/src/logo/ascii/bonsai.txt +++ b/src/logo/ascii/bonsai.txt @@ -13,4 +13,4 @@ ${c1} # # O ##, ,##,',##, ,## ,#, , # # # # #''# #,, # # # - '#' '##' # # ,,# '##;, # + '#' '##' # # ,,# '##;, # \ No newline at end of file diff --git a/src/logo/ascii/bsd.txt b/src/logo/ascii/bsd.txt index adf0b8579..f6c9ea92b 100644 --- a/src/logo/ascii/bsd.txt +++ b/src/logo/ascii/bsd.txt @@ -16,4 +16,4 @@ $4<----|====$1O)))$4==$1) \) /$4====| \ / /\ $5______$1( (_ / \______/ $5,' ,-----' | - `--{__________) + `--{__________) \ No newline at end of file diff --git a/src/logo/ascii/bunsenlabs.txt b/src/logo/ascii/bunsenlabs.txt index 218c417f8..8d31988c8 100644 --- a/src/logo/ascii/bunsenlabs.txt +++ b/src/logo/ascii/bunsenlabs.txt @@ -17,4 +17,4 @@ `NMM/ +MN: mh. - -/ + -/ \ No newline at end of file diff --git a/src/logo/ascii/cachyos_small.txt b/src/logo/ascii/cachyos_small.txt index f3ea5d87c..6497db48c 100644 --- a/src/logo/ascii/cachyos_small.txt +++ b/src/logo/ascii/cachyos_small.txt @@ -5,4 +5,4 @@ \......\ \......\ \.............../ - \............./ + \............./ \ No newline at end of file diff --git a/src/logo/ascii/calculate.txt b/src/logo/ascii/calculate.txt index 86f4974d7..e005d19e8 100644 --- a/src/logo/ascii/calculate.txt +++ b/src/logo/ascii/calculate.txt @@ -17,4 +17,4 @@ ..,,*********#####****+. ${c2}.,++*****+++${c1}*****************${c2}+++++,.${c1} ${c2},++++++**+++++${c1}***********${c2}+++++++++,${c1} - ${c2}.,,,,++++,.. .,,,,,.....,+++,.,,${c1} + ${c2}.,,,,++++,.. .,,,,,.....,+++,.,,${c1} \ No newline at end of file diff --git a/src/logo/ascii/calinixos.txt b/src/logo/ascii/calinixos.txt index 85475c52b..d8cbadee5 100644 --- a/src/logo/ascii/calinixos.txt +++ b/src/logo/ascii/calinixos.txt @@ -22,4 +22,4 @@ ⠀⠀⠀⠀⠀⠀⠀⠈⠢⡈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⣡⠞⠁⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢤⡈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⣁⠴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠢⢄⣉⠙⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠋⣉⡤⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠒⠢⠤⠤⠤⠤⠤⠤⠤⠤⠖⠒⠋⠉⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠒⠢⠤⠤⠤⠤⠤⠤⠤⠤⠖⠒⠋⠉⠀ \ No newline at end of file diff --git a/src/logo/ascii/calinixos_small.txt b/src/logo/ascii/calinixos_small.txt index 801e45fd7..fa6e7c70f 100644 --- a/src/logo/ascii/calinixos_small.txt +++ b/src/logo/ascii/calinixos_small.txt @@ -12,4 +12,4 @@ ⠀⠀⠡⡘⢿⣿⣿⣿⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣷⣦⡀⢀⠊⠀⠀ ⠀⠀⠀⠈⠊⡻⢿⣿⣿⣿⣿⣶⣤⣤⣤⣤⣤⣤⣶⣿⣿⣿⣿⡿⢟⠕⠁⠀⠀⠀ ⠀⠀⠀⠀⠀⠈⠢⢙⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⡩⠐⠁⠀⠀⠀⠀⠀ -⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠂⠭⠉⠙⣛⣛⠋⠉⠭⠐⠂⠁⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠂⠭⠉⠙⣛⣛⠋⠉⠭⠐⠂⠁⠀⠀⠀⠀ \ No newline at end of file diff --git a/src/logo/ascii/carbs.txt b/src/logo/ascii/carbs.txt index 71fdface7..f1f19a29d 100644 --- a/src/logo/ascii/carbs.txt +++ b/src/logo/ascii/carbs.txt @@ -15,4 +15,4 @@ ..:lolc,'.......',cll,. ..;cllllccccclllc;'. ...',;;;;;;,,... - ..... + ..... \ No newline at end of file diff --git a/src/logo/ascii/cbl_mariner.txt b/src/logo/ascii/cbl_mariner.txt index 26e8fdcdb..c4dc9ee60 100644 --- a/src/logo/ascii/cbl_mariner.txt +++ b/src/logo/ascii/cbl_mariner.txt @@ -15,4 +15,4 @@ :=======- .-========- :--------. :========- ..:::--=========- - ..::---================-=- + ..::---================-=- \ No newline at end of file diff --git a/src/logo/ascii/center.txt b/src/logo/ascii/center.txt index 1b9b3199a..a4c365d0b 100644 --- a/src/logo/ascii/center.txt +++ b/src/logo/ascii/center.txt @@ -10,4 +10,4 @@ :d:.,xcld,.,:. ;l, .l; ';' .o; - l, + l, \ No newline at end of file diff --git a/src/logo/ascii/cereus.txt b/src/logo/ascii/cereus.txt index f198a16ad..bae073848 100644 --- a/src/logo/ascii/cereus.txt +++ b/src/logo/ascii/cereus.txt @@ -24,4 +24,4 @@ $5 .;::' $2 .,:llllllllll, $5 .,::;. $2 .';lllllllll' $5 .,::;'.. $2 .';lllllll,. $5 ..,;::;,. $2 ...,;lll:. -$5 ...''. $2 ..',;'. +$5 ...''. $2 ..',;'. \ No newline at end of file diff --git a/src/logo/ascii/chakra.txt b/src/logo/ascii/chakra.txt index 284117e3a..9a6a82af9 100644 --- a/src/logo/ascii/chakra.txt +++ b/src/logo/ascii/chakra.txt @@ -15,4 +15,4 @@ ';' 'kkkkkkkkkkkk., ';kkkkkkkkkk' ';kkkkkk' - "''" + "''" \ No newline at end of file diff --git a/src/logo/ascii/chaletos.txt b/src/logo/ascii/chaletos.txt index d1e405c7f..e51c652ea 100644 --- a/src/logo/ascii/chaletos.txt +++ b/src/logo/ascii/chaletos.txt @@ -17,4 +17,4 @@ oNNs- :yMm/ .+mMdo:` `:smMd/` -ohNNmhsoo++osshmNNh+. - `./+syyhhyys+:`` + `./+syyhhyys+:`` \ No newline at end of file diff --git a/src/logo/ascii/chapeau.txt b/src/logo/ascii/chapeau.txt index 0fa328cfc..d9739d00d 100644 --- a/src/logo/ascii/chapeau.txt +++ b/src/logo/ascii/chapeau.txt @@ -15,4 +15,4 @@ `///////${c2}ohmNMMMNNdy+${c1}/////// `//////////${c2}++${c1}////////// `////////////////. - -////////- + -////////- \ No newline at end of file diff --git a/src/logo/ascii/chonkysealos.txt b/src/logo/ascii/chonkysealos.txt index 5d9096bce..a0ededb1b 100644 --- a/src/logo/ascii/chonkysealos.txt +++ b/src/logo/ascii/chonkysealos.txt @@ -18,4 +18,4 @@ .=*#%%%%%%%%%%%%%%%%%%%%%%%%#*=. :=*##%%%%%%%%%%%%%%%%%%##*=: .:=+*##%%%%%%%%%%##*+=:. - .:-=++****++=-:. + .:-=++****++=-:. \ No newline at end of file diff --git a/src/logo/ascii/chrom.txt b/src/logo/ascii/chrom.txt index 951bf1906..1f872b072 100644 --- a/src/logo/ascii/chrom.txt +++ b/src/logo/ascii/chrom.txt @@ -15,4 +15,4 @@ ${c1} .:ccccccccllllllllo${c3}O0000000OOO, ${c1} ,:ccccccccclllcd${c3}0000OOOOOOl. ${c1} '::ccccccccc${c3}dOOOOOOOkx:. ${c1} ..,::cccc${c3}xOOOkkko;. -${c1} ..,:${c3}dOkxl:. +${c1} ..,:${c3}dOkxl:. \ No newline at end of file diff --git a/src/logo/ascii/cleanjaro.txt b/src/logo/ascii/cleanjaro.txt index 8c2dbe94f..ce33aebdb 100644 --- a/src/logo/ascii/cleanjaro.txt +++ b/src/logo/ascii/cleanjaro.txt @@ -9,4 +9,4 @@ █████████████████████████ █████████████████████████ █████████████████████████ -▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ \ No newline at end of file diff --git a/src/logo/ascii/cleanjaro_small.txt b/src/logo/ascii/cleanjaro_small.txt index 9de37e3a7..b069f25ef 100644 --- a/src/logo/ascii/cleanjaro_small.txt +++ b/src/logo/ascii/cleanjaro_small.txt @@ -4,4 +4,4 @@ █████ █████ ████████████████ -████████████████ +████████████████ \ No newline at end of file diff --git a/src/logo/ascii/clear_linux.txt b/src/logo/ascii/clear_linux.txt index 7d427ed3d..2e2d6269d 100644 --- a/src/logo/ascii/clear_linux.txt +++ b/src/logo/ascii/clear_linux.txt @@ -17,4 +17,4 @@ ${c4}GGGGGGGG${c3}WWWWWWWWWWW ${c4}GG${c3}WWWWWWWWWWWWWWWW WWWWWWWWWWWWWWWW WWWWWWWWWW - WWW + WWW \ No newline at end of file diff --git a/src/logo/ascii/clearos.txt b/src/logo/ascii/clearos.txt index 7b5252da1..3b6fe9746 100644 --- a/src/logo/ascii/clearos.txt +++ b/src/logo/ascii/clearos.txt @@ -17,4 +17,4 @@ .://: `///: :///` -//:. .:: `///: :///` -:. `///: :///` - `... ...` + `... ...` \ No newline at end of file diff --git a/src/logo/ascii/clover.txt b/src/logo/ascii/clover.txt index bf64adb49..e2ab77296 100644 --- a/src/logo/ascii/clover.txt +++ b/src/logo/ascii/clover.txt @@ -17,4 +17,4 @@ oNMMMMMMMMMMMNs` `sy` `oNMMMMMMMMMMMNo +NMMMMMMMMMMMMMMMMNo `oNMMMMMMMMMMMMNo` `oNMMMNNMMMNs` - `omo``oNs` + `omo``oNs` \ No newline at end of file diff --git a/src/logo/ascii/cobalt.txt b/src/logo/ascii/cobalt.txt index 6780a3880..dcf4a714e 100644 --- a/src/logo/ascii/cobalt.txt +++ b/src/logo/ascii/cobalt.txt @@ -13,4 +13,4 @@ ${c4} *****${c3},,,,,,,,,,,,,,,,,,,,,,,,,,,,,${c4}***** *******${c3}......................${c4}******* ******${c3}....${c4}*********************** **************************** - ***** + ***** \ No newline at end of file diff --git a/src/logo/ascii/condres.txt b/src/logo/ascii/condres.txt index c14c19eee..880f3cff6 100644 --- a/src/logo/ascii/condres.txt +++ b/src/logo/ascii/condres.txt @@ -14,4 +14,4 @@ ${c2}/hhddddddddy${c1}-syyyyyys+${c3}ooooo++++++++++++: ${c2}/hhhddddddddy${c1}-+yyyy+${c3}/ooooo+++++++++++++: ${c2}/hhhhhdddddhhy${c1}./yo:${c3}+oooooo+++++++++++++/ ${c2}/hhhhhhhhhhhhhy${c1}:-.${c3}+sooooo+++++++++++///: -${c2}:sssssssssssso++${c1}${c3}`:/:--------.```````` +${c2}:sssssssssssso++${c1}${c3}`:/:--------.```````` \ No newline at end of file diff --git a/src/logo/ascii/crux.txt b/src/logo/ascii/crux.txt index 142bcbc50..7b6214719 100644 --- a/src/logo/ascii/crux.txt +++ b/src/logo/ascii/crux.txt @@ -15,4 +15,4 @@ xx$2dx$1kxxOKN$3WMMWN$10xdoxo::c $2xOkkO$10oo$3odOW$2WW$1XkdodOxc:l $2dkkkxkkk$3OKX$2NNNX0Oxx$1xc:cd $2odxxdx$3xllo$2dddooxx$1dc:ldo - $2lodd$1dolccc$2ccox$1xoloo + $2lodd$1dolccc$2ccox$1xoloo \ No newline at end of file diff --git a/src/logo/ascii/crux_small.txt b/src/logo/ascii/crux_small.txt index d332133db..19640d8c2 100644 --- a/src/logo/ascii/crux_small.txt +++ b/src/logo/ascii/crux_small.txt @@ -4,4 +4,4 @@ / ${c3}__ ${c1}\\ ( ${c3}/ \\ ${c1}/| ${c2}_${c1}/\\ ${c3}__)${c1}/${c2}_${c1}) -${c2}\/${c1}-____${c2}\/ +${c2}\/${c1}-____${c2}\/ \ No newline at end of file diff --git a/src/logo/ascii/cucumber.txt b/src/logo/ascii/cucumber.txt index 24bd1a834..0f605dcf3 100644 --- a/src/logo/ascii/cucumber.txt +++ b/src/logo/ascii/cucumber.txt @@ -17,4 +17,4 @@ o/${c2}--...::-:/::/:-......-::::::-/-...-${c1}:/o .++:${c2}---..................---${c1}:++. -/+/:${c2}----..........----${c1}:/+/- `:/+//${c2}::--------:::${c1}/+/:` - `.-://++++++//:-.` + `.-://++++++//:-.` \ No newline at end of file diff --git a/src/logo/ascii/cuerdos.txt b/src/logo/ascii/cuerdos.txt index deb56dc6a..11610840d 100644 --- a/src/logo/ascii/cuerdos.txt +++ b/src/logo/ascii/cuerdos.txt @@ -10,4 +10,4 @@ ⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉ ____________________________________ | Optimizado hasta el último pixel | -************************************ +************************************ \ No newline at end of file diff --git a/src/logo/ascii/cutefishos.txt b/src/logo/ascii/cutefishos.txt index 3cf5a3e4e..a4086fc88 100644 --- a/src/logo/ascii/cutefishos.txt +++ b/src/logo/ascii/cutefishos.txt @@ -6,4 +6,4 @@ M0w_ _wMMM~~ ~~MMm_ ${c3} jw0M~~MMMw_ _wMM' wMM~ ~~MMmw__ __w0M~ ~ ~~MM0MmwwwwwwwwwMMM~ - ~~~~^^~~~ + ~~~~^^~~~ \ No newline at end of file diff --git a/src/logo/ascii/cuteos.txt b/src/logo/ascii/cuteos.txt index 482791c9d..3b0c40f19 100644 --- a/src/logo/ascii/cuteos.txt +++ b/src/logo/ascii/cuteos.txt @@ -11,4 +11,4 @@ ${c1}MM ${c2}EEEE ${c3}M1MM1uazzEn ${c2}EEEE MME MM1MMMM ${c2}EEE ${c1} MMMMM MMM - M + M \ No newline at end of file diff --git a/src/logo/ascii/cyberos.txt b/src/logo/ascii/cyberos.txt index ebdb1c6f7..c47301fd3 100644 --- a/src/logo/ascii/cyberos.txt +++ b/src/logo/ascii/cyberos.txt @@ -12,4 +12,4 @@ ${c3} !M$EEEEEEEEEEEP }MMMMMMMMM ~MMMMMMM "RMMMM - .PMB + .PMB \ No newline at end of file diff --git a/src/logo/ascii/cycledream.txt b/src/logo/ascii/cycledream.txt index 2f613eaa4..fd0df05f3 100644 --- a/src/logo/ascii/cycledream.txt +++ b/src/logo/ascii/cycledream.txt @@ -18,4 +18,4 @@ x0. ... 00000000000. ... '0: Oo' ,dO O0 ;Oo;. .;oO, 00 xkdocc:ccodko - ;k0k, + ;k0k, \ No newline at end of file diff --git a/src/logo/ascii/dahlia.txt b/src/logo/ascii/dahlia.txt index d3d058803..df886d9cb 100644 --- a/src/logo/ascii/dahlia.txt +++ b/src/logo/ascii/dahlia.txt @@ -14,4 +14,4 @@ ,#@@@@@@@@@@@@@@@@@@@@@#. ,*****#&@@@@@@@&(*****, ,/%@@@%/. - ,#, + ,#, \ No newline at end of file diff --git a/src/logo/ascii/darkos.txt b/src/logo/ascii/darkos.txt index 8ff29fab7..12ac10897 100644 --- a/src/logo/ascii/darkos.txt +++ b/src/logo/ascii/darkos.txt @@ -17,4 +17,4 @@ ${c6}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⡟⢠⣿⣿⣿⠋ ${c1}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠚⢲⣿⠀⣾⣿⣿⠁⠀⠀⠉⢷⡀⠀⠀⣇⠀⠀⠈⠻⡀⠀⠀⠀⠀⠀ ${c4}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢⣀⣿⡏⠀⣿⡿⠀⠀⠀⠀⠀⠀⠙⣦⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ${c3}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⣧⣾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣮⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ -${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀ +${c5}⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⠀⠀⠀⠀⠀ \ No newline at end of file diff --git a/src/logo/ascii/desaos.txt b/src/logo/ascii/desaos.txt index 8259b116e..f8e9fc30e 100644 --- a/src/logo/ascii/desaos.txt +++ b/src/logo/ascii/desaos.txt @@ -13,4 +13,4 @@ ██████████████████████████████ ████████████████████████ ████████████████████████ -████████████████████████ +████████████████████████ \ No newline at end of file diff --git a/src/logo/ascii/devuan.txt b/src/logo/ascii/devuan.txt index 2ecd8d749..b9a7dd87e 100644 --- a/src/logo/ascii/devuan.txt +++ b/src/logo/ascii/devuan.txt @@ -12,4 +12,4 @@ ,db$$$$$$$$$$$$$$$$$$$$$$$$$$$$b:'` :$$$$$$$$$$$$$$$$$$$$$$$$b:'` `$$$$$$$$$bd:''` - `'''` + `'''` \ No newline at end of file diff --git a/src/logo/ascii/devuan_small.txt b/src/logo/ascii/devuan_small.txt index c56ceae8b..a85add09f 100644 --- a/src/logo/ascii/devuan_small.txt +++ b/src/logo/ascii/devuan_small.txt @@ -4,4 +4,4 @@ =@@ :+%@#: .:=+#@@%*: -#@@@#=: +#@@@#=: \ No newline at end of file diff --git a/src/logo/ascii/dietpi.txt b/src/logo/ascii/dietpi.txt index 7e2b10d9b..d859c175d 100644 --- a/src/logo/ascii/dietpi.txt +++ b/src/logo/ascii/dietpi.txt @@ -16,4 +16,4 @@ ${c2} .#@@@@@@@@@@@@@@@@@@@@#. #@@@@@@@@@@@@@@@@@@@@@@# -#@@@@@@@@@@@@@@@@@@#- -*%@@@@@@@@@@%*- - .+%@@@@%+. + .+%@@@@%+. \ No newline at end of file diff --git a/src/logo/ascii/dracos.txt b/src/logo/ascii/dracos.txt index e8d59dd02..6cfa5c700 100644 --- a/src/logo/ascii/dracos.txt +++ b/src/logo/ascii/dracos.txt @@ -10,4 +10,4 @@ -oyyy+ +- :yyyyyo- `:sy: `. `/yyyyys: ./o/.` .oyyso+oo:` - :+oo+//::::///:-.` `.` + :+oo+//::::///:-.` `.` \ No newline at end of file diff --git a/src/logo/ascii/dragonfly.txt b/src/logo/ascii/dragonfly.txt index 7ccc14bc3..86397be28 100644 --- a/src/logo/ascii/dragonfly.txt +++ b/src/logo/ascii/dragonfly.txt @@ -12,4 +12,4 @@ ${c1} | | | | | | | | - `|' + `|' \ No newline at end of file diff --git a/src/logo/ascii/dragonfly_old.txt b/src/logo/ascii/dragonfly_old.txt index 66609ffb5..7ae58576d 100644 --- a/src/logo/ascii/dragonfly_old.txt +++ b/src/logo/ascii/dragonfly_old.txt @@ -14,4 +14,4 @@ `~"~"` ${c1} |=|${c2} `"~"~` ${c1} /=\\ \\=/ - ^ + ^ \ No newline at end of file diff --git a/src/logo/ascii/dragonfly_small.txt b/src/logo/ascii/dragonfly_small.txt index a20c040c8..eb5a52c0a 100644 --- a/src/logo/ascii/dragonfly_small.txt +++ b/src/logo/ascii/dragonfly_small.txt @@ -4,4 +4,4 @@ ${c2} ,${c1}_${c2}, (_-'${c1}|${c2}'-_) ${c1}| | - | + | \ No newline at end of file diff --git a/src/logo/ascii/drauger.txt b/src/logo/ascii/drauger.txt index 72ae4ffe5..6dc569c45 100644 --- a/src/logo/ascii/drauger.txt +++ b/src/logo/ascii/drauger.txt @@ -13,4 +13,4 @@ :++:` `:++: `/++- -++/` .:-.`..............................`.-:. -`.-/++++++++++++++++++++++++++++++++/-.` +`.-/++++++++++++++++++++++++++++++++/-.` \ No newline at end of file diff --git a/src/logo/ascii/droidian.txt b/src/logo/ascii/droidian.txt index bc1eace63..d60b676e6 100644 --- a/src/logo/ascii/droidian.txt +++ b/src/logo/ascii/droidian.txt @@ -12,4 +12,4 @@ ${c2} `Y$$$$ `Y$$$$. `$$$$b. `Y$$$$b. - `"Y$$b._ + `"Y$$b._ \ No newline at end of file diff --git a/src/logo/ascii/elbrus.txt b/src/logo/ascii/elbrus.txt index b70cac89c..9e30e83dd 100644 --- a/src/logo/ascii/elbrus.txt +++ b/src/logo/ascii/elbrus.txt @@ -11,4 +11,4 @@ ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ ██ ██ -███████████████████████████ +███████████████████████████ \ No newline at end of file diff --git a/src/logo/ascii/elementary.txt b/src/logo/ascii/elementary.txt index e347f52ee..6fc0b9e6f 100644 --- a/src/logo/ascii/elementary.txt +++ b/src/logo/ascii/elementary.txt @@ -14,4 +14,4 @@ eee eeeeeeeeee eeeeee eee eeeeeeee eeeeeeeeeeee eeee eeeee eeeee eeeeeee eeeeeee - eeeeeeeeeeeeeeeee + eeeeeeeeeeeeeeeee \ No newline at end of file diff --git a/src/logo/ascii/elementary_small.txt b/src/logo/ascii/elementary_small.txt index 161031330..250357700 100644 --- a/src/logo/ascii/elementary_small.txt +++ b/src/logo/ascii/elementary_small.txt @@ -3,4 +3,4 @@ / | / /\\ |__\\ / / | \\ /__/ / - \\_______/ + \\_______/ \ No newline at end of file diff --git a/src/logo/ascii/elive.txt b/src/logo/ascii/elive.txt index 4727cd863..67abf6cbc 100644 --- a/src/logo/ascii/elive.txt +++ b/src/logo/ascii/elive.txt @@ -14,4 +14,4 @@ ${c3}#${c2}#////* ${c3}***${c2}.*/////. ..${c1}*${c2}*****.. *${c1}%${c2}/****. .,,*******,${c3},,../##(${c2}%&${c1}&${c2}#******${c1},${c2}. ,*${c1},${c2},,,,,,,,,,,,,,,,,,,${c1},${c2}.. - *//${c1}/,,${c2},,,,,,,${c1},..${c2} + *//${c1}/,,${c2},,,,,,,${c1},..${c2} \ No newline at end of file diff --git a/src/logo/ascii/encryptos.txt b/src/logo/ascii/encryptos.txt index 4f86a291c..2783b1b55 100644 --- a/src/logo/ascii/encryptos.txt +++ b/src/logo/ascii/encryptos.txt @@ -10,4 +10,4 @@ ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,,,,,,,,,,,,,, - ,,,,,,,,,,,,. + ,,,,,,,,,,,,. \ No newline at end of file diff --git a/src/logo/ascii/endeavour_small.txt b/src/logo/ascii/endeavour_small.txt index 2bc9e93b0..763a1bc38 100644 --- a/src/logo/ascii/endeavour_small.txt +++ b/src/logo/ascii/endeavour_small.txt @@ -4,4 +4,4 @@ ${c1} /${c2}ossssssso${c3}: ${c1} /${c2}ssssssssssso${c3}+ ${c1} /${c2}ssssssssssssssso${c3}+ ${c1}//${c2}osssssssssssssso${c3}+- - `+++++++++++++++-` + `+++++++++++++++-` \ No newline at end of file diff --git a/src/logo/ascii/endless.txt b/src/logo/ascii/endless.txt index 7dcf052ec..8fc8b654c 100644 --- a/src/logo/ascii/endless.txt +++ b/src/logo/ascii/endless.txt @@ -17,4 +17,4 @@ dMm `/++/-``/yNNh+/sdNMNddMm- mMd /mMNo` `oNMm/ /dMMh+. .+hMMd/ -odMMNhso//////oshNMMdo- - `:+yhmNMMMMNmhy+:` + `:+yhmNMMMMNmhy+:` \ No newline at end of file diff --git a/src/logo/ascii/enso.txt b/src/logo/ascii/enso.txt index 5177215b0..5f93412c7 100644 --- a/src/logo/ascii/enso.txt +++ b/src/logo/ascii/enso.txt @@ -16,4 +16,4 @@ =###########+=: =+=: .+#############. .-==: .=###########= ..:--:. - .-+######+ + .-+######+ \ No newline at end of file diff --git a/src/logo/ascii/eshanizedos.txt b/src/logo/ascii/eshanizedos.txt index 26ec7422a..3d6e34827 100644 --- a/src/logo/ascii/eshanizedos.txt +++ b/src/logo/ascii/eshanizedos.txt @@ -24,4 +24,4 @@ :+**************************************+. -+************************************- .-+*********************************. - :-==+*************************=. + :-==+*************************=. \ No newline at end of file diff --git a/src/logo/ascii/eurolinux.txt b/src/logo/ascii/eurolinux.txt index b379eba1c..a676122dd 100644 --- a/src/logo/ascii/eurolinux.txt +++ b/src/logo/ascii/eurolinux.txt @@ -15,4 +15,4 @@ wWW${c2}N${c1}WWWWw wWWWWWWWWWWWWWWWw wWWWWWWWWWWWWWWWw WWWWWWWWWWWWWw - wWWWWWWWw + wWWWWWWWw \ No newline at end of file diff --git a/src/logo/ascii/evolinx.txt b/src/logo/ascii/evolinx.txt index 9eec96f56..6aa225471 100644 --- a/src/logo/ascii/evolinx.txt +++ b/src/logo/ascii/evolinx.txt @@ -7,4 +7,4 @@ |#SS*|********\SSS**/**SS*|**SS*|SS*|********SS*|**SS*|\SSS*|SS**/\SS\*#| |#SSSSSSSS\****\S**/****SSSSSS**|SSSSSSSS\*SSSSSS\*SS*|*\SS*|SS*/**SS*|#| |#\________|****\_/*****\______/*\________|\______|\__|**\__|\__|**\__|#| -#-----------------------------------------------------------------------# +#-----------------------------------------------------------------------# \ No newline at end of file diff --git a/src/logo/ascii/evolutionos.txt b/src/logo/ascii/evolutionos.txt index 18ca20e23..16dfd8b2d 100644 --- a/src/logo/ascii/evolutionos.txt +++ b/src/logo/ascii/evolutionos.txt @@ -18,4 +18,4 @@ cWMMMMMMMMMMMMMMMMMMMMMMWd :KWMMMMMMMMMMMMMMWXo. .cdO0KK00xl' - .. + .. \ No newline at end of file diff --git a/src/logo/ascii/evolutionos_old.txt b/src/logo/ascii/evolutionos_old.txt index 7a6622d4a..514463199 100644 --- a/src/logo/ascii/evolutionos_old.txt +++ b/src/logo/ascii/evolutionos_old.txt @@ -15,4 +15,4 @@ dd: ldl: dd: dd: ldl: ddddddddddddddd; dd: dddd:.''' ''''''''''''''' dddd: dddddddddddddddddddddddddd;;' - ''''''''''''''''''''''''' + ''''''''''''''''''''''''' \ No newline at end of file diff --git a/src/logo/ascii/evolutionos_small.txt b/src/logo/ascii/evolutionos_small.txt index 8692019a9..ddc911aeb 100644 --- a/src/logo/ascii/evolutionos_small.txt +++ b/src/logo/ascii/evolutionos_small.txt @@ -6,4 +6,4 @@ odddd$1OMX$2k$100O$2k$1OO$2ddddo .dddd$1OMX$2kOOOxOkdddd. .ddd$1OWW$2X$1XXXXXK$2ddd' 'dddddddddddd' - 'cddddd, + 'cddddd, \ No newline at end of file diff --git a/src/logo/ascii/exherbo.txt b/src/logo/ascii/exherbo.txt index 0d7ed1bd4..e8d084653 100644 --- a/src/logo/ascii/exherbo.txt +++ b/src/logo/ascii/exherbo.txt @@ -19,4 +19,4 @@ KX '0XdKMMK;.xMMMk, .0MMMMMXx; ... :XMNxl,';:lodxkOO000Oxc. .oWMMo 'dXMMXkl;,. .,o0MMNo' ':d0XWMMMMWNNNNMMMNOl' - ':okKXWNKkl' + ':okKXWNKkl' \ No newline at end of file diff --git a/src/logo/ascii/exodia_predator.txt b/src/logo/ascii/exodia_predator.txt index 67456ce2a..4b75012a3 100644 --- a/src/logo/ascii/exodia_predator.txt +++ b/src/logo/ascii/exodia_predator.txt @@ -21,4 +21,4 @@ =++ ++= =+. .+= =- -= - : : + : : \ No newline at end of file diff --git a/src/logo/ascii/fedora_coreos.txt b/src/logo/ascii/fedora_coreos.txt index e1f81b9d1..d066b2ec8 100644 --- a/src/logo/ascii/fedora_coreos.txt +++ b/src/logo/ascii/fedora_coreos.txt @@ -17,4 +17,4 @@ .cccccccccccccclcccccccccc:. .;cccclccccccllllllccc,. .';ccccclllccc:;.. - ..... + ..... \ No newline at end of file diff --git a/src/logo/ascii/fedora_kinoite.txt b/src/logo/ascii/fedora_kinoite.txt index 1d21a87b9..64bc7d590 100644 --- a/src/logo/ascii/fedora_kinoite.txt +++ b/src/logo/ascii/fedora_kinoite.txt @@ -15,4 +15,4 @@ $1looooooo$2 :::;' ';:;. $1looooooo$2 ::: ::: $1cooooooo$2 .::' '::. $1 .ooooc $2 ::, ,:: - '''' + '''' \ No newline at end of file diff --git a/src/logo/ascii/fedora_sericea.txt b/src/logo/ascii/fedora_sericea.txt index 69f01778c..cd7dfb2ed 100644 --- a/src/logo/ascii/fedora_sericea.txt +++ b/src/logo/ascii/fedora_sericea.txt @@ -14,4 +14,4 @@ ooooooooooooooooo$2ll$1ooooooooooo$2ll$1oo' lll lll ;ll, - .l: + .l: \ No newline at end of file diff --git a/src/logo/ascii/fedora_silverblue.txt b/src/logo/ascii/fedora_silverblue.txt index af96ca6cb..993a99fdb 100644 --- a/src/logo/ascii/fedora_silverblue.txt +++ b/src/logo/ascii/fedora_silverblue.txt @@ -14,4 +14,4 @@ $1dddddd$2;XXXXX,,,,,,,,,,,,,;XXX:$3;;;;; $1dddddd$2:XXXXXXXXXXXXXXXXXXXX$3x$2XX$3;;;;; $1ddddd'$3;;;;;;;;;;;;;;;;;;;$2'XXX'$3;;;;' $1ddd'$3;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -$1o'$3;;;;;;;;;;;;;;;;;;;;;;;;;;;;' +$1o'$3;;;;;;;;;;;;;;;;;;;;;;;;;;;;' \ No newline at end of file diff --git a/src/logo/ascii/femboyos.txt b/src/logo/ascii/femboyos.txt index 20f0306ed..c447e7a1a 100644 --- a/src/logo/ascii/femboyos.txt +++ b/src/logo/ascii/femboyos.txt @@ -17,4 +17,4 @@ MMMMMMMMMNO: ... .cKWMMMMMMMMMMM MMMMMMMMMMNx,. .;dk:. .;kNMMMMMMMMMMMM MMMMMMMMMMMN0ocxXWNkl:,:xXWMMMMMMMMMMMMM MMMMMMMMMMMMMWNWMMMWWNNNWMMMMMMMMMMMMMMM -MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM \ No newline at end of file diff --git a/src/logo/ascii/feren.txt b/src/logo/ascii/feren.txt index 186dd7df8..f1d3a5c33 100644 --- a/src/logo/ascii/feren.txt +++ b/src/logo/ascii/feren.txt @@ -13,4 +13,4 @@ .:++++++++//////////- `-++++++---:::://///. `.:///+++. ` - `......... + `......... \ No newline at end of file diff --git a/src/logo/ascii/finnix.txt b/src/logo/ascii/finnix.txt index 9f18eac78..c1f7729b0 100644 --- a/src/logo/ascii/finnix.txt +++ b/src/logo/ascii/finnix.txt @@ -14,4 +14,4 @@ ;S######################%: ,+%##################%; :+?S##########S?+: - ,:;++++;:, + ,:;++++;:, \ No newline at end of file diff --git a/src/logo/ascii/floflis.txt b/src/logo/ascii/floflis.txt index 7d5020518..6247b37cf 100644 --- a/src/logo/ascii/floflis.txt +++ b/src/logo/ascii/floflis.txt @@ -16,4 +16,4 @@ ╝▓██▀ ╓▓████████████████▓ ▀▓██▀ ,▄████████████████████▌, ╝▀████████████████████▓▀' - `╙▀▀▓▓███████▓▀▀╩' + `╙▀▀▓▓███████▓▀▀╩' \ No newline at end of file diff --git a/src/logo/ascii/freemint.txt b/src/logo/ascii/freemint.txt index bc2842dbe..34d6b73e7 100644 --- a/src/logo/ascii/freemint.txt +++ b/src/logo/ascii/freemint.txt @@ -12,4 +12,4 @@ ## #### ###### ## ## #### #### ## ## ## ## ## #### - #### ## ## ## + #### ## ## ## \ No newline at end of file diff --git a/src/logo/ascii/frugalware.txt b/src/logo/ascii/frugalware.txt index 7b760d3d6..7d4b2c2cb 100644 --- a/src/logo/ascii/frugalware.txt +++ b/src/logo/ascii/frugalware.txt @@ -20,4 +20,4 @@ ``.-/+oosysssssssssssssssssssssss ``.:/+osyysssssssssssssh. `-:/+osyyssssyo - .-:+++` + .-:+++` \ No newline at end of file diff --git a/src/logo/ascii/funtoo.txt b/src/logo/ascii/funtoo.txt index ad7a2e6e8..79436339f 100644 --- a/src/logo/ascii/funtoo.txt +++ b/src/logo/ascii/funtoo.txt @@ -7,4 +7,4 @@ xXXXXXX, cXXXNNNXXXXNNXXXXXXXXNNNNKOOK; d0O .k kXX xNo loooc KNN. oNNNN. 'NNo kXX xN0:. KNN' oNNNX' ,XNk kXX xNNXNNNNNNNNXNNNNNNNNXNNOxXNX0Xl - ... ......................... .;cc;. + ... ......................... .;cc;. \ No newline at end of file diff --git a/src/logo/ascii/furreto.txt b/src/logo/ascii/furreto.txt index 14ba1c1d0..95ee07c98 100644 --- a/src/logo/ascii/furreto.txt +++ b/src/logo/ascii/furreto.txt @@ -19,4 +19,4 @@ $1.$2kOOkkk; lkK$1WN$2kkkxc kkxkkkkkkx. - ,,..xxx. + ,,..xxx. \ No newline at end of file diff --git a/src/logo/ascii/galliumos.txt b/src/logo/ascii/galliumos.txt index fdc4b71cf..1dbed7f48 100644 --- a/src/logo/ascii/galliumos.txt +++ b/src/logo/ascii/galliumos.txt @@ -16,4 +16,4 @@ yyyyyyyyyyyys+:--................://:::: yyyyyyyyyo+:-.....................-//::: yyyyyyo+:-..........................://: yyyo+:-..............................-// -o/:-...................................: +o/:-...................................: \ No newline at end of file diff --git a/src/logo/ascii/garuda_dragon.txt b/src/logo/ascii/garuda_dragon.txt index 26f7013b8..e93a04d45 100644 --- a/src/logo/ascii/garuda_dragon.txt +++ b/src/logo/ascii/garuda_dragon.txt @@ -21,4 +21,4 @@ .=+++++- .= +.=:= .:: :=+++++:. .: : . :---- .-++++=-:.. .:--===-. - .-=+++++===-----=======-:. + .-=+++++===-----=======-:. \ No newline at end of file diff --git a/src/logo/ascii/ghostbsd.txt b/src/logo/ascii/ghostbsd.txt index f77302680..97d060cb4 100644 --- a/src/logo/ascii/ghostbsd.txt +++ b/src/logo/ascii/ghostbsd.txt @@ -10,4 +10,4 @@ .gg*' .gga* .gga* - (ga* + (ga* \ No newline at end of file diff --git a/src/logo/ascii/glaucus.txt b/src/logo/ascii/glaucus.txt index 6878951e9..f10d7e518 100644 --- a/src/logo/ascii/glaucus.txt +++ b/src/logo/ascii/glaucus.txt @@ -9,4 +9,4 @@ 888888888888888888888888888888888* *8888888888888888888888888888888* Y888888888P* `*``*888888888888* - *^888^* *Y888P** + *^888^* *Y888P** \ No newline at end of file diff --git a/src/logo/ascii/gnewsense.txt b/src/logo/ascii/gnewsense.txt index d6a43f5df..5333e92af 100644 --- a/src/logo/ascii/gnewsense.txt +++ b/src/logo/ascii/gnewsense.txt @@ -9,4 +9,4 @@ ollllllh +llllllllllll+ hllllllo `cllllh. ohllllllho .hllllc' ochllc. ++++ .cllhco `+occooo+. .+ooocco+' - `+oo++++ ++++oo+' + `+oo++++ ++++oo+' \ No newline at end of file diff --git a/src/logo/ascii/gobolinux.txt b/src/logo/ascii/gobolinux.txt index a8583004a..062dc9c57 100644 --- a/src/logo/ascii/gobolinux.txt +++ b/src/logo/ascii/gobolinux.txt @@ -3,4 +3,4 @@ | | __ ___ | |__ ___ | | |_ |/ _ \| '_ \ / _ \ | |__| | (_) | |_) | (_) | - \_____|\___/|_.__/ \___/ + \_____|\___/|_.__/ \___/ \ No newline at end of file diff --git a/src/logo/ascii/grapheneos.txt b/src/logo/ascii/grapheneos.txt index c1b8152e8..e474bdee0 100644 --- a/src/logo/ascii/grapheneos.txt +++ b/src/logo/ascii/grapheneos.txt @@ -20,4 +20,4 @@ #Y^G& B~ G! - # + # \ No newline at end of file diff --git a/src/logo/ascii/grombyang.txt b/src/logo/ascii/grombyang.txt index 6bbfa08bc..5313313ae 100644 --- a/src/logo/ascii/grombyang.txt +++ b/src/logo/ascii/grombyang.txt @@ -15,4 +15,4 @@ eee ${c2}// \\ooo/ \\\ ${c1}eee eeee ${c2}::::++oooo+::::: ${c1}eeee eeeee ${c3}Grombyang OS ${c1} eeee eeeeeeeeeeeeeeeeeeeeeee - eeeeeeeeeeeeeeeee + eeeeeeeeeeeeeeeee \ No newline at end of file diff --git a/src/logo/ascii/guix.txt b/src/logo/ascii/guix.txt index 64b7a9972..a77ee7749 100644 --- a/src/logo/ascii/guix.txt +++ b/src/logo/ascii/guix.txt @@ -7,4 +7,4 @@ `///- .:::` -+++-:::. :+/:::- - `-....` + `-....` \ No newline at end of file diff --git a/src/logo/ascii/guix_small.txt b/src/logo/ascii/guix_small.txt index ee48c0021..6ccbf66c5 100644 --- a/src/logo/ascii/guix_small.txt +++ b/src/logo/ascii/guix_small.txt @@ -4,4 +4,4 @@ \\ \\ / / \\ \\ / / \\ \\/ / - \\__/ + \\__/ \ No newline at end of file diff --git a/src/logo/ascii/hamonikr.txt b/src/logo/ascii/hamonikr.txt index c2f38f432..bbb634532 100644 --- a/src/logo/ascii/hamonikr.txt +++ b/src/logo/ascii/hamonikr.txt @@ -20,4 +20,4 @@ ${c1} .cooc' ${c3}.llllcoooooooooooooo. .coooooooooooop. .cooooooooooop. .cooooooooop. - .cooooop' + .cooooop' \ No newline at end of file diff --git a/src/logo/ascii/hardclanz.txt b/src/logo/ascii/hardclanz.txt index 19766d953..c7931c3da 100644 --- a/src/logo/ascii/hardclanz.txt +++ b/src/logo/ascii/hardclanz.txt @@ -16,4 +16,4 @@ ${c1} ........::::.... `:####:.${c2}@@@@@@@@@@@@@@${c1}:#####: ``:##:.${c2}@@@@@@@@@@@@${c1}^## # : : ## ${c2}\@@@;@@@/ ${c1}:: # : - ${c2} VVV + ${c2} VVV \ No newline at end of file diff --git a/src/logo/ascii/hash.txt b/src/logo/ascii/hash.txt index 1ddaf1758..58496286b 100644 --- a/src/logo/ascii/hash.txt +++ b/src/logo/ascii/hash.txt @@ -10,4 +10,4 @@ ###### '"###### '"###### ##### ###### ##### ### ###### ### - ~ ###### ~ + ~ ###### ~ \ No newline at end of file diff --git a/src/logo/ascii/huayra.txt b/src/logo/ascii/huayra.txt index 5cca3f880..2f4e90166 100644 --- a/src/logo/ascii/huayra.txt +++ b/src/logo/ascii/huayra.txt @@ -14,4 +14,4 @@ ${c2} ` .+s/` `/s-.-.:.`` ```` ::` `::`..` .` `.. - `` + `` \ No newline at end of file diff --git a/src/logo/ascii/hybrid.txt b/src/logo/ascii/hybrid.txt index bc0d06444..1d5eb004c 100644 --- a/src/logo/ascii/hybrid.txt +++ b/src/logo/ascii/hybrid.txt @@ -13,4 +13,4 @@ ${c1}///// ${c2}###### ${c1}///// ${c2}###### ${c1}///// ${c2}###### ${c1}///// ${c2}######### -${c1}////& ${c2}######## +${c1}////& ${c2}######## \ No newline at end of file diff --git a/src/logo/ascii/hydroos.txt b/src/logo/ascii/hydroos.txt index df5bbe4a5..defd799c9 100644 --- a/src/logo/ascii/hydroos.txt +++ b/src/logo/ascii/hydroos.txt @@ -5,4 +5,4 @@ | | | | |_| | (_| | | | (_) | |__| |____) | |_| |_|\__, |\__,_|_| \___/ \____/|_____/ __/ | - |___/ + |___/ \ No newline at end of file diff --git a/src/logo/ascii/hyperbola.txt b/src/logo/ascii/hyperbola.txt index 396a7a195..3e5cbaa49 100644 --- a/src/logo/ascii/hyperbola.txt +++ b/src/logo/ascii/hyperbola.txt @@ -13,4 +13,4 @@ X0OO0XNW KOOW N00KNW KOW NKXN W0W -WW W +WW W \ No newline at end of file diff --git a/src/logo/ascii/hyperbola_small.txt b/src/logo/ascii/hyperbola_small.txt index b3adf7d9e..877bcbdfd 100644 --- a/src/logo/ascii/hyperbola_small.txt +++ b/src/logo/ascii/hyperbola_small.txt @@ -4,4 +4,4 @@ / \\ / ___ \\ / .` `.\\ -/.` `.\\ +/.` `.\\ \ No newline at end of file diff --git a/src/logo/ascii/hypros.txt b/src/logo/ascii/hypros.txt index 5b8b10ffb..5b7d4dddf 100644 --- a/src/logo/ascii/hypros.txt +++ b/src/logo/ascii/hypros.txt @@ -14,4 +14,4 @@ $4`\\\\$2,.$4\$3<$2`*$3^`x<$1,z<#&#x"$3,' $3`<_<<$2^<\-.$3`*`>$1<^'$4,-' $3`<_=-$2^\Xx$1XX\.$3+<. $3`^<_-$2^ ${c2}/ ${c1}/ \\ ${c2}\\ ${c1}\\ \\_${c2}\\${c1}_\\ -${c2} \\ +${c2} \\ \ No newline at end of file diff --git a/src/logo/ascii/live_raizo.txt b/src/logo/ascii/live_raizo.txt index ebc079feb..926417d32 100644 --- a/src/logo/ascii/live_raizo.txt +++ b/src/logo/ascii/live_raizo.txt @@ -17,4 +17,4 @@ mMMMs dMMMo sMMMMMMd yMMMd sMMMm sMMMMMMm-hNMMMd-hMMMMMMd :yddh+`hMMMMMMN :yddy/` .hMMMMd: - `..` + `..` \ No newline at end of file diff --git a/src/logo/ascii/locos.txt b/src/logo/ascii/locos.txt index cbcb5be8a..91bfe00ea 100644 --- a/src/logo/ascii/locos.txt +++ b/src/logo/ascii/locos.txt @@ -15,4 +15,4 @@ '0$1'.'$3cXXXXXXXXXXXXXXXXXXXXXXXXXO$1'''$3od .0$1,.''$30XXXXXXXXXXXXXXXXXXXXXXXXXXo$1'''$3k; cc$1..''$3XXXXXXXXXXXXXXXXXXXXXXXXXXXk$1''''$3k - l$1...',$3XXXXXXXXXXXXXXXXXXXXXXXXXXXO$1''''$3d. + l$1...',$3XXXXXXXXXXXXXXXXXXXXXXXXXXXO$1''''$3d. \ No newline at end of file diff --git a/src/logo/ascii/lunar.txt b/src/logo/ascii/lunar.txt index dd4373e83..802478531 100644 --- a/src/logo/ascii/lunar.txt +++ b/src/logo/ascii/lunar.txt @@ -10,4 +10,4 @@ ${c3} __ | | _ _ ___ ___ ___ | |__| | | | .'| _| - |_____|___|_|_|__,|_| + |_____|___|_|_|__,|_| \ No newline at end of file diff --git a/src/logo/ascii/macos3.txt b/src/logo/ascii/macos3.txt index d3900c02a..4abb27892 100644 --- a/src/logo/ascii/macos3.txt +++ b/src/logo/ascii/macos3.txt @@ -13,4 +13,4 @@ ${c5} osssssssssssssssssssssssss` ${c5} `syyyyyyyyyyyyyyyyyyyyyyyyys` ${c6} `ossssssssssssssssssssssss ${c6} :ooooooooooooooooooo+. -${c6} `:++oo+/:- -:/+o+/- +${c6} `:++oo+/:- -:/+o+/- \ No newline at end of file diff --git a/src/logo/ascii/mageia.txt b/src/logo/ascii/mageia.txt index cd2566deb..9ccbc8b27 100644 --- a/src/logo/ascii/mageia.txt +++ b/src/logo/ascii/mageia.txt @@ -16,4 +16,4 @@ lOO. .OO: .k00; ;00O. .lO0Kc;,,,,,,;c0KOc. ;d00KKKKKK00d; - .,KKKK,. + .,KKKK,. \ No newline at end of file diff --git a/src/logo/ascii/mageia_small.txt b/src/logo/ascii/mageia_small.txt index 84bf0dc4c..ffb60a461 100644 --- a/src/logo/ascii/mageia_small.txt +++ b/src/logo/ascii/mageia_small.txt @@ -4,4 +4,4 @@ ${c2} /\\__/\\ / \\ \\ / - \\____/ + \\____/ \ No newline at end of file diff --git a/src/logo/ascii/magpieos.txt b/src/logo/ascii/magpieos.txt index 20da68650..ce2010cff 100644 --- a/src/logo/ascii/magpieos.txt +++ b/src/logo/ascii/magpieos.txt @@ -17,4 +17,4 @@ o00. k0O${c2}dddddd${c1}occ .:o. ${c4}.xd ckd${c1} .. ${c4}dxl .xx; :xxolldxd' - ;oxdl. + ;oxdl. \ No newline at end of file diff --git a/src/logo/ascii/mainsailos.txt b/src/logo/ascii/mainsailos.txt index 3e65aa19b..7ca9c288f 100644 --- a/src/logo/ascii/mainsailos.txt +++ b/src/logo/ascii/mainsailos.txt @@ -15,4 +15,4 @@ .#%%%%%%%#: *%%%%%%%%- +%%%%*: :%%%%%%%%* :#%%%%%%%#. .*%%%%%%%* +%%%%%%%%= -%%%%%%%%+ :%%%%%%%%* - .#%%%%%%%%: *%%%%%%%%- =%%%%%%%%= + .#%%%%%%%%: *%%%%%%%%- =%%%%%%%%= \ No newline at end of file diff --git a/src/logo/ascii/mainsailos_small.txt b/src/logo/ascii/mainsailos_small.txt index 4117caa0a..c68fbbb3e 100644 --- a/src/logo/ascii/mainsailos_small.txt +++ b/src/logo/ascii/mainsailos_small.txt @@ -4,4 +4,4 @@ -%%%: += +%%#..#%%- .#%%+ -%%%- += - -%%%- +%%#..#%%+ + -%%%- +%%#..#%%+ \ No newline at end of file diff --git a/src/logo/ascii/massos.txt b/src/logo/ascii/massos.txt index 5cc4e796f..1a06b69ff 100644 --- a/src/logo/ascii/massos.txt +++ b/src/logo/ascii/massos.txt @@ -15,4 +15,4 @@ :MMMMMMMN:MMMMMMMM-MMMMMMMMs dMMMMMMN:MMMMMMMM-MMMMMMMMs `yNMMMMN:MMMMMMMM-MMMMMMMMs - `:+oss.ssssssss.ssssssss/ + `:+oss.ssssssss.ssssssss/ \ No newline at end of file diff --git a/src/logo/ascii/matuusos.txt b/src/logo/ascii/matuusos.txt index bf7505dae..ea7a36380 100644 --- a/src/logo/ascii/matuusos.txt +++ b/src/logo/ascii/matuusos.txt @@ -17,4 +17,4 @@ ░░░░░░░░░░░░░░░▒▓████████▓░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ -░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ \ No newline at end of file diff --git a/src/logo/ascii/maui.txt b/src/logo/ascii/maui.txt index 650371f48..8b7f9bb18 100644 --- a/src/logo/ascii/maui.txt +++ b/src/logo/ascii/maui.txt @@ -17,4 +17,4 @@ `:oooooooo/:::/ooooooooo+:--:/:` `:+oooooooooooooooooooooo+:` .:+oooooooooooooooo+:. - `.-://////:-.` + `.-://////:-.` \ No newline at end of file diff --git a/src/logo/ascii/mauna.txt b/src/logo/ascii/mauna.txt index 69af130c5..f5741e1df 100644 --- a/src/logo/ascii/mauna.txt +++ b/src/logo/ascii/mauna.txt @@ -12,4 +12,4 @@ $2 +++++= $1-====-$2++++: +++++ $1*+ $2 .=++++++++++++++: $2+++++= $1. $2 .=+++++++++= :=+++++= .:::--- -+++++++- - :-==++==-. + :-==++==-. \ No newline at end of file diff --git a/src/logo/ascii/meowix.txt b/src/logo/ascii/meowix.txt index 73682942a..8fc66b08d 100644 --- a/src/logo/ascii/meowix.txt +++ b/src/logo/ascii/meowix.txt @@ -7,4 +7,4 @@ ${c1} ## ${c2}%% ${c3}&& ${c4}** ${c1} ## ${c2}%%${c3}&& ${c4}** ${c1} ## ${c2}%% ${c4}** ${c1} ## ${c4}** -${c1}## ${c4}** +${c1}## ${c4}** \ No newline at end of file diff --git a/src/logo/ascii/mer.txt b/src/logo/ascii/mer.txt index 11cdca1c4..e8aa0d9c7 100644 --- a/src/logo/ascii/mer.txt +++ b/src/logo/ascii/mer.txt @@ -24,4 +24,4 @@ NNd sNN- -NNs -mMNs-.--..:dMMh` dNN .dMNo-y. `hmm/ .:` - dMs + dMs \ No newline at end of file diff --git a/src/logo/ascii/miracle_linux.txt b/src/logo/ascii/miracle_linux.txt index f7d021977..e7dce8aee 100644 --- a/src/logo/ascii/miracle_linux.txt +++ b/src/logo/ascii/miracle_linux.txt @@ -13,4 +13,4 @@ `+###:## #' `:### ' '## - '; + '; \ No newline at end of file diff --git a/src/logo/ascii/mos.txt b/src/logo/ascii/mos.txt index 7ac5d6a3f..cb1df1f4e 100644 --- a/src/logo/ascii/mos.txt +++ b/src/logo/ascii/mos.txt @@ -15,4 +15,4 @@ ==================================== -=================================== .==================================: - :--===========================-:. + :--===========================-:. \ No newline at end of file diff --git a/src/logo/ascii/mx.txt b/src/logo/ascii/mx.txt index b80cb098e..4e8f57042 100644 --- a/src/logo/ascii/mx.txt +++ b/src/logo/ascii/mx.txt @@ -14,4 +14,4 @@ MMMMMMh. `oNMMd: `/mMMMMMM MMMMm/ -hMd- `sNMMMM MMNs` - :dMMM Mm: `oMM -MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM \ No newline at end of file diff --git a/src/logo/ascii/mx2.txt b/src/logo/ascii/mx2.txt index b2132fbbd..ea1fafa13 100644 --- a/src/logo/ascii/mx2.txt +++ b/src/logo/ascii/mx2.txt @@ -15,4 +15,4 @@ @@@- .=@@= -@@@ @@+. . +@@ %=..:.................::...........:..-% -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file diff --git a/src/logo/ascii/mx_small.txt b/src/logo/ascii/mx_small.txt index b12cdd474..8188b1715 100644 --- a/src/logo/ascii/mx_small.txt +++ b/src/logo/ascii/mx_small.txt @@ -4,4 +4,4 @@ /\\/ \\\\ / \\ /\\ / \\/ \\ -/__________\\ +/__________\\ \ No newline at end of file diff --git a/src/logo/ascii/namib.txt b/src/logo/ascii/namib.txt index ee4ff6ba8..105d66ebd 100644 --- a/src/logo/ascii/namib.txt +++ b/src/logo/ascii/namib.txt @@ -17,4 +17,4 @@ sd yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ds -yhs shy- -shy yhs- -/yyys syyy/- - .:+shysyhyhhysyhs+:. + .:+shysyhyhhysyhs+:. \ No newline at end of file diff --git a/src/logo/ascii/nekos.txt b/src/logo/ascii/nekos.txt index 8dfeb3c3e..fcfa05bfa 100644 --- a/src/logo/ascii/nekos.txt +++ b/src/logo/ascii/nekos.txt @@ -20,4 +20,4 @@ @@@ @@@@@@@#@@@@@@@ @@@ @@@@@@@@@@@@@@@ @@@@ @@@@@@@@@@@@@@@@@ - @@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file diff --git a/src/logo/ascii/neptune.txt b/src/logo/ascii/neptune.txt index b88d03169..28ca7a2e5 100644 --- a/src/logo/ascii/neptune.txt +++ b/src/logo/ascii/neptune.txt @@ -14,4 +14,4 @@ .yMNs: `/.` `/yNNo` .odNNy+-` .:ohNNd/. -+ymNNmdyyyyyyydmNNmy+. - `-//sssssss//. + `-//sssssss//. \ No newline at end of file diff --git a/src/logo/ascii/netrunner.txt b/src/logo/ascii/netrunner.txt index abbaef9bd..26e8ea101 100644 --- a/src/logo/ascii/netrunner.txt +++ b/src/logo/ascii/netrunner.txt @@ -17,4 +17,4 @@ mMMMMMMMMMMMMMMMMMs -NMMMMMMMMMMMMMMd /mMMMMMMMMMMMMMMMMMMMMMMMMMMMMm: +dMMMMMMMMMMMMMMMMMMMMMMMMd/ -odMMMMMMMMMMMMMMMMMMdo- - `:+ydmNMMMMNmhy+-` + `:+ydmNMMMMNmhy+-` \ No newline at end of file diff --git a/src/logo/ascii/nitrux.txt b/src/logo/ascii/nitrux.txt index c27c02356..571fa743f 100644 --- a/src/logo/ascii/nitrux.txt +++ b/src/logo/ascii/nitrux.txt @@ -15,4 +15,4 @@ `/s+:+oooossso/.` `//+sssssso:. `+syyyy+:` -:+s+- +:+s+- \ No newline at end of file diff --git a/src/logo/ascii/nixos_old_small.txt b/src/logo/ascii/nixos_old_small.txt index 4ca2f52c5..f6af0a698 100644 --- a/src/logo/ascii/nixos_old_small.txt +++ b/src/logo/ascii/nixos_old_small.txt @@ -4,4 +4,4 @@ $2 // $2\\$1// $2==// $1//== $2 //$1\\$2___$1// $2// $1/\\ $2\\== - $1// \\ $2\\ + $1// \\ $2\\ \ No newline at end of file diff --git a/src/logo/ascii/nixos_small.txt b/src/logo/ascii/nixos_small.txt index 3e46ea598..1ac92d85c 100644 --- a/src/logo/ascii/nixos_small.txt +++ b/src/logo/ascii/nixos_small.txt @@ -4,4 +4,4 @@ $2 ▟▛ ▜$1▃▟🬕 $2🬋🬋🬫█ $1█🬛🬋🬋 $2 🬷▛🮃$1▙ ▟▛ $2 🮃 $1▟█🬴$2▀▀▀█🬴▀▀ -$1 ▝▀ ▀▘ $2▀▘ +$1 ▝▀ ▀▘ $2▀▘ \ No newline at end of file diff --git a/src/logo/ascii/nobara.txt b/src/logo/ascii/nobara.txt index dd05b8bb7..a0fadc2ef 100644 --- a/src/logo/ascii/nobara.txt +++ b/src/logo/ascii/nobara.txt @@ -14,4 +14,4 @@ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠉⠛⠛⢿⣿⣿⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿ ⠘⢿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⠟⠁ - ⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠁ + ⠈⠙⠛⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠁ \ No newline at end of file diff --git a/src/logo/ascii/nurunner.txt b/src/logo/ascii/nurunner.txt index a4fa6c524..054623307 100644 --- a/src/logo/ascii/nurunner.txt +++ b/src/logo/ascii/nurunner.txt @@ -16,4 +16,4 @@ lXx. :KO' cKk' cXk. ;00:lXx. - ,kd. + ,kd. \ No newline at end of file diff --git a/src/logo/ascii/nutyx.txt b/src/logo/ascii/nutyx.txt index 6adc33fa7..d0ca44d5f 100644 --- a/src/logo/ascii/nutyx.txt +++ b/src/logo/ascii/nutyx.txt @@ -20,4 +20,4 @@ +. ----. . .+. .. - . - . + . \ No newline at end of file diff --git a/src/logo/ascii/obarun.txt b/src/logo/ascii/obarun.txt index 2e57389d4..e2428c457 100644 --- a/src/logo/ascii/obarun.txt +++ b/src/logo/ascii/obarun.txt @@ -16,4 +16,4 @@ cooooooo: ,;co; ,ooooooool; ,:loc cooooooooooooloooooc ;ooooooooooooool; - ;looooooolc; + ;looooooolc; \ No newline at end of file diff --git a/src/logo/ascii/obrevenge.txt b/src/logo/ascii/obrevenge.txt index d561ad217..84f833c4a 100644 --- a/src/logo/ascii/obrevenge.txt +++ b/src/logo/ascii/obrevenge.txt @@ -15,4 +15,4 @@ Q@@@@@ggg@@f@ @@@@@@L W@@@@@g_____g@@@@@P @@@@@@@@@@@@@@@@l ^W@@@@@@@@@@@P - ^TMMMMTll + ^TMMMMTll \ No newline at end of file diff --git a/src/logo/ascii/omnios.txt b/src/logo/ascii/omnios.txt index 6852c5d9c..a0636a5fc 100644 --- a/src/logo/ascii/omnios.txt +++ b/src/logo/ascii/omnios.txt @@ -5,4 +5,4 @@ \____/ |_| |_||_|\${c2}/ __ \ / ___| | | | ||(__ ${c3}community${c2} | |__| | ___)| - ${c3}edition${c2} \____/ |____/ + ${c3}edition${c2} \____/ |____/ \ No newline at end of file diff --git a/src/logo/ascii/opak.txt b/src/logo/ascii/opak.txt index c095f50c1..0f07a3e13 100644 --- a/src/logo/ascii/opak.txt +++ b/src/logo/ascii/opak.txt @@ -10,4 +10,4 @@ ,ddddooooollllllccccccl' cxxxdddddooooollllc; ,dxxxxxddddddol. - .';::,. + .';::,. \ No newline at end of file diff --git a/src/logo/ascii/openeuler.txt b/src/logo/ascii/openeuler.txt index 38ec0c009..a2fc62729 100644 --- a/src/logo/ascii/openeuler.txt +++ b/src/logo/ascii/openeuler.txt @@ -20,4 +20,4 @@ `.cccccccccccccccccccccc.` ``.cccccccccccccc.`` `.cccccccc.` - `....` + `....` \ No newline at end of file diff --git a/src/logo/ascii/openindiana.txt b/src/logo/ascii/openindiana.txt index c76d8f7ba..3ac73148b 100644 --- a/src/logo/ascii/openindiana.txt +++ b/src/logo/ascii/openindiana.txt @@ -13,4 +13,4 @@ ${c2} .sy/ -:` .:oys/. +- `./oyys/. h+` `.-:+oyyyo/-` -`/ossssysso+/-.` +`/ossssysso+/-.` \ No newline at end of file diff --git a/src/logo/ascii/openmamba.txt b/src/logo/ascii/openmamba.txt index 61bca9fbc..94318fedb 100644 --- a/src/logo/ascii/openmamba.txt +++ b/src/logo/ascii/openmamba.txt @@ -18,4 +18,4 @@ -+oooooooooooooooooooooooo+- .:ooooooooooooooooooo+:. `-:/ooooooooo+/:.` - `````` + `````` \ No newline at end of file diff --git a/src/logo/ascii/openstage.txt b/src/logo/ascii/openstage.txt index b113be856..5ab943a40 100644 --- a/src/logo/ascii/openstage.txt +++ b/src/logo/ascii/openstage.txt @@ -14,4 +14,4 @@ /((((* ,(((((((/ ,((((( /(((((((((((((((((((/. /(((((((((/ /(((((((((((((((((, /(((((((((((/ - */(((((//*. */((/(/(/* + */(((((//*. */((/(/(/* \ No newline at end of file diff --git a/src/logo/ascii/opensuse_microos.txt b/src/logo/ascii/opensuse_microos.txt index 5f6b4c075..544087d01 100644 --- a/src/logo/ascii/opensuse_microos.txt +++ b/src/logo/ascii/opensuse_microos.txt @@ -7,4 +7,4 @@ ⢿⣿⣇ ⠙⠿⣿⣿⣿⣿⠿⠋ ⣸⣿⡿ ⠈⢻⣿⣧⣀ ⣀⣾⣿⡟⠁ ⠙⠻⣿⣷⣦⣄⣀ ⣀⣠⣴⣾⣿⠟⠋ - ⠉⠛⠿⢿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠉ + ⠉⠛⠿⢿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠉ \ No newline at end of file diff --git a/src/logo/ascii/opnsense.txt b/src/logo/ascii/opnsense.txt index 4e62c7e89..1ae5b205b 100644 --- a/src/logo/ascii/opnsense.txt +++ b/src/logo/ascii/opnsense.txt @@ -17,4 +17,4 @@ .,,;,ckOOOOOOOOOOOOOOOOOOOOOOOOx;,;,'. .:l' ........................... ;:; lOk' cdd - ;lccccccccccccccccccccccccccccccccccc:. + ;lccccccccccccccccccccccccccccccccccc:. \ No newline at end of file diff --git a/src/logo/ascii/orchid.txt b/src/logo/ascii/orchid.txt index aa1fec39c..17362a1cb 100644 --- a/src/logo/ascii/orchid.txt +++ b/src/logo/ascii/orchid.txt @@ -17,4 +17,4 @@ ${c2} .==. .-${c3}##${c1}@@@@@@@@${c3}##${c2}-. .-${c3}##${c1}@@@@${c3}##${c2}-. .-${c3}#${c1}@@${c3}#${c2}-. - .==. + .==. \ No newline at end of file diff --git a/src/logo/ascii/orchid_small.txt b/src/logo/ascii/orchid_small.txt index a124cbedd..22fe0ca16 100644 --- a/src/logo/ascii/orchid_small.txt +++ b/src/logo/ascii/orchid_small.txt @@ -10,4 +10,4 @@ +${c1}@@${c2}- -${c1}@@${c2}+ #${c1}@@${c2}=..=${c1}@@${c2}# -#${c1}@@@@${c2}#- - :##: + :##: \ No newline at end of file diff --git a/src/logo/ascii/os_elbrus.txt b/src/logo/ascii/os_elbrus.txt index b70cac89c..9e30e83dd 100644 --- a/src/logo/ascii/os_elbrus.txt +++ b/src/logo/ascii/os_elbrus.txt @@ -11,4 +11,4 @@ ██ ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██ ██ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██ ██ ██ -███████████████████████████ +███████████████████████████ \ No newline at end of file diff --git a/src/logo/ascii/osmc.txt b/src/logo/ascii/osmc.txt index a7d8868db..8bc1f943c 100644 --- a/src/logo/ascii/osmc.txt +++ b/src/logo/ascii/osmc.txt @@ -17,4 +17,4 @@ yM+ dM/+NNo` :Md +My -dMy- -yMd- :hMdo. .odMh: .+hMNho/:..``..:/ohNMh+. - -+shdmNNNNmdhs+- + -+shdmNNNNmdhs+- \ No newline at end of file diff --git a/src/logo/ascii/pacbsd.txt b/src/logo/ascii/pacbsd.txt index 0909bf35f..f4f9e3775 100644 --- a/src/logo/ascii/pacbsd.txt +++ b/src/logo/ascii/pacbsd.txt @@ -21,4 +21,4 @@ +dNMMNMMMMMMMmy` ``./ys. `/hMMMMMMMMMMMNo-`` `.+yy+-` `-/hmNMNMMMMMMmmddddhhy/-` - `-+oooyMMMdsoo+/:. + `-+oooyMMMdsoo+/:. \ No newline at end of file diff --git a/src/logo/ascii/panwah.txt b/src/logo/ascii/panwah.txt index dc33feae7..36fc73e40 100644 --- a/src/logo/ascii/panwah.txt +++ b/src/logo/ascii/panwah.txt @@ -18,4 +18,4 @@ WWWWWWW${c1}AAA${c2}WWWW WWWWWWWWWWWWWWWWWWWWWWWWWWW ${c1}AAA${c2}WWWWW${c1}OOOOOOOOOOO${c2}WWWWWWWWWWW${c1}AAA${c2}WWWWWW ${c1}OOOO${c3}GGGGGGG${c1}OOOO${c2}WWWWWWWWWW${c1}AAA${c2}WWWW ${c1}OOO${c3}GGGGGGG${c1}OOO${c2}WWWWWWWWWWWW${c1}AAA${c2}W - ${c1}OOOOOOOOO + ${c1}OOOOOOOOO \ No newline at end of file diff --git a/src/logo/ascii/parch.txt b/src/logo/ascii/parch.txt index 28fdaf492..97609a5c9 100644 --- a/src/logo/ascii/parch.txt +++ b/src/logo/ascii/parch.txt @@ -22,4 +22,4 @@ :ddddddoooolllllccc ;ddooooolllllcc. :ooollllc. - c' + c' \ No newline at end of file diff --git a/src/logo/ascii/pardus.txt b/src/logo/ascii/pardus.txt index 5305949e0..53a370b44 100644 --- a/src/logo/ascii/pardus.txt +++ b/src/logo/ascii/pardus.txt @@ -15,4 +15,4 @@ mN. oMdyy- -y `-dMo .Nm `/o+.-somNh- :yy: -hNmos-.+o/` ./` .s/`s+sMdd+``+ddMs+s`/s. `/. : -y. -hNmddmNy. .y- : - -+ `..` +- + -+ `..` +- \ No newline at end of file diff --git a/src/logo/ascii/parrot.txt b/src/logo/ascii/parrot.txt index d1f0d1ea7..9e9b2703b 100644 --- a/src/logo/ascii/parrot.txt +++ b/src/logo/ascii/parrot.txt @@ -21,4 +21,4 @@ :M- d: -+ - - + - \ No newline at end of file diff --git a/src/logo/ascii/parsix.txt b/src/logo/ascii/parsix.txt index 2753a461a..43a9c53c7 100644 --- a/src/logo/ascii/parsix.txt +++ b/src/logo/ascii/parsix.txt @@ -18,4 +18,4 @@ ${c3}-/:::::::::/:${c4}`:-. .-:${c3}`:///////////- ${c1}:/+++++- ${c2}+sssssssss ${c1}-++++++- ${c1}`--` ${c2}+sssssssso ${c1}`--` ${c2}+sssssy+` - ${c2}`.::-` + ${c2}`.::-` \ No newline at end of file diff --git a/src/logo/ascii/pcbsd.txt b/src/logo/ascii/pcbsd.txt index 4641cbc69..1519d24bc 100644 --- a/src/logo/ascii/pcbsd.txt +++ b/src/logo/ascii/pcbsd.txt @@ -24,4 +24,4 @@ h- `+ymMMMMMMMM--M+hMMN/ +MMMMy -h :y: `yMMM` `+NMMMMMMNo`:y: /s+`.omy /NMMMMMNh/.+s: .+oo:-. /mdhs+::oo+. - -/o+++++++++++/- + -/o+++++++++++/- \ No newline at end of file diff --git a/src/logo/ascii/pclinuxos.txt b/src/logo/ascii/pclinuxos.txt index 64172a3a6..dd76e3d6a 100644 --- a/src/logo/ascii/pclinuxos.txt +++ b/src/logo/ascii/pclinuxos.txt @@ -16,4 +16,4 @@ yyhh- ${c2}ymm- /dmdyosyd` ${c1}`yhh+ dsyhhs/. `:ohhhoy dysyhhhso///://+syhhhssh dhyssyhhhhhhyssyyhN - mddhdhdmN + mddhdhdmN \ No newline at end of file diff --git a/src/logo/ascii/pearos.txt b/src/logo/ascii/pearos.txt index bf151de5f..80f4b418f 100644 --- a/src/logo/ascii/pearos.txt +++ b/src/logo/ascii/pearos.txt @@ -18,4 +18,4 @@ $5 `mMMMMMMMMMMMMMMMMMMMMMMMM/ .mMMMMMMMMMMMMMMMMMMMMMM+ `oNMMMMMMMMMMMMMMMMMMd- `+hMMMMMMMMMMMMMms- - -/osyhhyso:. + -/osyhhyso:. \ No newline at end of file diff --git a/src/logo/ascii/pengwin.txt b/src/logo/ascii/pengwin.txt index 4306068e3..4e3007a54 100644 --- a/src/logo/ascii/pengwin.txt +++ b/src/logo/ascii/pengwin.txt @@ -12,4 +12,4 @@ ${c2}+yyyyyy- `.-:::-.` ${c2}.yyyyyy- ${c3} :${c2}yyyyy${c3}o ${c3} .+${c2}ooo${c3}+ -${c3} `.::/:. +${c3} `.::/:. \ No newline at end of file diff --git a/src/logo/ascii/pentoo.txt b/src/logo/ascii/pentoo.txt index c3c763ea1..3f50f42db 100644 --- a/src/logo/ascii/pentoo.txt +++ b/src/logo/ascii/pentoo.txt @@ -17,4 +17,4 @@ MMMMMMMMMM${c1}s${c2} ${c1}.:${c2}ymMMMMMMMMMMMMMMM MMMMMMMMMMN${c1}s:..-/${c2}ohNMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM - MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM \ No newline at end of file diff --git a/src/logo/ascii/peppermint.txt b/src/logo/ascii/peppermint.txt index 85f25fdc2..4f83cece2 100644 --- a/src/logo/ascii/peppermint.txt +++ b/src/logo/ascii/peppermint.txt @@ -18,4 +18,4 @@ ${c1} PP${c2}MMMMMMM${c1}PPPPPPP${c2}MMMMMM${c1}PPPPPPPPPPPP ${c1} PP${c2}MMMM${c1}PPPPPPPPP${c2}MMMMMMM${c1}PPPPPPPP ${c1} PP${c2}MM${c1}PPPPPPPP${c2}MMMMMMMMMM${c1}PPPP ${c1} PPPPPPPPPP${c2}MMMMMMMM${c1}PPPP -${c1} PPPPPPPPPPPPPP +${c1} PPPPPPPPPPPPPP \ No newline at end of file diff --git a/src/logo/ascii/peropesis.txt b/src/logo/ascii/peropesis.txt index 9bffc5cb7..32d1cf2ee 100644 --- a/src/logo/ascii/peropesis.txt +++ b/src/logo/ascii/peropesis.txt @@ -2,4 +2,4 @@ # # # # # # # # # # # # # #### ### #### # # #### ### # # # # # # # # # # # # # # -# #### # # ### # #### #### # #### +# #### # # ### # #### #### # #### \ No newline at end of file diff --git a/src/logo/ascii/phyos.txt b/src/logo/ascii/phyos.txt index 3b6919ce2..ebc148ae5 100644 --- a/src/logo/ascii/phyos.txt +++ b/src/logo/ascii/phyos.txt @@ -14,4 +14,4 @@ ~7777^~~ ^7777. :77: - .. + .. \ No newline at end of file diff --git a/src/logo/ascii/pikaos.txt b/src/logo/ascii/pikaos.txt index e20603157..ea477a258 100644 --- a/src/logo/ascii/pikaos.txt +++ b/src/logo/ascii/pikaos.txt @@ -25,4 +25,4 @@ .:cxxxxxdlccccc:ccldxxxxxxxxxxxxxx::. .'::dxxxxxxxxxxxxxxxxxxxxxxxd::'. ..,::cdxxxxxxxxxxxxxdc::,.. - ...,;:::::::;,... + ...,;:::::::;,... \ No newline at end of file diff --git a/src/logo/ascii/pisi.txt b/src/logo/ascii/pisi.txt index 5fee6715a..dc32d7a5d 100644 --- a/src/logo/ascii/pisi.txt +++ b/src/logo/ascii/pisi.txt @@ -16,4 +16,4 @@ ${c2} !0m `6Kv !3|${c1}`|=>>r- ${c2}'U%:${c1} '>>>=:`\3! 'xopE| ${c2}`'${c1} `ledoz- `;=>>+`${c2}`^llci/|==|/iclc;`${c1}'>>>>: - `^`+~ ${c2}````${c1} !!-^ + `^`+~ ${c2}````${c1} !!-^ \ No newline at end of file diff --git a/src/logo/ascii/pnm_linux.txt b/src/logo/ascii/pnm_linux.txt index 3c3f3842e..166676245 100644 --- a/src/logo/ascii/pnm_linux.txt +++ b/src/logo/ascii/pnm_linux.txt @@ -16,4 +16,4 @@ `-...${c3}+mNNNNNNNNNNNmh${c1}:...-. ${c4}.:+o+/:-${c1}:+oo+///++o+/:-${c4}:/+ooo/:. ${c4}+oo/:o- +oooooso.` - ${c4}.` ` `/ .-//- + ${c4}.` ` `/ .-//- \ No newline at end of file diff --git a/src/logo/ascii/porteus.txt b/src/logo/ascii/porteus.txt index bc2cac4be..778210a51 100644 --- a/src/logo/ascii/porteus.txt +++ b/src/logo/ascii/porteus.txt @@ -20,4 +20,4 @@ s: yNm+` .smNd+. /my` .sy` .+: - ` + ` \ No newline at end of file diff --git a/src/logo/ascii/postmarketos.txt b/src/logo/ascii/postmarketos.txt index c2646d49b..be7bc1e01 100644 --- a/src/logo/ascii/postmarketos.txt +++ b/src/logo/ascii/postmarketos.txt @@ -15,4 +15,4 @@ / \ \ \ / \ \ \ / / / \ -/___________/ /____________________\ +/___________/ /____________________\ \ No newline at end of file diff --git a/src/logo/ascii/postmarketos_small.txt b/src/logo/ascii/postmarketos_small.txt index 0d8439d63..3d0552792 100644 --- a/src/logo/ascii/postmarketos_small.txt +++ b/src/logo/ascii/postmarketos_small.txt @@ -6,4 +6,4 @@ / / \/ __ / / ____/ \ / \ \ \ -/_____/ /________\ +/_____/ /________\ \ No newline at end of file diff --git a/src/logo/ascii/proxmox.txt b/src/logo/ascii/proxmox.txt index a601cdbd9..e2b725440 100644 --- a/src/logo/ascii/proxmox.txt +++ b/src/logo/ascii/proxmox.txt @@ -17,4 +17,4 @@ ${c2}`-/+oo+/:${c1}`.yMMMMMMMh- -hMMMMMMMy.`${c2}:/+oo+/-` `-/+oo+/:`${c1}.yMMMMMMMh- -hMMMMMMMy.${c2}`:/+oo+/-` ${c1} `sMMMMMMMm: :dMMMMMMMs` `hMMMMMMd/ /dMMMMMMh` - `://:` `://:` + `://:` `://:` \ No newline at end of file diff --git a/src/logo/ascii/puffos.txt b/src/logo/ascii/puffos.txt index 46fde3a73..a8e306c00 100644 --- a/src/logo/ascii/puffos.txt +++ b/src/logo/ascii/puffos.txt @@ -9,4 +9,4 @@ ; //.\\ //.\\ ; \####/ _; (#\"// \\"/#) ; ,/ @##\ \##/ = `"=" ,;mm/ -`\##>.____,...,____,<####@ +`\##>.____,...,____,<####@ \ No newline at end of file diff --git a/src/logo/ascii/puppy.txt b/src/logo/ascii/puppy.txt index d650845dc..1d669929e 100644 --- a/src/logo/ascii/puppy.txt +++ b/src/logo/ascii/puppy.txt @@ -15,4 +15,4 @@ :mMMMMMMMMMMMmddNMMMMMMMMmh/ /dMMMMMMMMMMMMMMMMMMNdy/` .+hNMMMMMMMMMNmdhs/. - .:/+ooo+/:-. + .:/+ooo+/:-. \ No newline at end of file diff --git a/src/logo/ascii/pureos.txt b/src/logo/ascii/pureos.txt index 38aad933e..4d47de1dc 100644 --- a/src/logo/ascii/pureos.txt +++ b/src/logo/ascii/pureos.txt @@ -9,4 +9,4 @@ dNd dNd dNd dNd dNd dNd dNm//////////////////////////////////mNd -dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd +dmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmd \ No newline at end of file diff --git a/src/logo/ascii/pureos_small.txt b/src/logo/ascii/pureos_small.txt index a53b1d8f4..27f520473 100644 --- a/src/logo/ascii/pureos_small.txt +++ b/src/logo/ascii/pureos_small.txt @@ -3,4 +3,4 @@ | | | | | | | | | |_________| | -|_____________| +|_____________| \ No newline at end of file diff --git a/src/logo/ascii/q4os.txt b/src/logo/ascii/q4os.txt index a696636e7..cf002ed2b 100644 --- a/src/logo/ascii/q4os.txt +++ b/src/logo/ascii/q4os.txt @@ -16,4 +16,4 @@ ${c1}:##############. ${c2}:======: ${c1}:############# ${c2}.=========: ${c1}:########### ${c2}.=====: ${c1}.######### ${c2}.=: - ${c1}.##### + ${c1}.##### \ No newline at end of file diff --git a/src/logo/ascii/qubes.txt b/src/logo/ascii/qubes.txt index 0b4085405..a938d3da9 100644 --- a/src/logo/ascii/qubes.txt +++ b/src/logo/ascii/qubes.txt @@ -18,4 +18,4 @@ `.:///////////sssssssssssssso:. .-:///////ssssssssssssssssss/` `.:////ssss+/+ssssssssssss. - `--//- `-/osssso/. + `--//- `-/osssso/. \ No newline at end of file diff --git a/src/logo/ascii/qubyt.txt b/src/logo/ascii/qubyt.txt index a0a52d53b..c7e0849a3 100644 --- a/src/logo/ascii/qubyt.txt +++ b/src/logo/ascii/qubyt.txt @@ -12,4 +12,4 @@ ${c1}###${c2}(${c3}ooo oo${c2}((${c1}###${c3}o ${c1}###${c2}(${c3}ooo ooo${c2}((${c1}### ${c1}################${c2}(${c3}oo oo${c2}((((${c3}o ${c2}(((((((((((((((((${c3}ooo ooooo - oooooooooooooooooo o + oooooooooooooooooo o \ No newline at end of file diff --git a/src/logo/ascii/quibian.txt b/src/logo/ascii/quibian.txt index 46541787a..8592ddfd2 100644 --- a/src/logo/ascii/quibian.txt +++ b/src/logo/ascii/quibian.txt @@ -15,4 +15,4 @@ .:::::::::::::::- -` `::::::::::::::- `.` .::::::::::::- `` - `.--:::::-. + `.--:::::-. \ No newline at end of file diff --git a/src/logo/ascii/quirinux.txt b/src/logo/ascii/quirinux.txt index 2046bd947..40472255b 100644 --- a/src/logo/ascii/quirinux.txt +++ b/src/logo/ascii/quirinux.txt @@ -14,4 +14,4 @@ $2 @+++++++++++$1-....-$2+++++++++++@ $2 *++++++++++$1::::$2++++++++++* $2 *++++++++++++++++++++* $2 @*++++++++++++++*@ -$2 @#====#@ +$2 @#====#@ \ No newline at end of file diff --git a/src/logo/ascii/radix.txt b/src/logo/ascii/radix.txt index 96d6ea6ce..5007d484b 100644 --- a/src/logo/ascii/radix.txt +++ b/src/logo/ascii/radix.txt @@ -15,4 +15,4 @@ yMMMMMMMMMMMMMMMMNNh. `sNMMMMMNmmho. `+mMMMMMMMy. .yNMMMm+` - `:yd+. + `:yd+. \ No newline at end of file diff --git a/src/logo/ascii/ravynos.txt b/src/logo/ascii/ravynos.txt index a53a5733a..490b5d09b 100644 --- a/src/logo/ascii/ravynos.txt +++ b/src/logo/ascii/ravynos.txt @@ -17,4 +17,4 @@ ?$$$$$$$$$$$$$$$$$$$$* $$$$$$$$$$$$$*° d$$$$$$$$*° - ° + ° \ No newline at end of file diff --git a/src/logo/ascii/reborn.txt b/src/logo/ascii/reborn.txt index 255deba84..520c80f44 100644 --- a/src/logo/ascii/reborn.txt +++ b/src/logo/ascii/reborn.txt @@ -1,20 +1,20 @@ - $1.======================. - $1.#$2#*********$1%%$2*********#$1%: - $1:%$2#**********$1%%$2**********#$1%- - $1-%$2************$1%%$2************$1%= - $1+%$2******$1%%#####$1%%#####%%$2******$1%+ - $1*%%#$2****$1%#$3+=====$1%%$3=====+$1#%$2****$1#%%* - $1*%$2*#$1#%%#%#$3====+++$1%%$3+++====$1#%#%%#$2#*$1##. - $1.##$2*****$1#%%%#$3*++$1%######%$3*+*$1#%%%#$2*****$1#%. - $1:%#$2*****$1#%$3*=+*$1#%%$3*++++++*$1%%#$3*+=*$1%#$2*****$1#%: + $1.======================. + $1.#$2#*********$1%%$2*********#$1%: + $1:%$2#**********$1%%$2**********#$1%- + $1-%$2************$1%%$2************$1%= + $1+%$2******$1%%#####$1%%#####%%$2******$1%+ + $1*%%#$2****$1%#$3+=====$1%%$3=====+$1#%$2****$1#%%* + $1*%$2*#$1#%%#%#$3====+++$1%%$3+++====$1#%#%%#$2#*$1##. + $1.##$2*****$1#%%%#$3*++$1%######%$3*+*$1#%%%#$2*****$1#%. + $1:%#$2*****$1#%$3*=+*$1#%%$3*++++++*$1%%#$3*+=*$1%#$2*****$1#%: $1-%#$2*****$1#%$3+====*$1%$3*++++++++*$1%#$3====+$1%#$2******$1%- $1-%#$2*****$1#%$3+====*$1%$3*++++++++*$1%#$3====+$1%#$2******$1%= - $1:%#$2*****$1#%$3*=+*$1#%%$3*++++++*$1%%#$3*+=*$1%#$2*****$1#%- - $1.##$2*****$1#%%%#$3*+*$1%######%$3*+*$1#%%%#$2*****$1#%: - $1.##$2**$1#%%#%#$3====+++$1%%$3+++====$1#%#%%#$2#*$1##. - $1*%%#$2****$1%#$3+=====$1%%$3=====+$1#%$2****$1#%%* - $1+%$2******$1%%#####%%#####%%$2******$1%* - $1-%$2************$1%%$2************$1%= - $1:%$2#**********$1%%$2**********#$1%- - $1:%$2#*********$1%%$2*********#$1%: - $1.======================. \ No newline at end of file + $1:%#$2*****$1#%$3*=+*$1#%%$3*++++++*$1%%#$3*+=*$1%#$2*****$1#%- + $1.##$2*****$1#%%%#$3*+*$1%######%$3*+*$1#%%%#$2*****$1#%: + $1.##$2**$1#%%#%#$3====+++$1%%$3+++====$1#%#%%#$2#*$1##. + $1*%%#$2****$1%#$3+=====$1%%$3=====+$1#%$2****$1#%%* + $1+%$2******$1%%#####%%#####%%$2******$1%* + $1-%$2************$1%%$2************$1%= + $1:%$2#**********$1%%$2**********#$1%- + $1:%$2#*********$1%%$2*********#$1%: + $1.======================. \ No newline at end of file diff --git a/src/logo/ascii/reborn_small.txt b/src/logo/ascii/reborn_small.txt index dbb028872..d0bfbdfd9 100644 --- a/src/logo/ascii/reborn_small.txt +++ b/src/logo/ascii/reborn_small.txt @@ -1,7 +1,7 @@ - _______ - /\_____/\ - / /\___/\ \ + _______ + /\_____/\ + / /\___/\ \ /_/_/ \_\_\ \ \ \___/ / / - \ \/___\/ / - \/_____\/ + \ \/___\/ / + \/_____\/ \ No newline at end of file diff --git a/src/logo/ascii/redcore.txt b/src/logo/ascii/redcore.txt index a226b918d..bc19f5826 100644 --- a/src/logo/ascii/redcore.txt +++ b/src/logo/ascii/redcore.txt @@ -13,4 +13,4 @@ RRRR RRRRRRRRRRRRRRRRRRR R RRRR RR RRRRRRRRRRRRRRRRRRR RRR RR RRRRRRRRRRRRRRRRR RRR RR RRRRRRRRRRRRRR RR - R RRRR RR + R RRRR RR \ No newline at end of file diff --git a/src/logo/ascii/redos.txt b/src/logo/ascii/redos.txt index 68bfc1e0d..5ad2a1a6f 100644 --- a/src/logo/ascii/redos.txt +++ b/src/logo/ascii/redos.txt @@ -15,4 +15,4 @@ │#+++++++++++++#│ │#+++++++++++++#│ │###############│ -╰───────────────╯ +╰───────────────╯ \ No newline at end of file diff --git a/src/logo/ascii/redos_small.txt b/src/logo/ascii/redos_small.txt index 96a9d8b9a..e23e1d0ab 100644 --- a/src/logo/ascii/redos_small.txt +++ b/src/logo/ascii/redos_small.txt @@ -5,4 +5,4 @@ ╭─────╮ │ │ │ │ -╰─────╯ +╰─────╯ \ No newline at end of file diff --git a/src/logo/ascii/redstar.txt b/src/logo/ascii/redstar.txt index 4340f5e49..b49866363 100644 --- a/src/logo/ascii/redstar.txt +++ b/src/logo/ascii/redstar.txt @@ -15,4 +15,4 @@ :lcc:'',..';::::;;;;;;;,,. :cccc::::;...';;;;;,,,,,,. ,::::::;;;,'. ..',,,,'''. - ........ ...... + ........ ...... \ No newline at end of file diff --git a/src/logo/ascii/refracted_devuan.txt b/src/logo/ascii/refracted_devuan.txt index 1ec9ff9b7..32909ac8f 100644 --- a/src/logo/ascii/refracted_devuan.txt +++ b/src/logo/ascii/refracted_devuan.txt @@ -15,4 +15,4 @@ ^WWWW VWW Wh. - V/ + V/ \ No newline at end of file diff --git a/src/logo/ascii/regata.txt b/src/logo/ascii/regata.txt index 9760d18a1..163faa9d6 100644 --- a/src/logo/ascii/regata.txt +++ b/src/logo/ascii/regata.txt @@ -17,4 +17,4 @@ d/hhhhhhhhhhhh${c3}`-/osyso+-`${c1}hhhhhhhhhhhh.h h/`hhhhhhh${c6}-sssssssss:${c1}hhhhhhhh-yd h+.hhhhhh${c6}+sssssss+${c1}hhhhhh`/yd dho:.hhh${c6}.:+++/.${c1}hhh`-+yd - ddhso+++++osyhd + ddhso+++++osyhd \ No newline at end of file diff --git a/src/logo/ascii/regolith.txt b/src/logo/ascii/regolith.txt index 50ae404fd..938fe61b7 100644 --- a/src/logo/ascii/regolith.txt +++ b/src/logo/ascii/regolith.txt @@ -15,4 +15,4 @@ `......``.::/+++++++++++++++++++++/. -/+++++++++++++++++++++/. .:/+++++++++++++++/-` - `.-:://////:-. + `.-:://////:-. \ No newline at end of file diff --git a/src/logo/ascii/rhaymos.txt b/src/logo/ascii/rhaymos.txt index 87e0aae04..859e0cb03 100644 --- a/src/logo/ascii/rhaymos.txt +++ b/src/logo/ascii/rhaymos.txt @@ -11,4 +11,4 @@ ################################### ##################################### -####################################### +####################################### \ No newline at end of file diff --git a/src/logo/ascii/rhel_old.txt b/src/logo/ascii/rhel_old.txt index 766f87683..bb757c926 100644 --- a/src/logo/ascii/rhel_old.txt +++ b/src/logo/ascii/rhel_old.txt @@ -13,4 +13,4 @@ ${c2} .-`:NMMNMs` `..-------..` MMM MMMMMMMMMMMMMMyyddMMM+ MMMM MMMMMMMMMMMMMNdyNMMh` hyhMMM MMMMMMMMMMMMMMMMyoNNNMMM+. MMMMMMMM - MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM + MMNMMMNNMMMMMNM+ mhsMNyyyyMNMMMMsMM \ No newline at end of file diff --git a/src/logo/ascii/rocky_small.txt b/src/logo/ascii/rocky_small.txt index beb90607b..e9e9f09a7 100644 --- a/src/logo/ascii/rocky_small.txt +++ b/src/logo/ascii/rocky_small.txt @@ -9,4 +9,4 @@ -++++++:` .:+++++:` .+++-` ./+++++++++:` `-` ./+++++++++++- - -+++++++++:-.` + -+++++++++:-.` \ No newline at end of file diff --git a/src/logo/ascii/sabayon.txt b/src/logo/ascii/sabayon.txt index 70384adff..cb0ceb8c4 100644 --- a/src/logo/ascii/sabayon.txt +++ b/src/logo/ascii/sabayon.txt @@ -15,4 +15,4 @@ .. ${c2}',,,,, ${c1}.. .. .. .. .. - ............... + ............... \ No newline at end of file diff --git a/src/logo/ascii/sabotage.txt b/src/logo/ascii/sabotage.txt index 9f3adb713..eb0fd6839 100644 --- a/src/logo/ascii/sabotage.txt +++ b/src/logo/ascii/sabotage.txt @@ -8,4 +8,4 @@ || ||| .|' ' || . || | || || .... ||''| || .''''|. '|. || || - .||. .|. .||. ''|...'| .||.....| + .||. .|. .||. ''|...'| .||.....| \ No newline at end of file diff --git a/src/logo/ascii/sailfish.txt b/src/logo/ascii/sailfish.txt index 68b20ac26..dc731ac62 100644 --- a/src/logo/ascii/sailfish.txt +++ b/src/logo/ascii/sailfish.txt @@ -10,4 +10,4 @@ #b(b#^ _@_#@^ _a@a*^ -,a@*^ +,a@*^ \ No newline at end of file diff --git a/src/logo/ascii/salentos.txt b/src/logo/ascii/salentos.txt index fe819033d..2824405b5 100644 --- a/src/logo/ascii/salentos.txt +++ b/src/logo/ascii/salentos.txt @@ -17,4 +17,4 @@ ${c2} .+hMMMMMMMMMMMMM${c4}hh${c3}MMMMMMMMMMMMMms: ${c2} `:smMMMMMMMMM${c4}hh${c3}MMMMMMMMMNh+. ${c2} .+hMMMMMM${c4}hh${c3}MMMMMMdo: ${c2} `:smMM${c4}yy${c3}MMNy/` - ${c2}.- ${c4}`${c3}:. + ${c2}.- ${c4}`${c3}:. \ No newline at end of file diff --git a/src/logo/ascii/salientos.txt b/src/logo/ascii/salientos.txt index 1fab8994e..0c78b5428 100644 --- a/src/logo/ascii/salientos.txt +++ b/src/logo/ascii/salientos.txt @@ -17,4 +17,4 @@ xxxxxxxxxxxxxxxxxx0 xxxxxxxxxxxxxx 0xxxxxxxxxxxx0 0xxxxxxx0 0xxxxxxx0 xxxxxx0 0xxx00 - x00 + x00 \ No newline at end of file diff --git a/src/logo/ascii/salix.txt b/src/logo/ascii/salix.txt index 828e4783d..7d3956d62 100644 --- a/src/logo/ascii/salix.txt +++ b/src/logo/ascii/salix.txt @@ -15,4 +15,4 @@ nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS}` XSSSSSSSSSSSSSSSSSSSSSSSSSSSS"` SSSSSSSSSSSSSSSSSSSSSSSSS!"` --""""""""""""""""""""""` +-""""""""""""""""""""""` \ No newline at end of file diff --git a/src/logo/ascii/sambabox.txt b/src/logo/ascii/sambabox.txt index 01c891875..522e1a7c3 100644 --- a/src/logo/ascii/sambabox.txt +++ b/src/logo/ascii/sambabox.txt @@ -16,4 +16,4 @@ ///////////, *(/////((((* ,/(((((((((##########/. .((((((####### - ((##* + ((##* \ No newline at end of file diff --git a/src/logo/ascii/sasanqua.txt b/src/logo/ascii/sasanqua.txt index 3521c65e4..0d5e1dc80 100644 --- a/src/logo/ascii/sasanqua.txt +++ b/src/logo/ascii/sasanqua.txt @@ -15,4 +15,4 @@ Ñ ¥,___≡1l ╓Ñ ¿╕ª Ü ╙L ¿¿∩ª ╓P ª≡,__ *ⁿ┤ⁿÑⁿ^µ √ª - ⁿ≡,,__√╝* "ⁿⁿ*" + ⁿ≡,,__√╝* "ⁿⁿ*" \ No newline at end of file diff --git a/src/logo/ascii/scientific.txt b/src/logo/ascii/scientific.txt index ae236c7f8..a433abb61 100644 --- a/src/logo/ascii/scientific.txt +++ b/src/logo/ascii/scientific.txt @@ -17,4 +17,4 @@ M- ,=;;;#:, ,:#;;:=, ,@ ,X H. ;/ #= // +; - '////' + '////' \ No newline at end of file diff --git a/src/logo/ascii/semc.txt b/src/logo/ascii/semc.txt index 6ba73edea..4167ec4b9 100644 --- a/src/logo/ascii/semc.txt +++ b/src/logo/ascii/semc.txt @@ -6,4 +6,4 @@ ${c1} | (-- | | .----) | |__| |_______/ / ${c3}"${c1} \ ${c3}" - " + " \ No newline at end of file diff --git a/src/logo/ascii/septor.txt b/src/logo/ascii/septor.txt index 47d9e8239..7a3a1a717 100644 --- a/src/logo/ascii/septor.txt +++ b/src/logo/ascii/septor.txt @@ -17,4 +17,4 @@ yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy -yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy \ No newline at end of file diff --git a/src/logo/ascii/serene.txt b/src/logo/ascii/serene.txt index fbdbcfb02..f53fad06b 100644 --- a/src/logo/ascii/serene.txt +++ b/src/logo/ascii/serene.txt @@ -17,4 +17,4 @@ - __..--'' - :_..--'' : . _ . - `''---______---''-`` + `''---______---''-`` \ No newline at end of file diff --git a/src/logo/ascii/sharklinux.txt b/src/logo/ascii/sharklinux.txt index d1ab28757..b504e1954 100644 --- a/src/logo/ascii/sharklinux.txt +++ b/src/logo/ascii/sharklinux.txt @@ -12,4 +12,4 @@ +mMNNNNNNNNMMMMMMMMMMMs .hNMMNNNNMMMMMMMMMMMMMMMd .oNNNNNNNNNNMMMMMMMMMMMMMMMo -`:+syyssoo++++ooooossssssssssso: +`:+syyssoo++++ooooossssssssssso: \ No newline at end of file diff --git a/src/logo/ascii/shastraos.txt b/src/logo/ascii/shastraos.txt index c533a1a11..5e705ab69 100644 --- a/src/logo/ascii/shastraos.txt +++ b/src/logo/ascii/shastraos.txt @@ -16,4 +16,4 @@ .';:codxxl lxo cd. 'xo :o, 'ld - .oc'...';lo + .oc'...';lo \ No newline at end of file diff --git a/src/logo/ascii/siduction.txt b/src/logo/ascii/siduction.txt index 139798e97..55b628b4f 100644 --- a/src/logo/ascii/siduction.txt +++ b/src/logo/ascii/siduction.txt @@ -17,4 +17,4 @@ _Qh;.nm .QWc. {QL ]QQp;..vmQ/ _mB>~)$a -~~ mQms_vmQ. ]WQQQQQP - -?T??" + -?T??" \ No newline at end of file diff --git a/src/logo/ascii/skiffos.txt b/src/logo/ascii/skiffos.txt index 11ba4cd0c..3897d74b4 100644 --- a/src/logo/ascii/skiffos.txt +++ b/src/logo/ascii/skiffos.txt @@ -6,4 +6,4 @@ ${c2} ,@@@@@@@@@@@w,_ ${c2}*@@@@@@@@@@@@@@@@@@@@@@@@@p${c1}||||==, ${c1}`'||LLL{{""${c2}@$B@@@@@@@@@@@@@@@p${c1}|| ${c1}`~=|||||||||||L"${c2}$@@@@@@@@@@@ - ${c1}````'"""""""${c2}'"""""""" + ${c1}````'"""""""${c2}'"""""""" \ No newline at end of file diff --git a/src/logo/ascii/slackel.txt b/src/logo/ascii/slackel.txt index d650f26f1..2c85dd7fd 100644 --- a/src/logo/ascii/slackel.txt +++ b/src/logo/ascii/slackel.txt @@ -19,4 +19,4 @@ XBmBmBmBmm6s_aum##mmBmBm&^ +ZmBmBmWmBmBmWmmBmBm##! )ZmBmBmmmBmBmmBmB##!` -4U#mBmWmBmBm##2" - -!!XU##US*?"- + -!!XU##US*?"- \ No newline at end of file diff --git a/src/logo/ascii/slitaz.txt b/src/logo/ascii/slitaz.txt index 5cc394d9e..020e4a980 100644 --- a/src/logo/ascii/slitaz.txt +++ b/src/logo/ascii/slitaz.txt @@ -14,4 +14,4 @@ @ @@. @@@@@@@@@@@@@ @@@ *@ @ @@ @@@@@@@@@@@@ @@ @ @ @@@@@@@@@. #@ - @ ,@@@@@ @ + @ ,@@@@@ @ \ No newline at end of file diff --git a/src/logo/ascii/smartos.txt b/src/logo/ascii/smartos.txt index 71db4ceab..e385245c9 100644 --- a/src/logo/ascii/smartos.txt +++ b/src/logo/ascii/smartos.txt @@ -14,4 +14,4 @@ yyyyyyyyyyyyyyyy oyyyyyyyyy syyyy yyyyyyyyyyyyyyyy syyyyyyyyy syyyy yyyyyyyyyyyyyyyy yyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy -yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy \ No newline at end of file diff --git a/src/logo/ascii/soda.txt b/src/logo/ascii/soda.txt index 96c634f52..3d778fd9e 100644 --- a/src/logo/ascii/soda.txt +++ b/src/logo/ascii/soda.txt @@ -12,4 +12,4 @@ ${c2}@@@@@@@@@@@@@@@${c1}********* ${c2}@@@@@@@@@@@@@@@@@@${c1}**** ${c2}@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ - @@@@@@@ + @@@@@@@ \ No newline at end of file diff --git a/src/logo/ascii/solus.txt b/src/logo/ascii/solus.txt index 6bc9f84f6..e18b5e0e3 100644 --- a/src/logo/ascii/solus.txt +++ b/src/logo/ascii/solus.txt @@ -17,4 +17,4 @@ $2 -``````````` `:ossssssyysssssssssssssssso:` `:+ssssssssssssssssssss+- `-/+ssssssssssso+/-` - `.-----..` + `.-----..` \ No newline at end of file diff --git a/src/logo/ascii/source_mage.txt b/src/logo/ascii/source_mage.txt index 7cd3ecd48..781693608 100644 --- a/src/logo/ascii/source_mage.txt +++ b/src/logo/ascii/source_mage.txt @@ -18,4 +18,4 @@ sMMMMMMMMMmmo `NMMMMMMMMMd: -dMMMMMMMMMo - -shmNMMms. + -shmNMMms. \ No newline at end of file diff --git a/src/logo/ascii/sparky.txt b/src/logo/ascii/sparky.txt index f5448b354..6ee3cbf62 100644 --- a/src/logo/ascii/sparky.txt +++ b/src/logo/ascii/sparky.txt @@ -17,4 +17,4 @@ ``````` ++o+:` `:` ./+/-` ` `-:-. - `` + `` \ No newline at end of file diff --git a/src/logo/ascii/spoinkos.txt b/src/logo/ascii/spoinkos.txt index 054b004bf..1d27800bb 100644 --- a/src/logo/ascii/spoinkos.txt +++ b/src/logo/ascii/spoinkos.txt @@ -2,4 +2,4 @@ (----) ( >__< ) ^^ ~~ ^^ -| Spoink! | +| Spoink! | \ No newline at end of file diff --git a/src/logo/ascii/star.txt b/src/logo/ascii/star.txt index 9a60e8984..10ba883a3 100644 --- a/src/logo/ascii/star.txt +++ b/src/logo/ascii/star.txt @@ -16,4 +16,4 @@ h .+o-+o- h. h -o/` `/o: s: -s/o:` `:o/+/ - /s- -yo + /s- -yo \ No newline at end of file diff --git a/src/logo/ascii/steamos.txt b/src/logo/ascii/steamos.txt index e231a5c65..c8eaa46aa 100644 --- a/src/logo/ascii/steamos.txt +++ b/src/logo/ascii/steamos.txt @@ -15,4 +15,4 @@ $2,',. '; ,+##############' '#####+++################' '*##################*' ''*##########*'' - '''''' + '''''' \ No newline at end of file diff --git a/src/logo/ascii/stock_linux.txt b/src/logo/ascii/stock_linux.txt index eaa03b47d..7fc4ca1db 100644 --- a/src/logo/ascii/stock_linux.txt +++ b/src/logo/ascii/stock_linux.txt @@ -16,4 +16,4 @@ BPYJJJJJJYPB& &B5JJJJJJJYPB #G5YJJJJJY5G#& &#G5YJJJJJY5G# &#G5JJJJJJY5YJJJJJJ5G#& &BPYJJJJJJJYPB& - #G5J5G# + #G5J5G# \ No newline at end of file diff --git a/src/logo/ascii/sulin.txt b/src/logo/ascii/sulin.txt index 6b7fa719e..6715fe85e 100644 --- a/src/logo/ascii/sulin.txt +++ b/src/logo/ascii/sulin.txt @@ -17,4 +17,4 @@ | | | | | || | | | | | || |_| |_| |_|| - \_\ \_\ \_\\ + \_\ \_\ \_\\ \ No newline at end of file diff --git a/src/logo/ascii/suse.txt b/src/logo/ascii/suse.txt index fc2128f65..c45aa671e 100644 --- a/src/logo/ascii/suse.txt +++ b/src/logo/ascii/suse.txt @@ -8,4 +8,4 @@ KKKKKKKKKKKKK;.;oOKx,..^..;kKKK0. KKKKKKKKKKKKK0o;...^cdxxOK0O/^^' KKKKKKKKKKKKKKKKK0x;,,......,;od kKKKKKKKKKKKKKKKKKKKKKKK00KKOo^ - kKKKKKOxddxkOO00000Okxoc;'' + kKKKKKOxddxkOO00000Okxoc;'' \ No newline at end of file diff --git a/src/logo/ascii/swagarch.txt b/src/logo/ascii/swagarch.txt index e3884f158..8df60b8db 100644 --- a/src/logo/ascii/swagarch.txt +++ b/src/logo/ascii/swagarch.txt @@ -12,4 +12,4 @@ ${c2}dMMMMXd, `OMMMMMMWk${c1}ccc;:''` ,ccccccc: ${c2}XMMMMMMMWKkxxOWMMMMMNo${c1}ccc; .cccccccc. ${c2} `':ldxO0KXXXXXK0Okdo${c1}cccc. :cccccccc. :ccc:' `cccccccc:, - '' + '' \ No newline at end of file diff --git a/src/logo/ascii/t2.txt b/src/logo/ascii/t2.txt index cbb4df7b7..5ab9870cf 100644 --- a/src/logo/ascii/t2.txt +++ b/src/logo/ascii/t2.txt @@ -3,4 +3,4 @@ ${c2}TTTTTTTTTT tt ${c1}2 2${c2} tt ${c1}2${c2} tt ${c1}2${c2} - tt ${c1}22222${c2} + tt ${c1}22222${c2} \ No newline at end of file diff --git a/src/logo/ascii/tails.txt b/src/logo/ascii/tails.txt index b4bb7936c..85c6d428c 100644 --- a/src/logo/ascii/tails.txt +++ b/src/logo/ascii/tails.txt @@ -16,4 +16,4 @@ Nsyh+-..+y+- yMMMMd :mMM+ +hMMMMMMMMMMMMMMMMMmy. -oNMMMMMMMMMMmy+.` `:yNMMMds/.` - .//` + .//` \ No newline at end of file diff --git a/src/logo/ascii/tatra.txt b/src/logo/ascii/tatra.txt index 933c0def6..d0b617e7b 100644 --- a/src/logo/ascii/tatra.txt +++ b/src/logo/ascii/tatra.txt @@ -12,4 +12,4 @@ !BBBBBBGBBGJ77::Y555J?77777^ ?BBBBG5JJ5PJ?!: .?Y??????77?~. .YBGPYJ??????Y?^^^^~7?????????7?!. - .^^:..::::::::.....:::::::::::..:. + .^^:..::::::::.....:::::::::::..:. \ No newline at end of file diff --git a/src/logo/ascii/tearch.txt b/src/logo/ascii/tearch.txt index 706bb03d8..76c286151 100644 --- a/src/logo/ascii/tearch.txt +++ b/src/logo/ascii/tearch.txt @@ -18,4 +18,4 @@ @@@@@@ @@@. @@@@@@@ @@@@@@@&@@@@@@@# #@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - @@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@ \ No newline at end of file diff --git a/src/logo/ascii/tileos.txt b/src/logo/ascii/tileos.txt index 030df302f..fb7e2842f 100644 --- a/src/logo/ascii/tileos.txt +++ b/src/logo/ascii/tileos.txt @@ -17,4 +17,4 @@ ${c1} ((((((((((((((((((((${c2} ${c3}###################%${c1} ${c1} ((((((((((((((((${c2} ${c3}################/${c1} ${c1} ((((((((((((${c2} ${c3}###########%${c1} ${c1} (((((((${c2} ${c3}#######*${c1} -${c1} (((${c2} ${c3}##%*${c1} +${c1} (((${c2} ${c3}##%*${c1} \ No newline at end of file diff --git a/src/logo/ascii/torizoncore.txt b/src/logo/ascii/torizoncore.txt index 4ca150f84..3e19c93fd 100644 --- a/src/logo/ascii/torizoncore.txt +++ b/src/logo/ascii/torizoncore.txt @@ -26,4 +26,4 @@ ${c1}/ydddho-${c2} `--.` `.:////:.` `-::.` ${c1}-ohdddy/${c2} .-:///:.` `.:///:-` `-:///:.````.:///:-` `-:////////:-` - `-::::-` + `-::::-` \ No newline at end of file diff --git a/src/logo/ascii/trisquel.txt b/src/logo/ascii/trisquel.txt index 7c1a35299..013050ff2 100644 --- a/src/logo/ascii/trisquel.txt +++ b/src/logo/ascii/trisquel.txt @@ -14,4 +14,4 @@ ${c1} """" ${c2}d$$$$$$$$"' '$$$$$$. '$$b,,. $$$$$$ '$$$$$$. .$$$$' 'a$$$$$$o._.o$$$$a' - 'a$$$$$$$$a' + 'a$$$$$$$$a' \ No newline at end of file diff --git a/src/logo/ascii/tuxedo_os.txt b/src/logo/ascii/tuxedo_os.txt index 874bb4b4c..08b108e12 100644 --- a/src/logo/ascii/tuxedo_os.txt +++ b/src/logo/ascii/tuxedo_os.txt @@ -13,4 +13,4 @@ *@@+ .#%%%%- :%@%- . +@@@%#%%%%%%%%%%%%%%%%%%%%%%%. - +######################******* + +######################******* \ No newline at end of file diff --git a/src/logo/ascii/twister.txt b/src/logo/ascii/twister.txt index 9d5417e88..6e7e8c338 100644 --- a/src/logo/ascii/twister.txt +++ b/src/logo/ascii/twister.txt @@ -20,4 +20,4 @@ ${c3}..................${c5};'ccdxkOOOdxlf'${c4}............. ${c3}.................${c5},l;;XgggggXP:'${c4}............... ${c3}................${c5};lco;::::::'${c4}.................. ${c3}..............${c5}.';ggggol'`${c4}..................... -${c3}.............${c5}':oo:''${c3}...${c4}....................... +${c3}.............${c5}':oo:''${c3}...${c4}....................... \ No newline at end of file diff --git a/src/logo/ascii/ubuntu.txt b/src/logo/ascii/ubuntu.txt index 6d93f5ca0..398d8bb20 100644 --- a/src/logo/ascii/ubuntu.txt +++ b/src/logo/ascii/ubuntu.txt @@ -17,4 +17,4 @@ .coooooc,.. coooooooooo. .:ooooooolc:. .ooooooooooo' .':loooooo; ,oooooooooc - ..';::c' .;loooo:' + ..';::c' .;loooo:' \ No newline at end of file diff --git a/src/logo/ascii/ubuntu2_old.txt b/src/logo/ascii/ubuntu2_old.txt index d44ee6cb9..94fa72222 100644 --- a/src/logo/ascii/ubuntu2_old.txt +++ b/src/logo/ascii/ubuntu2_old.txt @@ -15,4 +15,4 @@ ${c3} `:o+++ ${c1}`ohhhhhhhhyo++os: ${c3} .o:${c1}`.syhhhhhhh/${c3}.oo++o` ${c1} /osyyyyyyo${c3}++ooo+++/ ${c1} ````` ${c3}+oo+++o: -${c3} `oo++. +${c3} `oo++. \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_budgie.txt b/src/logo/ascii/ubuntu_budgie.txt index 732c9ab48..dca835962 100644 --- a/src/logo/ascii/ubuntu_budgie.txt +++ b/src/logo/ascii/ubuntu_budgie.txt @@ -17,4 +17,4 @@ oMm/ .dMMMMMMMMh: :dMMMMMMMo /NMMMMMMMMMo sMN/ `omMMMMMMMMy. :dmo` :smMMMMMMMh+-` `.:ohs: - ./oydmMMMMMMdhyo/. + ./oydmMMMMMMdhyo/. \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_cinnamon.txt b/src/logo/ascii/ubuntu_cinnamon.txt index b51d280cd..512d25a6f 100644 --- a/src/logo/ascii/ubuntu_cinnamon.txt +++ b/src/logo/ascii/ubuntu_cinnamon.txt @@ -17,4 +17,4 @@ oooo${c2}+ymdosMo${c1}ooo${c2}+mMm${c1}+/${c2}hMMMMMh+hs${c1}ooooooooo .oooooooooooooooooooo${c2}/sdh${c1}oooooo. -+oooooooooooooooooooooooo+- `:+oooooooooooooooooo+:` - .-/+oooooooo+/-. + .-/+oooooooo+/-. \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_gnome.txt b/src/logo/ascii/ubuntu_gnome.txt index 096dca3d0..7314165a2 100644 --- a/src/logo/ascii/ubuntu_gnome.txt +++ b/src/logo/ascii/ubuntu_gnome.txt @@ -13,4 +13,4 @@ ${c4} `\/ooo. ${c3}/oooo ${c4}/ooo` ${c4} `ooooo ${c3}`` ${c4}.oooo ${c4} `soooo. .oooo` `\/oooooooooo` - ``\/oo`` + ``\/oo`` \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_old.txt b/src/logo/ascii/ubuntu_old.txt index 2b158dd4c..6e4c939f9 100644 --- a/src/logo/ascii/ubuntu_old.txt +++ b/src/logo/ascii/ubuntu_old.txt @@ -17,4 +17,4 @@ oss$2yNMMMNyMMh$1ssssssssssssss$2hmmmh$1ssssssso .ossssssssssssssssss$2dMMMNy$1sssso. -+sssssssssssssssss$2yyy$1ssss+- `:+ssssssssssssssssss+:´ - --+oossssssoo+-- + --+oossssssoo+-- \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_studio.txt b/src/logo/ascii/ubuntu_studio.txt index 16d5c4866..1d216d76f 100644 --- a/src/logo/ascii/ubuntu_studio.txt +++ b/src/logo/ascii/ubuntu_studio.txt @@ -17,4 +17,4 @@ ./+++++++++++++++${c2}oyhdNMMMms${c1}++. ./+++++++++++++${c2}hMMMNdyo${c1}+/. `.:+++++++++++${c2}sso${c1}++:. - ..-::::::-.. + ..-::::::-.. \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_sway.txt b/src/logo/ascii/ubuntu_sway.txt index bbc2cc4ed..e4a6da638 100644 --- a/src/logo/ascii/ubuntu_sway.txt +++ b/src/logo/ascii/ubuntu_sway.txt @@ -17,4 +17,4 @@ ossy${c2}NMMMNy${c1}MM${c2}h${c1}sssssssssssssshmmmh${c1}ssssssso .ossssssssssssssssss${c2}dMMMNyy${c1}ssso. -+sssssssssssssssss${c2}yy${c1}sss+- `:+ssssssssssssssssss+:` - .-\+oossssoo+/-. + .-\+oossssoo+/-. \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_touch.txt b/src/logo/ascii/ubuntu_touch.txt index 4801edb08..72d19abbf 100644 --- a/src/logo/ascii/ubuntu_touch.txt +++ b/src/logo/ascii/ubuntu_touch.txt @@ -4,4 +4,4 @@ ## ${c2}##${c1} ${c2}#${c1} ${c2}#${c1} ${c2}##${c1} ## ## ${c2}###${c1} ## ## ## - ############### + ############### \ No newline at end of file diff --git a/src/logo/ascii/ubuntu_unity.txt b/src/logo/ascii/ubuntu_unity.txt index 2de1ead72..bfbeceddd 100644 --- a/src/logo/ascii/ubuntu_unity.txt +++ b/src/logo/ascii/ubuntu_unity.txt @@ -22,4 +22,4 @@ ossss${c2},looooooc.${c1}sssssssssssssssssssssss${c2}.loooo.${c1}ssso `sssssssss${c2};oooo';:c'${c1}ssss${c2}`:ooo:'${c1}sssssss' -+sssssssssssssssssssssssssssssss+- `:+sssssssssssssssssssssss+:' - `-\+ooosssssssooo+/-' + `-\+ooosssssssooo+/-' \ No newline at end of file diff --git a/src/logo/ascii/ultramarine.txt b/src/logo/ascii/ultramarine.txt index ef4033720..cfbc01d03 100644 --- a/src/logo/ascii/ultramarine.txt +++ b/src/logo/ascii/ultramarine.txt @@ -17,4 +17,4 @@ oNWWWW${c2}MMMMMMMMMMMMMMMMMMMMMMMMMMMM${c1}WWWNNo .dNW${c2}MMMMMMMMMMMMMMMMMMMMMMMM${c1}WNd. .cKW${c2}MMMMMMMMMMMMMMMMMMMM${c1}WKc. 'oOXWWW${c2}MMMMMMMM${c1}WWWXOl. - ;lkXNNNNNNXkl' + ;lkXNNNNNNXkl' \ No newline at end of file diff --git a/src/logo/ascii/univalent.txt b/src/logo/ascii/univalent.txt index 8a398745f..b8aab22c0 100644 --- a/src/logo/ascii/univalent.txt +++ b/src/logo/ascii/univalent.txt @@ -15,4 +15,4 @@ UUUUUUU A | | | A UUUUUUU UUUUUUU A | | | A UUUUUUU UUUUUUUAAAAAAAAAAAUUUUUUU UUUUUUUUUUUUUUUUUUU - UUUUUUUUUUUUU + UUUUUUUUUUUUU \ No newline at end of file diff --git a/src/logo/ascii/univention.txt b/src/logo/ascii/univention.txt index 0d5221dba..503f0a94c 100644 --- a/src/logo/ascii/univention.txt +++ b/src/logo/ascii/univention.txt @@ -17,4 +17,4 @@ +hhhhhhhhhs+${c2}ssssssssssss${c1}+hh+${c2}sssss${c1}/:-` -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhho :yhhhhhhhhhhhhhhhhhhhhhhhhhhhh+` - -+ossssssssssssssssssssss+:` + -+ossssssssssssssssssssss+:` \ No newline at end of file diff --git a/src/logo/ascii/urukos.txt b/src/logo/ascii/urukos.txt index 8b42721ce..3de7d1e10 100644 --- a/src/logo/ascii/urukos.txt +++ b/src/logo/ascii/urukos.txt @@ -17,4 +17,4 @@ ${c3}=###*. .*#######+${c4}: ${c5}####: ${c3}=####. ${c5}.####: ${c3}=###+${c4}--------------${c5}####: ${c3}=#+${c4}=================-${c5}: - ${c3}:${c4}::::::::::::::::::. + ${c3}:${c4}::::::::::::::::::. \ No newline at end of file diff --git a/src/logo/ascii/uwuntu.txt b/src/logo/ascii/uwuntu.txt index e5246fa73..60fa3d30a 100644 --- a/src/logo/ascii/uwuntu.txt +++ b/src/logo/ascii/uwuntu.txt @@ -17,4 +17,4 @@ ${c2}%%%${c1} #&&&&&&# &&&&&&&&& ${c2}%%%%% %%${c1} #&&&&&( ${c2}&%. %%%${c1} - ${c2}%%%%%%% + ${c2}%%%%%%% \ No newline at end of file diff --git a/src/logo/ascii/vanilla2.txt b/src/logo/ascii/vanilla2.txt index 97e051d57..343ad8bc3 100644 --- a/src/logo/ascii/vanilla2.txt +++ b/src/logo/ascii/vanilla2.txt @@ -13,4 +13,4 @@ V$#6..::::.~l.::.<&#p***q##$p' i'.:::', ^x00J(" - ^" + ^" \ No newline at end of file diff --git a/src/logo/ascii/void_small.txt b/src/logo/ascii/void_small.txt index 070f154a5..344be7d29 100644 --- a/src/logo/ascii/void_small.txt +++ b/src/logo/ascii/void_small.txt @@ -4,4 +4,4 @@ UU |===| UU \\ ^~^ // `0PpppP' - ````` + ````` \ No newline at end of file diff --git a/src/logo/ascii/vzlinux.txt b/src/logo/ascii/vzlinux.txt index 334177f3c..cbb7004f1 100644 --- a/src/logo/ascii/vzlinux.txt +++ b/src/logo/ascii/vzlinux.txt @@ -17,4 +17,4 @@ \VVVVVVVVu oVVVVVVd` sVVVVV. - ----. + ----. \ No newline at end of file diff --git a/src/logo/ascii/wii_linux_ngx.txt b/src/logo/ascii/wii_linux_ngx.txt index daafdc208..66d32703b 100644 --- a/src/logo/ascii/wii_linux_ngx.txt +++ b/src/logo/ascii/wii_linux_ngx.txt @@ -13,4 +13,4 @@ h@@@@@@' o@@@@@9` `@@@@@@D `@@@@@@@= @@@@@@@? {@@@@@@@@@@U t@@@@@@@@@@e z@@@@@Q v@@@@@Q `Q@@@@@@@@@' `Q@@@@@@@@@- z@@@@@Q v@@@@@Q :@@@@@@@@| ;@@@@@@@@= z@@@@@Q v@@@@@Q - '2#@@Q6: ,eQ@@QZ~ /QQQQQg \QQQQQN + '2#@@Q6: ,eQ@@QZ~ /QQQQQg \QQQQQN \ No newline at end of file diff --git a/src/logo/ascii/windows_11_small.txt b/src/logo/ascii/windows_11_small.txt index ee78eb35a..45cde6f4a 100644 --- a/src/logo/ascii/windows_11_small.txt +++ b/src/logo/ascii/windows_11_small.txt @@ -4,4 +4,4 @@ $1lllllll $2lllllll $3lllllll $4lllllll $3lllllll $4lllllll -$3lllllll $4lllllll +$3lllllll $4lllllll \ No newline at end of file diff --git a/src/logo/ascii/xenia.txt b/src/logo/ascii/xenia.txt index 2d6e940c4..c6ae8ddb2 100644 --- a/src/logo/ascii/xenia.txt +++ b/src/logo/ascii/xenia.txt @@ -18,4 +18,4 @@ ${c1} dMMMMMMd.....'...xMMMx...''....dMMMMMMx ${c1} kMMMMWOoc:coOkolllokOoc:coOWMMMMO ${c1} .MMMMMMMMl${c2}...${c1}lNMMMMMMM. ${c1} KMMMMMMX${c2}l${c1}KMMMMMMX -${c1} .MMMMMMMMM. +${c1} .MMMMMMMMM. \ No newline at end of file diff --git a/src/logo/ascii/xferience.txt b/src/logo/ascii/xferience.txt index 96b1b4e5c..dd61400ce 100644 --- a/src/logo/ascii/xferience.txt +++ b/src/logo/ascii/xferience.txt @@ -16,4 +16,4 @@ ./+o+//:...../+oooooooo++:` `:/++ooooooooooooo++/-` `.-//++++++//:-.` - `````` + `````` \ No newline at end of file diff --git a/src/logo/ascii/xray_os.txt b/src/logo/ascii/xray_os.txt index 66b489472..f5d7df52c 100644 --- a/src/logo/ascii/xray_os.txt +++ b/src/logo/ascii/xray_os.txt @@ -18,4 +18,4 @@ ${c1}xxxxxxx${c3}xxx${c1}xxxrrrrrrrr${c3}aaaaaa${c2}aaaaaayyyy ${c1}yyyyyyyyyyyy ${c1}xxxxxxrrrrrrr ${c2}aaaaaa ${c1}aaaayyyyyyyyyyyy ${c1}xxxrrrrrr ${c2}raaa ${c1}aaaaaaayyyyyyyyy ${c1}rrrr ${c2}rr ${c1}aaaaaaaaaayyyyyy - ${c2}r ${c1}aaaaaaaaaa + ${c2}r ${c1}aaaaaaaaaa \ No newline at end of file diff --git a/src/logo/ascii/yiffos.txt b/src/logo/ascii/yiffos.txt index 6a0788929..b1cab612e 100644 --- a/src/logo/ascii/yiffos.txt +++ b/src/logo/ascii/yiffos.txt @@ -16,4 +16,4 @@ ${c1} K00XNW${c2} WX0xdooooooddddddd WXOxdoooooodddd WXOxdddddddd NX0ddd - WN0d + WN0d \ No newline at end of file diff --git a/src/logo/ascii/zos.txt b/src/logo/ascii/zos.txt index a090a504c..15884dd93 100644 --- a/src/logo/ascii/zos.txt +++ b/src/logo/ascii/zos.txt @@ -4,4 +4,4 @@ zz // OO OO SSSS zz // OO OO SS zz // OO OO SS -zzzzzz // OOOOOOO SSSSSSS +zzzzzz // OOOOOOO SSSSSSS \ No newline at end of file From 4b3241a286c78b551a11924fbe7321187bbf9818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 08:57:11 +0800 Subject: [PATCH 21/27] CMake: try fixing detection of `pthread_timedjoin_np` --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 64d3ddeb5..057962d72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1210,11 +1210,13 @@ if(NOT WIN32) if(HAVE_WORDEXP) target_compile_definitions(libfastfetch PRIVATE FF_HAVE_WORDEXP=1) endif() - if(ENABLE_THREADS) + if(ENABLE_THREADS AND CMAKE_USE_PTHREADS_INIT) CHECK_INCLUDE_FILE("pthread_np.h" HAVE_PTHREAD_NP) if(HAVE_PTHREAD_NP) target_compile_definitions(libfastfetch PRIVATE FF_HAVE_PTHREAD_NP=1) + set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} pthread_np.h) endif() + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} Threads::Threads) check_function_exists("pthread_timedjoin_np" HAVE_TIMEDJOIN_NP) if(HAVE_TIMEDJOIN_NP) target_compile_definitions(libfastfetch PRIVATE FF_HAVE_TIMEDJOIN_NP=1) From a6a0a03b441f399be921e73bb47ba88113a28bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 09:19:27 +0800 Subject: [PATCH 22/27] Doc: update changelog --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24fe40cf8..1adcff037 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# 2.21.2 + +Features: +* Support `--stat ` to display long running modules in yellow or red + +Bugfixes: +* Fix bad Intel Arc GPU name and type detection (GPU, Linux) +* Fix uninited struct fields (GPU, Linux) +* Skip cpu model smbios detection on ARM platforms (CPU, Linux) +* Always use `CurrentControlSet` instead of `ControlSet001` when querying registry (Windows) +* Fix NVIDIA GPUs are missing in GPU detection sometimes (GPU, Linux) +* Fixing detection of `pthread_timedjoin_np` (Linux) + +Logos: +* Add HyprOS + # 2.21.1 Hotfix for a regression that breaks WM detection when running `startx` from TTY (Regression from 2.21.0, #1172 / #1162) From 2ee4d7daaccad95aec78e491abddd0eae81828cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 09:28:46 +0800 Subject: [PATCH 23/27] Release v2.21.2 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 057962d72..a076a471b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT libs & project homepage url project(fastfetch - VERSION 2.21.1 + VERSION 2.21.2 LANGUAGES C DESCRIPTION "Fast neofetch-like system information tool" HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch" From 4e41223b81b3ec3354a8d805c0ed5950cc70f285 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 10:03:12 +0800 Subject: [PATCH 24/27] Colors (Linux): only apply work around in Linux Console --- src/modules/colors/colors.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/colors/colors.c b/src/modules/colors/colors.c index aa90dd355..55192eae5 100644 --- a/src/modules/colors/colors.c +++ b/src/modules/colors/colors.c @@ -55,7 +55,11 @@ void ffPrintColors(FFColorsOptions* options) #ifdef __linux__ // Required by Linux Console for light background to work if (options->symbol == FF_COLORS_SYMBOL_BACKGROUND) - ffStrbufAppendS(&result, "\e[5m"); + { + const char* term = getenv("TERM"); + if (term && ffStrEquals(term, "linux")) + ffStrbufAppendS(&result, "\e[5m"); + } #endif // 9%d: Set the foreground to the bright color From e1557672890c74597c61e98ceedb39d45ae1371b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 10:14:33 +0800 Subject: [PATCH 25/27] Logo (Builtin): add GoldenDog Linux Fix #1183 --- CHANGELOG.md | 1 + src/logo/ascii/goldendoglinux.txt | 19 +++++++++++++++++++ src/logo/builtin.c | 10 ++++++++++ 3 files changed, 30 insertions(+) create mode 100644 src/logo/ascii/goldendoglinux.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 1adcff037..bcf38d3ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Bugfixes: Logos: * Add HyprOS +* Add GoldenDog Linux # 2.21.1 diff --git a/src/logo/ascii/goldendoglinux.txt b/src/logo/ascii/goldendoglinux.txt new file mode 100644 index 000000000..d40abf3b3 --- /dev/null +++ b/src/logo/ascii/goldendoglinux.txt @@ -0,0 +1,19 @@ + .:^~!!^. .:: + ^7777!!!777!77Y5? + :??!!~~~77!~~~~~!7Y. + :J7~~!?!~!~~~~~~~!?? + ??~~~~7J7~~~~~~~7?!. + J7~~~~~!J7~~~~!J7. + !J~~~~!!?Y~~~~?7 + ~?7777?Y7~~~!Y^ + !J???7!~~~~!J! + ~?7~~~~~~~~~~~7J + .~?7~~~~~~~~~~~~~7J + .~?7~~~~~~~~~~~~~~~7J + ^??~~~~~~~~~~~~~~~~!Y^ + !J!~~~~~~!7777!!~~~~7J + !J!~~~~~!!!!!!77??~~~7J + :Y!~~~~~~~~~~~~~!!J?~~7J + :. !J!~~~~~~~~~~~~~!!JJ~~7Y. + JJ!!Y!~~~~~~~~~~~~!!JY!~~!J~ +.....~YJ?J!~~~~~~~~~~~~!JYJJJ7~!J^^:::.... \ No newline at end of file diff --git a/src/logo/builtin.c b/src/logo/builtin.c index 40e36b131..19ad305ef 100644 --- a/src/logo/builtin.c +++ b/src/logo/builtin.c @@ -1861,6 +1861,16 @@ static const FFlogo G[] = { .colorKeys = FF_COLOR_FG_MAGENTA, .colorTitle = FF_COLOR_FG_MAGENTA, }, + // GoldenDogLinux + { + .names = {"GoldenDog Linux", "GDL", "goldendoglinux"}, + .lines = FASTFETCH_DATATEXT_LOGO_GOLDENDOGLINUX, + .colors = { + FF_COLOR_FG_YELLOW, + }, + .colorKeys = FF_COLOR_FG_MAGENTA, + .colorTitle = FF_COLOR_FG_WHITE, + }, // GrapheneOS { .names = {"GrapheneOS"}, From cedc93fe7b02efb8dac08c596c2592045e10ed20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 10:22:11 +0800 Subject: [PATCH 26/27] CI: try fixing FreeBSD --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9dedbf854..3030dab6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -422,7 +422,7 @@ jobs: run: | uname -a sudo pkg update - sudo pkg install -y cmake git pkgconf binutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm libelf glib dconf dbus sqlite3-tcl xfce4-conf ImageMagick6 ImageMagick7 chafa egl libosmesa opencl ocl-icd v4l_compat + sudo pkg install -y cmake git pkgconf binutils wayland vulkan-headers vulkan-loader libxcb libXrandr libX11 libdrm libelf glib dconf dbus sqlite3-tcl xfce4-conf egl libosmesa opencl ocl-icd v4l_compat cmake -DSET_TWEAK=Off -DBUILD_TESTS=On . cmake --build . --target package --verbose -j4 ./fastfetch --list-features From 030f34d405b12a3623a36af4189537bd50ce907d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Wed, 14 Aug 2024 10:44:34 +0800 Subject: [PATCH 27/27] Doc: fix changelog [ci skip] --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcf38d3ae..d855abce2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ Bugfixes: * Fix uninited struct fields (GPU, Linux) * Skip cpu model smbios detection on ARM platforms (CPU, Linux) * Always use `CurrentControlSet` instead of `ControlSet001` when querying registry (Windows) -* Fix NVIDIA GPUs are missing in GPU detection sometimes (GPU, Linux) +* Fix NVIDIA GPUs are missing in GPU detection sometimes (GPU, Windows) * Fixing detection of `pthread_timedjoin_np` (Linux) Logos: