gnu: Add quickswitch-i3.

* gnu/packages/wm.scm (quickswitch-i3): New variable.
* gnu/packages/patches/quickswitch-fix-dmenu-check.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Signed-off-by: 宋文武 <iyzsong@gmail.com>
master
Ivan Vilata i Balaguer 2016-09-21 11:19:20 +02:00 committed by 宋文武
parent c165591d47
commit 37356e0bf8
No known key found for this signature in database
GPG Key ID: 26525665AE727D37
3 changed files with 79 additions and 0 deletions

View File

@ -784,6 +784,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-paste-remove-timing-test.patch \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
%D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/rapicorn-isnan.patch \
%D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/readline-link-ncurses.patch \

View File

@ -0,0 +1,32 @@
Fix check for dmenu (open file mode, dependency on which).
See <https://github.com/proxypoke/quickswitch-for-i3/pull/24>.
--- quickswitch-i3-2.2/quickswitch.py 2016-09-18 19:59:10.257765542 +0200
+++ quickswitch-i3-2.2/quickswitch.py 2016-09-21 10:43:01.277577819 +0200
@@ -24,9 +24,10 @@
import argparse
import subprocess
-import os
import re
+from distutils.spawn import find_executable
+
try:
import i3
except ImportError:
@@ -37,11 +38,8 @@
def check_dmenu():
'''Check if dmenu is available.'''
- devnull = open(os.devnull)
- retcode = subprocess.call(["which", "dmenu"],
- stdout=devnull,
- stderr=devnull)
- return True if retcode == 0 else False
+ executable = find_executable("dmenu")
+ return executable != None
def dmenu(options, dmenu):

View File

@ -11,6 +11,7 @@
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -60,6 +61,7 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages lua)
#:use-module (gnu packages suckless)
#:use-module (guix download)
#:use-module (guix git-download))
@ -246,6 +248,50 @@ subscribe to events.")
(define-public python2-i3-py
(package-with-python2 python-i3-py))
(define-public quickswitch-i3
(let ((commit "ed692b1e8f43b95bd907ced26238ce8ccb2ed28f")
(revision "1")) ; Guix package revision
(package
(name "quickswitch-i3")
(version (string-append "2.2-" revision "."
(string-take commit 7)))
(source
(origin
;; The latest commit is a few years old and just a couple commits
;; after the last tagged release, so we use that latest commit
;; instead of the release.
(method git-fetch)
(uri (git-reference
(url "https://github.com/proxypoke/quickswitch-for-i3.git")
(commit commit)))
(sha256
(base32
"0447077sama80jcdg5p64zjsvafmz5rbdrirhm1adcdjhkh6iqc5"))
(patches (search-patches "quickswitch-fix-dmenu-check.patch"))
(file-name (string-append name "-" version "-checkout"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no tests yet
#:phases (modify-phases %standard-phases
(add-after 'install 'install-doc
;; Copy readme file to documentation directory.
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "out")
"/share/doc/" ,name)))
(install-file "README.rst" doc)
;; Avoid unspecified return value.
#t))))))
(inputs
`(("python-i3-py" ,python-i3-py)
("dmenu" ,dmenu)))
(home-page "https://github.com/proxypoke/quickswitch-for-i3")
(synopsis "Quickly change to and locate windows in the i3 window manager")
(description
"This utility for the i3 window manager allows you to quickly switch to
and locate windows on all your workspaces, using an interactive dmenu
prompt.")
(license (license:non-copyleft "http://www.wtfpl.net/txt/copying/")))))
(define-public xmonad
(package
(name "xmonad")