Dependendo da sua distribuição, o arquivo ~/.xsession é executado (um script shell) ao efetuar login no X. E / ou o arquivo ~/.Xmodmap é originado por um processo xmodmap .
O arquivo ~/.profile é executado apenas por um shell de login (com ou sem X), portanto, não é o lugar certo