Получение wmctrl для работы с несколькими окнами Emacs

Локали создаются на запросе, потому что они могут занять много места. Необходимо активировать локаль путем генерации связанных данных. Ubuntu, несомненно, имеет GUI, где можно установить это, но я не знаю, где это пренебрежительно. Выполните это раз и навсегда в терминале:

locale-gen en_US.UTF-8

Вы, возможно, должны выйти из системы и въехать задним ходом для LANG значение, которое не будет санировано вниз к C, но необходимо смочь протестировать прямо сейчас путем выполнения LANG=en_US.UTF-8 gnome-terminal.

Между прочим, я рекомендую LC_CTYPE вместо LANG. LC_CTYPE управляет набором символов только; LANG также влияет на другие категории локали, в особенности сопоставление (т.е. упорядочивание символа), который может иногда доставлять неприятности.

4
17.06.2013, 07:04
2 ответа

Соответствие на заголовке окна не очень надежно. Например, если Вы просматриваете этот вопрос в своем браузере, затем wmctrl -a 'emacs' мог бы активировать Ваш браузер.

Можно настроить формат заголовка кадра с frame-title-format. Я использую (multiple-frames "%b" ("" invocation-name "@" system-name)). Но я не рекомендую полагаться на это в Вашем сценарии.

Можно сказать wmctrl искать окно классом с опцией -x. Это и просто и надежно.

wmctrl -x -a Emacs

С другой стороны, можно заставить Emacs сделать задание. Это дает Вам лучший шанс выбора “лучшего” кадра, когда существует несколько активных кадров.

1
27.01.2020, 20:58

Если Вы просто хотите переключить фокус, почему бы не использовать 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

2
27.01.2020, 20:58

Теги

Похожие вопросы