* Problems positioning and sizing Emacs frames
@ 2022-12-19 18:29 Dr Rainer Woitok
2022-12-20 1:41 ` Po Lu
0 siblings, 1 reply; 7+ messages in thread
From: Dr Rainer Woitok @ 2022-12-19 18:29 UTC (permalink / raw)
To: help-gnu-emacs
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 :-)
Sincerely,
Rainer
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problems positioning and sizing Emacs frames
2022-12-19 18:29 Problems positioning and sizing Emacs frames Dr Rainer Woitok
@ 2022-12-20 1:41 ` Po Lu
2022-12-20 11:37 ` Dr Rainer Woitok
0 siblings, 1 reply; 7+ messages in thread
From: Po Lu @ 2022-12-20 1:41 UTC (permalink / raw)
To: Dr Rainer Woitok; +Cc: help-gnu-emacs
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.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problems positioning and sizing Emacs frames
2022-12-20 1:41 ` Po Lu
@ 2022-12-20 11:37 ` Dr Rainer Woitok
2022-12-20 12:32 ` Po Lu
0 siblings, 1 reply; 7+ messages in thread
From: Dr Rainer Woitok @ 2022-12-20 11:37 UTC (permalink / raw)
To: Po Lu; +Cc: help-gnu-emacs
Po Lu,
On Tuesday, 2022-12-20 09:41:35 +0800, you wrote:
> ...
> Your window manager decided to force some kind of sliding behavior on
> Emacs.
What is making you so sure? You don't even know what window manager I'm
using. And regardless of what kind of windows I ask my window manager
to open it makes them the size I want and places them where I want. In
particular I don't have this problem with XEmacs frames which at least
are somewhat akin to Emacs frames.
Sincerely,
Rainer
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problems positioning and sizing Emacs frames
2022-12-20 11:37 ` Dr Rainer Woitok
@ 2022-12-20 12:32 ` Po Lu
2022-12-20 13:34 ` Dr Rainer Woitok
0 siblings, 1 reply; 7+ messages in thread
From: Po Lu @ 2022-12-20 12:32 UTC (permalink / raw)
To: Dr Rainer Woitok; +Cc: help-gnu-emacs
Dr Rainer Woitok <rainer.woitok@gmail.com> writes:
>> Your window manager decided to force some kind of sliding behavior on
>> Emacs.
>
> What is making you so sure? You don't even know what window manager I'm
> using. And regardless of what kind of windows I ask my window manager
> to open it makes them the size I want and places them where I want.
The fact that any further frames created moved to the right. That is
not something any code in Emacs can do.
> In particular I don't have this problem with XEmacs frames which at
> least are somewhat akin to Emacs frames.
You can try building Emacs with the Lucid toolkit.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problems positioning and sizing Emacs frames
2022-12-20 12:32 ` Po Lu
@ 2022-12-20 13:34 ` Dr Rainer Woitok
2022-12-20 13:48 ` Po Lu
0 siblings, 1 reply; 7+ messages in thread
From: Dr Rainer Woitok @ 2022-12-20 13:34 UTC (permalink / raw)
To: Po Lu; +Cc: help-gnu-emacs
Po Lu,
On Tuesday, 2022-12-20 20:32:54 +0800, you wrote:
> ...
> > What is making you so sure?
> > ...
>
> The fact that any further frames created moved to the right. That is
> not something any code in Emacs can do.
I fear Emacs could: by simply not providing coordinates to the window
manager, thus forcing the latter to make them up itself.
But this is a MINOR point anyway, I could even live with that. The main
point was that Emacs or my way of setting it up caused the window size
and position not to be dealt with the way I wanted. It could well be
that it's my set-up which forced Emacs to pass wrong information to the
window manager, but currently I don't see what's wrong and am therefore
asking the combined wisdom of this list.
Sincerely,
Rainer
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problems positioning and sizing Emacs frames
2022-12-20 13:34 ` Dr Rainer Woitok
@ 2022-12-20 13:48 ` Po Lu
2022-12-20 17:50 ` Dr Rainer Woitok
0 siblings, 1 reply; 7+ messages in thread
From: Po Lu @ 2022-12-20 13:48 UTC (permalink / raw)
To: Dr Rainer Woitok; +Cc: help-gnu-emacs
Dr Rainer Woitok <rainer.woitok@gmail.com> writes:
> I fear Emacs could: by simply not providing coordinates to the window
> manager, thus forcing the latter to make them up itself.
All windows have parent relative coordinates under X, and when you
specify the `top' or `left' parameters, the "user-specified position"
hint is set which politely asks the window manager to place the window
where Emacs asked it to be.
The window manager is always able to ignore those hints. Many window
managers do just that.
> But this is a MINOR point anyway, I could even live with that. The main
> point was that Emacs or my way of setting it up caused the window size
> and position not to be dealt with the way I wanted. It could well be
> that it's my set-up which forced Emacs to pass wrong information to the
> window manager, but currently I don't see what's wrong and am therefore
> asking the combined wisdom of this list.
Did you set `frame-resize-pixelwise' to t?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Problems positioning and sizing Emacs frames
2022-12-20 13:48 ` Po Lu
@ 2022-12-20 17:50 ` Dr Rainer Woitok
0 siblings, 0 replies; 7+ messages in thread
From: Dr Rainer Woitok @ 2022-12-20 17:50 UTC (permalink / raw)
To: Po Lu; +Cc: help-gnu-emacs
Po Lu,
On Tuesday, 2022-12-20 21:48:35 +0800, you wrote:
> ...
> Did you set `frame-resize-pixelwise' to t?
I didn't up to now. However, setting it changed neither size nor posi-
tion of the initial frame, but it slightly changed the window manager's
geometry information for the frames created via "C-x 5 Cf": it returned
"1040x950+58+58" for the first frame and "1040x950+87+46" for the sec-
ond, where the "1040x950" part probably is the "80x40" window size in
pixels, the difference between 58 and 87 still is 29 pixels to the right
while the difference between 58 and 46 is 12 pixels up, which might not
have had any effect in my former tests because these frames were already
at "+xxx+0", and thus going farther up was just not possible.
I had set "frame-resize-pixelwise" in my "init.el" file, but according
to the documentation this file is only read AFTER the initial frame has
been created. Upon further reading the documentation I finally found
frame parameter "user-position", and setting this to "t" in both vari-
ables, "default-frame-alist" and "initial-frame-alist" at least solved
the positioning problems for the frames opened via "C-x 5 C-f". Uff :-)
Another observation regarding the initial frame: when I open a new file
in these frames and enter "C-u 90 O", the gap in the uppermost line be-
tween the rightmost "O" and the continuation symbol in the fringe area
is roughly twice as wide in the "79x40" frame as in the "80x40" frames.
Could this indicate some rounding effect eventually causing the initial
frame becoming too wide and being cut off?
Sincerely,
Rainer
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-12-20 17:50 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-19 18:29 Problems positioning and sizing Emacs frames Dr Rainer Woitok
2022-12-20 1:41 ` Po Lu
2022-12-20 11:37 ` Dr Rainer Woitok
2022-12-20 12:32 ` Po Lu
2022-12-20 13:34 ` Dr Rainer Woitok
2022-12-20 13:48 ` Po Lu
2022-12-20 17:50 ` Dr Rainer Woitok
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).