xterm, не отображающийся unicode

От man utime:

       The  utime()  system  call changes the access and modification times of
       the inode specified by filename to the actime  and  modtime  fields  of
       times respectively.

       If  times  is  NULL, then the access and modification times of the file
       are set to the current time.

       Changing timestamps is permitted when: either the process has appropri‐
       ate  privileges,  or  the  effective  user ID equals the user ID of the
       file, or times is NULL and the process has  write  permission  for  the
       file.

Так, для изменения только времени изменения для файла (touch -m foo), Вам было бы нужно любому быть root, или владелец файла.

Способность записать в файл только дает Вам разрешение обновить и измененный и времена доступа к текущему времени; Вы не можете обновить ни одного отдельно, ни установить их на различное время.

8
16.04.2015, 15:24
4 ответа

Решения из комментариев:

  • uxterm
  • CtrlЩелкните правой кнопкой мыши (контекстное меню) и кодировку UTF-8.
  • xterm -u8
  • X ресурсы: используйте спецификацию шрифта с набором символов и полями эккодирования, установленными в -iso10646-1

Например, для xterm (X-класс Xterm) и шрифт Terminus, вы можете добавить в ~/. Xresources

XTerm*font: -*-terminus-medium-r-normal--18-*-*-*-*-*-iso10646-1

Для поиска установленных в вашей системе шрифтов и их спецификаций смотрите файлы /usr/share/fonts/*/*.dir. После редактирования ~/.Xresources загрузите их с помощью xrdb -merge ~/.Xresources.

5
27.01.2020, 20:10

К сожалению, мне тоже не удалось правильно настроить поддержку Unicode в xterm . В качестве обходного пути я установил rxvt , который доступен на rpmforge на дистрибутивах EL. Также есть версия программы unicode-256color , которая мне отлично подходит. Вот описание:

Name        : rxvt
Arch        : x86_64
Epoch       : 18
Version     : 2.7.10
Release     : 2.el7.rf
Size        : 326 k
Repo        : rpmforge
Summary     : Color VT102 terminal emulator for the X Window System
URL         : http://www.rxvt.org/
License     : GPL
Description : Rxvt is a color VT102 terminal emulator for the X Window System. Rxvt
            : is intended to be an xterm replacement for users who don't need the
            : more esoteric features of xterm, like Tektronix 4014 emulation,
            : session logging and toolkit style configurability. Since it does not
            : support those features, rxvt uses much less swap space than xterm
            : uses. This is a significant advantage on a machine which is serving a
            : large number of X sessions.

ArchWiki , как всегда, содержит полезную информацию о конфигурации и вариантах использования.

2
27.01.2020, 20:10

В 2016 году говорится о патче xterm № 278 (выпущенном в 2012 году):

xterm использует один шрифт, а не наборы шрифтов , которые поддерживаются несколькими другими терминалами. Псевдографические символы в этом (вставлены из xterm):

⎛     ⎽⎽⎽⎽⎽⎽⎽   ⎞
⎜    ╱    3     ⎟
⎜   ╱    x      ⎟
⎜  ╱   ───── , 1⎟
⎝╲╱    x + 1    ⎠

не предоставлены шрифтом TypeType, указанным здесь:

xterm.vt100.faceName: Terminus
xterm.vt100.faceSize: 14

Другие терминалы, учитывая, что этот шрифт предоставит эти символы из другого шрифт.

Способ заставить xterm работать -

  • указать шрифт, который покрывает все необходимые символы, и
  • указать ему использовать кодировку UTF-8.

Последний адресуется для большинства пользователей настройкой по умолчанию ресурса locale : xterm (обычно) будет использовать кодировку UTF-8. Но поведение по умолчанию совместимо с VT100, поэтому используются шрифты, совместимые с ISO-8859-1.

  • Терминус использует больше символов, чем это, но далеко не покрывает всю псевдографику в Юникоде.
  • Те, которые отображаются как n , - это U + 239B, U + 239C, U + 239D, U + 239E, U + 23A0.
  • Версия Terminus в Debian 7 (и при тестировании Debian) имеет менее 256 символов и показывает n , как описано в вопросе.

Это происходит потому, что (хотя xterm знает, что глифы отсутствуют), он напечатал строку с использованием шрифта, предполагая, что (как и большинство других шрифтов) отсутствующие записи будут отображаться как пробелы . В этом случае кажется, что библиотека freetype отображает младший байт значений Unicode в диапазон, который поддерживает Terminus. Это попадает в диапазон, который шрифт отображается как n (для «такого символа нет»):

enter image description here

В быстром обходном пути используется сценарий uxterm , который выбирает другой шрифт. и гарантирует, что используется кодировка UTF-8.

Дополнительная литература:

Шрифт Terminus - это чистый растровый шрифт фиксированной ширины, предназначенный для длительной (8 и более часов в день) работы с компьютерами. Версия 4.40 содержит 1241 символов, охватывает около 120 языковых наборов и поддерживает ISO8859-1 / 2/5/7/9/13/15/16, Paratype-PT154 / PT254, KOI8-R / U / E / F, эсперанто, многие кодовые страницы IBM, Windows и Macintosh, а также псевдографические символы IBM VGA, vt100 и xterm.

Выше говорилось о патче xterm № 278 , которому в 2016 году исполнилось четыре года. Разработка xterm продолжается, и начиная с патча № 338 (конец 2018 г.) появилась поддержка наборов шрифтов TrueType. Вот снимок экрана с настройками ресурсов OP из xterm , патч № 342 (№ 343, вероятно, выйдет «скоро»):

screenshot from xterm #342

Используя параметр -report-fonts , Я вижу, что он загрузил эти файлы шрифтов (рассматривая полужирный / курсив как «такой же», как нормальный , и используя второй шрифт для специальных символов) :

    file=/usr/share/fonts/X11/misc/ter-u18n\_iso-8859-1.pcf.gz              
    file=/usr/share/fonts/X11/misc/ter-u18b\_iso-8859-1.pcf.gz              
    file=/usr/share/fonts/X11/misc/ter-u18n\_iso-8859-1.pcf.gz              
    file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf

Фактическое количество шрифтов зависит от того, что вы хотите сделать. При тестировании существующего диапазона значений Unicode он может использовать пару десятков шрифтов.

7
27.01.2020, 20:10

Как насчет использования шрифтов TrueType, как показано ниже? Я не могу заставить работать стандартную опцию -fn *-*-...с xterm, но это работает отлично.

xterm -fa 'Inconsolata' -fs 12

Шрифты Inconsolata можно скачать здесь

0
27.01.2020, 20:10

Теги

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