ghidra
ghidra copied to clipboard
Unify color/font configuration
The way Ghidra opens ways of customizing the interface is currently far from ideal, and it's very tricky to get a consistent view in the whole tool.
In the details, as of 9.1.2
, here are all the menus where we have to set the font:
-
Console
-
Decompiler
→Display
-
Listing Display
(done differently than the others, size control typically has a different granularity)
And here are where we have to set the colors:
-
ByteViewer
-
Decompiler
→Display
-
Entropy
-
Function graph
-
Listing Display
(done differently than the others, more advanced) -
Listing Fields
→ {Cursor
,Cursor Text Highlight
,Selection Colors
} -
Overview
-
Search
A better solution I would see would be to first have a common view for all the available color and font customizations. Then presets (or palettes of colors) could be added easily. The remaining UI widgets can be stylized through the engine itself (typically by picking GTK+).
All the different views of the UI would use these shared color and font settings instead of their own: there is no reason someone would wish for an inconsistent experience between the different view.
If there isn't a hidden "common view"/global font color, style, etc setting somewhere then I highly agree. While it is nice to be able to customize things individually it should always be possible to choose the default behavior.
BTW, many colors are hard-coded and can't be changed ever from the options menu (issues, for example: #49, #1324, #632, #1390, etc). I rewrote many such places in the source code for changing colors to a dark, but I’m sure that there are still hard-coded places.
Relates to issue #13. Ghidra's developers have in plans to unify settings of UI and create theme manager.
some time it is as easy as to comment a line:
https://github.com/pabx06/buildghidra/blob/8c75127ec14aaf9dadc963d9dfa8cc99ae24fff1/patch/InfoPanel.patch#L27
so the default applied look and feel do the coloring.
You can now change most application colors, icons and fonts by editing the current Theme.
Fixed by e657a701416877f7a77b635662d30cfc25f1b5f0