README file for TermSize utility. Release 0.0.01
Copyright 2021-2022 by The Software Samurai
Software released under GPL3+, and documentation released under FDL1.3+
=======================================================================
Download and unpack the distribution archive alongside the NcDialog API 
source directory (available as a separate download):

   tar -xjvf termsize-0.0.01.tar.bz2

The archive contains the "TermSize" directory and its contents.
The recommended source-directory configuration is shown below. This allows 
the TermSize 'Makefile' to access the needed headers and link library 
from the NcDialog API package.

   .../NcDialog/Dialog1     <== NcDialog source lives here
               /Dialog2     <== test and demonstration code
               /Dialog3           "   "       "         "
               /Dialog4           "   "       "         "
               /Dialogw           "   "       "         "
               /Dialogx           "   "       "         "
               /Texinfo     <== NcDialog documentation lives here
   .../TermSize             <== TermSize source lives here
      TermSize.cpp       // Application source code
      GlobalDef.hpp      // Specifies '#include' files and general definitions
      Makefile           // Build the 'termsize' application
      README             // Package description, release notes (this file)

To build the application, navigate to the TextSize directory and type:
   gmake all

This will update the needed support files from the NcDialog API:
   NCurses.hpp        // Definitions for the NCurses class
   NCursesKeyDef.hpp  // NcDialog API keycode definitions
   gString.hpp        // Definitions for gString text formatting utility
   NcDialog.a         // NcDialog API link library
and then build the application.

To test the application build, type:
   ./termsize --version

For invocation options, type:
   ./termsize --help


Description:
============
TermSize is a simple utility which helps to compensate for the serious 
design flaw in the GNOME terminal under Wayland which no longer reports 
the terminal-window size as it is being resized. 
In addition, there is a serious bug in the GNOME terminal program which 
calculates the initial size of the window using a hard-coded 12-point font 
as the reference. If your terminal is set for a font other than 12-point, 
you may need to play some tricks to get the dimensions you want.
In addition, the gnome-terminal invocation accepts only a limited range 
for row/column dimensions juxtaposed with the dimensions of the desktop.
Again, this seems to be a calculation based on a hard-coded 12-point font.
(Wayland may someday be a reliable platform, but today is not that day.)

(Konsole, on the other hand, continues to report resize events correctly.)

To invoke the 'termsize' utility whenever a new terminal window is opened, 
create a custom ".desktop file" and place it where local desktop files are 
located on your system. This is usually in the directory:
   /homr/$USER/.local/share/applications
Consult your system documentation for to verify the location for desktop files.

An example desktop file is shown, which can be adapted for your system layout.

[Desktop Entry]
Comment=custom geometry for terminal (Note: Wayland ignores positioning.)
Terminal=false
Name=GnomeTerm_Custom
Exec=gnome-terminal --profile='Sam' --geometry=141x37
                              --working-directory=/home/sam/SoftwareDesign 
                              -- /bin/sh -c 'termsize ; clear ; exec bash' 
Type=Application
Icon=/home/sam/Apps/GnomeTerm/SamLogo03.png


Notes on the current release:
=============================

This is the initial release, so bugs or system/terminal incompatibilities 
may arise. This is an extremely simple application, so it is hoped that the 
application will build and perform as documented; however, if problems are 
encountered, please sent the author a note via website.
- - - - -
Please see the header of "TermSize.cpp" for a list of all changes since the 
previous release.


Known bugs and other issues:
============================
None identified at this time.

For future development:
=======================
-- Add multi-language support (Spanish and Chinese(simplified)).
