Para concluir as respostas de @lmeurs e @ Luciano acima, aqui está um ~/.XCompose
arquivo que funciona a partir de junho de 2018 no Linux Mint 18.3, usando xim
como método de entrada:
include "%L" # or include "/usr/share/X11/locale/en_US.UTF-8/Compose"
<dead_acute> <b> : "'b"
<dead_acute> <c> : "ç" ccedilla
<dead_acute> <d> : "'d"
<dead_acute> <f> : "'f"
<dead_acute> <g> : "'g"
<dead_acute> <h> : "'h"
<dead_acute> <j> : "'j"
<dead_acute> <k> : "'k"
<dead_acute> <l> : "'l"
<dead_acute> <m> : "'m"
<dead_acute> <n> : "'n"
<dead_acute> <p> : "'p"
<dead_acute> <q> : "'q"
<dead_acute> <r> : "'r"
<dead_acute> <s> : "'s"
<dead_acute> <t> : "'t"
<dead_acute> <v> : "'v"
<dead_acute> <w> : "'w"
<dead_acute> <x> : "'x"
<dead_acute> <y> : "'y"
<dead_acute> <z> : "'z"
<dead_acute> <B> : "'B"
<dead_acute> <C> : "Ç" Ccedilla
<dead_acute> <D> : "'D"
<dead_acute> <F> : "'F"
<dead_acute> <G> : "'G"
<dead_acute> <H> : "'H"
<dead_acute> <J> : "'J"
<dead_acute> <K> : "'K"
<dead_acute> <L> : "'L"
<dead_acute> <M> : "'M"
<dead_acute> <N> : "'N"
<dead_acute> <P> : "'P"
<dead_acute> <Q> : "'Q"
<dead_acute> <R> : "'R"
<dead_acute> <S> : "'S"
<dead_acute> <T> : "'T"
<dead_acute> <V> : "'V"
<dead_acute> <W> : "'W"
<dead_acute> <X> : "'X"
<dead_acute> <Y> : "'Y"
<dead_acute> <Z> : "'Z"
<dead_acute> <dead_acute> : "''"
<dead_acute> <1> : "'1"
<dead_acute> <2> : "'2"
<dead_acute> <3> : "'3"
<dead_acute> <4> : "'4"
<dead_acute> <5> : "'5"
<dead_acute> <6> : "'6"
<dead_acute> <7> : "'7"
<dead_acute> <8> : "'8"
<dead_acute> <9> : "'9"
<dead_acute> <0> : "'0"
<dead_acute> <minus> : "'-"'
<dead_acute> <equal> : "'="
<dead_acute> <slash> : "'/"
<dead_acute> <bracketleft> : "'["
<dead_acute> <bracketright> : "']"
<dead_acute> <semicolon> : "';"
<dead_acute> <apostrophe> : "''"
<dead_acute> <comma> : "',"
<dead_acute> <period> : "'."
<dead_acute> <backslash> : "'\\"
<dead_acute> <dead_tilde> : "'~"
<dead_acute> <exclam> : "'!"
<dead_acute> <at> : "'@"
<dead_acute> <numbersign> : "'#"
<dead_acute> <dollar> : "'$"
<dead_acute> <percent> : "'%"
<dead_acute> <dead_circumflex> : "'^"
<dead_acute> <ampersand> : "'&"
<dead_acute> <asterisk> : "'*"
<dead_acute> <parenleft> : "'("
<dead_acute> <parenright> : "')"
<dead_acute> <underscore> : "'_"
<dead_acute> <plus> : "'+"
<dead_acute> <braceleft> : "'{"
<dead_acute> <braceright> : "'}"
<dead_acute> <colon> : "':"
<dead_acute> <quotedbl> : "'""
<dead_acute> <leftarrow> : "'<"
<dead_acute> <leftarrow> : "'>"
<dead_acute> <question> : "'?"
<dead_diaeresis> <dead_diaeresis> : "\"\""
<dead_diaeresis> <b> : "\42b"
<dead_diaeresis> <c> : "\42c"
<dead_diaeresis> <d> : "\42d"
<dead_diaeresis> <f> : "\42f"
<dead_diaeresis> <g> : "\42g"
<dead_diaeresis> <h> : "\42h"
<dead_diaeresis> <j> : "\42j"
<dead_diaeresis> <k> : "\42k"
<dead_diaeresis> <l> : "\42l"
<dead_diaeresis> <m> : "\42m"
<dead_diaeresis> <n> : "\42n"
<dead_diaeresis> <p> : "\42p"
<dead_diaeresis> <q> : "\42q"
<dead_diaeresis> <r> : "\42r"
<dead_diaeresis> <s> : "\42s"
<dead_diaeresis> <t> : "\42t"
<dead_diaeresis> <v> : "\42v"
<dead_diaeresis> <w> : "\42w"
<dead_diaeresis> <x> : "\42x"
<dead_diaeresis> <y> : "\42y"
<dead_diaeresis> <z> : "\42z"
<dead_diaeresis> <B> : "\42B"
<dead_diaeresis> <C> : "\42C"
<dead_diaeresis> <D> : "\42D"
<dead_diaeresis> <F> : "\42F"
<dead_diaeresis> <G> : "\42G"
<dead_diaeresis> <H> : "\42H"
<dead_diaeresis> <J> : "\42J"
<dead_diaeresis> <K> : "\42K"
<dead_diaeresis> <L> : "\42L"
<dead_diaeresis> <M> : "\42M"
<dead_diaeresis> <N> : "\42N"
<dead_diaeresis> <P> : "\42P"
<dead_diaeresis> <Q> : "\42Q"
<dead_diaeresis> <R> : "\42R"
<dead_diaeresis> <S> : "\42S"
<dead_diaeresis> <T> : "\42T"
<dead_diaeresis> <V> : "\42V"
<dead_diaeresis> <W> : "\42W"
<dead_diaeresis> <X> : "\42X"
<dead_diaeresis> <Y> : "\42Y"
<dead_diaeresis> <Z> : "\42Z"
<dead_diaeresis> <dead_acute> : "\42'"
<dead_diaeresis> <1> : "\421"
<dead_diaeresis> <2> : "\422"
<dead_diaeresis> <3> : "\423"
<dead_diaeresis> <4> : "\424"
<dead_diaeresis> <5> : "\425"
<dead_diaeresis> <6> : "\426"
<dead_diaeresis> <7> : "\427"
<dead_diaeresis> <8> : "\428"
<dead_diaeresis> <9> : "\429"
<dead_diaeresis> <0> : "\420"
<dead_diaeresis> <minus> : "\42-"
<dead_diaeresis> <equal> : "\42="
<dead_diaeresis> <slash> : "\42/"
<dead_diaeresis> <bracketleft> : "\42["
<dead_diaeresis> <bracketright> : "\42]"
<dead_diaeresis> <semicolon> : "\42;"
<dead_diaeresis> <comma> : "\42,"
<dead_diaeresis> <period> : "\42."
<dead_diaeresis> <backslash> : "\42\\"
<dead_diaeresis> <dead_tilde> : "\42~"
<dead_diaeresis> <exclam> : "\42!"
<dead_diaeresis> <at> : "\42@"
<dead_diaeresis> <numbersign> : "\42#"
<dead_diaeresis> <dollar> : "\42$"
<dead_diaeresis> <percent> : "\42"
<dead_diaeresis> <dead_circumflex> : "\42^"
<dead_diaeresis> <ampersand> : "\42&"
<dead_diaeresis> <asterisk> : "\42*"
<dead_diaeresis> <parenleft> : "\42("
<dead_diaeresis> <parenright> : "\42)"
<dead_diaeresis> <underscore> : "\42_"
<dead_diaeresis> <plus> : "\42+"
<dead_diaeresis> <braceleft> : "\42{"
<dead_diaeresis> <braceright> : "\42}"
<dead_diaeresis> <colon> : "\42:"
<dead_diaeresis> <quotedbl> : "\42\42"
<dead_diaeresis> <leftarrow> : "\42<"
<dead_diaeresis> <leftarrow> : ">"
<dead_diaeresis> <question> : "\42?"
<dead_grave> <b> : "`b"
<dead_grave> <c> : "`c"
<dead_grave> <d> : "`d"
<dead_grave> <f> : "`f"
<dead_grave> <g> : "`g"
<dead_grave> <h> : "`h"
<dead_grave> <j> : "`j"
<dead_grave> <k> : "`k"
<dead_grave> <l> : "`l"
<dead_grave> <m> : "`m"
<dead_grave> <n> : "`n"
<dead_grave> <p> : "`p"
<dead_grave> <q> : "`q"
<dead_grave> <r> : "`r"
<dead_grave> <s> : "`s"
<dead_grave> <t> : "`t"
<dead_grave> <v> : "`v"
<dead_grave> <w> : "`w"
<dead_grave> <x> : "`x"
<dead_grave> <y> : "`y"
<dead_grave> <z> : "`z"
<dead_grave> <B> : "`B"
<dead_grave> <C> : "`C"
<dead_grave> <D> : "`D"
<dead_grave> <F> : "`F"
<dead_grave> <G> : "`G"
<dead_grave> <H> : "`H"
<dead_grave> <J> : "`J"
<dead_grave> <K> : "`K"
<dead_grave> <L> : "`L"
<dead_grave> <M> : "`M"
<dead_grave> <N> : "`N"
<dead_grave> <P> : "`P"
<dead_grave> <Q> : "`Q"
<dead_grave> <R> : "`R"
<dead_grave> <S> : "`S"
<dead_grave> <T> : "`T"
<dead_grave> <V> : "`V"
<dead_grave> <W> : "`W"
<dead_grave> <X> : "`X"
<dead_grave> <Y> : "`Y"
<dead_grave> <Z> : "`Z"
<dead_grave> <dead_acute> : "`'"
<dead_grave> <1> : "`1"
<dead_grave> <2> : "`2"
<dead_grave> <3> : "`3"
<dead_grave> <4> : "`4"
<dead_grave> <5> : "`5"
<dead_grave> <6> : "`6"
<dead_grave> <7> : "`7"
<dead_grave> <8> : "`8"
<dead_grave> <9> : "`9"
<dead_grave> <0> : "`0"
<dead_grave> <minus> : "`-"
<dead_grave> <equal> : "`="
<dead_grave> <slash> : "`/"
<dead_grave> <bracketleft> : "`["
<dead_grave> <bracketright> : "`]"
<dead_grave> <semicolon> : "`;"
<dead_grave> <dead_grave> : "``"
<dead_grave> <comma> : "`,"
<dead_grave> <period> : "`."
<dead_grave> <backslash> : "`\\"
<dead_grave> <dead_tilde> : "`~"
<dead_grave> <exclam> : "`!"
<dead_grave> <at> : "`@"
<dead_grave> <numbersign> : "`#"
<dead_grave> <dollar> : "`$"
<dead_grave> <percent> : "`%"
<dead_grave> <dead_circumflex> : "`^"
<dead_grave> <ampersand> : "`&"
<dead_grave> <asterisk> : "`*"
<dead_grave> <parenleft> : "`("
<dead_grave> <parenright> : "`)"
<dead_grave> <underscore> : "`_"
<dead_grave> <plus> : "`+"
<dead_grave> <braceleft> : "`{"
<dead_grave> <braceright> : "`}"
<dead_grave> <colon> : "`:"
<dead_grave> <quotedbl> : "``"
<dead_grave> <leftarrow> : "`,"
<dead_grave> <leftarrow> : "`."
<dead_grave> <question> : "`?"
<dead_tilde> <b> : "~b"
<dead_tilde> <c> : "~c"
<dead_tilde> <d> : "~d"
<dead_tilde> <f> : "~f"
<dead_tilde> <g> : "~g"
<dead_tilde> <h> : "~h"
<dead_tilde> <j> : "~j"
<dead_tilde> <k> : "~k"
<dead_tilde> <l> : "~l"
<dead_tilde> <m> : "~m"
<dead_tilde> <n> : "~n"
<dead_tilde> <p> : "~p"
<dead_tilde> <q> : "~q"
<dead_tilde> <r> : "~r"
<dead_tilde> <s> : "~s"
<dead_tilde> <t> : "~t"
<dead_tilde> <v> : "~v"
<dead_tilde> <w> : "~w"
<dead_tilde> <x> : "~x"
<dead_tilde> <y> : "~y"
<dead_tilde> <z> : "~z"
<dead_tilde> <B> : "~B"
<dead_tilde> <C> : "~C"
<dead_tilde> <D> : "~D"
<dead_tilde> <F> : "~F"
<dead_tilde> <G> : "~G"
<dead_tilde> <H> : "~H"
<dead_tilde> <J> : "~J"
<dead_tilde> <K> : "~K"
<dead_tilde> <L> : "~L"
<dead_tilde> <M> : "~M"
<dead_tilde> <N> : "~N"
<dead_tilde> <P> : "~P"
<dead_tilde> <Q> : "~Q"
<dead_tilde> <R> : "~R"
<dead_tilde> <S> : "~S"
<dead_tilde> <T> : "~T"
<dead_tilde> <V> : "~V"
<dead_tilde> <W> : "~W"
<dead_tilde> <X> : "~X"
<dead_tilde> <Y> : "~Y"
<dead_tilde> <Z> : "~Z"
<dead_tilde> <dead_acute> : "~'"
<dead_tilde> <1> : "~1"
<dead_tilde> <2> : "~2"
<dead_tilde> <3> : "~3"
<dead_tilde> <4> : "~4"
<dead_tilde> <5> : "~5"
<dead_tilde> <6> : "~6"
<dead_tilde> <7> : "~7"
<dead_tilde> <8> : "~8"
<dead_tilde> <9> : "~9"
<dead_tilde> <0> : "~0"
<dead_tilde> <minus> : "~-"
<dead_tilde> <equal> : "~="
<dead_tilde> <slash> : "~/"
<dead_tilde> <bracketleft> : "~["
<dead_tilde> <bracketright> : "~]"
<dead_tilde> <semicolon> : "~;"
<dead_tilde> <comma> : "~,"
<dead_tilde> <period> : "~."
<dead_tilde> <backslash> : "~\\"
<dead_tilde> <dead_tilde> : "~~"
<dead_tilde> <exclam> : "~!"
<dead_tilde> <at> : "~@"
<dead_tilde> <numbersign> : "~#"
<dead_tilde> <dollar> : "~$"
<dead_tilde> <percent> : "~%"
<dead_tilde> <dead_circumflex> : "~^"
<dead_tilde> <ampersand> : "~&"
<dead_tilde> <asterisk> : "~*"
<dead_tilde> <parenleft> : "~("
<dead_tilde> <parenright> : "~)"
<dead_tilde> <underscore> : "~_"
<dead_tilde> <plus> : "~+"
<dead_tilde> <braceleft> : "~{"
<dead_tilde> <braceright> : "~}"
<dead_tilde> <colon> : "~:"
<dead_tilde> <quotedbl> : "~""
<dead_tilde> <leftarrow> : "~<"
<dead_tilde> <leftarrow> : ">"
<dead_tilde> <question> : "~?"
Meu /etc/environment
contém:
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
e eu adicionei a seguinte linha a ~/.profile
:
export XCOMPOSEFILE=/home/my-user-name/.XCompose
e é claro que eu uso o layout 'Inglês (EUA, internacional com chaves mortas)':
$ setxkbmap -query
rules: evdev
model: pc105
layout: us
variant: intl
options: terminate:ctrl_alt_bksp
A única coisa que não funciona perfeitamente (ainda?) É que, nos aplicativos Qt, apenas um caractere pode ser gerado por vez ... por exemplo, se você pressionar + qualquer outra tecla, apenas o apóstrofo será inserido.
<Compose>'b
é um exemplo ruim, porque na verdade existem seqüências de composição válidas que começam com esses caracteres, por exemplo,<Compose>'ba
levam aắ
.