To use dark GTK themes with meld you will need to override it's default colours.
Update example for GTK+ 3
In December 2013, Meld was updated to use GtkCssProvider instead of gtkrc (commit log).
The new location of its default colour profile is
/usr/share/meld/meld.css
This example uses the same values as the now outdated example from the next section, except with the format changed to work with the latest version of Meld
@define-color insert-bg #002200; @define-color insert-outline shade(@insert-bg, 1.8); @define-color insert-text #008800; @define-color delete-bg #111111; @define-color delete-outline shade(@delete-bg, 1.8); @define-color delete-text #880000; @define-color replace-bg #000033; @define-color replace-outline shade(@replace-bg, 1.8); @define-color replace-text #0044dd; @define-color conflict-bg Pink; @define-color conflict-outline shade(@conflict-bg, 1.8); @define-color conflict-text #ff0000; @define-color error-bg #fce94f; @define-color error-outline shade(@error-bg, 1.8); @define-color error-text #faad3d; @define-color inline-bg #333366; @define-color inline-fg Red; @define-color unknown-text #888888; @define-color current-line-highlight #111100; @define-color syncpoint-outline #555555; @define-color current-chunk-highlight #800080; .meld-notebook-toolbar.toolbar { background-image: none; background-color: @theme_base_color; border-width: 0 0 1px 0; border-style: solid; border-color: @borders; -GtkToolbar-button-relief: none; padding: 3px 2px 2px 2px; } LinkMap { border-width: 0 0 1px 0; border-style: solid; border-color: @borders; } .meld-vc-console-pane { border-width: 1px 0 0px 0; border-style: solid; border-color: @borders; }
To see the defaults, refer here: https://git.gnome.org/browse/meld/tree/data/meld.css
This technique is now outdated
Create a file ~/.gtkrc-2.0
and fill in the colours you with to override. An example is below that works well with a dark theme.
style "meld-color-scheme-user" { color["insert-bg"] = "#002200" color["insert-outline"] = shade(1.8, @insert-bg) color["insert-text"] = "#008800" color["delete-bg"] = "#111111" color["delete-outline"] = shade(1.8, @delete-bg) color["delete-text"] = "#880000" color["replace-bg"] = "#000033" color["replace-outline"] = shade(1.8, @replace-bg) color["replace-text"] = "#0044dd" color["conflict-bg"] = "Pink" color["conflict-outline"] = shade(1.8, @conflict-bg) color["conflict-text"] = "#ff0000" color["error-bg"] = "#fce94f" color["error-outline"] = shade(1.8, @error-bg) color["error-text"] = "#faad3d" color["inline-bg"] = "#333366" color["inline-fg"] = "Red" color["unknown-text"] = "#888888" color["current-line-highlight"] = "#111100" color["syncpoint-outline"] = "#555555" } widget "meldapp.*" style : highest "meld-color-scheme-user"
Here is a second example of a dark theme:
style "meld-color-scheme-user" { # inserted line(s), also edge color block for added file in dir diff color["insert-bg"] = "#006000" color["insert-outline"] = shade(1.5, @insert-bg) # In dir diff, an added file's name color["insert-text"] = "#00CC00" # Color block on edge for missing file in dir diff color["delete-bg"] = "#800000" color["delete-outline"] = shade(1.8, @delete-bg) # Not sure what this is for color["delete-text"] = "Cyan" # Changed line(s), and edge color block for changed file in dir diff color["replace-bg"] = "#685020" color["replace-outline"] = "#604820" # Changed file in dir diff color["replace-text"] = "#e07000" # Not sure what these are for color["conflict-bg"] = "Cyan" color["conflict-outline"] = shade(1.8, @conflict-bg) color["conflict-text"] = "Cyan" # Not sure what these are for color["error-bg"] = "Cyan" color["error-outline"] = shade(1.8, @error-bg) color["error-text"] = "Cyan" # Added text on an existing changed line (per-word diffing) color["inline-bg"] = "#305030" # shade(1.3, @replace-bg) color["inline-fg"] = "#e0e080" # Crossed-out (not present) file in dir diff view color["unknown-text"] = "#e0e0e0" color["syncpoint-outline"] = "Yellow" # Currently selected chunk. Note: seems to automatically be blended with underlying color. color["current-chunk-highlight"] = "#800080" } widget "meldapp.*" style : highest "meld-color-scheme-user"
To see the defaults, refer here: https://git.gnome.org/browse/meld/tree/data/gtkrc