Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fastfetch for openSUSE:Factory 
checked in at 2026-01-17 21:42:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fastfetch (Old)
 and      /work/SRC/openSUSE:Factory/.fastfetch.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fastfetch"

Sat Jan 17 21:42:30 2026 rev:86 rq:1327762 version:2.57.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/fastfetch/fastfetch.changes      2026-01-13 
21:37:34.471480905 +0100
+++ /work/SRC/openSUSE:Factory/.fastfetch.new.1928/fastfetch.changes    
2026-01-17 21:43:28.419700570 +0100
@@ -1,0 +2,19 @@
+Fri Jan 16 20:50:34 UTC 2026 - RN <[email protected]>
+
+- Update to version 2.57.1:
+  * DisplayServer (Linux): cleanup code
+  * Release: v2.57.1
+  * Common: ensures thread safety of `ffTimeInitQpcMultiplier`
+  * Logo: removes unneeded `#include`s
+  * Common: add `on_scope_exit` utility for scope-based resource
+    management
+  * Platform (Windows): improves hostname retrieval by adding
+    fallback to NetBIOS name
+  * macOS: uses `MACH_PORT_NULL` to maintain compatibility with
+    older SDKs
+  * Logo (Builtin): updates PrismLinux and adds a small variant
+    (#2141)
+  * DisplayServer (Linux): refactors property handling in xcb and
+    xlib
+
+-------------------------------------------------------------------

Old:
----
  fastfetch-2.57.0.obscpio

New:
----
  fastfetch-2.57.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fastfetch.spec ++++++
--- /var/tmp/diff_new_pack.QQ9ndy/_old  2026-01-17 21:43:28.939721871 +0100
+++ /var/tmp/diff_new_pack.QQ9ndy/_new  2026-01-17 21:43:28.943722035 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           fastfetch
-Version:        2.57.0
+Version:        2.57.1
 Release:        0
 Summary:        Neofetch-like tool written mostly in C
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.QQ9ndy/_old  2026-01-17 21:43:28.971723182 +0100
+++ /var/tmp/diff_new_pack.QQ9ndy/_new  2026-01-17 21:43:28.979723511 +0100
@@ -6,7 +6,7 @@
     <param name="scm">git</param>
     <param name="version">master</param>
     <param name="versionformat">@PARENT_TAG@</param>
-    <param name="revision">2.57.0</param>
+    <param name="revision">2.57.1</param>
     <!-- <param name="changesgenerate">enable</param> -->
     <!-- <param name="changesauthor">RN</param> -->
   </service>

++++++ fastfetch-2.57.0.obscpio -> fastfetch-2.57.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/.github/ISSUE_TEMPLATE/logo_request.yml 
new/fastfetch-2.57.1/.github/ISSUE_TEMPLATE/logo_request.yml
--- old/fastfetch-2.57.0/.github/ISSUE_TEMPLATE/logo_request.yml        
2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/.github/ISSUE_TEMPLATE/logo_request.yml        
2026-01-14 06:58:22.000000000 +0100
@@ -6,35 +6,42 @@
   - type: markdown
     attributes:
       value: |
-        Tip: A logo can be displayed by fastfetch without getting into 
fastfetch's official repo.
-        For highly customized logo for personal use, it's recommended to keep 
it locally.
+        Tip: You can display a logo in fastfetch without adding it to 
fastfetch's official repo.
+        For highly customized, personal logos, we recommend keeping them 
locally.
         Please refer to 
https://github.com/fastfetch-cli/fastfetch/wiki/Migrate-Neofetch-Logo-To-Fastfetch
   - type: textarea
     attributes:
       label: OS
-      description: Paste content of `/etc/os-release` and `/etc/lsb-release` 
here. If none of these files exist, describe a way to identify the distro
+      description: Paste the contents of `/etc/os-release` and 
`/etc/lsb-release` here. If neither file exists, describe how to identify the 
distro.
       placeholder: cat /etc/os-release
     validations:
       required: true
+  - type: input
+    attributes:
+      label: Distro Website
+      description: To help prevent spam and verify the request, a distro 
website is required, and a downloadable ISO must be available on that site.
+      placeholder: https://example.com
+    validations:
+      required: true
   - type: textarea
     attributes:
       label: ASCII Art
-      description: An ASCII logo should not take up too much space (smaller 
than 50x20 characters). Please also include the color codes if not available in 
`os-release`
+      description: The ASCII logo should not take up too much space (smaller 
than 50x20 characters, W x H). Please also include the color codes if they are 
not available in `os-release`.
       placeholder: Paste ASCII art here
     validations:
       required: true
   - type: input
     attributes:
-      label: Original Image
-      description: If the ASCII art is based on an image, please provide a 
link to the original image
-      placeholder: Image URL or distro website URL
+      label: Original Image URL
+      description: If the ASCII art is based on an image, please provide a 
link to the original image file.
+      placeholder: Image URL from the distro website mentioned above
   - type: checkboxes
     attributes:
       label: Checklist
       options:
-        - label: The ASCII art is smaller than 50x20 characters (width x 
height)
+        - label: The ASCII art is smaller than 50x20 characters (W x H).
           required: true
-        - label: The ASCII art contains color codes, or the color codes are 
available in `os-release`
+        - label: The ASCII art includes color codes, or the color codes are 
available in `os-release`.
           required: true
-        - label: The ASCII art contains no internal paddings (spaces at the 
start and the end of lines)
+        - label: The ASCII art has no internal padding (spaces at the start 
and/or end of lines).
           required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/.github/pull_request_template.md 
new/fastfetch-2.57.1/.github/pull_request_template.md
--- old/fastfetch-2.57.0/.github/pull_request_template.md       1970-01-01 
01:00:00.000000000 +0100
+++ new/fastfetch-2.57.1/.github/pull_request_template.md       2026-01-14 
06:58:22.000000000 +0100
@@ -0,0 +1,26 @@
+## Summary
+
+<!-- Briefly describe what this PR does. -->
+
+## Related issue (required for new logos for new distros)
+
+<!--
+If this PR adds a new logo, it MUST be linked to an existing "Logo Request" 
issue and has the requests fulfilled.
+
+Use one of the following formats so GitHub links it properly:
+- Closes #1234
+- Fixes #1234
+- Resolves #1234
+
+PRs that add logos without an associated Logo Request issue will not be 
accepted.
+-->
+
+Closes #
+
+## Changes
+
+- 
+
+## Checklist
+
+- [ ] I have tested my changes locally.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/CHANGELOG.md 
new/fastfetch-2.57.1/CHANGELOG.md
--- old/fastfetch-2.57.0/CHANGELOG.md   2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/CHANGELOG.md   2026-01-14 06:58:22.000000000 +0100
@@ -1,3 +1,17 @@
+# 2.57.1
+
+Features:
+* Tiny performance improvements (Windows)
+* Improves the reliability of hostname retrieval (Title, Windows)
+
+Bugfixes:
+* Fixes potential compilation issues on Linux (#2142, Linux)
+* Fixes compilation errors on macOS when building with older SDKs (#2140, 
macOS)
+* Fixes compilation issues when building with `-DENABLE_SYSTEM_YYJSON=ON` 
(#2143)
+
+Logos:
+* Updates PrismLinux and adds a small variant
+
 # 2.57.0
 
 Deprecation notice:
@@ -15,8 +29,8 @@
 * Supports Secure Boot detection (Bootmgr, macOS)
 * Supports DPI scale factor detection on Windows 7 (Display, Windows)
 * Supports xterm 256-color codes in color configuration
-    * In `display.color`: "@<color-index>" (e.g., "@34" for color index 34)
-    * In `*.format` strings: "#@<color-index>" (e.g., "#@34" for color index 
34)
+    * In `display.color`: "`@<color-index>`" (e.g., "`@34`" for color index 
`34`)
+    * In `*.format` strings: "`#@<color-index>`" (e.g., "`#@34`" for color 
index `34`)
 * Improves uptime accuracy on Windows 10+ (Uptime, Windows)
 * Adds a new module `Logo` to query built-in logo raw data in JSON output 
(Logo)
     * Usage: `fastfetch -s logo -l <logo-name> -j # Supported in JSON format 
only`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/CMakeLists.txt 
new/fastfetch-2.57.1/CMakeLists.txt
--- old/fastfetch-2.57.0/CMakeLists.txt 2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/CMakeLists.txt 2026-01-14 06:58:22.000000000 +0100
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.12.0) # target_link_libraries with OBJECT 
libs & project homepage url
 
 project(fastfetch
-    VERSION 2.57.0
+    VERSION 2.57.1
     LANGUAGES C
     DESCRIPTION "Fast neofetch-like system information tool"
     HOMEPAGE_URL "https://github.com/fastfetch-cli/fastfetch";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/debian/changelog.tpl 
new/fastfetch-2.57.1/debian/changelog.tpl
--- old/fastfetch-2.57.0/debian/changelog.tpl   2026-01-12 03:02:57.000000000 
+0100
+++ new/fastfetch-2.57.1/debian/changelog.tpl   2026-01-14 06:58:22.000000000 
+0100
@@ -1,3 +1,9 @@
+fastfetch (2.57.0~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium
+
+  * Update to 2.57.0
+
+ -- Carter Li <[email protected]>  Mon, 12 Jan 2026 10:11:21 +0800
+
 fastfetch (2.56.1~#UBUNTU_CODENAME#) #UBUNTU_CODENAME#; urgency=medium
 
   * Update to 2.56.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/common/impl/FFPlatform_windows.c 
new/fastfetch-2.57.1/src/common/impl/FFPlatform_windows.c
--- old/fastfetch-2.57.0/src/common/impl/FFPlatform_windows.c   2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/common/impl/FFPlatform_windows.c   2026-01-14 
06:58:22.000000000 +0100
@@ -155,10 +155,16 @@
 
 static void getHostName(FFPlatform* platform)
 {
-    wchar_t buffer[128];
+    wchar_t buffer[256];
     DWORD len = ARRAY_SIZE(buffer);
-    if(GetComputerNameExW(ComputerNameDnsHostname, buffer, &len))
-        ffStrbufSetWS(&platform->hostName, buffer);
+    if (GetComputerNameExW(ComputerNameDnsHostname, buffer, &len) && len > 0)
+        ffStrbufSetNWS(&platform->hostName, len, buffer);
+    else
+    {
+        len = ARRAY_SIZE(buffer);
+        if (GetComputerNameExW(ComputerNameNetBIOS, buffer, &len) && len > 0)
+            ffStrbufSetNWS(&platform->hostName, len, buffer);
+    }
 }
 
 static void getUserShell(FFPlatform* platform)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/common/impl/time.c 
new/fastfetch-2.57.1/src/common/impl/time.c
--- old/fastfetch-2.57.0/src/common/impl/time.c 2026-01-12 03:02:57.000000000 
+0100
+++ new/fastfetch-2.57.1/src/common/impl/time.c 2026-01-14 06:58:22.000000000 
+0100
@@ -81,3 +81,15 @@
 
     return result;
 }
+
+#ifdef _WIN32
+    double ffQpcMultiplier;
+
+    __attribute__((constructor))
+    static void ffTimeInitQpcMultiplier(void)
+    {
+        LARGE_INTEGER frequency;
+        QueryPerformanceFrequency(&frequency);
+        ffQpcMultiplier = 1000. / (double) frequency.QuadPart;
+    }
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/common/time.h 
new/fastfetch-2.57.1/src/common/time.h
--- old/fastfetch-2.57.0/src/common/time.h      2026-01-12 03:02:57.000000000 
+0100
+++ new/fastfetch-2.57.1/src/common/time.h      2026-01-14 06:58:22.000000000 
+0100
@@ -1,11 +1,20 @@
 #pragma once
 
+#include <stdbool.h>
 #include <stdint.h>
 #include <time.h>
 #ifdef _WIN32
-    #include <synchapi.h>
+    #include <ntdef.h>
+    #include <ntstatus.h>
     #include <profileapi.h>
     #include <sysinfoapi.h>
+
+    NTSYSCALLAPI
+    NTSTATUS
+    NTAPI
+    NtDelayExecution(
+        _In_ BOOLEAN Alertable,
+        _In_ PLARGE_INTEGER DelayInterval);
 #elif defined(__HAIKU__)
     #include <OS.h>
 #endif
@@ -15,11 +24,10 @@
 static inline double ffTimeGetTick(void) //In msec
 {
     #ifdef _WIN32
-        LARGE_INTEGER frequency;
-        QueryPerformanceFrequency(&frequency);
+        extern double ffQpcMultiplier;
         LARGE_INTEGER start;
         QueryPerformanceCounter(&start);
-        return (double) start.QuadPart * 1000 / (double) frequency.QuadPart;
+        return (double) start.QuadPart * ffQpcMultiplier;
     #elif defined(__HAIKU__)
         return (double) system_time() / 1000.;
     #else
@@ -44,12 +52,15 @@
     #endif
 }
 
-static inline void ffTimeSleep(uint32_t msec)
+// Returns true if not interrupted
+static inline bool ffTimeSleep(uint32_t msec)
 {
     #ifdef _WIN32
-        SleepEx(msec, TRUE);
+        LARGE_INTEGER interval;
+        interval.QuadPart = -(int64_t) msec * 10000; // Relative time in 
100-nanosecond intervals
+        return NtDelayExecution(TRUE, &interval) == STATUS_SUCCESS;
     #else
-        nanosleep(&(struct timespec){ msec / 1000, (long) (msec % 1000) * 
1000000 }, NULL);
+        return nanosleep(&(struct timespec){ msec / 1000, (long) (msec % 1000) 
* 1000000 }, NULL) == 0;
     #endif
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/common/windows/nt.h 
new/fastfetch-2.57.1/src/common/windows/nt.h
--- old/fastfetch-2.57.0/src/common/windows/nt.h        2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/common/windows/nt.h        2026-01-14 
06:58:22.000000000 +0100
@@ -237,14 +237,14 @@
 NTSTATUS
 NTAPI
 NtQueryDirectoryFile(
-  IN HANDLE FileHandle,
-  IN HANDLE Event OPTIONAL,
-  IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
-  IN PVOID ApcContext OPTIONAL,
-  OUT PIO_STATUS_BLOCK IoStatusBlock,
-  OUT PVOID FileInformation,
-  IN ULONG Length,
-  IN FILE_INFORMATION_CLASS FileInformationClass,
-  IN BOOLEAN ReturnSingleEntry,
-  IN PUNICODE_STRING FileName OPTIONAL,
-  IN BOOLEAN RestartScan);
+    IN HANDLE FileHandle,
+    IN HANDLE Event OPTIONAL,
+    IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
+    IN PVOID ApcContext OPTIONAL,
+    OUT PIO_STATUS_BLOCK IoStatusBlock,
+    OUT PVOID FileInformation,
+    IN ULONG Length,
+    IN FILE_INFORMATION_CLASS FileInformationClass,
+    IN BOOLEAN ReturnSingleEntry,
+    IN PUNICODE_STRING FileName OPTIONAL,
+    IN BOOLEAN RestartScan);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/common/windows/util.hpp 
new/fastfetch-2.57.1/src/common/windows/util.hpp
--- old/fastfetch-2.57.0/src/common/windows/util.hpp    1970-01-01 
01:00:00.000000000 +0100
+++ new/fastfetch-2.57.1/src/common/windows/util.hpp    2026-01-14 
06:58:22.000000000 +0100
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <utility>
+#include <type_traits>
+
+template <typename Fn>
+struct on_scope_exit {
+    static_assert(std::is_nothrow_move_constructible<Fn>::value,
+                    "Fn must be nothrow move constructible");
+
+    explicit on_scope_exit(Fn &&fn) noexcept
+        : _fn(std::move(fn)) {};
+    on_scope_exit(const on_scope_exit&) = delete;
+    on_scope_exit& operator=(const on_scope_exit&) = delete;
+    ~on_scope_exit() noexcept { this->_fn(); }
+
+private:
+    Fn _fn;
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/detection/bluetooth/bluetooth_windows.cpp 
new/fastfetch-2.57.1/src/detection/bluetooth/bluetooth_windows.cpp
--- old/fastfetch-2.57.0/src/detection/bluetooth/bluetooth_windows.cpp  
2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/bluetooth/bluetooth_windows.cpp  
2026-01-14 06:58:22.000000000 +0100
@@ -4,18 +4,10 @@
 }
 #include "common/windows/wmi.hpp"
 #include "common/windows/unicode.hpp"
+#include "common/windows/util.hpp"
 
 STDAPI InitVariantFromStringArray(_In_reads_(cElems) PCWSTR *prgsz, _In_ ULONG 
cElems, _Out_ VARIANT *pvar);
 
-template <typename Fn>
-struct on_scope_exit {
-    on_scope_exit(Fn &&fn): _fn(std::move(fn)) {}
-    ~on_scope_exit() { this->_fn(); }
-
-private:
-    Fn _fn;
-};
-
 extern "C"
 const char* ffBluetoothDetectBattery(FFlist* devices)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/detection/bootmgr/bootmgr_apple.c 
new/fastfetch-2.57.1/src/detection/bootmgr/bootmgr_apple.c
--- old/fastfetch-2.57.0/src/detection/bootmgr/bootmgr_apple.c  2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/bootmgr/bootmgr_apple.c  2026-01-14 
06:58:22.000000000 +0100
@@ -7,7 +7,7 @@
 static const char* detectSecureBoot(bool* result)
 {
     #if __aarch64__
-    FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t entryDevice = 
IORegistryEntryFromPath(kIOMainPortDefault, "IODeviceTree:/chosen");
+    FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t entryDevice = 
IORegistryEntryFromPath(MACH_PORT_NULL, "IODeviceTree:/chosen");
     if (!entryDevice)
         return "IORegistryEntryFromPath() failed";
 
@@ -20,7 +20,7 @@
 
     *result = (bool) *CFDataGetBytePtr((CFDataRef) prop);
     #else
-    FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t entryDevice = 
IORegistryEntryFromPath(kIOMainPortDefault, "IODeviceTree:/options");
+    FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t entryDevice = 
IORegistryEntryFromPath(MACH_PORT_NULL, "IODeviceTree:/options");
     if (!entryDevice)
         return "IORegistryEntryFromPath() failed";
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/detection/camera/camera_windows.cpp 
new/fastfetch-2.57.1/src/detection/camera/camera_windows.cpp
--- old/fastfetch-2.57.0/src/detection/camera/camera_windows.cpp        
2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/camera/camera_windows.cpp        
2026-01-14 06:58:22.000000000 +0100
@@ -4,20 +4,12 @@
 }
 #include "common/windows/com.hpp"
 #include "common/windows/unicode.hpp"
+#include "common/windows/util.hpp"
 
 #include <initguid.h>
 #include <mfapi.h>
 #include <mfidl.h>
 
-template <typename Fn>
-struct on_scope_exit {
-    on_scope_exit(Fn &&fn): _fn(std::move(fn)) {}
-    ~on_scope_exit() { this->_fn(); }
-
-private:
-    Fn _fn;
-};
-
 extern "C"
 const char* ffDetectCamera(FF_MAYBE_UNUSED FFlist* result)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/detection/displayserver/linux/xcb.c 
new/fastfetch-2.57.1/src/detection/displayserver/linux/xcb.c
--- old/fastfetch-2.57.0/src/detection/displayserver/linux/xcb.c        
2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/displayserver/linux/xcb.c        
2026-01-14 06:58:22.000000000 +0100
@@ -13,8 +13,28 @@
 #include <xcb/randr.h>
 #include <xcb/xcb.h>
 
-typedef struct XcbPropertyData
+typedef struct XcbRandrData
 {
+    FF_LIBRARY_SYMBOL(xcb_randr_get_screen_resources_current)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_screen_resources_current_reply)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_screen_resources_current_modes_iterator)
+    FF_LIBRARY_SYMBOL(xcb_randr_mode_info_next)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_monitors)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_monitors_reply)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_monitors_monitors_iterator)
+    FF_LIBRARY_SYMBOL(xcb_randr_monitor_info_next)
+    FF_LIBRARY_SYMBOL(xcb_randr_monitor_info_outputs_length)
+    FF_LIBRARY_SYMBOL(xcb_randr_monitor_info_outputs)
+    FF_LIBRARY_SYMBOL(xcb_randr_output_next)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_output_info)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_output_info_reply)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_crtc_info)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_crtc_info_reply)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property_reply)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property_data)
+    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property_data_length)
+
     FF_LIBRARY_SYMBOL(xcb_intern_atom)
     FF_LIBRARY_SYMBOL(xcb_intern_atom_reply)
     FF_LIBRARY_SYMBOL(xcb_get_property)
@@ -28,37 +48,21 @@
     FF_LIBRARY_SYMBOL(xcb_get_setup)
     FF_LIBRARY_SYMBOL(xcb_setup_vendor)
     FF_LIBRARY_SYMBOL(xcb_setup_vendor_length)
-} XcbPropertyData;
-
-static bool xcbInitPropertyData(FF_MAYBE_UNUSED void* libraryHandle, 
XcbPropertyData* propertyData)
-{
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, xcb_intern_atom, 
false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_intern_atom_reply, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, xcb_get_property, 
false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_get_property_reply, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_get_property_value, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_get_property_value_length, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, xcb_get_atom_name, 
false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_get_atom_name_name, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_get_atom_name_name_length, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_get_atom_name_reply, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, xcb_get_setup, 
false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, xcb_setup_vendor, 
false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
xcb_setup_vendor_length, false)
 
-    return true;
-}
+    //init once
+    xcb_connection_t* connection;
+    FFDisplayServerResult* result;
+} XcbRandrData;
 
-static void* xcbGetProperty(XcbPropertyData* data, xcb_connection_t* 
connection, xcb_window_t window, const char* request)
+static void* xcbGetProperty(XcbRandrData* data, xcb_window_t window, const 
char* request)
 {
-    xcb_intern_atom_cookie_t requestAtomCookie = 
data->ffxcb_intern_atom(connection, true, (uint16_t) strlen(request), request);
-    FF_AUTO_FREE xcb_intern_atom_reply_t* requestAtomReply = 
data->ffxcb_intern_atom_reply(connection, requestAtomCookie, NULL);
+    xcb_intern_atom_cookie_t requestAtomCookie = 
data->ffxcb_intern_atom(data->connection, true, (uint16_t) strlen(request), 
request);
+    FF_AUTO_FREE xcb_intern_atom_reply_t* requestAtomReply = 
data->ffxcb_intern_atom_reply(data->connection, requestAtomCookie, NULL);
     if(requestAtomReply == NULL)
         return NULL;
 
-    xcb_get_property_cookie_t propertyCookie = 
data->ffxcb_get_property(connection, false, window, requestAtomReply->atom, 
XCB_ATOM_ANY, 0, 8 * 1024);
-
-    FF_AUTO_FREE xcb_get_property_reply_t* propertyReply = 
data->ffxcb_get_property_reply(connection, propertyCookie, NULL);
+    xcb_get_property_cookie_t propertyCookie = 
data->ffxcb_get_property(data->connection, false, window, 
requestAtomReply->atom, XCB_ATOM_ANY, 0, 8 * 1024);
+    FF_AUTO_FREE xcb_get_property_reply_t* propertyReply = 
data->ffxcb_get_property_reply(data->connection, propertyCookie, NULL);
     if(propertyReply == NULL)
         return NULL;
 
@@ -74,18 +78,18 @@
     return replyValue;
 }
 
-static void xcbDetectWMfromEWMH(XcbPropertyData* data, xcb_connection_t* 
connection, xcb_window_t rootWindow, FFDisplayServerResult* result)
+static void xcbDetectWMfromEWMH(XcbRandrData* data, xcb_window_t rootWindow, 
FFDisplayServerResult* result)
 {
     if(result->wmProcessName.length > 0 || 
ffStrbufCompS(&result->wmProtocolName, FF_WM_PROTOCOL_WAYLAND) == 0)
         return;
 
-    FF_AUTO_FREE xcb_window_t* wmWindow = (xcb_window_t*) xcbGetProperty(data, 
connection, rootWindow, "_NET_SUPPORTING_WM_CHECK");
+    FF_AUTO_FREE xcb_window_t* wmWindow = (xcb_window_t*) xcbGetProperty(data, 
rootWindow, "_NET_SUPPORTING_WM_CHECK");
     if(wmWindow == NULL)
         return;
 
-    FF_AUTO_FREE char* wmName = (char*) xcbGetProperty(data, connection, 
*wmWindow, "WM_NAME");
+    FF_AUTO_FREE char* wmName = (char*) xcbGetProperty(data, *wmWindow, 
"WM_NAME");
     if(!ffStrSet(wmName))
-        wmName = (char*) xcbGetProperty(data, connection, *wmWindow, 
"_NET_WM_NAME");
+        wmName = (char*) xcbGetProperty(data, *wmWindow, "_NET_WM_NAME");
 
     if(!ffStrSet(wmName))
         return;
@@ -93,9 +97,9 @@
     ffStrbufSetS(&result->wmProcessName, wmName);
 }
 
-static void xcbFetchServerVendor(XcbPropertyData* data, xcb_connection_t* 
connection, FFDisplayServerResult* result)
+static void xcbFetchServerVendor(XcbRandrData* data, FFDisplayServerResult* 
result)
 {
-    const xcb_setup_t* setup = data->ffxcb_get_setup(connection);
+    const xcb_setup_t* setup = data->ffxcb_get_setup(data->connection);
 
     int length = data->ffxcb_setup_vendor_length(setup);
     if(length <= 0)
@@ -110,36 +114,6 @@
     }
 }
 
-typedef struct XcbRandrData
-{
-    FF_LIBRARY_SYMBOL(xcb_randr_get_screen_resources_current)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_screen_resources_current_reply)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_screen_resources_current_modes_iterator)
-    FF_LIBRARY_SYMBOL(xcb_randr_mode_info_next)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_monitors)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_monitors_reply)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_monitors_monitors_iterator)
-    FF_LIBRARY_SYMBOL(xcb_randr_monitor_info_next)
-    FF_LIBRARY_SYMBOL(xcb_randr_monitor_info_outputs_length)
-    FF_LIBRARY_SYMBOL(xcb_randr_monitor_info_outputs)
-    FF_LIBRARY_SYMBOL(xcb_randr_output_next)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_output_info)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_output_info_reply)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_crtc_info)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_crtc_info_reply)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property_reply)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property_data)
-    FF_LIBRARY_SYMBOL(xcb_randr_get_output_property_data_length)
-    FF_LIBRARY_SYMBOL(xcb_intern_atom)
-    FF_LIBRARY_SYMBOL(xcb_intern_atom_reply)
-
-    //init once
-    xcb_connection_t* connection;
-    FFDisplayServerResult* result;
-    XcbPropertyData propData;
-} XcbRandrData;
-
 static bool xcbRandrHandleOutput(XcbRandrData* data, xcb_randr_output_t 
output, FFstrbuf* name, bool primary, FFDisplayType displayType, struct 
xcb_randr_get_screen_resources_current_reply_t* screenResources, uint8_t 
bitDepth, double scaleFactor)
 {
     xcb_randr_get_output_info_cookie_t outputInfoCookie = 
data->ffxcb_randr_get_output_info(data->connection, output, XCB_CURRENT_TIME);
@@ -251,14 +225,14 @@
         .rem = data->ffxcb_randr_monitor_info_outputs_length(monitor)
     };
 
-    FF_AUTO_FREE xcb_get_atom_name_reply_t* nameReply = 
data->propData.ffxcb_get_atom_name_reply(
+    FF_AUTO_FREE xcb_get_atom_name_reply_t* nameReply = 
data->ffxcb_get_atom_name_reply(
         data->connection,
-        data->propData.ffxcb_get_atom_name(data->connection, monitor->name),
+        data->ffxcb_get_atom_name(data->connection, monitor->name),
         NULL
     );
     FF_STRBUF_AUTO_DESTROY name = ffStrbufCreateNS(
-        (uint32_t) data->propData.ffxcb_get_atom_name_name_length(nameReply),
-        data->propData.ffxcb_get_atom_name_name(nameReply)
+        (uint32_t) data->ffxcb_get_atom_name_name_length(nameReply),
+        data->ffxcb_get_atom_name_name(nameReply)
     );
     const FFDisplayType displayType = ffdsGetDisplayType(name.chars);
 
@@ -306,7 +280,7 @@
     FF_AUTO_FREE struct xcb_randr_get_screen_resources_current_reply_t* 
screenResources = 
data->ffxcb_randr_get_screen_resources_current_reply(data->connection, 
screenResourcesCookie, NULL);
 
     double scaleFactor = 1;
-    FF_AUTO_FREE const char* resourceManager = xcbGetProperty(&data->propData, 
data->connection, screen->root, "RESOURCE_MANAGER");
+    FF_AUTO_FREE const char* resourceManager = xcbGetProperty(data, 
screen->root, "RESOURCE_MANAGER");
     if (resourceManager)
     {
         FF_STRBUF_AUTO_DESTROY dpi = ffStrbufCreate();
@@ -369,6 +343,18 @@
 
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_intern_atom)
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_intern_atom_reply)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_property)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_property_reply)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_property_value)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, 
xcb_get_property_value_length)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_atom_name)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_atom_name_name)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, 
xcb_get_atom_name_name_length)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_atom_name_reply)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_get_setup)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_setup_vendor)
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_setup_vendor_length)
+
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, 
xcb_randr_get_screen_resources_current)
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, 
xcb_randr_get_screen_resources_current_reply)
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, 
xcb_randr_get_screen_resources_current_modes_iterator)
@@ -389,8 +375,6 @@
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, xcb_randr_get_crtc_info)
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xcbRandr, data, 
xcb_randr_get_crtc_info_reply)
 
-    bool propertyDataInitialized = xcbInitPropertyData(xcbRandr, 
&data.propData);
-
 
     data.connection = ffxcb_connect(NULL, NULL);
     if(ffxcb_connection_has_error(data.connection) > 0)
@@ -405,9 +389,9 @@
     xcb_screen_iterator_t iterator = 
ffxcb_setup_roots_iterator(ffxcb_get_setup(data.connection));
 
 
-    if(iterator.rem > 0 && propertyDataInitialized) {
-        xcbDetectWMfromEWMH(&data.propData, data.connection, 
iterator.data->root, result);
-        xcbFetchServerVendor(&data.propData, data.connection, result);
+    if(iterator.rem > 0) {
+        xcbDetectWMfromEWMH(&data, iterator.data->root, result);
+        xcbFetchServerVendor(&data, result);
     }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/detection/displayserver/linux/xlib.c 
new/fastfetch-2.57.1/src/detection/displayserver/linux/xlib.c
--- old/fastfetch-2.57.0/src/detection/displayserver/linux/xlib.c       
2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/displayserver/linux/xlib.c       
2026-01-14 06:58:22.000000000 +0100
@@ -10,25 +10,29 @@
 #include <X11/extensions/Xrandr.h>
 #include <X11/Xlib.h>
 
-typedef struct X11PropertyData
+typedef struct XrandrData
 {
     FF_LIBRARY_SYMBOL(XInternAtom)
+    FF_LIBRARY_SYMBOL(XGetAtomName)
     FF_LIBRARY_SYMBOL(XGetWindowProperty)
     FF_LIBRARY_SYMBOL(XServerVendor)
     FF_LIBRARY_SYMBOL(XFree)
-} X11PropertyData;
-
-static bool x11InitPropertyData(FF_MAYBE_UNUSED void* libraryHandle, 
X11PropertyData* propertyData)
-{
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, XInternAtom, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, 
XGetWindowProperty, false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, XServerVendor, 
false)
-    FF_LIBRARY_LOAD_SYMBOL_PTR(libraryHandle, propertyData, XFree, false)
+    FF_LIBRARY_SYMBOL(XRRGetMonitors)
+    FF_LIBRARY_SYMBOL(XRRGetScreenResourcesCurrent)
+    FF_LIBRARY_SYMBOL(XRRGetOutputInfo)
+    FF_LIBRARY_SYMBOL(XRRGetOutputProperty)
+    FF_LIBRARY_SYMBOL(XRRGetCrtcInfo)
+    FF_LIBRARY_SYMBOL(XRRFreeCrtcInfo)
+    FF_LIBRARY_SYMBOL(XRRFreeOutputInfo)
+    FF_LIBRARY_SYMBOL(XRRFreeScreenResources)
+    FF_LIBRARY_SYMBOL(XRRFreeMonitors)
 
-    return true;
-}
+    //Init once
+    Display* display;
+    FFDisplayServerResult* result;
+} XrandrData;
 
-static unsigned char* x11GetProperty(X11PropertyData* data, Display* display, 
Window window, const char* request)
+static unsigned char* x11GetProperty(XrandrData* data, Display* display, 
Window window, const char* request)
 {
     Atom requestAtom = data->ffXInternAtom(display, request, False);
     if(requestAtom == None)
@@ -44,18 +48,18 @@
     return result;
 }
 
-static void x11DetectWMFromEWMH(X11PropertyData* data, Display* display, 
FFDisplayServerResult* result)
+static void x11DetectWMFromEWMH(XrandrData* data, FFDisplayServerResult* 
result)
 {
     if(result->wmProcessName.length > 0 || 
ffStrbufCompS(&result->wmProtocolName, FF_WM_PROTOCOL_WAYLAND) == 0)
         return;
 
-    Window* wmWindow = (Window*) x11GetProperty(data, display, 
DefaultRootWindow(display), "_NET_SUPPORTING_WM_CHECK");
+    Window* wmWindow = (Window*) x11GetProperty(data, data->display, 
DefaultRootWindow(data->display), "_NET_SUPPORTING_WM_CHECK");
     if(wmWindow == NULL)
         return;
 
-    char* wmName = (char*) x11GetProperty(data, display, *wmWindow, "WM_NAME");
+    char* wmName = (char*) x11GetProperty(data, data->display, *wmWindow, 
"WM_NAME");
     if(!ffStrSet(wmName))
-        wmName = (char*) x11GetProperty(data, display, *wmWindow, 
"_NET_WM_NAME");
+        wmName = (char*) x11GetProperty(data, data->display, *wmWindow, 
"_NET_WM_NAME");
 
     if(ffStrSet(wmName))
         ffStrbufSetS(&result->wmProcessName, wmName);
@@ -64,35 +68,13 @@
     data->ffXFree(wmWindow);
 }
 
-static void x11FetchServerVendor(X11PropertyData* data, Display* display, 
FFDisplayServerResult* result)
+static void x11FetchServerVendor(XrandrData* data, FFDisplayServerResult* 
result)
 {
-    const char* serverVendor = data->ffXServerVendor(display);
-    if (serverVendor && !ffStrEquals(serverVendor, "The X.Org Foundation")) {
+    const char* serverVendor = data->ffXServerVendor(data->display);
+    if (serverVendor && !ffStrEquals(serverVendor, "The X.Org Foundation"))
         ffStrbufSetS(&result->wmProtocolName, serverVendor);
-    }
 }
 
-typedef struct XrandrData
-{
-    FF_LIBRARY_SYMBOL(XInternAtom)
-    FF_LIBRARY_SYMBOL(XGetAtomName);
-    FF_LIBRARY_SYMBOL(XFree);
-    FF_LIBRARY_SYMBOL(XRRGetMonitors)
-    FF_LIBRARY_SYMBOL(XRRGetScreenResourcesCurrent)
-    FF_LIBRARY_SYMBOL(XRRGetOutputInfo)
-    FF_LIBRARY_SYMBOL(XRRGetOutputProperty)
-    FF_LIBRARY_SYMBOL(XRRGetCrtcInfo)
-    FF_LIBRARY_SYMBOL(XRRFreeCrtcInfo)
-    FF_LIBRARY_SYMBOL(XRRFreeOutputInfo)
-    FF_LIBRARY_SYMBOL(XRRFreeScreenResources)
-    FF_LIBRARY_SYMBOL(XRRFreeMonitors)
-
-    //Init once
-    Display* display;
-    FFDisplayServerResult* result;
-    X11PropertyData* propData;
-} XrandrData;
-
 static bool xrandrHandleCrtc(XrandrData* data, XRROutputInfo* output, 
FFstrbuf* name, bool primary, FFDisplayType displayType, uint8_t* edidData, 
uint32_t edidLength, XRRScreenResources* screenResources, uint8_t bitDepth, 
double scaleFactor)
 {
     //We do the check here, because we want the best fallback display if this 
call failed
@@ -247,7 +229,7 @@
     XRRScreenResources* screenResources = 
data->ffXRRGetScreenResourcesCurrent(data->display, RootWindowOfScreen(screen));
 
     double scaleFactor = 1;
-    char* resourceManager = (char*) x11GetProperty(data->propData, 
data->display, screen->root, "RESOURCE_MANAGER");
+    char* resourceManager = (char*) x11GetProperty(data, data->display, 
screen->root, "RESOURCE_MANAGER");
     if (resourceManager)
     {
         FF_STRBUF_AUTO_DESTROY dpi = ffStrbufCreate();
@@ -307,6 +289,8 @@
 
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XInternAtom);
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XGetAtomName);
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XGetWindowProperty);
+    FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XServerVendor);
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XFree);
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XRRGetMonitors);
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, 
XRRGetScreenResourcesCurrent);
@@ -318,17 +302,13 @@
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XRRFreeScreenResources);
     FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(xrandr, data, XRRFreeMonitors);
 
-    X11PropertyData propertyData;
-    bool propertyDataInitialized = x11InitPropertyData(xrandr, &propertyData);
-    data.propData = &propertyData;
-
     data.display = ffXOpenDisplay(NULL);
     if(data.display == NULL)
         return "XOpenDisplay() failed";
 
-    if(propertyDataInitialized && ScreenCount(data.display) > 0) {
-        x11DetectWMFromEWMH(&propertyData, data.display, result);
-        x11FetchServerVendor(&propertyData, data.display, result);
+    if(ScreenCount(data.display) > 0) {
+        x11DetectWMFromEWMH(&data, result);
+        x11FetchServerVendor(&data, result);
     }
 
     data.result = result;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/detection/gpu/gpu_wsl.cpp 
new/fastfetch-2.57.1/src/detection/gpu/gpu_wsl.cpp
--- old/fastfetch-2.57.0/src/detection/gpu/gpu_wsl.cpp  2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/gpu/gpu_wsl.cpp  2026-01-14 
06:58:22.000000000 +0100
@@ -6,6 +6,7 @@
 #include "detection/gpu/gpu.h"
 #include "detection/gpu/gpu_driver_specific.h"
 }
+#include "common/windows/util.hpp"
 
 #include <wsl/winadapter.h>
 #include <directx/dxcore.h>
@@ -16,15 +17,6 @@
 
 #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
 
-template <typename Fn>
-struct on_scope_exit {
-    on_scope_exit(Fn &&fn): _fn(std::move(fn)) {}
-    ~on_scope_exit() { this->_fn(); }
-
-private:
-    Fn _fn;
-};
-
 extern "C"
 const char* ffGPUDetectByDirectX(FF_MAYBE_UNUSED const FFGPUOptions* options, 
FFlist* gpus)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/fastfetch-2.57.0/src/detection/physicalmemory/physicalmemory_apple.m 
new/fastfetch-2.57.1/src/detection/physicalmemory/physicalmemory_apple.m
--- old/fastfetch-2.57.0/src/detection/physicalmemory/physicalmemory_apple.m    
2026-01-12 03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/physicalmemory/physicalmemory_apple.m    
2026-01-14 06:58:22.000000000 +0100
@@ -123,7 +123,7 @@
 
 FF_MAYBE_UNUSED static const char* detectFromIokit(FFlist* result)
 {
-    FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t entryDevice = 
IORegistryEntryFromPath(kIOMainPortDefault, "IODeviceTree:/chosen");
+    FF_IOOBJECT_AUTO_RELEASE io_registry_entry_t entryDevice = 
IORegistryEntryFromPath(MACH_PORT_NULL, "IODeviceTree:/chosen");
     if (!entryDevice)
         return "IORegistryEntryFromPath() failed";
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/detection/wm/wm_windows.cpp 
new/fastfetch-2.57.1/src/detection/wm/wm_windows.cpp
--- old/fastfetch-2.57.0/src/detection/wm/wm_windows.cpp        2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/detection/wm/wm_windows.cpp        2026-01-14 
06:58:22.000000000 +0100
@@ -7,22 +7,13 @@
 }
 
 #include "common/windows/com.hpp"
+#include "common/windows/util.hpp"
 
-#include <utility>
 #include <windows.h>
 #include <tlhelp32.h>
 #include <shlobj.h>
 #include <propkey.h>
 
-template <typename Fn>
-struct on_scope_exit {
-    on_scope_exit(Fn &&fn): _fn(std::move(fn)) {}
-    ~on_scope_exit() { this->_fn(); }
-
-private:
-    Fn _fn;
-};
-
 extern "C"
 const char* ffDetectWMPlugin(FFstrbuf* pluginName)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/logo/ascii/prismlinux.txt 
new/fastfetch-2.57.1/src/logo/ascii/prismlinux.txt
--- old/fastfetch-2.57.0/src/logo/ascii/prismlinux.txt  2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/logo/ascii/prismlinux.txt  2026-01-14 
06:58:22.000000000 +0100
@@ -1,17 +1,21 @@
-                .;oo;.
-              .;ldddol;.
-            .:cldddddolc:.
-          ':lloddddoooolcc:'
-        ':lllodddddooooolccc:,
-     ,:lllloddddooooollllccccc,.
-  .,clllllddddooooollllllccc::::,.
- .,clllllloodoooooooollllccc:::::::,.
-'cllllllllllllloooooollcccc::::::::::,
- ,lllllllllllllooooolllccc::::::::::,
-  ,cllllllllllllloollllcc::::::::::;
-   'clllllllllllllllcccc::::::::;:,
-    .clllllllccccc::cc:::::::::;:'
-     .cllllccccc:;;;:cc::::::;;:.
-      .cccccccc;;;:::::cc:::;;:.
-       .:cccc;;;:::::::::c::;:.
-        .;::::;;;;;;;;;;;;;::.
+                    ⣤⣤    ⢀⡄
+               ⢀⣾⣦  ⠙⠛  ⢀⣴⣿⣷  ⢠⣤
+           ⣤⡄  ⣸⣿⣿⣷⣄  ⣠⣶⣿⣿⣿⣿  ⠈⠉      ⢀⣤⡀
+           ⠉⠁ ⢠⣿⣿⣿⣿⣿⣦⡈⢿⣿⣿⣿⣿⣿⡇⢀⣀⣤⣤⣤⣤⣴⣶⠆⠘⠿⠃   ⠉ ⡀
+       ⢤⣄⡀    ⣾⣿⣿⣿⣿⣿⣿⣷⡄⠻⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⡏         ⡇
+       ⠘⣿⣿⣿⣿⣶⣤⣈⣉⠛⠿⢿⣿⣿⣿⣿⣦⠘⢿⣿⣿⣷⠈⣿⣿⣿⣿⣿⠏         ⠐⠁
+        ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⣤⣉⡛⠻⢿⣷⣄⠻⣿⣿ ⣿⣿⣿⣿⠟⢠⣀       ⡐⠁
+    ⢰⣶  ⠘⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠛⠉⠉  ⠈⠉ ⠘⣿ ⣿⣿⣿⡏⢠⣿⣿⣿⣶⣦⣄⡀ ⠂
+    ⠈⠁   ⠙⠋⣉⣉⣤⣤⣶⣶⠾⠉         ⠈ ⢹⣿⠏⢠⣿⣿⣿⣿⣿⣿⣿⣿⠟
+   ⢀⣠⣤⣴⣶⣿⣿⣿⣿⣿⣿⣿⠟⠁             ⢸⠟⣰⣿⣿⣿⣿⣿⡿⠟⠉
+   ⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⠟⢁⣴⡏             ⠈⣰⣿⣿⣿⠿⠛⣁⡀   ⢀⡒
+  ⢤⡀  ⠙⢿⣿⣿⣿⠟⢁⣴⣿⣿              ⣰⡿⠟⢉⣠⣴⣾⣿⣿⣆
+  ⠛⠁ ⠔  ⠈⠛⢁⣴⣿⣿⣿⡇⢰⡆           ⠊⣁⣤⣾⣿⣿⣿⣿⣿⣿⣿⣷⡀
+   ⡠⠂   ⢀⣴⣿⣿⣿⣿⣿⠃⣾⣿⡄⢢⡀      ⠤⠶⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄
+ ⢀⠈   ⢀⣴⣿⣿⣿⣿⣿⣿⡿⢠⣿⣿⣷ ⢿⣷⣄⠑⢶⣶⣶⣶⣶⣶⣤⣤⣤⣤⣤⣤
+⠠⠁    ⠚⠛⠿⠿⢿⣿⣿⣿⡇⢸⣿⣿⣿⣧⠈⢿⣿⣿⣦⣌⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⡄ ⢰⣶
+⡆              ⣼⣿⣿⣿⣿⣇⠘⣿⣿⣿⣿⣿⣦⣈⠛⢿⣿⣿⣿⣿⣿⡇
+⢁        ⣀ ⠄⠂⠁⢀⣿⣿⣿⣿⣿⣿⡆⠹⣿⣿⣿⣿⣿⣿⠗ ⠈⠛⢿⣿⣿⡇
+ ⠁⠂  ⠒⠒⠈⠁     ⢸⣿⣿⣿⠿⠛⠉  ⢻⣿⣿⣿⣿⠟     ⠈⠙⠃
+              ⠼⠛⠉⠁      ⢻⣿⣿⠏  ⢀⣄
+                    ⠿⠇  ⠈⠿⠁   ⠘⠋
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/logo/ascii/prismlinux_small.txt 
new/fastfetch-2.57.1/src/logo/ascii/prismlinux_small.txt
--- old/fastfetch-2.57.0/src/logo/ascii/prismlinux_small.txt    1970-01-01 
01:00:00.000000000 +0100
+++ new/fastfetch-2.57.1/src/logo/ascii/prismlinux_small.txt    2026-01-14 
06:58:22.000000000 +0100
@@ -0,0 +1,13 @@
+         ⢠⣦⡀⠘⠁⢀⣴⣾ ⢀⡄
+       ⠛ ⣸⣿⣿⣄⢰⣿⣿⣿⡄⢀⣀⣀⣀⡀⢾⠆⠐⠂⢄
+    ⠰⣤⣄⡀ ⢿⣿⣿⣿⣧⡹⣿⣿⡇⣿⣿⣿⡿⠁
+     ⢻⣿⣿⣿⣶⣶⣭⣝⡻⠷⣌⢿⡇⢸⣿⡿⢁⣀
+  ⠘⠛ ⠸⠿⠟⣛⣋⡭⠅     ⠻⢸⡿⢡⣿⣿⣿⣶⣤⠁
+  ⠠⣤⣶⣶⣿⣿⡿⢋        ⠸⣡⣿⣿⡿⠟⠉
+ ⢠ ⠈⠻⣿⡿⢋⣴⡟        ⢰⠟⣋⣥⣾⣦⡀ ⠁
+ ⠈⠠⠊ ⢈⣴⣿⣿⣇⣧⢀    ⢀⣠⣴⣿⣿⣿⣿⣿⣷⡄
+    ⣰⣿⣿⣿⣿⢹⣿⣆⢳⣦⣐⠶⣶⣦⣤⣬⣭⣭⠉⢉⠉⠉
+⡀    ⠈⠉⠉⢉⢸⣿⣿⣆⢻⣿⣷⣮⡙⢿⣿⣿⣿ ⠉
+  ⣀⣀ ⠄⠐⠈ ⣾⣿⣿⠿ ⣿⣿⣿⡿ ⠉⠻⢿
+         ⠛⠉ ⢀⡀⠘⣿⠟ ⢠⡀
+            ⠈⠁ ⠁
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/logo/builtin.c 
new/fastfetch-2.57.1/src/logo/builtin.c
--- old/fastfetch-2.57.0/src/logo/builtin.c     2026-01-12 03:02:57.000000000 
+0100
+++ new/fastfetch-2.57.1/src/logo/builtin.c     2026-01-14 06:58:22.000000000 
+0100
@@ -4060,6 +4060,16 @@
             FF_COLOR_FG_BLUE,
         },
     },
+    // PrismLinuxSmall
+    {
+        .names = {"PrismLinux_small"},
+        .type = FF_LOGO_LINE_TYPE_SMALL_BIT,
+        .lines = FASTFETCH_DATATEXT_LOGO_PRISMLINUX_SMALL,
+        .colors = {
+            FF_COLOR_FG_BLUE,
+            FF_COLOR_FG_BLUE,
+        },
+    },
     // LAST
     {},
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastfetch-2.57.0/src/modules/logo/logo.c 
new/fastfetch-2.57.1/src/modules/logo/logo.c
--- old/fastfetch-2.57.0/src/modules/logo/logo.c        2026-01-12 
03:02:57.000000000 +0100
+++ new/fastfetch-2.57.1/src/modules/logo/logo.c        2026-01-14 
06:58:22.000000000 +0100
@@ -1,7 +1,5 @@
-#include "3rdparty/yyjson/yyjson.h"
 #include "common/printing.h"
 #include "logo/logo.h"
-#include "fastfetch.h"
 #include "modules/logo/logo.h"
 #include "options/logo.h"
 

++++++ fastfetch.obsinfo ++++++
--- /var/tmp/diff_new_pack.QQ9ndy/_old  2026-01-17 21:43:29.947763164 +0100
+++ /var/tmp/diff_new_pack.QQ9ndy/_new  2026-01-17 21:43:29.951763328 +0100
@@ -1,5 +1,5 @@
 name: fastfetch
-version: 2.57.0
-mtime: 1768183377
-commit: 163781557fd06b1b52ed6a46cff3a9672b0bd6ed
+version: 2.57.1
+mtime: 1768370302
+commit: 0418e9ca5e2bd449df4634c78e968f726cf09a5a
 

Reply via email to