Я нашел решение: Не был создан индекс файлов шрифтов X.
Я обнаружил это, просматривая /var/log/Xorg.0.log
файл журнала.
$ grep /fonts /var/log/Xorg.0.log.old
[ 13.492] (WW) The directory "/usr/share/fonts/Type1/" does not exist.
[ 13.493] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
[ 13.493] (Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
[ 13.493] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[ 13.494] (Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
/usr/share/fonts/misc/,
/usr/share/fonts/TTF/,
/usr/share/fonts/OTF/
Затем я запустил mkfontdir
на /usr/share/fonts/75dpi
и /usr/share/fonts/100dpi
, и проблема была решена.
offset=$(date +%-z)
даст результат -400
в вашем случае.
-
после символа %
удаляет заполнение нулями.
Использование sed
иbc
:
date +%z | sed -E 's/^([+-])(..)(..)/scale=2;0\1(\2 + \3\/60)/' | bc
Это вернет вас 2.00
в часовой пояс, в котором я нахожусь(+0200
).
Со странными/необычными часовыми поясами:
$ echo '+0245' | sed -E 's/^([+-])(..)(..)/scale=2;0\1(\2 + \3\/60)/' | bc
2.75
$ echo '-0245' | sed -E 's/^([+-])(..)(..)/scale=2;0\1(\2 + \3\/60)/' | bc
-2.75
Выражение sed
превратит часовой пояс в «bc
скрипт». Для часового пояса +HHMM
скрипт будет
scale=2;0+(HH + MM/60)
Для -HHMM
будет
scale=2;0-(HH + MM/60)
Ноль там, потому что мой bc
не понимает унарный +
.
Если вы собираетесь иметь дело только с полными часовыми поясами, вы можете использовать
date +%z | sed -E 's/^([+-])(..)../0\1\2/' | bc
который выдаст вам целые числа.
Если часовой пояс составляет целое число часов (Дата GNU):
$ date +%-:::z
-4
В противном случае (предположим -0427):
$ date +%-:::z | awk -F: '{x=$1;printf("%s%.2f\n",x>=0?"+":"-",(x>=0?x:-x)+$2/60)}'
-4.45
Или, для более старых реализаций с более ограниченной датой, используйте простой:
$ date +%z | awk -F '' '{printf("%s%.2f\n",$1,$2$3+($4$5)/60)}'
-4.45
Это все еще не POSIX, потому что нулевая FS не определена для POSIX awk.
Для POSIX нам нужно разделить символы с помощью sed:
$ date +%z |\
sed -E 's/(.)(..)(..)/\1 \2 \3/' |\
awk '{ printf("%s%.2f\n",$1,$2+$3/60) }'