From: Ivan Zakharyaschev <imz@altlinux.ru> To: sisyphus@altlinux.ru Subject: [sisyphus] Q: new /sbin/setsysfont works for you? Date: Fri, 7 Feb 2003 21:12:34 +0300 (MSK) Message-ID: <Pine.LNX.4.51L.0302072057180.2489@arrakis.zephyrous> (raw) [-- Attachment #1: Type: TEXT/PLAIN, Size: 1112 bytes --] Hello! Вашему вниманию предлагается скрипт /sbin/setsysfont, который должен попасть в следующие выпуски initscripts. (Он используется при загрузке системы, чтобы настроить шрифты в linux-консоли для работы с основным языком системы.) Если не сложно, потестируйте его, пожалуйста, у себя: всё ли нормально с русским и другими языками в linux-консоли в Вашей конфигурации при использовании нового скрипта. Не надо загружать рассылку большим количеством отзывов. Если всё хорошо, то можно сообщить об этом мне лично (в sisyphus@ писать не надо). Если раньше было плохо, а теперь стало хорошо, то это тем более интересно! -- но написать об этом всё равно лучше мне лично. А если что-то не работает или не понятно, то тогда эффективнее написать об этом в sisyphus@ и попробовать вместе понять, в чём дело. Раньше были проблемы, например, когда /usr монтируется позже. (См. No. 0001048 & 0002083 на bugs.altlinux.ru.) Ещё из нововведний: раздельная загрузка шрифта и ACM (это независмые вещи -- и если одно не получается, другое всё равно может пригодиться.) -- С наилучшими пожеланиями, Иван Захарьящев, Москва [-- Attachment #2: the new script --] [-- Type: TEXT/PLAIN, Size: 3351 bytes --] #!/bin/sh # ALT's /sbin/setsysfont. # Agrees with RH's initscripts-7.06-1. # Last change: by imz@altlinux.ru on 2003 Feb 7. # Source library functions . /etc/init.d/functions EXECPATH=(/bin /usr/bin) # inspired by FindFile() form /etc/init.d/functions (initscripts-5.49-ipl49mdk) FindExec() { local n f d for n in "$@"; do for d in "${EXECPATH[@]}"; do f="$d/$n" if [ -x "$f" ]; then echo "$f" return 0 fi done done return 1 } addLoadableData() { local option="$1" name="$2" type case "$option" in --font) type=psf ;; *) type="${option#--}" ;; esac if [ -n "$name" ]; then args[${#args[@]}]="$option" local found if found="$(FindFile "/etc/sysconfig/console/$name.$type")"; then args[${#args[@]}]="$found" else args[${#args[@]}]="$name" fi fi # An alternative to FindFile() and the corresponding readbility test could be # a test performed by consolechars themselves, like this: # # "$CONSOLECHARS" --no-act "$option" "$f" # # But I don't think such complexity is reasonable here. # imz@altlinux.ru, Feb 2003. } if [ "$LANG" = POSIX -o "$LANGUAGE" = POSIX ]; then SourceIfNotEmpty /etc/sysconfig/i18n fi # Our parameters: readonly SYSFONT UNIMAP SYSFONTACM readonly \ CONSOLECHARS="$(FindExec consolechars)" \ SETFONT="$(FindExec setfont)" if [ -z "$CONSOLECHARS" -a -z "$SETFONT" ]; then echo "${0##*/}: cannot set font because no tools found." >&2 exit 1 fi let 'RETVAL = 0' ############### Set font (+ the map for its encoding) ################# if [ -n "$CONSOLECHARS" ]; then args=() addLoadableData --font "$SYSFONT" addLoadableData --sfm "$UNIMAP" "$CONSOLECHARS" "$@" "${args[@]}" else # if [ -n "$SETFONT" ]; then if [ -n "$SYSFONT" ]; then "$SETFONT" "$SYSFONT" ${UNIMAP:+-u "$UNIMAP"} fi fi || let 'RETVAL |= 1' # Font set. If not, RETVAL & 1. ############## Set ACM ################ # for newer fonts and ACMs it's value is independent of the system font: # stage 1: application --> ACM (charmap -> Unicode) --> Unicode data --> # stage 2: --> Unicode data --> SFM (Unicode -> font encoding) --> data # encoded corresponding to the console font. # # Perhaps this should be done in a separate script. # Another enhancement would be to fall back on $(locale charmap) # (or its lower-case variant) -- but the utilities are in /usr/bin/; # something like this is done only for the Unicode case now. # We examine only LANG here. What about LC_CTYPE, LC_ALL, LANGUAGE # -- they can also indicate a Unicode console. case "$LANG" in *.utf8|*.UTF-8) # In this case, there is no ACM: applications output data # already in Unicode; the first stage is not needed. # The font and SFM has been set already; # unicode_start will use the current settings unicode_start || let 'RETVAL |= 2' exit $RETVAL ;; esac if [ -n "$SYSFONTACM" ]; then if [ -n "$CONSOLECHARS" ]; then args=() addLoadableData --acm "$SYSFONTACM" "$CONSOLECHARS" "$@" "${args[@]}" else # if [ -n "$SETFONT" ]; then "$SETFONT" -m "$SYSFONTACM" echo -ne '\e(K' > /dev/console fi fi || let 'RETVAL |= 2' # ACM set. If not, RETVAL & 2. exit $RETVAL
reply other threads:[~2003-02-07 18:12 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=Pine.LNX.4.51L.0302072057180.2489@arrakis.zephyrous \ --to=imz@altlinux.ru \ --cc=sisyphus@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git