+doom +nyxt +bat +zellij
This commit is contained in:
73
nyxt/statusline.lisp
Normal file
73
nyxt/statusline.lisp
Normal file
@@ -0,0 +1,73 @@
|
||||
(in-package #:nyxt-user)
|
||||
|
||||
;; Set StatusLines Mode Icons
|
||||
(define-configuration status-buffer ((glyph-mode-presentation-p t)))
|
||||
(define-configuration nyxt/force-https-mode:force-https-mode ((glyph "")))
|
||||
(define-configuration nyxt/blocker-mode:blocker-mode ((glyph "")))
|
||||
(define-configuration nyxt/proxy-mode:proxy-mode ((glyph "")))
|
||||
(define-configuration nyxt/reduce-tracking-mode:reduce-tracking-mode ((glyph "")))
|
||||
(define-configuration nyxt/certificate-exception-mode:certificate-exception-mode ((glyph "")))
|
||||
(define-configuration nyxt/style-mode:style-mode ((glyph "")))
|
||||
(define-configuration nyxt/help-mode:help-mode ((glyph "")))
|
||||
(define-configuration nyxt/web-mode:web-mode ((glyph "ω")))
|
||||
(define-configuration nyxt/auto-mode:auto-mode ((glyph "α")))
|
||||
|
||||
;;;; Set StatusLines URL Icons
|
||||
(defun laconic-format-status-load-status (buffer)
|
||||
(if (web-buffer-p buffer)
|
||||
(case (slot-value buffer 'nyxt::load-status)
|
||||
(:unloaded "∅")
|
||||
(:loading "∞")
|
||||
(:finished ""))
|
||||
""))
|
||||
|
||||
Remove https/www from URL
|
||||
(defun laconic-format-status-url (buffer)
|
||||
(markup:markup
|
||||
(:span
|
||||
(format nil "~a ~a"
|
||||
(laconic-format-status-load-status buffer)
|
||||
(ppcre:regex-replace-all
|
||||
"(https://|www\\.|/$)"
|
||||
(render-url (url buffer))
|
||||
"")))))
|
||||
;;
|
||||
;;;; Set StatusLines Webpage Loadtime
|
||||
(defun laconic-format-status-modes (buffer window)
|
||||
(str:concat
|
||||
(format-status-modes buffer window)
|
||||
" | "
|
||||
(format nil "~d:~d"
|
||||
(mod (+ 5 (local-time:timestamp-hour (local-time:now))) 24)
|
||||
(local-time:timestamp-minute (local-time:now)))))
|
||||
;;
|
||||
;;;; Configure StatusLines Design
|
||||
(defun laconic-format-status (window)
|
||||
(flet ((input-indicating-background ()
|
||||
(format nil "background-color: ~:[#50fa7b~;#ff5555~]"
|
||||
(or (current-mode 'vi-insert)
|
||||
(current-mode 'input-edit)))))
|
||||
(let ((buffer (current-buffer window)))
|
||||
(markup:markup
|
||||
(:div :id "container"
|
||||
(:div :id "controls"
|
||||
:style (input-indicating-background)
|
||||
(markup:raw ""))
|
||||
(:div :class "arrow arrow-right"
|
||||
:style (input-indicating-background) "")
|
||||
(:div :id "url"
|
||||
(markup:raw
|
||||
(laconic-format-status-url buffer)))
|
||||
(:div :class "arrow arrow-right"
|
||||
:style "background-color:#21222C" "")
|
||||
(:div :id "tabs"
|
||||
(title buffer))
|
||||
(:div :class "arrow arrow-left"
|
||||
:style "background-color:#21222C" "")
|
||||
(:div :id "modes"
|
||||
:title (nyxt::list-modes buffer)
|
||||
(laconic-format-status-modes buffer window)))))))
|
||||
;;
|
||||
;;;; Define Current Configuration
|
||||
(define-configuration window
|
||||
((status-formatter #'laconic-format-status)))
|
||||
Reference in New Issue
Block a user