From: Mark Levedahl Date: Mon, 22 Sep 2025 14:36:41 +0000 (-0400) Subject: gitk: use config variables to define and load a theme X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ccb2d4a762a0ea39c7f1df0712efbab3b7a4883;p=thirdparty%2Fgit.git gitk: use config variables to define and load a theme gitk uses themed tk, but has no capability to alter the theme defined by Tk. While there are documented ways to install other themes, and to make one the default, these methods are obscure at best. Instead, let's offer two config variables: - theme this is the name of the theme to use, and must be available. - themeloader - this is the full pathname of a tcl script that will load one or more themes into the Tk namespace. By default, theme is set to the theme active when Tk is started, and themeloader = {}. These variables must be defined to something else to have any user visible effect. Signed-off-by: Mark Levedahl --- diff --git a/gitk b/gitk index 796933670a..1f601153cb 100755 --- a/gitk +++ b/gitk @@ -2215,6 +2215,7 @@ proc setoptions {} { } proc setttkstyle {} { + global theme eval font configure TkDefaultFont [fontflags mainfont] eval font configure TkTextFont [fontflags textfont] eval font configure TkHeadingFont [fontflags mainfont] @@ -2224,6 +2225,10 @@ proc setttkstyle {} { eval font configure TkIconFont [fontflags uifont] eval font configure TkMenuFont [fontflags uifont] eval font configure TkSmallCaptionFont [fontflags uifont] + + if {[catch {ttk::style theme use $theme} err]} { + set theme [ttk::style theme use] + } } # Make a menu and submenus. @@ -12618,6 +12623,9 @@ set circleoutlinecolor $fgcolor set foundbgcolor yellow set currentsearchhitbgcolor orange +set theme [ttk::style theme use] +set themeloader {} + # button for popping up context menus if {[tk windowingsystem] eq "aqua" && [package vcompare $::tcl_version 8.7] < 0} { set ctxbut @@ -12701,6 +12709,8 @@ set config_variables { tagfgcolor tagoutlinecolor textfont + theme + themeloader uicolor uifgcolor uifgdisabledcolor @@ -12800,7 +12810,10 @@ set nullid "0000000000000000000000000000000000000000" set nullid2 "0000000000000000000000000000000000000001" set nullfile "/dev/null" -setttkstyle +if {[file exists $themeloader]} { + source $themeloader +} + set appname "gitk" set runq {} @@ -12916,6 +12929,7 @@ if {[tk windowingsystem] eq "win32"} { focus -force . } +setttkstyle set_gui_colors getcommits {}