;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Petter <petter@mykolab.ch>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
+;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
+;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
+;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
+;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 David Wilson <david@daviwil.com>
+;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system scons)
#:use-module (gnu packages)
#:use-module (gnu packages documentation)
#:use-module (gnu packages admin)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages guile)
#:use-module (gnu packages xml)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages fontutils)
#:use-module (gnu packages bison)
#:use-module (ice-9 match))
(define-public arandr
(package
(name "arandr")
- (version "0.1.9")
+ (version "0.1.10")
(source (origin
(method url-fetch)
- (uri (string-append "http://christian.amsuess.com/tools/" name
- "/files/" name "-" version ".tar.gz"))
+ (uri (string-append "https://christian.amsuess.com/tools/arandr"
+ "/files/arandr-" version ".tar.gz"))
(sha256
(base32
- "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
+ "135q0llvm077jil2fr92ssw3p095m4r8jfj0lc5rr3m71n4srj6v"))
(modules '((guix build utils)))
(snippet
'(begin
#t))))
(build-system python-build-system)
(arguments
- `(#:python ,python-2 ;incompatible with python 3
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'configure
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "screenlayout/xrandr.py"
(("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr")
"/bin/xrandr\"")))
+ #t))
+ (add-after 'install 'wrap-gi-typelib
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (wrap-program (string-append out "/bin/arandr")
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
#t)))
#:tests? #f)) ;no tests
- (inputs `(("pygtk" ,python2-pygtk)
+ (inputs `(("gtk+" ,gtk+)
+ ("pycairo" ,python-pycairo)
+ ("pygobject" ,python-pygobject)
("xrandr" ,xrandr)))
(native-inputs `(("gettext" ,gettext-minimal)
- ("python-docutils" ,python2-docutils)))
+ ("python-docutils" ,python-docutils)))
(home-page "https://christian.amsuess.com/tools/arandr/")
(synopsis "Another RandR graphical user interface")
;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
used to further tweak the behaviour of the different profiles.")
(license license:gpl3+))))
+(define-public bemenu
+ (package
+ (name "bemenu")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Cloudef/bemenu.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0piax49az5kp96r1g6dcgj87fi6p4jl286wlkxsdvljzpkn8q6gv"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DBEMENU_WAYLAND_RENDERER=ON")))
+ (inputs
+ `(("cairo" ,cairo)
+ ("libx11" ,libx11)
+ ("libxkbcomon" ,libxkbcommon)
+ ("libxinerama" ,libxinerama)
+ ("ncurses" ,ncurses)
+ ("pango" ,pango)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)))
+ (native-inputs
+ `(("doxygen" ,doxygen)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/Cloudef/bemenu")
+ (synopsis "Dynamic menu library and client program inspired by dmenu")
+ (description
+ "bemenu is a dynamic menu which allows the user to flexibly select from a
+list of options (usually programs to launch). It renders the menu graphically
+with X11 or Wayland, or in a text terminal with ncurses.")
+ (license (list license:gpl3+ ; client program[s] and other sources
+ license:lgpl3+)))) ; library and bindings
+
+(define-public copyq
+(package
+ (name "copyq")
+ (version "3.9.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hluk/CopyQ.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wlwq9xg8rzsbj0b29z358k4mbrqy04iraa8x0p26pa95yskgcma"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
+ #:tests? #f)) ; Test suite is a rather manual process.
+ (inputs
+ `(("qtbase" ,qtbase)
+ ("qtscript" ,qtscript)
+ ("qtsvg" ,qtsvg)
+ ("qtx11extras" ,qtx11extras)))
+ (synopsis "Clipboard manager with advanced features")
+ (description "CopyQ is clipboard manager with editing and scripting
+features. CopyQ monitors system clipboard and saves its content in customized
+tabs. Saved clipboard can be later copied and pasted directly into any
+application.")
+ (home-page "https://hluk.github.io/CopyQ/")
+ (license license:gpl3+)))
+
(define-public xclip
(package
(name "xclip")
(define-public libxkbcommon
(package
(name "libxkbcommon")
- (version "0.8.4")
+ (version "0.10.0")
(source (origin
(method url-fetch)
(uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
version ".tar.xz"))
(sha256
(base32
- "12vc91ydhphd5sddz15560r41l7k0i7mq6nma8kkbzdp6bwwzpb0"))))
- (build-system gnu-build-system)
+ "1wmnl0hngn6vrqrya4r8hvimlkr4jag39yjprls4gyrqvh667hsp"))))
+ (build-system meson-build-system)
(inputs
`(("libx11" ,libx11)
("libxcb" ,libxcb)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
("xkeyboard-config" ,xkeyboard-config)))
(native-inputs
`(("bison" ,bison)
+ ("doxygen" ,doxygen)
("pkg-config" ,pkg-config)))
(arguments
`(#:configure-flags
- (list (string-append "--with-xkb-config-root="
+ (list (string-append "-Dxkb-config-root="
(assoc-ref %build-inputs "xkeyboard-config")
"/share/X11/xkb")
- (string-append "--with-x-locale-root="
+ (string-append "-Dx-locale-root="
(assoc-ref %build-inputs "libx11")
"/share/X11/locale"))))
(home-page "https://xkbcommon.org/")
(define-public libdrm
(package
(name "libdrm")
- (version "2.4.99")
+ (version "2.4.100")
(source
(origin
(method url-fetch)
".tar.bz2"))
(sha256
(base32
- "0pnsw4bmajzdbz8pk4wswdmw93shhympf2q9alhbnpfjgsf57gsd"))
+ "0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67"))
(patches (search-patches "libdrm-symbol-check.patch"))))
(build-system meson-build-system)
(arguments
(define-public scrot
(package
(name "scrot")
- (version "0.9")
+ (version "1.2")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
+ (base32 "08gkdby0ysx2mki57z81zlm7vfnq9c1gq692xw67cg5vv2p3320w"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
+ ("autoconf-archive" ,autoconf-archive)
("automake" ,automake)))
(inputs
`(("giblib" ,giblib)
- ("libx11" ,libx11)))
+ ("libx11" ,libx11)
+ ("libXcursor" ,libxcursor)
+ ("libXfixes" ,libxfixes)))
(home-page "https://github.com/resurrecting-open-source-projects/scrot")
(synopsis "Command-line screen capture utility for X Window System")
(description
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
"0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
(define-public xlockmore
(package
(name "xlockmore")
- (version "5.58")
+ (version "5.59")
(source (origin
(method url-fetch)
(uri (list (string-append "http://sillycycle.com/xlock/"
"xlockmore-" version ".tar.xz")))
(sha256
(base32
- "1va11sbv5lbkxkp0i0msz5md3n2n82nzppk27rzdrw7y79vq37zw"))))
+ "0lajc5a4lki33b9mzfsi74q4hbivbmhwysp7mib4ivnyxianhaid"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--enable-appdefaultdir="
(define-public sxhkd
(package
(name "sxhkd")
- (version "0.6.0")
+ (version "0.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/baskerville/sxhkd")
(commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1cz4vkm7fqd51ly9qjkf5q76kdqdzfhaajgvrs4anz5dyzrdpw68"))))
+ (base32 "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h"))))
(build-system gnu-build-system)
(inputs
`(("asciidoc" ,asciidoc)
(define-public libwacom
(package
(name "libwacom")
- (version "0.33")
+ (version "1.2")
(source (origin
(method url-fetch)
(uri (string-append
"libwacom-" version "/libwacom-" version ".tar.bz2"))
(sha256
(base32
- "1wnv34y7m9l6avlvwqvfrnksfnsz1lbgb412dn6s7x1h3wvs7y4l"))))
+ "1hv3z2qkvycqcyv99zfpbbgrlbyppdq8kk2y9x51578mwbgcy162"))))
(build-system glib-or-gtk-build-system)
+ (arguments
+ `(#:configure-flags '("--disable-static")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
(define-public xf86-input-wacom
(package
(name "xf86-input-wacom")
- (version "0.36.1")
+ (version "0.39.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
- name "-" version "/" name "-" version ".tar.bz2"))
+ "xf86-input-wacom-" version "/"
+ "xf86-input-wacom-" version ".tar.bz2"))
(sha256
- (base32
- "029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij"))))
+ (base32 "11qk58az6qwii774ga45h5yqzipwn56f0d74kdbajqdv45p85gqj"))))
(arguments
`(#:configure-flags
(list (string-append "--with-sdkdir="
color temperature should be set to match the lamps in your room.")
(license license:gpl3+)))
+(define-public redshift-wayland
+ (let ((commit "7da875d34854a6a34612d5ce4bd8718c32bec804")
+ (revision "1"))
+ (package
+ (name "redshift-wayland")
+ (version (string-append "1.12-"
+ revision "." (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/minus7/redshift.git")
+ (commit commit)))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "0nbkcw3avmzjg1jr1g9yfpm80kzisy55idl09b6wvzv2sz27n957"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("libdrm" ,libdrm)
+ ("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("libxxf86vm" ,libxxf86vm)
+ ("glib" ,glib) ; for Geoclue2 support
+ ("wayland" ,wayland)))
+ (home-page "https://github.com/minus7/redshift")
+ (synopsis "Adjust the color temperature of your screen (with Wayland support)")
+ (description
+ "Redshift adjusts the color temperature according to the position of the
+sun. A different color temperature is set during night and daytime. During
+twilight and early morning, the color temperature transitions smoothly from
+night to daytime temperature to allow your eyes to slowly adapt. At night the
+color temperature should be set to match the lamps in your room.
+
+This is a fork with added support for Wayland using the wlr-gamma-control
+protocol.")
+ (license license:gpl3+))))
+
(define-public xscreensaver
(package
(name "xscreensaver")
(define-public rofi
(package
(name "rofi")
- (version "1.5.3")
+ (version "1.5.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/DaveDavenport/rofi/"
version "/rofi-" version ".tar.xz"))
(sha256
(base32
- "0y78ya2va2lg3ww17n11y9awn8lhcp1px2d8gxaimxfqlxczs8la"))))
+ "1nslmyqyzhfr4hxd4llqkkkb8ap8apkdna32rllvar7r576059ci"))))
(build-system gnu-build-system)
(inputs
`(("pango" ,pango)
(home-page "https://github.com/robm/dzen")
(license license:expat))))
+(define-public xftwidth
+ (package
+ (name "xftwidth")
+ (version "20170402")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://github.com/vixus0/xftwidth")
+ (commit "35ff963908d41a8a6a7101c434c88255728025ee")))
+ (sha256
+ (base32
+ "1jwl25785li24kbp0m1wxfwk4dgxkliynn03nsj813cjr34kq16h"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (inputs `(("freetype" ,freetype)
+ ("libx11" ,libx11)
+ ("fontconfig" ,fontconfig)
+ ("libxft" ,libxft)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-makefile ; /usr/bin doesn't show up in PATH
+ (lambda _ (substitute* "Makefile" (("usr/") "")) #t))
+ (delete 'check) ; no check included in Makefile
+ (delete 'configure))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list (string-append "DESTDIR=" out)))))
+ (synopsis "Calculator for determining pixel widths of displayed text using Xft fonts")
+ (description "xftwidth is a small C program for calculating the pixel
+widths of displayed text using Xft fonts. It is especially useful in scripts
+for displaying text in graphical panels, menus, popups, and notification
+windows generated using dzen. These scripts are often used in conjunction with
+minimalistic tiling window managers such as herbstluftwm and bspwm.")
+ (home-page "http://github.com/vixus0/xftwidth")
+ (license license:expat)))
+
(define-public xcb-util-xrm
(package
(name "xcb-util-xrm")
(uri (git-reference
(url home-page)
(commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
"05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr"))
(version "2.2")
(source (origin
(method url-fetch)
- (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/"
- name "-" version ".tgz"))
+ (uri (string-append "https://www.ibiblio.org/pub/linux/X11/"
+ "screensavers/xautolock-" version ".tgz"))
(sha256
(base32
"18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
(add-after 'install 'install/man
(lambda _
(invoke "make" "install.man"))))))
- (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
+ (home-page "https://ibiblio.org/pub/Linux/X11/screensavers/")
(synopsis "Program launcher for idle X sessions")
(description "Xautolock monitors input devices under the X Window
System, and launches a program of your choice if there is no activity after
temperature of the screen.")
(license (license:non-copyleft "file://sct.c")))) ; "OpenBSD" license
+(define-public xsecurelock
+ (package
+ (name "xsecurelock")
+ (version "1.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/google/xsecurelock/releases"
+ "/download/v" version "/xsecurelock-" version ".tar.gz"))
+ (sha256
+ (base32 "070gknyv0s5hz9hkc6v73m2v7ssyjwgl93b5hd4glayfqxqjbmdp"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ '("--with-pam-service-name=login"
+ "--with-xkb"
+ "--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
+ (native-inputs
+ `(("pandoc" ,ghc-pandoc)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("fontconfig" ,fontconfig)
+ ("libX11" ,libx11)
+ ("libxcomposite" ,libxcomposite)
+ ("libxext" ,libxext)
+ ("libxfixes" ,libxfixes)
+ ("libxft" ,libxft)
+ ("libxmu" ,libxmu)
+ ("libxrandr" ,libxrandr)
+ ("libxscrnsaver" ,libxscrnsaver)
+ ("linux-pam" ,linux-pam)))
+ (home-page "https://github.com/google/xsecurelock")
+ (synopsis "X11 screen lock utility with the primary goal of security")
+ (description "@code{xsecurelock} is an X11 screen locker which uses
+a modular design to avoid the usual pitfalls of screen locking utility design.
+
+As a consequence of the modular design, the usual screen locker service
+shouldn't be used with @code{xsecurelock}. Instead, you need to add a helper
+binary to setuid-binaries:
+@example
+(setuid-programs (cons*
+ (file-append xsecurelock \"/libexec/xsecurelock/authproto_pam\")
+ %setuid-programs))
+@end example")
+ (license license:asl2.0)))
+
(define-public wl-clipboard
(package
(name "wl-clipboard")
- (version "1.0.0")
+ (version "2.0.0_beta2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bugaevc/wl-clipboard.git")
- (commit (string-append "v" version))))
+ (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "03h6ajcc30w6928bkd4h6xfj4iy2359ww6hdlybq8mr1zwmb2h0q"))))
+ (base32 "0wyqbaph9v1v6lwfcjf8gjhdl70icpss4wapshzfxcz3l9m1p8hv"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(description "Wl-clipboard is a set of command-line copy/paste utilities for
Wayland.")
(license license:gpl3+)))
+
+(define-public autocutsel
+ (package
+ (name "autocutsel")
+ (version "0.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/sigmike/autocutsel"
+ "/releases/download/" version "/"
+ "autocutsel-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0gsys2dzh4az51ndcsabhlbbrjn2nm75lnjr45kg6r8sm8q66dx2"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f)) ; no "check" target
+ (native-inputs `(("libx11" ,libx11)
+ ("libxaw" ,libxaw)))
+ (home-page "https://www.nongnu.org/autocutsel/")
+ (synopsis "Automated X11 clipboard and cutbuffer synchronization")
+ (description "@code{autocutsel} tracks changes in the server's cutbuffer
+and clipboard selection. When the clipboard is changed, it updates the
+cutbuffer. When the cutbuffer is changed, it owns the clipboard selection.
+The cutbuffer and clipboard selection are always synchronized.")
+ (license license:gpl2+)))
+
+(define-public jgmenu
+ (package
+ (name "jgmenu")
+ (version "4.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/johanmalm/jgmenu.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1q0rpg2d96sn3rrdi8m7bngnxxqyxilpjxi7skiw4gvpiv1akxjp"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("cppcheck" ,cppcheck)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("glib" ,glib)
+ ("librsvg" ,librsvg)
+ ("libx11" ,libx11)
+ ("libxml2" ,libxml2)
+ ("libxrandr" ,libxrandr)
+ ("pango" ,pango)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "scripts/cppcheck-wrapper.sh"
+ (("--library=/usr/share/cppcheck/cfg/gnu\\.cfg")
+ ""))
+ #t))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "CC" "gcc")
+ (invoke "./configure"
+ (string-append "--prefix=" (assoc-ref outputs "out")))
+ #t)))))
+ (synopsis "Simple X11 menu")
+ (description
+ "This is a simple menu for X11 designed for scripting and tweaking. It
+can optionally use some appearance settings from XSettings, tint2 and GTK.")
+ (home-page "https://jgmenu.github.io/")
+ (license license:gpl2)))
+
+(define-public xwrits
+ (package
+ (name "xwrits")
+ (version "2.26")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.lcdf.org/~eddietwo/xwrits/"
+ "xwrits-" version ".tar.gz"))
+ (sha256
+ (base32 "1n7y0fqpcvmzznvbsn14hzy5ddaa3lilm8aw6ckscqndnh4lijma"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-docs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/xwrits")))
+ (install-file "GESTURES" doc)
+ (install-file "README" doc)
+ #t))))))
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxinerama" ,libxinerama)))
+ (home-page "https://www.lcdf.org/~eddietwo/xwrits/")
+ (synopsis "Reminds you to take wrist breaks")
+ (description "Xwrits reminds you to take wrist breaks for prevention or
+management of repetitive stress injuries. When you should take a break, it
+pops up an X window, the warning window. You click on the warning window,
+then take a break. The window changes appearance while you take the break.
+It changes again when your break is over. Then you just resume typing.
+Xwrits hides itself until you should take another break.")
+ (license license:gpl2)))
+
+(define-public xsettingsd
+ (package
+ (name "xsettingsd")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/derat/xsettingsd.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
+ (build-system scons-build-system)
+ (inputs
+ `(("libx11" ,libx11)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("googletest" ,googletest)
+ ("googletest-source" ,(package-source googletest))))
+ (arguments
+ `(#:scons ,scons-python2
+ #:scons-flags
+ (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'patch-sconstruct
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "SConstruct"
+ ;; scons doesn't pick up environment variables automatically
+ ;; so it needs help to find path variables
+ (("env = Environment\\(")
+ "env = Environment(
+ ENV = {
+ 'PATH': os.environ['PATH'],
+ 'CPATH': os.environ['CPATH'],
+ 'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
+ 'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
+ },")
+ ;; Update path to gtest source files used in tests
+ (("/usr/src/gtest") (string-append
+ (assoc-ref inputs "googletest-source")
+ "/googletest"))
+ ;; Exclude one warning that causes a build error
+ (("-Werror") "-Werror -Wno-error=sign-compare"))
+ #t))
+ ;; The SConstruct script doesn't configure installation so
+ ;; binaries must be copied to the output path directly
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ (install-file "xsettingsd" bin)
+ (install-file "dump_xsettings" bin)
+ #t))))))
+ (home-page "https://github.com/derat/xsettingsd")
+ (synopsis "Xorg settings daemon")
+ (description "@command{xsettingsd} is a lightweight daemon that provides settings to
+Xorg applications via the XSETTINGS specification. It is used for defining
+font and theme settings when a complete desktop environment (GNOME, KDE) is
+not running. With a simple @file{.xsettingsd} configuration file one can avoid
+configuring visual settings in different UI toolkits separately.")
+ (license license:bsd-3)))