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
+109 -77

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)
+108 -76
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
'("%e" (column-number-mode
creature/mode-line-window-number (column-number-indicator-zero-based
" " (:propertize
current-input-method-title mode-line-position-column-line-format
"%Z" ; coding system and eol type display (min-width (10.0))
"%*" ; read only buffer? ,@mode-line-position--column-line-properties)
"%+" ; buffer modified? (:propertize
"%@" ; buffer is in remote? (:eval (string-replace
" " "%c" "%C" (car mode-line-position-column-line-format)))
creature/mode-line-buffer-name display (min-width (10.0))
" {" ,@mode-line-position--column-line-properties))
"%p" ; percent of point in buffer (:propertize
"," mode-line-position-line-format
"%I" ; buffer size display (min-width (6.0))
"}(" ,@mode-line-position--column-line-properties))
"%l,%c" ; line and column (column-number-mode
")" (column-number-indicator-zero-based
" (" (:propertize
mode-name ; major mode mode-line-position-column-format
mode-line-process display (min-width (6.0))
creature/mode-line-company-info ,@mode-line-position--column-line-properties)
")" (:propertize
creature/mode-line-region-info (:eval (string-replace
(vc-mode vc-mode) "%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)
(flymake-mode flymake-mode-line-format) (defvar creature/mode-line-percent-size
mode-line-misc-info '(:eval
mode-line-end-spaces (let* ((show-brace (and mode-line-percent-position size-indication-mode))
) (begin-brace (if show-brace " {" " "))
"Customized mode line format.") (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)
;; 1. define a variable to keep origin mode-line (setq mode-line-position
;; 2. make customized mode-line worked for exist buffers. `(,creature/mode-line-percent-size
(defvar creature/origin-mode-line-format ,creature/mode-line-line-and-column))
mode-line-format
"Keep origin `mode-line-format'")
(setq-default mode-line-format creature/mode-line-format) (let ((mode-line
'("%e"
mode-line-front-space
(:propertize
("" mode-line-mule-info mode-line-client mode-line-modified
mode-line-remote mode-line-window-dedicated)
display (min-width (6.0)))
mode-line-frame-identification
mode-line-buffer-identification
mode-line-position
creature/mode-line-region-info
" "
(creature/set-mode-line-format-for-exist-buffers) mode-line-modes
(defun creature/toggle-mode-line () (project-mode-line project-mode-line-format)
"Switch `mode-line-format' between customized and the origin. (vc-mode vc-mode)
Customized is save in `creature/mode-line-format',
orgiin is in `creature/origin-mode-line-format'."
(let ((tmp-mode-line (flymake-mode flymake-mode-line-format)
(if (eq mode-line-format creature/mode-line-format) mode-line-misc-info
creature/origin-mode-line-format mode-line-end-spaces)))
creature/mode-line-format))) (setq-default mode-line-format mode-line))
(mapc (lambda (buffer)
(with-current-buffer buffer ;; cursor position info
(setq mode-line-format tmp-mode-line))) (size-indication-mode 1)
(buffer-list)) (line-number-mode 1)
(setq-default mode-line-format tmp-mode-line) (column-number-mode 1)
nil))
;; 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))
;; (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)