Шрифты в Х

berus аватар

Всем доброго времени суток! Решил познакомиться с нэткой, ось сразу понравилась, только одна простейшая (но не приятная) загвоздка - шрифты в X. до етого работал с фряхой, там ставил webfonts из портов. погуглил, нашел инфу, что в нэтке нужно ставить ms-ttf, что и сделал. В xorg.conf указал пути, безрезультатно... Допустим в огнелисе также все безобразно... Прошу помощи=)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
spinore аватар

Ставишь шрифты по вкусу и

Ставишь шрифты по вкусу и прописываешь их в ~/.Xdefaults, причём на каждое приложение. Путь к шрифтам должен быть в /etc/xorg.conf или где там щас иксовый конфиг. Например, у меня так:

$ cat .Xdefaults |sed '/^!.*$/d' |grep -i font
xscreensaver*Dialog.headingFont:            -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
xscreensaver*Dialog.bodyFont:               -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
xscreensaver*Dialog.labelFont:              -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
xscreensaver*Dialog.buttonFont:             -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
xscreensaver*Dialog.dateFont:               -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
xscreensaver*passwd.passwdFont:             -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
Aterm.font: -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1
Aterm.boldFont: -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-koi8-1

ЗЫ Xfree86, NBSD3.0

shattered аватар

Весьма приличные шрифты идут

Весьма приличные шрифты идут вместе с Acrobat 7 (print/acroread7) -- Myriad Pro и Minion Pro.

berus аватар

сбасибо за советы,

сбасибо за советы, собственно забил, посчитал, что мне с шрифтами не критично) как есть, так и работаю)

spinore аватар

Цитата:Весьма приличные

Цитата:
Весьма приличные шрифты идут вместе с Acrobat 7 (print/acroread7) -- Myriad Pro и Minion Pro.

Да, интересные шрифты. Мне ещё понравился AdobePiStd, идущий вместе с указанными, но там нет русских букв. Теперь если сайт чисто англоязычный, то firefox у меня показывает всё в AdobePiStd, иначе - видимо, последний выставлявшийся в настройках шрифт, где были доступны кириллические (Minion Pro).
Инструкция по присабачиванию для дятлов следующая:
$ cp /usr/pkg/Acrobat8/Adobe/Reader8/Resource/Font/*.otf ~/.fonts/
$ fc-cache -v

И потом рестартнуть браузер.

Btw, ранее встречался с примером хорошего русского шрифта, он был частью fonts/lohit-fonts, но смотрелся красиво только при размере не меньше 16ти (или 18ти, не помню), что делало его использование затруднительным.

Mishka аватар

Возможно стоит проверить

Возможно стоит проверить конфигурацию fontconfig. В "родном" Xorg может
не хватает сроки <dir>/usr/pkg/lib/X11/fonts</dir>

PhoeniX аватар

русификация иксов сводится к

русификация иксов сводится к нескольким простым действиям(для меня):
1. правильно сконфигурировать конф.файл самого икс-сервера(это пожалуй самое главное)))
2. подсунуть в /usr/X11R6/lib/X11/fonts/ побольше шрифтов
3. и выполнить три команды: mkfontscale, mkfontdir, fc-cache. причем все три для каждой созданной папки, или при добавлении в существующую.

пример:
1.вытягиваем вот этот шрифт http://www.inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/cyr-rfx-windows-1251-1.1.tgz
2. создаем /usr/X11R6/lib/X11/fonts/ папку 1251 -> /usr/X11R6/lib/X11/fonts/1251/
3. распаковываем туда архив. там будет два каталога(doc не в счет): 75dpi и misc
3. выполняем в КАЖДОМ КАТАЛОГЕ все три команыд:
# mkfontscale /usr/X11R6/lib/X11/fonts/1251/75dpi/
# mkfontdir /usr/X11R6/lib/X11/fonts/1251/75dpi/
# fc-cache /usr/X11R6/lib/X11/fonts/1251/75dpi/
и тоже самое для misc
# mkfontscale /usr/X11R6/lib/X11/fonts/1251/misc/
# mkfontdir /usr/X11R6/lib/X11/fonts/1251/misc/
# fc-cache /usr/X11R6/lib/X11/fonts/1251/misc/
и тогда все иксовые клиенты, типа Opera, OOffice и т.д. прекрасно работают с кирилицей. Главное - по-больше шрифтов. Лично я признаю только 1251 и/или UTF-8. Причем NetBSD уже изначально уникодная (унишкодная ))))

или (что проще)
1. в папку /usr/X11R6/lib/X11/fonts/TTF/ закидываем виндовые шрифтв (кот находятся по адресу \\windows\Fonts\)
2. делаем:
# mkfontscale /usr/X11R6/lib/X11/fonts/TTF/
# mkfontdir /usr/X11R6/lib/X11/fonts/TTF/
# fc-cache /usr/X11R6/lib/X11/fonts/TTF/
насколько я помню, эти команды дописывают описание шрифтов в "список имеющихся".
Причем, я пытался сначала дописывать пути к шрифтам в самом XF86Config. Нифига. А вот эти три команды - помогают.. Я так понимаю, что в этом случае шрифты рисуются через сервер шрифтов - xfs...

Приведу конф.файл для XFree86, мож кому пригодится(я в 4.0 кспериментировал).
Можно это все скопировать в XF86Config и сохранить в пользовательской папке
Это готовый к использованию конф.файл. Переключение осуществляется комбинацией клавиш [Ctrl+Shift], при этом загорается индикатор [ScrollLock].
Делается это всё в секции "Core keyboard's InputDevice section".
Вот значение этой секции:
#----------------------------------------------------------------------------
Option "XkbRules" "xfree86" // тип Х -сервера
Option "XkbModel" "pc104" // тип клавы
Option "XkbLayout" "us,ru" // используемые языки
Option "XkbVariant" ",winkeys" // а это если я правильно понял - тип клавы - винда. знающие - подправят ;)
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:caps" // комбинация переключения. в данном случае - [Ctrl+Shift]
#---------------------------------------------------------------------------

А вот сам конф.файл икс-сервера. Видеодрайвер - VESA. Можно поменять на свою видюху и будет уже полноценный конф.файл.

#---------------------------------------------------------
# File generated by xf86config.
#
# Copyright (c) 1999 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#

# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************

# **********************************************************************
# Module section -- this section is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
#
Section "Module"

# This loads the DBE extension module.

Load "dbe" # Double buffer extension

# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection

# This loads the Type1 and FreeType font modules
Load "type1"
Load "speedo"
Load "freetype"
Load "ttf"
Load "xtt"

# This loads the GLX module
# Load "glx"
# This loads the DRI module
# Load "dri"

EndSection

# **********************************************************************
# Files section. This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database. Note, this is the name of the
# file minus the extension (like ".txt" or ".db"). There is normally
# no need to change the default.

RgbPath "/usr/X11R6/lib/X11/rgb"

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
#
# If you don't have a floating point coprocessor and emacs, Mosaic or other
# programs take long to start up, try moving the Type1 and Speedo directory
# to the end of this list (or comment them out).
#
# FontPath "/usr/X11R6/lib/X11/fonts/local/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType/"
# FontPath "/usr/X11R6/lib/X11/fonts/freefont/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"

# The module search path. The default path is shown here.

ModulePath "/usr/X11R6/lib/modules"

EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

# Option "NoTrapSignals"

# Uncomment this to disable the VT switch sequence
# (where n is 1 through 12). This allows clients to receive these key
# events.

# Option "DontVTSwitch"

# Uncomment this to disable the server abort sequence
# This allows clients to receive this key event.

# Option "DontZap"

# Uncomment this to disable the / mode switching
# sequences. This allows clients to receive these key events.

# Option "Dont Zoom"

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.

# Option "DisableVidModeExtension"

# Uncomment this to enable the use of a non-local xvidtune client.

# Option "AllowNonLocalXvidtune"

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.

# Option "DisableModInDev"

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

# Option "AllowNonLocalModInDev"

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# *********Core keyboard's InputDevice section*************************************************************
# Core keyboard's InputDevice section
# **********************************************************************

Section "InputDevice"

Identifier "Keyboard1"
Driver "Keyboard"

# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris),
# uncomment the following line.

# Option "Protocol" "Xqueue"

Option "AutoRepeat" "500 30"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
# Option "Xleds" "1 2 3"

# Option "LeftAlt" "Meta"
# Option "RightAlt" "ModeShift"

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults). For example, for a non-U.S.
# keyboard, you will probably want to use:
# Option "XkbModel" "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
# Option "XkbModel" "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
# Option "XkbLayout" "de"
# or:
# Option "XkbLayout" "de"
# Option "XkbVariant" "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
# Option "XkbOptions" "ctrl:swapcaps"

# These are the default XKB settings for XFree86
# Option "XkbRules" "xfree86"
# Option "XkbModel" "pc101"
# Option "XkbLayout" "us"
# Option "XkbVariant" ""
# Option "XkbOptions" ""

# Option "XkbDisable"

Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:caps"

EndSection

# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"

# Identifier and driver

Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "wsmouse"
Option "Device" "/dev/wsmouse"

# Mouse-speed setting for PS/2 mouse.

# Option "Resolution" "256"
Option "ZAxisMapping" "4 5"

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

# Option "Protocol" "Xqueue"

# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.

# Option "BaudRate" "9600"
# Option "SampleRate" "150"

# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

# Option "Emulate3Buttons"
# Option "Emulate3Timeout" "50"

# ChordMiddle is an option for some 3-button Logitech mice

# Option "ChordMiddle"

EndSection

# **********************************************************************
# Other input device sections
# this is optional and is required only if you
# are using extended input devices. This is for example only. Refer
# to the XF86Config man page for a description of the options.
# **********************************************************************
#
# Section "InputDevice"
# Identifier "Mouse2"
# Driver "mouse"
# Option "Protocol" "MouseMan"
# Option "Device" "/dev/mouse2"
# EndSection
#
# Section "InputDevice"
# Identifier "spaceball"
# Driver "magellan"
# Option "Device" "/dev/cua0"
# EndSection
#
# Section "InputDevice"
# Identifier "spaceball2"
# Driver "spaceorb"
# Option "Device" "/dev/cua0"
# EndSection
#
# Section "InputDevice"
# Identifier "touchscreen0"
# Driver "microtouch"
# Option "Device" "/dev/ttyS0"
# Option "MinX" "1412"
# Option "MaxX" "15184"
# Option "MinY" "15372"
# Option "MaxY" "1230"
# Option "ScreenNumber" "0"
# Option "ReportingMode" "Scaled"
# Option "ButtonNumber" "1"
# Option "SendCoreEvents"
# EndSection
#
# Section "InputDevice"
# Identifier "touchscreen1"
# Driver "elo2300"
# Option "Device" "/dev/ttyS0"
# Option "MinX" "231"
# Option "MaxX" "3868"
# Option "MinY" "3858"
# Option "MaxY" "272"
# Option "ScreenNumber" "0"
# Option "ReportingMode" "Scaled"
# Option "ButtonThreshold" "17"
# Option "ButtonNumber" "1"
# Option "SendCoreEvents"
# EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

Identifier "monik"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

HorizSync 31.5, 35.15, 35.5

# HorizSync 30-64 # multisync
# HorizSync 31.5, 35.2 # multiple fixed sync frequencies
# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

VertRefresh 50-90

EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
Identifier "Standard VGA"
VendorName "Unknown"
BoardName "Unknown"

# The chipset line is optional in most cases. It can be used to override
# the driver's chipset detection, and should not normally be specified.

# Chipset "generic"

# The Driver line must be present. When using run-time loadable driver
# modules, this line instructs the server to load the specified driver
# module. Even when not using loadable driver modules, this line
# indicates which driver should interpret the information in this section.

Driver "vga"
# The BusID line is used to specify which of possibly multiple devices
# this section is intended for. When this line isn't present, a device
# section can only match up with the primary video device. For PCI
# devices a line like the following could be used. This line should not
# normally be included unless there is more than one video device
# intalled.

# BusID "PCI:0:10:0"

# VideoRam 256

# Clocks 25.2 28.3

EndSection

# Device configured by xf86config:

Section "Device"
Identifier "vidyuha"
Driver "vesa"
#VideoRam 65536
# Insert Clocks lines here if appropriate
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

# Any number of screen sections may be present. Each describes
# the configuration of a single screen. A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
Identifier "Screen 1"
Device "vidyuha"
Monitor "monik"
DefaultDepth 24

Subsection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

# Any number of ServerLayout sections may be present. Each describes
# the way multiple screens are organised. A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option. In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.

Section "ServerLayout"

# The Identifier line must be present
Identifier "Simple Layout"

# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens. The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen. In this example, screen 2 is located to the
# right of screen 1.

Screen "Screen 1"

# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used. Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".

InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"

EndSection

# Section "DRI"
# Mode 0666
# EndSection
#------------------------------------------------------------

shattered аватар

1.вытягиваем вот этот шрифт

1.вытягиваем вот этот шрифт http://www.inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/cyr-rfx-windows-1251-1.1.tgz

все семейство шрифтов cyr-rfx уже давно в pkgsrc. courtesy of yours truly.

berus аватар

# mkfontscale

# mkfontscale /usr/X11R6/lib/X11/fonts/TTF/
# mkfontdir /usr/X11R6/lib/X11/fonts/TTF/
# fc-cache /usr/X11R6/lib/X11/fonts/TTF/
...
вот что я проигнорировал... трындец...=)
Все получилось. По завершению установки из портов не обратил внимание на MESSAGE....Благодарю!

PhoeniX аватар

2shattered "все семейство

2shattered
"все семейство шрифтов..."
Скорее всего так и есть. Насколько я знаю семейство cyr-rfx - единственный сборник кирилических шрифтов. Именно сборник, ибо по одному как-то еще можно найти. А вот хороших - маловато.. И кажется они есть во всех дистрибутивах в виде кирилизации ))
Спасибо, вы очень любезны )) Но это был просто пример, так сказать полный от начала до конца ;)))
совпало )))
P.S.
жизсть - мадам ироничная ;)

shattered аватар

я о том, что делать все

я о том, что делать все руками (mkdir, tar -xzf...) -- конечно, универсальный подход, но непрактичный...

PhoeniX аватар

2shatterd я так и не научился

2shatterd
я так и не научился делать всё это руками, при всей любви к юниксу - уж очень влом все делать пальчиками ))) согласен с вами - очень уж непрактично!
копирование, распаковка и т.д. - исключительно mc ))
вы юзверь продвинутый - в связи с этим два вопроса(и не совсем в тему):
1. почему при установке из бинарников mc не понимает функциональные клавиши в консоли ?...точее ничего не понимает, кроме стрелок вверх, вниз, вправо, влево..могу предположить, что это связано с икс-сервером..точнее библиотекми из иксов. не получится вытянуть?
2. как бы мне написать простенький скриптик, кот облегчал бы мне установку из бинарников? чего я конкретно хочу? вот выкачал я ВСЕ бинарники с сервака, и валяются у меня в одной папке. От этого скриптика я хочу чтобы она "ходила" по этой папке и при выборе нужного бинарника - тупо ставила бинарник, т.е. pkg_add /path_for_bin/soft.tgz или хотя бы из текущей папки. как максимум - описание этого бинарника из архива, кажется, файл COMMENT..
2+. если такой скрит получится сварганить - получится ли сделать из него пакетник? скажем есть окошко - список файлов. слева - чекбоксы, потом сам файл, ну и описание. двигаемся по файлам - ставим чекбоксы на нужное и хрясь - УСТАНОВИТЬ. и они потихонечку устанавливаются.
p.s.
тому кто напишет - ящик лимонада или ящик пива(кто что пьет). нужное подчеркнуть )))
p.p.s.
при желании - рассматриваются другие напитки ;)

shattered аватар

1. консоль -- это xterm? как

1. консоль -- это xterm? как собран бинарный пакет? (pkg_info -B mc | grep PKG_OPTIONS) что указано в переменной $TERM?

2. pkgtools/pkg_select подойдет?

spinore аватар

Цитата:уж очень влом все

Цитата:
уж очень влом все делать пальчиками

А вот это:
Цитата:
я хочу чтобы она "ходила" по этой папке и при выборе нужного бинарника - тупо ставила бинарник

вам не влом каждый раз делать? "Ходить" по этой папке с тысячими пакетов и выбирать нужный, вместо pkg_add <первая_буква>[tab] [enter] и всё.