;;; 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 ng0 <ng0@n0.is>
+;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; 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 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 David Wilson <david@daviwil.com>
;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Damien Cassou <damien@cassou.me>
+;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
#: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 (gnu packages pkg-config)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
(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
(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 libfakekey
(package
(name "libfakekey")
- (version "0.1")
+ (version "0.3")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://downloads.yoctoproject.org/releases"
- "/matchbox/libfakekey/" version "/libfakekey-"
- version ".tar.bz2"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.yoctoproject.org/git/libfakekey")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "1501l0bflcrhqbf12n7a7cqilvr0w4xawxw0vw75p2940nkl4464"))))
+ (base32 "1jw1d4wc1ysiijirc7apnz3sryrxbl9akgb92mh06dvfkz2nblj0"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list "AM_LDFLAGS=-lX11")))
+ `(#:make-flags (list "AM_LDFLAGS=-lX11")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'bootstrap
+ ;; ./autogen.sh calls ./configure before shebangs have been patched.
+ (lambda _
+ (invoke "autoreconf" "-vfi"))))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+
+ ;; For bootstrapping from git.
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
(inputs
`(("libxtst" ,libxtst)
("libx11" ,libx11)))
("libxinerama" ,libxinerama)
("libxtst" ,libxtst)
("libxkbcommon" ,libxkbcommon)))
- (home-page "http://www.semicomplete.com/projects/xdotool")
+ (home-page "https://www.semicomplete.com/projects/xdotool/")
(synopsis "Fake keyboard/mouse input, window management, and more")
(description "Xdotool lets you simulate keyboard input and mouse activity,
move and resize windows, etc. It does this using X11's XTEST extension and
(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.101")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://dri.freedesktop.org/libdrm/libdrm-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "19vqbhqljhln0lrpnv3s7y3lkhsdcp76dl8bhqj3cis9ism1pwyx"))
+ (patches (search-patches "libdrm-realpath-virtio.patch"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
(define-public mtdev
(package
(name "mtdev")
- (version "1.1.5")
+ (version "1.1.6")
(source
(origin
(method url-fetch)
version ".tar.bz2"))
(sha256
(base32
- "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
+ "1q700h9dqcm3zl6c3gj0qxxjcx6ibw2c51wjijydhwdcm26v5mqm"))))
(build-system gnu-build-system)
+ (arguments '(#:configure-flags '("--disable-static")))
(home-page "http://bitmath.org/code/mtdev/")
(synopsis "Multitouch protocol translation library")
(description "Mtdev is a stand-alone library which transforms all
(home-page "http://tomas.styblo.name/wmctrl/")
(synopsis "Command-line tool to control X window managers")
(description
- "Wmctrl allows to interact with an X window manager that is compatible
+ "Wmctrl interacts with an X window manager that is compatible
with the EWMH/NetWM specification. It can query the window manager for
information, and request for certain window management actions (resize and
move windows, switch between desktops, etc.).")
(define-public scrot
(package
(name "scrot")
- (version "1.2")
+ (version "1.4")
(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
+ "12xq6glg70icwsvbnfw9gm4dahlbnrc7b6adpd0mpf89h4sj2gds"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
`(("giblib" ,giblib)
("libx11" ,libx11)
("libXcursor" ,libxcursor)
+ ("libxcomposite" ,libxcomposite)
("libXfixes" ,libxfixes)))
(home-page "https://github.com/resurrecting-open-source-projects/scrot")
(synopsis "Command-line screen capture utility for X Window System")
(description
- "Scrot allows to save a screenshot of a full screen, a window or a part
+ "Scrot saves a screenshot of a full screen, a window or a part
of the screen selected by mouse.")
;; This license removes a clause about X Consortium from the original
;; X11 license.
(define-public slop
(package
(name "slop")
- (version "7.4")
+ (version "7.5")
(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
(base32
- "0fgd8a2dqkg64all0f96sca92sdss9r3pzmv5kck46b99z2325z6"))))
+ "1k8xxb4rj2fylr4vj16yvsf73cyywliz9cy78pl4ibmi03jhg837"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no "check" target
(define-public maim
(package
(name "maim")
- (version "5.5.3")
+ (version "5.6.3")
(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
(base32
- "1kbxsz8whfxl5blwsvpva2q95zwy72argwhi1cfqh5lrhzq5zrpp"))))
+ "181mjjrjb9fs1ficcv9miqbk94v95j1yli7fjp2dj514g7nj9l3x"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no "check" target
(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.59")
+ (version "5.62")
(source (origin
(method url-fetch)
(uri (list (string-append "http://sillycycle.com/xlock/"
"xlockmore-" version ".tar.xz")))
(sha256
(base32
- "0lajc5a4lki33b9mzfsi74q4hbivbmhwysp7mib4ivnyxianhaid"))))
+ "0b05wgj4mpssy4hd7km5c48i454dfg45p11mfmsr7xjd2gnz5gqi"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "--enable-appdefaultdir="
("libXext" ,libxext)
("libXt" ,libxt)
("linux-pam" ,linux-pam)))
- (home-page "http://sillycycle.com/xlockmore.html")
+ (home-page "https://sillycycle.com/xlockmore.html")
(synopsis "Screen locker for the X Window System")
(description
"XLockMore is a classic screen locker and screen saver for the
(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)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(inputs
`(("libx11" ,libx11)
- ("guile" ,guile-2.0)))
+ ("guile" ,guile-2.2)))
(home-page "https://www.nongnu.org/xbindkeys/")
(synopsis "Associate a combination of keys with a shell command")
(description
(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
(home-page "https://github.com/alols/xcape")
(synopsis "Use a modifier key in X.org as another key")
(description
- "This utility for X.org allows to use modifier key as another key when
+ "This utility for X.org uses a modifier key as another key when
pressed and released on its own. The default behaviour is to generate the
Escape key when Left Control is pressed and released on its own.")
(license license:gpl3+)))
(define-public libwacom
(package
(name "libwacom")
- (version "1.2")
+ (version "1.4")
(source (origin
(method url-fetch)
(uri (string-append
"libwacom-" version "/libwacom-" version ".tar.bz2"))
(sha256
(base32
- "1hv3z2qkvycqcyv99zfpbbgrlbyppdq8kk2y9x51578mwbgcy162"))))
+ "1rk661cymmahak9rw0wcssnfszbngq74vp7zc2cwyg6yrjbif1lh"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--disable-static")))
(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)
(define-public xscreensaver
(package
(name "xscreensaver")
- (version "5.43")
+ (version "5.44")
(source
(origin
(method url-fetch)
(string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
version ".tar.gz"))
(sha256
- (base32 "1571pj1a9998sq14y9366s2rw9wd2kq3l3dvvsk610vyd0fki3qm"))))
+ (base32 "15bv05vpfjwsrqbazrjmm382jd7vvw0mp6y9vasn6wvxzjf0in3k"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no check target
"--without-readdisplay")
#:make-flags (list (string-append "AD_DIR="
(assoc-ref %outputs "out")
- "/usr/lib/X11/app-defaults"))))
+ "/lib/X11/app-defaults"))))
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
"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")
(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
`(#:tests? #f))
(synopsis "Use external screen locker on events")
(description "@code{xss-lock} listens to X signals to fire up a
-user-defined screensaver. In effect this allows to automatically lock the
+user-defined screensaver. In effect this automatically locks the
screen when closing a laptop lid or after a period of user inactivity (as set
with @code{xset s TIMEOUT}). The notifier command, if specified, is executed
first. Additionally, xss-lock uses the inhibition logic to lock the screen
(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)
(define-public wl-clipboard
(package
(name "wl-clipboard")
- (version "2.0.0_beta2")
+ (version "2.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/bugaevc/wl-clipboard.git")
- (commit version)))
+ (url "https://github.com/bugaevc/wl-clipboard")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0wyqbaph9v1v6lwfcjf8gjhdl70icpss4wapshzfxcz3l9m1p8hv"))))
+ (base32 "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public jgmenu
(package
(name "jgmenu")
- (version "4.0.1")
+ (version "4.1.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
- "1q0rpg2d96sn3rrdi8m7bngnxxqyxilpjxi7skiw4gvpiv1akxjp"))))
+ "1wsh37rapb1bszlq36hvwxqvfds39hbvbl152m8as4zlh93wfvvk"))))
(build-system gnu-build-system)
(native-inputs
`(("cppcheck" ,cppcheck)
(home-page "https://jgmenu.github.io/")
(license license:gpl2)))
+(define-public xwallpaper
+ (package
+ (name "xwallpaper")
+ (version "0.6.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stoeckmann/xwallpaper")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "121ai4dc0v65qk12gn9w62ixly8hc8a5qrygkbb82vy8ck4jqxj7"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libjpeg-turbo" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libxpm" ,libxpm)
+ ("pixman" ,pixman)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-image" ,xcb-util-image)))
+ (home-page "https://github.com/stoeckmann/xwallpaper")
+ (synopsis "Wallpaper setting utility for X")
+ (description
+ "The xwallpaper utility allows you to set image files as your X
+wallpaper. JPEG, PNG, and XPM file formats are supported.
+
+The wallpaper is also advertised to programs which support semi-transparent
+backgrounds.")
+ (license license:isc)))
+
(define-public xwrits
(package
(name "xwrits")
(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
"env = Environment(
ENV = {
'PATH': os.environ['PATH'],
- 'CPATH': os.environ['CPATH'],
+ 'CPATH': os.environ['C_INCLUDE_PATH'],
'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
},")
not running. With a simple @file{.xsettingsd} configuration file one can avoid
configuring visual settings in different UI toolkits separately.")
(license license:bsd-3)))
+
+(define-public clipnotify
+ (package
+ (name "clipnotify")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cdown/clipnotify")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1v3ydm5ljy8z1savmdxrjyx7a5bm5013rzw80frp3qbbjaci0wbg"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (doc (string-append %output "/share/doc/" ,name "-" ,version)))
+ (install-file "clipnotify" bin)
+ (install-file "README.md" doc)
+ #t))))
+ #:make-flags
+ (list ,(string-append "CC=" (cc-for-target)))
+ #:tests? #f)) ; no test suite
+ (inputs
+ `(("libx11" ,libx11)
+ ("libXfixes" ,libxfixes)))
+ (home-page "https://github.com/cdown/clipnotify")
+ (synopsis "Notify on new X clipboard events")
+ (description "@command{clipnotify} is a simple program that, using the
+XFIXES extension to X11, waits until a new selection is available and then
+exits.
+
+It was primarily designed for clipmenu, to avoid polling for new selections.
+
+@command{clipnotify} doesn't try to print anything about the contents of the
+selection, it just exits when it changes. This is intentional -- X11's
+selection API is verging on the insane, and there are plenty of others who
+have already lost their sanity to bring us xclip/xsel/etc. Use one of those
+tools to complement clipnotify.")
+ (license license:public-domain)))
+
+(define-public clipmenu
+ (let ((commit "bcbe7b144598db4a103f14e8408c4b7327d6d5e1")
+ (revision "1"))
+ (package
+ (name "clipmenu")
+ (version (string-append "6.0.1-"
+ revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cdown/clipmenu")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0053j4i14lz5m2bzc5sch5id5ilr1bl196mp8fp0q8x74w3vavs9"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (doc (string-append %output "/share/doc/"
+ ,name "-" ,version)))
+ (install-file "clipdel" bin)
+ (install-file "clipmenu" bin)
+ (install-file "clipmenud" bin)
+ (install-file "README.md" doc)
+ #t)))
+ (add-after 'install 'wrap-script
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (clipnotify (assoc-ref inputs "clipnotify"))
+ (coreutils-minimal (assoc-ref inputs "coreutils-minimal"))
+ (gawk (assoc-ref inputs "gawk"))
+ (util-linux (assoc-ref inputs "util-linux"))
+ (xdotool (assoc-ref inputs "xdotool"))
+ (xsel (assoc-ref inputs "xsel")))
+ (for-each
+ (lambda (prog)
+ (wrap-script (string-append out "/bin/" prog)
+ `("PATH" ":" prefix
+ ,(map (lambda (dir)
+ (string-append dir "/bin"))
+ (list clipnotify coreutils-minimal
+ gawk util-linux xdotool xsel)))))
+ '("clipmenu" "clipmenud" "clipdel")))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; substitute a shebang appearing inside a string (the test
+ ;; file writes this string to a temporary file):
+ (substitute* "tests/test-clipmenu"
+ (("#!/usr/bin/env bash")
+ (string-append "#!" (which "bash"))))
+ (invoke "tests/test-clipmenu")
+ #t)))))
+ (inputs
+ `(("clipnotify" ,clipnotify)
+ ("coreutils-minimal" ,coreutils-minimal)
+ ("gawk" ,gawk)
+ ("guile" ,guile-3.0) ; for wrap-script
+ ("util-linux" ,util-linux)
+ ("xdotool" ,xdotool)
+ ("xsel" ,xsel)))
+ (home-page "https://github.com/cdown/clipmenu")
+ (synopsis "Simple clipboard manager using dmenu or rofi and xsel")
+ (description "Start @command{clipmenud}, then run @command{clipmenu} to
+select something to put on the clipboard.
+
+When @command{clipmenud} detects changes to the clipboard contents, it writes
+them out to the cache directory. @command{clipmenu} reads the cache directory
+to find all available clips and launches @command{dmenu} (or @command{rofi},
+depending on the value of @code{CM_LAUNCHER}) to let the user select a clip.
+After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.")
+ (license license:public-domain))))
+
+(define-public kbdd
+ (package
+ (name "kbdd")
+ (version "0.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/qnikst/kbdd")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0qkq75grbd4wkx4nlvswgavpijk9ad0pzqyj89a0ayjsbsn36pqy"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("glib" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("dbus-glib", dbus-glib)
+ ("glib" ,glib)
+ ("libx11" ,libx11)))
+ (home-page "https://github.com/qnikst/kbdd")
+ (synopsis "Per-window keyboard layout switching daemon for X")
+ (description "@command{kbdd} is a simple keyboard layout switching
+program, which is designed to run in an X11 session and remember
+keyboard layouts on a per-window basis. That can be very handy for a
+user of a non-US keyboard who does not want to jump through layouts back
+and forth while typing in terminals (mostly in a latin alphabet) and
+some kind of chat (in native language).
+
+@command{kbdd} also supports D-Bus signals, which makes it possible to
+create layout indicator widgets.")
+ (license license:bsd-2)))
+
+(define-public j4-dmenu-desktop
+ (package
+ (name "j4-dmenu-desktop")
+ (version "2.17")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/enkore/j4-dmenu-desktop")
+ (commit (string-append "r" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0v23fimkn83dcm5p53y2ymhklff3kwppxhf75sm8xmswrzkixpgc"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("catch2" ,catch-framework2)))
+ (arguments
+ `(#: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"))))))
+ (synopsis "Fast desktop menu")
+ (description
+ "j4-dmenu-desktop is a replacement for i3-dmenu-desktop. Its purpose
+is to find @file{.desktop} files and offer you a menu to start an application
+using @command{dmenu}.")
+ (home-page "https://github.com/enkore/j4-dmenu-desktop")
+ (license license:gpl3+)))
+
+(define-public wofi
+ (package
+ (name "wofi")
+ (version "1.1.2")
+ (source (origin
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://hg.sr.ht/~scoopta/wofi")
+ (changeset (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk3" ,gtk+)
+ ("wayland" ,wayland)))
+ (synopsis "Launcher/menu program for wayland")
+ (description
+ "Wofi is a launcher/menu program for wlroots based wayland compositors
+such as sway, similar to @command{rofi}.")
+ (home-page "https://hg.sr.ht/~scoopta/wofi")
+ (license license:gpl3+)))