Subject: [PATCH 4/4] gnu: Add rofi-switch-browser-tabs/chromium.

From: Nicolas Graves <[email-masked]>
Date: Thu, 29 Sep 2022 21:52:27 +0200

* gnu/packages/xdisorg.scm (rofi-switch-browser-tabs/chromium): New variable.
---
 gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 9908f29191..2fa12ba220 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -56,6 +56,7 @@
 ;;; Copyright © 2022 Jai Vetrivelan <[email-masked]>
 ;;; Copyright © 2022 Derek Chuank <[email-masked]>
 ;;; Copyright © 2022 Wamm K. D. <[email-masked]>
+;;; Copyright © 2022 Nicolas Graves <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,6 +119,7 @@ (define-module (gnu packages xdisorg)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages node-xyz)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -128,6 +130,7 @@ (define-module (gnu packages xdisorg)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages)
   #:use-module (ice-9 match))
 
@@ -1905,6 +1908,45 @@ (define-public rofi-calc
 natural language input and provide results.")
     (license license:expat)))
 
+(define-public rofi-switch-browser-tabs/chromium
+  (let* ((commit "788cce881ba8c3891175fbbe62b9c799aa47652b")
+         (revision "0"))
+    (package
+      (name "rofi-switch-browser-tabs-chromium")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/kevinmorio/rofi-switch-browser-tabs")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0m4vldx9k6wxx7s7zkkwbj11r7vckvdky8fypf73qzmgl0yn4vmi"))
+         ;; The firefox version is strongly outdated.
+         ;; Firefox and firefox-based browsers will soon (and partially do)
+         ;; support this feature using this same package.
+         ;; Not working for firefox v105.0
+         (modules '((guix build utils)))
+         (snippet '(delete-file-recursively "firefox-switch-tabs"))))
+      (build-system copy-build-system)
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'chmod
+             (lambda _
+               (chmod "chrome-switch-tabs/chrome-switch-tabs" #o555))))
+         #:install-plan
+         (list '("chrome-switch-tabs/chrome-switch-tabs" "bin/"))))
+      (propagated-inputs (list jq node-chrome-remote-interface))
+      (home-page "https://github.com/kevinmorio/rofi-switch-browser-tabs")
+      (synopsis "Use rofi to switch between browser tabs")
+      (description "This packages provides a simple rofi mode to switch between
+tabs in Chromium-based browsers.  It also has experimental support for
+firefox-based browsers.  Once installed, simply run
+@code{rofi -modi 'chrome:chrome-switch-tabs' -show chrome}.")
+      (license license:expat))))
+
 (define-public tint2
   (package
     (name "tint2")
-- 
2.37.3