all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: asjo@koldfront.dk (Adam Sjøgren)
To: emacs-devel@gnu.org
Cc: ding@gnus.org
Subject: Re: Scaling stuff for high dpi screens
Date: Fri, 30 Jan 2015 00:57:14 +0100	[thread overview]
Message-ID: <87siet3ztx.fsf@topper.koldfront.dk> (raw)
In-Reply-To: 878ugncmwv.fsf@fencepost.gnu.org

David writes:

> (/ (display-pixel-width) (/ (display-mm-width) 25.4))

Here are my observations so far:

 a) When starting Emacs by using "emacs" on the command line,
    display-pixel-width and display-mm-width returns what I expect
    (3200, 406).

 b) after-make-frame-functions are not called when I start Emacs using
    "emacs" on the command line and the first frame appears.

    If I subsequently create a new frame with C-x 5 2, or emacsclient
    --create-frame --alternate-editor="", they are called, and the
    widths are as expected.

 c) If I use 'emacsclient --create-frame --alternate-editor=""' to start
    Emacs, then after-make-frame-functions are called, but when I call
    display-pixel-width and display-mm-width in such a function, I get
    (10, nil) back.

    If I subsequently make a new frame with C-x 5 2, or emacsclient
    --create-frame --alternate-editor="", then the expected values are
    returned.

I don't understand b), but don't mind much, as it is easy to call my
function on the first frame created in my init.el.

I don't understand c) either, but it is quite annoying, because I can't
find a suitable way/hook in which to call display-pixel/mm-width at a
time where they give the results I expect.

This is what I have been playing around with in my init.el:

    (defun get-x11-dpi ()
      (let ((pixel-width (display-pixel-width))
            (mm-width (display-mm-width)))
        (message "display-pixel-width: %s" pixel-width)
        (message "display-mm-width: %s" mm-width)
        (if (and pixel-width mm-width)
            (round (/ (display-pixel-width) (/ (display-mm-width) 25.4)))
          100)))

    ; Activate scaling:
    (defun asjo-new-frame-setup-scaling (new-frame)
      (set-frame-parameter new-frame 'image-dpi-scale-magnitude (if (> (get-x11-dpi) 100) 2.0 1.0)))

    ; This does not work for the first emacsclient frame, but it does for
    ; subsequent frames, it is not run for first emacs frame either:
    (add-hook 'after-make-frame-functions 'asjo-new-frame-setup-scaling)
    ; This is for non-emacsclient startup:
    (asjo-new-frame-setup-scaling nil)


  Best regards,

    Adam

-- 
 "I think I've learned by now                                 Adam Sjøgren
  There's never an easy way"                             asjo@koldfront.dk




  parent reply	other threads:[~2015-01-29 23:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87vbu5m25o.fsf@topper.koldfront.dk>
     [not found] ` <b4ma9bfzbny.fsf@jpl.org>
     [not found]   ` <871twqefd6.fsf@topper.koldfront.dk>
     [not found]     ` <87lhulyz7g.fsf@topper.koldfront.dk>
2015-01-28  6:23       ` Scaling stuff for high dpi screens Lars Ingebrigtsen
2015-01-28  8:46         ` David Kastrup
2015-01-29  1:02           ` Lars Ingebrigtsen
2015-01-29 22:26           ` Adam Sjøgren
2015-01-29 23:57           ` Adam Sjøgren [this message]
2015-01-30  6:26             ` Eli Zaretskii
2015-01-30 10:05             ` David Kastrup
2015-01-30 15:19               ` Vincent Bernat
2015-01-30 23:38                 ` Adam Sjøgren
2015-01-31 15:59                   ` Vincent Bernat

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87siet3ztx.fsf@topper.koldfront.dk \
    --to=asjo@koldfront.dk \
    --cc=ding@gnus.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.