As an intermediate alternative between a hardware keyboard and a graphical symbol picker, I use an .XCompose file with contents that look like this:
# GREEK
<Multi_key> <g> <A> : "Α" U0391 # GREEK CAPITAL LETTER ALPHA
<Multi_key> <g> <a> : "α" U03B1 # GREEK SMALL LETTER ALPHA
<Multi_key> <g> <B> : "Β" U0392 # GREEK CAPITAL LETTER BETA
<Multi_key> <g> <b> : "β" U03B2 # GREEK SMALL LETTER BETA
<Multi_key> <g> <D> : "Δ" U0394 # GREEK CAPITAL LETTER DELTA
<Multi_key> <g> <d> : "δ" U03B4 # GREEK SMALL LETTER DELTA
<Multi_key> <g> <E> : "Ε" U0395 # GREEK CAPITAL LETTER EPSILON
<Multi_key> <g> <e> : "ε" U03B5 # GREEK SMALL LETTER EPSILON
...
# Math Symbols
<Multi_key> <i> <n> : "∈" U2208 # IN
<Multi_key> <f> <a> : "∀" U2200 # FOR ALL
<Multi_key> <t> <e> : "∃" U2203 # THERE EXISTS
<Multi_key> <a> <n> <d> : "∧" U2227 # AND
<Multi_key> <o> <r> : "∨" U2228 # OR
<Multi_key> <less> <parenleft> : "⟨" U27E8 # MATHEMATICAL LEFT ANGLE BRACKET
<Multi_key> <greater> <parenright>: "⟩" U27E9 # MATHEMATICAL RIGHT ANGLE BRACKET
<Multi_key> <d> <d> : "∂" U8706 # DEL
<Multi_key> <n> <b> : "∇" U8711 # NABLA
I've used this for perhaps the last 10 years now and I don't think I could go back to working on a machine without configurable compose key functionality at this point.
This. Using a Compose key [0] covers a vast range of input use cases and is eminently customizable. For Windows there is WinCompose [1]. For macOS there is [2].
[0] https://en.wikipedia.org/wiki/Compose_key
[1] https://github.com/SamHocevar/wincompose
[2] https://github.com/Granitosaurus/macos-compose
Compose functionality is absolutely awesome. I don't understand why it's not more widespread. I use it for all sorts of stuff, from emojis, to symbols, to diacretics. It's great!