Conversation
Also corrects docs.
…rland, sway, niri, i3) Fixes #2504
C_STANDARD 23 was added in 3.21
359cb0a renamed the key from `pt_BR` to `pt` but kept the exact-match guard, so only the literal string `pt` matched. Every real Portuguese locale (`pt_BR`, `pt_PT` and their charset and modifier variants) fell through to `goto error` and aborted. Return the offset unconditionally, matching every other two-letter case.
--key-language with an empty value (and "language": null in the config) asks for the system locale, not for a specific language. When that locale has no translation, fastfetch aborted with exit 477 instead of printing anything, so the same config broke on every locale outside the twelve supported ones, and under LC_ALL=C variants such as POSIX. Auto-detected locales now fall back to English. An explicitly requested language still errors out, so typos and zh are still reported.
…ce driver detection
Contributor
There was a problem hiding this comment.
Pull request overview
Prepares the v2.68.0 feature set, including localized module keys, process reporting improvements, broader platform detection, logos, and benchmark automation.
Changes:
- Adds localized display names and the Top module.
- Expands process, Wi-Fi, login-manager, and platform detection.
- Updates logos, documentation, presets, and CI benchmarking.
Reviewed changes
Copilot reviewed 259 out of 261 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
.codespellrc |
Extends spelling exceptions. |
.github/workflows/build-benchmark.yml |
Publishes benchmark results. |
.github/workflows/build-dragonfly-amd64.yml |
Updates VM action. |
.github/workflows/build-freebsd-amd64.yml |
Updates VM action. |
.github/workflows/build-haiku-amd64.yml |
Updates VM action. |
.github/workflows/build-linux-armv7l.yml |
Updates architecture action. |
.github/workflows/build-linux-vms.yml |
Updates architecture action. |
.github/workflows/build-macos-hosts.yml |
Collects benchmark data. |
.github/workflows/build-netbsd-amd64.yml |
Updates VM action. |
.github/workflows/build-omnios-amd64.yml |
Updates VM action. |
.github/workflows/build-openbsd-amd64.yml |
Updates VM action. |
.github/workflows/ci.yml |
Adds benchmark job. |
.gitignore |
Adds generated-content exclusions. |
CHANGELOG.md |
Documents release changes. |
README.md |
Links benchmarks and config generator. |
doc/help.json |
Documents key languages. |
presets/all.jsonc |
Adds Top module. |
presets/ci.jsonc |
Expands CI module coverage. |
presets/examples/14.jsonc |
Corrects spelling. |
src/common/FFstrbuf.h |
Adds static-buffer initializer. |
src/common/impl/FFPlatform_unix.c |
Centralizes package data paths. |
src/common/impl/FFstrbuf.c |
Documents allocation alternative. |
src/common/impl/commandoption.c |
Prepares Top and uses module metadata. |
src/common/impl/genconfig.c |
Corrects spelling. |
src/common/impl/jsonconfig.c |
Prepares Top from JSON. |
src/common/impl/settings.c |
Cleans unused parameters and naming. |
src/common/option.h |
Defines localized display names. |
src/common/path.h |
Defines platform package roots. |
src/common/sysctl.h |
Removes obsolete helper declaration. |
src/common/windows/nt.h |
Adds Windows memory structures. |
src/detection/de/de_linux.c |
Uses shared package paths. |
src/detection/diskio/diskio.c |
Improves rate precision. |
src/detection/displayserver/displayserver_android.c |
Adds ASUS and Wayland detection. |
src/detection/displayserver/linux/xcb.c |
Corrects spelling. |
src/detection/gpu/gpu_pci.c |
Uses shared package paths. |
src/detection/lm/lm.h |
Adds login-manager pretty names. |
src/detection/lm/lm_apple.m |
Adds macOS login-manager detection. |
src/detection/lm/lm_windows.c |
Adds Windows login-manager detection. |
src/detection/memory/memory_windows.c |
Uses native memory counters. |
src/detection/netio/netio.c |
Improves rate precision. |
src/detection/physicaldisk/physicaldisk_bsd.c |
Marks unused parameters. |
src/detection/processes/processes.h |
Adds process/thread result model. |
src/detection/processes/processes_apple.c |
Counts macOS processes and threads. |
src/detection/processes/processes_bsd.c |
Counts BSD processes and threads. |
src/detection/processes/processes_dbsd.c |
Adds DragonFly detection. |
src/detection/processes/processes_gnu.c |
Adds Hurd detection. |
src/detection/processes/processes_haiku.c |
Adds thread counting. |
src/detection/processes/processes_linux.c |
Counts Linux threads and kernel tasks. |
src/detection/processes/processes_nbsd.c |
Expands NetBSD detection. |
src/detection/processes/processes_nosupport.c |
Updates unsupported backend. |
src/detection/processes/processes_obsd.c |
Expands OpenBSD detection. |
src/detection/processes/processes_sunos.c |
Adds SunOS detection. |
src/detection/processes/processes_windows.c |
Counts Windows threads. |
src/detection/terminalfont/terminalfont_android.c |
Detects Termux font size. |
src/detection/terminalshell/terminalshell.c |
Fixes ash detection and paths. |
src/detection/top/top.h |
Defines Top snapshots. |
src/detection/top/top_apple.c |
Adds macOS Top backend. |
src/detection/top/top_bsd.c |
Adds FreeBSD Top backend. |
src/detection/top/top_dbsd.c |
Adds DragonFly Top backend. |
src/detection/top/top_gnu.c |
Adds Hurd Top backend. |
src/detection/top/top_haiku.c |
Adds Haiku Top backend. |
src/detection/top/top_nbsd.c |
Adds NetBSD Top backend. |
src/detection/top/top_obsd.c |
Adds OpenBSD Top backend. |
src/detection/top/top_sunos.c |
Adds SunOS Top backend. |
src/detection/top/top_windows.c |
Adds Windows Top backend. |
src/detection/wifi/wifi.h |
Adds channel-width conversion data. |
src/detection/wifi/wifi_android.c |
Initializes channel width. |
src/detection/wifi/wifi_bsd.c |
Detects BSD channel width. |
src/detection/wifi/wifi_nbsd.c |
Detects NetBSD channel width. |
src/detection/wm/wm_apple.m |
Makes process-table retrieval resilient. |
src/detection/wm/wm_linux.c |
Uses shared package paths. |
src/fastfetch.c |
Corrects spelling. |
src/logo/ascii/a.inc |
Registers Artix2 logo. |
src/logo/ascii/a/artix2.txt |
Trims Artix2 whitespace. |
src/logo/ascii/m.inc |
Registers legacy macOS logo. |
src/logo/ascii/m/macos_old.txt |
Adds legacy macOS logo. |
src/logo/ascii/o.inc |
Registers Omarchy logos. |
src/logo/ascii/o/omarchy.txt |
Adds Omarchy logo. |
src/logo/ascii/o/omarchy2.txt |
Adds alternate Omarchy logo. |
src/modules/battery/battery.c |
Localizes Battery keys. |
src/modules/battery/battery.h |
Removes legacy name macro. |
src/modules/bios/bios.c |
Localizes BIOS keys. |
src/modules/bios/bios.h |
Removes legacy name macro. |
src/modules/bluetooth/bluetooth.h |
Removes legacy name macro. |
src/modules/bluetoothradio/bluetoothradio.h |
Removes legacy name macro. |
src/modules/board/board.c |
Localizes Board keys. |
src/modules/board/board.h |
Removes legacy name macro. |
src/modules/bootmgr/bootmgr.h |
Removes legacy name macro. |
src/modules/break/break.c |
Localizes Break keys. |
src/modules/break/break.h |
Removes legacy name macro. |
src/modules/brightness/brightness.h |
Removes legacy name macro. |
src/modules/btrfs/btrfs.c |
Localizes Btrfs keys. |
src/modules/btrfs/btrfs.h |
Removes legacy name macro. |
src/modules/camera/camera.c |
Localizes Camera keys. |
src/modules/camera/camera.h |
Removes legacy name macro. |
src/modules/chassis/chassis.c |
Localizes Chassis keys. |
src/modules/chassis/chassis.h |
Removes legacy name macro. |
src/modules/codec/codec.h |
Removes legacy name macro. |
src/modules/colors/colors.h |
Removes legacy name macro. |
src/modules/command/command.h |
Removes legacy name macro. |
src/modules/cpu/cpu.h |
Removes legacy name macro. |
src/modules/cpucache/cpucache.h |
Removes legacy name macro. |
src/modules/cpuusage/cpuusage.h |
Removes legacy name macro. |
src/modules/cursor/cursor.c |
Localizes Cursor keys. |
src/modules/cursor/cursor.h |
Removes legacy name macro. |
src/modules/custom/custom.c |
Localizes Custom keys. |
src/modules/custom/custom.h |
Removes legacy name macro. |
src/modules/datetime/datetime.c |
Localizes Date/Time keys. |
src/modules/datetime/datetime.h |
Removes legacy name macro. |
src/modules/de/de.h |
Removes legacy name macro. |
src/modules/disk/disk.c |
Localizes Disk keys. |
src/modules/disk/disk.h |
Removes legacy name macro. |
src/modules/diskio/diskio.h |
Removes legacy name macro. |
src/modules/display/display.h |
Removes legacy name macro. |
src/modules/dns/dns.h |
Removes legacy name macro. |
src/modules/editor/editor.c |
Localizes Editor keys. |
src/modules/editor/editor.h |
Removes legacy name macro. |
src/modules/font/font.c |
Localizes Font keys. |
src/modules/font/font.h |
Removes legacy name macro. |
src/modules/gamepad/gamepad.h |
Removes legacy name macro. |
src/modules/gpu/gpu.h |
Removes legacy name macro. |
src/modules/host/host.c |
Localizes Host keys. |
src/modules/host/host.h |
Removes legacy name macro. |
src/modules/icons/icons.c |
Localizes Icons keys. |
src/modules/icons/icons.h |
Removes legacy name macro. |
src/modules/initsystem/initsystem.h |
Removes legacy name macro. |
src/modules/kernel/kernel.c |
Localizes Kernel keys. |
src/modules/kernel/kernel.h |
Removes legacy name macro. |
src/modules/keyboard/keyboard.h |
Removes legacy name macro. |
src/modules/lm/lm.h |
Removes legacy name macro. |
src/modules/loadavg/loadavg.h |
Removes legacy name macro. |
src/modules/locale/locale.c |
Localizes Locale keys. |
src/modules/locale/locale.h |
Removes legacy name macro. |
src/modules/localip/localip.h |
Removes legacy name macro. |
src/modules/logo/logo.c |
Localizes Logo keys. |
src/modules/logo/logo.h |
Removes legacy name macro. |
src/modules/media/media.c |
Localizes Media keys. |
src/modules/media/media.h |
Removes legacy name macro. |
src/modules/memory/memory.c |
Localizes Memory keys. |
src/modules/memory/memory.h |
Removes legacy name macro. |
src/modules/modules.c |
Registers Top module. |
src/modules/modules.h |
Exposes Top module. |
src/modules/monitor/monitor.c |
Localizes Monitor keys. |
src/modules/monitor/monitor.h |
Removes legacy name macro. |
src/modules/mouse/mouse.h |
Removes legacy name macro. |
src/modules/netio/netio.c |
Localizes NetIO and shortens sampling. |
src/modules/netio/netio.h |
Removes legacy name macro. |
src/modules/opencl/opencl.c |
Localizes OpenCL keys. |
src/modules/opencl/opencl.h |
Removes legacy name macro. |
src/modules/opengl/opengl.c |
Localizes OpenGL keys. |
src/modules/opengl/opengl.h |
Removes legacy name macro. |
src/modules/options.h |
Includes Top options. |
src/modules/os/os.c |
Localizes OS keys. |
src/modules/os/os.h |
Removes legacy name macro. |
src/modules/packages/packages.h |
Removes legacy name macro. |
src/modules/physicaldisk/physicaldisk.h |
Removes legacy name macro. |
src/modules/physicalmemory/physicalmemory.h |
Removes legacy name macro. |
src/modules/player/player.c |
Localizes Media Player keys. |
src/modules/player/player.h |
Removes legacy name macro. |
src/modules/poweradapter/poweradapter.h |
Removes legacy name macro. |
src/modules/processes/option.h |
Adds kernel-process option. |
src/modules/processes/processes.h |
Removes legacy name macro. |
src/modules/publicip/publicip.c |
Localizes Public IP keys. |
src/modules/publicip/publicip.h |
Removes legacy name macro. |
src/modules/separator/separator.c |
Localizes Separator keys. |
src/modules/separator/separator.h |
Removes legacy name macro. |
src/modules/shell/shell.c |
Localizes Shell keys. |
src/modules/shell/shell.h |
Removes legacy name macro. |
src/modules/sound/sound.h |
Removes legacy name macro. |
src/modules/swap/swap.c |
Localizes Swap keys. |
src/modules/swap/swap.h |
Removes legacy name macro. |
src/modules/terminal/terminal.c |
Localizes Terminal keys. |
src/modules/terminal/terminal.h |
Removes legacy name macro. |
src/modules/terminalfont/terminalfont.h |
Removes legacy name macro. |
src/modules/terminalsize/terminalsize.h |
Removes legacy name macro. |
src/modules/terminaltheme/terminaltheme.h |
Removes legacy name macro. |
src/modules/theme/theme.c |
Localizes Theme keys. |
src/modules/theme/theme.h |
Removes legacy name macro. |
src/modules/title/title.c |
Localizes Title keys. |
src/modules/title/title.h |
Removes legacy name macro. |
src/modules/top/option.h |
Defines Top options. |
src/modules/top/top.c |
Implements Top output and configuration. |
src/modules/top/top.h |
Declares Top module API. |
src/modules/tpm/tpm.c |
Localizes TPM keys. |
src/modules/tpm/tpm.h |
Removes legacy name macro. |
src/modules/uptime/uptime.h |
Removes legacy name macro. |
src/modules/users/users.h |
Removes legacy name macro. |
src/modules/version/version.c |
Localizes Version keys. |
src/modules/version/version.h |
Removes legacy name macro. |
src/modules/vulkan/vulkan.c |
Localizes Vulkan keys. |
src/modules/vulkan/vulkan.h |
Removes legacy name macro. |
src/modules/wallpaper/wallpaper.c |
Localizes Wallpaper keys. |
src/modules/wallpaper/wallpaper.h |
Removes legacy name macro. |
src/modules/weather/weather.c |
Localizes Weather keys. |
src/modules/weather/weather.h |
Removes legacy name macro. |
src/modules/wifi/wifi.h |
Removes legacy name macro. |
src/modules/wm/wm.c |
Localizes Window Manager keys. |
src/modules/wm/wm.h |
Removes legacy name macro. |
src/modules/wmtheme/wmtheme.c |
Localizes WM Theme keys. |
src/modules/wmtheme/wmtheme.h |
Removes legacy name macro. |
src/modules/zpool/zpool.c |
Localizes Zpool keys. |
src/modules/zpool/zpool.h |
Removes legacy name macro. |
src/options/display.h |
Stores selected key language. |
tests/strbuf.c |
Exercises static buffer initialization. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 268 out of 270 changed files in this pull request and generated 1 comment.
Suppressed comments (2)
Previously missed (2) — in code that hasn't changed since the last review.
src/detection/processes/processes_bsd.c:13
- The
sysctlMIB usesKERN_PROC_PROCwithout providing a PID component. On BSDs whereKERN_PROC_PROCexpects an additional PID argument, this will fail withEINVALand break process enumeration. UsingKERN_PROC_ALLavoids the missing-PID ambiguity and matches other platform implementations.
src/detection/top/top_bsd.c:15 - The
sysctlMIB usesKERN_PROC_PROCwithout a PID component, which can fail on systems whereKERN_PROC_PROCrequires an extra PID argument. Switching toKERN_PROC_ALLavoids that ambiguity and is consistent with other process-list enumerators in this PR.
Comment on lines
+16
to
+20
| for (int attempts = 0;; ++attempts) { | ||
| if (size) { | ||
| pstart = (SYSTEM_PROCESS_INFORMATION*) realloc(pstart, size); | ||
| assert(pstart); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist