Локали создаются на запросе, потому что они могут занять много места. Необходимо активировать локаль путем генерации связанных данных. Ubuntu, несомненно, имеет GUI, где можно установить это, но я не знаю, где это пренебрежительно. Выполните это раз и навсегда в терминале:
locale-gen en_US.UTF-8
Вы, возможно, должны выйти из системы и въехать задним ходом для LANG
значение, которое не будет санировано вниз к C, но необходимо смочь протестировать прямо сейчас путем выполнения LANG=en_US.UTF-8 gnome-terminal
.
Между прочим, я рекомендую LC_CTYPE
вместо LANG
. LC_CTYPE
управляет набором символов только; LANG
также влияет на другие категории локали, в особенности сопоставление (т.е. упорядочивание символа), который может иногда доставлять неприятности.
Соответствие на заголовке окна не очень надежно. Например, если Вы просматриваете этот вопрос в своем браузере, затем wmctrl -a 'emacs'
мог бы активировать Ваш браузер.
Можно настроить формат заголовка кадра с frame-title-format
. Я использую (multiple-frames "%b" ("" invocation-name "@" system-name))
. Но я не рекомендую полагаться на это в Вашем сценарии.
Можно сказать wmctrl
искать окно классом с опцией -x
. Это и просто и надежно.
wmctrl -x -a Emacs
С другой стороны, можно заставить Emacs сделать задание. Это дает Вам лучший шанс выбора “лучшего” кадра, когда существует несколько активных кадров.
Если Вы просто хотите переключить фокус, почему бы не использовать emacsclient?
emacsclient --eval '(select-frame-set-input-focus (selected-frame))'
Если Вы хотите открыть файл одновременно, можно даже использовать
emacsclient -n FILE
Если необходимо использовать wmctrl по другим причинам, я предполагаю, что можно добраться (emacs-pid)
, (frame-parameter frame 'display)
, (frame-parameter frame 'window-id)
, и т.д. emacsclient и затем подают их к wmctrl
.
Также взгляните на: https://github.com/tkf/emacs-wmctrl