Files
nixpkgs/pkgs/by-name/pi/picom/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

141 lines
2.8 KiB
Nix

{
asciidoctor,
dbus,
docbook_xml_dtd_45,
docbook_xsl,
fetchFromGitHub,
lib,
libconfig,
libdrm,
libev,
libGL,
libepoxy,
libX11,
libxcb,
libxdg_basedir,
libXext,
libxml2,
libxslt,
makeWrapper,
meson,
ninja,
pcre2,
pixman,
pkg-config,
stdenv,
uthash,
xcbutil,
xcbutilimage,
xcbutilrenderutil,
xorgproto,
xwininfo,
withDebug ? false,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "picom";
version = "12.5";
src = fetchFromGitHub {
owner = "yshui";
repo = "picom";
tag = "v${finalAttrs.version}";
hash = "sha256-H8IbzzrzF1c63MXbw5mqoll3H+vgcSVpijrlSDNkc+o=";
fetchSubmodules = true;
};
strictDeps = true;
nativeBuildInputs = [
asciidoctor
docbook_xml_dtd_45
docbook_xsl
makeWrapper
meson
ninja
pkg-config
];
buildInputs = [
dbus
libconfig
libdrm
libev
libGL
libepoxy
libX11
libxcb
libxdg_basedir
libXext
libxml2
libxslt
pcre2
pixman
uthash
xcbutil
xcbutilimage
xcbutilrenderutil
xorgproto
];
# Use "debugoptimized" instead of "debug" so perhaps picom works better in
# normal usage too, not just temporary debugging.
mesonBuildType = if withDebug then "debugoptimized" else "release";
dontStrip = withDebug;
mesonFlags = [
"-Dwith_docs=true"
];
installFlags = [ "PREFIX=$(out)" ];
# In debug mode, also copy src directory to store. If you then run `gdb picom`
# in the bin directory of picom store path, gdb finds the source files.
postInstall = ''
wrapProgram $out/bin/picom-trans \
--prefix PATH : ${lib.makeBinPath [ xwininfo ]}
''
+ lib.optionalString withDebug ''
cp -r ../src $out/
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Fork of XCompMgr, a sample compositing manager for X servers";
license = lib.licenses.mit;
longDescription = ''
A fork of XCompMgr, which is a sample compositing manager for X
servers supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE
extensions. It enables basic eye-candy effects. This fork adds
additional features, such as additional effects, and a fork at a
well-defined and proper place.
The package can be installed in debug mode as:
picom.override { withDebug = true; }
For gdb to find the source files, you need to run gdb in the bin directory
of picom package in the nix store.
'';
homepage = "https://github.com/yshui/picom";
mainProgram = "picom";
maintainers = with lib.maintainers; [
gepbird
thiagokokada
twey
];
platforms = lib.platforms.linux;
};
})