I use Compose key for this, surprised nobody mentioned it here yet. This way it works in all X11 apps (Sway supports this out of the box as well), with no need for extra software or some specific desktop environment.
My n00buntu derivative has some emojis and other logograms out of the box, eg. lines 326–337 of /usr/share/X11/locale/en_US.UTF-8/Compose:
<Multi_key> <C> <C> <C> <P> : "" U262D # HAMMER AND SICKLE
<Multi_key> <O> <A> : "Ⓐ" U24B6 # CIRCLED LATIN CAPITAL LETTER A
<Multi_key> <less> <3> : "♥" U2665 # BLACK HEART SUIT
<Multi_key> <colon> <parenright> : "" U263A # WHITE SMILING FACE
<Multi_key> <colon> <parenleft> : "" U2639 # WHITE FROWNING FACE
<Multi_key> <backslash> <o> <slash> : "" # PERSON RAISING BOTH HANDS IN CELEBRATION
<Multi_key> <p> <o> <o> : "" U1F4A9 # PILE OF POO
<Multi_key> <F> <U> : "" U1F595 # REVERSED HAND WITH MIDDLE FINGER EXTENDED
<Multi_key> <L> <L> <A> <P> : "" U1F596 # RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
https://wiki.archlinux.org/index.php/IBus#Emoji_input
The kitty terminal emulator supports this out of the box (it also works on two other platforms):
https://github.com/kovidgoyal/kitty
Ctrl+Shift+U opens a Unicode input panel with fuzzy search by symbol code or name.