diff --git a/pkgs/tools/misc/fastfetch/default.nix b/pkgs/tools/misc/fastfetch/default.nix new file mode 100644 index 000000000000..39250dfca49b --- /dev/null +++ b/pkgs/tools/misc/fastfetch/default.nix @@ -0,0 +1,123 @@ +{ lib +, stdenv +, fetchFromGitHub +, chafa +, cmake +, dbus +, dconf +, 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 +, zlib +, AppKit +, Cocoa +, CoreDisplay +, CoreVideo +, CoreWLAN +, DisplayServices +, Foundation +, IOBluetooth +, MediaRemote +, OpenCL +, moltenvk +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "fastfetch"; + version = "1.12.2"; + + src = fetchFromGitHub { + owner = "fastfetch-cli"; + repo = "fastfetch"; + rev = finalAttrs.version; + hash = "sha256-l9fIm7+dBsOqGoFUYtpYESAjDy3496rDTUDQjbNU4U0="; + }; + + nativeBuildInputs = [ + cmake + makeBinaryWrapper + pkg-config + ]; + + buildInputs = [ + chafa + imagemagick_light + sqlite + ] + ++ lib.optionals stdenv.isLinux [ + dbus + dconf + glib + libglvnd + libpulseaudio + libxcb + libXrandr + networkmanager + ocl-icd + opencl-headers + pciutils + rpm + vulkan-loader + wayland + xfce.xfconf + zlib + ] + ++ lib.optionals stdenv.isDarwin [ + AppKit + Cocoa + CoreDisplay + CoreVideo + CoreWLAN + DisplayServices + Foundation + IOBluetooth + MediaRemote + OpenCL + moltenvk + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_SYSCONFDIR=${placeholder "out"}/etc" + ]; + + 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"; + inherit (finalAttrs.src.meta) homepage; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ gerg-l khaneliman ]; + platforms = lib.platforms.all; + mainProgram = "fastfetch"; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cc48e816f647..5f936b3b9206 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1678,6 +1678,14 @@ with pkgs; etlegacy = callPackage ../games/etlegacy { lua = lua5_4; }; + fastfetch = darwin.apple_sdk_11_0.callPackage ../tools/misc/fastfetch { + inherit (darwin.apple_sdk_11_0.frameworks) + AppKit Cocoa CoreDisplay CoreVideo CoreWLAN DisplayServices + Foundation IOBluetooth MediaRemote OpenCL; + + inherit (darwin) moltenvk; + }; + fscan = callPackage ../tools/security/fscan { }; copier = callPackage ../tools/misc/copier { };