From: David Fries <hidden> Date: 2016-06-15 22:50:00
The gitk preferences allow for the user to select different colors.
The setui is even set to dynamically detect how light or dark the
background is and set the selection color to be the opposite, but
there are a few other color selections that don't currently work with
a dark background such as the black outlines. This patch improves the
color selection. In some cases it just needs to use the current
forground color, other places it is more complicated.
The gitk_colors branch can be pulled from,
git://gitorious.org/~dfries/git/dfriess-git-mainline.git
my relevant .gitk config file settings,
set mainfont {Helvetica 8}
set textfont {Courier 8}
set uifont {Helvetica 9 bold}
set uicolor grey85
set bgcolor black
set fgcolor white
set colors {green red blue magenta darkgrey brown orange}
set diffcolors {red green cyan}
set markbgcolor #404060
set selectbgcolor gray50
From: David Fries <hidden> Date: 2016-06-15 22:50:00
Replace most uses of black with $fgcolor as items such as a black
outline on the tag or tag lines with a black background doesn't show
up. Use $fgcolor instead to make it contrast with the background.
Signed-off-by: David Fries <redacted>
---
gitk-git/gitk | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
@@ -6295,7 +6295,7 @@ proc drawtags {id x xt y1} { } set xl [expr {$xl - $delta/2}] $canv create polygon $x $yt $xr $yt $xr $yb $x $yb \- -width 1 -outline black -fill $col -tags tag.$id+ -width 1 -outline $fgcolor -fill $col -tags tag.$id if {[regexp {^(remotes/.*/|remotes/)} $tag match remoteprefix]} { set rwid [font measure mainfont $remoteprefix] set xi [expr {$x + 1}]
@@ -8215,6 +8215,7 @@ proc linehover {} { global hoverx hovery hoverid hovertimer global canv linespc lthickness global commitinfo+ global fgcolor set text [lindex $commitinfo($hoverid) 0] set ymax [lindex [$canv cget -scrollregion] 3]
@@ -8227,7 +8228,7 @@ proc linehover {} { set x1 [expr {$x + [font measure mainfont $text] + 2 * $lthickness}] set y1 [expr {$y + $linespc + 2 * $lthickness}] set t [$canv create rectangle $x0 $y0 $x1 $y1 \- -fill \#ffff80 -outline black -width 1 -tags hover]+ -fill \#ffff80 -outline $fgcolor -width 1 -tags hover] $canv raise $t set t [$canv create text $x $y -anchor nw -text $text -tags hover \ -font mainfont]
From: David Fries <hidden> Date: 2016-06-15 22:50:00
If the foreground color is dark use light tags, branches, and
remote fill colors. If it is light use darker versions so the
text is readable.
Signed-off-by: David Fries <redacted>
---
gitk-git/gitk | 41 +++++++++++++++++++++++++++++++++++++----
1 files changed, 37 insertions(+), 4 deletions(-)
@@ -6233,6 +6233,7 @@ proc drawtags {id x xt y1} { global idtags idheads idotherrefs mainhead global linespc lthickness global canv rowtextx curview fgcolor bgcolor ctxbut+ global tagcolor branchcolor remotecolor set marks {} set ntags 0
@@ -6280,29 +6281,32 @@ proc drawtags {id x xt y1} { # draw a tag set t [$canv create polygon $x [expr {$yt + $delta}] $xl $yt \ $xr $yt $xr $yb $xl $yb $x [expr {$yb - $delta}] \- -width 1 -outline $fgcolor -fill yellow -tags tag.$id]+ -width 1 -outline $fgcolor -fill $tagcolor -tags \+ [list tag.$id tagcolor]] $canv bind $t <1> [list showtag $tag 1] set rowtextx([rowofcommit $id]) [expr {$xr + $linespc}] } else { # draw a head or other ref if {[incr nheads -1] >= 0} {- set col green+ set col $branchcolor+ set t [list tag.$id branchcolor] if {$tag eq $mainhead} { set font mainfontbold } } else { set col "#ddddff"+ set t tag.$id } set xl [expr {$xl - $delta/2}] $canv create polygon $x $yt $xr $yt $xr $yb $x $yb \- -width 1 -outline $fgcolor -fill $col -tags tag.$id+ -width 1 -outline $fgcolor -fill $col -tags $t if {[regexp {^(remotes/.*/|remotes/)} $tag match remoteprefix]} { set rwid [font measure mainfont $remoteprefix] set xi [expr {$x + 1}] set yti [expr {$yt + 1}] set xri [expr {$x + $rwid}] $canv create polygon $xi $yti $xri $yti $xri $yb $xi $yb \- -width 0 -fill "#ffddaa" -tags tag.$id+ -width 0 -fill $remotecolor -tags [list tag.$id remotecolor] } } set t [$canv create text $xl $y1 -anchor w -text $tag -fill $fgcolor \
@@ -10877,6 +10881,30 @@ proc setbg {c} { } }+proc setfill {c} {+ global tagcolor branchcolor remotecolor+ global canv;++ set fg [winfo rgb . $c]+ if {[lindex $fg 0] + 1.5 * [lindex $fg 1] + 0.5 * [lindex $fg 2] > 100000} {+ # dark fill to read a light foreground font+ set tagcolor yellow4+ set branchcolor green4+ set remotecolor "#806F55"+ } else {+ # light fill to read a dark foreground font+ set tagcolor yellow+ set branchcolor green+ set remotecolor "#ffddaa"+ }+ # update tags assocated with non-text elements+ if {[info exists canv]} {+ $canv itemconf tagcolor -fill $tagcolor+ $canv itemconf branchcolor -fill $branchcolor+ $canv itemconf remotecolor -fill $remotecolor+ }+}+ proc setfg {c} { global fglist canv
@@ -10887,6 +10915,10 @@ proc setfg {c} { $canv itemconf circle -outline $c $canv itemconf markid -outline $c $canv itemconf line -fill $c+ $canv itemconf tagcolor -outline $c+ $canv itemconf branchcolor -outline $c++ setfill $c } # update hunksep and each link foreground color
From: David Fries <hidden> Date: 2016-06-15 22:50:00
blue on a black background might as well look like dark blue on black
and is very difficult to read. The "Diff: hunk header" keeps the
colors more consistent and both default to blue.
Signed-off-by: David Fries <redacted>
---
gitk-git/gitk | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)
@@ -10890,6 +10889,19 @@ proc setfg {c} { $canv itemconf line -fill $c }+# update hunksep and each link foreground color+proc sethunksep {c} {+ global ctext linknum++ $ctext tag conf hunksep -foreground $c+ for {set i 0} {$i < $linknum} {incr i} {+ # Use -underline to determine if it is a known link and gets this color+ if {[$ctext tag cget link$i -underline] != ""} {+ $ctext tag conf link$i -foreground $c+ }+ }+}+ proc prefscan {} { global oldprefs prefstop
From: David Fries <hidden> Date: 2016-06-15 22:50:07
Junio,
I submitted the 'gitk: improve dark background' patch to the list,
made improvements based on the feedback, and submitted the result two
weeks ago without any further feedback. I put my changes off of
master, but gitk is identical in both maint and master. Can you pull
the changes?
branch gitk_colors from
git://gitorious.org/~dfries/git/dfriess-git-mainline.git
This e-mail is also a replay to the last posting of the patches.
On Wed, Nov 10, 2010 at 10:59:54PM -0600, David Fries wrote:
The gitk preferences allow for the user to select different colors.
The setui is even set to dynamically detect how light or dark the
background is and set the selection color to be the opposite, but
there are a few other color selections that don't currently work with
a dark background such as the black outlines. This patch improves the
color selection. In some cases it just needs to use the current
forground color, other places it is more complicated.
The gitk_colors branch can be pulled from,
git://gitorious.org/~dfries/git/dfriess-git-mainline.git
my relevant .gitk config file settings,
set mainfont {Helvetica 8}
set textfont {Courier 8}
set uifont {Helvetica 9 bold}
set uicolor grey85
set bgcolor black
set fgcolor white
set colors {green red blue magenta darkgrey brown orange}
set diffcolors {red green cyan}
set markbgcolor #404060
set selectbgcolor gray50