Package: emacs;
Reported by: Eval Exec <execvy <at> gmail.com>
Date: Thu, 12 Dec 2024 10:36:01 UTC
Severity: normal
Tags: notabug, wontfix
Found in version 31.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74817 in the body.
You can then email your comments to 74817 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#74817
; Package emacs
.
(Thu, 12 Dec 2024 10:36:02 GMT) Full text and rfc822 format available.Eval Exec <execvy <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Thu, 12 Dec 2024 10:36:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Eval Exec <execvy <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 31.0.50; mode-line-format-right-align doesn't work well on header-line 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. 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))
bug-gnu-emacs <at> gnu.org
:bug#74817
; Package emacs
.
(Sat, 14 Dec 2024 10:56:01 GMT) Full text and rfc822 format available.Message #8 received at 74817 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Eval Exec <execvy <at> gmail.com> Cc: 74817 <at> debbugs.gnu.org Subject: Re: bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line Date: Sat, 14 Dec 2024 12:55:00 +0200
tags 74817 notabug wontfix thanks > From: Eval Exec <execvy <at> 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.
Eli Zaretskii <eliz <at> gnu.org>
to control <at> debbugs.gnu.org
.
(Sat, 14 Dec 2024 10:56:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#74817
; Package emacs
.
(Sun, 15 Dec 2024 20:28:02 GMT) Full text and rfc822 format available.Message #13 received at 74817 <at> debbugs.gnu.org (full text, mbox):
From: Ship Mints <shipmints <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 74817 <at> debbugs.gnu.org, Eval Exec <execvy <at> gmail.com> Subject: Re: bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line Date: Sun, 15 Dec 2024 15:25:19 -0500
[Message part 1 (text/plain, inline)]
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 <at> gnu.org> wrote: > tags 74817 notabug wontfix > thanks > > > From: Eval Exec <execvy <at> 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. > > > >
[Message part 2 (text/html, inline)]
Eli Zaretskii <eliz <at> gnu.org>
:Eval Exec <execvy <at> gmail.com>
:Message #18 received at 74817-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Ship Mints <shipmints <at> gmail.com> Cc: 74817-done <at> debbugs.gnu.org, execvy <at> gmail.com Subject: Re: bug#74817: 31.0.50; mode-line-format-right-align doesn't work well on header-line Date: Sat, 28 Dec 2024 13:32:59 +0200
> From: Ship Mints <shipmints <at> gmail.com> > Date: Sun, 15 Dec 2024 15:25:19 -0500 > Cc: Eval Exec <execvy <at> gmail.com>, 74817 <at> 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.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 25 Jan 2025 12:24:07 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.