customize modeline
This commit is contained in:
2 files changed
+118
No files matched your search
@@ -106,6 +106,7 @@ If freezing sometimes, decrease it. If stuttering, increase it.")
|
|||||||
|
|
||||||
|
|
||||||
(require 'init-built-in)
|
(require 'init-built-in)
|
||||||
|
(require 'init-modeline)
|
||||||
(require 'init-git)
|
(require 'init-git)
|
||||||
(require 'init-awesome-pair)
|
(require 'init-awesome-pair)
|
||||||
(require 'init-theme)
|
(require 'init-theme)
|
||||||
|
|||||||
@@ -0,0 +1,117 @@
|
|||||||
|
;; -*- coding: utf-8; lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(defun creature/set-mode-line-format-for-exist-buffers ()
|
||||||
|
"Make customized mode line works in exist buffers."
|
||||||
|
(mapc (lambda (buffer)
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(setq mode-line-format creature/mode-line-format)))
|
||||||
|
(buffer-list)))
|
||||||
|
|
||||||
|
|
||||||
|
;; buffer name
|
||||||
|
(defvar creature/mode-line-buffer-name
|
||||||
|
'(:eval (propertize
|
||||||
|
"%b"
|
||||||
|
'face 'mode-line-buffer-id))
|
||||||
|
"Buffer name with face.")
|
||||||
|
(set-face-attribute 'mode-line-buffer-id nil :weight 'normal)
|
||||||
|
(put 'creature/mode-line-buffer-name 'risky-local-variable t)
|
||||||
|
|
||||||
|
;; marker region info
|
||||||
|
(defvar creature/focus-window nil
|
||||||
|
"Current focus window.")
|
||||||
|
|
||||||
|
(defun creature/save-current-window ()
|
||||||
|
"Save current window."
|
||||||
|
(setq creature/focus-window (selected-window)))
|
||||||
|
|
||||||
|
(add-hook 'post-command-hook
|
||||||
|
#'creature/save-current-window)
|
||||||
|
|
||||||
|
(defvar creature/mode-line-region-info
|
||||||
|
'(:eval
|
||||||
|
(when (and (region-active-p) (eq creature/focus-window (selected-window)))
|
||||||
|
(let ((length (- (region-end) (region-beginning)))
|
||||||
|
(line (- (line-number-at-pos (region-end))
|
||||||
|
(line-number-at-pos (region-beginning))
|
||||||
|
-1)))
|
||||||
|
(format " [%d|%d]" length line))))
|
||||||
|
"Length of marked string.")
|
||||||
|
(put 'creature/mode-line-region-info 'risky-local-variable t)
|
||||||
|
|
||||||
|
(defvar creature/mode-line-company-info
|
||||||
|
'(:eval
|
||||||
|
(when (and (not buffer-read-only)
|
||||||
|
(or (bound-and-true-p company-mode)
|
||||||
|
(bound-and-true-p global-company-mode)))
|
||||||
|
company-lighter))
|
||||||
|
"Customize company lighter.")
|
||||||
|
(put 'creature/mode-line-company-info 'risky-local-variable t)
|
||||||
|
|
||||||
|
;; combin mode line fromat
|
||||||
|
(defvar creature/mode-line-format
|
||||||
|
'("%e"
|
||||||
|
creature/mode-line-window-number
|
||||||
|
" "
|
||||||
|
current-input-method-title
|
||||||
|
"%Z" ; coding system and eol type
|
||||||
|
"%*" ; read only buffer?
|
||||||
|
"%+" ; buffer modified?
|
||||||
|
"%@" ; buffer is in remote?
|
||||||
|
" "
|
||||||
|
creature/mode-line-buffer-name
|
||||||
|
" {"
|
||||||
|
"%p" ; percent of point in buffer
|
||||||
|
","
|
||||||
|
"%I" ; buffer size
|
||||||
|
"}("
|
||||||
|
"%l,%c" ; line and column
|
||||||
|
")"
|
||||||
|
" ("
|
||||||
|
mode-name ; major mode
|
||||||
|
mode-line-process
|
||||||
|
creature/mode-line-company-info
|
||||||
|
")"
|
||||||
|
creature/mode-line-region-info
|
||||||
|
(vc-mode vc-mode)
|
||||||
|
|
||||||
|
(flymake-mode flymake-mode-line-format)
|
||||||
|
mode-line-misc-info
|
||||||
|
mode-line-end-spaces
|
||||||
|
)
|
||||||
|
"Customized mode line format.")
|
||||||
|
|
||||||
|
;; 1. define a variable to keep origin mode-line
|
||||||
|
;; 2. make customized mode-line worked for exist buffers.
|
||||||
|
(defvar creature/origin-mode-line-format
|
||||||
|
mode-line-format
|
||||||
|
"Keep origin `mode-line-format'")
|
||||||
|
|
||||||
|
(setq-default mode-line-format creature/mode-line-format)
|
||||||
|
|
||||||
|
(creature/set-mode-line-format-for-exist-buffers)
|
||||||
|
|
||||||
|
(defun creature/toggle-mode-line ()
|
||||||
|
"Switch `mode-line-format' between customized and the origin.
|
||||||
|
Customized is save in `creature/mode-line-format',
|
||||||
|
orgiin is in `creature/origin-mode-line-format'."
|
||||||
|
|
||||||
|
(let ((tmp-mode-line
|
||||||
|
(if (eq mode-line-format creature/mode-line-format)
|
||||||
|
creature/origin-mode-line-format
|
||||||
|
creature/mode-line-format)))
|
||||||
|
(mapc (lambda (buffer)
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(setq mode-line-format tmp-mode-line)))
|
||||||
|
(buffer-list))
|
||||||
|
(setq-default mode-line-format tmp-mode-line)
|
||||||
|
nil))
|
||||||
|
|
||||||
|
;; (setq display-time-interval 1)
|
||||||
|
(setq display-time-format " %R %a %F")
|
||||||
|
(setq display-time-load-average nil)
|
||||||
|
(setq display-time-default-load-average nil)
|
||||||
|
(display-time-mode)
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'init-modeline)
|
||||||
Reference in new issue
Block a user