diff options
Diffstat (limited to '.config/nyxt/hsplit.lisp')
-rw-r--r-- | .config/nyxt/hsplit.lisp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/.config/nyxt/hsplit.lisp b/.config/nyxt/hsplit.lisp new file mode 100644 index 0000000..2f49510 --- /dev/null +++ b/.config/nyxt/hsplit.lisp @@ -0,0 +1,25 @@ +(in-package #:nyxt-user) + +(define-panel-command hsplit-internal (&key (url (quri:render-uri (url (current-buffer))))) + (panel "*Duplicate panel*" :right) + "Duplicate the current buffer URL in the panel buffer on the right. + +A poor man's hsplit :)" + (setf (ffi-width panel) 550) + (run-thread "URL loader" + (sleep 0.3) + (buffer-load (quri:uri url) :buffer panel)) + "") + +(define-command-global close-all-panels () + "Close all the panel buffers there are." + (alexandria:when-let ((panels (nyxt/renderer/gtk::panel-buffers-right (current-window)))) + (delete-panel-buffer :window (current-window) :panels panels)) + (alexandria:when-let ((panels (nyxt/renderer/gtk::panel-buffers-left (current-window)))) + (delete-panel-buffer :window (current-window) :panels panels))) + +(define-command-global hsplit () + "Based on `hsplit-internal' above." + (if (nyxt/renderer/gtk::panel-buffers-right (current-window)) + (delete-all-panel-buffers (current-window)) + (hsplit-internal))) |