关于字体的使用。

为当前最终发行版之前的所有版本提供支持
回复
头像
oneleaf
论坛管理员
帖子: 10218
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

关于字体的使用。

#1

帖子 oneleaf » 2005-10-21 8:57

写一个脚本,自动搜寻windows分区,复制相关字体到系统文件夹,并完成设置。写了一个简单的抛砖引玉。

代码: 全选

#!/bin/bash

function setfont()
{
 if [ $1 = "" ] ; then
    return 1
 fi 
 
 FONTSDIR=${1}/`ls $1 |grep -i fonts`
 mkdir -p /usr/share/fonts/truetype/windows
 
 ls $FONTSDIR |grep -i tt[fc] | while read FONTNAMES ; do
    echo "copy "$FONTNAMES" to /usr/share/fonts/truetype/windows"
    cp -vu ${FONTSDIR}/${FONTNAMES} /usr/share/fonts/truetype/windows
 done
 chmod -R +755 /usr/share/fonts/truetype/windows
 mkfontscale /usr/share/fonts/truetype/windows
 mkfontdir /usr/share/fonts/truetype/windows
 fc-cache -f 
 return 0
}

MOUNTDIR=/tmp/fontmount
mkdir -p $MOUNTDIR

fdisk -l /dev/[hs]d[a-z] | grep 'NTFS' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS ; do
    umount /dev/$WDISKS
    mount /dev/$WDISKS $MOUNTDIR -t ntfs -o auto,user,nls=utf8     
    WINDIR=`ls $MOUNTDIR |grep -i windows` 
    setfont $MOUNTDIR/$WINDIR
    if [ $0 = 1 ] ; then
       umount /dev/$WDISKS   
       continue
    fi   
    umount /dev/$WDISKS   
    break
done

if [ $0 = 0 ]; then
    mount -a
    exit 0
fi

fdisk -l /dev/[hs]d[a-z] | grep  'FAT' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS ; do
    umount /dev/$WDISKS   
    mount /dev/$WDISKS $MOUNTDIR -t vfat -o auto,user,utf8
    WINDIR=`ls $MOUNTDIR |grep -i windows`
    setfont $MOUNTDIR/$WINDIR
    if [ $0 = 1 ] ; then
       umount /dev/$WDISKS   
       continue;
    fi   
    umount /dev/$WDISKS   
    break
done

if [ $0 = 0 ]; then
    mount -a
    exit 0
fi

exit 1
上次由 oneleaf 在 2005-10-21 10:39,总共编辑 4 次。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#2

帖子 eexpress » 2005-10-21 9:26

能不能使用指定的字体名称加入到字体选择列表呢。一般的字体名称好像都是从字体文件取的,但是取出来的好像很陌生了。
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10218
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

#3

帖子 oneleaf » 2005-10-21 10:41

eexpress 写了:能不能使用指定的字体名称加入到字体选择列表呢。一般的字体名称好像都是从字体文件取的,但是取出来的好像很陌生了。


这个就不知道了,不过好像有系统可以实现,到后来就越听越少了。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#4

帖子 eexpress » 2005-10-21 10:46

提意见

代码: 全选

if [ $1 = "" ] ; then 
    return 1
 fi

这里应该出帮助提示。要不还不知道是执行了还是出错了。

代码: 全选

if [ $1 = "" ] ; then 
zenity --info --title="用法介绍: \
至少需要一个参数,指定字体名。 \
"
   return 1
 fi
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#5

帖子 eexpress » 2005-10-21 10:51

提意见

代码: 全选

fdisk -l /dev/[hs]d[a-z]

没有出错处理

代码: 全选

$ fdisk -l /dev/[hs]d[a-z]
Cannot open /dev/hda
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10218
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

#6

帖子 oneleaf » 2005-10-21 10:53

eexpress 写了:提意见

代码: 全选

if [ $1 = "" ] ; then 
    return 1
 fi

这里应该出帮助提示。要不还不知道是执行了还是出错了。

代码: 全选

if [ $1 = "" ] ; then 
zenity --info --title="用法介绍: \
至少需要一个参数,指定字体名。 \
"
   return 1
 fi


那个是函数调用的,不需要帮助提示,没有参数的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#7

帖子 eexpress » 2005-10-21 10:53

提意见
ntfs和fat的2部分几乎一样。可以用变量混合处理。
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10218
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

#8

帖子 oneleaf » 2005-10-21 10:54

eexpress 写了:提意见

代码: 全选

fdisk -l /dev/[hs]d[a-z]

没有出错处理

代码: 全选

$ fdisk -l /dev/[hs]d[a-z]
Cannot open /dev/hda


不需要处理,我只要存在的windows分区
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#9

帖子 eexpress » 2005-10-21 10:54

那就是下面函数体后,还是加个参数判断提示。
● 鸣学
头像
oneleaf
论坛管理员
帖子: 10218
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

#10

帖子 oneleaf » 2005-10-21 10:55

eexpress 写了:提意见
ntfs和fat的2部分几乎一样。可以用变量混合处理。


挂载的参数不一样,一起写还是要区分,算了。
头像
oneleaf
论坛管理员
帖子: 10218
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04
送出感谢: 7 次
接收感谢: 102 次

#11

帖子 oneleaf » 2005-10-21 10:56

eexpress 写了:那就是下面函数体后,还是加个参数判断提示。

一运行就设置好了,不用什么参数的。
flying_ych
帖子: 10
注册时间: 2005-06-16 17:26
送出感谢: 0
接收感谢: 0

#12

帖子 flying_ych » 2005-10-30 9:19

eexpress 写了:能不能使用指定的字体名称加入到字体选择列表呢。一般的字体名称好像都是从字体文件取的,但是取出来的好像很陌生了。

我也很想知道!
回复

回到 “老旧版本支持”