{ lib , rustPlatform , fetchFromGitHub , pkg-config , wrapGAppsHook4 , libadwaita , distrobox }: rustPlatform.buildRustPackage rec { pname = "boxbuddy"; version = "2.2.5"; src = fetchFromGitHub { owner = "Dvlv"; repo = "BoxBuddyRS"; rev = version; hash = "sha256-Dy7mSBraMHAno8cIk9f6/Ofsm2ZGSb7VS5Wy1o+ZoC8="; }; cargoHash = "sha256-NB93bw2mMCVmZWpxCJGusXp2DgotjrlHUlsd0mb+fBA="; # The software assumes it is installed either in flatpak or in the home directory # so the xdg data path needs to be patched here postPatch = '' substituteInPlace src/utils.rs \ --replace-fail '{data_home}/locale' "$out/share/locale" \ --replace-fail '{data_home}/icons/boxbuddy/{}' "$out/share/icons/boxbuddy/{}" ''; nativeBuildInputs = [ pkg-config wrapGAppsHook4 ]; buildInputs = [ libadwaita ]; postInstall = '' cp icons/* ./ XDG_DATA_HOME=$out/share INSTALL_DIR=$out ./scripts/install.sh ''; preFixup = '' gappsWrapperArgs+=( --prefix PATH : ${lib.makeBinPath [ distrobox ]} ) ''; doCheck = false; # No checks defined meta = with lib; { description = "Unofficial GUI for managing your Distroboxes, written with GTK4 + Libadwaita"; homepage = "https://dvlv.github.io/BoxBuddyRS"; license = licenses.mit; mainProgram = "boxbuddy-rs"; maintainers = with maintainers; [ aleksana ]; platforms = platforms.linux; }; }