diff options
-rw-r--r-- | config.org | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/config.org b/config.org index 275451f..480e49d 100644 --- a/config.org +++ b/config.org @@ -285,72 +285,6 @@ Below that, show a line and column coördinate. There are special minor modes t I don't know exactly what the final variable covers, so i keep it here so that if something shows up i know that it gets put here. Because i have a global mode line in my tab bar, some of the things that would otherwise be here (like the time, battery percentage, and notifications for chat buffers) don't show up. -Before we define this, we will copy the code from mode-line-format-right-align so that i can use it. This is an emacs 30 feature, which i don't run yet. In the future, i'll be able to remove this. Note that because this isn't emacs 30, this doesn't work perfectly, and the right-aligned content is often cut off. - -#+begin_src elisp -(defcustom mode-line-right-align-edge 'window - "Where function `mode-line-format-right-align' should align to. -Internally, that function uses `:align-to' in a display property, -so aligns to the left edge of the given area. See info node -`(elisp)Pixel Specification'. - -Must be set to a symbol. Acceptable values are: -- `window': align to extreme right of window, regardless of margins - or fringes -- `right-fringe': align to right-fringe -- `right-margin': align to right-margin" - :type '(choice (const right-margin) - (const right-fringe) - (const window)) - :group 'mode-line - :version "30.1") -(defun mode--line-format-right-align () - "Right-align all following mode-line constructs. - -When the symbol `mode-line-format-right-align' appears in -`mode-line-format', return a string of one space, with a display -property to make it appear long enough to align anything after -that symbol to the right of the rendered mode line. Exactly how -far to the right is controlled by `mode-line-right-align-edge'. - -It is important that the symbol `mode-line-format-right-align' be -included in `mode-line-format' (and not another similar construct -such as `(:eval (mode-line-format-right-align)'). This is because -the symbol `mode-line-format-right-align' is processed by -`format-mode-line' as a variable." - (let* ((rest (cdr (memq 'mode-line-format-right-align - mode-line-format))) - (rest-str (format-mode-line `("" ,@rest))) - (rest-width (string-pixel-width rest-str))) - (propertize " " 'display - ;; The `right' spec doesn't work on TTY frames - ;; when windows are split horizontally (bug#59620) - (if (and (display-graphic-p) - (not (eq mode-line-right-align-edge 'window))) - `(space :align-to (- ,mode-line-right-align-edge - (,rest-width))) - `(space :align-to (,(- (window-pixel-width) - (window-scroll-bar-width) - (window-right-divider-width) - (* (or (cdr (window-margins)) 1) - (frame-char-width)) - ;; Manually account for value of - ;; `mode-line-right-align-edge' even - ;; when display is non-graphical - (pcase mode-line-right-align-edge - ('right-margin - (or (cdr (window-margins)) 0)) - ('right-fringe - ;; what here? - (or (cadr (window-fringes)) 0)) - (_ 0)) - rest-width))))))) - -(defvar mode-line-format-right-align '(:eval (mode--line-format-right-align)) - "Mode line construct to right align all following constructs.") -(put 'mode-line-format-right-align 'risky-local-variable t) -#+end_src - #+begin_src elisp (setq-default header-line-format '("%b:%l,%c " |