summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Buddelmeijer <hugo@buddelmeijer.nl>2025-09-06 10:42:33 +0200
committerSharlatan Hellseher <sharlatanus@gmail.com>2025-09-28 22:39:06 +0100
commitf3761b6545eed7e2604b2f484fbbfece8988a8ac (patch)
tree04fa4e3fd9746c04ef09f3aaa62e224732698420
parent6853465ca086cfdeb349ab4f5908f3630c19dd64 (diff)
gnu: Add quicktile.
* gnu/packages/wm.scm (quicktile): New variable. Change-Id: I9d6f20044b28ef21bf26d097bc4e14e7cedb1523 Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
-rw-r--r--gnu/packages/wm.scm65
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index ffc4ea3aaa..05cd3a1410 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -82,6 +82,7 @@
;;; Copyright © 2025 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2025 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
+;;; Copyright © 2025 Hugo Buddelmeijer <hugo@buddelmeijer.nl>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1071,6 +1072,70 @@ and locate windows on all your workspaces, using an interactive dmenu
prompt.")
(license license:wtfpl2))))
+(define-public quicktile
+ ;; Latest release, 0.4.0, is 5 years old and does not use pyproject.toml yet.
+ (let ((commit "2c499beedf31d5906e86c482f70129d94e429350")
+ (revision "0"))
+ (package
+ (name "quicktile")
+ (version (git-version "0.4.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ssokolow/quicktile")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "08kwilln32kx2cdg1sg7ffb214fkhacchx8jd64pyjbshmradgxr"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME" "/tmp")
+ (mkdir-p "/tmp/.config")
+ ;; First run creates /tmp/.config/quicktile.cfg.
+ (invoke "xvfb-run"
+ "-a"
+ "./quicktile.sh")
+ ;; test_functional.py moves windows around and thus needs
+ ;; access to an X server.
+ (invoke "xvfb-run"
+ "-a"
+ "python3"
+ "-m"
+ "pytest"
+ "-vv"
+ "tests")))))))
+ (native-inputs
+ (list openbox ;necessary for test_functional.py
+ python-pluggy
+ python-pytest
+ python-pytest-cov
+ python-setuptools
+ xvfb-run))
+ (inputs
+ (list gtk+
+ libwnck
+ python-xlib
+ python-pygobject
+ python-dbus-python))
+ ;; The actual home page https://ssokolow.com/quicktile/
+ ;; gives an SSL error.
+ (home-page "https://github.com/ssokolow/quicktile")
+ (synopsis "window-tiling hotkeys to any X11 desktop")
+ (description
+ "QuickTile is a simple utility, inspired by
+@url{https://github.com/dozius/winsplit-revolution, WinSplit Revolution} for
+Windows, which adds window-tiling keybindings to existing X11 window manager.
+It may be used as a standalone alternative to the keyboard related features of
+the Compiz Grid plugin.")
+ (license license:gpl2+))))
+
(define-public i3lock-color
(package
(name "i3lock-color")