Skip to content

Commit

Permalink
guix.scm: + sbcl-wayflan/latest introduce the latest fix
Browse files Browse the repository at this point in the history
  • Loading branch information
shegeley committed Nov 30, 2024
1 parent 1f2728a commit 1135bff
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 25 deletions.
15 changes: 14 additions & 1 deletion guix.scm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,19 @@

(define %source-dir (dirname (current-filename)))

(define sbcl-wayflan/latest
(let [(commit "f56f6ec42b05100ef7353a831b9f9ad505824c95")
(hash "1l09jzji0c70xh8pv2fn0cqbrayhnfgf4bqps3s846b3dw2hzg2v")]
(package
(inherit sbcl-wayflan)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~shunter/wayflan")
(commit commit)))
(sha256 (base32 hash)))))))

(define-public hatis
(package
(name "hatis")
Expand All @@ -30,6 +43,6 @@
#:asd-systems ''("hatis")))
(version "0.0.1-alpha")
(inputs (list sbcl-alexandria))
(native-inputs (list sbcl-wayflan))))
(native-inputs (list sbcl-wayflan/latest))))

hatis
56 changes: 32 additions & 24 deletions src/hatis/core.lisp
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
(defpackage :xyz.hatis.core
(:use
:wayflan-client
:xyz.shunter.wayflan.client.scanner
:xyz.hatis.interfaces.foreign-toplevel-manager

:xyz.hatis.protocols.data-control
:xyz.hatis.protocols.input-method
:xyz.hatis.protocols.foreign-toplevel-management

:cl)
(:local-nicknames (#:a #:alexandria)))

Expand All @@ -12,32 +15,37 @@
(defparameter foreign-toplevel-handle nil)
(defparameter registry nil)

(defun handle-toplevel-manager (toplevel-manager)
(push (evlambda
(t (name &rest args)
(format t "toplevel-manager event: ~S ~S~%" name args)))
(wl-proxy-hooks toplevel-manager)))

(defun handle-toplevel-handle (toplevel-handle)
(push (evlambda
(t (name &rest args)
(format t "toplevel event: ~S ~S~%" name args)))
(push (lambda (event)
(destructuring-bind (name &rest args) event
(finish-output nil)
(format t "Proxy received event ~S with args ~S~%" event args)
(finish-output nil)))
(wl-proxy-hooks toplevel-handle)))

(defun handle-toplevel-manager (display toplevel-manager)
(push (lambda (event)
(destructuring-bind (name &rest args) event
(finish-output nil)
(format t "Proxy received event ~S with args ~S~%" event args)
(finish-output nil)
(setf foreign-toplevel-handle (first args))
(handle-toplevel-handle foreign-toplevel-handle)))
(wl-proxy-hooks toplevel-manager)))


(defun handle-registry (display)
(let ((registry (wl-display.get-registry display)))
(push
(lambda (event-name &rest event-args)
(when (eq event-name :global)
(destructuring-bind (name interface version) event-args
(when (string= interface "zwlr_foreign_toplevel_manager_v1")
(let ((foreign-toplevel-manager
(wl-registry.bind
registry name
'zwlr-foreign-toplevel-manager-v1 version)))
(handle-toplevel-manager foreign-toplevel-manager))))))
(wl-proxy-hooks registry))
(wl-display-roundtrip display)))
(setf registry (wl-display.get-registry display))
(push
(lambda (event)
(destructuring-bind (name &optional id interface version) event
(when (string= interface "zwlr_foreign_toplevel_manager_v1")
(setf foreign-toplevel-manager
(wl-registry.bind registry id 'zwlr-foreign-toplevel-manager-v1 version))
(handle-toplevel-manager display foreign-toplevel-manager))))
(wl-proxy-hooks registry))
(wl-display-roundtrip display)
(wl-display-roundtrip display))

(defun run ()
(with-open-display (display)
Expand Down

0 comments on commit 1135bff

Please sign in to comment.