[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems positioning and sizing Emacs frames
From: |
Po Lu |
Subject: |
Re: Problems positioning and sizing Emacs frames |
Date: |
Tue, 20 Dec 2022 09:41:35 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Dr Rainer Woitok <rainer.woitok@gmail.com> writes:
> Greetings,
>
> I fail to position my Emacs frames where I want them. The first frame
> should be opened with its right edge flush with the right screen edge of
> the monitor, as in
>
> $ emacs --geometry 80x40-0+6 . &
>
> According to "C-h v initial-frame-alist" I should set this variable so
> it matches the Emacs specific entries in ".Xresources" plus the "--geo-
> metry" specification from the command line, while variable "default-
> frame-alist" should contain the relevant settings for frames opened la-
> ter via "C-x 5 C-f".
>
> Here is how I set variables "default-frame-alist" and "initial_frame-
> alist" in file "init.el":
>
> (let* ((g (split-string (getenv "_EMACS_SIZE_") "x"))
> (l (* 3 (string-to-number (getenv "_WINDOW_OFFSET_"))))
> (p (list (cons 'font-parameter (getenv "_EMACS_FONT_"))
> (cons 'top (string-to-number (getenv "_WINDOW_TOP_")))
> (cons 'height (string-to-number (cadr g)))
> (cons 'width (string-to-number (car g)))
>
> '(horizontal-scroll-bars . nil)
> '(left-fringe . 0)
> '(right-fringe . nil)
> '(menu-bar-lines . 0)
> '(tab-bar-lines . 0)
> '(tool-bar-lines . 0)
> '(vertical-scroll-bars . right)
> )) )
> (setq default-frame-alist (cons (cons 'left l) p)
> initial-frame-alist (cons (list 'left '- 0) p)
> ) )
>
> These are the definitions of the environment variables used above:
>
> $ env | grep -E '^_(EMACS|WINDOW)_'
> _EMACS_FONT_=-bitstream-bitstream vera sans mono-medium-r-*--21-*-*-*-m-*-*-*
> _EMACS_SIZE_=80x40
> _WINDOW_OFFSET_=50
> _WINDOW_TOP_=6
> $
>
> And here are the relevant lines from file ".Xresources":
>
> $ grep ^Emacs .Xresources
> Emacs*font: -bitstream-bitstream vera sans mono-medium-r-*--21-*-*-*-m-*-*-*
> Emacs.geometry: 80x40
> Emacs.menuBar: 0
> Emacs.tabBar: 0
> Emacs.toolBar: 0
> $
>
> But, sadly, it doesn't work as I expect :-(
>
> Problem 1:
>
> The edge of the physical screen cuts off part of the right scrollbar and
> the right window decoration of the initial frame opened by the "emacs"
> command above, a vertical stripe of approximately 14 pixels width, and
> the window manager reports the window geometry as "79x40" rather than
> "80x40". However, the frame's top edge is placed correctly 6 pixels be-
> low the physical screen's top edge.
>
> Problem 2:
>
> When I open another frame by entering "C-x 5 C-f", the new frame has the
> correct geometry of "80x40", but is positioned at "+484+0" rather than
> at "+150+6", and any further frame opened is placed 29 pixels to the
> right rather than at the very same position as the previous frame.
>
> What am I missing? Any help appreciated :-)
Your window manager decided to force some kind of sliding behavior on
Emacs. Unfortunately, that is outside of Emacs's control.