From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.bugs Subject: bug#52118: 29.0.50; string-pixel-width reports incorrect width Date: Fri, 26 Nov 2021 01:51:45 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33838"; mail-complaints-to="usenet@ciao.gmane.io" To: 52118@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Nov 26 01:53:14 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mqPUF-0008Za-RC for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 26 Nov 2021 01:53:13 +0100 Original-Received: from localhost ([::1]:58812 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mqPUE-0005eH-7y for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 25 Nov 2021 19:53:10 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:52288) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqPU6-0005du-Sa for bug-gnu-emacs@gnu.org; Thu, 25 Nov 2021 19:53:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46725) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mqPU6-0002gB-Iu for bug-gnu-emacs@gnu.org; Thu, 25 Nov 2021 19:53:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mqPU6-0002oh-Ah for bug-gnu-emacs@gnu.org; Thu, 25 Nov 2021 19:53:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Arthur Miller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 Nov 2021 00:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 52118 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.163788792210727 (code B ref -1); Fri, 26 Nov 2021 00:53:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 26 Nov 2021 00:52:02 +0000 Original-Received: from localhost ([127.0.0.1]:58271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqPT6-0002mp-OJ for submit@debbugs.gnu.org; Thu, 25 Nov 2021 19:52:02 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:60294) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mqPT1-0002me-R3 for submit@debbugs.gnu.org; Thu, 25 Nov 2021 19:51:59 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:52118) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqPT1-0005UJ-JD for bug-gnu-emacs@gnu.org; Thu, 25 Nov 2021 19:51:55 -0500 Original-Received: from mail-oln040092068039.outbound.protection.outlook.com ([40.92.68.39]:9537 helo=EUR02-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mqPSw-0002YO-TS for bug-gnu-emacs@gnu.org; Thu, 25 Nov 2021 19:51:55 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z8dsbjJWeWnU/uzqfuRkiLaGfMhMuX5ATu9tiGfx6RkCNH8YM2bvTD9K8L9P/TP5t5qlVc64J2Shh/Bggui6ncCIO6TNvuff8XxQEE71bgHkaeWyBZGyRp7VdEGMIu/zjFEvKaOxFT9tDySveluJVeqB09xWhVjh6X4W0AU5DzrzSPpt2Y5yy3VrC3juq9oi1IXaujOiNyHApt+YmVwZO1tC6qOqsJMBLFylCYBSUZ4+b4tUluvBQoNQlcDWRYsqqNW70tidAGEsj3EleocwC7zJxK4RBhZZ6EJaRMUzg5LyCjXxIS1w+DAUxe6oedaXNYmmTGH3j7dvx0wBW5VBVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+d8fFKtxLwZJI8NN10I6bfnDAkxtEpsWWo3EcZsv1Uw=; b=Swihl7gDkpAtXmxaA4for5nwF856I97sd2XdvxDp/vXEu3gMSI00q9xVfrcxXznDFz1AAy9/RWv10aPqHOW+P8k3iKURMwr41gZ/5lUOZSeeRQfm4JmIcsw++Av3aLVeAfbyTlr7akEPV7bnqaCiHBHCZcDpPLBdr312JAbGXul2+aUUM3jclMZi3aCb4VB5htUB2k9ONYuAQw5JmFvBPJMs/ipbzNBTTlKBduAKx01ssSTelPfujHfEGD5AYGVvfYvB+yWuoCYlfj5s+GLt4eVm36lhx05CaqRBqvsNV3pDFDU3Y0o64jDcFmy/EqaLE9b4EYuMjwNoT2OML5PDlg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+d8fFKtxLwZJI8NN10I6bfnDAkxtEpsWWo3EcZsv1Uw=; b=m+zi5ZnIW/p9AJ/yTbfwl+9UZINVOiDKdlB7LFSmPf6IjNb1AavAB6oSr17f6qFw+MK9vrbkTxqPnhi6jbB7j7OV1ue9x6tnymtc2sLUMxHxSuKERV/Eh0crschBfOXUrBJ7jr+JtWqcg226wVK/6pkDc/7jAUcO6JdkpKxWow3mHFlwBQMlC4SVtGNI0R7xJosrhLsbiC8wTTmPBjq31pwsO98MDraFlnwxIUeolFuTPugXezirYWbbzCVkRHLXCaEB3as64hpBbVSehswFC0Nv+ewhNizkMGtdXbYptySUkOhHHfkfqDwunJY1ipNDwqPi77cOXHNGIZj4yGqPVQ== Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) by AM0PR09MB4116.eurprd09.prod.outlook.com (2603:10a6:208:19d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22; Fri, 26 Nov 2021 00:51:47 +0000 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::c05b:e2ca:5b8a:56d2]) by AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::c05b:e2ca:5b8a:56d2%9]) with mapi id 15.20.4734.023; Fri, 26 Nov 2021 00:51:47 +0000 X-TMN: [jY4vRo6HAbOpj0ldvC54ufg5xHJxs7eL] X-ClientProxiedBy: GV3P280CA0073.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:a::12) To AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) X-Microsoft-Original-Message-ID: <87ee73yc0u.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from pascal.homepc (81.232.177.30) by GV3P280CA0073.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.21 via Frontend Transport; Fri, 26 Nov 2021 00:51:46 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ac1d73e2-170f-4983-01af-08d9b076ec5a X-MS-TrafficTypeDiagnostic: AM0PR09MB4116: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Bgx9sFzGJBz0vfTu9tP2ooEy1hqFZNQF09jtzfYZoTRWIyUm1Hgj+IckY0oZknQbNsuD1YBB17ya7vadEUQTLeJZrReA3T8X/v53E7iL7z/Hf0Y1ssdVavb9gWt87KrbAcJp+QK/lBF7raApI3d7L8gF46sNc4ByUgVRaOearfgmsEnsCXuRW+Nj5hA9r3HidRXtGfaZ2EKGNhQ+KOYa6VRPmR4tsQNUGp7CB1J8NelS4p0azALJnvUTNYYejCM5RLlyjlWedWj8Y0jr8jbDh4ADKTRS9mEYpChI8V+/86EdGzdsmYOAXY1xP+n8cnXURSVsKYyWAZd3oPauXJT+EPbEEczYWpFMuveEtGXH14v93xffEutus2t1RJnvTIQ51EIRkFuULgy6MAjmxRR0eJqeBdFY4Jqq24y8RbMYoMZebmBrFv8+5ckdtscpsxud9JGjc5GNrD51IOJcsiZHaN7ebkXvQyGaXW1C2r81OIdyLdokGHjcrJxOq/Xd+cQSVmYtLIGjIV5ptu9TkMNHxbl8uGgsv/z34+xhrq3PEoCyNtJi2EvmrF4Clth0p7PC9Wr96wUshKjm3hanW4jP6Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KyCdPOpmgvRnofH8vtGOpCRMb4Cfox4q/jJfG18CB9+87nHTKH3kdBqJShjJUBBF+ZrxneYelIuw164d/IF14EmOtfwHmrV6qZeTRcqNXygM3yrm2KOjZBLf2ndo9DOK59wqCEee/gSXBgXtLnjxcG8ptCP1QodUK/3F14pkzfbNuTJbBJgeDeiQNVmfohOaxjAFpzDlzj+A+d72aDuz5ASR0eaYSiDRuQJBvrcT8y68+RmPntNeFB7IlTlGOlwgMvvzgiTU3UcC6EWyJgFQ6npjRteeYWJBQlgTkdH1Y7KqdnGqZ89enIalbeRUZunCV5diRqQXAvgi8pOml8q7XPdgZ2PZPiAunBrGUzOIM6gsQkUM3WkjmtzrpPJgMlfrzsw7LADvcNL6Pnq2vqF78Atd668AeTq7FBhNlFPztZ0G5C7q5oMfK0D8IaFaB6gbGhx6GOL655D8ydpgR0rqgf8I+68tB39z4BpTV9mGP5pC/ZLs4uQnEC94sKRqBwkRfdMfDDj8is3Jk29ymbw2ThTQnHY4Et1jWCX4aOoJNVYGmQHALmKw8gWe1Fj95nfzRRwsdzZfBvmfY1sz9nNLeFPf6uS8b5PhgoTqDP1Jw5tmt/FQLbjkGc5UuShs4k5cqP5MO4EDNCu5M2jIJP+5IELR+ATI8oPwpFKdYaWU01HmjuCIyZ3cy9o3y7I7Zqlo6JCggDfeNstzdcPr59fpew== X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-72e6e.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: ac1d73e2-170f-4983-01af-08d9b076ec5a X-MS-Exchange-CrossTenant-AuthSource: AM9PR09MB4977.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Nov 2021 00:51:47.1947 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR09MB4116 Received-SPF: pass client-ip=40.92.68.39; envelope-from=arthur.miller@live.com; helo=EUR02-HE1-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:220853 Archived-At: --=-=-= Content-Type: text/plain Attached is small lisp program and a screenshot of the output. From the screenshot itself it is visible that for string with large non-default font-size the reported width is erroneous. It should be close to frame/window size in this particular example, but reported size is missing ~500 pixels. For small sizes it seems to report relatively ok. The clock is ~70 pixels according to Gimp's measure tool, +/- some, so it is more visible with big sizes. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=string-pixel-width.png Content-Transfer-Encoding: base64 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 YII= --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=emacs-vision-clock.el ;;; emacs-vision-clock.el --- -*- lexical-binding: t; -*- ;; Copyright (C) 2021 Arthur Miller ;; Author: Arthur Miller ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; https://github.com/BobbyBakes/conky-Vision ;;; Code: (require 'time-stamp) (defgroup emacs-vision-clock nil "Conky like clock application written in Emacs Lisp." :prefix "evc--" :prefix "emacs-vision-clock-" :tag "Conky-Vision style clock as Emacs application." :group 'applications) ;;; Customize (defcustom emacs-vision-clock-x -100 "Frame width" :type 'fixnum :group 'emacs-vision-clock) (defcustom emacs-vision-clock-y 100 "Frame width" :type 'fixnum :group 'emacs-vision-clock) (defface emacs-vision-clock-date-face '((t :weight light :family "Open Sans" :default nil :foreground "white" :height 540)) "Default face for emacs-vision-clock frame." :group 'emacs-vision-clock) (defface emacs-vision-clock-time-face '((t :weight light :family "Open Sans" :default nil :foreground "white" :height 200)) "Default face for emacs-vision-clock frame." :group 'emacs-vision-clock) ;;; Implementation (defvar evc--frame nil) (defvar evc--timer nil) (defvar evc--buffer nil) (defvar evc--date-face 'emacs-vision-clock-date-face) (defvar evc--time-face 'emacs-vision-clock-time-face) (defface evc--debug-face '((t :weight light :family "Open Sans" :default nil :foreground "white" :height 200)) "Default face for emacs-vision-clock frame." :group 'emacs-vision-clock) (defun evc--fmtdbg (&rest args) (propertize (apply 'format args) 'face 'evc--debug-face)) (defun evc--time () (propertize (time-stamp-string "%H:%M") 'face evc--time-face)) (defun evc--date () (propertize (concat (capitalize (time-stamp-string "%A")) ". " (capitalize (time-stamp-string "%B %d"))) 'face evc--date-face)) (defun evc--make-frame () (make-frame `((name . "*emacs-vision-clock*") (left . ,emacs-vision-clock-x) (top . ,emacs-vision-clock-y) ;;(alpha-background . 0) (tool-bar-lines . 0) (menu-bar-lines . 0) (minibuffer . nil) (right-fringe . 0) (left-fringe . 0) (horizontal-scroll-bars . nil) (vertical-scroll-bars . nil) (border-width . 0) (internal-border-width . 0) (no-special-glyphs . t) (visibility . nil) (z-group . below) (auto-raise . nil) (skip-taskbar . t) (no-focus-on-map . t) (no-accept-focus . t) (unsplittable . t) (undecorated . t)))) (defun evc--update () (let ((frame evc--frame) (buffer evc--buffer) (window (get-buffer-window evc--buffer)) (time (evc--time)) (date (evc--date))) (select-frame frame) (with-current-buffer buffer (erase-buffer) (insert time "\n" date) (let* ((wndw (window-pixel-width window)) (frmw (frame-pixel-width frame)) (tlen (string-pixel-width time)) (dlen (string-pixel-width date))) (insert "\n" (evc--fmtdbg "\nFrame width: %s" frmw) (evc--fmtdbg "\nWindow width: %s" wndw) (evc--fmtdbg "\nTime string width %s" tlen) (evc--fmtdbg "\nDate string width %s" dlen)) (fit-frame-to-buffer) (goto-char 1) )))) (defun evc--make-buffer () (with-current-buffer (get-buffer-create " *emacs-vision-clock*") (setq cursor-in-non-selected-windows nil mode-line-format nil) (setq evc--buffer (current-buffer)))) (defun evc--make-widget () (let ((frame (evc--make-frame))) (evc--make-buffer) (select-frame frame) (switch-to-buffer evc--buffer) (delete-other-windows) (evc--update) (fit-frame-to-buffer) (make-frame-visible frame) (set-window-dedicated-p (selected-window) t) (setq evc--frame frame evc--timer (run-at-time nil 60 #'evc--update)))) ;;; Public commands (defun emacs-vision-clock-run () (interactive) (unless evc--frame (evc--make-widget))) (defun emacs-vision-clock-stop () (interactive) (if evc--timer (cancel-timer evc--timer)) (if evc--frame (delete-frame evc--frame)) (if evc--buffer (kill-buffer evc--buffer)) (setq evc--buffer nil evc--frame nil evc--timer nil)) (provide 'emacs-vision-clock) ;;; emacs-vision-clock.el ends here --=-=-= Content-Type: text/plain In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.17.4) of 2021-11-17 built on pascal Repository revision: 1ddebefc9fe178e9e8b4275a45e0eda1bcf7848e Repository branch: alpha-patch Windowing system distributor 'The X.Org Foundation', version 11.0.12101001 System Description: Arch Linux Configured using: 'configure --with-native-compilation 'CFLAGS=-O2 -march=native -mtune=native'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XPM GTK3 ZLIB Important settings: value of $LANG: sv_SE.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: text-scale-mode: t windmove-mode: t beacon-mode: t outshine-mode: t dired-async-mode: t outline-minor-mode: t yas-minor-mode: t page-break-lines-mode: t company-mode: t electric-pair-mode: t global-auto-revert-mode: t global-hl-line-mode: t global-subword-mode: t subword-mode: t auto-image-file-mode: t auto-insert-mode: t display-time-mode: t delete-selection-mode: t save-place-mode: t winner-mode: t which-key-mode: t wrap-region-global-mode: t wrap-region-mode: t helm-mode: t helm-adaptive-mode: t shell-dirtrack-mode: t helm-autoresize-mode: t helm--remap-mouse-mode: t async-bytecomp-package-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-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/arthur/repos/emacs/lisp/transient hides /home/arthur/.emacs.d/elpa/transient-20210723.1601/transient /home/arthur/.emacs.d/elpa/lispy-20210914.1209/elpa hides /home/arthur/.emacs.d/elpa/ivy-20210930.1450/elpa /home/arthur/repos/emacs/lisp/emacs-lisp/helper hides /home/arthur/.emacs.d/elpa/helper-0.5/helper /home/arthur/.emacs.d/lisp/helm-git-branch hides /home/arthur/.emacs.d/elpa/helm-git-branch-0.1/helm-git-branch /usr/local/share/emacs/site-lisp/emms/emms-cue hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-cue /usr/local/share/emacs/site-lisp/emms/emms-info-ogginfo hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-info-ogginfo /usr/local/share/emacs/site-lisp/emms/emms-mark hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-mark /usr/local/share/emacs/site-lisp/emms/emms-last-played hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-last-played /usr/local/share/emacs/site-lisp/emms/emms-player-mpg321-remote hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-mpg321-remote /usr/local/share/emacs/site-lisp/emms/emms-score hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-score /usr/local/share/emacs/site-lisp/emms/emms-player-mpd hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-mpd /usr/local/share/emacs/site-lisp/emms/emms-show-all hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-show-all /usr/local/share/emacs/site-lisp/emms/emms-setup hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-setup /usr/local/share/emacs/site-lisp/emms/emms-playlist-sort hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-playlist-sort /usr/local/share/emacs/site-lisp/emms/emms hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms /usr/local/share/emacs/site-lisp/emms/emms-info-mp3info hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-info-mp3info /usr/local/share/emacs/site-lisp/emms/emms-source-playlist hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-source-playlist /usr/local/share/emacs/site-lisp/emms/emms-cache hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-cache /usr/local/share/emacs/site-lisp/emms/emms-volume hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-volume /usr/local/share/emacs/site-lisp/emms/emms-playing-time hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-playing-time /usr/local/share/emacs/site-lisp/emms/emms-tag-editor hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-tag-editor /usr/local/share/emacs/site-lisp/emms/emms-source-file hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-source-file /usr/local/share/emacs/site-lisp/emms/emms-bookmarks hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-bookmarks /usr/local/share/emacs/site-lisp/emms/emms-player-simple hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-simple /usr/local/share/emacs/site-lisp/emms/emms-player-xine hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-xine /usr/local/share/emacs/site-lisp/emms/emms-librefm-stream hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-librefm-stream /usr/local/share/emacs/site-lisp/emms/emms-browser hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-browser /usr/local/share/emacs/site-lisp/emms/emms-maint hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-maint /usr/local/share/emacs/site-lisp/emms/emms-playlist-mode hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-playlist-mode /usr/local/share/emacs/site-lisp/emms/emms-url hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-url /usr/local/share/emacs/site-lisp/emms/emms-streams hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-streams /usr/local/share/emacs/site-lisp/emms/emms-info-opusinfo hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-info-opusinfo /usr/local/share/emacs/site-lisp/emms/emms-mode-line hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-mode-line /usr/local/share/emacs/site-lisp/emms/emms-player-mplayer hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-mplayer /usr/local/share/emacs/site-lisp/emms/emms-info hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-info /usr/local/share/emacs/site-lisp/emms/emms-librefm-scrobbler hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-librefm-scrobbler /usr/local/share/emacs/site-lisp/emms/emms-info-libtag hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-info-libtag /usr/local/share/emacs/site-lisp/emms/emms-info-metaflac hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-info-metaflac /usr/local/share/emacs/site-lisp/emms/emms-metaplaylist-mode hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-metaplaylist-mode /usr/local/share/emacs/site-lisp/emms/emms-compat hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-compat /usr/local/share/emacs/site-lisp/emms/emms-volume-pulse hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-volume-pulse /usr/local/share/emacs/site-lisp/emms/emms-player-mpv hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-mpv /usr/local/share/emacs/site-lisp/emms/emms-playlist-limit hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-playlist-limit /usr/local/share/emacs/site-lisp/emms/emms-history hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-history /usr/local/share/emacs/site-lisp/emms/emms-player-vlc hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-player-vlc /usr/local/share/emacs/site-lisp/emms/emms-mode-line-icon hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-mode-line-icon /usr/local/share/emacs/site-lisp/emms/emms-lyrics hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-lyrics /usr/local/share/emacs/site-lisp/emms/emms-stream-info hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-stream-info /usr/local/share/emacs/site-lisp/emms/emms-volume-amixer hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-volume-amixer /usr/local/share/emacs/site-lisp/emms/emms-i18n hides /home/arthur/.emacs.d/elpa/emms-20210911.2031/emms-i18n /home/arthur/.emacs.d/elpa/elisp-refs-20211009.1531/elisp-refs hides /home/arthur/.emacs.d/elpa/elisp-refs-1.4/elisp-refs /home/arthur/.emacs.d/elpa/elisp-refs-20211009.1531/elisp-refs-autoloads hides /home/arthur/.emacs.d/elpa/elisp-refs-1.4/elisp-refs-autoloads /home/arthur/.emacs.d/elpa/elisp-refs-20211009.1531/elisp-refs-pkg hides /home/arthur/.emacs.d/elpa/elisp-refs-1.4/elisp-refs-pkg /home/arthur/.emacs.d/lisp/company-cmake hides /home/arthur/.emacs.d/elpa/company-20211002.1732/company-cmake Features: (shadow mail-extr emacsbug sendmail misearch multi-isearch cl-print debug qp gnus-async gnus-ml gnus-topic cursor-sensor url-cache benchmark nndraft nnmh nnhackernews anaphora request gnus-bcklg gnus-cite nnfolder utf-7 gnutls network-stream gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache avy magit-utils crm face-remap shortdoc windmove cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs mule-util helpful trace info-look help-fns radix-tree elisp-refs helm-command emacs-vision-clock time-stamp vc-git diff-mode vc-dispatcher org-pretty-table 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 gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message yank-media rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win ol-docview doc-view ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi dired-auto-readme helm-external helm-net tramp-archive tramp-gvfs tramp-cache zeroconf dbus ffap beacon emms-librefm-stream xml emms-librefm-scrobbler emms-i18n emms-history emms-score emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon emms-browser sort emms-playlist-sort emms-last-played emms-player-xine emms-player-mpd emms-lyrics emms-url emms-streams emms-show-all emms-tag-editor emms-mark emms-cache emms-info-opusinfo emms-info-ogginfo emms-info-mp3info emms-player-vlc emms-player-mplayer emms-player-mpv emms-mode-line-cycle emms-mode-line emms-playing-time emms-player-simple emms-info later-do emms-playlist-limit emms-volume emms-volume-amixer emms-playlist-mode emms-source-playlist emms-source-file locate emms-setup emms emms-compat c++-setup sv-kalender lunar solar cal-dst holidays hol-loaddefs extras recentf tree-widget server overseer pkg-info url-http url-auth url-gw nsm rmc puny epl f s outshine outshine-org-cmds outorg org-protocol org-pdftools pdf-occur pdf-isearch let-alist pdf-annot 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 cedet facemenu pdf-misc imenu pdf-tools cus-edit cus-start cus-load pdf-view bookmark pp jka-compr pdf-cache pdf-info tq pdf-util pdf-macs image-mode dired-extras dired-copy-paste dired-subtree dired-hacks-utils openwith dired-x wdired dired-async dired-aux dired dired-loaddefs exif org-noter org-element avl-tree org-refile 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 org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex ol org-keys oc org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs noutline outline yasnippet-snippets yasnippet derived disp-table page-break-lines company-yasnippet company-ispell ispell company-clang company-elisp company-etags etags fileloop generator xref project company-semantic company-template company-keywords company-files company-capf company pcase comp comp-cstr warnings rx cl-extra elec-pair autorevert hl-line cap-words superword subword image-file image-converter autoinsert time delsel saveplace winner which-key advice solarized-dark-theme solarized solarized-faces color wrap-region dash gnus nnheader gnus-util rmail rmail-loaddefs mail-utils wid-edit helm-mode helm-adaptive helm-projectile projectile lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr grep compile text-property-search ibuf-ext ibuffer ibuffer-loaddefs thingatpt helm-eshell helm-elisp helm-files filenotify tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete comint ansi-color parse-time iso8601 time-date ls-lisp helm-buffers helm-occur helm-tags helm-locate helm-eval edebug backtrace find-func helm-info ring helm-types helm-config diminish helm-pages helm-grep helm-regexp help-mode helm-utils helm-help format-spec helm easy-mmode async-bytecomp helm-global-bindings edmacro kmacro helm-source helm-multi-match helm-lib async elisp-extras popup helm-easymenu cl info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq gv subr-x byte-opt bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode 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 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 emoji-zwj 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 system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process native-compile emacs) Memory information: --=-=-=--