All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Sixt <j6t@kdbg.org>
To: Stefan Dotterweich <stefandotterweich@gmx.de>
Cc: git@vger.kernel.org, Paul Mackerras <paulus@ozlabs.org>
Subject: Re: [PATCH] gitk: add diff lines background colors
Date: Tue, 7 Apr 2020 18:42:52 +0200	[thread overview]
Message-ID: <8b5b8d89-59c2-7349-25c1-2529db13fa6e@kdbg.org> (raw)
In-Reply-To: <20200211212448.9288-1-stefandotterweich@gmx.de>

Am 11.02.20 um 22:24 schrieb Stefan Dotterweich:
> Not using colored background for added and removed lines is a missed
> opportunity to make diff lines easier to grasp visually.
> 
> Use a subtle red/green background by default. Make the font slightly darker
> to improve contrast.

I've been using gitk with this patch for a while, and I find the new
appearance *very* pleasing! It gives gitk a fresh, modern look.

There is one major gripe, though: the new background color overrides the
selection background and makes the selection invisible. This is a
showstopper.

Note that the search result highlight does not become invisible.

-- Hannes

> 
> Signed-off-by: Stefan Dotterweich <stefandotterweich@gmx.de>
> ---
> The variable diffcolors seems like a fitting place for the two new colors.
> However, adding them to that list causes problems if diffcolors saved in
> .gitk then contains three instead of five colors. This could be solved by
> modifying the variable after loading .gitk. I'm not sure if that would be
> the preferred approach or where to implement a special case like that. To
> avoid the problem, I introduced a new variable diffbgcolors.
> 
>  gitk | 22 +++++++++++++++++++---
>  1 file changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/gitk b/gitk
> index da84e22..66c237a 100755
> --- a/gitk
> +++ b/gitk
> @@ -2073,7 +2073,7 @@ proc makewindow {} {
>      global rowctxmenu fakerowmenu mergemax wrapcomment
>      global highlight_files gdttype
>      global searchstring sstring
> -    global bgcolor fgcolor bglist fglist diffcolors selectbgcolor
> +    global bgcolor fgcolor bglist fglist diffcolors diffbgcolors selectbgcolor
>      global uifgcolor uifgdisabledcolor
>      global filesepbgcolor filesepfgcolor
>      global mergecolors foundbgcolor currentsearchhitbgcolor
> @@ -2434,7 +2434,9 @@ proc makewindow {} {
>      $ctext tag conf filesep -font textfontbold -fore $filesepfgcolor -back $filesepbgcolor
>      $ctext tag conf hunksep -fore [lindex $diffcolors 2]
>      $ctext tag conf d0 -fore [lindex $diffcolors 0]
> +    $ctext tag conf d0 -back [lindex $diffbgcolors 0]
>      $ctext tag conf dresult -fore [lindex $diffcolors 1]
> +    $ctext tag conf dresult -back [lindex $diffbgcolors 1]
>      $ctext tag conf m0 -fore [lindex $mergecolors 0]
>      $ctext tag conf m1 -fore [lindex $mergecolors 1]
>      $ctext tag conf m2 -fore [lindex $mergecolors 2]
> @@ -11607,6 +11609,7 @@ proc prefspage_general {notebook} {
> 
>  proc prefspage_colors {notebook} {
>      global NS uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
> +    global diffbgcolors
> 
>      set page [create_prefs_page $notebook.colors]
> 
> @@ -11629,11 +11632,23 @@ proc prefspage_colors {notebook} {
>  	-command [list choosecolor diffcolors 0 $page.diffold [mc "diff old lines"] \
>  		      [list $ctext tag conf d0 -foreground]]
>      grid x $page.diffoldbut $page.diffold -sticky w
> +    label $page.diffoldbg -padx 40 -relief sunk -background [lindex $diffbgcolors 0]
> +    ${NS}::button $page.diffoldbgbut -text [mc "Diff: old lines bg"] \
> +	-command [list choosecolor diffbgcolors 0 $page.diffoldbg \
> +		      [mc "diff old lines bg"] \
> +		      [list $ctext tag conf d0 -background]]
> +    grid x $page.diffoldbgbut $page.diffoldbg -sticky w
>      label $page.diffnew -padx 40 -relief sunk -background [lindex $diffcolors 1]
>      ${NS}::button $page.diffnewbut -text [mc "Diff: new lines"] \
>  	-command [list choosecolor diffcolors 1 $page.diffnew [mc "diff new lines"] \
>  		      [list $ctext tag conf dresult -foreground]]
>      grid x $page.diffnewbut $page.diffnew -sticky w
> +    label $page.diffnewbg -padx 40 -relief sunk -background [lindex $diffbgcolors 1]
> +    ${NS}::button $page.diffnewbgbut -text [mc "Diff: new lines bg"] \
> +	-command [list choosecolor diffbgcolors 1 $page.diffnewbg \
> +		      [mc "diff new lines bg"] \
> +		      [list $ctext tag conf dresult -background]]
> +    grid x $page.diffnewbgbut $page.diffnewbg -sticky w
>      label $page.hunksep -padx 40 -relief sunk -background [lindex $diffcolors 2]
>      ${NS}::button $page.hunksepbut -text [mc "Diff: hunk header"] \
>  	-command [list choosecolor diffcolors 2 $page.hunksep \
> @@ -12377,7 +12392,8 @@ if {[tk windowingsystem] eq "win32"} {
>  	set web_browser "xdg-open"
>      }
>  }
> -set diffcolors {red "#00a000" blue}
> +set diffcolors {"#c30000" "#009800" blue}
> +set diffbgcolors {"#fff3f3" "#f0fff0"}
>  set diffcontext 3
>  set mergecolors {red blue "#00ff00" purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"}
>  set ignorespace 0
> @@ -12448,7 +12464,7 @@ set config_variables {
>      remotebgcolor tagbgcolor tagfgcolor tagoutlinecolor reflinecolor
>      filesepbgcolor filesepfgcolor linehoverbgcolor linehoverfgcolor
>      linehoveroutlinecolor mainheadcirclecolor workingfilescirclecolor
> -    indexcirclecolor circlecolors linkfgcolor circleoutlinecolor
> +    indexcirclecolor circlecolors linkfgcolor circleoutlinecolor diffbgcolors
>      web_browser
>  }
>  foreach var $config_variables {
> --
> 2.24.1
> 
> 


  reply	other threads:[~2020-04-07 16:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-11 21:24 [PATCH] gitk: add diff lines background colors Stefan Dotterweich
2020-04-07 16:42 ` Johannes Sixt [this message]
2020-04-08 18:36   ` [PATCH] gitk: Un-hide selection in added and removed text and search results Johannes Sixt
2020-04-09 17:48     ` [PATCH v2] gitk: Un-hide selection in areas with non-default background color Johannes Sixt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8b5b8d89-59c2-7349-25c1-2529db13fa6e@kdbg.org \
    --to=j6t@kdbg.org \
    --cc=git@vger.kernel.org \
    --cc=paulus@ozlabs.org \
    --cc=stefandotterweich@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.