xdisorg.scm 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
  3. ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
  4. ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
  5. ;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
  6. ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
  7. ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
  8. ;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
  9. ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
  10. ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
  11. ;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
  12. ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
  13. ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
  14. ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
  15. ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
  16. ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
  17. ;;; Copyright © 2016, 2017, 2019 Marius Bakke <mbakke@fastmail.com>
  18. ;;; Copyright © 2016 Petter <petter@mykolab.ch>
  19. ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
  20. ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
  21. ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
  22. ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
  23. ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
  24. ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
  25. ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
  26. ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
  27. ;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
  28. ;;;
  29. ;;; This file is part of GNU Guix.
  30. ;;;
  31. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  32. ;;; under the terms of the GNU General Public License as published by
  33. ;;; the Free Software Foundation; either version 3 of the License, or (at
  34. ;;; your option) any later version.
  35. ;;;
  36. ;;; GNU Guix is distributed in the hope that it will be useful, but
  37. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  38. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  39. ;;; GNU General Public License for more details.
  40. ;;;
  41. ;;; You should have received a copy of the GNU General Public License
  42. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  43. (define-module (gnu packages xdisorg)
  44. #:use-module ((guix licenses) #:prefix license:)
  45. #:use-module (guix packages)
  46. #:use-module (guix download)
  47. #:use-module (guix git-download)
  48. #:use-module (guix utils)
  49. #:use-module (guix build-system cmake)
  50. #:use-module (guix build-system gnu)
  51. #:use-module (guix build-system glib-or-gtk)
  52. #:use-module (guix build-system meson)
  53. #:use-module (guix build-system python)
  54. #:use-module (gnu packages)
  55. #:use-module (gnu packages documentation)
  56. #:use-module (gnu packages admin)
  57. #:use-module (gnu packages base)
  58. #:use-module (gnu packages algebra)
  59. #:use-module (gnu packages autotools)
  60. #:use-module (gnu packages check)
  61. #:use-module (gnu packages compression)
  62. #:use-module (gnu packages image)
  63. #:use-module (gnu packages pkg-config)
  64. #:use-module (gnu packages flex)
  65. #:use-module (gnu packages freedesktop)
  66. #:use-module (gnu packages gettext)
  67. #:use-module (gnu packages gl)
  68. #:use-module (gnu packages glib)
  69. #:use-module (gnu packages gnome)
  70. #:use-module (gnu packages icu4c)
  71. #:use-module (gnu packages maths)
  72. #:use-module (gnu packages m4)
  73. #:use-module (gnu packages ncurses)
  74. #:use-module (gnu packages perl)
  75. #:use-module (gnu packages python)
  76. #:use-module (gnu packages python-xyz)
  77. #:use-module (gnu packages linux)
  78. #:use-module (gnu packages gl)
  79. #:use-module (gnu packages guile)
  80. #:use-module (gnu packages xml)
  81. #:use-module (gnu packages gtk)
  82. #:use-module (gnu packages xorg)
  83. #:use-module (gnu packages bison)
  84. #:use-module (ice-9 match))
  85. ;; packages outside the x.org system proper
  86. (define-public arandr
  87. (package
  88. (name "arandr")
  89. (version "0.1.9")
  90. (source (origin
  91. (method url-fetch)
  92. (uri (string-append "http://christian.amsuess.com/tools/" name
  93. "/files/" name "-" version ".tar.gz"))
  94. (sha256
  95. (base32
  96. "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
  97. (modules '((guix build utils)))
  98. (snippet
  99. '(begin
  100. ;; Do not record a timestamp and file name in gzipped man
  101. ;; pages (this is equivalent to 'gzip --no-name'.)
  102. (substitute* "setup.py"
  103. (("gzip\\.open\\(gzfile, 'w', 9\\)")
  104. "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))
  105. #t))))
  106. (build-system python-build-system)
  107. (arguments
  108. `(#:python ,python-2 ;incompatible with python 3
  109. #:phases
  110. (modify-phases %standard-phases
  111. (add-before 'build 'configure
  112. (lambda* (#:key inputs #:allow-other-keys)
  113. (substitute* "screenlayout/xrandr.py"
  114. (("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr")
  115. "/bin/xrandr\"")))
  116. #t)))
  117. #:tests? #f)) ;no tests
  118. (inputs `(("pygtk" ,python2-pygtk)
  119. ("xrandr" ,xrandr)))
  120. (native-inputs `(("gettext" ,gettext-minimal)
  121. ("python-docutils" ,python2-docutils)))
  122. (home-page "https://christian.amsuess.com/tools/arandr/")
  123. (synopsis "Another RandR graphical user interface")
  124. ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
  125. (description "ARandR is designed to provide a simple visual front end for
  126. the X11 resize-and-rotate (RandR) extension. Relative monitor positions are
  127. shown graphically and can be changed in a drag-and-drop way. Configurations
  128. are saved as executable shell scripts which can be loaded without using this
  129. program.")
  130. (license license:gpl3+)))
  131. (define-public xclip
  132. (package
  133. (name "xclip")
  134. (version "0.13")
  135. (source
  136. (origin
  137. (method git-fetch)
  138. (uri (git-reference
  139. (url "https://github.com/astrand/xclip.git")
  140. (commit version)))
  141. (file-name (git-file-name name version))
  142. (sha256
  143. (base32
  144. "0q0hmvcjlv8arhh1pzhja2wglyj6n7z209jnpnzd281kqqv4czcs"))))
  145. (build-system gnu-build-system)
  146. (arguments
  147. '(#:tests? #f)) ;there is no test suite
  148. (native-inputs
  149. `(("autoconf" ,autoconf)
  150. ("automake" ,automake)))
  151. (inputs `(("libxmu" ,libxmu)
  152. ("libxt" ,libxt)))
  153. (home-page "https://github.com/astrand/xclip")
  154. (synopsis "Command line interface to X11 clipboard")
  155. (description "Xclip is a command line interface to the X11 clipboard. It
  156. can also be used for copying files, as an alternative to sftp/scp, thus
  157. avoiding password prompts when X11 forwarding has already been setup.")
  158. (license license:gpl2+)))
  159. (define-public libxkbcommon
  160. (package
  161. (name "libxkbcommon")
  162. (version "0.8.2")
  163. (source (origin
  164. (method url-fetch)
  165. (uri (string-append "https://xkbcommon.org/download/" name "-"
  166. version ".tar.xz"))
  167. (sha256
  168. (base32
  169. "136mdq11lrwg6rjmm44lmysxxgb9c35p4sq6k0cd129x82rw9f3s"))))
  170. (build-system gnu-build-system)
  171. (inputs
  172. `(("libx11" ,libx11)
  173. ("libxcb" ,libxcb)
  174. ("xkeyboard-config" ,xkeyboard-config)))
  175. (native-inputs
  176. `(("bison" ,bison)
  177. ("pkg-config" ,pkg-config)))
  178. (arguments
  179. `(#:configure-flags
  180. (list (string-append "--with-xkb-config-root="
  181. (assoc-ref %build-inputs "xkeyboard-config")
  182. "/share/X11/xkb")
  183. (string-append "--with-x-locale-root="
  184. (assoc-ref %build-inputs "libx11")
  185. "/share/X11/locale"))))
  186. (home-page "https://xkbcommon.org/")
  187. (synopsis "Library to handle keyboard descriptions")
  188. (description "Xkbcommon is a library to handle keyboard descriptions,
  189. including loading them from disk, parsing them and handling their
  190. state. It is mainly meant for client toolkits, window systems, and other
  191. system applications; currently that includes Wayland, kmscon, GTK+, Qt,
  192. Clutter, and more. Despite the name, it is not currently used by anything
  193. X11 (yet).")
  194. (license (license:x11-style "file://COPYING"
  195. "See 'COPYING' in the distribution."))))
  196. (define-public libfakekey
  197. (package
  198. (name "libfakekey")
  199. (version "0.1")
  200. (source
  201. (origin
  202. (method url-fetch)
  203. (uri (string-append "https://downloads.yoctoproject.org/releases"
  204. "/matchbox/libfakekey/" version "/libfakekey-"
  205. version ".tar.bz2"))
  206. (sha256
  207. (base32
  208. "1501l0bflcrhqbf12n7a7cqilvr0w4xawxw0vw75p2940nkl4464"))))
  209. (build-system gnu-build-system)
  210. (arguments
  211. `(#:make-flags (list "AM_LDFLAGS=-lX11")))
  212. (native-inputs
  213. `(("pkg-config" ,pkg-config)))
  214. (inputs
  215. `(("libxtst" ,libxtst)
  216. ("libx11" ,libx11)))
  217. (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
  218. (synopsis "X virtual keyboard library")
  219. (description
  220. "Libfakekey is a virtual keyboard library for X.")
  221. (license license:gpl2)))
  222. (define-public xdotool
  223. (package
  224. (name "xdotool")
  225. (version "3.20160805.1")
  226. (source
  227. (origin
  228. (method url-fetch)
  229. (uri (string-append
  230. "https://github.com/jordansissel/xdotool/releases/download/v"
  231. version "/xdotool-" version ".tar.gz"))
  232. (sha256
  233. (base32
  234. "1a6c1zr86zb53352yxv104l76l8x21gfl2bgw6h21iphxpv5zgim"))))
  235. (build-system gnu-build-system)
  236. (arguments
  237. '(#:tests? #f ; Test suite requires a lot of black magic
  238. #:phases
  239. (modify-phases %standard-phases
  240. (replace 'configure
  241. (lambda* (#:key outputs #:allow-other-keys #:rest args)
  242. (let ((out (assoc-ref outputs "out")))
  243. (mkdir-p (string-append out "/lib"))
  244. (setenv "PREFIX" out)
  245. (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
  246. (setenv "CC" "gcc")
  247. #t))))))
  248. (native-inputs `(("perl" ,perl))) ; for pod2man
  249. (inputs `(("libx11" ,libx11)
  250. ("libxext" ,libxext)
  251. ("libxi" ,libxi)
  252. ("libxinerama" ,libxinerama)
  253. ("libxtst" ,libxtst)
  254. ("libxkbcommon" ,libxkbcommon)))
  255. (home-page "http://www.semicomplete.com/projects/xdotool")
  256. (synopsis "Fake keyboard/mouse input, window management, and more")
  257. (description "Xdotool lets you simulate keyboard input and mouse activity,
  258. move and resize windows, etc. It does this using X11's XTEST extension and
  259. other Xlib functions. Additionally, you can search for windows and move,
  260. resize, hide, and modify window properties like the title. If your window
  261. manager supports it, you can use xdotool to switch desktops, move windows
  262. between desktops, and change the number of desktops.")
  263. (license license:bsd-3)))
  264. (define-public xeyes
  265. (package
  266. (name "xeyes")
  267. (version "1.1.2")
  268. (source
  269. (origin
  270. (method url-fetch)
  271. (uri (string-append "https://www.x.org/releases/individual/app/"
  272. name "-" version ".tar.bz2"))
  273. (sha256
  274. (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p"))))
  275. (build-system gnu-build-system)
  276. (inputs
  277. `(("libxext" ,libxext)
  278. ("libxmu" ,libxmu)
  279. ("libxrender" ,libxrender)
  280. ("libxt" ,libxt)))
  281. (native-inputs
  282. `(("pkg-config" ,pkg-config)))
  283. (home-page "https://www.x.org/") ; no dedicated Xeyes page exists
  284. (synopsis "Follow-the-mouse X demo")
  285. (description "Xeyes is a demo program for x.org. It shows eyes
  286. following the mouse.")
  287. (license license:x11)))
  288. (define-public pixman
  289. (package
  290. (name "pixman")
  291. (version "0.36.0")
  292. (source (origin
  293. (method url-fetch)
  294. (uri (string-append
  295. "https://www.cairographics.org/releases/pixman-"
  296. version ".tar.gz"))
  297. (sha256
  298. (base32
  299. "1blzrx50ssdv0pn56hcv2v0zw0vrjwj1sx22pkgjls1p9n6rr88w"))
  300. (patches (search-patches "pixman-CVE-2016-5296.patch"))))
  301. (build-system gnu-build-system)
  302. (inputs
  303. `(("libpng" ,libpng)
  304. ("zlib" ,zlib)))
  305. (native-inputs
  306. `(("pkg-config" ,pkg-config)))
  307. (home-page "http://www.pixman.org/")
  308. (synopsis "Low-level pixel manipulation library")
  309. (description "Pixman is a low-level software library for pixel
  310. manipulation, providing features such as image compositing and trapezoid
  311. rasterisation.")
  312. (license license:x11)))
  313. (define-public libdrm
  314. (package
  315. (name "libdrm")
  316. (version "2.4.96")
  317. (source
  318. (origin
  319. (method url-fetch)
  320. (uri (string-append
  321. "https://dri.freedesktop.org/libdrm/libdrm-"
  322. version
  323. ".tar.bz2"))
  324. (sha256
  325. (base32
  326. "14xkip83qgljjaahzq40qgl60j54q7k00la1hbf5kk5lgg7ilmhd"))
  327. (patches (search-patches "libdrm-symbol-check.patch"))))
  328. (build-system gnu-build-system)
  329. (arguments
  330. `(#:configure-flags
  331. '(,@(match (%current-system)
  332. ("armhf-linux"
  333. '("--enable-exynos-experimental-api"
  334. "--enable-omap-experimental-api"
  335. "--enable-etnaviv-experimental-api"
  336. "--enable-tegra-experimental-api"
  337. "--enable-freedreno-kgsl"))
  338. ("aarch64-linux"
  339. '("--enable-tegra-experimental-api"
  340. "--enable-etnaviv-experimental-api"
  341. "--enable-freedreno-kgsl"))
  342. (_ '())))))
  343. (inputs
  344. `(("libpciaccess" ,libpciaccess)))
  345. (native-inputs
  346. `(("pkg-config" ,pkg-config)))
  347. (home-page "https://dri.freedesktop.org/wiki/")
  348. (synopsis "Direct rendering userspace library")
  349. (description "The Direct Rendering Infrastructure, also known as the DRI,
  350. is a framework for allowing direct access to graphics hardware under the
  351. X Window System in a safe and efficient manner. It includes changes to the
  352. X server, to several client libraries, and to the kernel (DRM, Direct
  353. Rendering Manager). The most important use for the DRI is to create fast
  354. OpenGL implementations providing hardware acceleration for Mesa.
  355. Several 3D accelerated drivers have been written to the DRI specification,
  356. including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
  357. and Matrox.")
  358. (license license:x11)))
  359. (define-public mtdev
  360. (package
  361. (name "mtdev")
  362. (version "1.1.5")
  363. (source
  364. (origin
  365. (method url-fetch)
  366. (uri (string-append
  367. "http://bitmath.org/code/mtdev/mtdev-"
  368. version ".tar.bz2"))
  369. (sha256
  370. (base32
  371. "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
  372. (build-system gnu-build-system)
  373. (home-page "http://bitmath.org/code/mtdev/")
  374. (synopsis "Multitouch protocol translation library")
  375. (description "Mtdev is a stand-alone library which transforms all
  376. variants of kernel MT events to the slotted type B protocol. The events
  377. put into mtdev may be from any MT device, specifically type A without
  378. contact tracking, type A with contact tracking, or type B with contact
  379. tracking.")
  380. (license license:x11)))
  381. (define-public startup-notification
  382. (package
  383. (name "startup-notification")
  384. (version "0.12")
  385. (source
  386. (origin
  387. (method url-fetch)
  388. (uri (string-append "https://www.freedesktop.org/software/" name
  389. "/releases/" name "-" version ".tar.gz"))
  390. (sha256
  391. (base32
  392. "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
  393. (build-system gnu-build-system)
  394. (native-inputs `(("pkg-config" ,pkg-config)))
  395. (inputs
  396. `(("libx11" ,libx11)
  397. ("xcb-util" ,xcb-util)))
  398. (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
  399. (synopsis "Application startup notification and feedback library")
  400. (description
  401. "Startup-notification contains a reference implementation of the startup
  402. notification protocol. The reference implementation is mostly under an X Window
  403. System style license, and has no special dependencies.")
  404. ;; Most of the code is provided under x11 license.
  405. (license license:lgpl2.0+)))
  406. (define-public wmctrl
  407. (package
  408. (name "wmctrl")
  409. (version "1.07")
  410. (source (origin
  411. (method url-fetch)
  412. (uri (string-append
  413. "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
  414. version ".tar.gz"))
  415. (sha256
  416. (base32
  417. "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
  418. (patches (search-patches "wmctrl-64-fix.patch"))))
  419. (build-system gnu-build-system)
  420. (arguments
  421. '(#:configure-flags
  422. (list (string-append "--mandir="
  423. (assoc-ref %outputs "out")
  424. "/share/man"))))
  425. (native-inputs
  426. `(("pkg-config" ,pkg-config)))
  427. (inputs
  428. `(("libx11" ,libx11)
  429. ("libxmu" ,libxmu)
  430. ("glib" ,glib)))
  431. (home-page "http://tomas.styblo.name/wmctrl/")
  432. (synopsis "Command-line tool to control X window managers")
  433. (description
  434. "Wmctrl allows to interact with an X window manager that is compatible
  435. with the EWMH/NetWM specification. It can query the window manager for
  436. information, and request for certain window management actions (resize and
  437. move windows, switch between desktops, etc.).")
  438. (license license:gpl2+)))
  439. (define-public scrot
  440. (package
  441. (name "scrot")
  442. (version "0.9")
  443. (source
  444. (origin
  445. (method git-fetch)
  446. (uri
  447. (git-reference
  448. (url "https://github.com/resurrecting-open-source-projects/scrot.git")
  449. (commit version)))
  450. (sha256
  451. (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
  452. (build-system gnu-build-system)
  453. (native-inputs
  454. `(("autoconf" ,autoconf)
  455. ("automake" ,automake)))
  456. (inputs
  457. `(("giblib" ,giblib)
  458. ("libx11" ,libx11)))
  459. (home-page "https://github.com/resurrecting-open-source-projects/scrot")
  460. (synopsis "Command-line screen capture utility for X Window System")
  461. (description
  462. "Scrot allows to save a screenshot of a full screen, a window or a part
  463. of the screen selected by mouse.")
  464. ;; This license removes a clause about X Consortium from the original
  465. ;; X11 license.
  466. (license (license:x11-style "file://COPYING"
  467. "See 'COPYING' in the distribution."))))
  468. (define-public slop
  469. (package
  470. (name "slop")
  471. (version "7.4")
  472. (source (origin
  473. (method git-fetch)
  474. (uri (git-reference
  475. (url "https://github.com/naelstrof/slop.git")
  476. (commit (string-append "v" version))))
  477. (file-name (git-file-name name version))
  478. (sha256
  479. (base32
  480. "0fgd8a2dqkg64all0f96sca92sdss9r3pzmv5kck46b99z2325z6"))))
  481. (build-system cmake-build-system)
  482. (arguments
  483. '(#:tests? #f)) ; no "check" target
  484. (inputs
  485. `(("glew" ,glew)
  486. ("glm" ,glm)
  487. ("icu4c" ,icu4c)
  488. ("libxext" ,libxext)
  489. ("libxrender" ,libxrender)
  490. ("mesa" ,mesa)))
  491. (home-page "https://github.com/naelstrof/slop")
  492. (synopsis "Select a region and print its bounds to stdout")
  493. (description
  494. "slop (Select Operation) is a tool that queries for a selection from a
  495. user and prints the region to stdout. It grabs the mouse and turns it into a
  496. crosshair, lets the user click and drag to make a selection (or click on a
  497. window) while drawing a pretty box around it, then finally prints the
  498. selection's dimensions to stdout.")
  499. (license license:gpl3+)))
  500. (define-public maim
  501. (package
  502. (name "maim")
  503. (version "5.5.2")
  504. (source (origin
  505. (method git-fetch)
  506. (uri (git-reference
  507. (url "https://github.com/naelstrof/maim.git")
  508. (commit (string-append "v" version))))
  509. (file-name (git-file-name name version))
  510. (sha256
  511. (base32
  512. "14mfxdm39kc5jk8wysrzx05ag2g4sk9l24i8m5pzqn8j611150v3"))))
  513. (build-system cmake-build-system)
  514. (arguments
  515. '(#:tests? #f)) ; no "check" target
  516. (inputs
  517. `(("glm" ,glm)
  518. ("libjpeg" ,libjpeg-turbo)
  519. ("libpng" ,libpng)
  520. ("libxcomposite" ,libxcomposite)
  521. ("libxfixes" ,libxfixes)
  522. ("libxrandr" ,libxrandr)
  523. ("mesa" ,mesa)
  524. ("slop" ,slop)
  525. ("zlib" ,zlib)))
  526. (home-page "https://github.com/naelstrof/maim")
  527. (synopsis "Screenshot utility for X Window System")
  528. (description
  529. "maim (Make Image) is a tool that takes screenshots of your desktop and
  530. saves it in any format. Along with a full screen, it allows you to capture a
  531. predefined region or a particular window. Also, it makes it possible to
  532. include cursor in the resulting image.")
  533. (license license:gpl3+)))
  534. (define-public unclutter
  535. (package
  536. (name "unclutter")
  537. (version "8")
  538. (source (origin
  539. (method url-fetch)
  540. (uri (string-append
  541. "http://ftp.x.org/contrib/utilities/unclutter-"
  542. version ".tar.Z"))
  543. (sha256
  544. (base32
  545. "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
  546. (build-system gnu-build-system)
  547. (arguments
  548. '(#:tests? #f ; no check target
  549. #:phases
  550. (modify-phases %standard-phases
  551. (delete 'configure)
  552. (replace 'install
  553. (lambda* (#:key inputs outputs #:allow-other-keys)
  554. (let* ((out (assoc-ref outputs "out"))
  555. (bin (string-append out "/bin"))
  556. (man1 (string-append out "/share/man/man1")))
  557. (mkdir-p bin)
  558. (mkdir-p man1)
  559. (invoke "make" "install" "install.man"
  560. (string-append "BINDIR=" bin)
  561. (string-append "MANDIR=" man1))))))))
  562. (inputs `(("libx11" ,libx11)))
  563. (home-page "http://ftp.x.org/contrib/utilities/")
  564. (synopsis "Hide idle mouse cursor")
  565. (description
  566. "Unclutter is a program which runs permanently in the background of an
  567. X11 session. It checks on the X11 pointer (cursor) position every few
  568. seconds, and when it finds it has not moved (and no buttons are pressed
  569. on the mouse, and the cursor is not in the root window) it creates a
  570. small sub-window as a child of the window the cursor is in. The new
  571. window installs a cursor of size 1x1 but a mask of all 0, i.e. an
  572. invisible cursor. This allows you to see all the text in an xterm or
  573. xedit, for example. The human factors crowd would agree it should make
  574. things less distracting.")
  575. (license license:public-domain)))
  576. (define-public xautomation
  577. (package
  578. (name "xautomation")
  579. (version "1.09")
  580. (source
  581. (origin
  582. (method url-fetch)
  583. (uri (string-append "https://www.hoopajoo.net/static/projects/"
  584. "xautomation-" version ".tar.gz"))
  585. (sha256
  586. (base32
  587. "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
  588. (build-system gnu-build-system)
  589. (inputs
  590. `(("libpng" ,libpng)
  591. ("libx11" ,libx11)
  592. ("libxi" ,libxi)
  593. ("libxtst" ,libxtst)))
  594. (native-inputs
  595. `(("xorgproto" ,xorgproto)))
  596. (synopsis "Tools to automate tasks in X such as detecting on screen images")
  597. (description
  598. "Xautomation can control X from the command line for scripts, and
  599. do visual scraping to find things on the screen. The control interface
  600. allows mouse movement, clicking, button up/down, key up/down, etc, and
  601. uses the XTest extension so you don't have the annoying problems that
  602. xse has when apps ignore sent events. The visgrep program can find
  603. images inside of images and reports the coordinates, allowing progams
  604. to find buttons, etc, on the screen to click on.")
  605. (home-page "https://www.hoopajoo.net/projects/xautomation.html")
  606. (license license:gpl2+)))
  607. (define-public xbanish
  608. (package
  609. (name "xbanish")
  610. (version "1.6")
  611. (home-page "https://github.com/jcs/xbanish")
  612. (source (origin
  613. (method git-fetch)
  614. (uri (git-reference (url home-page)
  615. (commit (string-append "v" version))))
  616. (sha256
  617. (base32
  618. "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
  619. (build-system gnu-build-system)
  620. (arguments
  621. `(#:tests? #f ;no tests
  622. #:make-flags (list "CC=gcc"
  623. (string-append "PREFIX=" (assoc-ref %outputs "out")))
  624. #:phases (modify-phases %standard-phases
  625. (delete 'configure))))
  626. (inputs
  627. `(("libx11" ,libx11)
  628. ("libxfixes" ,libxfixes)
  629. ("libxi" ,libxi)
  630. ("libxt" ,libxt)))
  631. (synopsis "Banish the mouse cursor")
  632. (description
  633. "@command{xbanish} hides the mouse cursor when you start typing, and
  634. shows it again when the mouse cursor moves or a mouse button is pressed.")
  635. (license license:bsd-3)))
  636. (define-public xlockmore
  637. (package
  638. (name "xlockmore")
  639. (version "5.56")
  640. (source (origin
  641. (method url-fetch)
  642. (uri (list (string-append "http://sillycycle.com/xlock/"
  643. name "-" version ".tar.xz")
  644. ;; Previous releases are moved to a subdirectory.
  645. (string-append "http://sillycycle.com/xlock/"
  646. "recent-releases/"
  647. name "-" version ".tar.xz")))
  648. (sha256
  649. (base32
  650. "1dg1n79rnswhxqz36mxnl5lp8p37i9fbibnzzyrqknmvf2s8xpd0"))))
  651. (build-system gnu-build-system)
  652. (arguments
  653. '(#:configure-flags (list (string-append "--enable-appdefaultdir="
  654. (assoc-ref %outputs "out")
  655. "/lib/X11/app-defaults"))
  656. #:tests? #f)) ;no such thing as a test suite
  657. (inputs
  658. `(("libX11" ,libx11)
  659. ("libXext" ,libxext)
  660. ("libXt" ,libxt)
  661. ("linux-pam" ,linux-pam)))
  662. (home-page "http://sillycycle.com/xlockmore.html")
  663. (synopsis "Screen locker for the X Window System")
  664. (description
  665. "XLockMore is a classic screen locker and screen saver for the
  666. X Window System.")
  667. (license (license:non-copyleft #f "See xlock.c.")
  668. ))) ; + GPLv2 in modes/glx/biof.c.
  669. (define-public xosd
  670. (package
  671. (name "xosd")
  672. (version "2.2.14")
  673. (source (origin
  674. (method url-fetch)
  675. (uri (string-append
  676. "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
  677. name "-" version ".tar.gz"))
  678. (sha256
  679. (base32
  680. "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
  681. (build-system gnu-build-system)
  682. (arguments
  683. '(#:configure-flags
  684. (list (string-append "--mandir=" %output "/share/man"))))
  685. (inputs
  686. `(("libx11" ,libx11)
  687. ("libxt" ,libxt)
  688. ("libxext" ,libxext)
  689. ("libxinerama" ,libxinerama)))
  690. (home-page "https://sourceforge.net/projects/libxosd/")
  691. (synopsis "X On Screen Display")
  692. (description
  693. "XOSD provides a C library and a simple utility (osd_cat) for displaying
  694. transparent text on your screen.")
  695. (license license:gpl2+)))
  696. (define-public xbindkeys
  697. (package
  698. (name "xbindkeys")
  699. (version "1.8.6")
  700. (source (origin
  701. (method url-fetch)
  702. ;; Download from the savannah mirror list fails
  703. (uri (string-append
  704. "http://www.nongnu.org/xbindkeys/xbindkeys-"
  705. version
  706. ".tar.gz"))
  707. (sha256
  708. (base32
  709. "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
  710. (build-system gnu-build-system)
  711. (inputs
  712. `(("libx11" ,libx11)
  713. ("guile" ,guile-2.0)))
  714. (home-page "https://www.nongnu.org/xbindkeys/")
  715. (synopsis "Associate a combination of keys with a shell command")
  716. (description
  717. "XBindKeys is a program that allows you to launch shell commands with
  718. your keyboard or your mouse under the X Window System. It links commands to
  719. keys or mouse buttons, using a configuration file. It's independent of the
  720. window manager and can capture all keyboard keys (ex: Power, Wake...). It
  721. optionally supports a Guile-based configuration file layout, which enables you
  722. to access all XBindKeys internals, so you can have key combinations, double
  723. clicks or timed double clicks take actions. Also all functions that work in
  724. Guile will work for XBindKeys.")
  725. (license license:gpl2+)))
  726. (define-public sxhkd
  727. (package
  728. (name "sxhkd")
  729. (version "0.5.9")
  730. (source
  731. (origin
  732. (method git-fetch)
  733. (uri (git-reference
  734. (url "https://github.com/baskerville/sxhkd")
  735. (commit version)))
  736. (sha256
  737. (base32
  738. "0cw547x7vky55k3ksrmzmrra4zhslqcwq9xw0y4cmbvy4s1qf64v"))))
  739. (build-system gnu-build-system)
  740. (inputs
  741. `(("asciidoc" ,asciidoc)
  742. ("libxcb" ,libxcb)
  743. ("xcb-util" ,xcb-util)
  744. ("xcb-util-keysyms" ,xcb-util-keysyms)
  745. ("xcb-util-wm" ,xcb-util-wm)))
  746. (arguments
  747. `(#:phases (modify-phases %standard-phases (delete 'configure))
  748. #:tests? #f ; no check target
  749. #:make-flags
  750. (list "CC=gcc"
  751. (string-append "PREFIX=" %output)
  752. ;; Keep the documentation where the build system installs LICENSE.
  753. (string-append "DOCPREFIX=" %output
  754. "/share/doc/" ,name "-" ,version))))
  755. (home-page "https://github.com/baskerville/sxhkd")
  756. (synopsis "Simple X hotkey daemon")
  757. (description "sxhkd is a simple X hotkey daemon with a powerful and
  758. compact configuration syntax.")
  759. (license license:bsd-2)))
  760. (define-public rxvt-unicode
  761. (package
  762. (name "rxvt-unicode")
  763. (version "9.22")
  764. (source (origin
  765. (method url-fetch)
  766. (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
  767. name "-" version ".tar.bz2"))
  768. (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
  769. (sha256
  770. (base32
  771. "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
  772. (build-system gnu-build-system)
  773. (arguments
  774. ;; This sets the destination when installing the necessary terminal
  775. ;; capability data, which are not provided by 'ncurses'. See
  776. ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
  777. `(#:make-flags (list (string-append "TERMINFO="
  778. (assoc-ref %outputs "out")
  779. "/share/terminfo"))
  780. #:phases
  781. (modify-phases %standard-phases
  782. (add-after 'install 'install-desktop-urxvt
  783. (lambda* (#:key outputs #:allow-other-keys)
  784. (let* ((output (assoc-ref outputs "out"))
  785. (desktop (string-append output "/share/applications")))
  786. (mkdir-p desktop)
  787. (with-output-to-file
  788. (string-append desktop "/urxvt.desktop")
  789. (lambda _
  790. (format #t
  791. "[Desktop Entry]~@
  792. Name=rxvt-unicode~@
  793. Comment=~@
  794. Exec=~a/bin/urxvt~@
  795. TryExec=~@*~a/bin/urxvt~@
  796. Icon=~@
  797. Type=Application~%"
  798. output)))
  799. #t)))
  800. (add-after 'install 'install-desktop-urxvtc
  801. (lambda* (#:key outputs #:allow-other-keys)
  802. (let* ((output (assoc-ref outputs "out"))
  803. (desktop (string-append output "/share/applications")))
  804. (mkdir-p desktop)
  805. (with-output-to-file
  806. (string-append desktop "/urxvtc.desktop")
  807. (lambda _
  808. (format #t
  809. "[Desktop Entry]~@
  810. Name=rxvt-unicode (client)~@
  811. Comment=Rxvt clone with XFT and unicode support~@
  812. Exec=~a/bin/urxvtc~@
  813. TryExec=~@*~a/bin/urxvtc~@
  814. Icon=~@
  815. Type=Application~%"
  816. output)))
  817. #t))))))
  818. (inputs
  819. `(("libXft" ,libxft)
  820. ("libX11" ,libx11)))
  821. (native-inputs
  822. `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
  823. ("perl" ,perl)
  824. ("pkg-config" ,pkg-config)))
  825. ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
  826. ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
  827. (native-search-paths
  828. (list (search-path-specification
  829. (variable "TERMINFO_DIRS")
  830. (files '("share/terminfo")))))
  831. (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
  832. (synopsis "Rxvt clone with XFT and unicode support")
  833. (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
  834. intended as an xterm replacement for users who do not require features such as
  835. Tektronix 4014 emulation and toolkit-style configurability. It supports
  836. unicode, XFT and may be extended with Perl plugins. It also comes with a
  837. client/daemon pair that lets you open any number of terminal windows from
  838. within a single process.")
  839. (license license:gpl3+)))
  840. (define-public xcape
  841. (package
  842. (name "xcape")
  843. (version "1.2")
  844. (source (origin
  845. (method git-fetch)
  846. (uri (git-reference
  847. (url "https://github.com/alols/xcape.git")
  848. (commit (string-append "v" version))))
  849. (file-name (git-file-name name version))
  850. (sha256
  851. (base32
  852. "09a05cxgrip6nqy1qmwblamp2bhknqnqmxn7i2a1rgxa0nba95dm"))))
  853. (build-system gnu-build-system)
  854. (arguments
  855. `(#:tests? #f ; no check target
  856. ;; no configure script
  857. #:phases (modify-phases %standard-phases (delete 'configure))
  858. #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
  859. "MANDIR=/share/man/man1"
  860. "CC=gcc")))
  861. (inputs
  862. `(("libxtst" ,libxtst)
  863. ("libx11" ,libx11)))
  864. (native-inputs
  865. `(("pkg-config" ,pkg-config)))
  866. (home-page "https://github.com/alols/xcape")
  867. (synopsis "Use a modifier key in X.org as another key")
  868. (description
  869. "This utility for X.org allows to use modifier key as another key when
  870. pressed and released on its own. The default behaviour is to generate the
  871. Escape key when Left Control is pressed and released on its own.")
  872. (license license:gpl3+)))
  873. (define-public libwacom
  874. (package
  875. (name "libwacom")
  876. (version "0.31")
  877. (source (origin
  878. (method url-fetch)
  879. (uri (string-append
  880. "https://github.com/linuxwacom/libwacom/releases/download/"
  881. name "-" version "/" name "-" version ".tar.bz2"))
  882. (sha256
  883. (base32
  884. "00xzkxhm0s9bvhbf27hscjbh17wa8lcgvxjqbmzm527f9cjqrm8q"))))
  885. (build-system glib-or-gtk-build-system)
  886. (native-inputs
  887. `(("pkg-config" ,pkg-config)))
  888. (inputs
  889. `(("gtk+" ,gtk+)
  890. ("libgudev" ,libgudev)
  891. ("eudev" ,eudev)
  892. ("libxml2" ,libxml2)))
  893. (propagated-inputs
  894. ;; libwacom includes header files that include GLib, and libinput uses
  895. ;; those header files.
  896. `(("glib" ,glib)))
  897. (home-page "https://linuxwacom.github.io/")
  898. (synopsis "Helper library for Wacom tablet settings")
  899. (description
  900. "Libwacom is a library to help implement Wacom tablet settings. It is
  901. intended to be used by client-programs that need model identification. It is
  902. already being used by the gnome-settings-daemon and the GNOME Control Center
  903. Wacom tablet applet.")
  904. (license license:x11)))
  905. (define-public xf86-input-wacom
  906. (package
  907. (name "xf86-input-wacom")
  908. (version "0.36.1")
  909. (source
  910. (origin
  911. (method url-fetch)
  912. (uri (string-append
  913. "https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
  914. name "-" version "/" name "-" version ".tar.bz2"))
  915. (sha256
  916. (base32
  917. "029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij"))))
  918. (arguments
  919. `(#:configure-flags
  920. (list (string-append "--with-sdkdir="
  921. (assoc-ref %outputs "out")
  922. "/include/xorg")
  923. (string-append "--with-xorg-conf-dir="
  924. (assoc-ref %outputs "out")
  925. "/share/X11/xorg.conf.d"))))
  926. (build-system gnu-build-system)
  927. (native-inputs
  928. `(("pkg-config" ,pkg-config)))
  929. (inputs
  930. `(("xorg-server" ,xorg-server)
  931. ("libxrandr" ,libxrandr)
  932. ("libxinerama" ,libxinerama)
  933. ("libxi" ,libxi)
  934. ("eudev" ,eudev)))
  935. (home-page "https://linuxwacom.github.io/")
  936. (synopsis "Wacom input driver for X")
  937. (description
  938. "The xf86-input-wacom driver is the wacom-specific X11 input driver for
  939. the X.Org X Server version 1.7 and later (X11R7.5 or later).")
  940. (license license:x11)))
  941. (define-public redshift
  942. (package
  943. (name "redshift")
  944. (version "1.12")
  945. (source
  946. (origin
  947. (method url-fetch)
  948. (uri
  949. (string-append "https://github.com/jonls/redshift/"
  950. "releases/download/v" version
  951. "/redshift-" version ".tar.xz"))
  952. (sha256
  953. (base32
  954. "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j"))))
  955. (build-system gnu-build-system)
  956. (native-inputs
  957. `(("pkg-config" ,pkg-config)
  958. ("intltool" ,intltool)))
  959. (inputs
  960. `(("libdrm" ,libdrm)
  961. ("libx11" ,libx11)
  962. ("libxcb" ,libxcb)
  963. ("libxxf86vm" ,libxxf86vm)
  964. ("glib" ,glib))) ; for Geoclue2 support
  965. (home-page "https://github.com/jonls/redshift")
  966. (synopsis "Adjust the color temperature of your screen")
  967. (description
  968. "Redshift adjusts the color temperature according to the position of the
  969. sun. A different color temperature is set during night and daytime. During
  970. twilight and early morning, the color temperature transitions smoothly from
  971. night to daytime temperature to allow your eyes to slowly adapt. At night the
  972. color temperature should be set to match the lamps in your room.")
  973. (license license:gpl3+)))
  974. (define-public xscreensaver
  975. (package
  976. (name "xscreensaver")
  977. (version "5.42")
  978. (source
  979. (origin
  980. (method url-fetch)
  981. (uri
  982. (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
  983. version ".tar.gz"))
  984. (sha256
  985. (base32
  986. "1qfbsnj7201d03vf0b2lzxmlcq4kvkvzp48r5gcgsjr17c1sl7a4"))))
  987. (build-system gnu-build-system)
  988. (arguments
  989. `(#:tests? #f ; no check target
  990. #:phases
  991. (modify-phases %standard-phases
  992. (add-before 'configure 'adjust-gtk-resource-paths
  993. (lambda _
  994. (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
  995. (("@GTK_DATADIR@") "@datadir@")
  996. (("@PO_DATADIR@") "@datadir@"))
  997. #t)))
  998. #:configure-flags '("--with-pam" "--with-proc-interrupts"
  999. "--without-readdisplay")
  1000. ;; FIXME: Remove CFLAGS once our default compiler is GCC6 or later.
  1001. #:make-flags (list "CFLAGS=-std=c99"
  1002. (string-append "AD_DIR="
  1003. (assoc-ref %outputs "out")
  1004. "/usr/lib/X11/app-defaults"))))
  1005. (native-inputs
  1006. `(("pkg-config" ,pkg-config)
  1007. ("intltool" ,intltool)))
  1008. (inputs
  1009. `(("libx11" ,libx11)
  1010. ("libxext" ,libxext)
  1011. ("libxi" ,libxi)
  1012. ("libxt" ,libxt)
  1013. ("libxft" ,libxft)
  1014. ("libxmu" ,libxmu)
  1015. ("libxpm" ,libxpm)
  1016. ("libglade" ,libglade)
  1017. ("libxml2" ,libxml2)
  1018. ("libsm" ,libsm)
  1019. ("libjpeg" ,libjpeg)
  1020. ("linux-pam" ,linux-pam)
  1021. ("pango" ,pango)
  1022. ("gtk+" ,gtk+)
  1023. ("perl" ,perl)
  1024. ("cairo" ,cairo)
  1025. ("bc" ,bc)
  1026. ("libxrandr" ,libxrandr)
  1027. ("glu" ,glu)
  1028. ("glib" ,glib)))
  1029. (home-page "https://www.jwz.org/xscreensaver/")
  1030. (synopsis "Classic screen saver suite supporting screen locking")
  1031. (description
  1032. "xscreensaver is a popular screen saver collection with many entertaining
  1033. demos. It also acts as a nice screen locker.")
  1034. ;; xscreensaver doesn't have a single copyright file and instead relies on
  1035. ;; source comment headers, though most files have the same lax
  1036. ;; permissions. To reduce complexity, we're pointing at Debian's
  1037. ;; breakdown of the copyright information.
  1038. (license (license:non-copyleft
  1039. (string-append
  1040. "http://metadata.ftp-master.debian.org/changelogs/"
  1041. "/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
  1042. (define-public xsel
  1043. (package
  1044. (name "xsel")
  1045. (version "1.2.0")
  1046. (source (origin
  1047. (method url-fetch)
  1048. (uri (string-append "http://www.vergenet.net/~conrad/software"
  1049. "/xsel/download/xsel-" version ".tar.gz"))
  1050. (sha256
  1051. (base32
  1052. "070lbcpw77j143jrbkh0y1v10ppn1jwmjf92800w7x42vh4cw9xr"))))
  1053. (build-system gnu-build-system)
  1054. (inputs
  1055. `(("libxt" ,libxt)))
  1056. (home-page "http://www.vergenet.net/~conrad/software/xsel/")
  1057. (synopsis "Manipulate X selection")
  1058. (description
  1059. "XSel is a command-line program for getting and setting the contents of
  1060. the X selection. Normally this is only accessible by manually highlighting
  1061. information and pasting it with the middle mouse button.
  1062. XSel reads from standard input and writes to standard output by default,
  1063. but can also follow a growing file, display contents, delete entries and more.")
  1064. (license (license:x11-style "file://COPYING"
  1065. "See COPYING in the distribution."))))
  1066. (define-public xdpyprobe
  1067. (package
  1068. (name "xdpyprobe")
  1069. (version "0.1")
  1070. (source (origin
  1071. (method url-fetch)
  1072. (uri (string-append "https://github.com/alezost/" name
  1073. "/releases/download/v" version
  1074. "/" name "-" version ".tar.gz"))
  1075. (sha256
  1076. (base32
  1077. "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
  1078. (build-system gnu-build-system)
  1079. (inputs
  1080. `(("libx11" ,libx11)))
  1081. (home-page "https://github.com/alezost/xdpyprobe")
  1082. (synopsis "Probe X server for connectivity")
  1083. (description
  1084. "Xdpyprobe is a tiny C program whose only purpose is to probe a
  1085. connectivity of the X server running on a particular @code{DISPLAY}.")
  1086. (license license:gpl3+)))
  1087. (define-public rofi
  1088. (package
  1089. (name "rofi")
  1090. (version "1.5.2")
  1091. (source (origin
  1092. (method url-fetch)
  1093. (uri (string-append "https://github.com/DaveDavenport/rofi/"
  1094. "releases/download/"
  1095. version "/rofi-" version ".tar.xz"))
  1096. (sha256
  1097. (base32
  1098. "17faa0rj8vqidrijwx9jrq0c29003n8v3izvc66yssfljgb8kcpj"))))
  1099. (build-system gnu-build-system)
  1100. (inputs
  1101. `(("pango" ,pango)
  1102. ("cairo" ,cairo)
  1103. ("glib" ,glib)
  1104. ("startup-notification" ,startup-notification)
  1105. ("librsvg" ,librsvg)
  1106. ("libxkbcommon" ,libxkbcommon)
  1107. ("libxcb" ,libxcb)
  1108. ("xcb-util" ,xcb-util)
  1109. ("xcb-util-xrm" ,xcb-util-xrm)
  1110. ("xcb-util-wm" ,xcb-util-wm)))
  1111. (native-inputs
  1112. `(("bison" ,bison)
  1113. ("check" ,check)
  1114. ("flex" ,flex)
  1115. ("glib:bin" ,glib "bin")
  1116. ("pkg-config" ,pkg-config)))
  1117. (arguments
  1118. `(#:parallel-tests? #f ; May fail in some circumstances.
  1119. #:phases
  1120. (modify-phases %standard-phases
  1121. (add-before 'configure 'adjust-tests
  1122. (lambda _
  1123. (substitute* '("test/helper-expand.c")
  1124. (("~root") "/root")
  1125. (("~") "")
  1126. (("g_get_home_dir \\(\\)") "\"/\""))
  1127. #t)))))
  1128. (home-page "https://github.com/DaveDavenport/rofi")
  1129. (synopsis "Application launcher")
  1130. (description "Rofi is a minimalist application launcher. It memorizes which
  1131. applications you regularly use and also allows you to search for an application
  1132. by name.")
  1133. (license license:expat)))
  1134. (define-public tint2
  1135. (package
  1136. (name "tint2")
  1137. (version "0.14.6")
  1138. (source (origin
  1139. (method url-fetch)
  1140. (uri (string-append "https://gitlab.com/o9000/" name
  1141. "/repository/archive.tar.gz?ref=" version))
  1142. (file-name (string-append name "-" version ".tar.gz"))
  1143. (sha256
  1144. (base32
  1145. "1kwzwxy4myagybm3rc7dgynfgp75742n348qibn1p2an9ggyivda"))))
  1146. (build-system cmake-build-system)
  1147. (arguments
  1148. '(#:tests? #f ;no test target
  1149. #:phases
  1150. (modify-phases %standard-phases
  1151. (add-after 'unpack 'fix-installation-prefix
  1152. (lambda _
  1153. (substitute* "CMakeLists.txt"
  1154. (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
  1155. #t)))))
  1156. (inputs
  1157. `(("gtk+" ,gtk+-2)
  1158. ("imlib2" ,imlib2)
  1159. ("librsvg" ,librsvg)
  1160. ("libxcomposite" ,libxcomposite)
  1161. ("libxdamage" ,libxdamage)
  1162. ("libxft" ,libxft)
  1163. ("libxinerama" ,libxinerama)
  1164. ("libxrandr" ,libxrandr)
  1165. ("startup-notification" ,startup-notification)))
  1166. (native-inputs
  1167. `(("gettext" ,gettext-minimal)
  1168. ("pkg-config" ,pkg-config)))
  1169. (home-page "https://gitlab.com/o9000/tint2")
  1170. (synopsis "Lightweight task bar")
  1171. (description
  1172. "Tint2 is a simple task bar made for modern X window managers. It was
  1173. specifically made for Openbox but it should also work with other window
  1174. managers (GNOME, KDE, XFCE etc.).
  1175. The taskbar includes transparency and color settings for the font, icons,
  1176. border, and background. It also supports multihead setups, customized mouse
  1177. actions, a built-in clock, a battery monitor and a system tray.")
  1178. (license license:gpl2)))
  1179. (define-public dzen
  1180. (let ((commit "488ab66019f475e35e067646621827c18a879ba1")
  1181. (revision "1"))
  1182. (package
  1183. (name "dzen")
  1184. (version (string-append "0.9.5-" ; Taken from `config.mk`.
  1185. revision "." (string-take commit 7)))
  1186. (source (origin
  1187. (method git-fetch)
  1188. (uri (git-reference
  1189. (url "https://github.com/robm/dzen.git")
  1190. (commit commit)))
  1191. (file-name (string-append name "-" version))
  1192. (sha256
  1193. (base32
  1194. "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw"))))
  1195. (build-system gnu-build-system)
  1196. (arguments
  1197. `(#:tests? #f ; No test suite.
  1198. #:make-flags ; Replacement for `config.mk`.
  1199. (list
  1200. (string-append "VERSION = " ,version)
  1201. (string-append "PREFIX = " %output)
  1202. "MANPREFIX = ${PREFIX}/share/man"
  1203. "INCS = -I."
  1204. "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)"
  1205. "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\
  1206. -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)"
  1207. "LDFLAGS = ${LIBS}"
  1208. "CC = gcc"
  1209. "LD = ${CC}")
  1210. #:phases
  1211. (modify-phases %standard-phases
  1212. (delete 'configure) ; No configuration script.
  1213. ;; Use own make-flags instead of `config.mk`.
  1214. (add-before 'build 'dont-include-config-mk
  1215. (lambda _
  1216. (substitute* "Makefile" (("include config.mk") ""))
  1217. #t)))))
  1218. (inputs
  1219. `(("libx11" ,libx11)
  1220. ("libxft" ,libxft)
  1221. ("libxpm" ,libxpm)
  1222. ("libxinerama" ,libxinerama)))
  1223. (native-inputs `(("pkg-config" ,pkg-config)))
  1224. (synopsis "General purpose messaging, notification and menuing program for X11")
  1225. (description "Dzen is a general purpose messaging, notification and menuing
  1226. program for X11. It was designed to be fast, tiny and scriptable in any language.")
  1227. (home-page "https://github.com/robm/dzen")
  1228. (license license:expat))))
  1229. (define-public xcb-util-xrm
  1230. (package
  1231. (name "xcb-util-xrm")
  1232. (version "1.3")
  1233. (source (origin
  1234. (method url-fetch)
  1235. (uri (string-append
  1236. "https://github.com/Airblader/xcb-util-xrm/releases"
  1237. "/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
  1238. (sha256
  1239. (base32
  1240. "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h"))
  1241. (modules '((guix build utils)))
  1242. (snippet
  1243. ;; Drop bundled m4.
  1244. '(begin
  1245. (delete-file-recursively "m4")
  1246. #t))))
  1247. (build-system gnu-build-system)
  1248. (native-inputs
  1249. `(("pkg-config" ,pkg-config)
  1250. ("m4" ,m4)
  1251. ("libx11" ,libx11))) ; for tests
  1252. (inputs
  1253. `(("libxcb" ,libxcb)
  1254. ("xcb-util" ,xcb-util)))
  1255. (home-page "https://github.com/Airblader/xcb-util-xrm")
  1256. (synopsis "XCB utility functions for the X resource manager")
  1257. (description
  1258. "The XCB util module provides a number of libraries which sit on
  1259. top of libxcb, the core X protocol library, and some of the extension
  1260. libraries. These experimental libraries provide convenience functions
  1261. and interfaces which make the raw X protocol more usable. Some of the
  1262. libraries also provide client-side code which is not strictly part of
  1263. the X protocol but which has traditionally been provided by Xlib.
  1264. XCB util-xrm module provides the following libraries:
  1265. - xrm: utility functions for the X resource manager.")
  1266. (license license:x11)))
  1267. (define-public xcalib
  1268. (package
  1269. (name "xcalib")
  1270. (version "0.10")
  1271. (home-page "https://github.com/OpenICC/xcalib")
  1272. (source (origin
  1273. (method git-fetch)
  1274. (uri (git-reference
  1275. (url home-page)
  1276. (commit version)))
  1277. (sha256
  1278. (base32
  1279. "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr"))
  1280. (patches
  1281. (list
  1282. ;; Add missing documentation for the new --output option.
  1283. ;; This upstream patch can be removed on the next update.
  1284. (origin
  1285. (method url-fetch)
  1286. (uri (string-append
  1287. home-page "/commit/"
  1288. "ae03889b91fe984b18e925ad2b5e6f2f7354e058.patch"))
  1289. (file-name "xcalib-update-man-page.patch")
  1290. (sha256
  1291. (base32
  1292. "0f7b4d5484x4b9n1bwhqmar0kcaa029ffff7bp3xpr734n1qgqb6")))))))
  1293. (build-system cmake-build-system)
  1294. (arguments
  1295. '(#:tests? #f)) ; no test suite
  1296. (inputs `(("libx11" ,libx11)
  1297. ("libxext" ,libxext)
  1298. ("libxrandr" ,libxrandr)
  1299. ("libxxf86vm" ,libxxf86vm)))
  1300. (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
  1301. (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
  1302. profiles to the video card's gamma ramp. It does work with most video card
  1303. drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
  1304. invert colors on a specific display/screen.")
  1305. (license license:gpl2)))
  1306. (define-public nxbelld
  1307. (package
  1308. (name "nxbelld")
  1309. (version "0.1.2")
  1310. (source (origin
  1311. (method git-fetch)
  1312. (uri (git-reference
  1313. (url "https://github.com/dusxmt/nxbelld.git")
  1314. (commit version)))
  1315. (sha256
  1316. (base32
  1317. "04qwhmjs51irinz5mjlxdb3dc6vr79dqmc5fkj80x1ll3ylh5n3z"))
  1318. (file-name (git-file-name name version))))
  1319. (build-system gnu-build-system)
  1320. (arguments '(#:configure-flags `("--enable-sound"
  1321. "--enable-wave"
  1322. "--enable-alsa")))
  1323. (native-inputs `(("autoconf" ,autoconf)
  1324. ("automake" ,automake)
  1325. ("pkg-config" ,pkg-config)
  1326. ("perl" ,perl)))
  1327. (inputs `(("libx11" ,libx11)
  1328. ("alsa-lib" ,alsa-lib)))
  1329. (synopsis "Daemon that performs an action every time the X11 bell is rung")
  1330. (description "nxbelld is a tiny utility to aid people who either don't
  1331. like the default PC speaker beep, or use a sound driver that doesn't have
  1332. support for the PC speaker. The utility performs a given action every time
  1333. the X bell is rung. The actions nxbelld can currently perform include running
  1334. a specified program, emulating the PC speaker beep using the sound card (default),
  1335. or playing a PCM encoded WAVE file.")
  1336. (home-page "https://github.com/dusxmt/nxbelld")
  1337. (license license:gpl3+)))
  1338. (define-public xautolock
  1339. (package
  1340. (name "xautolock")
  1341. (version "2.2")
  1342. (source (origin
  1343. (method url-fetch)
  1344. (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/"
  1345. name "-" version ".tgz"))
  1346. (sha256
  1347. (base32
  1348. "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
  1349. (build-system gnu-build-system)
  1350. (native-inputs
  1351. `(("imake" ,imake)))
  1352. (inputs
  1353. `(("libx11" ,libx11)
  1354. ("libxext" ,libxext)
  1355. ("libxscrnsaver" ,libxscrnsaver)))
  1356. (arguments
  1357. `(#:tests? #f
  1358. #:phases
  1359. (modify-phases %standard-phases
  1360. (replace 'configure
  1361. (lambda* (#:key inputs outputs #:allow-other-keys)
  1362. (let ((imake (assoc-ref inputs "imake"))
  1363. (out (assoc-ref outputs "out")))
  1364. ;; Generate Makefile
  1365. (invoke "xmkmf")
  1366. (substitute* "Makefile"
  1367. ;; These imake variables somehow remain undefined
  1368. (("DefaultGcc2[[:graph:]]*Opt") "-O2")
  1369. ;; Reset a few variable defaults that are set in imake templates
  1370. ((imake) out)
  1371. (("(MANPATH = )[[:graph:]]*" _ front)
  1372. (string-append front out "/share/man")))
  1373. ;; Old BSD-style 'union wait' is unneeded (defining
  1374. ;; _USE_BSD did not seem to fix it)
  1375. (substitute* "src/engine.c"
  1376. (("union wait status") "int status = 0"))
  1377. #t)))
  1378. (add-after 'install 'install/man
  1379. (lambda _
  1380. (invoke "make" "install.man"))))))
  1381. (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
  1382. (synopsis "Program launcher for idle X sessions")
  1383. (description "Xautolock monitors input devices under the X Window
  1384. System, and launches a program of your choice if there is no activity after
  1385. a user-configurable period of time.")
  1386. (license license:gpl2)))
  1387. (define-public screen-message
  1388. (package
  1389. (name "screen-message")
  1390. (version "0.25")
  1391. (source (origin
  1392. (method url-fetch)
  1393. (uri (string-append
  1394. "https://www.joachim-breitner.de/archive/screen-message"
  1395. "/screen-message-" version ".tar.gz"))
  1396. (sha256
  1397. (base32
  1398. "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
  1399. (build-system gnu-build-system)
  1400. (inputs `(("gtk3" ,gtk+)
  1401. ("gdk" ,gdk-pixbuf)
  1402. ("pango" ,pango)))
  1403. (native-inputs `(("pkg-config" ,pkg-config)))
  1404. (arguments
  1405. ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
  1406. ;; this fixes it:
  1407. `(#:make-flags (list (string-append "execgamesdir=" %output "/bin"))))
  1408. (synopsis "Print messages on your screen")
  1409. (description "@code{screen-message} is a tool for displaying text on
  1410. your screen. It will make the text as large as possible and display it
  1411. with black color on a white background (colors are configurable on the
  1412. commandline).")
  1413. (home-page "https://www.joachim-breitner.de/projects#screen-message")
  1414. (license license:gpl2+)))
  1415. (define-public xss-lock
  1416. ;; xss-lock does not seem to be maintained any longer, but the last commits
  1417. ;; fix important issues so we package them.
  1418. (let ((version "0.3.0")
  1419. (revision "1")
  1420. (commit "1e158fb20108058dbd62bd51d8e8c003c0a48717"))
  1421. (package
  1422. (name "xss-lock")
  1423. (version (git-version version revision commit))
  1424. (source (origin
  1425. (method git-fetch)
  1426. (uri (git-reference
  1427. (url "https://bitbucket.org/raymonad/xss-lock.git")
  1428. (commit commit)))
  1429. (file-name (git-file-name name version))
  1430. (sha256
  1431. (base32
  1432. "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
  1433. (build-system cmake-build-system)
  1434. (inputs `(("glib" ,glib)
  1435. ("xcb-util" ,xcb-util)))
  1436. (native-inputs
  1437. `(("python-docutils" ,python-docutils)
  1438. ("pkg-config" ,pkg-config)))
  1439. (arguments
  1440. `(#:tests? #f))
  1441. (synopsis "Use external screen locker on events")
  1442. (description "@code{xss-lock} listens to X signals to fire up a
  1443. user-defined screensaver. In effect this allows to automatically lock the
  1444. screen when closing a laptop lid or after a period of user inactivity (as set
  1445. with @code{xset s TIMEOUT}). The notifier command, if specified, is executed
  1446. first. Additionally, xss-lock uses the inhibition logic to lock the screen
  1447. before the system goes to sleep.")
  1448. (home-page "https://bitbucket.org/raymonad/xss-lock")
  1449. (license license:expat))))
  1450. (define-public python-pyperclip
  1451. (package
  1452. (name "python-pyperclip")
  1453. (version "1.6.4")
  1454. (source
  1455. (origin
  1456. (method url-fetch)
  1457. (uri (pypi-uri "pyperclip" version))
  1458. (sha256
  1459. (base32
  1460. "1p505c23ji06r28k1y67siihsbdzdf1brhlqpyv9ams4gk9863pp"))))
  1461. (build-system python-build-system)
  1462. (arguments
  1463. '(#:tests? #f)) ; Not clear how to make tests pass.
  1464. (inputs
  1465. `(("xclip" ,xclip)
  1466. ("xsel" ,xsel)))
  1467. (home-page "https://github.com/asweigart/pyperclip")
  1468. (synopsis "Python clipboard module")
  1469. (description
  1470. "Pyperclip is a clipboard module for Python, handling copy/pasting from
  1471. the X11 clipboard")
  1472. (license license:bsd-3)))
  1473. (define-public numlockx
  1474. (package
  1475. (name "numlockx")
  1476. (version "1.2")
  1477. (source (origin
  1478. (method git-fetch)
  1479. (uri (git-reference
  1480. ;; It seems that upstream is gone.
  1481. (url "https://github.com/rg3/numlockx")
  1482. (commit version)))
  1483. (file-name (git-file-name name version))
  1484. (sha256
  1485. (base32
  1486. "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
  1487. (build-system gnu-build-system)
  1488. (inputs
  1489. `(("xorg-server" ,xorg-server)))
  1490. (home-page "https://github.com/rg3/numlockx")
  1491. (synopsis "Turns on the numlock key in X11")
  1492. (description "@command{numlockx} is a tiny program that lets you turn on
  1493. the numlock key in X11. It can be called from the user's initialization files
  1494. to automatically turn it on on login.")
  1495. (license license:expat)))
  1496. (define-public xrandr-invert-colors
  1497. (package
  1498. (name "xrandr-invert-colors")
  1499. (version "0.01")
  1500. (source (origin
  1501. (method git-fetch)
  1502. (uri (git-reference
  1503. (url "https://github.com/zoltanp/xrandr-invert-colors.git")
  1504. (commit (string-append "v" version))))
  1505. (file-name (git-file-name name version))
  1506. (sha256
  1507. (base32
  1508. "1br3x9vr6xm4ika06n8cfxx1b3wdchdqvyzjl4y1chmivrml8x9h"))))
  1509. (build-system gnu-build-system)
  1510. (arguments
  1511. `(#:make-flags (list "CC=gcc")
  1512. #:tests? #f ; there are none
  1513. #:phases
  1514. (modify-phases %standard-phases
  1515. (delete 'configure)
  1516. (replace 'install
  1517. (lambda* (#:key outputs #:allow-other-keys)
  1518. (let* ((out (assoc-ref outputs "out"))
  1519. (bin (string-append out "/bin")))
  1520. (install-file "xrandr-invert-colors.bin" bin)
  1521. #t))))))
  1522. (inputs
  1523. `(("libxrandr" ,libxrandr)))
  1524. (home-page "https://github.com/zoltanp/xrandr-invert-colors")
  1525. (synopsis "Invert display colors")
  1526. (description "This package provides a small utility for inverting the
  1527. colors on all monitors attached to an XRandR-capable X11 display server.")
  1528. (license license:gpl3+)))
  1529. (define-public sct
  1530. (package
  1531. (name "sct")
  1532. (version "0.4")
  1533. (source
  1534. (origin
  1535. (method url-fetch)
  1536. (uri
  1537. (string-append "https://www.umaxx.net/dl/sct-"
  1538. version ".tar.gz"))
  1539. (sha256
  1540. (base32
  1541. "0r57z9ki8pvxhawfxys0v5h85z2x211sqxki0xvk1bga88ryldlv"))))
  1542. (build-system gnu-build-system)
  1543. (arguments
  1544. '(#:make-flags (list "CC=gcc")
  1545. #:tests? #f ; No tests exist.
  1546. #:phases
  1547. (modify-phases %standard-phases
  1548. (delete 'configure)
  1549. (add-after 'unpack 'fix-sctd-paths
  1550. (lambda* (#:key outputs inputs #:allow-other-keys)
  1551. (let ((out (assoc-ref outputs "out"))
  1552. (coreutils (assoc-ref inputs "coreutils"))
  1553. (inetutils (assoc-ref inputs "inetutils"))
  1554. (sed (assoc-ref inputs "sed")))
  1555. (substitute* "sctd.sh"
  1556. (("\\$\\(which sct\\)") (string-append out "/bin/sct"))
  1557. (("date") (string-append coreutils "/bin/date"))
  1558. (("printf") (string-append coreutils "/bin/printf"))
  1559. (("sleep") (string-append coreutils "/bin/sleep"))
  1560. (("logger") (string-append inetutils "/bin/logger"))
  1561. (("sed") (string-append sed "/bin/sed"))))))
  1562. (replace 'install
  1563. (lambda* (#:key outputs #:allow-other-keys)
  1564. (let ((out (assoc-ref outputs "out")))
  1565. (install-file "sct" (string-append out "/bin"))
  1566. (install-file "sctd.sh" (string-append out "/bin"))
  1567. (install-file "sct.1" (string-append out "/man/man1"))
  1568. (install-file "sctd.1" (string-append out "/man/man1"))
  1569. (rename-file (string-append out "/bin/sctd.sh")
  1570. (string-append out "/bin/sctd"))
  1571. #t))))))
  1572. (inputs
  1573. `(("coreutils" ,coreutils) ; sctd uses "date", "printf" and "sleep"
  1574. ("inetutils" ,inetutils) ; sctd uses "logger"
  1575. ("libxrandr" ,libxrandr)
  1576. ("sed" ,sed))) ; sctd uses "sed"
  1577. (home-page "https://www.umaxx.net")
  1578. (synopsis "Set the color temperature of the screen")
  1579. (description "@code{sct} is a lightweight utility to set the color
  1580. temperature of the screen.")
  1581. (license (license:non-copyleft "file://sct.c")))) ; "OpenBSD" license
  1582. (define-public wl-clipboard
  1583. (package
  1584. (name "wl-clipboard")
  1585. (version "1.0.0")
  1586. (source
  1587. (origin
  1588. (method git-fetch)
  1589. (uri (git-reference
  1590. (url "https://github.com/bugaevc/wl-clipboard.git")
  1591. (commit (string-append "v" version))))
  1592. (file-name (git-file-name name version))
  1593. (sha256
  1594. (base32 "03h6ajcc30w6928bkd4h6xfj4iy2359ww6hdlybq8mr1zwmb2h0q"))))
  1595. (build-system meson-build-system)
  1596. (native-inputs
  1597. `(("pkg-config" ,pkg-config)))
  1598. (inputs
  1599. `(("wayland" ,wayland)
  1600. ("wayland-protocols" ,wayland-protocols)))
  1601. (home-page "https://github.com/bugaevc/wl-clipboard")
  1602. (synopsis "Command-line copy/paste utilities for Wayland")
  1603. (description "Wl-clipboard is a set of command-line copy/paste utilities for
  1604. Wayland.")
  1605. (license license:gpl3+)))