mate-desktop / mate-terminal

The MATE Terminal Emulator
http://www.mate-desktop.org
GNU General Public License v3.0
134 stars 73 forks source link

[Feature Request] Enable Resizing Exactly According to User-Specified Geometry #433

Open marcxjo opened 1 year ago

marcxjo commented 1 year ago

When attempting to manually set window geometry via an external tool, mate-terminal rounds the provided height exact line height and the provided width to a multiple of the terminal font's character width.

I understand the rationale for this choice, but there's an argument that the user should have the right to override it, even if the resulting geometry produces "spare pixels" on the edges.

I believe a reasonable compromise would be akin to xfce4-terminal's behavior, where the first invocation snaps to line height and length, then sets dimensions exactly as specified if the terminal dimensions are already quantized.

Note that I am specifically requesting this functionality only for use with e.g. external tools used to specify geometry. I am not requesting that its behavior be altered for the purposes of e.g. resizing by mouse.

Expected behaviour

When I configure MATE Terminal's window geometry via a tool like xdotool, I expect to be able to set the geometry exactly according to the values passed in for height and width.

Actual behaviour

When using xdotool for this purpose, windows are resized, but the dimensions appear to be rounded to the nearest values that ensure no spare pixels on either the vertical or horizontal edge (i.e., window dimensions are snapped to the nearest line height and length).

Steps to reproduce the behaviour

xdotool getactivewindow windowsize 400 400
xdotool getactivewindow getwindowgeometry

MATE general version

1.26

Package version

$ pacman -Q mate-terminal 
mate-terminal 1.26.1-1

Linux Distribution

Arch Linux - all packages up-to-date as of roughly 2 hours prior to this report

Link to bugreport of your Distribution (requirement)

Not currently filed - able to reproduce in multiple distros, including Mageia and Fedora