{ lib , stdenv , fetchFromGitHub , chafa , cmake , darwin , dbus , dconf , ddcutil , glib , imagemagick_light , libglvnd , libpulseaudio , libxcb , libXrandr , makeBinaryWrapper , networkmanager , nix-update-script , ocl-icd , opencl-headers , pciutils , pkg-config , rpm , sqlite , testers , vulkan-loader , wayland , xfce , yyjson , zlib }: stdenv.mkDerivation (finalAttrs: { pname = "fastfetch"; version = "2.5.0"; src = fetchFromGitHub { owner = "fastfetch-cli"; repo = "fastfetch"; rev = finalAttrs.version; hash = "sha256-W/6Ye7IJi46SKPY9gnvHNRYwTwxGCJ6oY3KVPzcFvNM="; }; nativeBuildInputs = [ cmake makeBinaryWrapper pkg-config ]; buildInputs = [ chafa imagemagick_light sqlite yyjson ] ++ lib.optionals stdenv.isLinux [ dbus dconf ddcutil glib libglvnd libpulseaudio libxcb libXrandr networkmanager ocl-icd opencl-headers pciutils rpm vulkan-loader wayland xfce.xfconf zlib ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Apple80211 AppKit Cocoa CoreDisplay CoreVideo CoreWLAN DisplayServices IOBluetooth MediaRemote OpenCL SystemConfiguration darwin.moltenvk ]); cmakeFlags = [ "-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc" "-DENABLE_SYSTEM_YYJSON=YES" ]; env.NIX_CFLAGS_COMPILE = toString [ # Needed with GCC 12 "-Wno-error=uninitialized" ]; postInstall = '' wrapProgram $out/bin/fastfetch \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}" wrapProgram $out/bin/flashfetch \ --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath finalAttrs.buildInputs}" ''; passthru = { updateScript = nix-update-script { }; tests.version = testers.testVersion { package = finalAttrs.finalPackage; command = "fastfetch -v | cut -d '(' -f 1"; version = "fastfetch ${finalAttrs.version}"; }; }; meta = { description = "Like neofetch, but much faster because written in C"; homepage = "https://github.com/fastfetch-cli/fastfetch"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ gerg-l khaneliman federicoschonborn ]; platforms = lib.platforms.all; mainProgram = "fastfetch"; }; })