Subject: [RFC] git-gui window layout

From: Adam Piatyszek <[email-masked]>
Date: Fri, 12 Oct 2007 10:49:26 +0200

Dear Giters,

I would like you to comment on my idea to change, or at least add a
possibility to change, the current layout of git-gui window.

Nowadays there is a tendency to produce wide screens for laptops and
even standalone LCD monitors. One can safely assume that the minimum
reasonable horizontal resolution of a screen is at least 1024 pixels (I
do not expect anyone using git-gui with 800x600 resolution).
Moreover, most popular window managers decreases the vertical dimension
of a desktop by using horizontally-oriented panels (e.g. KDE, Gnome,
XFCE4, etc.)

The current layout of git-gui window covering the whole desktop area on
a typical WXGA (1280x800) laptop LCD display is thus:

+----------+-----------------------------------+
|          |                                   |
|  staged  |          unstaged                 |
|          |                                   |
+----------+----------------+------------------+
|###     commit log         |      EMPTY       |
|###                        |                  |
+---------------------------+------------------+
|                                              |
|    diff output                               |
|                                              |
+----------------------------------------------+

In my opinion, the staged, unstaged and diff areas are usually used for
displaying things that are taller than wider (e.g. a list of files,
patches of well structured code, which is usually < 80 columns). The
commit log window is also designed for text narrower than < 80 cols.

Therefore in my opinion it might be more useful to restructure this
layout to something like this:

+-------------+----------------------------+---+
|             |                            |###|
|             |       commit log           |###|
|   staged    +----------------------------+---+
|             |                                |
|             |                                |
+----- 1 -----+                                |
|             |       diff output              |
|             2                                |
|  unstaged   |                                |
|             |                                |
|             |                                |
+-------------+--------------------------------+

Buttons (rescan, push, commit, etc.) are denoted here as ###. Besides
the walls denoted as 1 and 2 should be movable so one could adjust the
size of staged/unstaged and diff areas.
The minimum width of diff window would be limited by the commit log
window width (I propose 80 colums) plus the size of the buttons.

Unfortunately, I do not nothing about TCL/TK programming, so I even did
not tried to analyse the code of git-gui. Therefore I am not sure if
such a restructure is easy to implement.

Anyway I hope for your comments to this idea.

BR,
/Adam

-- 
.:.  Adam Piatyszek - "ediap"       .:.  JID: ediap(at)jabber.org .:.
.:.  ediap(at)users.sourceforge.net .:.  PGP key ID: 0x1F115CCB   .:.