fastfetch
fastfetch copied to clipboard
[FEAT] Adding the "installed apps" count
Description
Hi!
I believe it would be beneficial to include the number of apps installed on macOS and Windows in Fastfetch.
This could be implemented through a new module (e.g., Apps or Applications) or as an option in the custom format within Packages.
Motivation
In my personal use case, the Command module is sufficient for retrieving the number of installed apps.
However, I think that many macOS and Windows users install applications instead of packages (or a combination of both) but they may not know how to write that specific command.
Therefore, it might be more user-friendly to incorporate this functionality as a native feature in Fastfetch.
Additional context
If useful, here is my configuration with the command I use to retrieve the number of apps on macOS (total installed apps, user installed apps and system apps):
{
"type": "command",
"key": “Apps",
"text": "user_apps=$(($(ls /Applications | grep '\\.app$' | wc -l) - 1)); system_apps=$(($(ls /System/Applications | grep '\\.app$' | wc -l) - 1 + $(ls /System/Applications/Utilities | grep '\\.app$' | wc -l) - 1)); total=$(($user_apps + $system_apps)); echo \"Total: $total - User: $user_apps - System: $system_apps\""
},
I still haven’t found a polished command for Windows but I can share my attempts if needed.
Thank you for considering my suggestion.
Just to clarify, I’m not the author of the software, and this comment doesn’t reflect the author’s opinions.
I’m a bit confused about how you define “an application.” For instance, in the context of Linux, would Python be considered an application? Many users don’t use Python and might not even know it exists, yet it’s often installed as a dependency for various system components. And what about .NET? The full .NET SDK installation includes NuGet and other components. Would you consider .NET as one application or multiple?
Additionally, in Windows, there are many “portable” applications, which don’t leave any traces in the registry or similar locations. If you’re simply counting .exe files, would UnityCrashHandler64.exe qualify as a separate application?
If no consensus is reached on these questions, it’s likely that this feature will face challenges in being integrated into the software’s main branch.
I’m a bit confused about how you define “an application.”
Hi @gdr2333, thank you for your reply. No worries, I'll clarify my previous post.
For instance, in the context of Linux, would Python be considered an application?
As I mentioned in the issue, I considered this addition only for Windows and macOS, since Linux already has the Packages module.
Additionally, in Windows, there are many “portable” applications, which don’t leave any traces in the registry or similar locations. If you’re simply counting .exe files, would UnityCrashHandler64.exe qualify as a separate application?
You're right, defining what an "application" is on Windows could be tricky. I'll summarize my thoughts on that in the next comment
If no consensus is reached on these questions, it’s likely that this feature will face challenges in being integrated into the software’s main branch
Yes, I agree with you. However, in my opinion, this problem only regards what we consider an app on Windows. On macOS, the command I posted already categorizes apps divided in Total apps, User apps and System apps.
I'll summarize my thoughts on that in the next comment
In my opinion, the command winget list is the best way to find the number of installed apps on Windows. Despite its name, it lists both user and system apps, not just those installed using WinGet. Additionally, it can be customized, for example: (winget list | Where-Object {$_ -notmatch '---'} | Measure-Object).Count
However, the problem is that winget list is not available on older versions of Windows. There are other commands that could be used on these older versions, such as wmic, but I haven’t tested them yet.
And what about .NET?
As far as I know, .NET is listed in winget list, but its components are not. In my opinion, it’s fair that they are excluded from the count.
Additionally, in Windows, there are many “portable” applications
As far as I know, portable apps are not counted by the winget list command. As before, for me it’s fair that they are excluded from the count.
would UnityCrashHandler64.exe qualify as a separate application?
To be honest, I don’t know because I haven’t installed it on my computer. However, if you have it, you can try running winget list to see if it appears on the list.
I must emphasize again: I am not the project maintainer, merely an ordinary user interested in discussing issues. My opinions do not reflect the stance of the project maintainer.
'winget list'
You’ve frequently referred to the “winget list” command, but have you closely examined its output? During my testing, I observed nothing but a series of nonsensical results, including numerous versions of WindowsAppRuntime, Microsoft.UI.Xaml, and Microsoft Visual C++ Redistributable, which are typically not regarded as “applications”. Moreover, even for genuine applications, it frequently provides erroneous information, such as listing WinRAR twice. Currently, the output of “winget list” is utterly preposterous.
result of run "winget list" on my PC
PS C:\Users\df105> winget list
名称 ID 版本 可用 源
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
OpenWebStart 1.11.0 karakun.OpenWebStart 1.11.0 1.11.1 winget
AMD Software ARP\Machine\X64\AMD Catalyst Install Manager 25.3.1
CPUID CPU-Z MSI 2.11 CPUID.CPU-Z.MSI 2.11 winget
Clash Verge ClashVergeRev.ClashVergeRev 2.1.2 2.2.0 winget
CrystalDiskInfo 9.5.0 Shizuku Edition CrystalDewWorld.CrystalDiskInfo.ShizukuEdition 9.5.0 9.6.3 winget
米哈游启动器 ARP\Machine\X64\HYP_1_1_cn 1.4.5.222
HexChat HexChat.HexChat 2.16.2 winget
SQLiteStudio PawelSalawa.SQLiteStudio 3.4.15 3.4.17 winget
铁路调度模拟器 ARP\Machine\X64\Steam App 1124180 Unknown
3DMark Demo ARP\Machine\X64\Steam App 231350 Unknown
轰炸机小队 / Bomber Crew ARP\Machine\X64\Steam App 537800 Unknown
PUBG: BATTLEGROUNDS ARP\Machine\X64\Steam App 578080 Unknown
WinRAR 7.01 (64-位) RARLab.WinRAR 7.01.0 7.10.0 winget
VMware Workstation ARP\Machine\X64\{1D6AA927-3BE5-4104-BA3D-78382FDFF732} 17.6.2
Microsoft System CLR Types for SQL Server 2019 Microsoft.CLRTypesSQLServer.2019 15.0.2000.5 winget
Oracle VirtualBox 7.1.6 ARP\Machine\X64\{3ED540DA-427F-45F4-9ECE-5D524DC6F3B4} 7.1.6
LibreOffice 24.8.5.2 TheDocumentFoundation.LibreOffice 24.8.5.2 25.2.1.2 winget
Microsoft .NET SDK 9.0.201 (x64) from Visual Studio ARP\Machine\X64\{5955FA1F-F977-433A-9B54-44B11E8F8F02} 9.2.125.11329
Microsoft Visual Studio Installer ARP\Machine\X64\{6F320B93-EE3C-4826-85E0-ADF79F8D4C61} 3.13.2069.59209
Java 8 Update 441 (64-bit) Oracle.JavaRuntimeEnvironment 8.0.4410.7 winget
Microsoft Build of OpenJDK 21.0.5+11 (x64) Microsoft.OpenJDK.21 21.0.5.11 21.0.6.7 winget
AMD Install Manager ARP\Machine\X64\{82C961AD-0D2D-4332-A8E2-930323200693} 24.30.25062.1008
Microsoft Web Deploy 4.0 Microsoft.WebDeploy 10.0.8305 winget
Intel(R) Serial IO ARP\Machine\X64\{9FD91C5C-44AE-4D9D-85BE-AE52816B0294} 30.100.2131.26
ILSpy icsharpcode.ILSpy 9.0.0.7889 winget
IIS 10.0 Express ARP\Machine\X64\{A43F6F96-4CED-4152-8086-AF954755E324} 10.0.08608
Paradox Launcher v2 ParadoxInteractive.ParadoxLauncher 2.4.0 winget
Eclipse Temurin JDK with Hotspot 8u442-b06 (x64) EclipseAdoptium.Temurin.8.JDK 8.0.442.6 winget
Microsoft SQL Server 2019 LocalDB ARP\Machine\X64\{E5B3A478-C4C3-49E3-8384-A12D4B2008D4} 15.0.4382.1
Microsoft ODBC Driver 17 for SQL Server Microsoft.msodbcsql.17 17.10.6.1 winget
UBOAT ARP\Machine\X86\1771607985_is1 2025.1 Patch 12
AIDA64 Extreme v7.50 FinalWire.AIDA64.Extreme 7.50 winget
Microsoft Edge Microsoft.Edge 134.0.3124.72 winget
OBS Studio OBSProject.OBSStudio 31.0.1 31.0.2 winget
3DM网游加速器(计时版) ARP\Machine\X86\PaoFu 2.1.1.16
QQ Tencent.QQ.NT 9.9.17.31363 9.9.18.33139 winget
Steam Valve.Steam 2.10.91.91 winget
ToDesk Youqu.ToDesk 4.7.6.2 winget
微信 Tencent.WeChat 3.9.12.45 3.9.12.51 winget
Visual Studio Community 2022 Microsoft.VisualStudio.2022.Community 17.13.4 winget
Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.30501 Microsoft.VCRedist.2013.x64 12.0.30501.0 12.0.40664.0 winget
Futuremark SystemInfo ARP\Machine\X86\{0BFC20B6-E798-4B48-A461-F30F0632E9E6} 5.79.1331.0
MSI Center SDK ARP\Machine\X86\{15289038-41BE-48F8-B8B9-0B1021D3089E}}_is1 3.2025.0116.01
vs_CoreEditorFonts ARP\Machine\X86\{1851460E-0E63-4117-B5BA-25A2F045801B} 17.7.40001
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030 Microsoft.VCRedist.2012.x86 11.0.61030.0 winget
Win32DiskImager version 1.0.0 Win32diskimager.win32diskimager 1.0.0 winget
Windows Software Development Kit - Windows 10.0.22621.3233 ARP\Machine\X86\{71684ad3-afc2-4a65-9d45-92ef58510f18} 10.1.22621.3233
GOG GALAXY GOG.Galaxy 2.0.80.33 winget
Microsoft Visual C++ 2015-2022 Redistributable (x64) - 14.42.34433 Microsoft.VCRedist.2015+.x64 14.42.34433.0 14.42.34438.0 winget
Realtek Ethernet Controller Driver ARP\Machine\X86\{8833FFB6-5B0C-4764-81AA-06DFEED9A476} 10.73.815.2024
TechPowerUp GPU-Z TechPowerUp.GPU-Z 2.62.0 2.64.0 winget
Realtek Audio Driver ARP\Machine\X86\{F132AF7F-7BCA-4EDE-8A7C-958108FE7DBC} 6.0.9768.1
Windows SDK AddOn ARP\Machine\X86\{F1E37C98-16B7-421F-BA33-6C5B5400012A} 10.1.0.0
图吧工具箱 SunlightStudio.TBTool 2025.02 winget
Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.61030 Microsoft.VCRedist.2012.x64 11.0.61030.0 winget
Microsoft Visual C++ 2015-2022 Redistributable (x86) - 14.42.34433 Microsoft.VCRedist.2015+.x86 14.42.34433.0 14.42.34438.0 winget
Intel(R) Chipset Device Software ARP\Machine\X86\{f48aa9ec-42b9-428a-8536-42b3a4b738c8} 10.1.19627.8423
Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.30501 Microsoft.VCRedist.2013.x86 12.0.30501.0 12.0.40664.0 winget
百度网盘 Baidu.BaiduNetdisk 7.52.0 7.53.5 winget
网易云音乐 ARP\Machine\X86\网易云音乐 3.1.6.203607
World of Tanks Blitz ARP\User\X64\1290797664 Unknown
World_of_Warships ARP\User\X64\1461564088 Unknown
World_of_Warplanes ARP\User\X64\645401476 Unknown
World of Tanks ASIA ARP\User\X64\97807011 Unknown
Microsoft OneDrive Microsoft.OneDrive 25.035.0223.0003 winget
Postman x86_64 11.28.4 Postman.Postman 11.28.4 11.37.5 winget
Wargaming.net Game Center Wargaming.GameCenter 25.0.0.8530 winget
obs-browser-plus 3.23.9 ARP\User\X64\obsbrowserplus 3.23.9
War Thunder Launcher 1.0.3.446 GaijinNetwork.WarThunder Unknown 1.0.3.438 winget
BaiduNetdiskService MSIX\3AD8A913.49937325EFC59_1.0.15.0_x64__j4r74wbqry4cc 1.0.15.0
MSI Center MSIX\9426MICRO-STARINTERNATION.MSICenter_2.0.50.0_x64__kzh… 2.0.50.0
MSI Game Bar MSIX\9426MICRO-STARINTERNATION.MSIGameBar_3.0.10.0_x64__kz… 3.0.10.0
AMD Radeon Software MSIX\AdvancedMicroDevicesInc-RSXCM_22.10.0.0_x64__v2es6h43… 22.10.0.0
百度网盘 MSIX\BaiduNetdisk.DesktopSyncClient_7.17.5.6_neutral__r5kx… 7.17.5.6
Microsoft Clipchamp MSIX\Clipchamp.Clipchamp_4.0.10820.0_x64__yxz26nhyzhsrt 4.0.10820.0
AV1 Video Extension MSIX\Microsoft.AV1VideoExtension_1.3.4.0_x64__8wekyb3d8bbwe 1.3.4.0
AVC 编码器视频扩展 MSIX\Microsoft.AVCEncoderVideoExtension_1.1.13.0_x64__8wek… 1.1.13.0
Windows 应用程序兼容性增强 MSIX\Microsoft.ApplicationCompatibilityEnhancements_1.2411… 1.2411.16.0
资讯 MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bbwe 4.55.62231.0
Microsoft 必应 MSIX\Microsoft.BingSearch_1.1.34.0_x64__8wekyb3d8bbwe 1.1.34.0
MSN 天气 MSIX\Microsoft.BingWeather_4.54.63007.0_x64__8wekyb3d8bbwe 4.54.63007.0
应用安装程序 Microsoft.AppInstaller 1.25.340.0 winget
Xbox MSIX\Microsoft.GamingApp_2502.1001.6.0_x64__8wekyb3d8bbwe 2502.1001.6.0
获取帮助 MSIX\Microsoft.GetHelp_10.2409.22951.0_x64__8wekyb3d8bbwe 10.2409.22951.0
HEIF Image Extensions MSIX\Microsoft.HEIFImageExtension_1.2.3.0_x64__8wekyb3d8bb… 1.2.3.0
来自设备制造商的 HEVC 视频扩展 MSIX\Microsoft.HEVCVideoExtension_2.2.9.0_x64__8wekyb3d8bb… 2.2.9.0
English (United States) Local Experience Pack MSIX\Microsoft.LanguageExperiencePacken-US_26100.20.23.0_n… 26100.20.23.0
中文(简体)本地体验包 MSIX\Microsoft.LanguageExperiencePackzh-CN_26100.18.39.0_n… 26100.18.39.0
MPEG-2 视频扩展 MSIX\Microsoft.MPEG2VideoExtension_1.0.61931.0_x64__8wekyb… 1.0.61931.0
Microsoft Edge MSIX\Microsoft.MicrosoftEdge.Stable_132.0.2957.115_neutral… 132.0.2957.115
Microsoft 365 Copilot MSIX\Microsoft.MicrosoftOfficeHub_18.2503.1122.0_x64__8wek… 18.2503.1122.0
Solitaire & Casual Games MSIX\Microsoft.MicrosoftSolitaireCollection_4.21.12110.0_x… 4.21.12110.0
Microsoft 便笺 MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8wekyb… 4.0.6104.0
Microsoft .Net Native Framework Package 1.7 MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x64__8… 1.7.27413.0
Microsoft .Net Native Framework Package 1.7 MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x86__8… 1.7.27413.0
Microsoft .Net Native Framework Package 2.2 MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8… 2.2.29512.0
Microsoft .Net Native Framework Package 2.2 MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x86__8… 2.2.29512.0
Microsoft .Net Native Runtime Package 1.7 MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64__8we… 1.7.27422.0
Microsoft .Net Native Runtime Package 1.7 MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86__8we… 1.7.27422.0
Microsoft .Net Native Runtime Package 2.2 MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8we… 2.2.28604.0
Microsoft .Net Native Runtime Package 2.2 MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86__8we… 2.2.28604.0
OneDrive MSIX\Microsoft.OneDriveSync_25035.223.3.0_neutral__8wekyb3… 25035.223.3.0
Outlook for Windows MSIX\Microsoft.OutlookForWindows_1.2025.117.600_x64__8weky… 1.2025.117.600
画图 MSIX\Microsoft.Paint_11.2412.311.0_x64__8wekyb3d8bbwe 11.2412.311.0
Power Automate MSIX\Microsoft.PowerAutomateDesktop_1.0.1394.0_x64__8wekyb… 1.0.1394.0
Raw Image Extension MSIX\Microsoft.RawImageExtension_2.5.3.0_x64__8wekyb3d8bbwe 2.5.3.0
截图工具 MSIX\Microsoft.ScreenSketch_11.2501.7.0_x64__8wekyb3d8bbwe 11.2501.7.0
Windows 安全中心 MSIX\Microsoft.SecHealthUI_1000.27703.1006.0_x64__8wekyb3d… 1000.27703.1006…
Microsoft Engagement Framework MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0_x64_… 10.0.23012.0
Microsoft Engagement Framework MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0_x86_… 10.0.23012.0
Microsoft Store 体验主机 MSIX\Microsoft.StorePurchaseApp_22411.1401.1.0_x64__8wekyb… 22411.1401.1.0
Microsoft To Do MSIX\Microsoft.Todos_0.114.7122.0_x64__8wekyb3d8bbwe 0.114.7122.0
Microsoft.UI.Xaml.2.7 Microsoft.UI.Xaml.2.7 7.2409.9001.0 winget
Microsoft.UI.Xaml.2.7 Microsoft.UI.Xaml.2.7 7.2409.9001.0 winget
Microsoft.UI.Xaml.2.8 Microsoft.UI.Xaml.2.8 8.2501.31001.0 winget
Microsoft.UI.Xaml.2.8 Microsoft.UI.Xaml.2.8 8.2501.31001.0 winget
Microsoft Visual C++ 2015 UWP Desktop Runtime Package Microsoft.VCLibs.Desktop.14 14.0.33728.0 winget
Microsoft Visual C++ 2015 UWP Desktop Runtime Package Microsoft.VCLibs.Desktop.14 14.0.33728.0 winget
Microsoft Visual C++ 2015 UWP Runtime Package MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bb… 14.0.33519.0
Microsoft Visual C++ 2015 UWP Runtime Package MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb3d8bb… 14.0.33519.0
VP9 Video Extensions MSIX\Microsoft.VP9VideoExtensions_1.2.2.0_x64__8wekyb3d8bb… 1.2.2.0
Web 媒体扩展 MSIX\Microsoft.WebMediaExtensions_1.1.1295.0_x64__8wekyb3d… 1.1.1295.0
Webp Image Extensions MSIX\Microsoft.WebpImageExtension_1.1.1711.0_x64__8wekyb3d… 1.1.1711.0
Widgets Platform Runtime MSIX\Microsoft.WidgetsPlatformRuntime_1.6.2.0_x64__8wekyb3… 1.6.2.0
Dev Home Microsoft.DevHome 0.0.0.0 0.2001.758.0 winget
Microsoft 照片 MSIX\Microsoft.Windows.Photos_2025.11020.11001.0_x64__8wek… 2025.11020.1100…
Windows 时钟 MSIX\Microsoft.WindowsAlarms_1.0.211.0_x64__8wekyb3d8bbwe 1.0.211.0
WindowsAppRuntime.1.1 MSIX\Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x64__… 1005.616.1651.0
WindowsAppRuntime.1.1 MSIX\Microsoft.WindowsAppRuntime.1.1_1005.616.1651.0_x86__… 1005.616.1651.0
WindowsAppRuntime.1.4 MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0_x64_… 4000.1309.2056.0
WindowsAppRuntime.1.4 MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0_x86_… 4000.1309.2056.0
WindowsAppRuntime.1.5 MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_x64__… 5001.373.1736.0
WindowsAppRuntime.1.5 MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_x86__… 5001.373.1736.0
WindowsAppRuntime.1.6 MSIX\Microsoft.WindowsAppRuntime.1.6_6000.373.1641.0_x64__… 6000.373.1641.0
WindowsAppRuntime.1.6 MSIX\Microsoft.WindowsAppRuntime.1.6_6000.401.2352.0_x64__… 6000.401.2352.0
WindowsAppRuntime.1.6 MSIX\Microsoft.WindowsAppRuntime.1.6_6000.424.1611.0_x64__… 6000.424.1611.0
WindowsAppRuntime.1.6 MSIX\Microsoft.WindowsAppRuntime.1.6_6000.424.1611.0_x86__… 6000.424.1611.0
Windows 计算器 MSIX\Microsoft.WindowsCalculator_11.2501.1.0_x64__8wekyb3d… 11.2501.1.0
Windows 相机 MSIX\Microsoft.WindowsCamera_2025.2501.1.0_x64__8wekyb3d8b… 2025.2501.1.0
反馈中心 MSIX\Microsoft.WindowsFeedbackHub_1.2411.17101.0_x64__8wek… 1.2411.17101.0
Windows 记事本 MSIX\Microsoft.WindowsNotepad_11.2412.16.0_x64__8wekyb3d8b… 11.2412.16.0
Windows 录音机 MSIX\Microsoft.WindowsSoundRecorder_1.0.80.0_x64__8wekyb3d… 1.0.80.0
Microsoft Store MSIX\Microsoft.WindowsStore_22502.1401.4.0_x64__8wekyb3d8b… 22502.1401.4.0
Windows 终端 Microsoft.WindowsTerminal 1.21.10351.0 1.22.10352.0 winget
Windows Package Manager Source (winget) V2 MSIX\Microsoft.Winget.Source_2025.322.1407.10_neutral__8we… 2025.322.1407.10
Xbox TCUI MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8bbwe 1.24.10001.0
Game Bar MSIX\Microsoft.XboxGamingOverlay_7.225.2131.0_x64__8wekyb3… 7.225.2131.0
Xbox Identity Provider MSIX\Microsoft.XboxIdentityProvider_12.115.1001.0_x64__8we… 12.115.1001.0
Game Speech Window MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x64__8… 1.97.17002.0
手机连接 MSIX\Microsoft.YourPhone_1.25021.67.0_x64__8wekyb3d8bbwe 1.25021.67.0
Windows 媒体播放器 MSIX\Microsoft.ZuneMusic_11.2501.9.0_x64__8wekyb3d8bbwe 11.2501.9.0
Microsoft Family MSIX\MicrosoftCorporationII.MicrosoftFamily_0.2.40.0_x64__… 0.2.40.0
快速助手 MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64__8wek… 2.0.29.0
Windows Web Experience Pack MSIX\MicrosoftWindows.Client.WebExperience_525.1301.30.0_x… 525.1301.30.0
跨设备体验主机 MSIX\MicrosoftWindows.CrossDevice_1.25021.28.0_x64__cw5n1h… 1.25021.28.0
Realtek Audio Control MSIX\RealtekSemiconductorCorp.RealtekAudioControl_1.52.354… 1.52.354.0
WinRAR MSIX\WinRAR.ShellExtension_1.0.0.2_x64__d9ma7nkbkv4rp 1.0.0.2
PS C:\Users\df105>
I still haven’t found a polished command for Windows but I can share my attempts if needed
As mentioned in my original post, I already noticed that winget list command was not polished enough; this is why I didn't add a specific Windows command (only a macOS command).
Anyway, my winget list output is not as nonsensical as yours, but it contains some problems, too.
I think these are the main alternatives:
- Trying to polish the
winget listcommand (for example, excluding the names of specific entries that shouldn't be considered "apps" and excluding duplicates) - Finding a different (and better) command than
winget list - Adding only the macOS command and not the Windows command
- Not adding anything
I refined the macOS command and now I think it’s better and more reliable. I also have a few doubts and potential issues to share.
Refinements
The previous command counted applications installed by the user (in /Applications) and system apps (in /System/Applications and /System/Applications/Utilities), then summed the two to get the total.
That method left too many exceptions, such as:
- Safari (a system app) is stored in
/Applications; - Apps installed via package managers were inconsistent (e.g., Homebrew GUI casks were counted, MacPorts GUI apps were not);
- Some system apps are hidden from the user. On my machine, for example, News (not available in my country) and Boot Camp Assistant (not available on Apple Silicon) were still counted even if not visible.
So, my new proposal is to use a command that simply counts apps listed on Launchpad, where all GUI apps are listed by default. The new approach is less verbose, faster (~9 ms on my machine) and solves all the exceptions listed above.
Configuration
Previous approach:
{
"type": "command",
"key": "Apps",
"text": "USER_EXCLUDES='Safari.app'; SYSTEM_EXCLUDES='News.app|Boot Camp Assistant.app'; USER_APPS=$(find /Applications -maxdepth 1 -name '*.app' -prune | grep -v -E \"($USER_EXCLUDES)\" | wc -l | xargs); SYSTEM_APPS=$( (find /System/Applications -maxdepth 1 -name '*.app' -prune; find /System/Applications/Utilities -maxdepth 1 -name '*.app' -prune) | grep -v -E \"($SYSTEM_EXCLUDES)\" | wc -l | xargs); if [ -d /Applications/Safari.app ]; then SYSTEM_APPS=$((SYSTEM_APPS + 1)); fi; TOTAL=$((USER_APPS + SYSTEM_APPS)); echo \"Total: $TOTAL - User: $USER_APPS - System: $SYSTEM_APPS\""
},
// In my personal config I excluded News and Boot Camp Assistant for the reasons I described above
New approach:
{
"type": "command",
"key": "Apps",
"text": "sqlite3 \"$(echo /private$(getconf DARWIN_USER_DIR)/com.apple.dock.launchpad/db/db)\" \"SELECT COUNT(DISTINCT bundleid) FROM apps;\""
},
// In this config I’m not dividing the output in Total, User and System
Potential issues
-
I tested successfully on macOS 10.15 Catalina and macOS 15 Sequoia. It should therefore work from 10.15 onwards, but should still be checked on older macOS versions (if Fastfetch supports them) and on the upcoming macOS 26 Tahoe, where Apple is replacing Launchpad with “Apps”.
-
Installed apps not shown in Launchpad are not counted. This is rare and usually a user choice. For example, Steam games are only listed in Launchpad (and therefore counted) if the “Create an application shortcut” option is enabled during installation (enabled by default). Suggested approaches:
- Doing nothing: this is an edge case. If the command is integrated, it could be labeled “Launchpad apps” (or “Apps” on Tahoe), making it clear that only apps visible there are counted;
- Adding an option in Fastfetch’s custom format to also count apps that may not be listed in Launchpad (e.g., Steam games).
If someone has opinions or suggestions, please let me know :) I hope this command will be added to Fastfetch once all potential issues are solved. In particular, macOS 26 Tahoe needs further investigation (I’ll retest once it’s out of beta). If the command isn’t integrated into Fastfetch, I still hope this method will be useful for some users.
On the other hand, I still haven’t found a polished command for Windows.
winget listcould be refined by filtering out duplicates and entries that shouldn’t be considered “apps”. However, it only counts apps that WinGet detects — meaning that not all apps are included.(Get-StartApps).Counthas a cleaner output, but it only counts apps that are in the Start Menu folders (not just the Start Menu itself, I mean the directories called “Start Menu”). Not all apps are there, and sometimes it even counts entries that are not apps (e.g., links to webpages).
So, neither option is perfect. For my personal config file I’m using (Get-StartApps).Count, but I don’t think it’s polished enough to be added to Fastfetch. As for the macOS command, if someone has suggestions, please let me know :)