unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line
@ 2024-12-12 10:35 Eval Exec
  2024-12-14 10:55 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Eval Exec @ 2024-12-12 10:35 UTC (permalink / raw)
  To: 74817


for example:
I create a scratch init.el:
```elisp


(defun header0()
  "header_line_head")
(defun header1()
  "header_line_tail")

(add-to-list 'header-line-format '(:eval (header0)) t)
(add-to-list 'header-line-format mode-line-format-right-align t)
(add-to-list 'header-line-format '(:eval (header1)) t)
```

Then start emacs, I got: https://imgur.com/a/PHGxRyf

You can see, in the right side of header-line, it's wrong, not right align well.



In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.2) of 2024-12-07 built on Mufasa
Repository revision: 6f6b641975e4828f96913b29b1476c6323c952d8
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12401004
System Description: NixOS 24.11 (Vicuna)

Configured using:
 'configure 'CFLAGS=-O3 -mtune=native -march=native'
 --prefix=/home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-commit-6f6b641975e4828f96913b29b1476c6323c952d8-O3
 --with-imagemagick --with-modules --with-cairo --with-cairo-xcb
 --without-compress-install --with-native-compilation --with-mailutils
 --enable-link-time-optimization --with-tree-sitter --with-xinput2
 --with-dbus --with-native-compilation=aot
 --with-file-notification=inotify'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG LCMS2 LIBOTF LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
  value of $EMACSLOADPATH: /nix/store/97ymyq978919zfqva4p15r4ddzzkkz0l-emacs-mu4e-1.12.7/share/emacs/site-lisp:/nix/store/4k2h9qsps52n1v56zq03yi67dwmxa81i-cmake-3.30.5/share/emacs/site-lisp:
  value of $LC_COLLATE: C
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
  restore-point-mode: t
  global-atomic-chrome-edit-mode: t
  dogears-mode: t
  marginalia-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  keycast-tab-bar-mode: t
  vertico-truncate-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  telega-root-auto-fill-mode: t
  telega-contact-birthdays-mode: t
  telega-active-video-chats-mode: t
  telega-active-locations-mode: t
  telega-patrons-mode: t
  telega-active-stories-mode: t
  tab-line-nerd-icons-global-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  org-roam-db-autosync-mode: t
  global-org-modern-mode: t
  minions-mode: t
  rainbow-mode: t
  elisp-autofmt-mode: t
  highlight-defined-mode: t
  display-line-numbers-mode: t
  electric-pair-mode: t
  highlight-numbers-mode: t
  hes-mode: t
  rainbow-delimiters-mode: t
  copilot-mode: t
  treemacs-project-follow-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  which-key-mode: t
  global-hungry-delete-mode: t
  hungry-delete-mode: t
  flycheck-mode: t
  engine-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  global-git-commit-mode: t
  burly-tabs-mode: t
  global-form-feed-st-mode: t
  form-feed-st-mode: t
  eat-eshell-mode: t
  sly-symbol-completion-mode: t
  super-save-mode: t
  super-hint-xref-mode: t
  super-hint-rg-mode: t
  windmove-mode: t
  save-place-mode: t
  recentf-mode: t
  winner-mode: t
  pdf-occur-global-minor-mode: t
  nerd-icons-completion-mode: t
  server-mode: t
  global-diff-hl-show-hunk-mouse-mode: t
  diff-hl-show-hunk-mouse-mode: t
  diff-hl-flydiff-mode: t
  diff-hl-margin-local-mode: t
  diff-hl-margin-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  sudo-edit-indicator-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  global-evil-visualstar-mode: t
  evil-visualstar-mode: t
  evil-commentary-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  evil-lion-mode: t
  gcmh-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  buffer-face-mode: t
  TeX-PDF-mode: t
  el-patch-use-package-mode: t
  global-auto-revert-mode: t
  evil-mode: t
  evil-local-mode: t
  general-override-mode: t
  elpaca-use-package-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: -1
  line-number-mode: -1
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  hs-minor-mode: t

Load-path shadows:
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-extras hides /home/exec/.emacs.d/elpaca/builds/magit/magit-extras
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-reflog hides /home/exec/.emacs.d/elpaca/builds/magit/magit-reflog
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-refs hides /home/exec/.emacs.d/elpaca/builds/magit/magit-refs
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-gitignore hides /home/exec/.emacs.d/elpaca/builds/magit/magit-gitignore
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-submodule hides /home/exec/.emacs.d/elpaca/builds/magit/magit-submodule
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-status hides /home/exec/.emacs.d/elpaca/builds/magit/magit-status
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-pull hides /home/exec/.emacs.d/elpaca/builds/magit/magit-pull
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-clone hides /home/exec/.emacs.d/elpaca/builds/magit/magit-clone
/home/exec/.emacs.d/elpaca/builds/git-commit/magit hides /home/exec/.emacs.d/elpaca/builds/magit/magit
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-notes hides /home/exec/.emacs.d/elpaca/builds/magit/magit-notes
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-commit hides /home/exec/.emacs.d/elpaca/builds/magit/magit-commit
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-margin hides /home/exec/.emacs.d/elpaca/builds/magit/magit-margin
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-sparse-checkout hides /home/exec/.emacs.d/elpaca/builds/magit/magit-sparse-checkout
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-base hides /home/exec/.emacs.d/elpaca/builds/magit/magit-base
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-wip hides /home/exec/.emacs.d/elpaca/builds/magit/magit-wip
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-branch hides /home/exec/.emacs.d/elpaca/builds/magit/magit-branch
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-remote hides /home/exec/.emacs.d/elpaca/builds/magit/magit-remote
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-log hides /home/exec/.emacs.d/elpaca/builds/magit/magit-log
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-core hides /home/exec/.emacs.d/elpaca/builds/magit/magit-core
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-subtree hides /home/exec/.emacs.d/elpaca/builds/magit/magit-subtree
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-autorevert hides /home/exec/.emacs.d/elpaca/builds/magit/magit-autorevert
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-git hides /home/exec/.emacs.d/elpaca/builds/magit/magit-git
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-mode hides /home/exec/.emacs.d/elpaca/builds/magit/magit-mode
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-ediff hides /home/exec/.emacs.d/elpaca/builds/magit/magit-ediff
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-fetch hides /home/exec/.emacs.d/elpaca/builds/magit/magit-fetch
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-push hides /home/exec/.emacs.d/elpaca/builds/magit/magit-push
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-bundle hides /home/exec/.emacs.d/elpaca/builds/magit/magit-bundle
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-worktree hides /home/exec/.emacs.d/elpaca/builds/magit/magit-worktree
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-repos hides /home/exec/.emacs.d/elpaca/builds/magit/magit-repos
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-tag hides /home/exec/.emacs.d/elpaca/builds/magit/magit-tag
/home/exec/.emacs.d/elpaca/builds/git-commit/git-commit hides /home/exec/.emacs.d/elpaca/builds/magit/git-commit
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-blame hides /home/exec/.emacs.d/elpaca/builds/magit/magit-blame
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-diff hides /home/exec/.emacs.d/elpaca/builds/magit/magit-diff
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-stash hides /home/exec/.emacs.d/elpaca/builds/magit/magit-stash
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-process hides /home/exec/.emacs.d/elpaca/builds/magit/magit-process
/home/exec/.emacs.d/elpaca/builds/git-commit/git-rebase hides /home/exec/.emacs.d/elpaca/builds/magit/git-rebase
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-transient hides /home/exec/.emacs.d/elpaca/builds/magit/magit-transient
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-patch hides /home/exec/.emacs.d/elpaca/builds/magit/magit-patch
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-reset hides /home/exec/.emacs.d/elpaca/builds/magit/magit-reset
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-apply hides /home/exec/.emacs.d/elpaca/builds/magit/magit-apply
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-sequence hides /home/exec/.emacs.d/elpaca/builds/magit/magit-sequence
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-bookmark hides /home/exec/.emacs.d/elpaca/builds/magit/magit-bookmark
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-bisect hides /home/exec/.emacs.d/elpaca/builds/magit/magit-bisect
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-files hides /home/exec/.emacs.d/elpaca/builds/magit/magit-files
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-merge hides /home/exec/.emacs.d/elpaca/builds/magit/magit-merge
/home/exec/.emacs.d/elpaca/builds/modus-themes/theme-loaddefs hides /home/exec/.emacs.d/elpaca/builds/standard-themes/theme-loaddefs
/home/exec/.emacs.d/elpaca/builds/modus-themes/theme-loaddefs hides /home/exec/.emacs.d/elpaca/builds/ef-themes/theme-loaddefs
/home/exec/.emacs.d/elpaca/builds/git-commit/magit-section hides /home/exec/.emacs.d/elpaca/builds/magit-section/magit-section
/home/exec/.emacs.d/elpaca/builds/cmake-mode/cmake-mode hides /nix/store/4k2h9qsps52n1v56zq03yi67dwmxa81i-cmake-3.30.5/share/emacs/site-lisp/cmake-mode
/home/exec/.emacs.d/elpaca/builds/which-key/which-key hides /home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-commit-6f6b641975e4828f96913b29b1476c6323c952d8-O3/share/emacs/31.0.50/lisp/which-key
/home/exec/.emacs.d/elpaca/builds/modus-themes/theme-loaddefs hides /home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-commit-6f6b641975e4828f96913b29b1476c6323c952d8-O3/share/emacs/31.0.50/lisp/theme-loaddefs
/home/exec/.emacs.d/elpaca/builds/transient/transient hides /home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-commit-6f6b641975e4828f96913b29b1476c6323c952d8-O3/share/emacs/31.0.50/lisp/transient

Features:
(shadow sort mail-extr symbol-overlay lsp-diagnostics lsp-modeline
lsp-icons lsp-zig lsp-yang lsp-yaml lsp-xml lsp-wgsl lsp-volar
lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v
lsp-typespec lsp-typeprof lsp-ttcn3 lsp-trunk lsp-toml lsp-tilt lsp-tex
lsp-terraform lsp-svelte lsp-steep lsp-sqls lsp-sql lsp-sorbet
lsp-solidity lsp-solargraph lsp-semgrep lsp-rust lsp-ruff
lsp-ruby-syntax-tree lsp-ruby-lsp lsp-rubocop lsp-roslyn lsp-rf
lsp-remark lsp-racket lsp-r lsp-qml lsp-pyright lsp-pylsp lsp-pyls
lsp-pwsh lsp-purescript lsp-pls lsp-php lsp-perlnavigator lsp-perl
lsp-openscad lsp-ocaml lsp-nushell lsp-nix lsp-nim lsp-nginx
lsp-nextflow lsp-move lsp-mojo lsp-mint lsp-meson lsp-mdx lsp-marksman
lsp-markdown lsp-magik lsp-fennel lsp-lua lsp-lisp lsp-kotlin lsp-json
lsp-jq lsp-javascript lsp-idris lsp-haxe lsp-hack lsp-groovy lsp-graphql
lsp-golangci-lint lsp-glsl lsp-gleam lsp-gdscript lsp-fsharp lsp-futhark
lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elm lsp-elixir
lsp-earthly lsp-dockerfile lsp-dhall lsp-d lsp-cypher lsp-cucumber
lsp-css lsp-csharp lsp-crystal lsp-credo lsp-cobol lsp-cmake lsp-clojure
lsp-clangd lsp-bufls lsp-go lsp-completion lsp-beancount lsp-bash
lsp-awk lsp-autotools lsp-astro lsp-asm lsp-ansible lsp-angular lsp-ada
lsp-semantic-tokens lsp-actionscript rust-ts-mode restore-point
evil-collection-atomic-chrome atomic-chrome dogears marginalia
yasnippet-snippets yasnippet-capf yasnippet keycast vertico-truncate
vertico-posframe vertico-multiform evil-collection-vertico vertico
go-translate gt-text-utility gt-engine-echo gt-engine-libre
gt-engine-chatgpt gt-engine-youdao gt-engine-stardict gt-engine-deepl
gt-engine-google-rpc gt-engine-google gt-engine-bing gt-extension
gt-faces gt-core gt-httpx sdcv cap-words superword subword
evil-collection-telega telega-obsolete telega telega-tdlib-events
telega-match telega-root telega-info telega-chat telega-modes
telega-company telega-emoji telega-user telega-notifications telega-voip
telega-msg telega-story telega-webpage telega-tme telega-sticker
telega-vvnote telega-ffplay telega-i18n telega-sort telega-filter
telega-ins telega-inline telega-util telega-folders telega-topic
telega-media telega-tdlib dired-aux telega-server telega-core
telega-customize emacsbug tab-line-nerd-icons evil-collection-imenu-list
imenu-list tab-line rust-utils rust-prog-mode rust-mode rust-playpen
rust-cargo rust-common rust-rustfmt rust-compile toml rg-info-hack
rg-menu rg-ibuffer rg-result wgrep-rg rg-history rg-header
org-sliced-images emacsql-sqlite-module evil-collection-org-roam
org-roam-migrate org-roam-log org-roam-mode org-roam-capture org-roam-id
org-roam-node org-roam-db org-roam-utils org-roam-compat org-roam
org-capture org-journal org-crypt cal-iso org-modern orderless cyphejor
minions string-inflection wakatime-mode evil-collection-forge
forge-repos forge-tablist forge-topics forge-commands forge-semi
forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
forge-github forge-notify forge-revnote forge-pullreq forge-issue
forge-topic eieio-custom bug-reference forge-post forge-repo forge
forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler
eieio-base rainbow-mode elisp-autofmt loadhist highlight-defined
display-line-numbers elec-pair highlight-numbers parent-mode
highlight-escape-sequences rainbow-delimiters hide-comnt hideshow
copilot copilot-balancer editorconfig editorconfig-core
editorconfig-core-handle editorconfig-fnmatch jsonrpc sideline-flycheck
magit-file-icons el-patch-template dap-java dap-mode dap-tasks
dap-launch lsp-docker yaml dap-overlays lsp-java treemacs-nerd-icons
lsp-treemacs lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib
treemacs-git-commit-diff-mode treemacs-project-follow-mode zoom treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence
treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering
treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros consult-lsp
lsp-ui lsp-ui-flycheck lsp-ui-doc evil-collection-lsp-ui-imenu
lsp-ui-imenu lsp-ui-peek lsp-ui-sideline evil-collection-which-key
which-key lsp-mode network-stream lsp-ui-util lsp-protocol groovy-mode
evil-collection-hungry-delete hungry-delete minibuffer-header
gptel-quick gotest fzf flycheck-clj-kondo sideline flycheck-inline
quick-peek flycheck-pos-tip pos-tip consult-flycheck
evil-collection-flycheck flycheck engine-mode evil-collection-ement
ement-room-list taxy-magit-section taxy ement ement-notifications
ement-notify ement-room ement-lib ement-api ement-structs ement-macros
dns ellama llm-ollama llm-provider-utils llm-models llm-request-plz
plz-event-source plz-media-type plz llm evil-collection-elfeed
elfeed-show elfeed-search elfeed-csv elfeed elfeed-curl elfeed-log
elfeed-db elfeed-lib xml-query dired-git-info dired-hacks dired-preview
evil-collection-cmake-mode cmake-mode corfu-terminal popon
corfu-popupinfo kind-icon svg-lib evil-collection-corfu corfu
copilot-chat magit-bookmark evil-collection-magit magit-submodule
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit
evil-collection-magit-repos magit-repos magit-apply magit-wip magit-log
copilot-chat-org copilot-chat-shell-maker copilot-chat-markdown
pr-review pr-review-render pr-review-action magit-diff git-commit
magit-core magit-autorevert magit-margin magit-transient magit-process
evil-collection-with-editor with-editor magit-mode magit-git magit-base
which-func pr-review-input pr-review-api ghub-graphql treepy gsexp ghub
pr-review-common evil-collection-markdown-mode markdown-mode
copilot-chat-copilot copilot-chat-curl copilot-chat-request
copilot-chat-common paredit clojure-ts-mode evil-collection-cider cider
tramp-sh cider-debug cider-browse-ns cider-mode cider-xref-backend
cider-find cider-inspector cider-completion cider-profile cider-eval
cider-jar cider-repl-history cider-repl cider-resolve cider-test
cider-overlays cider-stacktrace cider-doc cider-browse-spec
cider-clojuredocs cider-eldoc cider-docstring cider-client cider-common
cider-completion-context cider-connection cider-popup sesman-browser
nrepl-client cider-util sesman queue nrepl-dict spinner clojure-mode
parseedn parseclj-parser parseclj-lex parseclj-alist chatgpt-shell
chatgpt-shell-perplexity chatgpt-shell-openai chatgpt-shell-ollama
chatgpt-shell-kagi chatgpt-shell-google chatgpt-shell-anthropic
chatgpt-shell-prompt-compose evil-collection-smerge-mode smerge-mode
shell-maker ielm evil-collection-eshell eshell em-prompt esh-mode
esh-var esh-cmd esh-ext esh-proc esh-opt esh-io esh-arg esh-module
esh-module-loaddefs esh-util breadcrumb pulse mediawiki cargo-mode
cnfonts burly-tabs burly frameset prism compile-multi form-feed-st
google-this echo-bar fcitx evil-collection-eat eat term/xterm xterm
evil-collection-term term ehelp evil-collection-python python ox-reveal
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
org-agenda ox-html table ox-ascii ox-publish ox org-attach org-element
org-persist org-id org-refile org-element-ast inline avl-tree htmlize
evil-collection-explain-pause-mode explain-pause-mode explain-pause-top
explain-pause-log-to-socket evil-collection-profiler profiler
weather-metno solar cal-dst url-cache display-wttr kdeconnect vuiet
evil-collection-ivy ivy delsel ivy-faces ivy-overlay colir mpv org-timer
org-clock versuri esqlite pcsv esxml-query lastfm elquery anaphora
spotify crux pest-mode popwin modus-themes blackboard-theme
standard-themes nimbus-theme tok-theme danneskjold-theme srcery-theme
subatomic256-theme iscroll xml+ multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more sgml-mode mc-cycle-cursors
multiple-cursors-core evil-textobj-tree-sitter
evil-textobj-tree-sitter-thing-at-point evil-textobj-tree-sitter-core
citre citre-xref-adapter citre-global citre-tags citre-ctags
citre-readtags citre-readtags-tables citre-ui-peek citre-ui-jump
citre-backend-interface citre-common-tag citre-common-util ctable
line-reminder ov ht fringe-helper solarized-theme solarized
solarized-faces vscode-dark-plus-theme gruvbox-theme gruvbox sqlup-mode
evil-collection-bm bm simplicity-theme twilight-bright-theme
flatui-theme zen-mode origami origami-parsers cl evil-collection-sly sly
sly-completion sly-buttons sly-messages sly-common
evil-collection-apropos apropos evil-collection-arc-mode arc-mode
archive-mode hyperspec sicp morlock sexy-monochrome-theme
nofrils-acme-theme inverse-acme-theme acme-theme dracula-theme
professional-theme plan9-theme ayu-theme base16-theme idea-darkula-theme
hybrid-reverse-theme sublime-themes material-theme doom-themes
doom-themes-base nyan-mode organic-green-theme inkpot-theme
github-dark-vscode-theme almost-mono-themes cyberpunk-theme soothe-theme
soothe-tva zenburn-theme mindre-theme kaolin-themes kaolin-themes-lib
tron-legacy-theme wildcharm-theme atom-one-dark-theme parchment-theme
autothemer visual-fill-column transpose-frame gameoflife
evil-collection-docker docker docker-context docker-volume
docker-network docker-image docker-container docker-faces docker-core
docker-compose docker-process docker-utils docker-group dockerfile-mode
emacs-everywhere cus-dir empv yeetube yeetube-mpv socks dumb-jump
evil-collection-popup popup websocket bindat bing-dict bing-dict-cache
hl-todo atom-dark-theme ef-themes uwu-theme vagrant evil-collection-ag
ag vc-svn find-dired alarm-clock alert notifications gntp pinentry
evil-collection-hackernews hackernews evil-collection-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print
notmuch-crypto notmuch-mua notmuch-message notmuch-draft
notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser
notmuch-wash coolj goto-addr icalendar diary-lib diary-loaddefs
notmuch-tag notmuch-lib notmuch-compat mm-view mml-smime smime gnutls
dig fussy flx affe clang-format apheleia apheleia-rcs apheleia-dp
apheleia-formatters apheleia-utils apheleia-log
apheleia-formatter-context vimrc-mode netease-cloud-music
netease-cloud-music-functions gnuplot olivetti super-save
evil-collection-helpful helpful cc-langs trace cl-print
evil-collection-edebug edebug evil-collection-debug debug backtrace
info-look evil-collection-info info help-fns radix-tree solidity-mode
solidity-common evil-collection-git-timemachine git-timemachine
markdown-ts-mode web-mode disp-table adoc-mode tempo
evil-collection-go-mode go-mode find-file evil-collection-js2-mode
js2-mode etags fileloop yasnippet-snippets-autoloads which-key-autoloads
vertico-truncate-autoloads vertico-posframe-autoloads vertico-autoloads
go-translate-autoloads alert-autoloads gntp-autoloads sdcv-autoloads
telega-autoloads tab-line-nerd-icons-autoloads keycast-autoloads
rust-mode-autoloads toml-autoloads rg-autoloads writeroom-mode-autoloads
nov-autoloads org-sliced-images-autoloads consult-org-roam-autoloads
org-roam-autoloads org-journal-autoloads org-download-autoloads
org-modern-autoloads orderless-autoloads cyphejor-autoloads
minions-autoloads string-inflection-autoloads wakatime-mode-autoloads
webpaste-autoloads forge-autoloads closql-autoloads emacsql-autoloads
git-commit-autoloads magit-file-icons-autoloads lsp-java-autoloads
dap-mode-autoloads bui-autoloads lsp-treemacs-autoloads
lsp-docker-autoloads yaml-autoloads lsp-pyright-autoloads
consult-lsp-autoloads lsp-ui-autoloads lsp-mode-autoloads
groovy-mode-autoloads imenu-list-autoloads hungry-delete-autoloads
hide-comnt-autoloads minibuffer-header-autoloads gptel-quick-autoloads
gptel-autoloads gotest-autoloads fzf-autoloads
flycheck-clj-kondo-autoloads sideline-flycheck-autoloads
sideline-autoloads flycheck-inline-autoloads quick-peek-autoloads
flycheck-pos-tip-autoloads pos-tip-autoloads consult-flycheck-autoloads
flycheck-autoloads engine-mode-autoloads ement-autoloads
taxy-magit-section-autoloads taxy-autoloads embark-consult-autoloads
embark-autoloads ellama-autoloads llm-autoloads
plz-event-source-autoloads plz-media-type-autoloads plz-autoloads
elfeed-tube-mpv-autoloads elfeed-tube-autoloads elfeed-autoloads
dogears-autoloads dired-git-info-autoloads dired-hacks-autoloads
dired-preview-autoloads diredfl-autoloads cmake-mode-autoloads
corfu-terminal-autoloads popon-autoloads corfu-autoloads
copilot-autoloads copilot-chat-autoloads paredit-autoloads
clojure-ts-mode-autoloads cider-autoloads clojure-mode-autoloads
parseedn-autoloads parseclj-autoloads queue-autoloads spinner-autoloads
sesman-autoloads chatgpt-shell-autoloads shell-maker-autoloads
breadcrumb-autoloads mediawiki-autoloads treemacs-nerd-icons-autoloads
treemacs-autoloads pfuture-autoloads cfrs-autoloads cargo-autoloads
cargo-mode-autoloads pr-review-autoloads magit-autoloads
with-editor-autoloads ghub-autoloads treepy-autoloads cnfonts-autoloads
burly-autoloads prism-autoloads compile-multi-autoloads
form-feed-st-autoloads google-this-autoloads echo-bar-autoloads
zoom-autoloads fcitx-autoloads eat-autoloads vterm-autoloads
chatgpt-autoloads ox-reveal-autoloads htmlize-autoloads
wordreference-autoloads explain-pause-mode-autoloads
weather-metno-autoloads display-wttr-autoloads kdeconnect-autoloads
vuiet-autoloads lastfm-autoloads elquery-autoloads versuri-autoloads
anaphora-autoloads esxml-autoloads kv-autoloads esqlite-autoloads
pcsv-autoloads ivy-autoloads emms-autoloads spotify-autoloads
crux-autoloads pest-mode-autoloads popwin-autoloads
modus-themes-autoloads blackboard-theme-autoloads
standard-themes-autoloads nimbus-theme-autoloads tok-theme-autoloads
danneskjold-theme-autoloads srcery-theme-autoloads
subatomic256-theme-autoloads iscroll-autoloads xml+-autoloads
multiple-cursors-autoloads evil-textobj-tree-sitter-autoloads
evil-numbers-autoloads citre-autoloads ctable-autoloads
line-reminder-autoloads fringe-helper-autoloads ov-autoloads
solarized-theme-autoloads vscode-dark-plus-theme-autoloads
gruvbox-theme-autoloads sqlup-mode-autoloads bm-autoloads
simplicity-theme-autoloads twilight-bright-theme-autoloads
flatui-theme-autoloads zen-mode-autoloads origami-autoloads
sly-autoloads expand-region-autoloads morlock-autoloads
highlight-defined-autoloads sexy-monochrome-theme-autoloads
nofrils-acme-theme-autoloads inverse-acme-theme-autoloads
acme-theme-autoloads dracula-theme-autoloads
professional-theme-autoloads plan9-theme-autoloads ayu-theme-autoloads
base16-theme-autoloads idea-darkula-theme-autoloads
hybrid-reverse-theme-autoloads sublime-themes-autoloads
material-theme-autoloads doom-themes-autoloads nyan-mode-autoloads
organic-green-theme-autoloads inkpot-theme-autoloads
github-dark-vscode-theme-autoloads almost-mono-themes-autoloads
cyberpunk-theme-autoloads soothe-theme-autoloads zenburn-theme-autoloads
mindre-theme-autoloads kaolin-themes-autoloads
tron-legacy-theme-autoloads wildcharm-theme-autoloads
atom-one-dark-theme-autoloads parchment-theme-autoloads
autothemer-autoloads visual-fill-column-autoloads
transpose-frame-autoloads gameoflife-autoloads docker-autoloads
dockerfile-mode-autoloads emacs-everywhere-autoloads cus-dir-autoloads
empv-autoloads yeetube-autoloads makefile-executor-autoloads
dumb-jump-autoloads popup-autoloads bing-dict-autoloads
hl-todo-autoloads atom-dark-theme-autoloads ef-themes-autoloads
uwu-theme-autoloads vagrant-autoloads ag-autoloads alarm-clock-autoloads
pinentry-autoloads hackernews-autoloads notmuch-autoloads
fussy-autoloads flx-autoloads affe-autoloads clang-format-autoloads
apheleia-autoloads elisp-autofmt-autoloads vimrc-mode-autoloads
netease-cloud-music-autoloads mpv-autoloads gnuplot-autoloads
mermaid-mode-autoloads atomic-chrome-autoloads websocket-autoloads
restore-point-autoloads ace-window-autoloads avy-autoloads
olivetti-autoloads super-save-autoloads helpful-autoloads
solidity-mode-autoloads git-timemachine-autoloads
markdown-ts-mode-autoloads web-mode-autoloads adoc-mode-autoloads
go-mode-autoloads js2-mode-autoloads rust-playground-autoloads
consult-dir-autoloads consult-ag-autoloads super-hint-xref super-hint-rg
super-hint evil-collection-xref xref evil-collection-rg rg pixel-scroll
cua-base piper ob-shell ob-gnuplot ob-C evil-collection-org org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src
evil-collection-sh-script sh-script executable ob-comint org-pcomplete
org-list org-footnote org-faces org-entities org-version ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs org-compat org-macs molecule-mode lsp hyperbole
evil-collection-gptel gptel windmove erc erc-backend erc-networks
erc-common erc-compat erc-loaddefs eee evil-collection-ediff ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util dired-x consult-ripgrep-all evil-collection-eww eww vtable
mule-util url-queue epa-file saveplace recentf tree-widget winner
edit-list refine loop list-utils evil-collection-leetcode leetcode log4e
aio mm-url evil-collection-gnus gnus nnheader range prompts file-info
browse-at-remote f image-roll toc-mode evil-collection-pdf pdf-history
pdf-occur ibuf-ext pdf-isearch let-alist pdf-misc pdf-loader pdf-tools
pdf-view jka-compr pdf-cache pdf-info pdf-util pdf-macs
evil-collection-image image-mode exif rst ibuffer-sidebar
evil-collection-ibuffer ibuffer ibuffer-loaddefs scratch sql
evil-collection-view view persistent-scratch exercism persist
async-await iter2 generator promise url-http url-auth url-gw nsm
promise-rejection-tracking promise-finally promise-done
promise-es6-extensions promise-core async request a indent-bars
evil-collection-outline noutline outline mode-line-bell powerthesaurus
jeison evil-collection-consult consult evil-collection-ripgrep ripgrep
evil-collection-wgrep wgrep evil-collection-grep grep
evil-collection-vlf vlf vlf-base vlf-tune gptai ctrlf hl-line
nerd-icons-completion nerd-icons nerd-icons-faces nerd-icons-data
nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon
nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon
nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon disable-mouse mingus
libmpdee evil-collection-mpdel mpdel mpdel-browser libmpdel-directory
mpdel-playlist mpdel-tablist mpdel-song mpdel-core navigel
evil-collection-bookmark bookmark evil-collection-tablist tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local find-func cedet
libmpdel tq time-stamp exwm exwm-input xcb-keysyms xcb-xkb exwm-manage
exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core
xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug server posframe
esup esup-child benchmark ssh-config-mode jq-mode json-mode
json-snatcher js c-ts-common treesit evil-collection-imenu imenu cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs evil-collection-yaml-mode yaml-mode toml-mode conf-mode align
evil-collection-elisp-refs elisp-refs s highlight facemenu
diff-hl-show-hunk diff-hl-inline-popup diff-hl-flydiff diff
diff-hl-margin diff-hl-dired evil-collection-diff-hl diff-hl
evil-collection-log-view log-view evil-collection-log-edit log-edit
message sendmail yank-media rfc822 mml mml-sec evil-collection-epa epa
derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr
mailabbrev mail-utils gmm-utils mailheader add-log pcvs-util
evil-collection-vc-dir vc-dir ewoc nix-mode ffap smie nix-repl nix-shell
nix-store evil-collection-magit-section magit-section cursor-sensor dash
nix-log nix-instantiate nix-shebang nix-format nix sudo-edit tramp
trampver tramp-integration tramp-message tramp-compat xdg shell
pcomplete parse-time iso8601 time-date tramp-loaddefs
evil-collection-devdocs devdocs mathjax zig-mode reformatter
evil-terminal-cursor-changer evil-surround evil-visualstar
evil-commentary evil-commentary-integration evil-collection-evil-mc
evil-mc evil-mc-command-execute evil-mc-command-record
evil-mc-cursor-make evil-mc-region evil-mc-cursor-state evil-mc-undo
evil-mc-vars evil-mc-known-commands evil-mc-common evil-exchange
evil-lion evil-args smartscan gcmh timeout ess ess-utils ess-custom
evil-collection-unimpaired evil-collection-vc-git
evil-collection-tabulated-list evil-collection-tab-bar
evil-collection-simple evil-collection-replace
evil-collection-process-menu evil-collection-package-menu
evil-collection-minibuffer evil-collection-man evil-collection-kmacro
evil-collection-indent evil-collection-help evil-collection-flymake
evil-collection-elisp-mode evil-collection-eldoc evil-collection-elpaca
evil-collection-dired evil-collection-diff-mode evil-collection-custom
evil-collection-compile evil-collection-comint evil-collection-calendar
evil-collection-buff-menu evil-collection annalist sqlite3 sqlite3-api
treebundel vc-git diff-mode track-changes files-x minimap git-link dired
dired-loaddefs texfrag face-remap shr pixel-fill kinsoku url-file puny
svg dom preview latex latex-flymake flymake project compile
text-property-search comint ansi-osc tex-ispell tex-style tex dbus xml
crm texmathp auctex lisp-mnt package browse-url url-handlers xterm-color
edit-list-autoloads refine-autoloads list-utils-autoloads loop-autoloads
leetcode-autoloads aio-autoloads log4e-autoloads prompts-autoloads
file-info-autoloads hydra-autoloads lv-autoloads
browse-at-remote-autoloads image-roll-autoloads
saveplace-pdf-view-autoloads pdfgrep-autoloads toc-mode-autoloads
pdf-tools-autoloads ibuffer-sidebar-autoloads scratch-autoloads
persistent-scratch-autoloads exercism-autoloads a-autoloads
request-autoloads async-autoloads async-await-autoloads
promise-autoloads iter2-autoloads persist-autoloads
indent-bars-autoloads rainbow-delimiters-autoloads
rainbow-mode-autoloads mode-line-bell-autoloads powerthesaurus-autoloads
hydra lv jeison-autoloads consult-autoloads ripgrep-autoloads
wgrep-autoloads yasnippet-capf-autoloads yasnippet-autoloads
cape-autoloads kind-icon-autoloads svg-lib-autoloads vlf-autoloads
gptai-autoloads popper-autoloads ctrlf-autoloads
nerd-icons-dired-autoloads nerd-icons-completion-autoloads
nerd-icons-autoloads marginalia-autoloads disable-mouse-autoloads
mingus-autoloads libmpdee-autoloads mpdel-autoloads libmpdel-autoloads
navigel-autoloads tablist-autoloads exwm-autoloads xelb-autoloads
posframe-autoloads esup-autoloads quickrun-autoloads ht-autoloads
ssh-config-mode-autoloads jq-mode-autoloads json-mode-autoloads
json-snatcher-autoloads yaml-mode-autoloads toml-mode-autoloads
elisp-refs-autoloads symbol-overlay-autoloads
highlight-escape-sequences-autoloads highlight-autoloads
highlight-numbers-autoloads parent-mode-autoloads diff-hl-autoloads
nix-mode-autoloads magit-section-autoloads sudo-edit-autoloads
attrap-autoloads f-autoloads dash-autoloads s-autoloads
devdocs-autoloads mathjax-autoloads zig-mode-autoloads
reformatter-autoloads evil-terminal-cursor-changer-autoloads
evil-surround-autoloads evil-visualstar-autoloads
evil-commentary-autoloads evil-mc-autoloads evil-exchange-autoloads
evil-lion-autoloads evil-args-autoloads smartscan-autoloads
gcmh-autoloads timeout-autoloads ess-autoloads poly-R-autoloads
poly-markdown-autoloads markdown-mode-autoloads poly-noweb-autoloads
polymode-autoloads info-colors-autoloads el-patch-autoloads el-patch
el-patch-stub evil-collection-autoloads annalist-autoloads
sqlite3-autoloads treebundel-autoloads minimap-autoloads
git-link-autoloads texfrag-autoloads auctex-autoloads tex-site
xterm-color-autoloads ispell man ansi-color autorevert filenotify
cal-menu calendar cal-loaddefs advice evil evil-integration evil-maps
evil-commands reveal evil-jumps evil-command-window evil-types
evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp
comp-cstr comp-run comp-common rx evil-common thingatpt rect evil-vars
ring goto-chg evil-autoloads goto-chg-autoloads transient pcase
format-spec compat transient-autoloads general memoize
sanityinc-tomorrow-bright-theme color-theme-sanityinc-tomorrow color
general-autoloads memoize-autoloads
color-theme-sanityinc-tomorrow-autoloads edmacro kmacro vc vc-dispatcher
cl-extra help-mode elpaca-use-package use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core elpaca-use-package-autoloads elpaca-log
elpaca-ui elpaca-menu-elpa elpaca-menu-melpa url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core
cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars mailcap elpaca-menu-org elpaca warnings elpaca-process
elpaca-autoloads early-init cus-edit pp cus-load icons wid-edit
cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo gtk
x-toolkit xinput2 x multi-tty move-toolbar make-network-process
native-compile emacs)

Memory information:
((conses 16 2556131 4527595) (symbols 48 155592 2342)
  (strings 32 732585 276868) (string-bytes 1 21957733)
  (vectors 16 238463) (vector-slots 8 3563566 1491889)
  (floats 8 3440 4452) (intervals 56 8441 3652) (buffers 992 36))





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line
  2024-12-12 10:35 bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line Eval Exec
@ 2024-12-14 10:55 ` Eli Zaretskii
  2024-12-15 20:25   ` Ship Mints
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2024-12-14 10:55 UTC (permalink / raw)
  To: Eval Exec; +Cc: 74817

tags 74817 notabug wontfix
thanks

> From: Eval Exec <execvy@gmail.com>
> Date: Thu, 12 Dec 2024 18:35:07 +0800
> 
> 
> for example:
> I create a scratch init.el:
> ```elisp
> 
> 
> (defun header0()
>   "header_line_head")
> (defun header1()
>   "header_line_tail")
> 
> (add-to-list 'header-line-format '(:eval (header0)) t)
> (add-to-list 'header-line-format mode-line-format-right-align t)
> (add-to-list 'header-line-format '(:eval (header1)) t)
> ```
> 
> Then start emacs, I got: https://imgur.com/a/PHGxRyf
> 
> You can see, in the right side of header-line, it's wrong, not right align well.

This feature doesn't work in header-line, only in mode-line.  It
specifically looks at mode-line-format.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line
  2024-12-14 10:55 ` Eli Zaretskii
@ 2024-12-15 20:25   ` Ship Mints
  2024-12-28 11:32     ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Ship Mints @ 2024-12-15 20:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 74817, Eval Exec

[-- Attachment #1: Type: text/plain, Size: 2200 bytes --]

To emulate the desired behavior, I lifted this from tab-bar's
implementation for a proof-of-concept.

(defun header-line-format-align-right ()
  "Align the rest of `header-line' items to the right."
  (let* ((rest (cdr (member '(:eval (header-line-format-align-right))
header-line-format)))
         (rest (tab-bar-format-list rest)) ; replace tab-bar-format-list
with your own beyond this POC
         (rest (mapconcat (lambda (item) (nth 2 item)) rest ""))
         (hpos (progn
                 (add-face-text-property 0 (length rest) 'header-line t
rest)
                 (string-pixel-width rest)))
         (str (propertize " " 'display
                          ;; The `right' spec doesn't work on TTY frames
                          ;; when windows are split horizontally (bug#59620)
                          (if (window-system)
                              `(space :align-to (- right (,hpos)))
                            `(space :align-to (,(- (frame-inner-width)
hpos)))))))
    `((align-right menu-item ,str ignore))))

(setq header-line-format '("TEST HEADER LINE" (:eval
(header-line-format-align-right)) (lambda () "FOO BAR BAZ")))

One gotcha is that tab-bar-format-list relies on "rest" being a list of
functions, hence the lambda at the end.

Adapt as you see fit.

-Stephane

On Sat, Dec 14, 2024 at 5:56 AM Eli Zaretskii <eliz@gnu.org> wrote:

> tags 74817 notabug wontfix
> thanks
>
> > From: Eval Exec <execvy@gmail.com>
> > Date: Thu, 12 Dec 2024 18:35:07 +0800
> >
> >
> > for example:
> > I create a scratch init.el:
> > ```elisp
> >
> >
> > (defun header0()
> >   "header_line_head")
> > (defun header1()
> >   "header_line_tail")
> >
> > (add-to-list 'header-line-format '(:eval (header0)) t)
> > (add-to-list 'header-line-format mode-line-format-right-align t)
> > (add-to-list 'header-line-format '(:eval (header1)) t)
> > ```
> >
> > Then start emacs, I got: https://imgur.com/a/PHGxRyf
> >
> > You can see, in the right side of header-line, it's wrong, not right
> align well.
>
> This feature doesn't work in header-line, only in mode-line.  It
> specifically looks at mode-line-format.
>
>
>
>

[-- Attachment #2: Type: text/html, Size: 3610 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line
  2024-12-15 20:25   ` Ship Mints
@ 2024-12-28 11:32     ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2024-12-28 11:32 UTC (permalink / raw)
  To: Ship Mints; +Cc: 74817-done, execvy

> From: Ship Mints <shipmints@gmail.com>
> Date: Sun, 15 Dec 2024 15:25:19 -0500
> Cc: Eval Exec <execvy@gmail.com>, 74817@debbugs.gnu.org
> 
> To emulate the desired behavior, I lifted this from tab-bar's implementation for a proof-of-concept.
> 
> (defun header-line-format-align-right ()
>   "Align the rest of `header-line' items to the right."
>   (let* ((rest (cdr (member '(:eval (header-line-format-align-right)) header-line-format)))
>          (rest (tab-bar-format-list rest)) ; replace tab-bar-format-list with your own beyond this POC
>          (rest (mapconcat (lambda (item) (nth 2 item)) rest ""))
>          (hpos (progn
>                  (add-face-text-property 0 (length rest) 'header-line t rest)
>                  (string-pixel-width rest)))
>          (str (propertize " " 'display
>                           ;; The `right' spec doesn't work on TTY frames
>                           ;; when windows are split horizontally (bug#59620)
>                           (if (window-system)
>                               `(space :align-to (- right (,hpos)))
>                             `(space :align-to (,(- (frame-inner-width) hpos)))))))
>     `((align-right menu-item ,str ignore))))
> 
> (setq header-line-format '("TEST HEADER LINE" (:eval (header-line-format-align-right)) (lambda () "FOO
> BAR BAZ")))
> 
> One gotcha is that tab-bar-format-list relies on "rest" being a list of functions, hence the lambda at the end.
> 
> Adapt as you see fit.

No further comments in 2 weeks, so I'm now closing this bug.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-12-28 11:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-12 10:35 bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line Eval Exec
2024-12-14 10:55 ` Eli Zaretskii
2024-12-15 20:25   ` Ship Mints
2024-12-28 11:32     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).