Разобраться со шрифтом в консоли (изменить размер для начала)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

Не могу отделаться от впечатления, что являюсь наблюдателем сеанса удаления гланд через анус, без возможности отказаться, не считая варианта лишиться гланд тем же способом....

монах Тук
вероятно, вы не с той стороны заходите...
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение монах Тук »

Bizdelnick писал(а):
09.01.2016 16:29
history выдаёт только то, что Вы вводили в консоли, а шрифт мог быть установлен во время инициализации системы.
Да, а мне сейчас стало критичным узнать не просто, что я вводил с онсоли, а что я вводил с консоли во время текущей сессии. И я это выделил жирным шрифтом в сообщении N29
Нужно узнать список команд в текущей сессии.
Сам я попытался, но вышло это корявенько.

И да, оттого, что шрифт мог быть установлен во время инициализации системы, не снимает вопрос о том, как его найти. Ну то есть в перспективе при ненахождении среди команд в текущей сессии setfont или setfont -v <имя файла> нужно будет обратиться к файлу /etc/rc.d/rc.font и считать оттуда соответствующую команду. Программно, естессно.

Если нет более лёгких путей.


bormant писал(а):
09.01.2016 16:39
вероятно, вы не с той стороны заходите...
кто заходит с той стороны- читай, кто знает, как получить текущий шрифт консоли, тот молчит. Проверено. Приходится самому.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

Зачем? Вы ищете несуществующее решение непоставленной задачи.
Я могу закинуть в знакогенератор всё что угодно, такого файла может в природе не существовать вовсе.
И? Что именно вы хотите найти в этом случае?

Раз вам нужен определенный набор глифов числом до 512, а лучше до 256, так просто загрузите его в знакогенератор, да и дело с концом.
Только и всего.

Чем же не устраивает такой путь?
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение монах Тук »

bormant Мне не нужен знакогенератор. И другие непонятные слова тоже. Если вы у себя пользуетесь авторскими безымянными шрифтами, то я ими не пользуюсь. Мой случай не ваш. Никакой самодеятельности. Только шрифты из файлов, лежащих сами знаете где. Всё! Мне нужно просто получить имя файла-шрифта, использующегося консолью в данный момент. И оно, это имя, у него есть. Вы можете?

А согласитесь, как к месту была бы команда а-ля getfont... Просто ведь. Но её нет похоже, такой команды.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20742
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение Bizdelnick »

монах Тук писал(а):
09.01.2016 18:52
Мне нужно просто получить имя файла-шрифта, использующегося консолью в данный момент. И оно, это имя, у него есть.

У файла есть, а у загруженного из него шрифта — уже нет. Никто целью узнать имя файла шрифта просто не задавался, потому что обычно шрифт настраивается один раз, и потом не меняется. Если Вам это действительно нужно, напишите скрипт-обёртку, который будет сохранять имя последнего загруженного шрифта в файл.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение NickLion »

Есть команда showconsolefont, которая показывает текущий используемый шрифт, но, естественно, не файл, откуда он был загружен (строго говоря, он не обязательно из файла может быть загружен).

В openSUSE консольные шрифты лежат в /usr/share/kbd/consolefonts/, шрифт по-умолчанию UniCyr_8x16.psf.gz.
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение монах Тук »

NickLion, команда showconsolefont показала, что я рано обрадовался- научился выводить имена файлов в кодировке UCS-2. Не научился. Приходится всё начинать сначала.

Нужно вывести имя вот этого файла
http://rghost.ru/8WKRGxl5b

В архиве музыкальный файл и торрент на всякий случай (откуда этот файл взят). Музыка Эдуарда Артемьева, если что. Название файла вроде на французском, врать не буду. Его имя видится корректно как в консоли винды (dir), так и в её в проводнике, если кто захочет посмотреть (с буквами e над которыми стоит что-то вроде запятой). Сейчас эти буквы показаны в консоли slackware квадратиками.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20742
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение Bizdelnick »

монах Тук
Почитайте для начала Хорошие шрифты - ищу и ниже по теме.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

Возьмите ter-v16v или другого размера (ter-v*), можно UniCyrExt*, возможно, необходимое есть в drdos*.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение NickLion »

монах Тук
1. Зачем UCS-2? Проще с UTF-8.
2. Максимальное количество символов (точнее глифов) в tty консоли — 512. Это мы в какой-то теме тут недавно обсуждали. Если нужно больше — либо X, либо fbterm.

UPD упс, выше уже дали ссылку на ту тему.
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение монах Тук »

bormant писал(а):
11.01.2016 21:52
Возьмите ter-v16v или другого размера (ter-v*), можно UniCyrExt*, возможно, необходимое есть в drdos*.
Конечно, попробую. Я уж набросал программу на плюсах, которая в цикле устанавливает шрит консоли и выводит его, дабы посмотреть, какой шрифт что из себя представляет. Псевдокод:

Код: Выделить всё

while ()
   {
     setfont <имя_шрифта>
     showconsolefont
   }


Кстати, был бы рад увидеть свойства шрифта без совершенно какого-то лишнего подсоединения к какому-то там серверу, что требует команда showfonts. Это чтобы мне свойства шрифта увидеть, котоый просто в папочке лежит, нужно к серверу какому-то подсоеиняться. Мда... Ну ладно, щас не об этом.

Возвращаясь к просмотру всех шрифтов в цикле. Заметил, что setfont ведёт себя непредсказуемо и пока с этим не разобрался двльше двигаться не могу.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Имеем файл в NFTS /disk_E/slackware_test/русское_имя_файла. Попробуем его получить. Установим непонятно какой шрифт

Код: Выделить всё

setfont Agafari-16
   ls /disk_E/slackware_test/
          _   _

Получаем вместо "русское_имя_файла" кучу каких-то пробелов. Ну и ладно, тевогу не бьём пока, шрифт-то непонятно какой. Установим нормальный шрифт.

Код: Выделить всё

setfont Cyr_a8x14
   ls /disk_E/slackware_test/
   русское_имя_файла


Так, но пробелы, котоые были после первоо вызова ls /disk_E/slackware_test/, так пробелами и остались, а ведь setfont Cyr_a8x14 должна была поменять шрифт ВО ВСЕЙ КОНСОЛИ, а не только в последующих выводах! То есть вместо пробелов должно было написаться "русское_имя_файла". Не написалось.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Конечно, setfont меняет всю консоль, почти всегда меняет размер. Но написание она меняет непредсказуемо . В приведённом примере ясно было что на что заменить. Кстати, я делал ls /disk_E/slackware_test/ | hexdamp -C (в коде выше нет, дабы не засорять) и дамп строки переданный консоли был одинаков и означал "русское_имя_файла". Но после ызова setfont Cyr_a8x14 я не увидел его изменённым, повторяюсь уже. Почему же, друзья?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

Хм, не думал, что всё настолько плохо.
Маленький ликбез.

Есть у видеоадаптеров Hercules/CGA/EGA/VGA текстовые режимы. В этих режимах отображением образов символов (глифов) занимается видеокарта. При этом в видеопамять на каждое знакоместо записывается 2 байта -- код символа и код атрибутов.

Если вы поменяете содержимое знакогенератора, то в текстовом режиме это отразится на всём содержимом экрана.

Помимо собственно текстовых режимов, Linux поддерживает для консоли графический режим (кадровый буфер, framebuffer). В подобных режимах в видеопамять записывается цвет каждой точки экрана. При выводе теста каждый символ рисуется представляющими его точками в графике. При таком выводе имеет значение только актуальное содержимое знакогенератора на момент вывода символа; после этого в видеопамяти остался только образ этого символа. Смена содержимого знакогенератора на имеющийся вывод никакого влияния не окажет.

Для установки содержимого знакогенератора консоли используется setfont, для вывода содержимого знакогенератора может использоваться showconsolefont. Сразу обращаю внимание, что showfont -- это совершенно другая утилита из состава X-сервера ("иксы"), который в *nix-ах традиционно отрисовывает графические сеансы, к консоли никакого отношения не имеет, кроме того, что работает на отдельной консоли (раньше vt7 и выше, в некоторых теперь на vt1), роли сервера и клиента с точки зрения межпроцессного взаимодействия (IPC - interprocess communication).

По поводу Cей для отображения шрифтов -- это из пушки по воробьям, сценария на bash более чем достаточно, да и выглядит он не сильно сложнее приведенного псевдокода:

Код: Выделить всё

cd /usr/share/kbd/consolefonts
for f in *; do setfont $f; showconsolefont; pause; done



PS. Как говорят самураи, полную чашу не наполнить.
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение монах Тук »

bormant, так у меня, получается, графический режим? Тот самый, при котором
bormant писал(а):
12.01.2016 22:29
Смена содержимого знакогенератора на имеющийся вывод никакого влияния не окажет.
?
Позвольте в таком случае. Я писал уже, что setfont вообще меняет видимое на экране- тот же размер символов, это видно сразу. Но если смена размера символов не есть смена вывода, тот вот смена вывода на экран в чистом виде.

После приведённого кода выполним, например, такую команду:

Код: Выделить всё

setfont lat9-16


Сразу уже имеющаяся и читаемая надпись "русское_имя_файла" сменится на кракозябры. А потом их опятьможно сделать читаемыми (setfont Cyr_a8x14). Или, может, я не понял чего?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

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

А какой именно режим -- это вам виднее. Стартовый прописан в /etc/lilo.conf, параметр vga, далее может отработать KMS (kernel mode setting) по своему разумению или по переданными параметру, может быть загружен какой-либо иной драйвер, установивший режим по своему разумению или по переданными параметру, следы этих действий обычно видны в выводе dmesg.

Текстовые режимы обычно с высотой символа 8, 14, 16.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение NickLion »

монах Тук писал(а):
12.01.2016 21:30
Кстати, был бы рад увидеть свойства шрифта без совершенно какого-то лишнего подсоединения к какому-то там серверу, что требует команда showfonts. Это чтобы мне свойства шрифта увидеть, котоый просто в папочке лежит, нужно к серверу какому-то подсоеиняться. Мда... Ну ладно, щас не об этом.

Могу выложить свою наколеночную программу вечером, которая показывает содержимое консольного шрифта — глифы и символы им соотвествующие. Правда только для PSFv2.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

NickLion
глифы и символы можно посмотреть при помощи psf2txt (psftools).
Этот txt можно поправить любимым текстовым редактором и запаковать в шрифт при помощи txt2psf из того же пакета.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20742
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение Bizdelnick »

bormant
psftools вроде не поддерживают psf2.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
монах Тук
Сообщения: 78
ОС: XP 32 SP3

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение монах Тук »

bormant писал(а):
13.01.2016 00:21
А какой именно режим -- это вам виднее
мне не виднее. Если расширение определяет режим- тогда да. Оноу меня всегда 1280x1024, пытался изменить (в /etc/lilo.conf писал vga=ask, потом при инициализации выбирал предлагаемое из а-ля 80x25 VGA и а-ля 2048x1536x32 VESA), но оно всегда переделывалось в 1280x1024, строчки из dmesg:

..... nouveal [ DRM] allocated 1280x1024 fb: 0x9000, bo f4692c00
...
..... set resolution quirk: cval->res = 384


(что такое 384 (хоть dec, хоть hex) я не понял, в предлагаемом меню для выбора разрешения другие числа)

Короче разрешение устанавливается принудительно. Какой же у меня режим консоли?

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Самое-то главное- поведение setfont. Она при одном и том же вызове умудряется вести себя так, будто у меня два режима одновременно- некоторое предыдущее содержание консоли меняет, а некоторое не меняет.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Небольшим шажком вперёд вижу принудительное установление ну хоть какого-нибудь режима, но явно. То есть явно устанавливаем, например, графический режим и отсюда и пляшем, смотрим как ведёт себя setfont. При инициализации оси это не выходит. Уверен, кто-нибудь из ребят подскажет мне простую команду типа setconsolemode
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Разобраться со шрифтом в консоли (изменить размер для начала)

Сообщение bormant »

Bizdelnick писал(а):
13.01.2016 14:15
psftools вроде не поддерживают psf2.

Код: Выделить всё

$ (cd /var/log/packages/; ls psftools-*)
psftools-1.0.7-i486-1_SBo

$ txt2psf --help
Syntax: txt2psf textfile psffile { options }

Options:

--psf1: Save in PSF1 format.
--psf2: Save in PSF2 format.
Спасибо сказали:
Ответить