compton.scm 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
  3. ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
  4. ;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
  5. ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
  6. ;;;
  7. ;;; This file is part of GNU Guix.
  8. ;;;
  9. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  10. ;;; under the terms of the GNU General Public License as published by
  11. ;;; the Free Software Foundation; either version 3 of the License, or (at
  12. ;;; your option) any later version.
  13. ;;;
  14. ;;; GNU Guix is distributed in the hope that it will be useful, but
  15. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. ;;; GNU General Public License for more details.
  18. ;;;
  19. ;;; You should have received a copy of the GNU General Public License
  20. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  21. (define-module (gnu packages compton)
  22. #:use-module ((guix licenses) #:prefix license:)
  23. #:use-module (guix packages)
  24. #:use-module (guix git-download)
  25. #:use-module (guix build-system gnu)
  26. #:use-module (guix build-system meson)
  27. #:use-module (gnu packages datastructures)
  28. #:use-module (gnu packages docbook)
  29. #:use-module (gnu packages documentation)
  30. #:use-module (gnu packages freedesktop)
  31. #:use-module (gnu packages gl)
  32. #:use-module (gnu packages glib)
  33. #:use-module (gnu packages libevent)
  34. #:use-module (gnu packages pcre)
  35. #:use-module (gnu packages pkg-config)
  36. #:use-module (gnu packages python)
  37. #:use-module (gnu packages textutils)
  38. #:use-module (gnu packages xdisorg)
  39. #:use-module (gnu packages xml)
  40. #:use-module (gnu packages xorg))
  41. (define-public compton
  42. (let ((upstream-version "0.1_beta2"))
  43. (package
  44. (name "compton")
  45. (version (string-filter (char-set-complement (char-set #\_))
  46. upstream-version))
  47. (source
  48. (origin
  49. (method git-fetch)
  50. (uri (git-reference
  51. (url "https://github.com/chjj/compton")
  52. (commit (string-append "v" upstream-version))))
  53. (sha256
  54. (base32
  55. "0v65viilhnd2xgvmdpzc1srxszcg8kj1vhi5gy9292j48w0s2fx1"))
  56. (file-name (git-file-name name version))))
  57. (build-system gnu-build-system)
  58. (inputs
  59. `(("dbus" ,dbus)
  60. ("libconfig" ,libconfig)
  61. ("libx11" ,libx11)
  62. ("libxcomposite" ,libxcomposite)
  63. ("libxdamage" ,libxdamage)
  64. ("libxext" ,libxext)
  65. ("libxfixes" ,libxfixes)
  66. ("libxinerama" ,libxinerama)
  67. ("libxrandr" ,libxrandr)
  68. ("libxrender" ,libxrender)
  69. ("mesa" ,mesa)
  70. ("xprop" ,xprop)
  71. ("xwininfo" ,xwininfo)))
  72. (native-inputs
  73. `(("asciidoc" ,asciidoc)
  74. ("libdrm" ,libdrm)
  75. ("pkg-config" ,pkg-config)
  76. ("python" ,python)
  77. ("xorgproto" ,xorgproto)))
  78. (arguments
  79. `(#:make-flags (list
  80. "CC=gcc"
  81. "NO_REGEX_PCRE=1" ; pcre makes build fail
  82. (string-append "PREFIX=" (assoc-ref %outputs "out")))
  83. #:tests? #f ; no tests
  84. #:phases
  85. (modify-phases %standard-phases
  86. (delete 'configure))))
  87. (home-page "https://github.com/chjj/compton")
  88. (synopsis "Compositor for X11")
  89. (description
  90. "Compton is a compositor for the Xorg display server and a for of
  91. xcompmgr-dana, which implements some changes like:
  92. @itemize
  93. @item OpenGL backend (@command{--backend glx}), in addition to the old X Render
  94. backend.
  95. @item Inactive window transparency (@command{-i}) and dimming
  96. (@command{--inactive-dim}).
  97. @item Menu transparency (@command{-m}, thanks to Dana).
  98. @item Shadows are now enabled for argb windows, e.g terminals with transparency
  99. @item Removed serverside shadows (and simple compositing) to clean the code,
  100. the only option that remains is clientside shadows.
  101. @item Configuration files (see the man page for more details).
  102. @item Colored shadows (@command{--shadow-[red/green/blue]}).
  103. @item A new fade system.
  104. @item VSync support (not always working).
  105. @item Blur of background of transparent windows, window color inversion (bad in
  106. performance).
  107. @item Some more options...
  108. @end itemize\n")
  109. (license license:expat))))
  110. (define-public picom
  111. (package
  112. (name "picom")
  113. (version "8.2")
  114. (source
  115. (origin
  116. (method git-fetch)
  117. (uri (git-reference
  118. (url "https://github.com/yshui/picom")
  119. (commit (string-append "v" version))))
  120. (sha256
  121. (base32
  122. "0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl"))
  123. (file-name (string-append "picom-" version))))
  124. (build-system meson-build-system)
  125. (inputs
  126. `(("dbus" ,dbus)
  127. ("libconfig" ,libconfig)
  128. ("libx11" ,libx11)
  129. ("libxext" ,libxext)
  130. ("libev" ,libev)
  131. ("mesa" ,mesa)
  132. ("xprop" ,xprop)
  133. ("xcb-util-renderutil" ,xcb-util-renderutil)
  134. ("xcb-util-image" ,xcb-util-image)
  135. ("pixman" ,pixman)
  136. ("uthash" ,uthash)
  137. ("libxdg-basedir" ,libxdg-basedir)
  138. ("pcre" ,pcre)))
  139. (native-inputs
  140. `(("asciidoc" ,asciidoc)
  141. ("pkg-config" ,pkg-config)
  142. ("xorgproto" ,xorgproto)))
  143. (arguments
  144. `(#:build-type "release"
  145. #:configure-flags '("-Dwith_docs=true")))
  146. (home-page "https://github.com/yshui/picom")
  147. (synopsis "Compositor for X11, forked from Compton")
  148. (description
  149. "Picom is a standalone compositor for Xorg, suitable for use
  150. with window managers that do not provide compositing.
  151. Picom is a fork of compton, which is a fork of xcompmgr-dana,
  152. which in turn is a fork of xcompmgr.")
  153. (license (list license:expat ; The original compton license.
  154. license:mpl2.0)))) ; License used by new picom files.