diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/pi/picom/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/pi/picom/package.nix | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/pi/picom/package.nix b/nixpkgs/pkgs/by-name/pi/picom/package.nix new file mode 100644 index 000000000000..bf197ab08f35 --- /dev/null +++ b/nixpkgs/pkgs/by-name/pi/picom/package.nix @@ -0,0 +1,120 @@ +{ asciidoc +, 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 +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "picom"; + version = "11.2"; + + src = fetchFromGitHub { + owner = "yshui"; + repo = "picom"; + rev = "v${finalAttrs.version}"; + hash = "sha256-7ohtI890CutwprPEY5njqWou0fD6T9eu51EBSQ2/lWs="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + asciidoc + docbook_xml_dtd_45 + docbook_xsl + makeWrapper + meson + ninja + pkg-config + uthash + ]; + + buildInputs = [ + dbus + libconfig + libdrm + libev + libGL + libepoxy + libX11 + libxcb + libxdg_basedir + libXext + libxml2 + libxslt + pcre2 + pixman + 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/ + ''; + + meta = with lib; { + description = "A fork of XCompMgr, a sample compositing manager for X servers"; + 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. + ''; + license = licenses.mit; + homepage = "https://github.com/yshui/picom"; + maintainers = with maintainers; [ ertes gepbird twey thiagokokada ]; + platforms = platforms.linux; + mainProgram = "picom"; + }; +}) |