From d748cb5f473960141f49dad06bfc98d6c46ee326 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 7 Mar 2019 22:23:01 +0100 Subject: [PATCH] gnu: Add autorandr. * gnu/packages/xdisorg.scm (autorandr): New variable. --- gnu/packages/xdisorg.scm | 57 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index f0d6ac3eb5..e18d7e9719 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -23,7 +23,7 @@ ;;; Copyright © 2017 Mike Gerwitz ;;; Copyright © 2018 Thomas Sigurdsen ;;; Copyright © 2018, 2019 Rutger Helling -;;; Copyright © 2018 Pierre Neidhardt +;;; Copyright © 2018, 2019 Pierre Neidhardt ;;; Copyright © 2018 Nam Nguyen ;;; ;;; This file is part of GNU Guix. @@ -69,6 +69,7 @@ (define-module (gnu packages xdisorg) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages icu4c) + #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) @@ -132,6 +133,60 @@ (define-public arandr program.") (license license:gpl3+))) +(define-public autorandr + ;; Use latest commit since 1.7 lacks many new features such as the + ;; autorandr_launcher. + (let ((commit "b484c0ea9c9a4838278bbd661a7cc384333c1df8")) + (package + (name "autorandr") + (version (git-version "1.7" "1" commit)) + (home-page "https://github.com/phillipberndt/autorandr") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0da17kzsisjv3s993j5idkk1n2d2cvjdn7pngs2b0ic1r2h5z02h")))) + (build-system python-build-system) + (native-inputs + `(("man-db" ,man-db))) + (inputs + `(("xrandr" ,xrandr) + ("libxcb" ,libxcb))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'configure + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "autorandr.py" + (("popen\\(\"xrandr") (string-append "popen(\"" + (assoc-ref inputs "xrandr") + "/bin/xrandr")) + (("\\[\"xrandr") (string-append "[\"" + (assoc-ref inputs "xrandr") + "/bin/xrandr"))) + #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")))))) + (synopsis "Auto-detect connected displays and load appropiate setup") + (description "Autorandr wraps around xrandr to help with X11 +multi-screen configuration management. It allows the user to create profiles +for various multi-screen setups. Autorandr automatically detects the profiles +that can be activated based on the connected hardware. Hook scripts can be +used to further tweak the behaviour of the different profiles.") + (license license:gpl3+)))) + (define-public xclip (package (name "xclip")