guix_mirror_bot pushed a commit to branch master
in repository guix.

commit f3761b6545eed7e2604b2f484fbbfece8988a8ac
Author: Hugo Buddelmeijer <[email protected]>
AuthorDate: Sat Sep 6 10:42:33 2025 +0200

    gnu: Add quicktile.
    
    * gnu/packages/wm.scm (quicktile): New variable.
    
    Change-Id: I9d6f20044b28ef21bf26d097bc4e14e7cedb1523
    Modified-by: Sharlatan Hellseher <[email protected]>
    Signed-off-by: Sharlatan Hellseher <[email protected]>
---
 gnu/packages/wm.scm | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

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 <[email protected]>
 ;;; Copyright © 2025 Ricardo Wurmus <[email protected]>
 ;;; Copyright © 2025 Andrew Wong <[email protected]>
+;;; Copyright © 2025 Hugo Buddelmeijer <[email protected]>
 ;;;
 ;;; 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")

Reply via email to