Nyxt: Use new status format style.

master
Pierre Neidhardt 2020-11-04 16:00:38 +01:00
parent 541c4cbe60
commit 9a45cb7d74
1 changed files with 68 additions and 48 deletions

View File

@ -193,62 +193,82 @@ format."
"~/common-lisp" "~/common-lisp"
"~/.local/share/emacs/site-lisp")) "~/.local/share/emacs/site-lisp"))
(defvar my-status-style (defun my-status-style (&key (mode-background-color "rgb(120,120,120)"))
#.(cl-css:css (cl-css:css
'((body `((body
:background "rgb(200, 0, 0)" :background "rgb(160, 160, 160)"
:font-size "12px" :font-size "14px"
:color "rgb(32, 32, 32)" :color "rgb(32, 32, 32)"
:padding 0 :padding 0
:line-height "16px" :margin 0
:margin 0) :line-height "20px")
("#modes" (".arrow"
:border-right "2px solid rgb(120, 120, 120)" :width "10px"
:display "inline-block" :height "20px")
:padding "0 5px 0 5px" (".arrow-right"
:margin "0 5px 0 0") :clip-path "polygon(0 100%, 100% 50%, 0 0)")
(.status-menu (".arrow-left"
:padding-left "4px") :clip-path "polygon(0 50%, 100% 100%, 100% 0)")
(.button ("#container"
:background-color "rgb(160, 160, 160)" :display "grid"
:color "black" ;; Columns: controls, arrow, url, arrow, modes
:height "100%" :grid-template-columns "115px 10px auto 10px auto"
:text-decoration "none" :overflow-y "hidden")
:border-radius "2px" ("#controls"
:padding-left "2px" :background-color "rgb(80,80,80)"
:padding-right "2px" :padding-left "5px"
:margin-left "2px" :overflow "hidden"
:margin-right "2px") :white-space "nowrap")
(|.button:hover| ("#url"
:color "white")))) :background-color "rgb(160,160,160)"
:min-width "100px"
:text-overflow "ellipsis"
:overflow-x "hidden"
:white-space "nowrap"
:padding-left "15px"
:padding-right "10px"
:margin-left "-10px")
("#modes"
:background-color ,mode-background-color
:color "rgb(230, 230, 230)"
:text-align "right"
:padding-right "5px"
;; Uncomment the following to trim the mode list.
;; :text-overflow "ellipsis"
;; :overflow-x "hidden"
:white-space "nowrap")
(.button
:color "rgb(230, 230, 230)"
:text-decoration "none"
:padding-left "2px"
:padding-right "2px"
:margin-left "2px"
:margin-right "2px")
(|.button:hover|
:color "black"))))
(defun my-format-status (window) (defun my-format-status (window)
(let ((buffer (current-buffer window))) (let ((buffer (current-buffer window)))
(if (or (internal-buffer-p buffer) (if (or (internal-buffer-p buffer)
(find-submode buffer 'proxy-mode)) (find-submode buffer 'proxy-mode))
(setf (style (status-buffer window)) (setf (style (status-buffer window))
(getf (mopu:slot-properties 'status-buffer 'style) :initform)) (my-status-style))
(setf (style (status-buffer window)) (setf (style (status-buffer window))
my-status-style)) (my-status-style :mode-background-color "rgb(255,0,0)")))
(markup:markup (markup:markup
(:div :id "modes" (:div :id "container"
(:b (:div :id "controls"
(format nil "~{~a~^ ~}" (markup:raw (format-status-buttons)))
(mapcar (lambda (m) (str:replace-all "-mode" "" (str:downcase (mode-name m)))) (:div :class "arrow arrow-right"
(modes buffer))))) :style "background-color:rgb(80,80,80)" "")
(:a :class "button" :title "Backwards" :href (nyxt::lisp-url '(nyxt/web-mode:history-backwards)) "←") (:div :id "url"
(:a :class "button" :title "Forwards" :href (nyxt::lisp-url '(nyxt/web-mode:history-forwards)) "→") (markup:raw
(:a :class "button" :title "Reload" :href (nyxt::lisp-url '(nyxt:reload-current-buffer)) "↺") (format-status-load-status buffer)
(:a :class "button" :title "Execute" :href (nyxt::lisp-url '(nyxt:execute-command)) "⚙") (format-status-url buffer)))
(:a :class "button" :title "Buffers" :href (nyxt::lisp-url '(nyxt::list-buffers)) "≡") (:div :class "arrow arrow-left"
(:span (if (and (web-buffer-p buffer) :style "background-color:rgb(220,120,120);background-color:rgb(120,120,120)" "")
(eq (slot-value buffer 'nyxt::load-status) :loading)) (:div :id "modes"
"Loading: " "")) (format-status-modes buffer))))))
(:a :class "button"
:href (nyxt::lisp-url '(nyxt:set-url-from-current-url))
(format nil " ~a — ~a"
(object-display (url buffer))
(title buffer))))))
(define-configuration window (define-configuration window
((status-formatter #'my-format-status))) ((status-formatter #'my-format-status)))