From debbugs-submit-bounces@debbugs.gnu.org Thu May 06 11:39:44 2021 Received: (at submit) by debbugs.gnu.org; 6 May 2021 15:39:44 +0000 Received: from localhost ([127.0.0.1]:38163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1leg6G-0004Ay-KJ for submit@debbugs.gnu.org; Thu, 06 May 2021 11:39:44 -0400 Received: from lists.gnu.org ([209.51.188.17]:47260) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lefqa-0001pH-TR for submit@debbugs.gnu.org; Thu, 06 May 2021 11:23:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40488) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lefqa-0002mB-0n for bug-gnu-emacs@gnu.org; Thu, 06 May 2021 11:23:28 -0400 Received: from 119.ip-51-38-65.eu ([51.38.65.119]:57262 helo=mail.kisara.moe) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lefqV-0001Ud-Hx for bug-gnu-emacs@gnu.org; Thu, 06 May 2021 11:23:27 -0400 Received: by mail.kisara.moe (Postfix, from userid 1001) id 31575A08EB; Thu, 6 May 2021 17:16:53 +0200 (CEST) Date: Thu, 06 May 2021 17:16:53 +0200 To: bug-gnu-emacs@gnu.org Subject: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames User-Agent: mail v14.9.20 Message-Id: <20210506151653.31575A08EB@mail.kisara.moe> From: mohkale@kisara.moe Received-SPF: pass client-ip=51.38.65.119; envelope-from=mohkale@kisara.moe; helo=mail.kisara.moe X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, RDNS_DYNAMIC=0.982, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Thu, 06 May 2021 11:39:39 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On terminal frames emacs doesn't account for the window separator when right aligning some text. Many mode-line packages which include both left and right hand sections are thus off alignment. I believe this is an issue because on GUI frames the separator is a straight line that takes up (essentially) no width whereas on terminal frames it takes up a full column. Reproduction instruction: 1. Run `emacs -nw -q` 2. Copy the following code block into your scratch buffer and run `M-x eval-buffer`. ```lisp (defvar left-mode-line-format+ '("foo")) (defvar right-mode-line-format+ '("bar")) (defun +align-mode-line (lhs-forms rhs-forms) "Adapted from `doom-modeline-def-modeline'." (let ((left-width (string-width (format-mode-line (cons "" rhs-forms))))) (list lhs-forms (propertize " " 'display `((space :align-to (- (+ right right-fringe right-margin) ,left-width)))) rhs-forms))) (setq mode-line-format '((:eval (+align-mode-line left-mode-line-format+ right-mode-line-format+)))) ``` 3. Now run `split-window-right`. Observe that in the left window the last character in the right aligned mode-line section is one character too short (because the window separators width isn't accounted for) whereas in the right window this isn't an issue. If you split-window-right multiple times you can observe the same behaviour of the rightmost window being rendered properly but all the other windows with a window separator on the right-hand-side are truncated by one character. In GNU Emacs 28.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.29, cairo version 1.17.4) of 2021-04-30 built on mk-desktop Repository revision: 1167253f75badf9e7df1bf983c2ebeb2d37d3881 Repository branch: master System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-sound=alsa --with-modules --with-native-compilation --without-gconf --without-gsettings --enable-link-time-optimization --with-x-toolkit=gtk3 --without-xaw3d --without-compress-install '--program-transform-name=s/\([ec]tags\)/\1.emacs/' 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2,-D_GLIBCXX_ASSERTIONS -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -flto -fuse-linker-plugin' LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB Important settings: value of $LC_MESSAGES: C value of $LANG: en_GB.UTF-8 locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: magit-todos-mode: t global-git-commit-mode: t magit-auto-revert-mode: t auto-revert-mode: t yas-global-mode: t yas-minor-mode: t persp-mode: t minibuffer-depth-indicate-mode: t eyebrowse-mode: t org-superstar-mode: t org-appear-mode: t winner-mode: t global-anzu-mode: t anzu-mode: t electric-pair-mode: t xterm-mouse-mode: t company-prescient-mode: t global-company-mode: t company-mode: t emojify-mode: t vimish-fold-mode: t global-hl-todo-mode: t hl-todo-mode: t hl-line-mode: t show-paren-mode: t savehist-mode: t selectrum-prescient-mode: t marginalia-mode: t page-break-lines-mode: t display-line-numbers-mode: t projectile-mode: t recentf-mode: t selectrum-mode: t save-place-mode: t winum-mode: t which-key-mode: t global-undo-tree-mode: t undo-tree-mode: t global-evil-matchit-mode: t evil-matchit-mode: t global-evil-surround-mode: t evil-surround-mode: t evil-snipe-mode: t evil-snipe-local-mode: t evil-traces-mode: t flyspell-mode: t shell-dirtrack-mode: t evil-mode: t evil-local-mode: t prescient-persist-mode: t xclip-mode: t general-override-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t straight-live-modifications-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t prettify-symbols-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t auto-fill-function: yas--auto-fill transient-mark-mode: t abbrev-mode: t Load-path shadows: /home/mohkale/.config/emacs/lisp/straight/build/org/ob-shen hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-shen /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ruby hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-ruby /home/mohkale/.config/emacs/lisp/straight/build/org/ol-eshell hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-eshell /home/mohkale/.config/emacs/lisp/straight/build/org/ob-picolisp hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-picolisp /home/mohkale/.config/emacs/lisp/straight/build/org/org-element hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-element /home/mohkale/.config/emacs/lisp/straight/build/org/ob-octave hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-octave /home/mohkale/.config/emacs/lisp/straight/build/org/ol-rmail hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-rmail /home/mohkale/.config/emacs/lisp/straight/build/org/org-entities hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-entities /home/mohkale/.config/emacs/lisp/straight/build/org/org-footnote hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-footnote /home/mohkale/.config/emacs/lisp/straight/build/org/org-plot hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-plot /home/mohkale/.config/emacs/lisp/straight/build/org/org-mouse hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-mouse /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ref hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-ref /home/mohkale/.config/emacs/lisp/straight/build/org/org-version hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-version /home/mohkale/.config/emacs/lisp/straight/build/org/ox-publish hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-publish /home/mohkale/.config/emacs/lisp/straight/build/org/ol hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol /home/mohkale/.config/emacs/lisp/straight/build/org/org-timer hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-timer /home/mohkale/.config/emacs/lisp/straight/build/org/ob-comint hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-comint /home/mohkale/.config/emacs/lisp/straight/build/org/org-table hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-table /home/mohkale/.config/emacs/lisp/straight/build/org/ol-docview hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-docview /home/mohkale/.config/emacs/lisp/straight/build/org/ol-irc hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-irc /home/mohkale/.config/emacs/lisp/straight/build/org/org-attach hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-attach /home/mohkale/.config/emacs/lisp/straight/build/org/ob-table hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-table /home/mohkale/.config/emacs/lisp/straight/build/org/ob-fortran hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-fortran /home/mohkale/.config/emacs/lisp/straight/build/org/org-pcomplete hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-pcomplete /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sed hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-sed /home/mohkale/.config/emacs/lisp/straight/build/org/org-clock hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-clock /home/mohkale/.config/emacs/lisp/straight/build/org/ob-coq hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-coq /home/mohkale/.config/emacs/lisp/straight/build/org/ol-info hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-info /home/mohkale/.config/emacs/lisp/straight/build/org/org-duration hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-duration /home/mohkale/.config/emacs/lisp/straight/build/org/org-protocol hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-protocol /home/mohkale/.config/emacs/lisp/straight/build/org/ol-gnus hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-gnus /home/mohkale/.config/emacs/lisp/straight/build/org/ob hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob /home/mohkale/.config/emacs/lisp/straight/build/org/org-goto hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-goto /home/mohkale/.config/emacs/lisp/straight/build/org/ob-J hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-J /home/mohkale/.config/emacs/lisp/straight/build/org/ob-python hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-python /home/mohkale/.config/emacs/lisp/straight/build/org/ob-awk hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-awk /home/mohkale/.config/emacs/lisp/straight/build/org/ox-odt hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-odt /home/mohkale/.config/emacs/lisp/straight/build/org/org-habit hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-habit /home/mohkale/.config/emacs/lisp/straight/build/org/org-crypt hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-crypt /home/mohkale/.config/emacs/lisp/straight/build/org/org-num hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-num /home/mohkale/.config/emacs/lisp/straight/build/org/org-lint hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-lint /home/mohkale/.config/emacs/lisp/straight/build/org/ob-perl hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-perl /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lisp hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-lisp /home/mohkale/.config/emacs/lisp/straight/build/org/org-capture hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-capture /home/mohkale/.config/emacs/lisp/straight/build/org/org-macro hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-macro /home/mohkale/.config/emacs/lisp/straight/build/org/ol-w3m hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-w3m /home/mohkale/.config/emacs/lisp/straight/build/org/org-src hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-src /home/mohkale/.config/emacs/lisp/straight/build/org/ob-css hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-css /home/mohkale/.config/emacs/lisp/straight/build/org/ox-icalendar hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-icalendar /home/mohkale/.config/emacs/lisp/straight/build/org/ob-dot hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-dot /home/mohkale/.config/emacs/lisp/straight/build/org/ob-asymptote hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-asymptote /home/mohkale/.config/emacs/lisp/straight/build/org/ob-mscgen hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-mscgen /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lua hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-lua /home/mohkale/.config/emacs/lisp/straight/build/org/ob-eval hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-eval /home/mohkale/.config/emacs/lisp/straight/build/org/ob-forth hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-forth /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sqlite hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-sqlite /home/mohkale/.config/emacs/lisp/straight/build/org/ob-stan hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-stan /home/mohkale/.config/emacs/lisp/straight/build/org/ob-org hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-org /home/mohkale/.config/emacs/lisp/straight/build/org/org-list hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-list /home/mohkale/.config/emacs/lisp/straight/build/org/org-datetree hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-datetree /home/mohkale/.config/emacs/lisp/straight/build/org/ob-core hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-core /home/mohkale/.config/emacs/lisp/straight/build/org/ox-ascii hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-ascii /home/mohkale/.config/emacs/lisp/straight/build/org/ob-js hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-js /home/mohkale/.config/emacs/lisp/straight/build/org/org-archive hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-archive /home/mohkale/.config/emacs/lisp/straight/build/org/ob-eshell hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-eshell /home/mohkale/.config/emacs/lisp/straight/build/org/ox-texinfo hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-texinfo /home/mohkale/.config/emacs/lisp/straight/build/org/ob-gnuplot hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-gnuplot /home/mohkale/.config/emacs/lisp/straight/build/org/ob-screen hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-screen /home/mohkale/.config/emacs/lisp/straight/build/org/ox-beamer hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-beamer /home/mohkale/.config/emacs/lisp/straight/build/org/ob-shell hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-shell /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ditaa hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-ditaa /home/mohkale/.config/emacs/lisp/straight/build/org/ox-html hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-html /home/mohkale/.config/emacs/lisp/straight/build/org/ob-C hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-C /home/mohkale/.config/emacs/lisp/straight/build/org/ob-latex hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-latex /home/mohkale/.config/emacs/lisp/straight/build/org/org-mobile hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-mobile /home/mohkale/.config/emacs/lisp/straight/build/org/ob-io hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-io /home/mohkale/.config/emacs/lisp/straight/build/org/ob-tangle hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-tangle /home/mohkale/.config/emacs/lisp/straight/build/org/org-agenda hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-agenda /home/mohkale/.config/emacs/lisp/straight/build/org/ob-exp hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-exp /home/mohkale/.config/emacs/lisp/straight/build/org/org-keys hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-keys /home/mohkale/.config/emacs/lisp/straight/build/org/org hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org /home/mohkale/.config/emacs/lisp/straight/build/org/org-refile hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-refile /home/mohkale/.config/emacs/lisp/straight/build/org/ol-eww hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-eww /home/mohkale/.config/emacs/lisp/straight/build/org/ob-hledger hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-hledger /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lob hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-lob /home/mohkale/.config/emacs/lisp/straight/build/org/ob-scheme hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-scheme /home/mohkale/.config/emacs/lisp/straight/build/org/ob-groovy hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-groovy /home/mohkale/.config/emacs/lisp/straight/build/org/ob-makefile hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-makefile /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sql hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-sql /home/mohkale/.config/emacs/lisp/straight/build/org/ob-emacs-lisp hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-emacs-lisp /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ebnf hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-ebnf /home/mohkale/.config/emacs/lisp/straight/build/org/org-loaddefs hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-loaddefs /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ledger hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-ledger /home/mohkale/.config/emacs/lisp/straight/build/org/org-faces hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-faces /home/mohkale/.config/emacs/lisp/straight/build/org/ox-md hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-md /home/mohkale/.config/emacs/lisp/straight/build/org/org-colview hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-colview /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sass hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-sass /home/mohkale/.config/emacs/lisp/straight/build/org/org-inlinetask hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-inlinetask /home/mohkale/.config/emacs/lisp/straight/build/org/ob-matlab hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-matlab /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ocaml hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-ocaml /home/mohkale/.config/emacs/lisp/straight/build/org/ob-maxima hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-maxima /home/mohkale/.config/emacs/lisp/straight/build/org/ob-vala hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-vala /home/mohkale/.config/emacs/lisp/straight/build/org/org-indent hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-indent /home/mohkale/.config/emacs/lisp/straight/build/org/org-tempo hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-tempo /home/mohkale/.config/emacs/lisp/straight/build/org/ob-abc hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-abc /home/mohkale/.config/emacs/lisp/straight/build/org/ob-plantuml hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-plantuml /home/mohkale/.config/emacs/lisp/straight/build/org/ob-haskell hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-haskell /home/mohkale/.config/emacs/lisp/straight/build/org/ox-latex hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-latex /home/mohkale/.config/emacs/lisp/straight/build/org/org-id hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-id /home/mohkale/.config/emacs/lisp/straight/build/org/ol-bbdb hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-bbdb /home/mohkale/.config/emacs/lisp/straight/build/org/org-ctags hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-ctags /home/mohkale/.config/emacs/lisp/straight/build/org/org-install hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-install /home/mohkale/.config/emacs/lisp/straight/build/org/org-feed hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-feed /home/mohkale/.config/emacs/lisp/straight/build/org/org-attach-git hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-attach-git /home/mohkale/.config/emacs/lisp/straight/build/org/org-macs hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-macs /home/mohkale/.config/emacs/lisp/straight/build/org/ob-java hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-java /home/mohkale/.config/emacs/lisp/straight/build/org/ol-mhe hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-mhe /home/mohkale/.config/emacs/lisp/straight/build/org/org-compat hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/org-compat /home/mohkale/.config/emacs/lisp/straight/build/org/ob-calc hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-calc /home/mohkale/.config/emacs/lisp/straight/build/org/ob-clojure hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-clojure /home/mohkale/.config/emacs/lisp/straight/build/org/ob-R hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-R /home/mohkale/.config/emacs/lisp/straight/build/org/ob-processing hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-processing /home/mohkale/.config/emacs/lisp/straight/build/org/ol-bibtex hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ol-bibtex /home/mohkale/.config/emacs/lisp/straight/build/org/ox-man hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-man /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lilypond hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ob-lilypond /home/mohkale/.config/emacs/lisp/straight/build/org/ox-org hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox-org /home/mohkale/.config/emacs/lisp/straight/build/org/ox hides /home/mohkale/.config/emacs/lisp/straight/build/org-plus-contrib/ox /home/mohkale/.config/emacs/lisp/straight/build/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /home/mohkale/.config/emacs/lisp/straight/build/jsonrpc/jsonrpc hides /usr/share/emacs/28.0.50/lisp/jsonrpc /home/mohkale/.config/emacs/lisp/straight/build/transient/transient hides /usr/share/emacs/28.0.50/lisp/transient /home/mohkale/.config/emacs/lisp/straight/build/xref/xref hides /usr/share/emacs/28.0.50/lisp/progmodes/xref /home/mohkale/.config/emacs/lisp/straight/build/project/project hides /usr/share/emacs/28.0.50/lisp/progmodes/project /home/mohkale/.config/emacs/lisp/straight/build/flymake/flymake hides /usr/share/emacs/28.0.50/lisp/progmodes/flymake /home/mohkale/.config/emacs/lisp/straight/build/org/ob-shen hides /usr/share/emacs/28.0.50/lisp/org/ob-shen /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ruby hides /usr/share/emacs/28.0.50/lisp/org/ob-ruby /home/mohkale/.config/emacs/lisp/straight/build/org/ol-eshell hides /usr/share/emacs/28.0.50/lisp/org/ol-eshell /home/mohkale/.config/emacs/lisp/straight/build/org/ob-picolisp hides /usr/share/emacs/28.0.50/lisp/org/ob-picolisp /home/mohkale/.config/emacs/lisp/straight/build/org/org-element hides /usr/share/emacs/28.0.50/lisp/org/org-element /home/mohkale/.config/emacs/lisp/straight/build/org/ob-octave hides /usr/share/emacs/28.0.50/lisp/org/ob-octave /home/mohkale/.config/emacs/lisp/straight/build/org/ol-rmail hides /usr/share/emacs/28.0.50/lisp/org/ol-rmail /home/mohkale/.config/emacs/lisp/straight/build/org/org-entities hides /usr/share/emacs/28.0.50/lisp/org/org-entities /home/mohkale/.config/emacs/lisp/straight/build/org/org-footnote hides /usr/share/emacs/28.0.50/lisp/org/org-footnote /home/mohkale/.config/emacs/lisp/straight/build/org/org-plot hides /usr/share/emacs/28.0.50/lisp/org/org-plot /home/mohkale/.config/emacs/lisp/straight/build/org/org-mouse hides /usr/share/emacs/28.0.50/lisp/org/org-mouse /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ref hides /usr/share/emacs/28.0.50/lisp/org/ob-ref /home/mohkale/.config/emacs/lisp/straight/build/org/org-version hides /usr/share/emacs/28.0.50/lisp/org/org-version /home/mohkale/.config/emacs/lisp/straight/build/org/ox-publish hides /usr/share/emacs/28.0.50/lisp/org/ox-publish /home/mohkale/.config/emacs/lisp/straight/build/org/ol hides /usr/share/emacs/28.0.50/lisp/org/ol /home/mohkale/.config/emacs/lisp/straight/build/org/org-timer hides /usr/share/emacs/28.0.50/lisp/org/org-timer /home/mohkale/.config/emacs/lisp/straight/build/org/ob-comint hides /usr/share/emacs/28.0.50/lisp/org/ob-comint /home/mohkale/.config/emacs/lisp/straight/build/org/org-table hides /usr/share/emacs/28.0.50/lisp/org/org-table /home/mohkale/.config/emacs/lisp/straight/build/org/ol-docview hides /usr/share/emacs/28.0.50/lisp/org/ol-docview /home/mohkale/.config/emacs/lisp/straight/build/org/ol-irc hides /usr/share/emacs/28.0.50/lisp/org/ol-irc /home/mohkale/.config/emacs/lisp/straight/build/org/org-attach hides /usr/share/emacs/28.0.50/lisp/org/org-attach /home/mohkale/.config/emacs/lisp/straight/build/org/ob-table hides /usr/share/emacs/28.0.50/lisp/org/ob-table /home/mohkale/.config/emacs/lisp/straight/build/org/ob-fortran hides /usr/share/emacs/28.0.50/lisp/org/ob-fortran /home/mohkale/.config/emacs/lisp/straight/build/org/org-pcomplete hides /usr/share/emacs/28.0.50/lisp/org/org-pcomplete /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sed hides /usr/share/emacs/28.0.50/lisp/org/ob-sed /home/mohkale/.config/emacs/lisp/straight/build/org/org-clock hides /usr/share/emacs/28.0.50/lisp/org/org-clock /home/mohkale/.config/emacs/lisp/straight/build/org/ob-coq hides /usr/share/emacs/28.0.50/lisp/org/ob-coq /home/mohkale/.config/emacs/lisp/straight/build/org/ol-info hides /usr/share/emacs/28.0.50/lisp/org/ol-info /home/mohkale/.config/emacs/lisp/straight/build/org/org-duration hides /usr/share/emacs/28.0.50/lisp/org/org-duration /home/mohkale/.config/emacs/lisp/straight/build/org/org-protocol hides /usr/share/emacs/28.0.50/lisp/org/org-protocol /home/mohkale/.config/emacs/lisp/straight/build/org/ol-gnus hides /usr/share/emacs/28.0.50/lisp/org/ol-gnus /home/mohkale/.config/emacs/lisp/straight/build/org/ob hides /usr/share/emacs/28.0.50/lisp/org/ob /home/mohkale/.config/emacs/lisp/straight/build/org/org-goto hides /usr/share/emacs/28.0.50/lisp/org/org-goto /home/mohkale/.config/emacs/lisp/straight/build/org/ob-J hides /usr/share/emacs/28.0.50/lisp/org/ob-J /home/mohkale/.config/emacs/lisp/straight/build/org/ob-python hides /usr/share/emacs/28.0.50/lisp/org/ob-python /home/mohkale/.config/emacs/lisp/straight/build/org/ob-awk hides /usr/share/emacs/28.0.50/lisp/org/ob-awk /home/mohkale/.config/emacs/lisp/straight/build/org/ox-odt hides /usr/share/emacs/28.0.50/lisp/org/ox-odt /home/mohkale/.config/emacs/lisp/straight/build/org/org-habit hides /usr/share/emacs/28.0.50/lisp/org/org-habit /home/mohkale/.config/emacs/lisp/straight/build/org/org-crypt hides /usr/share/emacs/28.0.50/lisp/org/org-crypt /home/mohkale/.config/emacs/lisp/straight/build/org/org-num hides /usr/share/emacs/28.0.50/lisp/org/org-num /home/mohkale/.config/emacs/lisp/straight/build/org/org-lint hides /usr/share/emacs/28.0.50/lisp/org/org-lint /home/mohkale/.config/emacs/lisp/straight/build/org/ob-perl hides /usr/share/emacs/28.0.50/lisp/org/ob-perl /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lisp hides /usr/share/emacs/28.0.50/lisp/org/ob-lisp /home/mohkale/.config/emacs/lisp/straight/build/org/org-capture hides /usr/share/emacs/28.0.50/lisp/org/org-capture /home/mohkale/.config/emacs/lisp/straight/build/org/org-macro hides /usr/share/emacs/28.0.50/lisp/org/org-macro /home/mohkale/.config/emacs/lisp/straight/build/org/ol-w3m hides /usr/share/emacs/28.0.50/lisp/org/ol-w3m /home/mohkale/.config/emacs/lisp/straight/build/org/org-src hides /usr/share/emacs/28.0.50/lisp/org/org-src /home/mohkale/.config/emacs/lisp/straight/build/org/ob-css hides /usr/share/emacs/28.0.50/lisp/org/ob-css /home/mohkale/.config/emacs/lisp/straight/build/org/ox-icalendar hides /usr/share/emacs/28.0.50/lisp/org/ox-icalendar /home/mohkale/.config/emacs/lisp/straight/build/org/ob-dot hides /usr/share/emacs/28.0.50/lisp/org/ob-dot /home/mohkale/.config/emacs/lisp/straight/build/org/ob-asymptote hides /usr/share/emacs/28.0.50/lisp/org/ob-asymptote /home/mohkale/.config/emacs/lisp/straight/build/org/ob-mscgen hides /usr/share/emacs/28.0.50/lisp/org/ob-mscgen /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lua hides /usr/share/emacs/28.0.50/lisp/org/ob-lua /home/mohkale/.config/emacs/lisp/straight/build/org/ob-eval hides /usr/share/emacs/28.0.50/lisp/org/ob-eval /home/mohkale/.config/emacs/lisp/straight/build/org/ob-forth hides /usr/share/emacs/28.0.50/lisp/org/ob-forth /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sqlite hides /usr/share/emacs/28.0.50/lisp/org/ob-sqlite /home/mohkale/.config/emacs/lisp/straight/build/org/ob-stan hides /usr/share/emacs/28.0.50/lisp/org/ob-stan /home/mohkale/.config/emacs/lisp/straight/build/org/ob-org hides /usr/share/emacs/28.0.50/lisp/org/ob-org /home/mohkale/.config/emacs/lisp/straight/build/org/org-list hides /usr/share/emacs/28.0.50/lisp/org/org-list /home/mohkale/.config/emacs/lisp/straight/build/org/org-datetree hides /usr/share/emacs/28.0.50/lisp/org/org-datetree /home/mohkale/.config/emacs/lisp/straight/build/org/ob-core hides /usr/share/emacs/28.0.50/lisp/org/ob-core /home/mohkale/.config/emacs/lisp/straight/build/org/ox-ascii hides /usr/share/emacs/28.0.50/lisp/org/ox-ascii /home/mohkale/.config/emacs/lisp/straight/build/org/ob-js hides /usr/share/emacs/28.0.50/lisp/org/ob-js /home/mohkale/.config/emacs/lisp/straight/build/org/org-archive hides /usr/share/emacs/28.0.50/lisp/org/org-archive /home/mohkale/.config/emacs/lisp/straight/build/org/ob-eshell hides /usr/share/emacs/28.0.50/lisp/org/ob-eshell /home/mohkale/.config/emacs/lisp/straight/build/org/ox-texinfo hides /usr/share/emacs/28.0.50/lisp/org/ox-texinfo /home/mohkale/.config/emacs/lisp/straight/build/org/ob-gnuplot hides /usr/share/emacs/28.0.50/lisp/org/ob-gnuplot /home/mohkale/.config/emacs/lisp/straight/build/org/ob-screen hides /usr/share/emacs/28.0.50/lisp/org/ob-screen /home/mohkale/.config/emacs/lisp/straight/build/org/ox-beamer hides /usr/share/emacs/28.0.50/lisp/org/ox-beamer /home/mohkale/.config/emacs/lisp/straight/build/org/ob-shell hides /usr/share/emacs/28.0.50/lisp/org/ob-shell /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ditaa hides /usr/share/emacs/28.0.50/lisp/org/ob-ditaa /home/mohkale/.config/emacs/lisp/straight/build/org/ox-html hides /usr/share/emacs/28.0.50/lisp/org/ox-html /home/mohkale/.config/emacs/lisp/straight/build/org/ob-C hides /usr/share/emacs/28.0.50/lisp/org/ob-C /home/mohkale/.config/emacs/lisp/straight/build/org/ob-latex hides /usr/share/emacs/28.0.50/lisp/org/ob-latex /home/mohkale/.config/emacs/lisp/straight/build/org/org-mobile hides /usr/share/emacs/28.0.50/lisp/org/org-mobile /home/mohkale/.config/emacs/lisp/straight/build/org/ob-io hides /usr/share/emacs/28.0.50/lisp/org/ob-io /home/mohkale/.config/emacs/lisp/straight/build/org/ob-tangle hides /usr/share/emacs/28.0.50/lisp/org/ob-tangle /home/mohkale/.config/emacs/lisp/straight/build/org/org-agenda hides /usr/share/emacs/28.0.50/lisp/org/org-agenda /home/mohkale/.config/emacs/lisp/straight/build/org/ob-exp hides /usr/share/emacs/28.0.50/lisp/org/ob-exp /home/mohkale/.config/emacs/lisp/straight/build/org/org-keys hides /usr/share/emacs/28.0.50/lisp/org/org-keys /home/mohkale/.config/emacs/lisp/straight/build/org/org hides /usr/share/emacs/28.0.50/lisp/org/org /home/mohkale/.config/emacs/lisp/straight/build/org/org-refile hides /usr/share/emacs/28.0.50/lisp/org/org-refile /home/mohkale/.config/emacs/lisp/straight/build/org/ol-eww hides /usr/share/emacs/28.0.50/lisp/org/ol-eww /home/mohkale/.config/emacs/lisp/straight/build/org/ob-hledger hides /usr/share/emacs/28.0.50/lisp/org/ob-hledger /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lob hides /usr/share/emacs/28.0.50/lisp/org/ob-lob /home/mohkale/.config/emacs/lisp/straight/build/org/ob-scheme hides /usr/share/emacs/28.0.50/lisp/org/ob-scheme /home/mohkale/.config/emacs/lisp/straight/build/org/ob-groovy hides /usr/share/emacs/28.0.50/lisp/org/ob-groovy /home/mohkale/.config/emacs/lisp/straight/build/org/ob-makefile hides /usr/share/emacs/28.0.50/lisp/org/ob-makefile /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sql hides /usr/share/emacs/28.0.50/lisp/org/ob-sql /home/mohkale/.config/emacs/lisp/straight/build/org/ob-emacs-lisp hides /usr/share/emacs/28.0.50/lisp/org/ob-emacs-lisp /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ebnf hides /usr/share/emacs/28.0.50/lisp/org/ob-ebnf /home/mohkale/.config/emacs/lisp/straight/build/org/org-loaddefs hides /usr/share/emacs/28.0.50/lisp/org/org-loaddefs /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ledger hides /usr/share/emacs/28.0.50/lisp/org/ob-ledger /home/mohkale/.config/emacs/lisp/straight/build/org/org-faces hides /usr/share/emacs/28.0.50/lisp/org/org-faces /home/mohkale/.config/emacs/lisp/straight/build/org/ox-md hides /usr/share/emacs/28.0.50/lisp/org/ox-md /home/mohkale/.config/emacs/lisp/straight/build/org/org-colview hides /usr/share/emacs/28.0.50/lisp/org/org-colview /home/mohkale/.config/emacs/lisp/straight/build/org/ob-sass hides /usr/share/emacs/28.0.50/lisp/org/ob-sass /home/mohkale/.config/emacs/lisp/straight/build/org/org-inlinetask hides /usr/share/emacs/28.0.50/lisp/org/org-inlinetask /home/mohkale/.config/emacs/lisp/straight/build/org/ob-matlab hides /usr/share/emacs/28.0.50/lisp/org/ob-matlab /home/mohkale/.config/emacs/lisp/straight/build/org/ob-ocaml hides /usr/share/emacs/28.0.50/lisp/org/ob-ocaml /home/mohkale/.config/emacs/lisp/straight/build/org/ob-maxima hides /usr/share/emacs/28.0.50/lisp/org/ob-maxima /home/mohkale/.config/emacs/lisp/straight/build/org/ob-vala hides /usr/share/emacs/28.0.50/lisp/org/ob-vala /home/mohkale/.config/emacs/lisp/straight/build/org/org-indent hides /usr/share/emacs/28.0.50/lisp/org/org-indent /home/mohkale/.config/emacs/lisp/straight/build/org/org-tempo hides /usr/share/emacs/28.0.50/lisp/org/org-tempo /home/mohkale/.config/emacs/lisp/straight/build/org/ob-abc hides /usr/share/emacs/28.0.50/lisp/org/ob-abc /home/mohkale/.config/emacs/lisp/straight/build/org/ob-plantuml hides /usr/share/emacs/28.0.50/lisp/org/ob-plantuml /home/mohkale/.config/emacs/lisp/straight/build/org/ob-haskell hides /usr/share/emacs/28.0.50/lisp/org/ob-haskell /home/mohkale/.config/emacs/lisp/straight/build/org/ox-latex hides /usr/share/emacs/28.0.50/lisp/org/ox-latex /home/mohkale/.config/emacs/lisp/straight/build/org/org-id hides /usr/share/emacs/28.0.50/lisp/org/org-id /home/mohkale/.config/emacs/lisp/straight/build/org/ol-bbdb hides /usr/share/emacs/28.0.50/lisp/org/ol-bbdb /home/mohkale/.config/emacs/lisp/straight/build/org/org-ctags hides /usr/share/emacs/28.0.50/lisp/org/org-ctags /home/mohkale/.config/emacs/lisp/straight/build/org/org-install hides /usr/share/emacs/28.0.50/lisp/org/org-install /home/mohkale/.config/emacs/lisp/straight/build/org/org-feed hides /usr/share/emacs/28.0.50/lisp/org/org-feed /home/mohkale/.config/emacs/lisp/straight/build/org/org-attach-git hides /usr/share/emacs/28.0.50/lisp/org/org-attach-git /home/mohkale/.config/emacs/lisp/straight/build/org/org-macs hides /usr/share/emacs/28.0.50/lisp/org/org-macs /home/mohkale/.config/emacs/lisp/straight/build/org/ob-java hides /usr/share/emacs/28.0.50/lisp/org/ob-java /home/mohkale/.config/emacs/lisp/straight/build/org/ol-mhe hides /usr/share/emacs/28.0.50/lisp/org/ol-mhe /home/mohkale/.config/emacs/lisp/straight/build/org/org-compat hides /usr/share/emacs/28.0.50/lisp/org/org-compat /home/mohkale/.config/emacs/lisp/straight/build/org/ob-calc hides /usr/share/emacs/28.0.50/lisp/org/ob-calc /home/mohkale/.config/emacs/lisp/straight/build/org/ob-clojure hides /usr/share/emacs/28.0.50/lisp/org/ob-clojure /home/mohkale/.config/emacs/lisp/straight/build/org/ob-R hides /usr/share/emacs/28.0.50/lisp/org/ob-R /home/mohkale/.config/emacs/lisp/straight/build/org/ob-processing hides /usr/share/emacs/28.0.50/lisp/org/ob-processing /home/mohkale/.config/emacs/lisp/straight/build/org/ol-bibtex hides /usr/share/emacs/28.0.50/lisp/org/ol-bibtex /home/mohkale/.config/emacs/lisp/straight/build/org/ox-man hides /usr/share/emacs/28.0.50/lisp/org/ox-man /home/mohkale/.config/emacs/lisp/straight/build/org/ob-lilypond hides /usr/share/emacs/28.0.50/lisp/org/ob-lilypond /home/mohkale/.config/emacs/lisp/straight/build/org/ox-org hides /usr/share/emacs/28.0.50/lisp/org/ox-org /home/mohkale/.config/emacs/lisp/straight/build/org/ox hides /usr/share/emacs/28.0.50/lisp/org/ox /home/mohkale/.config/emacs/lisp/straight/build/let-alist/let-alist hides /usr/share/emacs/28.0.50/lisp/emacs-lisp/let-alist /home/mohkale/.config/emacs/lisp/straight/build/eldoc/eldoc hides /usr/share/emacs/28.0.50/lisp/emacs-lisp/eldoc Features: (shadow sort mail-extr emacsbug sendmail +lib-misc tabify magit-todos pcre2el rxt re-builder async face-remap orgit magit-bookmark magit-submodule magit-obsolete magit-popup 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 package url-handlers magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode git-commit log-edit pcvs-util add-log magit-core magit-autorevert autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-section magit-utils hydra-eyebrowse hydra lv +lib-text-query org-agenda org-refile consult-org markdown-mode go-mode find-file ffap etags fileloop consult-eglot evil-matchit-simple vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc yasnippet eglot array filenotify jsonrpc ert ewoc debug backtrace flymake-proc flymake company-yasnippet +lib-text cl-print shortdoc evil-args pulse color help-fns radix-tree consult-xref xref project mule-util consult-imenu imenu consult-selectrum consult bookmark pp persp-mode mb-depth +lib-buffer-control eyebrowse org-link-minor-mode ob-R ob-shell ob-sed ob-ruby ob-python python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp ob-plantuml ob-ditaa ob-js ob-java ob-latex ob-haskell ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-awk vc-git vc-dispatcher company-bibtex parsebib org-superstar org-appear org-element avl-tree generator ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse url-vars mailcap gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs auth-source eieio eieio-core eieio-loaddefs password-cache rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr ol-docview doc-view jka-compr image-mode exif +dired-bindings dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-man org-eldoc org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs format-spec cal-menu calendar cal-loaddefs winner evil-anzu anzu persistent-scratch elec-pair an-old-hope-theme xt-mouse term/tmux company-emoji company-emoji-list company-prescient company-capf company emojify apropos tar-mode arc-mode archive-mode ht disp-table paredit vimish-fold hl-todo rainbow-delimiters hl-line paren savehist selectrum-prescient selectrum minibuf-eldef crm marginalia editorconfig-core editorconfig-core-handle editorconfig-fnmatch page-break-lines display-line-numbers linum whitespace +projectile-project-types projectile grep compile text-property-search ibuf-ext all-the-icons-ibuffer ibuffer ibuffer-loaddefs ebib-autoloads company-bibtex-autoloads auctex-autoloads tex-site gitattributes-mode-autoloads gitconfig-mode-autoloads gitignore-mode-autoloads rustic-autoloads xterm-color-autoloads spinner-autoloads go-mode-autoloads derived typescript-mode-autoloads xref-js2-autoloads js2-refactor-autoloads multiple-cursors-autoloads js-doc-autoloads js2-mode-autoloads modern-cpp-font-lock-autoloads cmake-mode-autoloads gh-md-autoloads markdown-toc-autoloads logview-autoloads datetime-autoloads extmap-autoloads ssh-config-mode-autoloads company-shell-autoloads csv-mode-autoloads yaml-mode-autoloads sqlup-mode-autoloads vimrc-mode-autoloads json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads haml-mode-autoloads web-beautify-autoloads company-web-autoloads web-completion-data-autoloads emmet-mode-autoloads web-mode-autoloads ruby-electric-autoloads bundler-autoloads ruby-tools-autoloads inf-ruby-autoloads yapfify-autoloads pip-requirements-autoloads py-isort-autoloads pyimport-autoloads shut-up-autoloads paredit-autoloads clojure-mode-autoloads vdiff-autoloads rainbow-mode-autoloads tree-sitter-langs-autoloads tree-sitter-autoloads tsc-autoloads skeletor-autoloads forge-autoloads markdown-mode-autoloads ghub-autoloads treepy-autoloads closql-autoloads emacsql-sqlite-autoloads magit-gitflow-autoloads magit-popup-autoloads magit-todos-autoloads link-hint-autoloads flycheck-pos-tip-autoloads pos-tip-autoloads flycheck json map find-func engine-mode-autoloads eglot-autoloads project-autoloads xref-autoloads flymake-autoloads eldoc-autoloads jsonrpc-autoloads edit-server-htmlize-autoloads edit-server-autoloads nerd-fonts nerd-fonts-data all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons dashboard dashboard-widgets time recentf tree-widget wid-edit dashboard-autoloads consult-flycheck-autoloads flycheck-autoloads embark-consult-autoloads consult-autoloads embark-autoloads marginalia-autoloads selectrum-prescient-autoloads selectrum-autoloads vline-autoloads server saveplace let-alist pcase imenu-anywhere-autoloads imenu-list-autoloads ibuffer-projectile-autoloads ibuffer-tramp-autoloads ibuffer-vc-autoloads ibuf-macs all-the-icons-ibuffer-autoloads flyspell-correct-autoloads dired-git-info-autoloads all-the-icons-dired-autoloads +comint-bindings auto-yasnippet-autoloads yasnippet-autoloads winum winum-autoloads which-key which-key-autoloads visible-mark-autoloads uuidgen-autoloads undo-tree diff queue undo-tree-autoloads queue-autoloads rainbow-delimiters-autoloads transpose-frame-autoloads sudo-edit-autoloads real-auto-save-autoloads projectile-autoloads pkg-info-autoloads epl-autoloads persp-mode-autoloads pcre2el-autoloads page-break-lines-autoloads miniedit-autoloads lorem-ipsum-autoloads ialign-autoloads pretty-hydra-autoloads hl-todo-autoloads hide-mode-line-autoloads help-fns+-autoloads git-link-autoloads eyebrowse-autoloads company-emoji-autoloads emojify-autoloads ht-autoloads drag-stuff-autoloads define-word-autoloads buffer-move-autoloads nerd-fonts-autoloads all-the-icons-autoloads company-prescient-autoloads company-autoloads org-appear-autoloads org-link-minor-mode-autoloads org-ref-autoloads pdf-tools-autoloads tablist-autoloads key-chord-autoloads hydra-autoloads lv-autoloads ivy-autoloads helm-bibtex-autoloads bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads let-alist-autoloads parsebib-autoloads helm-autoloads helm-core-autoloads popup-autoloads async-autoloads htmlize-autoloads org-roam-server-autoloads simple-httpd-autoloads org-roam-autoloads emacsql-sqlite3-autoloads emacsql-autoloads org-fragtog-autoloads doct-autoloads magit-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads org-superstar-mode-autoloads evil-matchit evil-matchit-sdk evil-surround evil-snipe diff-mode evil-traces evil evil-keybindings evil-integration evil-maps evil-commands reveal flyspell ispell evil-jumps evil-command-window evil-types evil-search evil-ex shell pcomplete comint ansi-color evil-macros evil-repeat evil-states evil-core advice evil-common windmove calc calc-loaddefs calc-macs thingatpt rect evil-digraphs evil-vars ring vimish-fold-autoloads evil-easymotion-autoloads avy-autoloads evil-args-autoloads evil-traces-autoloads evil-multiedit-autoloads iedit-autoloads evil-snipe-autoloads evil-numbers-autoloads evil-anzu-autoloads anzu-autoloads evil-surround-autoloads evil-matchit-autoloads evil-autoloads goto-chg-autoloads prescient prescient-autoloads orderless orderless-autoloads editorconfig editorconfig-autoloads persistent-scratch-autoloads spaceleader-base spaceleader edmacro kmacro bind-map spaceleader-autoloads bind-map-autoloads xclip xclip-autoloads term/xterm xterm f f-autoloads s s-autoloads dash dash-autoloads diminish diminish-autoloads delight comp comp-cstr warnings delight-autoloads general general-autoloads finder-inf use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core use-package-autoloads bind-key-autoloads straight-autoloads cl-seq info cl-extra help-mode seq byte-opt straight cl-macs gv bytecomp byte-compile cconv cl-loaddefs cl-lib subr-x +config +config-default rx iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-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 cl-generic 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 charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process nativecomp emacs) Memory information: ((conses 16 4306273 1763247) (symbols 48 68632 42) (strings 32 395800 45423) (string-bytes 1 11716731) (vectors 16 144429) (vector-slots 8 4688964 483778) (floats 8 1726 1918) (intervals 56 169310 16444) (buffers 992 39)) From debbugs-submit-bounces@debbugs.gnu.org Thu May 06 11:48:21 2021 Received: (at 48257) by debbugs.gnu.org; 6 May 2021 15:48:22 +0000 Received: from localhost ([127.0.0.1]:38217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1legEf-0004Ho-P3 for submit@debbugs.gnu.org; Thu, 06 May 2021 11:48:21 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45798) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1legEe-0004Hd-VZ for 48257@debbugs.gnu.org; Thu, 06 May 2021 11:48:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45874) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1legEY-0004eC-Kx; Thu, 06 May 2021 11:48:15 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3584 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.86_2) (envelope-from ) id 1legEX-0001AC-HY; Thu, 06 May 2021 11:48:13 -0400 Date: Thu, 06 May 2021 18:48:04 +0300 Message-Id: <835yzveudn.fsf@gnu.org> From: Eli Zaretskii To: mohkale@kisara.moe In-Reply-To: <20210506151653.31575A08EB@mail.kisara.moe> (mohkale@kisara.moe) Subject: Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 06 May 2021 17:16:53 +0200 > From: mohkale@kisara.moe > > On terminal frames emacs doesn't account for the window separator when > right aligning some text. Only in the mode line, or also in the window's text area? Your recipe only affects the mode line. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu May 06 12:43:23 2021 Received: (at 48257) by debbugs.gnu.org; 6 May 2021 16:43:23 +0000 Received: from localhost ([127.0.0.1]:38481 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1leh5v-0004xt-Ar for submit@debbugs.gnu.org; Thu, 06 May 2021 12:43:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37522) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1leh5s-0004xi-QP for 48257@debbugs.gnu.org; Thu, 06 May 2021 12:43:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48042) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1leh5m-0003Pt-7W; Thu, 06 May 2021 12:43:15 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3010 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.86_2) (envelope-from ) id 1leh5k-0001xP-0z; Thu, 06 May 2021 12:43:14 -0400 Date: Thu, 06 May 2021 19:43:00 +0300 Message-Id: <83y2crdd9n.fsf@gnu.org> From: Eli Zaretskii To: mohkale@kisara.moe In-Reply-To: <20210506160504.396A3A1163@mail.kisara.moe> (mohkale@kisara.moe) Subject: Re: [kisara.moe] Re: [kisara.moe] Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> <835yzveudn.fsf@gnu.org> <20210506160504.396A3A1163@mail.kisara.moe> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 06 May 2021 18:05:04 +0200 > Cc: mohkale@kisara.moe, 48257@debbugs.gnu.org > From: mohkale@kisara.moe > > I haven't encountered the issue in regular windows (at least not that I can recall). Yes, I think this is correct. > I have encountered something similair when using selectrums new group-title-format. > where there's a $ shown on the right hand fringe because the input is too long but > that may be unrelated. On the right fringe? you mean in GUI frames? Because there are no fringes on TTY frames. I think you mean the "$" truncation glyphs in the mini-window, which appear because selectrum turns on truncate-lines there. So this is unrelated. From debbugs-submit-bounces@debbugs.gnu.org Thu May 06 13:32:30 2021 Received: (at 48257) by debbugs.gnu.org; 6 May 2021 17:32:30 +0000 Received: from localhost ([127.0.0.1]:38745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lehrR-0005ov-CF for submit@debbugs.gnu.org; Thu, 06 May 2021 13:32:30 -0400 Received: from 119.ip-51-38-65.eu ([51.38.65.119]:52298 helo=mail.kisara.moe) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1legUr-0004TT-9d for 48257@debbugs.gnu.org; Thu, 06 May 2021 12:05:07 -0400 Received: by mail.kisara.moe (Postfix, from userid 1001) id 396A3A1163; Thu, 6 May 2021 18:05:04 +0200 (CEST) Date: Thu, 06 May 2021 18:05:04 +0200 To: Eli Zaretskii Subject: [kisara.moe] Re: [kisara.moe] Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames In-Reply-To: <835yzveudn.fsf@gnu.org> References: <20210506151653.31575A08EB@mail.kisara.moe> <835yzveudn.fsf@gnu.org> User-Agent: mail v14.9.20 Message-Id: <20210506160504.396A3A1163@mail.kisara.moe> From: mohkale@kisara.moe X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: 48257 X-Mailman-Approved-At: Thu, 06 May 2021 13:32:28 -0400 Cc: mohkale@kisara.moe, 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Eli Zaretskii wrote: > > Date: Thu, 06 May 2021 17:16:53 +0200 > > From: mohkale@kisara.moe > > > > On terminal frames emacs doesn't account for the window separator when > > right aligning some text. > > Only in the mode line, or also in the window's text area? > > Your recipe only affects the mode line. > > Thanks. I haven't encountered the issue in regular windows (at least not that I can recall). I have encountered something similair when using selectrums new group-title-format. where there's a $ shown on the right hand fringe because the input is too long but that may be unrelated. ```lisp (selectrum-mode +1) (completing-read "foo: " (cl-loop for i from 1 to 10 collect (concat #(" " 0 4 (face (:strike-through t))) #(" hello ") #(" " 0 1 (face (:strike-through t) display (space :align-to right)))))) ``` I believe selectrum renders completion candidates onto a virtual buffer so maybe this is an example of what you described. From debbugs-submit-bounces@debbugs.gnu.org Tue May 11 12:44:51 2021 Received: (at 48257) by debbugs.gnu.org; 11 May 2021 16:44:51 +0000 Received: from localhost ([127.0.0.1]:37233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgVV4-0003sc-Q7 for submit@debbugs.gnu.org; Tue, 11 May 2021 12:44:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39556) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgVV2-0003sJ-6s; Tue, 11 May 2021 12:44:48 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56182) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgVUw-0008S1-LN; Tue, 11 May 2021 12:44:42 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3986 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lgVUw-0004T0-51; Tue, 11 May 2021 12:44:42 -0400 Date: Tue, 11 May 2021 19:44:47 +0300 Message-Id: <83v97p43uo.fsf@gnu.org> From: Eli Zaretskii To: mohkale@kisara.moe In-Reply-To: <20210506151653.31575A08EB@mail.kisara.moe> (mohkale@kisara.moe) Subject: Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) tags 48257 notabug thanks > Date: Thu, 06 May 2021 17:16:53 +0200 > From: mohkale@kisara.moe > > On terminal frames emacs doesn't account for the window separator when > right aligning some text. Many mode-line packages which include both > left and right hand sections are thus off alignment. I believe this is > an issue because on GUI frames the separator is a straight line that > takes up (essentially) no width whereas on terminal frames it takes up a > full column. > > Reproduction instruction: > 1. Run `emacs -nw -q` > 2. Copy the following code block into your scratch buffer and run `M-x eval-buffer`. > ```lisp > (defvar left-mode-line-format+ > '("foo")) > > (defvar right-mode-line-format+ > '("bar")) > > (defun +align-mode-line (lhs-forms rhs-forms) > "Adapted from `doom-modeline-def-modeline'." > (let ((left-width (string-width (format-mode-line (cons "" rhs-forms))))) > (list lhs-forms > (propertize " " > 'display `((space :align-to > (- (+ right right-fringe right-margin) > ,left-width)))) > rhs-forms))) > > (setq > mode-line-format > '((:eval (+align-mode-line left-mode-line-format+ > right-mode-line-format+)))) > ``` > 3. Now run `split-window-right`. > > > Observe that in the left window the last character in the right aligned > mode-line section is one character too short (because the window > separators width isn't accounted for) whereas in the right window this > isn't an issue. I've looked into this, and I don't think this behavior is incorrect. :align-to references the physical dimensions of the screen, so if the last column of the window is taken by a truncation or a continuation glyph, or the last column of the mode line is taken by the vertical-border glyph, the Lisp program which wants to display something flushed to the right should take this into account, and enlarge the offset accordingly. Emacs allows Lisp code to control what characters are displayed as truncation glyphs, continuation glyphs, and vertical-border glyphs, so these aren't fixed values that redisplay should automatically take into account. Maybe it's somewhat unexpected, but if you think about what :align-to does, I think (hope) you will agree that there's no bug here. From debbugs-submit-bounces@debbugs.gnu.org Tue May 11 13:19:53 2021 Received: (at 48257) by debbugs.gnu.org; 11 May 2021 17:19:53 +0000 Received: from localhost ([127.0.0.1]:37258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgW2z-0006sG-D6 for submit@debbugs.gnu.org; Tue, 11 May 2021 13:19:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46826) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgW2x-0006s3-IJ for 48257@debbugs.gnu.org; Tue, 11 May 2021 13:19:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58156) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgW2q-000061-Pa; Tue, 11 May 2021 13:19:46 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2205 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lgW2q-0001zy-4d; Tue, 11 May 2021 13:19:44 -0400 Date: Tue, 11 May 2021 20:19:49 +0300 Message-Id: <83tun9428a.fsf@gnu.org> From: Eli Zaretskii To: Mohsin Kaleem In-Reply-To: <877dk55h90.fsf@kisara.moe> (message from Mohsin Kaleem on Tue, 11 May 2021 18:10:03 +0100) Subject: Re: [kisara.moe] Re: [kisara.moe] Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> <83v97p43uo.fsf@gnu.org> <877dk55h90.fsf@kisara.moe> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [Please use Reply All to keep the bug address on the CC list.] > From: Mohsin Kaleem > Date: Tue, 11 May 2021 18:10:03 +0100 > > So what would be the recommended approach for mode-line developers > detect that their not on a rightmost window and then add the extra space > to prevent the mode-line being truncated? We have the window-at-side-p function; is that what you want? > Personally I still think this is a bug because the mode-line doesn't > control whether the window-separator glyph is shown or not. It is controlled by the current display-table. > If the > mode-line intends to right-align some text it should be right-aligned > without having to consider corner-cases such as the window position. > Especially seeing as this isn't an issue on GUI frames, only terminal > frames. I'd suggest adding a right-separator alongside right-fringe and > right-margin so that mode-line developers don't have to concern > themselves with this. > > Alternatively it'd be nice if emacs just took care of spacing and > alignment itself. With so many mode-lines re-implementing the same > general logic to right align a segment, a built-in construct might be > more general and avoid the issue of alignment here. It'll also avoid the > need to evaluate the right-segment twice (first to get it's width and > then to actually render it). > > For example vim has a status-line construct (I believe %=) which is > replaced with the appropriate number of spaces to separate two or more > groups. > For example with a window width of 12 and a status-line format of > "foo%=bar", we'd get a rendered status-line of "foo bar". > Similarly with a format of "foo%=bar%=baz" we'd get "foo bar baz". If someone wants to work on providing patches to support any of your suggestions, I'm sure it will be welcome, at least as an optional feature. TIA. From debbugs-submit-bounces@debbugs.gnu.org Tue May 11 13:26:17 2021 Received: (at 48257) by debbugs.gnu.org; 11 May 2021 17:26:17 +0000 Received: from localhost ([127.0.0.1]:37267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgW9B-00072a-Cm for submit@debbugs.gnu.org; Tue, 11 May 2021 13:26:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48068) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgW98-00072L-Ko for 48257@debbugs.gnu.org; Tue, 11 May 2021 13:26:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58354) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgW93-0003pB-43; Tue, 11 May 2021 13:26:09 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2610 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lgW92-0007Zj-Mp; Tue, 11 May 2021 13:26:09 -0400 Date: Tue, 11 May 2021 20:26:14 +0300 Message-Id: <83sg2t41xl.fsf@gnu.org> From: Eli Zaretskii To: mohkale@kisara.moe In-Reply-To: <83tun9428a.fsf@gnu.org> (message from Eli Zaretskii on Tue, 11 May 2021 20:19:49 +0300) Subject: Re: bug#48257: [kisara.moe] Re: [kisara.moe] Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> <83v97p43uo.fsf@gnu.org> <877dk55h90.fsf@kisara.moe> <83tun9428a.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 11 May 2021 20:19:49 +0300 > From: Eli Zaretskii > Cc: 48257@debbugs.gnu.org > > > Personally I still think this is a bug because the mode-line doesn't > > control whether the window-separator glyph is shown or not. > > It is controlled by the current display-table. Oh, and btw: this issue is not limited to the mode line. If you try :align-to in the text area of a window on a TTY frame, you will see that it ignores the column taken by truncation/continuation glyphs, exactly like the mode line ignores the vertical-border glyph. From debbugs-submit-bounces@debbugs.gnu.org Tue May 11 13:41:37 2021 Received: (at 48257) by debbugs.gnu.org; 11 May 2021 17:41:37 +0000 Received: from localhost ([127.0.0.1]:37306 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgWO1-0007RC-99 for submit@debbugs.gnu.org; Tue, 11 May 2021 13:41:37 -0400 Received: from 119.ip-51-38-65.eu ([51.38.65.119]:52514 helo=mail.kisara.moe) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgWNz-0007R4-Fl for 48257@debbugs.gnu.org; Tue, 11 May 2021 13:41:36 -0400 Received: from mk-desktop (unknown [90.215.36.244]) by mail.kisara.moe (Postfix) with ESMTPSA id 20928A0520; Tue, 11 May 2021 19:41:34 +0200 (CEST) From: Mohsin Kaleem To: Eli Zaretskii Subject: [kisara.moe] Re: [kisara.moe] Re: [kisara.moe] Re: [kisara.moe] Re: bug#48257: [kisara.moe] 28.0.50; Align to right doesn't account for window separator in terminal frames In-Reply-To: <83tun9428a.fsf@gnu.org> References: <20210506151653.31575A08EB@mail.kisara.moe> <83v97p43uo.fsf@gnu.org> <877dk55h90.fsf@kisara.moe> <83tun9428a.fsf@gnu.org> Date: Tue, 11 May 2021 18:40:19 +0100 Message-ID: <87y2cl41a4.fsf@kisara.moe> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Eli Zaretskii writes: > [Please use Reply All to keep the bug address on the CC list.] > Oooh, sorry, I recently started managing email from within emacs (good excuse to report to the developer mailing list) and I'm still kind of rusty with all the stuff I used to rely on a dedicated program for. > > We have the window-at-side-p function; is that what you want? > Oh, yep, that should work. Not the nicest solution because you're mode-line will be inconsistent if you open the same window in both a terminal and then a GUI frame but for most use-cases it should be fine. I believe I tried this back when I first raised the issue with doom-modeline and ran into some performance issues but it seems to be working fine now (might've been some other problem in this case). ```lisp (defun +mode-line-align (left right) "Return a string of `window-width' length containing LEFT and RIGHT, aligned respectively." (list left (propertize " " 'display `((space :align-to (- (+ right right-fringe right-margin) ,(if (and (not (display-graphic-p)) (window-at-side-p nil 'right)) 0 1) ;; WARN: Requires double evaluation of RHS forms for spacing. ,(string-width (format-mode-line (cons "" right))))))) right)) (setq-default mode-line-format `((:eval (+mode-line-align '("foo") '("bar"))))) (setq mode-line-format (default-value 'mode-line-format)) ``` Thank you for the suggestion. :-) > > It is controlled by the current display-table. > > > If someone wants to work on providing patches to support any of your > suggestions, I'm sure it will be welcome, at least as an optional > feature. TIA. Nice. I'm not experienced enough to delve into this yet, but I will when I get a chance. Thank you for your time and patience :-). Yours sincerely, Mohsin K. From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 06 00:18:01 2021 Received: (at 48257) by debbugs.gnu.org; 6 Jul 2021 04:18:01 +0000 Received: from localhost ([127.0.0.1]:47023 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m0cX2-0006ms-Po for submit@debbugs.gnu.org; Tue, 06 Jul 2021 00:18:01 -0400 Received: from mail-lf1-f49.google.com ([209.85.167.49]:44923) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m0VmK-0000F9-LU for 48257@debbugs.gnu.org; Mon, 05 Jul 2021 17:05:21 -0400 Received: by mail-lf1-f49.google.com with SMTP id c28so11098015lfp.11 for <48257@debbugs.gnu.org>; Mon, 05 Jul 2021 14:05:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=/pWTTpFscGgIlmxdk5akO0EWuX43FLVZBzw2clSYyp0=; b=umXaz6ugeCA7lR/tywqVLIqgDazLPSM5mgD5sPzHBSQxP+Co+mx+gPm/DfsNwxdmWj ZSO0b85z3jRJSQtnsiTqYKBWVGtzP7sy5KJiD/GHSXSfQ9UqjBV49Dw9wrCLBWcJfBWZ sUekcGWLkyLTGwuxONrNxgo/VV3fjhK04uCS0N4SKtQ2EsS/SYpsAXWOZtvJ95REG+gG Ko8eDHNLNWdI5xga1EY7XW0E56zI9Dh/ul6iRRXh8JH4Q5dzIlAKyvp7UBO3/lHsr7+g 3Peyk+CkQhcuN9TvlVc6bOMH1W+0OViS9nVFfjfKu7oh2m7wd5hQFfSnm6Cip4xwbemz ktmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=/pWTTpFscGgIlmxdk5akO0EWuX43FLVZBzw2clSYyp0=; b=crS3GoX4rsdh8mETmCU+jib/YgD5DB4shgMPz3+nNsX6halrJxJ+cYQR+vlQKEiODz NYhj/MEKXYhuBLsO1vu5FoydCkFAddqU5x51XfJR7o0lAJtgk/vJSQT2kYrOdeKkkURI cT90dt93hj0EH9bS/2QeZ448rYK6AiNefBMN2TzZIIBopiBvnlT/7ux+Z1zz2VqIi9W1 vYuKh7mgPUr7M+H+2uMgUNdE6cRuLKrxzPOORyV5kQYrr4ct4Dcy9bSiJhE/7326/plN /XH8JsC+nsoIIhdeainNXtx5haD2jeb5/477RpSRfaEPM301Qz5C89nV44nEP8fXdU/b fuug== X-Gm-Message-State: AOAM5319lNcn1LVpTQz3JkWvIbsSUfHLPCeOvrMXAB567sT3mIn8ZQuP A50ma0bKMl45PG6wjPA/t8b3EflhMSjnlWaJto3DFVN5aQw= X-Google-Smtp-Source: ABdhPJzuVihSJRk89V1ImNmuZ8HkIHs1ualnLC1IHVb0DPDNyudePHOIB5cpi4YxD3kqgL8maPnXePJIpgIpZ1IH34I= X-Received: by 2002:a05:6512:224e:: with SMTP id i14mr8224551lfu.195.1625519114259; Mon, 05 Jul 2021 14:05:14 -0700 (PDT) MIME-Version: 1.0 From: Kevin Boulain Date: Mon, 5 Jul 2021 23:04:38 +0200 Message-ID: Subject: Re: Align to right doesn't account for window separator in terminal frames To: 48257@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 48257 X-Mailman-Approved-At: Tue, 06 Jul 2021 00:17:59 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I believe I have a similar issue (I think this behavior has been present for a while). Paste and eval this in the scratch buffer (emacs -Q, running from a terminal): (global-set-key (kbd "") (lambda () (interactive) ;; 4 chars margin (setq-local right-margin-width 4) ;; force margin to take effect (set-window-buffer (selected-window) (current-buffer)) ;; insert in the margin (insert (propertize " " 'display '((margin right-margin) "1234") 'default t)) ;; split the window, should showcase the issue (split-window-right))) Then press F10 (doesn't matter where the point is): it will set up a right margin of width 4, insert "1234" then split the window into two. The window on the left will only show "123" ("4" is probably hidden behind the window divider) while the right window correctly shows "1234". Some packages try to put information in the right margin, but it gets truncated. From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 06 08:49:43 2021 Received: (at 48257) by debbugs.gnu.org; 6 Jul 2021 12:49:43 +0000 Received: from localhost ([127.0.0.1]:47658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m0kWF-00011W-02 for submit@debbugs.gnu.org; Tue, 06 Jul 2021 08:49:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58100) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m0kWD-00011E-Dz for 48257@debbugs.gnu.org; Tue, 06 Jul 2021 08:49:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40118) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m0kW8-0001K0-0U; Tue, 06 Jul 2021 08:49:36 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4907 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m0kW6-0001iE-LA; Tue, 06 Jul 2021 08:49:34 -0400 Date: Tue, 06 Jul 2021 15:49:42 +0300 Message-Id: <83mtqzfvyx.fsf@gnu.org> From: Eli Zaretskii To: Kevin Boulain In-Reply-To: (message from Kevin Boulain on Mon, 5 Jul 2021 23:04:38 +0200) Subject: Re: bug#48257: Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Kevin Boulain > Date: Mon, 5 Jul 2021 23:04:38 +0200 > > I believe I have a similar issue (I think this behavior has been > present for a while). > Paste and eval this in the scratch buffer (emacs -Q, running from a terminal): > (global-set-key (kbd "") > (lambda () > (interactive) > ;; 4 chars margin > (setq-local right-margin-width 4) > ;; force margin to take effect > (set-window-buffer (selected-window) (current-buffer)) > ;; insert in the margin > (insert (propertize " " 'display '((margin > right-margin) "1234") 'default t)) > ;; split the window, should showcase the issue > (split-window-right))) > > Then press F10 (doesn't matter where the point is): it will set up a > right margin of width 4, insert "1234" then split the window into two. > The window on the left will only show "123" ("4" is probably hidden > behind the window divider) while the right window correctly shows > "1234". I don't think it's related, I think it's a separate issue. Notice how the truncated "123" string starts 2 columns after the "$" truncation indicator, whereas the un-truncated "1234" starts only 1 column after "$". So I think there's something else at work here, and will take a closer look soon. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 06 13:13:35 2021 Received: (at 48257) by debbugs.gnu.org; 6 Jul 2021 17:13:35 +0000 Received: from localhost ([127.0.0.1]:49957 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m0odb-0006sg-LX for submit@debbugs.gnu.org; Tue, 06 Jul 2021 13:13:35 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m0oda-0006sV-UP for 48257@debbugs.gnu.org; Tue, 06 Jul 2021 13:13:35 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51894) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m0odV-00013D-CP; Tue, 06 Jul 2021 13:13:29 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1409 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m0odU-00057m-Vx; Tue, 06 Jul 2021 13:13:29 -0400 Date: Tue, 06 Jul 2021 20:13:37 +0300 Message-Id: <83eecbfjr2.fsf@gnu.org> From: Eli Zaretskii To: kevinboulain@gmail.com In-Reply-To: <83mtqzfvyx.fsf@gnu.org> (message from Eli Zaretskii on Tue, 06 Jul 2021 15:49:42 +0300) Subject: Re: bug#48257: Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> <83mtqzfvyx.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257 Cc: 48257@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 06 Jul 2021 15:49:42 +0300 > From: Eli Zaretskii > Cc: 48257@debbugs.gnu.org > > I don't think it's related, I think it's a separate issue. Notice how > the truncated "123" string starts 2 columns after the "$" truncation > indicator, whereas the un-truncated "1234" starts only 1 column after > "$". > > So I think there's something else at work here, and will take a closer > look soon. Like I suspected, an unrelated problem (and a very old one at that). Should be fixed now on the master branch. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 08 02:24:39 2021 Received: (at 48257-done) by debbugs.gnu.org; 8 Jul 2021 06:24:39 +0000 Received: from localhost ([127.0.0.1]:54091 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m1NSh-0002MK-9f for submit@debbugs.gnu.org; Thu, 08 Jul 2021 02:24:39 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m1NSf-0002M7-QS for 48257-done@debbugs.gnu.org; Thu, 08 Jul 2021 02:24:38 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56666) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m1NSa-0006hv-K0; Thu, 08 Jul 2021 02:24:32 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2441 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m1NSa-0000Bf-8a; Thu, 08 Jul 2021 02:24:32 -0400 Date: Thu, 08 Jul 2021 09:24:47 +0300 Message-Id: <83fswpe30w.fsf@gnu.org> From: Eli Zaretskii To: Kevin Boulain In-Reply-To: (message from Kevin Boulain on Thu, 8 Jul 2021 00:06:36 +0200) Subject: Re: bug#48257: Align to right doesn't account for window separator in terminal frames References: <20210506151653.31575A08EB@mail.kisara.moe> <83mtqzfvyx.fsf@gnu.org> <83eecbfjr2.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48257-done Cc: 48257-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Kevin Boulain > Date: Thu, 8 Jul 2021 00:06:36 +0200 > > Thanks! I'm therefore closing this bug. From unknown Fri Aug 22 01:33:49 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 05 Aug 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator