Subject: [PATCH v2] gitk: support link color in the Preferences dialog

From: "Gary Wang via GitGitGadget" <[email-masked]>
Date: Sat, 28 Feb 2026 04:05:58 +0000

From: Wang Zichong <[email-masked]>

As a dark-theme user, I use the Preferences dialog to set colors
for gitk. The only color I cannot change via that dialog is the
link foreground color, which leads to using the default link color
on a dark background that makes it hard to read.

Make the link foreground color also configurable in the Gitk
Preferences dialog's Color tab, so users won't need to dig into
the code/manual to check if it is configurable and can simply set
the color there.

CC: Mark Levedahl <[email-masked]>
CC: Paul Mackerras <[email-masked]>
CC: Johannes Sixt <[email-masked]>
Signed-off-by: Wang Zichong <[email-masked]>
---
    gitk: support config the color of linkfgcolor via Gitk Preferences

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2217%2FBLumia%2Fgitk-linkfgcolor-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2217/BLumia/gitk-linkfgcolor-v2
Pull-Request: https://github.com/git/git/pull/2217

Range-diff vs v1:

 1:  d5d8897fbb ! 1:  f533af7ac5 gitk: support config the color of linkfgcolor via Gitk Preferences
     @@ Metadata
      Author: Wang Zichong <[email-masked]>
      
       ## Commit message ##
     -    gitk: support config the color of linkfgcolor via Gitk Preferences
     +    gitk: support link color in the Preferences dialog
      
          As a dark-theme user, I use the Preferences dialog to set colors
     -    for gitk, the only color I cannot change via that dialog is the
     -    link foreground color, which will lead me to use the default link
     -    color on a dark background that make it not really readable.
     +    for gitk. The only color I cannot change via that dialog is the
     +    link foreground color, which leads to using the default link color
     +    on a dark background that makes it hard to read.
      
     -    This patch makes the link foreground color also configurable in the
     -    Gitk Preferences dialog's Color tab, so user won't need to dig into
     -    the code/manual to know if the link color is configurable and can
     -    simply set the color there.
     +    Make the link foreground color also configurable in the Gitk
     +    Preferences dialog's Color tab, so users won't need to dig into
     +    the code/manual to check if it is configurable and can simply set
     +    the color there.
      
     -    CC: Mark Levedahl <[email-masked]>, Paul Mackerras <[email-masked]>
     +    CC: Mark Levedahl <[email-masked]>
     +    CC: Paul Mackerras <[email-masked]>
     +    CC: Johannes Sixt <[email-masked]>
          Signed-off-by: Wang Zichong <[email-masked]>
     +    ---
     +    Changelog (v2):
     +
     +      * reword commit message as suggesed by Johannes
     +      * Rename button text from "link color" to "link" as suggested
     +        by Johannes
      
       ## gitk-git/gitk ##
      @@ gitk-git/gitk: proc prefspage_general {notebook} {
     @@ gitk-git/gitk: proc prefspage_colors {notebook} {
           grid x $page.selbgbut $page.selbgsep -sticky w
       
      +    label $page.linkfg -padx 40 -relief sunk -background $linkfgcolor
     -+    ttk::button $page.linkfgbut -text [mc "Link color"] \
     -+        -command [list choosecolor linkfgcolor {} $page [mc "link color"]]
     ++    ttk::button $page.linkfgbut -text [mc "Link"] \
     ++        -command [list choosecolor linkfgcolor {} $page [mc "link"]]
      +    grid x $page.linkfgbut $page.linkfg -sticky w
      +
           grid columnconfigure $page 2 -weight 1

Changelog (v2):

  * reword commit message as suggesed by Johannes
  * Rename button text from "link color" to "link" as suggested
    by Johannes
---
 gitk-git/gitk | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gitk-git/gitk b/gitk-git/gitk
index cbaaee994e..1c289174d5 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -11796,7 +11796,7 @@ proc prefspage_general {notebook} {
 
 proc prefspage_colors {notebook} {
     global bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
-    global diffbgcolors
+    global diffbgcolors linkfgcolor
     global themeloader
 
     set page [create_prefs_page $notebook.colors]
@@ -11873,6 +11873,11 @@ proc prefspage_colors {notebook} {
         -command [list choosecolor selectbgcolor {} $page [mc "background"]]
     grid x $page.selbgbut $page.selbgsep -sticky w
 
+    label $page.linkfg -padx 40 -relief sunk -background $linkfgcolor
+    ttk::button $page.linkfgbut -text [mc "Link"] \
+        -command [list choosecolor linkfgcolor {} $page [mc "link"]]
+    grid x $page.linkfgbut $page.linkfg -sticky w
+
     grid columnconfigure $page 2 -weight 1
 
     return $page
@@ -11880,7 +11885,7 @@ proc prefspage_colors {notebook} {
 
 proc prefspage_set_colorswatches {page} {
     global bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
-    global diffbgcolors
+    global diffbgcolors linkfgcolor
 
     $page.bg configure -background $bgcolor
     $page.fg configure -background $fgcolor
@@ -11891,6 +11896,7 @@ proc prefspage_set_colorswatches {page} {
     $page.hunksep configure -background [lindex $diffcolors 2]
     $page.markbgsep configure -background $markbgcolor
     $page.selbgsep configure -background $selectbgcolor
+    $page.linkfg configure -background $linkfgcolor
 }
 
 proc prefspage_fonts {notebook} {

base-commit: 7b2bccb0d58d4f24705bf985de1f4612e4cf06e5
-- 
gitgitgadget