Commit Graph

8029 Commits

Author SHA1 Message Date
linux-universe 2c99d020ec Logo (Builtin): adds AstrOS logo (#2582)
* Logo: add AstrOS

* Update ASCII art in astros.txt

---------

Co-authored-by: Carter Li <CarterLi@users.noreply.github.com>
2026-11-01 16:24:35 +08:00
arxhr007 d697197a8b Format: fixes substring with an end index outside of the string
`{1~20,30}` printed the placeholder as is, because the `,end` part was only
checked when the start index was inside the string. `{1~20}` printed nothing.
Parse and check the whole range first, so that a valid range that lies outside
of the string gives an empty result.
2026-10-31 22:40:07 +08:00
arxhr007 d6c15e1cec Format: fixes integer wraparound when parsing numbers
Numbers that don't fit in 32 bits were truncated, so `{4294967297}` was read
as `{1}`, `{4294967296}` as the next argument, and `{$4294967297}` as the
first constant. The same applied to the start, end and length of `~`, `:`, `<`,
`>` and `|`. Clamp them instead, so that they stay out of range.

Also avoid negating INT32_MIN for the ellipsis length of `{1:-2147483648}`,
which is a signed integer overflow.
2026-10-31 22:08:40 +08:00
arxhr007 d4dd15763f Format: fixes skipping nested conditionals
When a `{?arg}` / `{/arg}` conditional is skipped, the end of the skipped part
was the next `{?}` / `{/}` in the format string, even if it closed a
conditional nested in it. The text after the nested conditional was printed
and the real closing `{?}` / `{/}` was reported as an invalid placeholder.
A literal `{{?}}` inside the skipped part also ended it.

Skip to the `{?}` / `{/}` that matches the opening one, like the printing path
already does.
2026-10-31 17:26:01 +08:00
Carter Li 7d5174a489 Doc: updates changelog [ci skip] 2026-10-31 14:50:24 +08:00
mishalshanavas 1ee988a698 CI: pins musl amd64 builds to Ubuntu 24.04 2026-10-31 14:18:05 +08:00
Kushagra Kumar 2eea01aac3 GPU (Linux): pad device and revision IDs when querying amdgpu.ids
In libdrm/amdgpu.ids, device IDs are formatted with 4 hex digits and
revision IDs with 2 uppercase hex digits (e.g. `1681,\t0B,`). Using
`%04X,\t%02X,` ensures both fields match the file syntax even when
values have leading zeros.
2026-10-31 08:59:22 +08:00
Carter Li 44b32e9f84 Separator: rejects empty string
Fixes #2689 #2690
2026-10-30 08:47:24 +08:00
Carter Li 06957877a8 Wifi (macOS): adds comments 2026-10-29 14:05:41 +08:00
ihsandeniz 2f68ce7f74 IO (Windows): fixes blocking forever on incomplete terminal responses
Same issue as on Unix: ffGetTerminalResponse() waits for input only before
the first ReadFile(). If the terminal answers only part of the request
(e.g. one of the two OSC 10/11 replies), the next ReadFile() blocks forever.

Wait with the same timeout before every subsequent ReadFile() as well, and
restore the console mode on that error path. While waiting, also skip
key-up records: ReadFile() returns no data for them, so one left alone in
the buffer would end the wait and the following ReadFile() would block.
2026-10-28 09:17:24 +08:00
ihsandeniz 408646df1c IO (Unix): fixes blocking forever on incomplete terminal responses
ffGetTerminalResponse() polls only before the first read(). If the terminal
sends a response that is cut short (e.g. `\e[4;800` without the rest), the
following read() in the loop blocks forever because the tty is in
non-canonical mode with VMIN=1.

Wait with the same timeout before every subsequent read() as well.
2026-10-28 09:17:24 +08:00
Don Yin ad62e3d1f5 Format: fixes substring ends before the start of the string (#2669)
* Format: fix substring ends before the start of the string

Closes #2668

Signed-off-by: Don Yin <Don_Yin@outlook.com>

* Doc: moves changelog entry to Unreleased [ci skip]

I moved the unreleased fix out of the 2.70.0 section.

Signed-off-by: Don Yin <Don_Yin@outlook.com>

---------

Signed-off-by: Don Yin <Don_Yin@outlook.com>
2026-10-26 00:34:50 -05:00
Carter Li 197d1c6e5d Uptime (SunOS): improves detection via kstat 2026-10-25 00:13:54 +08:00
berce bfe74b8437 Logo: treat a "$" ending a line or the logo as a plain dollar (#2667)
Fixes #2666
2026-10-23 02:28:06 -05:00
Carter Li bbb92543b0 Display (Wayland): uses DisplayConfig on GNOME if available 2026-10-17 10:23:13 +08:00
UnixUserDev 99785f54dd Logo (Builtin): add Tiny Core Linux (#2655)
* Logo (Builtin): add Tiny Core Linux

* Logo (Builtin): use only the TinyCore name for Tiny Core

---------

Co-authored-by: UnixUserDev <172555708+UnixUserDev@users.noreply.github.com>
2026-10-16 16:41:12 +08:00
Carter Li 17bb3fd238 CI (macOS): optimises benchmark charts 2.70.0 2026-10-14 15:28:42 +08:00
Carter Li 1d8bbeb89f CI (macOS / Windows): reduces deps; builds universal darwin binary 2026-10-14 14:06:54 +08:00
Carter Li 939bfbb844 Merge pull request #2652 from fastfetch-cli/dev
Release v2.70.0
2026-10-14 10:42:20 +08:00
Carter Li fdd4a60d9d Packages (macOS): tidy [ci skip] 2026-10-14 10:37:58 +08:00
Carter Li 6eb3a8148b Packages (macOS): falls back to pkgsrc's standard package database path
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-10-13 21:35:50 -05:00
Carter Li 4f6a329ea3 Gamepad (Windows): ensures cancelled read completion is fully awaited
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-10-13 21:29:52 -05:00
Carter Li cb73fdcfc9 CI (macOS): installs the latest MacPorts release 2026-10-13 23:53:53 +08:00
Carter Li 8a0c1d2f6c Wifi (Android): fixes Android 17 support
Fixes the Wifi transmit link speed being read from a field a vendor writes in front of it, rather than from the transmit speed itself
2026-10-13 20:53:11 +08:00
Carter Li 2aa053a904 Sound (Android): adds new bluetooth device type
the Bluetooth LE hearing aid, the two Bluetooth peripheral-mode paths and the proxy endpoint.
2026-10-13 20:47:58 +08:00
Carter Li a9ee641bd6 Display (Android): fixes Android display detection reporting nothing on Android 11 2026-10-13 19:20:51 +08:00
李通洲 f93ffed57a Disk: fix Windows quota affecting free space and unify disk size calculation
- Windows: use FILE_FS_FULL_SIZE_INFORMATION_EX on Windows 10 1809+ (Build >= 17763) when calcType != AVAILABLE to get ActualTotalAllocationUnits/ActualAvailableAllocationUnits (ignoring per-user disk quotas). Fall back to legacy FILE_FS_FULL_SIZE_INFORMATION with CallerAvailableAllocationUnits when calcType is AVAILABLE or EX is unavailable.
- Unix-like: respect --disk-calc-type. Use f_bfree for FREE, f_bavail for AVAILABLE (Linux/BSD/SunOS). Haiku currently always uses free_blocks.
- Refactor FFDisk: remove bytesUsed and bytesAvailable; compute used = total - free in disk module.
- Disk module: update custom format (remove `size-available`, add `bytes-used` and `bytes-total`); update JSON output (remove `bytes.available`, `bytes.used`).
- Disk detection: stop computing used in common path; let each platform set bytesFree by chosen semantics.

Fixes #2651
2026-10-13 15:35:12 +08:00
Carter Li 73ebe95120 GPU (Pci): hardens the parser; adds tests 2026-10-13 09:17:26 +08:00
Carter Li b7bc8ca99d Display (Android): adds cmd display get-displays back
and updates changelog
2026-10-12 14:40:09 +08:00
Carter Li 1bab113d25 Display (Android): be compatible with Android 17 2026-10-12 14:20:21 +08:00
Carter Li 3b042d26ab Sound (Linux): adds ALSA backend as a fallback 2026-10-12 00:22:02 +08:00
Carter Li 29567e1674 Chore: eliminates compiler warnings 2026-10-11 23:54:08 +08:00
Carter Li 1e8b4eb974 Gamepad (Windows): tidy 2026-10-11 14:53:32 +08:00
Carter Li 3453de61f8 CI (Android): tries to fix building 2026-10-11 11:37:48 +08:00
Carter Li ad1d12ed38 Terminal (Android): reports real app display name instead of hard coding Termux 2026-10-11 10:42:42 +08:00
Carter Li ab6ec4c3f5 Media (Android): adds app uid support 2026-10-11 10:42:41 +08:00
İhsan Deniz 3ccaf2d7dd L10n (TR): proofreads Turkish module names (#2648)
- Host: "Ana Bilgisayar" -> "Cihaz". The module reports the machine
  model; "ana bilgisayar" reads as a mainframe in Turkish.
- Login Manager: "Oturum Açma Yöneticisi" -> "Giriş Yöneticisi".
  Shorter, and the common Turkish term.
- Top: "En yoğun işlemler" -> "En Yoğun Süreçler". Title case like the
  other Turkish names, and "Süreçler" to match the Processes module.
- Bluetooth Radio: "Bluetooth Radyosu" -> "Bluetooth Adaptörü". "Radyo"
  reads as an FM radio; "Adaptör" matches Power Adapter ("Güç Adaptörü").

Related to #2526
2026-10-11 07:50:31 +08:00
Carter Li 1f32e0bcb2 Display (Android): removes old detection methods 2026-10-11 00:44:15 +08:00
Carter Li d7b66c8677 Common (Android): unifies dex parsers 2026-10-10 23:55:38 +08:00
Carter Li 7f9faeb720 Display (Android): detects via binder 2026-10-10 22:57:48 +08:00
Carter Li cc435d2b70 Platform (OpenBSD): uses getexecpath(3) if available
Fixes https://github.com/fastfetch-cli/fastfetch/issues/2195#issuecomment-6095513342
2026-10-10 18:33:09 +08:00
Carter Li e0361fdcf6 Doc: updates changelog 2026-10-10 16:32:41 +08:00
Carter Li 124f474f81 Media (macOS): don't spawn child process 2026-10-10 16:32:09 +08:00
Carter Li 068d86ef13 Sound (Linux): updates comments 2026-10-10 15:44:04 +08:00
Carter Li 10d6b3a3d7 Display: fixes missing a lang option 2026-10-10 15:43:38 +08:00
Carter Li 62617a35de Common (Debug): fixes possible errno lost 2026-10-10 15:43:20 +08:00
Carter Li 10379d600d Packages (Linux): hardens getdents64 usage 2026-10-10 15:42:41 +08:00
Carter Li de414b7250 Common (Zlib): don't #define Z_LARGE64 2026-10-10 15:41:07 +08:00
Carter Li be51ba9f15 command not found 2026-10-10 15:40:29 +08:00
Carter Li 132e69b580 Percent: clamps bar width to 0% ~ 100% 2026-10-10 14:00:30 +08:00