change modeline configuration

This commit is contained in:
zedhugh committed 2025-04-29 04:59:18 +08:00
1 parent e854b44522
commit 0a33409d50
2 files changed
+107 -75

No files matched your search

+1 -1
View File
@@ -61,11 +61,11 @@ If freezing sometimes, decrease it. If stuttering, increase it.")
(add-to-list 'load-path (expand-file-name "lisp" creature/config-dir) t) (add-to-list 'load-path (expand-file-name "lisp" creature/config-dir) t)
(require 'init-modeline)
(when (eq system-type 'android) (when (eq system-type 'android)
(require 'init-android)) (require 'init-android))
(require 'init-built-in) (require 'init-built-in)
(require 'init-treesit) (require 'init-treesit)
(require 'init-modeline)
(require 'init-git) (require 'init-git)
(require 'init-awesome-pair) (require 'init-awesome-pair)
(require 'init-theme) (require 'init-theme)
+106 -74
View File
@@ -1,21 +1,8 @@
;; -*- coding: utf-8; lexical-binding: t; -*- ;; -*- 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 ;; buffer name
(defvar creature/mode-line-buffer-name (setq-default mode-line-buffer-identification
'(:eval (propertize (propertized-buffer-identification "%b"))
"%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 ;; marker region info
(defvar creature/focus-window nil (defvar creature/focus-window nil
@@ -35,79 +22,124 @@
(line (- (line-number-at-pos (region-end)) (line (- (line-number-at-pos (region-end))
(line-number-at-pos (region-beginning)) (line-number-at-pos (region-beginning))
-1))) -1)))
(format " [%d|%d]" length line)))) (propertize
(format " [%d|%d]" length line)
'help-echo "Selected region info"))))
"Length of marked string.") "Length of marked string.")
(put 'creature/mode-line-region-info 'risky-local-variable t) (put 'creature/mode-line-region-info 'risky-local-variable t)
(defvar creature/mode-line-company-info (defvar creature/mode-line-region-info
'(:eval '(:eval
(when (and (not buffer-read-only) (when (and (region-active-p) (eq creature/focus-window (selected-window)))
(or (bound-and-true-p company-mode) (let ((length (- (region-end) (region-beginning)))
(bound-and-true-p global-company-mode))) (line (- (line-number-at-pos (region-end))
company-lighter)) (line-number-at-pos (region-beginning))
"Customize company lighter.") -1)))
(put 'creature/mode-line-company-info 'risky-local-variable t) (propertize
(format " [%d|%d]" length line)
))))
"Length of marked string.")
(put 'creature/mode-line-region-info 'risky-local-variable t)
;; combin mode line fromat (defvar creature/mode-line-line-and-column
(defvar creature/mode-line-format `(line-number-mode
(column-number-mode
(column-number-indicator-zero-based
(:propertize
mode-line-position-column-line-format
display (min-width (10.0))
,@mode-line-position--column-line-properties)
(:propertize
(:eval (string-replace
"%c" "%C" (car mode-line-position-column-line-format)))
display (min-width (10.0))
,@mode-line-position--column-line-properties))
(:propertize
mode-line-position-line-format
display (min-width (6.0))
,@mode-line-position--column-line-properties))
(column-number-mode
(column-number-indicator-zero-based
(:propertize
mode-line-position-column-format
display (min-width (6.0))
,@mode-line-position--column-line-properties)
(:propertize
(:eval (string-replace
"%c" "%C" (car mode-line-position-column-format)))
display (min-width (6.0))
,@mode-line-position--column-line-properties))))
"Line number and column number of position.")
(put 'creature/mode-line-line-and-column 'risky-local-variable t)
(defvar creature/mode-line-percent-size
'(:eval
(let* ((show-brace (and mode-line-percent-position size-indication-mode))
(begin-brace (if show-brace " {" " "))
(end-brace (if show-brace "}" ""))
(comma (if show-brace "," "")))
`(,begin-brace
(:propertize
("" mode-line-percent-position)
local-map ,mode-line-column-line-number-mode-map
display (min-width (5.0))
mouse-face mode-line-highlight
;; XXX needs better description
help-echo "Window Scroll Percentage
mouse-1: Display Line and Column Mode Menu")
,comma
(size-indication-mode
,(propertize
"%I"
'local-map mode-line-column-line-number-mode-map
'mouse-face 'mode-line-highlight
;; XXX needs better description
'help-echo "Size indication mode\n\
mouse-1: Display Line and Column Mode Menu"))
,end-brace)))
"Percent offset and buffer size.")
(put 'creature/mode-line-percent-size 'risky-local-variable t)
(setq mode-line-position
`(,creature/mode-line-percent-size
,creature/mode-line-line-and-column))
(let ((mode-line
'("%e" '("%e"
creature/mode-line-window-number mode-line-front-space
" " (:propertize
current-input-method-title ("" mode-line-mule-info mode-line-client mode-line-modified
"%Z" ; coding system and eol type mode-line-remote mode-line-window-dedicated)
"%*" ; read only buffer? display (min-width (6.0)))
"%+" ; buffer modified? mode-line-frame-identification
"%@" ; buffer is in remote? mode-line-buffer-identification
" " mode-line-position
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 creature/mode-line-region-info
" "
mode-line-modes
(project-mode-line project-mode-line-format)
(vc-mode vc-mode) (vc-mode vc-mode)
(flymake-mode flymake-mode-line-format) (flymake-mode flymake-mode-line-format)
mode-line-misc-info mode-line-misc-info
mode-line-end-spaces mode-line-end-spaces)))
) (setq-default mode-line-format mode-line))
"Customized mode line format.")
;; 1. define a variable to keep origin mode-line ;; cursor position info
;; 2. make customized mode-line worked for exist buffers. (size-indication-mode 1)
(defvar creature/origin-mode-line-format (line-number-mode 1)
mode-line-format (column-number-mode 1)
"Keep origin `mode-line-format'")
(setq-default mode-line-format creature/mode-line-format) ;; don't show minor modes exclude company-mode
(if (not (boundp mode-line-collapse-minor-modes))
(progn
(setq mode-line-collapse-minor-modes
'(not company-mode global-company-mode))
(setq mode-line-collapse-minor-modes-to ""))
(setq mode-line-minor-modes nil))
(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 " %H:%M") (setq display-time-format " %H:%M")
(setq display-time-load-average nil) (setq display-time-load-average nil)
(setq display-time-default-load-average nil) (setq display-time-default-load-average nil)