dotfiles/nixos/overlays/fixup-imhex.nix
2024-11-07 16:25:41 -07:00

71 lines
2.3 KiB
Nix

#
# Make imghex start up on wayland.
# From: https://github.com/WerWolv/ImHex/issues/1788
#
{ ... }:
let
overlay = (
self: super: {
# Fixup glfw.
glfw = super.glfw.overrideAttrs (
finalAttrs: previousAttrs: with super; {
postPatch = lib.optionalString stdenv.isLinux ''
substituteInPlace src/wl_init.c \
--replace-fail "libxkbcommon.so.0" "${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0" \
--replace-fail "libdecor-0.so.0" "${lib.getLib libdecor}/lib/libdecor-0.so.0" \
--replace-fail "libwayland-client.so.0" "${lib.getLib wayland}/lib/libwayland-client.so.0" \
--replace-fail "libwayland-cursor.so.0" "${lib.getLib wayland}/lib/libwayland-cursor.so.0" \
--replace-fail "libwayland-egl.so.1" "${lib.getLib wayland}/lib/libwayland-egl.so.1"
'';
}
);
# Fixup imghex.
imhex = super.imhex.overrideAttrs (
finalAttrs: previousAttrs:
let
patterns_version = "1.35.3";
patterns_src = super.fetchFromGitHub {
owner = "WerWolv";
repo = "ImHex-Patterns";
rev = "ImHex-v${patterns_version}";
hash = "sha256-h86qoFMSP9ehsXJXOccUK9Mfqe+DVObfSRT4TCtK0rY=";
};
in
rec {
version = "1.35.3";
src = super.fetchFromGitHub {
fetchSubmodules = true;
owner = "WerWolv";
repo = previousAttrs.pname;
rev = "v${version}";
hash = "sha256-8vhOOHfg4D9B9yYgnGZBpcjAjuL4M4oHHax9ad5PJtA=";
};
nativeBuildInputs = with super; [
autoPatchelfHook
cmake
llvm
python3
perl
pkg-config
rsync
];
autoPatchelfIgnoreMissingDeps = [ "*.hexpluglib" ];
appendRunpaths = [
(super.lib.makeLibraryPath [ super.libGL ])
"${placeholder "out"}/lib/imhex/plugins"
];
postInstall = ''
mkdir -p $out/share/imhex
rsync -av --exclude="*_schema.json" ${patterns_src}/{constants,encodings,includes,magic,patterns} $out/share/imhex
'';
}
);
}
);
in
{
nixpkgs.overlays = [ overlay ];
}