Add a macro to define statusbar units that takes care of timers
This commit is contained in:
parent
0064223dec
commit
d5059ac258
|
@ -245,11 +245,11 @@
|
||||||
;; their flag is active otherwise they will be skipped
|
;; their flag is active otherwise they will be skipped
|
||||||
|
|
||||||
(let ((mline (or (plist-get fg42/editor-cube-params :modeline)
|
(let ((mline (or (plist-get fg42/editor-cube-params :modeline)
|
||||||
fg42/default-modeline)))
|
#'fg42/default-modeline)))
|
||||||
|
(fg42/statusbar-cube)
|
||||||
;; (fg42/modeline-cube)
|
;; (fg42/modeline-cube)
|
||||||
;; (fg42/setup-modeline-format mline)
|
(fg42/setup-modeline-format mline)
|
||||||
(fg42/statusbar-cube))
|
)
|
||||||
|
|
||||||
(fg42/font-cube)
|
(fg42/font-cube)
|
||||||
(fg42/pinentry-cube)
|
(fg42/pinentry-cube)
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
;;; IconsCubes --- The modeline related cubes for FG42 -*- lexical-binding: t; -*-
|
||||||
|
;;
|
||||||
|
;; Copyright (c) 2010-2021 Sameer Rahmani & Contributors
|
||||||
|
;;
|
||||||
|
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
;; URL: https://gitlab.com/FG42/FG42
|
||||||
|
;; Version: 3.0.0
|
||||||
|
;;
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
;;
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
;;
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;; Code:
|
||||||
|
(require 'fpkg)
|
||||||
|
(require 'fg42/cube)
|
||||||
|
|
||||||
|
|
||||||
|
;; TODO: Break this into two cubes
|
||||||
|
(defcube fg42/all-the-icons-cube
|
||||||
|
"Install the [[https://github.com/domtronn/all-the-icons.el][all-the-icons.el]]
|
||||||
|
package."
|
||||||
|
(:title "All the icons cube"
|
||||||
|
:flag all-the-icons
|
||||||
|
:flag-default t)
|
||||||
|
|
||||||
|
(fpkg/use all-the-icons
|
||||||
|
:if (display-graphic-p)))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'cubes/icons)
|
||||||
|
;;; icons.el ends here
|
|
@ -23,6 +23,11 @@
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(require 'fpkg)
|
(require 'fpkg)
|
||||||
(require 'fg42/cube)
|
(require 'fg42/cube)
|
||||||
|
(require 'cubes/icons)
|
||||||
|
|
||||||
|
(autoload-cube 'fg42/statusbar-default
|
||||||
|
"modeline/statusbar-default.el"
|
||||||
|
"The default StatusBar modeline.")
|
||||||
|
|
||||||
|
|
||||||
;; TODO: Break this into two cubes
|
;; TODO: Break this into two cubes
|
||||||
|
@ -34,8 +39,10 @@
|
||||||
:flag-default t)
|
:flag-default t)
|
||||||
|
|
||||||
(defun fg42/mini-modeline-setter (def)
|
(defun fg42/mini-modeline-setter (def)
|
||||||
(setq-default mini-modeline-l-format (plist-get def :long))
|
(let ((def-list (func def)))
|
||||||
(setq-default mini-modeline-r-format (plist-get def :brief)))
|
(setq-default mini-modeline-l-format (plist-get def-list :long))
|
||||||
|
(setq-default mini-modeline-r-format (plist-get def-list :brief))))
|
||||||
|
|
||||||
|
|
||||||
(fpkg/use smart-mode-line
|
(fpkg/use smart-mode-line
|
||||||
:straight (smart-mode-line :source melpa)
|
:straight (smart-mode-line :source melpa)
|
||||||
|
@ -59,6 +66,7 @@
|
||||||
:config
|
:config
|
||||||
(add-hook 'fg42-after-init-hook #'mini-modeline-mode)))
|
(add-hook 'fg42-after-init-hook #'mini-modeline-mode)))
|
||||||
|
|
||||||
|
|
||||||
(defcube fg42/statusbar-cube
|
(defcube fg42/statusbar-cube
|
||||||
"Status bar replaces the default mode line aned merges with
|
"Status bar replaces the default mode line aned merges with
|
||||||
the mini buffer to provide a minimal interface for displaying
|
the mini buffer to provide a minimal interface for displaying
|
||||||
|
@ -68,8 +76,15 @@ valuable information."
|
||||||
:group modeline
|
:group modeline
|
||||||
:flag-default t)
|
:flag-default t)
|
||||||
|
|
||||||
|
|
||||||
|
(fg42/all-the-icons-cube)
|
||||||
|
|
||||||
(defun fg42/statusbar-setter (def)
|
(defun fg42/statusbar-setter (def)
|
||||||
(setq-default fg42/statusbar-components (plist-get def :brief)))
|
(unless (null def)
|
||||||
|
(setq-default fg42/statusbar-components
|
||||||
|
(plist-get (funcall def) :brief))
|
||||||
|
(setq-default fg42/statusbar-components
|
||||||
|
(plist-get (funcall #'fg42/statusbar-default) :brief))))
|
||||||
|
|
||||||
(setq fg42/modeline-setter #'fg42/statusbar-setter)
|
(setq fg42/modeline-setter #'fg42/statusbar-setter)
|
||||||
|
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
;;; ModelineCubes --- The modeline related cubes for FG42 -*- lexical-binding: t; -*-
|
|
||||||
;;
|
|
||||||
;; Copyright (c) 2010-2021 Sameer Rahmani & Contributors
|
|
||||||
;;
|
|
||||||
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
|
||||||
;; URL: https://gitlab.com/FG42/FG42
|
|
||||||
;; Version: 3.0.0
|
|
||||||
;;
|
|
||||||
;; This program is free software; you can redistribute it and/or modify
|
|
||||||
;; it under the terms of the GNU General Public License as published by
|
|
||||||
;; the Free Software Foundation, either version 3 of the License, or
|
|
||||||
;; (at your option) any later version.
|
|
||||||
;;
|
|
||||||
;; This program is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License for more details.
|
|
||||||
;;
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
;;
|
|
||||||
;;; Commentary:
|
|
||||||
;;; Code:
|
|
||||||
(require 'doom-modeline)
|
|
||||||
(require 'mini-modeline)
|
|
||||||
|
|
||||||
|
|
||||||
(defun fg42/setup-mini-modeline ()
|
|
||||||
"Setup the doom modeline to work with mini modeline."
|
|
||||||
;; (add-hook 'minibuffer-inactive-mode-hook
|
|
||||||
;; (lambda ()
|
|
||||||
;; (make-local-variable 'face-remapping-alist)
|
|
||||||
;; (add-to-list 'face-remapping-alist '(default (:background "#21252b")))))
|
|
||||||
|
|
||||||
(doom-modeline-def-modeline 'minibuffer-line
|
|
||||||
'(modals
|
|
||||||
workspace-name
|
|
||||||
window-number
|
|
||||||
matches
|
|
||||||
buffer-info
|
|
||||||
remote-host
|
|
||||||
buffer-position
|
|
||||||
word-count
|
|
||||||
selection-info)
|
|
||||||
'(misc-info major-mode process vcs lsp checker " \n"))
|
|
||||||
|
|
||||||
(setq mini-modeline-r-format '(:eval (doom-modeline-format--minibuffer-line)))
|
|
||||||
(setq mini-modeline-right-padding 1
|
|
||||||
mini-modeline-enhance-visual nil)
|
|
||||||
(set-face-attribute 'mode-line nil :box nil)
|
|
||||||
(set-face-attribute 'mini-modeline-mode-line nil :background (face-background 'modus-theme-intense-blue) :height 0.2)
|
|
||||||
(set-face-attribute 'mini-modeline-mode-line-inactive nil :background (face-background 'fringe) :height 0.2))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'cubes/modeline/setup)
|
|
||||||
;;; setup.el ends here
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
|
||||||
|
;;
|
||||||
|
;; Copyright (c) 2010-2022 Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
;;
|
||||||
|
;; Author: Sameer Rahmani <lxsameer@gnu.org>
|
||||||
|
;; URL: https://gitlab.com/FG42/FG42
|
||||||
|
;; Version: 3.0.0
|
||||||
|
;;
|
||||||
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
;;
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
;;
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;; Code:
|
||||||
|
(require 'fg42/modeline)
|
||||||
|
(require 'fg42/statusbar)
|
||||||
|
|
||||||
|
|
||||||
|
(defbar-unit battery 30 "B-"
|
||||||
|
(format "B%s" (with-temp-buffer
|
||||||
|
(insert-file-contents "/sys/class/power_supply/BAT0/capacity")
|
||||||
|
(buffer-string))))
|
||||||
|
|
||||||
|
;; The default modeline for FG42 that is compatible with
|
||||||
|
;; the FG42's status bar only
|
||||||
|
(defmode-line fg42/statusbar-default
|
||||||
|
(if (display-graphic-p)
|
||||||
|
(progn
|
||||||
|
;; We are in the graphical world
|
||||||
|
(require 'all-the-icons)
|
||||||
|
|
||||||
|
(list
|
||||||
|
:brief (list
|
||||||
|
'battery
|
||||||
|
"|" '(buffer-name) "|" '(format-mode-line "%l:%c") "|" '(format-time-string "%m-%d %H:%M"))
|
||||||
|
:long " "))
|
||||||
|
;; No GUI
|
||||||
|
(list
|
||||||
|
:brief (list)
|
||||||
|
:long "")))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'fg42/modeline/statusbar-default)
|
||||||
|
;;; statusbar-default.el ends here
|
|
@ -28,6 +28,9 @@
|
||||||
(defvar fg42-after-init-hook nil
|
(defvar fg42-after-init-hook nil
|
||||||
"The hook tha runs when FG42 finished running the user configuration")
|
"The hook tha runs when FG42 finished running the user configuration")
|
||||||
|
|
||||||
|
(defvar fg42/debug-p nil
|
||||||
|
"The hook tha runs when FG42 finished running the user configuration")
|
||||||
|
|
||||||
(defvar fg42-home (getenv "FG42_HOME")
|
(defvar fg42-home (getenv "FG42_HOME")
|
||||||
"The pass to fg42-home.")
|
"The pass to fg42-home.")
|
||||||
|
|
||||||
|
|
|
@ -128,13 +128,13 @@
|
||||||
;; Run the pre init hook
|
;; Run the pre init hook
|
||||||
(run-hooks (quote ,pre-init-hook))
|
(run-hooks (quote ,pre-init-hook))
|
||||||
|
|
||||||
(message "Initializing '%s' cube." (quote ,cube-name))
|
(fg42/info "Initializing '%s' cube." (quote ,cube-name))
|
||||||
;; Run the body
|
;; Run the body
|
||||||
(let ((result (progn ,@body)))
|
(let ((result (progn ,@body)))
|
||||||
;; Run the post init hook
|
;; Run the post init hook
|
||||||
(run-hooks (quote ,post-init-hook))
|
(run-hooks (quote ,post-init-hook))
|
||||||
result))
|
result))
|
||||||
(message "[SKIP] The '%s' cube is already active." ',cube-name)))
|
(fg42/info "The '%s' cube is already active." ',cube-name)))
|
||||||
|
|
||||||
(defun ,cube-name (&rest params)
|
(defun ,cube-name (&rest params)
|
||||||
(interactive)
|
(interactive)
|
||||||
|
@ -144,7 +144,7 @@
|
||||||
;; Otherwise check for the flag to be active
|
;; Otherwise check for the flag to be active
|
||||||
(if-flag ,flag-var
|
(if-flag ,flag-var
|
||||||
(,cube-name-internal params)
|
(,cube-name-internal params)
|
||||||
(message "The flag for '%s' cube is disabled. Skiping." ,(symbol-name cube-name)))))
|
(fg42/info "The flag for '%s' cube is disabled. Skiping." ,(symbol-name cube-name)))))
|
||||||
|
|
||||||
;; Set the symbol-plist of the cube-name to its props
|
;; Set the symbol-plist of the cube-name to its props
|
||||||
(setplist ',cube-name ',complete-props))))
|
(setplist ',cube-name ',complete-props))))
|
||||||
|
|
|
@ -23,16 +23,23 @@
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(defvar fg42/modeline-setter #'fg42/default-mode-line-setter)
|
(defvar fg42/modeline-setter #'fg42/default-mode-line-setter)
|
||||||
(defvar fg42/default-modeline
|
|
||||||
(list
|
|
||||||
:brief '("hnt |" (buffer-name))
|
|
||||||
|
|
||||||
:long " "))
|
|
||||||
|
|
||||||
|
|
||||||
(defun fg42/default-mode-line-setter (_)
|
(defmacro defmode-line (name &rest body)
|
||||||
|
`(defun ,name () ,@body))
|
||||||
|
|
||||||
|
|
||||||
|
;; The default modeline has to be nil to let the
|
||||||
|
;; modeline setters know that they can use their
|
||||||
|
;; default modeline
|
||||||
|
(defmode-line fg42/default-modeline)
|
||||||
|
|
||||||
|
|
||||||
|
(defun fg42/default-mode-line-setter (def)
|
||||||
"Set the modeline definition in X to the `fg42-modeline'."
|
"Set the modeline definition in X to the `fg42-modeline'."
|
||||||
(setq mode-line-format (plist-get fg42/default-modeline :brief)))
|
(unless (null def)
|
||||||
|
(setq mode-line-format (plist-get def :brief))
|
||||||
|
(setq mode-line-format (plist-get (fg42/default-modeline) :brief))))
|
||||||
|
|
||||||
|
|
||||||
(defun fg42/setup-modeline-format (definition)
|
(defun fg42/setup-modeline-format (definition)
|
||||||
|
@ -40,8 +47,6 @@
|
||||||
(funcall fg42/modeline-setter definition))
|
(funcall fg42/modeline-setter definition))
|
||||||
|
|
||||||
|
|
||||||
(defmacro defmode-line (name body)
|
|
||||||
`(defvar ,name ,@body))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'fg42/modeline)
|
(provide 'fg42/modeline)
|
||||||
|
|
|
@ -22,9 +22,12 @@
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;; Some of the functions in this module are borrowed from `mini-modeline'
|
||||||
|
;; at https://github.com/kiennq/emacs-mini-modeline (GPL). I modified to
|
||||||
|
;; fit my needs.
|
||||||
|
|
||||||
;;; Require
|
;;; Require
|
||||||
(require 'minibuffer)
|
(require 'minibuffer)
|
||||||
(require 'dash)
|
|
||||||
(require 'frame)
|
(require 'frame)
|
||||||
(require 'timer)
|
(require 'timer)
|
||||||
(require 'face-remap)
|
(require 'face-remap)
|
||||||
|
@ -34,7 +37,7 @@
|
||||||
;; ============================================================================
|
;; ============================================================================
|
||||||
|
|
||||||
(defgroup fg42/statusbar nil
|
(defgroup fg42/statusbar nil
|
||||||
"Modular tray bar."
|
"Status bar group."
|
||||||
:group 'fg42/statusbar)
|
:group 'fg42/statusbar)
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,7 +60,7 @@
|
||||||
:group 'fg42/statusbar)
|
:group 'fg42/statusbar)
|
||||||
|
|
||||||
(defcustom fg42/statusbar-refresh-idle-delay 0.1
|
(defcustom fg42/statusbar-refresh-idle-delay 0.1
|
||||||
"Update idle delay of awesome tray, in seconds."
|
"Update idle delay of bar in seconds."
|
||||||
:type 'double
|
:type 'double
|
||||||
:group 'fg42/statusbar)
|
:group 'fg42/statusbar)
|
||||||
|
|
||||||
|
@ -93,6 +96,7 @@ Nil means current selected frame."
|
||||||
"Modeline face for active window."
|
"Modeline face for active window."
|
||||||
:group 'fg42/statusbar)
|
:group 'fg42/statusbar)
|
||||||
|
|
||||||
|
|
||||||
(defface fg42/statusbar-mode-line-inactive
|
(defface fg42/statusbar-mode-line-inactive
|
||||||
'((((background light))
|
'((((background light))
|
||||||
:background "#dddddd" :height 0.1 :box nil)
|
:background "#dddddd" :height 0.1 :box nil)
|
||||||
|
@ -101,6 +105,7 @@ Nil means current selected frame."
|
||||||
"Modeline face for inactive window."
|
"Modeline face for inactive window."
|
||||||
:group 'fg42/statusbar)
|
:group 'fg42/statusbar)
|
||||||
|
|
||||||
|
|
||||||
;; ============================================================================
|
;; ============================================================================
|
||||||
;; Vars
|
;; Vars
|
||||||
;; ============================================================================
|
;; ============================================================================
|
||||||
|
@ -132,8 +137,19 @@ Nil means current selected frame."
|
||||||
(defvar fg42/statusbar-command-state 'begin
|
(defvar fg42/statusbar-command-state 'begin
|
||||||
"The state of current executed command begin -> [exec exec-read] -> end.")
|
"The state of current executed command begin -> [exec exec-read] -> end.")
|
||||||
|
|
||||||
|
(defvar fg42/statusbar-enable-hook nil)
|
||||||
|
(defvar fg42/statusbar-disable-hook nil)
|
||||||
|
|
||||||
(defvar-local fg42/statusbar--orig-mode-line mode-line-format)
|
(defvar-local fg42/statusbar--orig-mode-line mode-line-format)
|
||||||
|
|
||||||
|
(defvar-local fg42/statusbar--face-cookie nil)
|
||||||
|
|
||||||
|
(defvar fg42/statusbar--orig-mode-line-remap
|
||||||
|
(or (alist-get 'mode-line face-remapping-alist) 'mode-line))
|
||||||
|
|
||||||
|
(defvar fg42/statusbar--orig-mode-line-inactive-remap
|
||||||
|
(or (alist-get 'mode-line-inactive face-remapping-alist) 'mode-line-inactive))
|
||||||
|
|
||||||
;; ============================================================================
|
;; ============================================================================
|
||||||
;; Definitions
|
;; Definitions
|
||||||
;; ============================================================================
|
;; ============================================================================
|
||||||
|
@ -147,6 +163,26 @@ BODY will be supplied with orig-func and args."
|
||||||
'((name . ,name)))))
|
'((name . ,name)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defmacro defbar-unit (name interval default &rest body)
|
||||||
|
"Create a status bar unit with a dedicated timer.
|
||||||
|
|
||||||
|
It will create a unit with the given NAME and DEFAULT value and a timer
|
||||||
|
that runs the given BODY at the given INTERVAL."
|
||||||
|
(declare (indent defun))
|
||||||
|
(let ((timer-name (intern (format "$%s-timer" name))))
|
||||||
|
`(progn
|
||||||
|
(defvar ,name ,default)
|
||||||
|
(defvar ,timer-name)
|
||||||
|
(add-hook 'fg42/statusbar-enable-hook
|
||||||
|
(lambda ()
|
||||||
|
(setq ,timer-name
|
||||||
|
(run-with-timer 0 ,interval (lambda () ,@body)))))
|
||||||
|
(add-hook 'fg42/statusbar-disable-hook
|
||||||
|
(lambda ()
|
||||||
|
(when (timerp ,timer-name)
|
||||||
|
(cancel-timer ,timer-name)))))))
|
||||||
|
|
||||||
|
|
||||||
(defsubst fg42/statusbar-pre-cmd ()
|
(defsubst fg42/statusbar-pre-cmd ()
|
||||||
"Pre command hook of fg42/statusbar."
|
"Pre command hook of fg42/statusbar."
|
||||||
(setq fg42/statusbar-command-state 'begin))
|
(setq fg42/statusbar-command-state 'begin))
|
||||||
|
@ -226,8 +262,7 @@ BODY will be supplied with orig-func and args."
|
||||||
|
|
||||||
;; Add update timer.
|
;; Add update timer.
|
||||||
(setq fg42/statusbar-timer
|
(setq fg42/statusbar-timer
|
||||||
;; (run-with-timer 0 fg42/statusbar-refresh-idle-delay 'fg42/statusbar-show-info)
|
(run-with-timer 0 fg42/statusbar-refresh-idle-delay #'fg42/statusbar-display))
|
||||||
(run-with-timer 0 fg42/statusbar-refresh-idle-delay 'fg42/statusbar-display))
|
|
||||||
|
|
||||||
(add-hook 'minibuffer-setup-hook #'fg42/statusbar-enter-minibuffer)
|
(add-hook 'minibuffer-setup-hook #'fg42/statusbar-enter-minibuffer)
|
||||||
(add-hook 'minibuffer-exit-hook #'fg42/statusbar-exit-minibuffer)
|
(add-hook 'minibuffer-exit-hook #'fg42/statusbar-exit-minibuffer)
|
||||||
|
@ -250,13 +285,9 @@ BODY will be supplied with orig-func and args."
|
||||||
(setq fg42/statusbar-command-state 'exec-read)
|
(setq fg42/statusbar-command-state 'exec-read)
|
||||||
(apply orig-func args)))
|
(apply orig-func args)))
|
||||||
|
|
||||||
|
(run-hooks 'fg42/statusbar-enable-hook)
|
||||||
(setq fg42/statusbar-active-p t))
|
(setq fg42/statusbar-active-p t))
|
||||||
|
|
||||||
(defvar-local fg42/statusbar--face-cookie nil)
|
|
||||||
(defvar fg42/statusbar--orig-mode-line-remap
|
|
||||||
(or (alist-get 'mode-line face-remapping-alist) 'mode-line))
|
|
||||||
(defvar fg42/statusbar--orig-mode-line-inactive-remap
|
|
||||||
(or (alist-get 'mode-line-inactive face-remapping-alist) 'mode-line-inactive))
|
|
||||||
|
|
||||||
(defun fg42/statusbar-disable ()
|
(defun fg42/statusbar-disable ()
|
||||||
"Disable the status bar."
|
"Disable the status bar."
|
||||||
|
@ -311,6 +342,7 @@ BODY will be supplied with orig-func and args."
|
||||||
(with-current-buffer " *Minibuf-0*"
|
(with-current-buffer " *Minibuf-0*"
|
||||||
(erase-buffer))
|
(erase-buffer))
|
||||||
|
|
||||||
|
(run-hooks 'fg42/statusbar-disable-hook)
|
||||||
(setq fg42/statusbar-active-p nil))
|
(setq fg42/statusbar-active-p nil))
|
||||||
|
|
||||||
|
|
||||||
|
@ -322,7 +354,6 @@ BODY will be supplied with orig-func and args."
|
||||||
(when (not (stringp result))
|
(when (not (stringp result))
|
||||||
(error "The result of %s is not string" result))
|
(error "The result of %s is not string" result))
|
||||||
(when (> (length result) 0)
|
(when (> (length result) 0)
|
||||||
(fg42/statusbar--log "fg42/statusbar: ---%s\n" result)
|
|
||||||
result)))
|
result)))
|
||||||
fg42/statusbar-components
|
fg42/statusbar-components
|
||||||
" "))
|
" "))
|
||||||
|
@ -343,7 +374,7 @@ as `snails'."
|
||||||
(string-width (or message-string ""))
|
(string-width (or message-string ""))
|
||||||
fg42/statusbar-info-padding-right)))
|
fg42/statusbar-info-padding-right)))
|
||||||
(cond
|
(cond
|
||||||
;; Fill message's end with whitespace to keep tray info at right of minibuffer.
|
;; Fill message's end with whitespace to keep the info at right of minibuffer.
|
||||||
((> blank-length 0)
|
((> blank-length 0)
|
||||||
(progn
|
(progn
|
||||||
(let* ((inhibit-message t))
|
(let* ((inhibit-message t))
|
||||||
|
|
|
@ -178,5 +178,18 @@ is non-nil value it means that the function can be called interactively."
|
||||||
nil))
|
nil))
|
||||||
|
|
||||||
|
|
||||||
|
(defmacro fg42/log (tag args)
|
||||||
|
"If the debug is enabled log the give ARGS."
|
||||||
|
(if fg42/debug-p
|
||||||
|
`(message "[%s]: %s" ,tag (apply #'format ,args))
|
||||||
|
nil))
|
||||||
|
|
||||||
|
|
||||||
|
(defmacro fg42/info (&rest args)
|
||||||
|
"If the debug is enabled log the give ARGS."
|
||||||
|
(fg42/log "INFO" args))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'fg42/utils)
|
(provide 'fg42/utils)
|
||||||
;;; utils.el ends here
|
;;; utils.el ends here
|
||||||
|
|
Loading…
Reference in New Issue