;;; 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, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 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, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Petter <petter@mykolab.ch>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 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 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, 2020 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 David Wilson <david@daviwil.com>
;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
+;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
+;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages xdisorg)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix git-download)
- #:use-module (guix hg-download)
- #:use-module (guix utils)
#:use-module (guix build-system cmake)
- #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system gnu)
#: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 (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix hg-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (gnu packages admin)
- #:use-module (gnu packages base)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
- #:use-module (gnu packages image)
- #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
- #:use-module (gnu packages m4)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
- #:use-module (gnu packages linux)
- #:use-module (gnu packages gl)
- #:use-module (gnu packages guile)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages gtk)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages sphinx)
+ #:use-module (gnu packages tcl)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
- #:use-module (gnu packages fontutils)
- #:use-module (gnu packages bison)
+ #:use-module (gnu packages)
#:use-module (ice-9 match))
;; packages outside the x.org system proper
+(define-public xtitle
+ (package
+ (name "xtitle")
+ (version "0.4.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/baskerville/xtitle")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0f5070k2bwarghl1vq886pl52xck1x5p7x3qhlfchsc2y3dcqms9"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libxcb" ,libxcb)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-wm" ,xcb-util-wm)))
+ (arguments
+ `(#:tests? #f ;no test suite
+ #:make-flags (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" %output))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
+ (home-page "https://github.com/baskerville/xtitle")
+ (synopsis "Output X window titles")
+ (description
+ "If arguments are given, @code{xtitle} outputs the title of each
+specified window, otherwise it outputs the title of the active window. With
+@emph{snoop} mode on, it continuously monitors the specified windows and
+outputs when titles change.")
+ (license license:unlicense)))
+
(define-public arandr
(package
(name "arandr")
(define-public autorandr
(package
(name "autorandr")
- (version "1.9")
+ (version "1.10.1")
(home-page "https://github.com/phillipberndt/autorandr")
(source
(origin
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1bb0l7fcm5lcx9y02zdxv7pfdqf4v4gsc5br3v1x9gzjvqj64l7n"))))
+ (base32 "0msw9b1hdy3gbq9w5d04mfizhyirz1c648x84mlcbzl8salm7vpg"))))
(build-system python-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(inputs
`(("xrandr" ,xrandr)
("libxcb" ,libxcb)))
(("/usr") (assoc-ref outputs "out")))
(substitute* "autorandr.py"
(("popen\\(\"xrandr") (string-append "popen(\"" xrandr))
- (("\\[\"xrandr") (string-append "[\"" xrandr))))
+ (("\\[\"xrandr") (string-append "[\"" xrandr)))
+ (substitute* "contrib/autorandr_launcher/autorandr_launcher.c"
+ (("/usr/bin/autorandr")
+ (string-append (assoc-ref outputs "out") "/bin/autorandr")))
+ (setenv "CC" "gcc"))
#t))
(add-after 'install 'install-contrib
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make"
(string-append "DESTDIR=" (assoc-ref outputs "out"))
"PREFIX="
- "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
- "install_manpage"
- "install_bash_completion"
- "install_launcher"
- "install_autostart_config"))))))
+ "BASH_COMPLETIONS_DIR=etc/bash_completion.d"
+ "install"
+ "TARGETS=autorandr launcher manpage bash_completion"))))))
(synopsis "Auto-detect connected displays and load appropriate setup")
(description "Autorandr wraps around xrandr to help with X11
multi-screen configuration management. It allows the user to create profiles
(define-public bemenu
(package
(name "bemenu")
- (version "0.2.0")
+ (version "0.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Cloudef/bemenu.git")
+ (url "https://github.com/Cloudef/bemenu")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0piax49az5kp96r1g6dcgj87fi6p4jl286wlkxsdvljzpkn8q6gv"))))
- (build-system cmake-build-system)
+ (base32 "1fjcs9d3533ay3nz79cx3c0lmy2chgragr2lhsy0xl2ckr0iins0"))))
+ (build-system gnu-build-system)
(arguments
- '(#:configure-flags '("-DBEMENU_WAYLAND_RENDERER=ON")))
+ '(#:tests? #f
+ #:make-flags (list "CC=gcc"
+ "CFLAGS=-O2 -fPIC"
+ (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib")
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
(inputs
`(("cairo" ,cairo)
("libx11" ,libx11)
"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 (list license:gpl3+ ; client program[s] and other sources
license:lgpl3+)))) ; library and bindings
(define-public copyq
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/hluk/CopyQ.git")
+ (url "https://github.com/hluk/CopyQ")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(home-page "https://hluk.github.io/CopyQ/")
(license license:gpl3+)))
+(define-public xkeysnail
+ (package
+ (name "xkeysnail")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "xkeysnail" version))
+ (sha256
+ (base32
+ "1xyqp6yqxcwmxaqj86qcsiz0ly7bwr0a2w835myz909irhip3ngf"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ;tests need /dev/uinput
+ (inputs
+ `(("python-appdirs" ,python-appdirs)
+ ("python-evdev" ,python-evdev)
+ ("python-inotify-simple" ,python-inotify-simple)
+ ("python-xlib" ,python-xlib)
+ ("python-six" ,python-six)))
+ (home-page "https://github.com/mooz/xkeysnail")
+ (synopsis "Keyboard remapping tool for the X11 environment")
+ (description
+ "Xkeysnail is an X environment keyboard remapping tool, featuring
+high-level and flexible remapping mechanisms. It affects the low-level
+layers (evdev and uinput), making remapping work in almost all the places.")
+ (license license:gpl3+))) ; see README.md (no licence headers)
+
(define-public xclip
(package
(name "xclip")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/astrand/xclip.git")
+ (url "https://github.com/astrand/xclip")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public libxkbcommon
(package
(name "libxkbcommon")
- (version "0.10.0")
+ (version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
version ".tar.xz"))
(sha256
(base32
- "1wmnl0hngn6vrqrya4r8hvimlkr4jag39yjprls4gyrqvh667hsp"))))
+ "0lmwglj16anhpaq0h830xsl1ivknv75i4lir9bk88aq73s2jy852"))))
(build-system meson-build-system)
(inputs
`(("libx11" ,libx11)
("libxcb" ,libxcb)
+ ("libxml2" ,libxml2)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)
("xkeyboard-config" ,xkeyboard-config)))
Clutter, and more. Despite the name, it is not currently used by anything
X11 (yet).")
(license (license:x11-style "file://COPYING"
- "See 'COPYING' in the distribution."))))
+ "See 'COPYING' in the distribution."))
+ (properties '((cpe-name . "xkbcommon")))))
(define-public libfakekey
(package
(package
(name "pixman")
(version "0.38.4")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://www.cairographics.org/releases/pixman-"
- version ".tar.gz"))
- (sha256
- (base32
- "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns"))
- (patches (search-patches "pixman-CVE-2016-5296.patch"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "https://www.cairographics.org/releases/pixman-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns"))
+ (patches
+ (search-patches
+ "pixman-CVE-2016-5296.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(inputs
`(("libpng" ,libpng)
("zlib" ,zlib)))
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (home-page "http://www.pixman.org/")
(synopsis "Low-level pixel manipulation library")
(description "Pixman is a low-level software library for pixel
manipulation, providing features such as image compositing and trapezoid
rasterisation.")
+ (home-page "http://www.pixman.org/")
(license license:x11)))
(define-public libdrm
(package
(name "libdrm")
- (version "2.4.100")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "https://dri.freedesktop.org/libdrm/libdrm-"
- version
- ".tar.bz2"))
- (sha256
- (base32
- "0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67"))
- (patches (search-patches "libdrm-symbol-check.patch"))))
+ (version "2.4.103")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://dri.freedesktop.org/libdrm/libdrm-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "08h2nnf4w96b4ql7485mvjgbbsb8rwc0qa93fdm1cq34pbyszq1z"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
(define-public scrot
(package
(name "scrot")
- (version "1.2")
+ (version "1.5")
(source
(origin
(method git-fetch)
(uri
(git-reference
- (url "https://github.com/resurrecting-open-source-projects/scrot.git")
+ (url "https://github.com/resurrecting-open-source-projects/scrot")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "08gkdby0ysx2mki57z81zlm7vfnq9c1gq692xw67cg5vv2p3320w"))))
+ (base32 "0x64b7xqi5cbq29pb8s8r2kzbxaday1f5k0j70n3s2p7sahjxy72"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
(inputs
`(("giblib" ,giblib)
("libx11" ,libx11)
- ("libXcursor" ,libxcursor)
+ ("libxcomposite" ,libxcomposite)
+ ("libxext" ,libxext)
("libXfixes" ,libxfixes)))
(home-page "https://github.com/resurrecting-open-source-projects/scrot")
(synopsis "Command-line screen capture utility for X Window System")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/naelstrof/slop.git")
+ (url "https://github.com/naelstrof/slop")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/naelstrof/maim.git")
+ (url "https://github.com/naelstrof/maim")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public xbanish
(package
(name "xbanish")
- (version "1.6")
+ (version "1.7")
(home-page "https://github.com/jcs/xbanish")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
+ "0ic5f7zgc32p5g1wxas9y5h8dhik0pvsa8wmn6skdry56gw9vg9q"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ;no tests
+ `(#:tests? #f ; no tests
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases
- (delete 'configure))))
+ (delete 'configure)))) ; no configure script
(inputs
`(("libx11" ,libx11)
("libxfixes" ,libxfixes)
(define-public xlockmore
(package
(name "xlockmore")
- (version "5.62")
+ (version "5.66")
(source (origin
(method url-fetch)
(uri (list (string-append "http://sillycycle.com/xlock/"
"xlockmore-" version ".tar.xz")))
(sha256
(base32
- "0b05wgj4mpssy4hd7km5c48i454dfg45p11mfmsr7xjd2gnz5gqi"))))
+ "0wdb7gpyjw3sigmhiplgg1bqxz6wipr0c3n9492x2a18cv1saxjr"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--enable-appdefaultdir="
transparent text on your screen.")
(license license:gpl2+)))
+(define-public wob
+ (package
+ (name "wob")
+ (version "0.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/francma/wob/releases/download/"
+ version "/wob-" version ".tar.gz"))
+ (sha256
+ (base32 "1vgngcg8wxn6zfg34czn9w55ia0zmhlgnpzf0gh31dc72li9353k"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("scdoc" ,scdoc)))
+ (inputs
+ `(("libseccomp" ,libseccomp)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)))
+ (home-page "https://github.com/francma/wob")
+ (synopsis "Lightweight overlay bar for Wayland")
+ (description
+ "Wob, or Wayland Overlay Bar, is a lightweight overlay volume,
+backlight, progress, or anything bar for Wayland.")
+ (license license:isc)))
+
(define-public xbindkeys
(package
(name "xbindkeys")
- (version "1.8.6")
+ (version "1.8.7")
(source (origin
(method url-fetch)
;; Download from the savannah mirror list fails
".tar.gz"))
(sha256
(base32
- "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
+ "1wl2vc5alisiwyk8m07y1ryq8w3ll9ym83j27g4apm4ixjl8d6x2"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'sanitise-shebang
+ ;; This wish script uses a strange double shebang that escapes our
+ ;; patch-shebangs phase. Assume that it's unnecessary & replace it.
+ (lambda _
+ (substitute* "xbindkeys_show"
+ (("^#!.*|^exec wish.*") "")
+ (("^# \\\\") (string-append "#!" (which "wish"))))
+ #t))
+ (add-after 'unpack 'patch-references
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "xbindkeys_show"
+ (("\"(xbindkeys)\"" _ command)
+ (format #f "\"~a/bin/~a\"" out command)))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(inputs
- `(("libx11" ,libx11)
- ("guile" ,guile-2.0)))
+ `(("guile" ,guile-2.2)
+ ("libx11" ,libx11)
+ ("tk" ,tk)))
(home-page "https://www.nongnu.org/xbindkeys/")
(synopsis "Associate a combination of keys with a shell command")
(description
(define-public sxhkd
(package
(name "sxhkd")
- (version "0.6.1")
+ (version "0.6.2")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h"))))
+ (base32 "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r"))))
(build-system gnu-build-system)
(inputs
`(("asciidoc" ,asciidoc)
;; This sets the destination when installing the necessary terminal
;; capability data, which are not provided by 'ncurses'. See
;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
- `(#:make-flags (list (string-append "TERMINFO="
+ `(#:configure-flags (list "--enable-256-color")
+ #:make-flags (list (string-append "TERMINFO="
(assoc-ref %outputs "out")
"/share/terminfo"))
#:phases
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/alols/xcape.git")
+ (url "https://github.com/alols/xcape")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public libwacom
(package
(name "libwacom")
- (version "1.3")
+ (version "1.7")
(source (origin
(method url-fetch)
(uri (string-append
"libwacom-" version "/libwacom-" version ".tar.bz2"))
(sha256
(base32
- "0g48cdg2qpvrr2nk8ccibjg3iv7iqskdv66izxacqx70w47y1771"))))
+ "0797gc055dgg2jfqijy9823bd83jwr4wb2z9id992qlcr0xmz1rw"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--disable-static")))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+ ;; For tests.
+ ("python" ,python)))
(inputs
`(("gtk+" ,gtk+)
("libgudev" ,libgudev)
(base32
"1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:imported-modules (,@%gnu-build-system-modules
+ (guix build python-build-system))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'split-outputs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gtk (assoc-ref outputs "gtk"))
+ (desktop-file "/share/applications/redshift-gtk.desktop"))
+ (mkdir-p (string-append gtk "/bin"))
+ (link (string-append out "/bin/redshift-gtk")
+ (string-append gtk "/bin/redshift-gtk"))
+ (delete-file (string-append out "/bin/redshift-gtk"))
+ (copy-recursively (string-append out "/lib")
+ (string-append gtk "/lib"))
+ (delete-file-recursively (string-append out "/lib"))
+ (mkdir-p (string-append gtk "/share/applications"))
+ (link (string-append out desktop-file)
+ (string-append gtk desktop-file))
+ (delete-file (string-append out desktop-file))
+ (with-directory-excursion (string-append out "/share")
+ (for-each (lambda (dir)
+ (copy-recursively
+ (string-append out "/share/" dir)
+ (string-append gtk "/share/" dir))
+ (delete-file-recursively dir))
+ '("appdata" "icons")))
+ #t)))
+ (add-after 'split-outputs 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((gtk (assoc-ref outputs "gtk"))
+ (python-version
+ (@ (guix build python-build-system) python-version))
+ (python (assoc-ref inputs "python"))
+ (sitedir (string-append gtk "/lib/python"
+ (python-version python)
+ "/site-packages")))
+ (wrap-program (string-append gtk "/bin/redshift-gtk")
+ `("PYTHONPATH" ":" prefix
+ (,(string-append sitedir ":" (getenv "PYTHONPATH"))))
+ `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
+ #t))))))
+ (outputs '("out" "gtk"))
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
("libx11" ,libx11)
("libxcb" ,libxcb)
("libxxf86vm" ,libxxf86vm)
- ("glib" ,glib))) ; for Geoclue2 support
+ ("glib" ,glib) ;for Geoclue2 support
+
+ ;; To build the GTK3 GUI, we need these.
+ ("gtk+" ,gtk+)
+ ("python" ,python)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pyxdg" ,python-pyxdg)))
(home-page "https://github.com/jonls/redshift")
(synopsis "Adjust the color temperature of your screen")
(description
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/minus7/redshift.git")
+ (url "https://github.com/minus7/redshift")
(commit commit)))
(file-name (string-append name "-" version))
(sha256
(base32
"0nbkcw3avmzjg1jr1g9yfpm80kzisy55idl09b6wvzv2sz27n957"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'install 'create-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; For the GeoClue provider to work, a .desktop file
+ ;; needs to be provided. A template is available,
+ ;; but it only gets installed when the GUI is enabled.
+ ;; Install it manually for this Wayland variant.
+ (let* ((out (assoc-ref outputs "out"))
+ (desktop-file
+ (string-append
+ out "/share/applications/redshift.desktop")))
+ (mkdir-p (dirname desktop-file))
+ (copy-file "data/applications/redshift.desktop.in"
+ desktop-file)
+ (substitute* desktop-file
+ (("^_") ""))
+ #t))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
protocol.")
(license license:gpl3+))))
+(define-public gammastep
+ (package
+ (name "gammastep")
+ (version "2.0.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/chinstrap/gammastep")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11j54rdd3cgngdhjwyapwjbrdm8cii4i7g4zdvfykvmb1w4zdk7g"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-python-and-typelib
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Gammastep GUI needs Typelib files from GTK and access
+ ;; to Python libraries.
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/gammastep-indicator")
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH")))))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gettext" ,gettext-minimal)
+ ("intltool" ,intltool)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("gtk" ,gtk+)
+ ("libappindicator" ,libappindicator)
+ ("libdrm" ,libdrm)
+ ("libX11" ,libx11)
+ ("libxxf86vm" ,libxxf86vm)
+ ("libxcb" ,libxcb)
+ ("python" ,python)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pyxdg" ,python-pyxdg)
+ ("wayland" ,wayland)))
+ (home-page "https://gitlab.com/chinstrap/gammastep")
+ (synopsis "Adjust the color temperature of your screen")
+ (description
+ "Gammastep automatically adjusts the color temperature of your
+screen according to your surroundings. This may help your eyes hurt
+less if you are working in front of the screen at night.")
+ (license license:gpl3)))
+
(define-public xscreensaver
(package
(name "xscreensaver")
- (version "5.44")
+ (version "5.45")
(source
(origin
(method url-fetch)
(string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
version ".tar.gz"))
(sha256
- (base32 "15bv05vpfjwsrqbazrjmm382jd7vvw0mp6y9vasn6wvxzjf0in3k"))))
+ (base32 "03fmyjlwjinzv7mih6n07glmys8s877snd8zijk2c0ds6rkxy5kh"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
"http://metadata.ftp-master.debian.org/changelogs/"
"/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
+(define-public xssproxy
+ (package
+ (name "xssproxy")
+ (version "1.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/timakro/xssproxy")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0c83wmipnsdnbihc5niyczs7jrkss2s8n6iwwjdia7hkjzbd0hl7"))))
+ (build-system gnu-build-system)
+ (arguments `(#:make-flags `("bindir=/bin"
+ "man1dir=/share/man/man1"
+ ,(string-append "DESTDIR=" (assoc-ref %outputs "out"))
+ "CC=gcc")
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxscrnsaver" ,libxscrnsaver)
+ ("dbus" ,dbus)))
+ (synopsis "Forward freedesktop.org Idle Inhibition Service calls to Xss")
+ (description "xssproxy implements the @code{org.freedesktop.ScreenSaver}
+D-Bus interface described in the Idle Inhibition Service Draft by the
+freedesktop.org developers. The inhibition of the screensaver is then
+controlled using the XScreenSaverSuspend function from the Xss (X11 Screen
+Saver extension) library.")
+ (home-page "https://github.com/timakro/xssproxy")
+ (license license:gpl3+)))
+
(define-public xsel
(package
(name "xsel")
(define-public rofi
(package
(name "rofi")
- (version "1.5.4")
+ (version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/DaveDavenport/rofi/"
version "/rofi-" version ".tar.xz"))
(sha256
(base32
- "1nslmyqyzhfr4hxd4llqkkkb8ap8apkdna32rllvar7r576059ci"))))
+ "12p9z8bl1gg8k024m4a6zfz7gf1zbyffardh98raqgabn6knwk22"))))
(build-system gnu-build-system)
(inputs
`(("pango" ,pango)
("cairo" ,cairo)
("glib" ,glib)
("startup-notification" ,startup-notification)
+ ("libjpeg" ,libjpeg-turbo)
("librsvg" ,librsvg)
("libxkbcommon" ,libxkbcommon)
("libxcb" ,libxcb)
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/robm/dzen.git")
+ (url "https://github.com/robm/dzen")
(commit commit)))
(file-name (string-append name "-" version))
(sha256
#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "DESTDIR=" out)))))
+ (home-page "https://github.com/vixus0/xftwidth")
(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
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/dusxmt/nxbelld.git")
+ (url "https://github.com/dusxmt/nxbelld")
(commit version)))
(sha256
(base32
(define-public screen-message
(package
(name "screen-message")
- (version "0.25")
+ (version "0.26")
(source (origin
(method url-fetch)
(uri (string-append
"/screen-message-" version ".tar.gz"))
(sha256
(base32
- "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
+ "0dwgm4z3dfk6xz41w8xiv0hmnwr74gf3ykb91b090hc4ffwsf4mw"))))
(build-system gnu-build-system)
(inputs `(("gtk3" ,gtk+)
("gdk" ,gdk-pixbuf)
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/zoltanp/xrandr-invert-colors.git")
+ (url "https://github.com/zoltanp/xrandr-invert-colors")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public sct
(package
(name "sct")
- (version "0.4")
+ (version "0.5")
(source
(origin
(method url-fetch)
(string-append "https://www.umaxx.net/dl/sct-"
version ".tar.gz"))
(sha256
- (base32
- "0r57z9ki8pvxhawfxys0v5h85z2x211sqxki0xvk1bga88ryldlv"))))
+ (base32 "0lrhx771iccbw04wrhj0ygids1pzmjfc4hvklm30m3p3flvhqf0m"))))
(build-system gnu-build-system)
(arguments
- '(#:make-flags (list "CC=gcc")
- #:tests? #f ; No tests exist.
+ `(#:make-flags
+ (list ,(string-append "CC=" (cc-for-target)))
+ #:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(delete 'configure)
"--with-xkb"
"--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
(native-inputs
- `(("pandoc" ,ghc-pandoc)
+ `(("pandoc" ,pandoc)
("pkg-config" ,pkg-config)))
(inputs
`(("fontconfig" ,fontconfig)
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/bugaevc/wl-clipboard.git")
+ (url "https://github.com/bugaevc/wl-clipboard")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public autocutsel
(package
(name "autocutsel")
- (version "0.10.0")
+ (version "0.10.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/sigmike/autocutsel"
"autocutsel-" version ".tar.gz"))
(sha256
(base32
- "0gsys2dzh4az51ndcsabhlbbrjn2nm75lnjr45kg6r8sm8q66dx2"))))
+ "05zb85imp42birvrc320q20r98qddc5vxx169dnl753l5za0czpi"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f)) ; no "check" target
(define-public jgmenu
(package
(name "jgmenu")
- (version "4.1.0")
+ (version "4.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/johanmalm/jgmenu.git")
+ (url "https://github.com/johanmalm/jgmenu")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "1wsh37rapb1bszlq36hvwxqvfds39hbvbl152m8as4zlh93wfvvk"))))
+ (base32 "13y4ra2hjfqbn2vxyyn4ar5iqklbabyfwksbryc2gzxspw1vz4zq"))))
(build-system gnu-build-system)
(native-inputs
`(("cppcheck" ,cppcheck)
("libxrandr" ,libxrandr)
("pango" ,pango)))
(arguments
- `(#:phases
+ `(#:test-target "test"
+ #: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")
+ (setenv "CC" ,(cc-for-target))
(invoke "./configure"
(string-append "--prefix=" (assoc-ref outputs "out")))
#t)))))
(define-public xwallpaper
(package
(name "xwallpaper")
- (version "0.6.4")
+ (version "0.6.6")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "175fzifvia58vah2x7509drvfn3xfv5d9szgh9x1w1a1w8rcs2hx"))))
+ (base32 "10klm81rs3k3l2i7whpvcsg95x51ja11l86fmwbrvg3kq705p2sr"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
(define-public xsettingsd
(package
(name "xsettingsd")
- (version "1.0.0")
+ (version "1.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/derat/xsettingsd.git")
+ (url "https://github.com/derat/xsettingsd")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
+ (base32 "14gnkz18dipsa2v24f4nm9syxaa7g21iqjm7y65jn849ka2jr1h8"))))
(build-system scons-build-system)
(inputs
`(("libx11" ,libx11)))
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cdown/clipnotify.git")
+ (url "https://github.com/cdown/clipnotify")
(commit version)))
(file-name (git-file-name name version))
(sha256
(install-file "clipnotify" bin)
(install-file "README.md" doc)
#t))))
- #:make-flags (list "CC=gcc")
- ;; the package provides no test suite:
- #:tests? #f))
+ #:make-flags
+ (list ,(string-append "CC=" (cc-for-target)))
+ #:tests? #f)) ; no test suite
(inputs
`(("libx11" ,libx11)
("libXfixes" ,libxfixes)))
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/cdown/clipmenu.git")
+ (url "https://github.com/cdown/clipmenu")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/qnikst/kbdd.git")
+ (url "https://github.com/qnikst/kbdd")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
("glib" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
- `(("dbus-glib", dbus-glib)
+ `(("dbus-glib" ,dbus-glib)
("glib" ,glib)
("libx11" ,libx11)))
(home-page "https://github.com/qnikst/kbdd")
(define-public j4-dmenu-desktop
(package
(name "j4-dmenu-desktop")
- (version "2.17")
+ (version "2.18")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/enkore/j4-dmenu-desktop.git")
+ (url "https://github.com/enkore/j4-dmenu-desktop")
(commit (string-append "r" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0v23fimkn83dcm5p53y2ymhklff3kwppxhf75sm8xmswrzkixpgc"))))
+ "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26"))))
(build-system cmake-build-system)
(native-inputs
`(("catch2" ,catch-framework2)))
`(#:configure-flags '("-DWITH_GIT_CATCH=off")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'find-catch
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("PATH_SUFFIXES catch") "PATH_SUFFIXES catch2"))
+ #t))
(replace 'check
(lambda _
(invoke "./j4-dmenu-tests" "exclude:SearchPath/XDG_DATA_HOME"))))))
(define-public wofi
(package
(name "wofi")
- (version "1.1.2")
+ (version "1.2.4")
(source (origin
(method hg-fetch)
(uri (hg-reference
(file-name (git-file-name name version))
(sha256
(base32
- "086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn"))))
+ "1bnf078fg1kwslzwm1mjxwcqqq3bhk1dzymwfw9gk3brqbxrl75c"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t))
such as sway, similar to @command{rofi}.")
(home-page "https://hg.sr.ht/~scoopta/wofi")
(license license:gpl3+)))
+
+(define-public dex
+ (package
+ (name "dex")
+ (version "0.9.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://github.com/jceb/dex"))
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))
+ #:tests? #f))
+ (inputs
+ `(("python" ,python)))
+ (native-inputs
+ `(("python-sphinx" ,python-sphinx)))
+ (home-page "https://github.com/jceb/dex")
+ (synopsis "Execute DesktopEntry files")
+ (description
+ "@command{dex}, @dfn{DesktopEntry Execution}, is a program to generate
+and execute @file{.desktop} files of the Application type.")
+ (license license:gpl3+)))
+
+(define-public sx
+ (package
+ (name "sx")
+ (version "2.1.6")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Earnestly/sx")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0p24ghp1ygvyc2hv81byhxax7491yhcc5priq5ldv07nzl7akagc"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list (string-append "PREFIX=" out)))
+ #:phases
+ (modify-phases %standard-phases
+ ;; no configure script
+ (delete 'configure))))
+ (propagated-inputs
+ `(("xauth" ,xauth)))
+ (home-page "https://github.com/Earnestly/sx")
+ (synopsis "Start an xorg server")
+ (description
+ "@command{sx} is a simple alternative to both @command{xinit} and
+@command{startx} for starting an Xorg server.")
+ (license license:x11)))
+
+(define-public hsetroot
+ (package
+ (name "hsetroot")
+ (version "1.0.5")
+ (home-page "https://github.com/himdel/hsetroot")
+ (source (origin
+ (method git-fetch)
+ (file-name (git-file-name name version))
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (sha256
+ (base32
+ "1jbk5hlxm48zmjzkaq5946s58rqwg1v1ds2sdyd2ba029hmvr722"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:make-flags
+ (list
+ "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'install 'mkdir-install-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/bin"))))))))
+ (inputs
+ `(("libx11" ,libx11)
+ ("imlib2" ,imlib2)
+ ("libxinerama" ,libxinerama)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (synopsis "Imlib2-based wallpaper changer")
+ (description
+ "The @command{hsetroot} command composes wallpapers for X.
+This package is the fork of hsetroot by Hyriand.")
+ (license license:gpl2+)))