diff options
Diffstat (limited to 'gnu/packages/xdisorg.scm')
-rw-r--r-- | gnu/packages/xdisorg.scm | 201 |
1 files changed, 155 insertions, 46 deletions
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 256b86a39a..7cf8cc9a67 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -14,7 +14,7 @@ ;;; 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, 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> @@ -27,7 +27,7 @@ ;;; 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> @@ -58,6 +58,7 @@ #: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) @@ -161,7 +162,7 @@ program.") (define-public autorandr (package (name "autorandr") - (version "1.9") + (version "1.10.1") (home-page "https://github.com/phillipberndt/autorandr") (source (origin @@ -171,8 +172,10 @@ program.") (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))) @@ -187,18 +190,20 @@ program.") (("/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 @@ -210,7 +215,7 @@ used to further tweak the behaviour of the different profiles.") (define-public bemenu (package (name "bemenu") - (version "0.2.0") + (version "0.4.1") (source (origin (method git-fetch) @@ -219,10 +224,18 @@ used to further tweak the behaviour of the different profiles.") (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) @@ -241,7 +254,7 @@ used to further tweak the behaviour of the different profiles.") "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 @@ -482,18 +495,16 @@ rasterisation.") (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 @@ -615,7 +626,7 @@ move windows, switch between desktops, etc.).") (define-public scrot (package (name "scrot") - (version "1.2") + (version "1.3") (source (origin (method git-fetch) @@ -625,7 +636,7 @@ move windows, switch between desktops, etc.).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "08gkdby0ysx2mki57z81zlm7vfnq9c1gq692xw67cg5vv2p3320w")))) + (base32 "0x70hd59ik37kqd8xqpwrz46np01jv324iz28x2s0kk36d7sblsj")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -793,7 +804,7 @@ to find buttons, etc, on the screen to click on.") (define-public xbanish (package (name "xbanish") - (version "1.6") + (version "1.7") (home-page "https://github.com/jcs/xbanish") (source (origin (method git-fetch) @@ -802,14 +813,14 @@ to find buttons, etc, on the screen to click on.") (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) @@ -886,7 +897,7 @@ transparent text on your screen.") (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 @@ -896,11 +907,13 @@ transparent text on your screen.") ".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 @@ -1151,6 +1164,50 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") (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))) @@ -1159,7 +1216,13 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") ("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 @@ -1187,6 +1250,24 @@ color temperature should be set to match the lamps in your room.") (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) @@ -1504,13 +1585,13 @@ program for X11. It was designed to be fast, tiny and scriptable in any languag #: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 @@ -1828,7 +1909,7 @@ colors on all monitors attached to an XRandR-capable X11 display server.") (define-public sct (package (name "sct") - (version "0.4") + (version "0.5") (source (origin (method url-fetch) @@ -1836,12 +1917,12 @@ colors on all monitors attached to an XRandR-capable X11 display server.") (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) @@ -2188,9 +2269,9 @@ configuring visual settings in different UI toolkits separately.") (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))) @@ -2358,3 +2439,31 @@ 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+))) |