Add New Notes
56
Zim/Linux/Archlinux/Font.txt
Normal file
@@ -0,0 +1,56 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-03-27T19:03:01+08:00
|
||||
|
||||
====== main chinese fonts ======
|
||||
Created Sunday 27 March 2011
|
||||
http://hivelogic.com/articles/top-10-programming-fonts
|
||||
|
||||
Chinese, Japanese, Korean, Vietnamese
|
||||
(Mainly) Chinese
|
||||
|
||||
** ttf-arphic-ukai **- Kaiti (brush stroke) Unicode font (enabling anti-aliasing is suggested)
|
||||
**ttf-arphic-uming **- Mingti (printed) Unicode font
|
||||
**ttf-fireflysung** - New Sung font
|
||||
**wqy-zenhei **- Hei Ti Style (sans-serif) Chinese Outline font embedded with bitmapped Song Ti (also supporting Japanese (partial) and Korean characters).
|
||||
** wqy-bitmapfont** - Bitmapped Song Ti (serif) Chinese font
|
||||
**ttf-hannom-usong **- Song Ti quality TrueType fonts for Unicode Han and Nom (Chinese and Vietnamese) characters (AUR)
|
||||
**ttf-dejavu **-Font family based on BItstream Vera Fonts
|
||||
**ttf-fireflysung** --firefly embedded bitmap font
|
||||
**ttf-freefont** --A set of free high quality TrueType fonts
|
||||
**ttf-inconsolata-g** --monospace font for pretty code listings and for the terminal
|
||||
**ttf-ms-fonts**
|
||||
ttf-vista-fonts — Consolas a best coding fonts
|
||||
monaco-linux-font -- 苹果提供的字体和inconsolata、consolas一样比较适合编程
|
||||
|
||||
**ttf-mac-fonts — apple fonts:**
|
||||
ttf-mac-fonts /usr/
|
||||
ttf-mac-fonts /usr/share/
|
||||
ttf-mac-fonts /usr/share/fonts/
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/AppleGaramond-Bold.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/AppleGaramond-BoldItalic.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/AppleGaramond-Italic.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/AppleGaramond-Light.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/AppleGaramond-LightItalic.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/AppleGaramond.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/HardGothicNormal.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/Lucida Console.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/Lucida Grande Bold.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/Lucida Grande.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/Lucida MAC.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/TTF/Lucida Sans Unicode.ttf
|
||||
ttf-mac-fonts /usr/share/fonts/Type1/
|
||||
ttf-mac-fonts /usr/share/fonts/Type1/Lucida G.pfb
|
||||
ttf-mac-fonts /usr/share/fonts/Type1/Lucida Gr Regular.pfb
|
||||
ttf-mac-fonts /usr/share/fonts/Type1/Lucida MAC Bold.pfb
|
||||
ttf-mac-fonts /usr/share/fonts/Type1/Lucida MAC.pfb
|
||||
ttf-mac-fonts /usr/share/fonts/Type1/MACGrande.pfb
|
||||
ttf-mac-fonts /usr/share/licenses/
|
||||
ttf-mac-fonts /usr/share/licenses/ttf-mac-fonts/
|
||||
ttf-mac-fonts /usr/share/licenses/ttf-mac-fonts/SafariWindows.pdf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
119
Zim/Linux/Archlinux/Font/Font_config_for_archlinux.txt
Normal file
@@ -0,0 +1,119 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-10-15T19:51:41+08:00
|
||||
|
||||
====== Font config for archlinux ======
|
||||
Created Saturday 15 October 2011
|
||||
|
||||
write fellow content in [[/etc/fonts/local.conf]]
|
||||
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
||||
<fontconfig>
|
||||
|
||||
<alias>
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>Bitstream Vera Serif</family>
|
||||
<family>Times New Roman</family>
|
||||
<family>Nimbus Roman No9 L</family>
|
||||
<family>Luxi Serif</family>
|
||||
<family>Times</family>
|
||||
<family>WenQuanYi Bitmap Song</family>
|
||||
<family>AR PL ShanHeiSun Uni</family>
|
||||
<family>AR PL New Sung</family>
|
||||
<family>AR PL ZenKai Uni</family>
|
||||
<family>Ming(ISO10646)</family>
|
||||
<family>Kochi Mincho</family>
|
||||
<family>Baekmuk Batung</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>Bitstream Vera Sans</family>
|
||||
<family>Verdana</family>
|
||||
<family>Arial</family>
|
||||
<family>Tahoma</family>
|
||||
<family>WenQuanYi Bitmap Song</family>
|
||||
<family>AR PL ShanHeiSun Uni</family>
|
||||
<family>AR PL New Sung</family>
|
||||
<family>AR PL ZenKai Uni</family>
|
||||
<family>Helvetica</family>
|
||||
<family>Ming(ISO10646)</family>
|
||||
<family>Kochi Gothic</family>
|
||||
<family>Baekmuk Dotum</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Bitstream Vera Sans Mono</family>
|
||||
<family>Courier</family>
|
||||
<family>Courier New</family>
|
||||
<family>Andale Mono</family>
|
||||
<family>Luxi Mono</family>
|
||||
<family>Nimbus Mono L</family>
|
||||
<family>WenQuanYi Bitmap Song</family>
|
||||
<family>AR PL ShanHeiSun Uni</family>
|
||||
<family>AR PL New Sung</family>
|
||||
<family>AR PL ZenKai Uni</family>
|
||||
<family>Ming(ISO10646)</family>
|
||||
<family>Kochi Mincho</family>
|
||||
<family>Baekmuk Batung</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
|
||||
<match target="font" >
|
||||
<test compare="eq" name="family" qual="any" >
|
||||
<string>AR PL New Sung</string>
|
||||
<string>AR PL ShanHeiSun Uni</string>
|
||||
<string>AR PL ZenKai Uni</string>
|
||||
<string>AR PL Mingti2L Big5</string>
|
||||
<string>AR PL SungtiL Big5</string>
|
||||
<string>MingLiu</string>
|
||||
<string>PMingLiu</string>
|
||||
</test>
|
||||
<test compare="more_eq" name="pixelsize" >
|
||||
<double>8</double>
|
||||
</test>
|
||||
<test compare="less_eq" name="pixelsize" >
|
||||
<double>15</double>
|
||||
</test>
|
||||
<edit name="antialias" >
|
||||
<bool>false</bool>
|
||||
</edit>
|
||||
<edit name="hinting" >
|
||||
<bool>true</bool>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
|
||||
<match target="font" >
|
||||
<edit mode="assign" name="autohint"> <bool>true</bool></edit>
|
||||
<edit mode="assign" name="hinting"> <bool>false</bool></edit>
|
||||
<edit mode="assign" name="lcdfilter"> <const>lcddefault</const></edit>
|
||||
<edit mode="assign" name="hintstyle"> <const>hintslight</const></edit>
|
||||
<edit mode="assign" name="antialias"> <bool>true</bool></edit>
|
||||
<edit mode="assign" name="rgba"> <const>rgb</const></edit>
|
||||
</match>
|
||||
|
||||
<match target="font">
|
||||
<test name="pixelsize" qual="any" compare="more"><double>15</double></test>
|
||||
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
|
||||
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit></match>
|
||||
|
||||
<match target="font">
|
||||
<test name="weight" compare="more"><const>medium</const></test>
|
||||
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
|
||||
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit></match>
|
||||
|
||||
<match target="font">
|
||||
<test name="slant" compare="not_eq"><double>0</double></test>
|
||||
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
|
||||
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit></match>
|
||||
|
||||
</fontconfig>
|
||||
252
Zim/Linux/Archlinux/Font/linux字体详解.txt
Normal file
@@ -0,0 +1,252 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-05-28T14:11:25+08:00
|
||||
|
||||
====== linux字体详解 ======
|
||||
Created Saturday 28 May 2011
|
||||
http://blogold.chinaunix.net/u2/63996/showart_702667.html
|
||||
警告
|
||||
万一本文有更新的版本, 也许可以在 http://fractal.csie.org/~eric/fontconfig 找到,任何使用本文中提及的方法所造成之社会成本损失将不会被负责。
|
||||
|
||||
引言
|
||||
「为什么我把 xxx 升了之后字就变难看了?」
|
||||
「X 的字真是又丑又难设」
|
||||
|
||||
「Fontconfig Xft Freetype 到底是什么关系啊!?!?」
|
||||
|
||||
屏幕上的字是用计算机的人整天会看到的,而用屏幕上有限的像素来有效显示文字,又要提高文字的可读性一直不容易。除了点阵字外,早在 80 年代就有的 anti-alias 也使得情况变得很复杂,即使已经过了 20 年,由于
|
||||
|
||||
1、各人的视觉喜好不同 - 没有一种样式可以使每一个人都满意
|
||||
2、不同的操作环境与平台以及显示用的装置 (CRT || LCD)
|
||||
3、多国语言文字的同时显示
|
||||
所以能够随着自己的喜好而设定的字型是挺重要的。在各家 X desktop, toolkit 与浏览器的战国时代,前后出现了许多解决方案,而 Fontconfig 是到目前为止,算是广为被支持的一种新的不错的方式,姑且一试,也许它还不能完全令你满意,不过比起从前是来得有弹性多了。
|
||||
|
||||
Fontconfig
|
||||
晚近的 XFree86 除了有了 freetype 的内建,加强了对于 TrueType 等向量字型的支持外,最近 Keith Packard 的 Xft 与 Fontconfig 也是一个对于字型整合所做的尝试,在最新的 XFree86 4.3.x 与 freetype/Xft2/Fontconfig 的支持下,X 下的程序对于一个统一的字型选择与绘制接口又进了一步。
|
||||
虽然 XFree86 本身包含 Fontconfig, Fontconfig 事实上是一个可以独立出来的接口,它是一个 library 不是一套 user app, 它所做的就是提供一套 font matching 的机制,让使用 Fontconfig 的程序可以不必自己实作一套字型的选取方法。如此只要使用 Fontconfig 的程序愈多,单一的一套设定档就可以被用在愈多的应用程序,应用程序本身可以利用 Fontconfig 所得到的字型名称去画字,也可以架构在自己原先的字型选择架构之上 (如 Qt), 以达成对旧的设定的一定的向后兼容性。
|
||||
|
||||
Fontconfig 有许多好处,例如:
|
||||
|
||||
字型的安装。与其把要用的字型拿来放在一个目录, 然后用 ttfmkdir / defoma / ttfm 等东西生出 fonts.dir 再指给 xtt/freetype, 再重新启动 X font server 或 xset fp rehash, 现在只要把字型丢或 symlink 到 ~/.fonts 或任何其它经过指定的目录, 就可以 _立即_ 开始使用了。当然在使用没有支持 Fontconfig 的程序时, 仍然要用传统的方法。Fontconfig 除了可以吃 TrueType, 也可以吃 Type1 或 pcf 等等传统的点阵字。
|
||||
字型 matching 的设定。虽然 Fontconfig 已经附上了一套不错的设定档让在未被设定的情况下也都能够有一个可以使用的系统,但其实对于个别字型的设定更有弹性。这个是透过 Fontconfig 所使用的 xml 设定档达成的。稍后再说。
|
||||
Fontconfig 会尽可能找出一套字,可以满足显示不同语言的需求。
|
||||
|
||||
Xft
|
||||
Xft 也是一套 library, 它使用 Fontconfig match 到了所要的字型之后, 来决定该如何画这些字。Xft 会看情况而决定要不要使用 core protocol 或 XRender 来画字。XRender 是 XFree86 4.x 新增的 extension, 我认为这是为了保留 X 的向后兼容性所新增的一个 hack, 不过因为它可以用来画 anti-aliased 的字,目前的使用愈来愈广泛。不过 anti-aliased text 只有在使用向量字型的时候有用, 绘制点阵字的时候就要使用 core lib. Core library(以 x-truetype 或 freetype 作为 backend)自然也是可以画向量字,只不过画出来的就不能有 anti-aliased 的效果了。
|
||||
有时当 XRender 不能使用时(如你是透过网络用一个旧的 X server 来执行 X apps), Xft 也可以使用 core lib 来画字。应用程序不必为这些问题操心,达到信息隐藏、各谋其政的目的。
|
||||
|
||||
|
||||
Freetype
|
||||
Freetype 是一个很棒的画字函式库,XFree86 4.3 内含了 2.1.2. Freetype 提供 Xft 如何画字的信息,包括处理 anti-aliasing 或 hinting. 因此 freetype 的改变会影响到 Xft 画出来的字,而 Fontconfig 的改变会影响到 Xft 如何去选字来画。
|
||||
|
||||
fonts.conf
|
||||
这里所讲的就是最新的 Fontconfig 与 Xft2 的设定。对于旧的 Xft1.0 的 ~/.xftconfig 就不提了。
|
||||
如果你装了 fontconfig, 那么它应该已经附上了一套预设的设定档。可以到 /etc/fonts/ (一些 Linux distributions) 或 /usr/X11R6/etc/fonts (一些 BSD flavors) 底下找找看 fonts.conf 这个档案。
|
||||
|
||||
fonts.conf 是简单的 xml 格式,在 etc/ 里面的 fonts.conf 是 system-wide 的设定,一般不建议直接更改它,可以更改 local.conf 或是自己家目录下面的 ~/.fonts.conf . 关于 fonts.conf 的各种语法,由于 manpage 里头已经写得很详尽,所以这里只是提及比较重要的一些部份,有兴趣者可以 man fonts-conf. 所有的设定都放在 <fontconfig> 与 </fontconfig> 之间,而其中可以包含许多 tags, 详细的 tags 可以参照 fonts.dtd 或者是 manpage.
|
||||
|
||||
<dir> 里面是一个路径,fontconfig 会自己递归地去找这个路径里头的所有字型,如: <dir>/foo/bar/myfonts</dir>
|
||||
|
||||
可以把其它的设定档引进来,它们的格式是一样的。
|
||||
|
||||
其中最重要的 element 应该是 <match> 了。match 主要有两种用法, 一种是 pattern match, 另一种是 font match. 前者会把所有的字型 match 出来,所以针对它的更改会套用到所有的字型的选择方式上。为什么要更改字型的属性? 因为这样可以针对个别的字型告诉 Fontconfig 该如何去处理这些字型,或是告诉 renderer 该如何去画这些字型。这里是一些常用到属性的列表,关于所有的属性请洽 manpage:
|
||||
|
||||
|
||||
family - String - 就是一般所看到的字型的名称了, 如 Arial
|
||||
style - String - 字型的 style, 像是 Regular, Bold, Italic...
|
||||
spacing - Int - 字型的宽度, Proportional 是有不同的宽度, monospace 是单一的宽度 (如 terminal 的字型)
|
||||
antialias - Bool - 决定该字型是否要被 anti-alias 绘制; 只能用在向量字型上
|
||||
hinting - Bool - 决定该字型是否要打开 hinting
|
||||
autohint - Bool - 决定是否要用 Freetype 自己的 hint 方法来 hint 字型, 还是用预设的方法来 hint
|
||||
rgba - Bool - 决定是否要用 subpixel 的方式来画字, 可以是 none (只用灰阶), rgb, bgr, vrgb, vbgr
|
||||
Hinting 用来最佳化字型显示的方法。由于屏幕的像素有限,向量字型的缩放需要有更多的考虑, 例如当一条线位在两个像素格子中间时, 该取左边的格子还是右边的格子? 如果这方面的控制没有做好,就常常会出现字型的衬线没有对齐,或是小字歪七扭八的情况。 Hinting 是额外的信息, 它告诉 renderer 该如何处理这些细节的部份,使得向量字在小字的时候能够好看。也因此 Hinting 是非常费时费人力的工作,TrueType 字型很多,但是有良好 Hinting 的字型不多。拙劣的 Hinting 就会让字变得很难看。
|
||||
|
||||
为了稍微改善这个问题,freetype 有 autohint 的功能,可以自动为没有 hint 的字型做 hinting 的工作。另外由于 TrueType 的 hinting 是有专利的,不能完全自由地使用, autohint 就不受这个限制。autohint 自然无法做得像人力的 hint 一样好,不过至少比没有 hint 要好些。话虽如此,对于许多笔划复杂的文字 (如中文) 目前 freetype 的 autohint 还做得不甚完美,而因为建立完整的 hinting 的难度,即使是英文字,原本就很高,内建有 hinting 的中文字型就少之又少了。所以常常有人抱怨中文字在屏幕上很难看,就是没有理想 hinting, 或者是使用了 autohinter 所造成的一些反效果。
|
||||
|
||||
Anti-alias 是将字型在幕后先以数倍的大小来绘制,然后再缩成想要的大小,未满一格的格子用灰阶补点。由于原本 X 所支持的 logic 运算不敷使用,所以才用 XRender 的 extension 来达成目的。除了一般的 Anti-alias 之外,Xft 还支持了为 LCD 所设计的 subpixel rendering.
|
||||
|
||||
什么是 subpixel rendering? 如果你用放大镜去看 LCD, 会发现一个正方形的像素是由三个长方形小像素构成的。这排列通常是红绿蓝,也就代表如果液晶屏幕的水平分辨率是 1024 个像素,它其实有 1024x3 = 3072 个点,只不过这些点是 rgbrgbrgb... 依序排列的。以白底黑字为例,如果需要满格的像素,rgb 三格就需是全关 (0,0,0), 如果只是右边三分之二部份, 就关掉 g 和 b, 留下最左边的 r 开着。这样子理论上就会有原来三倍的水平像素可以使用,大幅增加了液晶屏幕的分辨率。但由于只开着红色或黄色或其它颜色,会有很明显的光晕,所以一般会采用 filtering 的方式,把一个次像素的值往左右两格分散(因为无论对哪一格次像素来说,它的左右两格的颜色和本身都是不同的,所以往左右两格分散可以均匀影响亮度),成为 1/3, 1/3, 1/3 分布;但这样的坏处是会显得太模糊了一点,于是再多一层,把原先三格分成 5 格,但权重改为 1/9 2/9 3/9 2/9 1/9。3/9 那一格就是原本的次像素,而邻近的格子就用这样的方法分散后和原来该次像素格子的光度值相加,达到像素往中央集中,却又不太模糊的效果。Windows XP 有个 ClearType 选项可以打开对液晶屏幕显示最佳化,其基本原理就是 subpixel rendering. Xft 也有这样的功能,不过 Xft 做得更多,除了 subpixel 外,还加上了 anti-aliasing。Fontconfig 的 rgba 选项就是设定液晶屏幕次像素的排列方式,一般都是 rgb, v 开头的表示三种颜色是纵向排列。如果好奇的话可以拿放大镜仔细瞧瞧,或用数字相机近拍下来放大观察。
|
||||
|
||||
很多问题是出在 hinting, 因为许多时候, distribution 会把 freetype 的 bytecode hinting 打开,代表使用字型内部的 bytecode 来做 hinting 修正,如果像 freetype 预设没有打开或是使用 freetype 里头的 autohinter, 有时效果不错,有时却不尽人意。另外 hinting 费时费力,大部分的字型设计师在做 hinting 的时候都只有针对点阵字的显示做 hinting 的工作,这表示如果我们在显示小字又用 anti-aliasing 的话,通常是不在字型设计师最佳化的范围内的; 当 hinting 不当的时候,小字 anti-aliasing 就会显得非常难看(如歪七扭八或挤成一团)。关于这方面 freetype 做了很多的努力, autohinter 也就是让程序自己做 hinting 的算法。由于 hinting 实在是个很棘手的问题,Mac OS X 对于 anti-aliasing 字型就都不使用 hinting. 好在 fontconfig 可以让我们调整这些细部的设定,让我们针对个别的字型做不同的处理。
|
||||
|
||||
话题回到 pattern match: 要使用 pattern match, 只需要加入如下的 pattern, 它就会对所有的字型作用:
|
||||
|
||||
<match target="pattern">
|
||||
...
|
||||
</match>
|
||||
中间放的可以是一连串的 test, 然后是一连串的 edit. test 的用法是:
|
||||
|
||||
|
||||
<test qual="any|all|first|not_first"
|
||||
name="属性"
|
||||
compare="eq|not_eq|less|less_eq|more|more_eq|contains|not_contains">
|
||||
值
|
||||
</test>
|
||||
any 指的是说, 只要字型的该属性 list 之中有一项有符合要 test 的值, test 就会成立。all 的话要 list 之中所有的都符合,first 要第一个符合, not_first 要除了第一个以外有符合的。通常只会用到 any, 预设也是 any. name 里面填的就是前面所提的属性, 如 name="family". compare 是比较的条件, eq 是相等, less 是小于, 以此类推。 <test> 所包住的那个值就是要用来比较的值,包括: int, double, string, matrix, bool 等等。一旦 test 的条件都成立, 就会进行到 edit 的阶段,代表编辑符合条件上述 test 条件的属性:
|
||||
|
||||
|
||||
<edit name="属性"
|
||||
mode="assign|assign_replace|prepend|append|prepend_first|append_last">
|
||||
值
|
||||
</edit>
|
||||
注意在 fontconfig 中, 属性 (property) 可以是一个 list, 亦即一个属性可有许多的值。 assign 是说把 match 到的值取代掉, assign_replace 是说把该 list 的所有值取代成指定的值, prepend 则是插在 list 中被 match 到的那个值的前头, 以此类推。
|
||||
|
||||
fonts.conf 里面有一个范例:
|
||||
|
||||
|
||||
<match target="pattern">
|
||||
<test name="prefer_outline">
|
||||
true
|
||||
</test>
|
||||
<test name="family">
|
||||
<string>Times</string>
|
||||
</test>
|
||||
<edit name="family" mode="prepend" binding="same">
|
||||
<string>Times New Roman</string>
|
||||
</edit>
|
||||
</match>
|
||||
这个 pattern match 是说, 当 prefer_outline 的值是 true 的时候, 而且字型的 family 又叫做 Times, 那么就把它的 family list 前面加入 Times New Roman。这样做的原因是, Times 本身是点阵字, 如果希望在许多应用程序指定用 Times 显示时, 不要用点阵字显示, 而要用 Times New Roman 这个 TrueType 字型显示, 这样可以把 Times New Roman 的优先权提在 Times 的前面。 Family matching 是另一种 match 方法,它的用法和 pattern matching 差不多,只是它是针对个别字型的属性作修改,用法是:
|
||||
|
||||
|
||||
<match target="font">
|
||||
...
|
||||
</match>
|
||||
举个例子,如果我想让所有字型预设能够打开 anti-aliasing, hinting 并且使用 subpixel rendering, 我就写:
|
||||
|
||||
|
||||
<match target="font">
|
||||
<edit name="antialias">true</edit>
|
||||
<edit name="rgba" mode="assign"><const>rgb</const></edit>
|
||||
<edit name="hinting">true</edit>
|
||||
</match>
|
||||
但是我可能觉得 Luxi Mono 这个字型在某些时候, subpixel 不太好看, 我就写:
|
||||
|
||||
|
||||
<match target="font">
|
||||
<test name="family"><string>Luxi Mono</string></test>
|
||||
<edit name="rgba"><const>none</const></edit>
|
||||
</match>
|
||||
|
||||
FAQ
|
||||
Q. 我手上有很多 ttf, 我要怎么装它们?
|
||||
|
||||
前面说过啦, 把它们全部丢到 ~/.fonts/ 里头去吧。做 symbolic link 也可以。丢完之后就跑一下 fc-list 列出所有已安装的字型看看有没有在里面。
|
||||
Q. 我装好了字型, 可是我的程序 (rxvt, aterm, gtk1.x) 却不能使用它们?
|
||||
|
||||
|
||||
因为这些程序是使用 X 的 core fonts, 不是使用 fontconfig 也没有支持 Xft, 就没有办法享受这样的便利,不过还是可以透过传统的方式来装这些字型。新的 gtk2, Gnome2, mlterm, Mozilla (Firebird), Qt3.x 都支援了 fontconfig。
|
||||
Q. 我想要使用新细明体,可以吗?
|
||||
|
||||
|
||||
可以, 把 mingliu.ttc 丢到 ~/.fonts 就行了。
|
||||
Q. 我想要像 Windows 上小字那样的新细明体,那是怎样办到的呢?为什么在一些大小,新细明体的笔划会破碎呢?
|
||||
|
||||
|
||||
(新) 细明体在 11, 12, 13, 15, 16, 20 点的大小有特别做内嵌的点阵字,换句话说,由于中文字的 hinting 不易,有时点阵字会比较有效。又因为新细明体使用了 bytecode 来组合笔划, 没有编进 bytecode interpreter 的 freetype 版本在 render 的时候,就会碎掉。请确定您系统上 freetype2 的 source 之中, include/freetype/config/ftoption.h 里面的 #defineTT_CONFIG_OPTION_BYTECODE_INTERPRETER 是不是有打开。也不可以使用内建的 autohinter. 由于是上述几个特定的大小是内建点阵字型,所以没有被 bytecode interpreter 影响。
|
||||
|
||||
确定了 freetype 有编进 bytecode interpreter 之后, 设定让新细明体在这些大小时显示内建的点阵字而不要用 anti-aliased, 可以在 ~/.fonts.conf 加入:
|
||||
|
||||
<match target="font">
|
||||
<test name="family"><string>PMingLiU</string></test>
|
||||
<edit name="antialias">true</edit>
|
||||
<edit name="hinting">true</edit>
|
||||
<edit name="autohint">false</edit>
|
||||
</match>
|
||||
<match target="font">
|
||||
<test name="family"><string>PMingLiU</string></test>
|
||||
<test name="size" compare="less_eq">12</test>
|
||||
<edit name="antialias" mode="assign">false</edit>
|
||||
<edit name="hinting" mode="assign">true</edit>
|
||||
</match>
|
||||
|
||||
Q. 我的细明体 (MingLiU) 的英文字和中文字会等宽?
|
||||
|
||||
|
||||
因为 MingLiU 宣称自己是 monospaced 字型,但实际上它有两种宽度:中文的全角以及英文的半角。于是 freetype 就被骗了; 同样的事情也发生在其它华康的一些字型上。Freetype 有个 globaladvance 的 flag:
|
||||
|
||||
<match target="font">
|
||||
<test name="family"><string>MingLiU</string></test>
|
||||
<edit name="globaladvance">false</edit>
|
||||
</match>
|
||||
|
||||
万一因为不明的原因, 这样做没有用, 那么还可以改 spacing:
|
||||
|
||||
<match target="font">
|
||||
<test name="family"><string>MingLiU</string></test>
|
||||
<edit name="spacing">0</edit>
|
||||
</match>
|
||||
|
||||
0 是 proportional 的 spacing, 100 是 mono, 110 是 charcell.
|
||||
Q. 我想要把 Gnome2 选单的中英文字型分开设。
|
||||
|
||||
|
||||
Gtk2 可以使用两组特殊的 alias: Sans 和 Serif. Sans 是无衬线的意思,也就是如 Arial, Verdana 等等边缘是方的字。Serif 则是有衬线的字,如 Times. 由于 fontconfig 有字型取代的机制, 可以修改 /etc/fonts/fonts.conf 里面的这一段:
|
||||
|
||||
相关:
|
||||
Screenshot
|
||||
|
||||
<alias>
|
||||
<family>Bitstream Vera Sans</family>
|
||||
<family>Helvetica</family>
|
||||
<family>Arial</family>
|
||||
<family>Verdana</family>
|
||||
<family>Nimbus Sans L</family>
|
||||
<family>Luxi Sans</family>
|
||||
<family>Kochi Gothic</family>
|
||||
<family>PMingLiU</family>
|
||||
<family>AR PL KaitiM GB</family>
|
||||
<family>AR PL KaitiM Big5</family>
|
||||
<family>Baekmuk Dotum</family>
|
||||
<family>SimSun</family>
|
||||
<default><family>sans-serif</family></default>
|
||||
</alias>
|
||||
|
||||
与这一段:
|
||||
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
|
||||
<family>Bitstream Vera Sans</family>
|
||||
<family>Verdana</family>
|
||||
<family>Nimbus Sans L</family>
|
||||
<family>Luxi Sans</family>
|
||||
<family>Arial</family>
|
||||
<family>Helvetica</family>
|
||||
<family>Kochi Gothic</family>
|
||||
<family>PMingLiU</family>
|
||||
<family>AR PL KaitiM GB</family>
|
||||
<family>AR PL KaitiM Big5</family>
|
||||
<family>Baekmuk Dotum</family>
|
||||
<family>SimSun</family>
|
||||
|
||||
</alias>
|
||||
|
||||
把想要加入替换 list 的字型加进去。排愈前面的字型, 在当他有符合要显示的语言的文字的时候就会被用上,如我把 PMingLiU 设在文鼎字型前面,PMingLiU 就会在需要显示中文的时候优先被选到。当然严格来说,PMingLiU 并不能算是 Sans-serif 而要算是 serif, 但因为我要跟 Bitstream Vera Sans 搭配,故放在一起。
|
||||
Q. 我遇到了奇怪的问题,可是不知从何找起,怎么办?
|
||||
|
||||
|
||||
XFT_DEBUG 这个环境变量可以显示不同的侦错信息,打开一个 terminal, 把 XFT_DEBUG 设在要执行的程序之前,也许它可以帮助你找到问题。其中可以设的数值有:
|
||||
|
||||
XFT_DBG_OPEN 1
|
||||
XFT_DBG_OPENV 2
|
||||
XFT_DBG_RENDER 4
|
||||
XFT_DBG_DRAW 8
|
||||
XFT_DBG_REF 16
|
||||
XFT_DBG_GLYPH 32
|
||||
XFT_DBG_GLYPHV 64
|
||||
XFT_DBG_CACHE 128
|
||||
XFT_DBG_CACHEV 256
|
||||
XFT_DBG_MEMORY 512
|
||||
|
||||
要同时开启某几个侦错选项,就把它们的值相加就可以了。如 XFT_DEBUG=3 mozilla 就是以开启第一和第二选项的模式来开启 mozilla. 有趣的是,当 GLYPH 和 GLYPHV 同时开启时, Xft 会在 console 用 ascii art 印出它所画的字
|
||||
Q. 我手上的字型都很难看。有什么比较不错的字型?
|
||||
|
||||
|
||||
英文字型来说, Bitstream Vera Sans, Bitstream Vera Serif, Bitstream Vera Mono 都是高质量又是 free 的字型。Bitstream Cyberbit 可以免费取得(现在已经不是免费的了),又有颇完整的 Unicode coverage, 包含中日韩等等的字集。另外 Microsoft 和 Monotype 买的 Verdana, Times New Roman 等等也都具有漂亮的 hinting; Kochi Gothic 和 Kochi Mincho 是高质量的 free 日文字型。Arial Unicode MS 的 Unicode coverage 也很大,只是这套字型为了这么大的 coverage, 相对地在许多地方,如笔划与外观,就必须做出一些牺牲。如果要拿来看中文的小字的话,目前最好把 hinting 关掉(中文字型大部分把 hinting 关掉会有比较令人高兴的外观,除了新细明体是一定要打开以外)
|
||||
Q. 这份 FAQ 实在太没有帮助了。我要找的问题都找不到。很多地方都写错了。
|
||||
|
||||
如果有写错的地方,为免再造成误导,也请不吝指正。这里是 wiki, 也可以直接点上面的 Edit this page 来加入自己的修改。
|
||||
Q. 我照着这些方法设却不能动。一切都太麻烦了!
|
||||
|
||||
要让一切合自己的意要付出一定的代价。或许你可以找到一个会设的人,请他吃一顿饭或什么的,然后找他来帮你照你的意思设。
|
||||
|
||||
53
Zim/Linux/Archlinux/Font/也谈编程等宽字体.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-09-24T14:24:06+08:00
|
||||
|
||||
====== 也谈编程等宽字体 ======
|
||||
Created Saturday 24 September 2011
|
||||
http://be-evil.org/post-42.html
|
||||
作为程序开发者,每天打交道最多的就是程序代码了,而每天读写几千行的代码让眼睛很容易产生疲劳,我自己对此已经是深恶痛绝了.为了保护自己眼睛同时提高自己的代码读写效率,显然是要从显示程序代码的字体入手.下面讲讲我编程多年以来代码字体的选择之路
|
||||
|
||||
目前很多人都还在使用宋体作为自己IDE的程序显示字体,这个字体英文和数字的显示显然让我不敢恭维,看上十五分钟眼睛都酸胀到不行...
|
||||
|
||||
{{./宋体.gif.bmp}}
|
||||
宋体代码显示样子,单独看估计也看不出什么效果
|
||||
|
||||
我对编程字体的要求比较高:字体大小要适中、字体必须是等宽,能轻松的分辨0,O,间距适中,才方便识别的条件下尽可能的显示更多的代码行数,下面就是我的个人比较推荐的等宽编程字体:
|
||||
|
||||
首先出场:Courier New
|
||||
{{./courier-new.gif}}
|
||||
Courier New 是老牌的经典等宽编程字体了,Windows系统自带,很多代码编辑器默认的字体都是它,程序的教科书上也能经常看到它的身影。经典归经典但是我却不太喜欢它,用10px的吧,无论是液晶还是CRT显示器下都显的毛呼呼的,辨认起来很困难眼睛容易疲劳,用11px吧,字体几乎大了50%,本来字体间距就很宽,一变大,屏幕可视范围内无论是横向还是纵向就没有多少代码能看到了。没办法,用了一段时间后淘汰了它。
|
||||
|
||||
Fixedsys
|
||||
{{./fixedsys.bmp}}
|
||||
Fixedsys是和Courier New一样经典的字体,Windows系统自带,很多开发者都在用它,它属于点阵型字体,方方正正。但是由于是点阵字体,字体很粗且符号显示很难看,特别是复杂点的正则表达式读起来真是要我命3000.用了一段时间后淘汰...继续寻找。。
|
||||
|
||||
Consolas
|
||||
{{./consolas.bmp}}
|
||||
Consolas是2005年微软随着VS.NET 2005发布的一款专用编程字体,凭着“专用”这2个字就让我使用了它很久,等宽,字体粗细均匀,用起来的确很不错。不过很可惜它也没让我坚持下来,原因有下:11px大小下__粗体爆丑__,完全和不粗的时候是2个样子,感觉就像发福了的美女。然后括号过高,多行代码开起来没有整齐的美感(天哪,我太完美主义了。。),在我变态的要求下,Consolas也被我pass了
|
||||
|
||||
Lucida Console
|
||||
{{./lucida-console.bmp}}
|
||||
Lucida Console也是Windows自带的一款经典等宽字体,字体大小适中,字形美观大方,我看到时非常喜欢,但是使用一段时间后发现一个严重的问题:__字行距太紧__,2行代码之间几乎只有1px的距离,看多行代码时感觉一堆字符挤在一起十分难受,没办法,淘汰。。。
|
||||
|
||||
Monaco
|
||||
{{./monaco.bmp}}
|
||||
Monaco据说是来自Mac的一位美女,认识她时我就深深的喜欢上了它,优雅的字体和符号让我使用了很久,但是用久了以后苛刻的我又挑出2个理由淘汰了它:__字体过于细长__,比起其他的字体识别起来要长,长时间阅读容易疲劳。__字体行距距过长__,与Lucida Console相反,Monaco行距相当高,加上字体本身就是细长的,导致一个页面显示行数比其他字体最多少出10行之多,每天我就不知道要多转多少次鼠标滚轮,所以。。淘汰。。(但是archlinux中有修正的版本。)
|
||||
|
||||
最后 Lucida Sans Typewriter
|
||||
{{./lucida-sans-typewriter.bmp}}
|
||||
它与Lucida Console本是同根生,拥有着Lucida家族的所有长处,而且最好的地方就是解决了Lucida Console行距过短的问题,它无论是大小,可读性,美观我都无可挑剔,而且先前那些字体的不足它全部都没有。目前我将所有的编辑器的字体都设置为 Lucida Sans Typewriter ,不知道在未来我是否能够在它身上找出问题,但是至少它是我觉得最好的编程字体,现在我会一直使用它的。。
|
||||
|
||||
附录:
|
||||
|
||||
编程用字体选择标准:
|
||||
1. 所有字符等宽
|
||||
2. 简洁、清晰、规范的字符形体
|
||||
3. 支持ASCII码为128以上的扩展字符集
|
||||
4. 空白字符(ASCII: 0x20)与其他字符等宽
|
||||
5. '1'、'l'和'i'等三个字符易于区分
|
||||
6. '0'、'o'和'O'等三个字符易于区分
|
||||
7. 双引号、单引号的前后部分易于区分,最好是镜像对称的
|
||||
8. 清晰的标点符号外形,尤其是大括符、圆括符和方括符
|
||||
|
||||
Monospace/Fixed Width Programmer's Fonts: http://www.lowing.org/fonts/
|
||||
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/consolas.bmp
Normal file
|
After Width: | Height: | Size: 428 KiB |
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/courier-new.gif
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/fixedsys.bmp
Normal file
|
After Width: | Height: | Size: 413 KiB |
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/lucida-console.bmp
Normal file
|
After Width: | Height: | Size: 325 KiB |
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/lucida-sans-typewriter.bmp
Normal file
|
After Width: | Height: | Size: 340 KiB |
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/monaco.bmp
Normal file
|
After Width: | Height: | Size: 477 KiB |
BIN
Zim/Linux/Archlinux/Font/也谈编程等宽字体/宋体.gif.bmp
Normal file
|
After Width: | Height: | Size: 277 KiB |
31
Zim/Linux/Archlinux/Font/字体名历史.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-09-24T15:09:41+08:00
|
||||
|
||||
====== 字体名历史 ======
|
||||
Created Saturday 24 September 2011
|
||||
|
||||
Lucida
|
||||
Lucida是一个西文字体家族名,由查尔斯·毕格罗(Charles Bigelow)和克里斯·霍尔姆斯(Kris Holmes)于1985年设计。
|
||||
这个家族由很多变体,包括黑体 (Blackletter),艺术体(Calligraphy),手写体(Handwriting),衬线 (Fax, Bright)和无衬线体(Sans, Lucida Sans Unicode,Lucida Grande,Sans Typewriter等等)。
|
||||
Bigelow&Holmes公司于TeX的厂商Y&Y合作制作了一套完整的TeX用数学符号,因此这个字体也是少数TeX数学公式排版能使用的字体之一。
|
||||
Lucida Console也是英文版Windows XP和Windows CE中蓝屏死机和 Windows記事本的默认字体。Lucida Sans Demibold(轮廓和Lucida Grande Bold体完全一样,但是数字间距较紧)被用于苹果公司的Mac OS X操作系统,以及其他众多程序,包括Front Row。
|
||||
Arphic
|
||||
arphicttf 是由文鼎科技提供, 包含文鼎PL細上海宋,文鼎PL中楷(BIG-5碼)和文鼎PL簡報宋、文鼎PL簡中楷(GB碼)。它可以被用來 作為 X Window 系統或是排版軟體例如 CJK。感謝文鼎科技,您可以 在 GPL-base 版權下自由散佈這些高品質的字型。
|
||||
文鼎字體速查表
|
||||
檔名 PostScript name Font Family Font Family
|
||||
bkai00mp.ttf ZenKai-Medium AR PL KaitiM Big5 文鼎PL中楷
|
||||
bsmi00lp.ttf ShanHeiSun-Light AR PL Mingti2L Big5 文鼎PL細上海宋
|
||||
gkai00mp.ttf GBZenKai-Medium AR PL KaitiM GB 文鼎PL簡中楷
|
||||
gbsn00lp.ttf BousungEG-Light-GB AR PL SungtiL GB 文鼎PL簡報宋
|
||||
微软雅黑
|
||||
|
||||
微软雅黑是美国微软公司委托中国方正集团设计的一款全面支持ClearType技术的字体。蒙纳公司(Monotype Corporation)负责了字体的修饰(Hinting)工作。它属于OpenType类型,文件名是MSYH.TTF,在字体设计上属于无衬线字体和黑体。
|
||||
该字体家族还包括“微软雅黑Bold”(粗体),文件名为MSYHBD.TTF。这个粗体不是单纯的将普通字符加粗,而是在具体笔画上分别进行处理,因此是独立的一个字体。
|
||||
微软雅黑是随着简体中文版Windows Vista一起发布的字体,也是Windows Vista和Windows 7默认的字体。在使用ClearType功能的液晶显示器中,微软雅黑比以前Windows XP默认的中易宋体更加的清晰易读。另外,Microsoft Office 2007简体中文版也附带这个字体。2008年5月6日,微软发布了适用于Windows XP的雅黑字体版本。[1]
|
||||
在涵盖的字库上,微软雅黑支持GBK字符集,包含了Unicode的所有 20902个中文字符以及中国国家标准化组织添加的大约 80个中文字符,还包含了Big5的繁体中文字符和GB2312中的简体中文字符。
|
||||
当使用于不能显示中文字体名称的系统和繁体中文的系统时,会显示为Microsoft YaHei。
|
||||
缺点
|
||||
微软雅黑Bold中的“·”这个符号被误植成一个大方框。此问题在最初的0.70版中就存在,之后直至6.02版才被修正。
|
||||
汉字“一”在左右两端没有预留足够空间,使用时很难与破折号区别开来。如“一一说明”。
|
||||
直排时,部分文字会与下一个字重叠。
|
||||
42
Zim/Linux/Archlinux/Font/常用英文字体.txt
Normal file
@@ -0,0 +1,42 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-09-24T09:53:01+08:00
|
||||
|
||||
====== 常用英文字体 ======
|
||||
Created Saturday 24 September 2011
|
||||
|
||||
今天向大家介绍一些英文字体,希望在今后的字体设置中,对您的编码有所帮助。
|
||||
|
||||
Arial(微软自带)
|
||||
|
||||
Arial是一套随同多套微软应用软件所分发的**无衬线体**TrueType字型。虽然比例及字重(weight)和Helvetica极之相近,但Arial其实是Monotype Grotesque系列的变种。设计Arial时考虑到会在电脑上面使用,在字体及字距上都作了一些细微的调整和变动,以增加它在电脑屏幕上不同分辨率下的可读性。 一般小字的英文就比较常用这个字体
|
||||
|
||||
Helvetica(苹果自带)
|
||||
|
||||
Helvetica是一种广泛使用的西文**无衬线字体**,是瑞士图形设计师马克斯· 米耶丁格(Max Miedinger)于1957年设计的。Helvetica被视作现代主义在字体设计界的典型代表。按照现代主义的观点,字体应该“像一个透明的容器一样”,使得读者在阅读的时候专注于文字所表达的内容,而不会关注文字本身所使用的字体。由于这种特点的存在,使得Helvetica适合用于表达各种各样的信息,并且在平面设计界获得了广泛的应用。
|
||||
|
||||
Tahoma
|
||||
|
||||
Tahoma是一个十分常见的**无衬线字体**,字体结构和Verdana很相似,其字符间距较小,而且对Unicode字集的支援范围较大。Tahoma和Verdana师出同门,同为名设计师马修·卡特的作品,由微软在1999 年推出。许多不喜欢Arial字体的人常常会改用Tahoma来代替,除了是因为Tahoma很容易取得之外,也是因为Tahoma没有一些Arial为人诟病的缺点,例如大写“I”与小写“l”难以分辨等。Tahoma被采用为Windows 2000、Windows XP、Windows Server 2003及Sega游戏主机Dreamcast等系统的__默认字型__。
|
||||
|
||||
Verdana
|
||||
|
||||
Verdana,是一套**无衬线**字体,由于它在小字上仍有结构清晰端整、阅读辨识容易等高品质的表现,因而在1996年推出后即迅速成为许多领域所爱用的标准字型之一。“Verdana”一名是由“verdant”和“Ana”两字所组成的。“verdant”意为“苍翠”,象征著“翡翠之城”西雅图及有“常青州”之称的华盛顿州。“Ana”则来自于维吉尼亚·惠烈大女儿的名字。
|
||||
|
||||
Lucida Grande
|
||||
|
||||
Lucida Grande是一种西文无**衬线体**字体,属于人文主义体。它是苹果公司Mac OS X操作系统的默认字体。作为Lucida字体家族的一员,它的设计师是查尔斯·毕格罗(Charles Bigelow)和克里斯·霍尔姆斯(Kris Holmes)。它的数字版本属于TrueType并且贯穿了整个Mac OS X 图形用户界面。
|
||||
|
||||
Times New Roman
|
||||
|
||||
Times New Roman(泰晤士新罗马),可能是最常见且广为人知的**衬线字体**之一,在字体设计上属于过渡型衬线体,对后来的字型产生了很深远的影响。另外由于其中规中矩、四平八稳的经典外观,所以常被选为标准字体之一。更多的知识,欢迎您浏览52CSS.com的更多文章。
|
||||
|
||||
Georgia
|
||||
|
||||
Georgia是一种**衬线字体**,为著名字型设计师马修·卡特(Matthew Carter)于1993年为微软所设计的作品,具有在小字下仍能清晰辨识的特性,可读性十分优良。其命名发想自一份小报报道在美国佐治亚州发现外星人头颅的测试性头条。微软将Georgia列入网页核心字型,是Windows系统的内建字型之一。苹果电脑的麦金塔系统之后也跟进采用Georgia作为内建字型之一
|
||||
|
||||
Garamond
|
||||
|
||||
字体格式:OpenType (适用于PC & Mac )
|
||||
字族数量:4 Style
|
||||
该款字体被誉为最常用的四款字体之一,国外许多资料文献都使用该字体,所以被称为**最佳阅读字体**。Garamond是个用途广泛的字体,苹果用它,国外的高级餐厅Menu用它。Garamond的易读性非常高,由于它适合大量且长时间的阅读,几百年来西方文学著作常用Garamond来作内文的编辑。Garamond演绎出许多优美的字体,1964年出现的Sabon是其中最流行的一种。高级餐厅的Menu和高档红酒的酒标上,都常见到这个古典而优雅的字体。“教父”导演科波拉在Napa有个漂亮的葡萄酒庄Niebaum-Coppola,它的网页可说是Sabon这个字体最好的使用范例了。
|
||||
683
Zim/Linux/Archlinux/Font/文泉驿用户常见问题解答.txt
Normal file
@@ -0,0 +1,683 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-09-24T16:17:17+08:00
|
||||
|
||||
====== 文泉驿用户常见问题解答 ======
|
||||
Created Saturday 24 September 2011
|
||||
欢迎大家回复、添加与Linux下使用中文、字体、版权相关的常见问题解答,参与“文泉驿”用户常见问题解答的编辑工作,请选择页面上方的“编辑本页”,谢谢!
|
||||
|
||||
目录
|
||||
|
||||
1. 一般性问题
|
||||
|
||||
1.1. 不是已经有很多汉字字库了吗?为什么还要再做一个?
|
||||
1.2. 为什么我的机器上的汉字显示为一个方块或者问号?
|
||||
1.3. 为什么我屏幕上的汉字边界模糊不清?
|
||||
1.4. 为什么起“文泉驿”这个名字?
|
||||
1.5. 什么叫作开放源代码?
|
||||
1.6. 什么叫作自由软件?与免费软件的区别是什么?
|
||||
1.7. 什么是版权(Copyright)?
|
||||
1.8. 什么是使用授权(License)?
|
||||
1.9. 计算机字体的版权都包括哪些内容?为什么需要保护?
|
||||
1.10. 我在我的工程中使用GPL的文泉驿字体,那我的工程也会变成GPL吗?
|
||||
1.11. 怎么样可以支持这个项目?有汇款帐号或者什么其它方式的支付途径么?
|
||||
1.12. 什么是字符集(Charset)?
|
||||
1.13. 什么是编码(Encoding)?
|
||||
1.14. 什么是GB2312, GB13000, GB18030, Unicode和UTF-8?
|
||||
1.15. 汉字有多少个?制作那么多汉字有必要吗?
|
||||
1.16. 什么是字体(Font)?常见字体有那几种?
|
||||
1.17. 什么叫字体的Hinting技术?什么叫Autohint?
|
||||
1.18. 什么叫Wiki?与Blog的区别是什么?
|
||||
1.19. 您们制作的字体可以在Windows/Mac/Unix/PalmOS上使用吗?
|
||||
1.20. 我参与这个计划我能够得到什么?
|
||||
|
||||
2. Linux系统中文安装和使用的常见问题
|
||||
|
||||
2.1. 如何安装新的字体(BDF/PCF/TTF)?
|
||||
2.2. 如何让XMMS的歌曲列表正确显示中文?
|
||||
2.3. 如何为Acrobat Reader安装中文支持?
|
||||
2.4. 如何为Xpdf安装中文支持?
|
||||
2.5. 如何让Emacs使用WenQuanYi Bitmap Song?
|
||||
2.6. 如何为Ghostview安装中文字体?
|
||||
2.7. 如何在OpenOffice中使用中文?
|
||||
2.8. 如何在Kylix中使用中文?
|
||||
2.9. 如何设置浏览器(Mozilla/Firefox)中的中文字体?
|
||||
2.10. 如果没有管理员权限,如何安装字体?
|
||||
2.11. 如果没有管理员权限,如何安装输入法?
|
||||
2.12. Linux下如何书写latex中文文档?
|
||||
2.13. Linux上如何识别和搜索字体文件?
|
||||
2.14. 什么是xfs?
|
||||
2.15. 什么是fontconfig?如何设置fontconfig?
|
||||
2.16. 在Linux下使用Windows下微软的字体和SimSun是否合法?
|
||||
2.17. 什么叫Locale?
|
||||
2.18. Linux下关于语言的环境变量有哪些?相互关系?
|
||||
2.19. 如何设置系统语言为中文?
|
||||
2.20. 如何在英文环境下显示和输入中文?
|
||||
2.21. 为什么我的中文目录都是乱码?
|
||||
2.22. 如何mount含有中文目录或文件名的FAT32 Windows分区?
|
||||
2.23. 如何mount含有中文目录或文件名的NTFS Windows分区?
|
||||
2.24. 如何让Linux下的java程序正确显示和处理中文?
|
||||
2.25. 如何让Linux下的Qt程序正确显示和处理中文?
|
||||
2.26. 如何让Linux下的GTK+/GTK+2.0程序正确显示和处理中文?
|
||||
2.27. 如何让Linux下的Tcl/Tk程序正确显示和处理中文?
|
||||
2.28. 如何让Linux下的OpenMotif/Lesstif程序正确显示和处理中文?
|
||||
2.29. 如何在wine中运行中文windows程序?
|
||||
2.30. 用什么命令把GB2312/GBK/GB18030编码的文档转换为utf-8编码?如何反向转换?
|
||||
2.31. perl程序中如何转换GB2312/GBK/GB18030编码为utf-8编码?如何反向转换?
|
||||
2.32. C程序中如何转换GB2312/GBK/GB18030编码为utf-8编码?如何反向转换?
|
||||
2.33. 如何让SCIM成为默认输入法?
|
||||
2.34. 如何让fcitx成为默认输入法?
|
||||
2.35. Linux下如何输入GBK汉字?
|
||||
|
||||
3. 文泉驿点阵宋体用户常见问题
|
||||
|
||||
3.1. 我使用的是Debian(Ubuntu/ArchLinux),成功安装wqy后为什么无法选择这个字体?
|
||||
3.2. 使用Debian的用户,为什么在fc-cache后,fc-list不显示Wenquanyi的点阵字库?
|
||||
3.3. 我使用的是Debian(Ubuntu/ArchLinux),在安装了xfonts-wqy包之后发现firefox显示速度变慢,请问应该怎么解决?
|
||||
3.4. 我觉得某个汉字点阵比较难看,我应该如何反馈给开发者?
|
||||
3.5. 为什么我在term中使用wqy点阵字体,英文很难看,没有办法对齐?
|
||||
3.6. 我安装了TTF版本的文泉驿点阵宋体,为何系统升级后字体就无法使用了?
|
||||
3.7. 文泉驿字体是否支持繁体字?
|
||||
3.8. 文泉驿点阵宋体中是否使用了APL字体?
|
||||
3.9. 如果我们不喜欢GPL授权,希望文泉驿字体重新授权为其他形式,比如APL或者OFL,请问应该怎么做?
|
||||
3.10. 文泉驿字体是否满足GB18030编码?
|
||||
3.11. 文泉驿字体是否能够在OpenOffice/Abiword/KOffice中使用?
|
||||
|
||||
4. 文泉驿矢量中文字体常见问题
|
||||
|
||||
4.1. 文泉驿正黑体为什么不叫做ZhengHei而叫Zen Hei?
|
||||
4.2. 如何获得文泉驿汉字笔画数据库?数据库以什么样的方式授权?
|
||||
|
||||
5. 点阵中文制作常见问题
|
||||
|
||||
5.1. 在我的浏览器上不能编辑点阵,这是为什么?
|
||||
5.2. 点阵预览不能自动更新怎么办?
|
||||
5.3. 我想知道正在编辑的汉字的发音和意思应该怎么操作?
|
||||
5.4. 如何升级和安装离线点阵制作工具?
|
||||
5.5. 离线点阵工具在我的机器上无法启动,应该怎么办?
|
||||
5.6. 离线点阵工具使用过程中异常退出,我应该怎么办?
|
||||
5.7. 在线编辑时如何为自己设置一个用户名?
|
||||
5.8. 如何给自己建立一个Wiki页面?
|
||||
5.9. 如何查看一个点阵汉字的编辑历史?
|
||||
5.10. 为何有的页面显示“本页只读”?
|
||||
|
||||
6. 矢量中文制作常见问题
|
||||
|
||||
6.1. 能简单的说一下,怎么进行笔画分析吗?
|
||||
6.2. 进行笔画分析有什么特别需要注意的吗?
|
||||
6.3. 笔画分析程序上方的“笔画数”与真实笔画不符合怎么办?
|
||||
|
||||
7. 其它常见问题
|
||||
|
||||
7.1. 文泉驿的开源字体是不是没有版权?
|
||||
7.2. 如何正确使用文泉驿Wiki排版格式?
|
||||
7.3. 在什么情况下我可以在我修改的文泉驿字体中添加我的copyright声明?
|
||||
|
||||
正文
|
||||
|
||||
====== 1. 一般性问题 ======
|
||||
|
||||
===== 1.1. 不是已经有很多汉字字库了吗?为什么还要再做一个? =====
|
||||
作者:FangQ
|
||||
答:从您购买的软件的光盘上(特别是Windows或者Office),或者购买的汉字艺术字体的光盘上,甚至从一些软件公司、政府机构的网页上都可以找到或者下载到汉字字库,于是很多人会问,为什么我们还要再做一个新的字库,这样作有必要吗?
|
||||
|
||||
答案是肯定的。尽管您可以找到或者使用这些字库,但您需要注意使用这些字库一般需要您遵守一些使用规则:
|
||||
|
||||
您可能需要购买才能拥有使用权,非购买的拷贝不但得不到技术支持甚至随时可以被起诉,
|
||||
您只能在规定的机器或者规定的操作系统上安装并使用,比如Windows上自带的汉字字库是不能安装到其他操作系统比如Linux上使用的,而Redhat上安装的ZYSong也是不允许安装在其他Linux版本上,
|
||||
您不能对字库进行任何形式的修改,对于字型、字体不满足用户个人需要的情况您只有“盼望”字体开发商在下一个版本会有所改进,除此之外,您没有更好的办法,
|
||||
您不能随意将您从网络上或者软件光盘上获得的这些汉字字库拿出来打个包提供给别人使用,或者打包到您写的程序中交给客户,无论您赢利与否,这样作从法律上都是违反使用协议的做法。
|
||||
|
||||
简言之,您现在能够找到的大多数汉字字体,都不是“自由”的。这里的自由是“自由”软件中定义的自由,与“免费”软件是不能混淆的。
|
||||
|
||||
我们现在正在开发的字体将是一个“__自由”的字体__,也就是说,这个字体的拥有者将获得下述的自由1:
|
||||
|
||||
您拥有使用这个字体的自由,而我们对您的使用目的没有任何限制
|
||||
您除了字体文件,还可以同时获得生成这些字体的原始数据,从而您拥有学习字体开发过程的自由
|
||||
您拥有把这个字体随意拷贝给需要的人,或者放入您的产品中,或者放到您的网页上散播的自由
|
||||
您拥有随时改进这个字体,并把您改进的结果公布给大家使用的自由
|
||||
|
||||
而真正“自由”的汉字字体并不多,我们所能够找到的,包括台湾文鼎公司在1999年发布的四套字体(宋体两套,楷体两套),以及台湾王汉宗教授贡献的多种繁体字体。另一方面,我们对于完整的汉字字库的需求是非常亟切的。不但中国,日本韩国等国家的语言文字也都是基于汉字系统。特别是中国,大陆、台湾、香港等地汉语用户数目非常庞大;同时,2000年实施的国家标准GB18030-2000中收录了Unicode中规定的CJK统一表意文字区以及CJK统一表意文字扩展A区中大约27000个汉字,这个标准成为在大陆销售软件必须遵循的标准规范,所以开发这个自由的汉字字库将对于“自由软件”在中国的健康发展,以致于整个软件业的平衡都具有战略性的意义。
|
||||
|
||||
===== 1.2. 为什么我的机器上的汉字显示为一个方块或者问号? =====
|
||||
作者:FangQ
|
||||
答:一个计算机系统上能够显示汉字大概需要两个基本条件:1、操作系统需要能够识别这个汉字的编码,并且有处理这种编码的能力,2、操作系统需要有这些汉字的“图案”数据(也就是字体),需要的时候显示在屏幕上。
|
||||
|
||||
您浏览的文章也好,书写的电子邮件也好,实际上传输的并不是汉字本身,或者传输的并不是汉字的图案,而是汉字的某种编码。如果您的浏览器,或者电子邮件软件上显示出乱码,或者问号,或者方块内四个数字(在Linux上),这说明您的计算机不能__正确识别__这种编码,或者没有安装能够显示这种__编码的字体__。您需要安装能够识别汉语的相应模块,并且安装汉字字库,这样您的操作系统才能正确显示这些汉语信息。
|
||||
|
||||
===== 1.3. 为什么我屏幕上的汉字边界模糊不清? =====
|
||||
作者:FangQ
|
||||
答:这种情况可能在Windows、Linux、Mac OS,或者各种Unix下都有可能发生,而当前最常见的是Linux下。这种情况可能有两个原因:
|
||||
|
||||
您使用的矢量字体(True-Type,Type1等)内部没有提供__hinting运算__的数据(hinting是一种屏幕显示优化技术,通过一定的数学运算,根据特定字体的笔画特征来调整像素的显示强度,从而达到字体边界清晰易于阅读的目的),
|
||||
您使用的矢量字体中没有包含事先制作好的、已经经过屏幕优化过的__点阵汉字图形__数据。
|
||||
|
||||
对于Linux下常见的字体,以及很多网络上能够免费下载的字体基本上都没有完美的解决汉字hinting的问题,如果字体渲染器没有从字体文件中发现hinting数据,并且没有找到嵌入的点阵汉字位图,那么经过Anti-Aliasing(AA,反锯齿技术)变换之后得到的就是一个边界模糊汉字。
|
||||
|
||||
我们开发点阵中文就是为了解决这个问题。
|
||||
|
||||
===== 1.4. 为什么起“文泉驿”这个名字? =====
|
||||
作者:FangQ
|
||||
答:“文”即文字之意,“泉”取“流通”之意(古代“泉”为“钱”的代称,也基于此意)。最初的想法是将项目命名为“文泉社”,google了一下发现是一个日本出版社的名字,只好将最后一个字改为“驿”,保留一点传统文化特色。
|
||||
|
||||
===== 1.5. 什么叫作开放源代码? =====
|
||||
作者:FangQ
|
||||
答:开放源代码与自由软件通常是同时提及的。开放源代码是一种与传统上不提供源代码的商业软件开发不同但平行的商业软件开发模式。开放源代码的严格定义可以在OSI(Open Source Initiative)的网站获得。
|
||||
|
||||
开放源代码是一种理念,支持这种理念的是一组具有法律意义的开放源代码软件使用协议,这些协议包括了常见的GNU公共使用授权,Apache使用授权,BSD使用授权,MIT使用授权,Mozilla公共使用授权等。OSI组织批准的使用授权可以浏览这个链接。
|
||||
|
||||
===== 1.6. 什么叫作自由软件?与免费软件的区别是什么? =====
|
||||
作者:FangQ
|
||||
答:与英文不同,“自由软件”和“免费软件”在中文中是很好区分的。正如我们在这个FAQ的第一个问题的解答中那样,自由软件关心的是软件的拥有者拥有自由使用、自由散播、自由修改并发布的自由,而对价格并没有规定一定是免费。也就是说,自由软件要求您不但把您的二进制产品交给用户,而且还要把生成这个产品的原材料(源代码或者数据)也要同时交给您的用户,从而使得您的用户能够通过注入他们新的劳动来改进这个产品。您的用户可以向您通过付费的形式来购买这个软件,但一旦他们拥有这个软件,他们可以在这个基础上进行改进,并将改进后的产品通过赢利或者不赢利的方式销售给他们的用户。一般的说,一个自由软件的所有衍生产品都必须同样满足这个协议,您不能将其中的部分或者全部在不经过软件版权人的许可的情况下变为商业软件。
|
||||
|
||||
免费软件是指您可以免费获得或者使用这个软件,但一般情况下您不会拥有源代码,从而没有上述的其他方面的自由。
|
||||
|
||||
===== 1.7. 什么是版权(Copyright)? =====
|
||||
作者:FangQ
|
||||
答:版权(copyright)表明了一种原创关系,是对文学、电影、音乐、绘画、软件、设计等的原始创作者的智力财富的一种认可和法律形式的保护。
|
||||
|
||||
版权一般不需要申请(当然您也可以申请),作者在作品创作完成的那一个时刻自动获得对这个作品的版权。作者可以在作品上声明这种原创关系。声明版权的方式为 Copyright 或 © 作品创作的年份(多个年份需要用逗号分割) 版权拥有者姓名 All rights reserved。
|
||||
|
||||
另外,版权有一定的时限。关于版权的具体严格定义,请参照【中华人民共和国著作权法】,【伯尔尼公约】,【世界版权公约】,另外还可以参照Wikipedia中的定义和讨论以及Font Foundry Myths的讨论。
|
||||
|
||||
===== 1.8. 什么是使用授权(License)? =====
|
||||
作者:FangQ
|
||||
答:使用授权(license)是版权的拥有者对作品的使用者行为的一种约束和规定。使用授权一般规定了用户使用该作品的条件,是否能够修改或者重新发布。从法律意义上来讲(如果有学版权法的可以帮我纠正和改进),授权与契约类似,二者的不同在于契约的双方都必须共同同意契约中的规定,而授权仅需要版权人一方认可即可。
|
||||
|
||||
===== 1.9. 计算机字体的版权都包括哪些内容?为什么需要保护? =====
|
||||
作者:FangQ
|
||||
我们需要重申字体中的“版权”这个概念的含义,以下为个人对这个问题的看法,希望大家讨论。
|
||||
|
||||
“版权”或者“著作权”主要在于“原创性”,谁创造出新的东西、新的表现形式,谁才拥有版权。而字体的版权与其他智力成果的版权一个显著区别在于字体的构形不是“原创”的。字型作为几千年文明的结晶,是无数先人们的智慧创造的,是属于公有领域(public domain)的智力财产。这里的“构形”是指汉字笔画的基本形状,汉字的拓扑结构和单个汉字特有的几何特征。而开发一个计算机字体,新创造的东西有哪些?我认为包括1.文字的数字化表现形式,2.笔画的特有的艺术装饰,3.字体的hinting以及其他与计算机应用相关的特有的信息。字体开发者对于上述的“原创” 的元素拥有版权。从而字体开发者通过使用授权(license)的形式来限制他们开发出来的字体也是完全合理和有效的。
|
||||
|
||||
当然,上述的原则在美国理论上并不成立,1988年美国版权局认为数字化西文字体不具有原创性,所以是不可赋予版权的(uncopyrightable)。然而在现实生活中,美国大量的字体开发商,特别是adobe和MS通过其他相关的法律法规来对他们制作的数字化字体进行合法的保护,而关于“开源”字体的版权和授权问题,仍然是大家讨论的一个焦点(参见FSF的讨论 http://www.fsf.org/blogs/licensing/20050425novalis )。
|
||||
|
||||
中国的版权法更倾向于把汉字字体作为一种艺术作品来进行法律保护(参见http://www.founder.com.cn/cn/news/nr.aspx?nid=297 )。个人来讲,我更倾向于支持这种观点。中文字体与西文字体有很大的差别,中文字体结构复杂,书写工具和书写习惯使得汉字书法的艺术成分远远高于西文字体,而这种艺术成分给汉字字型注入了大量的独立性和原创性。另外汉字数量繁多,完成一个字体需要付出的劳动和技巧要求比西文大很多。所以把汉字字体作为一种艺术形式进行保护是合理的。
|
||||
|
||||
从个人感受来看,我相信参与了我们前面CJK点阵汉字开发的朋友都会体会到,完成一个好的汉字字体的确需要付出非常辛苦的劳动,不但需要成千上万小时的劳力,还需要很好的技术和艺术处理。从这个角度,我们更需要理解和尊重很多中文字体开发商的劳动成果,对于他们制作的字体,我们需要在版权人的授权允许的前提下进行合法的使用。
|
||||
|
||||
===== 1.10. 我在我的工程中使用GPL的文泉驿字体,那我的工程也会变成GPL吗? =====
|
||||
作者:FangQ
|
||||
|
||||
答:对于具体的项目和软件,是否能够包含GPL字体,您需要资讯熟悉知识产权的律师来获得准确的答案。下面只代表个人理解而不代表法律意见。
|
||||
|
||||
GPL的软件和GPL的字体在GPL中并不作具体区分。也就是说这里将GPL字体看作代码或者软件来对待:字体中包含了绘制曲线图形的数据,包含了如何绘制这些图形的指令和参数,这些角度上来说,字体与软件具有相同的本质(二者中可能较大的区别在于字体中的数据段按照比例来说可能相对多些而已)。GPL要求,如果一个程序需要动态连接(比如在同一个地址空间)一个GPL模块,二者之间有非常紧密的联系和通讯,或者前者的功能有必不可缺的部分是依靠后者来完成,那么这时,我们认为这个GPL模块和调用这个模块的程序是一个程序整体。这种情况下,整个程序如果需要发布(销售,公开提供第三方使用等等),按照 GPL的规定,它必须以GPL授权来申明。如果调用程序与GPL模块之间的关系是松散的,可有可无的,二者的功能相互独立自恰的,那么这时两个程序之间是简单的集合关系(mere aggregation),这时主体程序不会因为包含了这个GPL模块而必须以GPL发布。
|
||||
|
||||
上面的关系同样适用于GPL字体。如果主体程序hard code了字体信息,比如将点阵数据转换为C代码,然后编译在程序当中,或者将字体作为程序初始化载入的数据等等,凡是这种”紧密“依存关系存在,则衍生程序如果发布,必须以GPL作为授权申明。如果字体仅仅是程序可以使用的一种外部字体之一,可有可无,没有包含在程序的其他的数据当中,那么在其他条件都满足的情况下,合成的程序则可以有独立的授权声明。
|
||||
|
||||
不过一般商业软件开发商对GPL模块使用都十分小心,一般首先需要咨询律师,明确需要承担的责任。直接使用GPL字体的商业软件(除Linux发行版外)现在还很少见到。
|
||||
|
||||
其他相关讨论,参见 http://wenq.org/forum/viewtopic.php?f=5&t=715&p=3827#p3827
|
||||
|
||||
===== 1.11. 怎么样可以支持这个项目?有汇款帐号或者什么其它方式的支付途径么? =====
|
||||
作者:FangQ
|
||||
答:虽然我们的组织和项目为非赢利性质的,但维持进行正常的开发,需要付出一定的费用(现在这些费用都是由组织者和参与者无偿地分担的),这些费用包括网站租用、对项目进行有效的宣传费用、对相关资料、必须的设备进行购买的费用等等。为了加快计划进度,我们需要有足够的经费来维持计划的高效运行,从而为开源社区作出有效的工作。
|
||||
|
||||
对于拥有信用卡的用户,我们的计划可以通过sourceforge的“捐献”机制得到支持,进行捐献的页面为 http://sourceforge.net/donate/index.php?group_id=128192 您需要免费注册一个Paypal账号,然后从信用卡或者银行账号捐献适当的数额(Sourceforge收取5%的手续费,Paypal也收取少量手续费)(这种渠道的安全性是有保证的,使用paypal是非常经常的事情)。我们对您的的支持表示感谢!对于在美国的朋友,您还可以直接汇款给我,我的地址可以在我的Wiki页面找到。我向您郑重承诺,我们一定会将收到的每一笔捐款用于这个计划。我们也会将捐款的数额和使用状况在我们的主页及时贴出以便监督。
|
||||
|
||||
对于国内用户,我们提供了中行和建行的捐款账号,和支付宝捐款帐号,具体信息参见Donation捐款页面。
|
||||
|
||||
===== 1.12. 什么是字符集(Charset)? =====
|
||||
作者:FangQ
|
||||
答:字符集(charset或者character repertoire)是一组抽象字符(abstract character)的集合。我们通常所说的字符一般是一个一维或者二维的符号,这个符号可能会具有一定的语义。对于一种语言,语言中常用的或者所有用以表达语义功能的符号构成该语言的字符集。比如所有汉字构成的字符集,所有日语的片假名、平假名构成的字符集,西欧语言字母构成的字符集等。字符集的子集也为字符集,比如所有日本汉字,或者所有繁体字。
|
||||
|
||||
===== 1.13. 什么是编码(Encoding)? =====
|
||||
作者:FangQ
|
||||
答:对于__一个给定字符集__,为了在计算机内方便地进行表示,我们需要对字符集内的抽象字符元素进行排序,对每个元素赋予一个特定的标号用以区别其他字符。从数学角度,编码(encoding)是一个从整数集子集到字符集抽象元素的映射。
|
||||
|
||||
对于字符集内字符的排序可以有各种各样的办法,对于汉语来说,可以按照笔画顺序,可以按照拼音排序,甚至任意顺序进行排列。字符的编码不一定从0或者1开始,也不一定连续。这个映射不一定是1对1的映射。
|
||||
|
||||
字符的编码一般为一种__约定性__的行为。
|
||||
|
||||
===== 1.14. 什么是GB2312, GBK,GB13000, GB18030, Unicode和UTF-8? =====
|
||||
作者:FangQ
|
||||
答:这些都是__对字符集的编码(encoding)__。其中常见对汉语字符集的编码包括GB2312-1980, GBK,GB13000, GB12345, GB18030—2000, Big5, Big5+, HKSCS, Big5+HKSCS, CNS 11643-1992等。
|
||||
|
||||
当前国际上__最为通用__的字符编码(商业规范)是Unicode编码。Unicode是由一个非赢利性组织“Unicode学术学会”建立和发展的涵盖世界大多数流行语言的字符编码形式。对于Unicode的详细解释请参见他们的主页以及中文说明。Unicode现有的标准版本为4.1,其中包含的所有语言符号(超过9万个,其中汉字为7万多)列表可以从这个网页浏览。
|
||||
|
||||
UCS-2, UCS-4, UTF-32, UTF-16, __UTF-8__, UTF-EBCDIC和UTF-7都是Unicode编码的__具体形式__。他们的定义和相互关系可以参见Wikipedia的说明。
|
||||
|
||||
===== 1.15. 汉字有多少个?制作那么多汉字有必要吗? =====
|
||||
作者:FangQ
|
||||
答:随着社会的发展,历史的演变,作为表意文字的汉字总体呈现逐步增多的趋势,但常用汉字增加幅度相对比较缓慢。下表总结了一些主要辞书中收集汉字的数目23:
|
||||
辞书 成书年代 汉字总数
|
||||
尔雅 汉 ??
|
||||
说文解字 汉 9353
|
||||
字林 晋 12824
|
||||
玉篇 宋 22510
|
||||
字汇 明 33179
|
||||
康熙字典 清 47035
|
||||
中华大字典 1915 48902
|
||||
辞源 1915 12890
|
||||
汉语大字典 1986 ~56000
|
||||
中华字海 1994 87019
|
||||
为了让计算机系统能够更好的处理汉字信息,对汉字的编码工作在上世纪70年代就开始进行,其中主要的几个汉字标准包含的汉字数目总结在下表中:
|
||||
**编码**类型 发布时间 汉字总数 **字符集**标准
|
||||
GB2312 1980 6367 GB 12345-90繁体
|
||||
CNS11643 1992 48027
|
||||
CCCII 1989 75684
|
||||
GBK 1995 20902 Unicode 2.0
|
||||
GB13000 1993 20902 ISO 10646-2000
|
||||
Big5 1984 13868
|
||||
HKSCS 1999 4702
|
||||
GB18030 2000 27484(+) Unicode 3.0
|
||||
Unicode CJK 20902
|
||||
Unicode CJK Ext. A 6582
|
||||
Unicode CJK Ext. B 42711
|
||||
Unicode CJK Ext. C1 ~24365
|
||||
|
||||
对于个人用户来说,使用收录汉字较多的字库不一定是一件好事,因为这样的字体一般会很大(收录CJK Ext. B的True-Type字库一般为20M以上),占用内存,对系统性能有一定的影响。然而对于汉语学术研究和企业来讲,这样的字库是非常有必要的。特别是对于从事古汉语研究,古籍整理,以及日本韩国文字研究的学者来说,显示和编写不常见字甚至罕用字都是日常工作的一部分。而对于从事中文软件开发的企业,让自己的汉语软件能够不依赖于其他企业的商业字体对于该企业来说是一个非常重要的战略。
|
||||
|
||||
对于开源用户来说,拥有一个能够免费获得的、开放的、完备的汉字库是及其有必要的。一般情况下,开源用户没有商业软件用户那样的企业级的支持,从个人用户的角度,拥有这样一个选择无疑将大大减轻使用中文交流的困难;而从开源软件开发的角度,这样一个字库将彻底解决用户端语言显示的问题,大大减少了作者为考虑用户语言显示以及字体版权而需要付出的疑虑,从而使程序开发和文件发布简化。
|
||||
|
||||
兼顾效率和开发难度,我们现在集中在**Unicode CJK Unified Ideograph**规定的20902个汉字的**矢量汉字和点阵汉字**的开发上。该字体的开发可以解决绝大多数自由软件用户的需求。当这个目标完成后,我们将继续开发其他分区的汉字,使得我们的字体成为开源软件中最完备的字库(这样并不意味着您一下子就安装一个很大的字库,相反的,我们开放的开发模式保证您可以通过您的需求,利用字库中的汉字子集制作对于您来说最为需要的字库)。
|
||||
|
||||
===== 1.16. 什么是字体(Font)?常见字体有那几种? =====
|
||||
作者:FangQ
|
||||
答:字体一般来说需要包含两个要素:__字符的图像信息__和__字符编码到这些图像信息的映射__。
|
||||
|
||||
字体的主要功能是将__字符的编码转换为一个图片__用以显示在屏幕或者用户界面上。从编码到字符的映射有很多中情况:多个编码映射为一个图像:(比如fi),一个编码映射到多个图像,但最常见的还是一个编码一个图像。(浏览器等应用程序__识别出字符编码__后,根据配置或默认向X服务器的字体渲染引擎发送请求,后者将图片返回。)
|
||||
|
||||
常见的字体有两大类,一类称为__位图字体(或者点阵字体)__,这类字体一般需要用一个二值(0-1)矩阵来表示一个符号,0-1矩阵信息将在屏幕上转换为黑白图像,这样的字体包括bdf,pcf,fnt,hbf等格式;第二类称为__矢量字体__(outline font),这类字体中每一个符号是通过数学曲线来描述的,字体中包含了符号边界上的关键点,连线的导数信息等,__字体的渲染引擎__通过读取这些数学曲线,然后进行一定的数学运算来进行渲染。这类字体的好处是字体可以__无限放大__而不产生锯齿,使用于高质量的打印和屏幕显示。矢量字体主要包括Type1和True-Type等几类,其中Type1和True-Type比较可以从如下链接查看,简言之,True-Type使用了二次B样条(quadratic Bézier spline)而Type1使用了三次B样条曲线(cubic Bézier spline)来描述符号边界,因而TrueType的数学相对简单,易于hinting。
|
||||
|
||||
===== 1.17. 什么叫字体的Hinting技术?什么叫Autohint? =====
|
||||
|
||||
===== 1.18. 什么叫Wiki?与Blog的区别是什么? =====
|
||||
作者:FangQ
|
||||
答:说得简单一点(但不准确),Wiki就是一个人人都能够编辑的网站。普通的网站一般只允许浏览,不让访问者编辑网页的内容,而Wiki不同,访问Wiki的用户拥有更大的权利,他们不但可以修改网页的内容,而且可以不断添加新的页面。
|
||||
|
||||
Wiki是为在线形式的协同式文档开发设计的。分布在网络上的用户可以通过浏览器来共同编写和维护一个开放式的文档,这个文档可以是一本书,可以是一个帮助文件,或是一个备忘录,不论内容是什么,Wiki上的用户对于Wiki文档具有同等的权利――创建、编辑和不断修订,直到所修订的文档接近完美4。
|
||||
|
||||
或许您会问,那Wiki跟论坛有什么区别呢?简单的说,论坛是为了个人与个人之间的交流,而Wiki是为一个群体进行创作。论坛上好的文章是一个人的劳动结晶,而一个好的Wiki却是无数用户共同劳动的结果。Wiki为这个协作式的创作提供了很多强有力的工具,比如说文档修订历史和版本的自动管理,关键字的自动链接等等。
|
||||
|
||||
那Wiki和Blog有什么区别呢?Blog是一个个人信息发布系统,也就是说Blog是针对于个人用户的。Blog的拥有者可以通过他(她)的Blog发布新的信息,修改已有的信息,但浏览者却没有修改这些信息的权利。Wiki则是面向一个群体的,这个群体的所有成员都可以平等地编写文档,而他们对共同编写的文档平等地享受所有权。
|
||||
|
||||
其实Wiki的概念早在1995年就由Ward Cunningham提出来了,而Wiki文档和网站的大量发展,还是在近几年,其中比较著名的包括
|
||||
|
||||
维基百科:http://en.wikipedia.org/wiki/Main_Page
|
||||
PlanetMath:http://planetmath.org/
|
||||
|
||||
其他关于Wiki的详细解释可以参见如下地址 http://zh.wikipedia.org/wiki/WikiWiki
|
||||
1.19. 您们制作的字体可以在Windows/Mac/Unix/PalmOS上使用吗?
|
||||
|
||||
1.20. 我参与这个计划我能够得到什么?
|
||||
|
||||
2. Linux系统中文安装和使用的常见问题
|
||||
|
||||
===== 2.1. 如何安装新的字体(BDF/PCF/TTF)? =====
|
||||
关于在Linux下如何安装TTF字体,我已整理了一篇文章,计划放在我的个人站点上供大家学习。站点地址 http://lifeng.telebyte.com.cn
|
||||
|
||||
2.2. 如何让XMMS的歌曲列表正确显示中文?
|
||||
在正确安装中文字体以后,进入XMMS的首选项的字体标签栏,选中“使用字体集”,并且在上面一个字体栏中选中一个中文字体。还需要写一个~/.gtkrc,告诉xmms(gtk1.x)程序使用文泉驿的字体。内容如下:
|
||||
|
||||
style "gtk-default" {
|
||||
fontset ="-wenquanyi-wenquanyi bitmap song-medium-r-normal-*-*-130-*-*-p-*-iso10646-1"
|
||||
}
|
||||
class "GtkWidget" style "gtk-default"
|
||||
|
||||
===== 2.3. 如何为Acrobat Reader安装中文支持? =====
|
||||
Adobe官方已经推出了简体/繁体中文的Adobe reader 7软件,安装后直接支持简/繁体中文的显示。下载页面是 http://www.adobe.com/cn/products/acrobat/readstep2.html 下载完之后解压缩,进入解压出来的目录,运行./INSTALL即可. 对于5.x的Acrobat Reader而言,安装中文支持是相当容易,用户只需要去Adobe的主页下载相应的支持包即可。解压缩后会发现里面有个安装的脚本,执行它然后告诉它您的Acrobat Reader安装在了什么位置即可。对于版本7的Acrobat Reader,一个解决方案是从Windows版的Acrobat7中拷贝相应的文件。或者从5.x的支持包拷贝,只不过这时需要更改一些目录的名称。
|
||||
|
||||
===== 2.4. 如何为Xpdf安装中文支持? =====
|
||||
|
||||
对于debian用户非常方便,如果您已经安装了xpdf的话
|
||||
|
||||
ailantian@vax:~/GNUworks/vecchinese$ apt-cache search xpdf-chinese
|
||||
|
||||
xpdf-chinese-simplified - Portable Document Format (PDF) suite -- simplified Chinese language support
|
||||
xpdf-chinese-traditional - Portable Document Format (PDF) suite -- traditional Chinese language support
|
||||
|
||||
简体中文用户只需要再装一个xpdf-chinese-simplified就可以了
|
||||
|
||||
安装方法和普通软件安装一样
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install xpdf-chinese-simplified
|
||||
|
||||
===== 2.5. 如何让Emacs使用WenQuanYi Bitmap Song? =====
|
||||
在 fedora 4/5 中,emacs 的版本是 21.4,语言环境是 UTF-8。由于这时 emacs-21.4 无法正确为汉字选择 ISO10646-1 字体,因此需要设置。安装 wqy-bitmapfont-song.noarch RPM 后,数据文件目录 /usr/share/wqy-bitmapfont-song-%{version} 中包含了一份 emacs 的初始化文件 set-my-fonts.el。这份初始化文件包含的函数为 emacs 定义默认使用的字体集。在 $HOME/.emacs 初始化文件中引用这份文件,当 emacs 在 X 窗口系统中运行时,这份文件就会发挥作用。请将文件复制到 $HOME/.emacs.d/ 目录,然后在 $HOME/.emacs 中追加下面两句:
|
||||
|
||||
(add-to-list 'load-path "~/.emacs.d/")
|
||||
|
||||
(load "set-my-fonts")
|
||||
|
||||
默认使用的字体是 "wenquanyi",这是 wenquanyi 12 的别名。如果希望使用其它字体或字号,请自行修改这份文件中,set-my-font-if-in-x 函数的参数。这份文件还可以在 fedora-gro cvs 中找到。这个解决办法是 Hellwolf@seu 在 linuxsir.org 论坛 上给出的。
|
||||
2.6. 如何为Ghostview安装中文字体?
|
||||
|
||||
2.7. 如何在OpenOffice中使用中文?
|
||||
|
||||
2.8. 如何在Kylix中使用中文?
|
||||
|
||||
2.9. 如何设置浏览器(Mozilla/Firefox)中的中文字体?
|
||||
如果是Firefox 1.0.x,通过主菜单中的“编辑”,“首选项”。打开“选项”窗口,在其中的“基本信息”设置,单击“字体和颜色”按钮,打开“字体和颜色”设置窗口。选择“语言编码”为“简体中文”或者“繁体中文”,然后选择下拉列表中的的字体。
|
||||
|
||||
2.10. 如果没有管理员权限,如何安装字体?
|
||||
将字体复制到 ~/.fonts/ ,重新启动Xwindow即可,但是gtk1的程序(xmms,gmplayer等) 不能使用这些字体。
|
||||
|
||||
2.11. 如果没有管理员权限,如何安装输入法?
|
||||
|
||||
===== 2.12. Linux下如何书写latex中文文档? =====
|
||||
有两个解决办法,一个是使用CCT宏包,该宏包目前在中国大陆的数学类杂志社中使用得较为广泛,其工作原理是外挂式的;一个是使用CJK宏包,该宏包要年轻一些,但是更加符合LaTeX的习惯,各种TeX发行版中往往都配备了。
|
||||
|
||||
2.13. Linux上如何识别和搜索字体文件?
|
||||
|
||||
2.14. 什么是xfs?
|
||||
|
||||
2.15. 什么是fontconfig?如何设置fontconfig?
|
||||
|
||||
2.16. 在Linux下使用Windows下微软的字体和SimSun是否合法?
|
||||
|
||||
2.17. 什么叫Locale?
|
||||
|
||||
2.18. Linux下关于语言的环境变量有哪些?相互关系?
|
||||
|
||||
===== 2.19. 如何设置系统语言为中文? =====
|
||||
作者:cobranail
|
||||
答:在大多数发行版的安装过程中,可以指定第一语言,通常指定的第一语言就是系统默认的语言。因此,若要设置系统语言为中文,在安装时,选择中文为第一语言即可。对于已经安装的系统,一种通用的方法是修改/etc/sysconfig/i18n文件LANG变量的值。若要设置为简体中文,LANG变量的可选值如下:
|
||||
|
||||
zh_CN.GBK
|
||||
zh_CN.GB18030
|
||||
zh_CN.GB2312
|
||||
zh_CN.UTF-8
|
||||
zh_CN
|
||||
|
||||
然而,各主要发行版都提供了简便的工具来修改系统语言。一个具体的例子是,在Redhat/Fedora中,可以使用system-config-language命令来修改系统的语言(需要root权限,而且在较早期的Redhat系统中,这个命令为redhat-config-language)。另外,GNOME桌面环境的登录管理器GDM提供了一种在只改变某次会话的语言环境的功能,可以临时改变系统语言。
|
||||
|
||||
===== 2.20. 如何在英文环境下显示和输入中文? =====
|
||||
作者:fundawang
|
||||
答:在英文环境下使用中文对于很多人来说是一个非常有用的设置。特别对于留学生来说,在一个以英语作为主导语言的环境下,既需要能够与身边不讲中文的朋友、导师拥有一个共同的、良好的计算机交流的环境,又需要有效地处理中文电子邮件和浏览中文网页,在英文环境下设置中文对于创造一种没有语言隔阂和偏见的,适合国际交流的计算机环境是一个很好的选择。同时,很多操作系统在进行汉化的过程当中可能会造成某种形式上的性能降低,使用英文语言环境下的中文设置可以尽量减少这种情况造成的影响。
|
||||
|
||||
有一件很显然的事情,如果想要显示中文,您必须先在系统中__正确安装中文字体或者包含汉语字型的Unicode字体__。这个我们在上文已经说到了。这里我们着重说一下如何让系统显示出中文。
|
||||
|
||||
一个系统是否能够显示出中文,和系__统所支持的字符集__是相关的。如果系统只能支持ASCII这个字符集,那么就只能显示大小写英文字母、阿拉伯数字和一些半角的标点符号,也就只能使用纯英语;如果系统支持ISO-8859-1这个字符集,那么就可以支持包括法语、德语、西班牙语等在内的多种欧洲语言。同样,如果系统支持GB2312字符集,就可以显示GB2312-80国标中的所有汉字;如果支持GBK字符集,就可以显示包含“镕”等汉字以及大多数**繁体字**在内的汉字。
|
||||
|
||||
如果系统有相关字符集的支持,当发现相关字符编码请求时会将特殊编码转为内部使用的编码(如utf8编码),然后用该内部编码查找系统中是否有相对应的字体。
|
||||
|
||||
英语环境下,系统的语言环境(locale)一般是 en_US。在大多数Linux发行版中,这个 locale 只能支持 ASCII 字符集。为了扩大locale所支持的字符集,我们必须对locale加以变形。比较常见的变形是__en_US.UTF-8__。这会使得系统的locale所使用的字符集变成UTF-8。
|
||||
|
||||
在更改完系统的locale之后,您可以自己安装自己喜欢的输入法,并按照该输入法的要求修改系统的配置文件。
|
||||
|
||||
===== 2.21. 为什么我的中文目录都是乱码? =====
|
||||
|
||||
===== 2.22. 如何mount含有中文目录或文件名的FAT32 Windows分区? =====
|
||||
作者:brep
|
||||
答:使用如下命令:
|
||||
|
||||
mount -t vfat -o iocharset=**cp936** /dev/hdxx /path/to/mount_point
|
||||
cp936是微软对中文字符集的称谓
|
||||
|
||||
作者:cobranail
|
||||
对于某些使用utf8为默认字符编码的发行版(比如Fedora Core系列,Ubuntu等)来说,应该使用
|
||||
|
||||
mount -t vfat -o iocharset=__utf8 __/dev/hdxx /path/to/mount_point
|
||||
系统会自动地将非utf8编码转为utf8编码,然后在查找包含unicode字符集的中文字体用于显示。
|
||||
|
||||
===== 2.23. 如何mount含有中文目录或文件名的NTFS Windows分区? =====
|
||||
作者:brep
|
||||
答:使用如下命令:
|
||||
|
||||
mount -t ntfs -o iocharset=cp936 /dev/hdxx /path/to/mount_point
|
||||
|
||||
作者:cobranail
|
||||
对于某些使用utf8为默认字符编码的发行版(比如Fedora Core系列,Ubuntu等)来说,应该使用:
|
||||
|
||||
mount -t ntfs -o iocharset=utf8 /dev/hdxx /path/to/mount_point
|
||||
|
||||
对于大部分发行版而言,默认的内核配置是不支持向ntfs文件系统写入数据的。
|
||||
|
||||
===== 2.24. 如何让Linux下的java程序正确显示和处理中文? =====
|
||||
在jre/lib/fonts/目录下建子目录fallback,把simsun.ttf或者其他中文字体拷贝到此目录。
|
||||
|
||||
2.25. 如何让Linux下的Qt程序正确显示和处理中文?
|
||||
|
||||
2.26. 如何让Linux下的GTK+/GTK+2.0程序正确显示和处理中文?
|
||||
|
||||
2.27. 如何让Linux下的Tcl/Tk程序正确显示和处理中文?
|
||||
|
||||
2.28. 如何让Linux下的OpenMotif/Lesstif程序正确显示和处理中文?
|
||||
|
||||
2.29. 如何在wine中运行中文windows程序?
|
||||
|
||||
===== 2.30. 用什么命令把GB2312/GBK/GB18030编码的文档转换为utf-8编码?如何反向转换? =====
|
||||
作者:notXX
|
||||
答:gb2312/gbk/gb18030 to utf-8使用如下命令将编码为gb18030的file1转化为编码为utf-8的file2:
|
||||
|
||||
iconv -f gb18030 -t utf-8 file1 > file2
|
||||
|
||||
有的系统没有gb18030字符集的支持,这个时候可以用:
|
||||
|
||||
iconv -f gbk -t utf-8 file1 > file2
|
||||
|
||||
或者:
|
||||
|
||||
iconv -f gb2312 -t utf-8 file1 > file2
|
||||
|
||||
iconv -f gb2312 -t utf-8 file1 -o file2
|
||||
|
||||
反之,可以这样转换:
|
||||
|
||||
iconv -f utf-8 -t gb18030 file2 > file1
|
||||
|
||||
或者:
|
||||
|
||||
iconv -f utf-8 -t gbk file2 > file1
|
||||
|
||||
或者:
|
||||
|
||||
iconv -f utf-8 -t gb2312 file2 > file1
|
||||
|
||||
更详细的用法请man iconv
|
||||
|
||||
===== 2.31. perl程序中如何转换GB2312/GBK/GB18030编码为utf-8编码?如何反向转换? =====
|
||||
=====作者: Yourway 答:从Perl5.8开始,可以使用Encode模块来完成这个操作。 use Encode;
|
||||
|
||||
$str_ust8 = encode("utf-8",decode("gbk",$str_gbk)); $str_gbk = encode("gbk", decode('utf-8',$str_utf8));
|
||||
|
||||
===== 2.32. C程序中如何转换GB2312/GBK/GB18030编码为utf-8编码?如何反向转换? =====
|
||||
作者:notXX
|
||||
答:参见如下的源代码:
|
||||
|
||||
FILE *fin, *fout;
|
||||
char *encFrom, *encTo;
|
||||
char bufin[1024], bufout[1024], *sin, *sout;
|
||||
int mode, lenin, lenout, ret, nline;
|
||||
iconv_t c_pt;
|
||||
encFrom = "utf-8";
|
||||
encTo = "gbk";
|
||||
if ((c_pt = iconv_open(encTo, encFrom)) == (iconv_t)-1) {
|
||||
printf("iconv_open false: %s ==> %s\n", encFrom, encTo);
|
||||
return -1;
|
||||
}
|
||||
iconv(c_pt, NULL, NULL, NULL, NULL);
|
||||
strcpy(bufin,"姝e父");
|
||||
lenin = strlen(bufin) + 1;
|
||||
lenout = 1024;
|
||||
sin = bufin;
|
||||
sout = bufout;
|
||||
iconv(c_pt,
|
||||
&sin,
|
||||
(size_t*)&lenin,
|
||||
&sout,
|
||||
(size_t*)&lenout);
|
||||
printf("%s -> %s: ret=%d, len_in=%d, len_out=%d\n",
|
||||
encFrom, encTo, ret, lenin, lenout);
|
||||
iconv_close(c_pt);
|
||||
printf("out= %s\n",&sout);
|
||||
|
||||
更详细的用法请man 3 iconv
|
||||
|
||||
2.33. 如何让SCIM成为默认输入法?
|
||||
|
||||
2.34. 如何让fcitx成为默认输入法?
|
||||
|
||||
2.35. Linux下如何输入GBK汉字?
|
||||
|
||||
===== 3. 文泉驿点阵宋体用户常见问题 =====
|
||||
3.1. 我使用的是Debian(Ubuntu/ArchLinux),成功安装wqy后为什么无法选择这个字体?
|
||||
作者:FangQ
|
||||
答:Debian以及Debian-based的Linux系统上__默认不支持纯点阵字体__了,不过在安装WQY字体时系统并不会报错。重新启用点阵字体,您需要使用下面的命令:
|
||||
|
||||
dpkg-reconfigure fontconfig
|
||||
|
||||
然后在回答第三个问题时选择yes即可。
|
||||
|
||||
您还可以通过下面命令
|
||||
|
||||
sudo unlink /etc/fonts/conf.d/30-debconf-no-bitmaps.conf
|
||||
|
||||
来实现同样的目的。如果您仅希望系统启用wqy点阵字体,您还可以使用carlos的方法,
|
||||
|
||||
sudo vi /etc/fonts/conf.d/50-xfonts-wqy.conf
|
||||
|
||||
然后拷贝粘贴下面的内容:
|
||||
|
||||
<selectfont>
|
||||
<acceptfont>
|
||||
<pattern>
|
||||
<patelt name="family"><string>WenQuanYi Bitmap Song</string></patelt>
|
||||
</pattern>
|
||||
</acceptfont>
|
||||
</selectfont>
|
||||
|
||||
===== 3.2. 使用Debian的用户,为什么在fc-cache后,fc-list不显示Wenquanyi的点阵字库? =====
|
||||
作者:RenYou
|
||||
在安装文泉驿点阵字体后,使用 fc-cache -v -f 可以看到字体所在的目录被cache了,但是 fc-list 却没有显示相应的字体。 这种情况很有可能是因为 fontconfig 的设置中禁用了点阵字体。 Debian用户可以用 dpkg-reconfigure fontconfig 重新配置。
|
||||
|
||||
或者您也可以这样,直接到/etc/fonts/conf.d/ 这个目录下面有一个链接文件,unlink掉就可以了。debian默认的不使用点阵字体,去掉链接就可以了
|
||||
|
||||
===== 3.3. 我使用的是Debian(Ubuntu/ArchLinux),在安装了xfonts-wqy包之后发现firefox显示速度变慢,请问应该怎么解决? =====
|
||||
作者:FangQ
|
||||
答:(如果您使用的是Debian Sid,您可以直接安装最新版本的xfonts-wqy,该字体包已经采用不压缩的pcf格式,不会再出现上述问题)。xfonts-wqy是carlosliu和caiqian两个人维护的一个文泉驿字体deb安装包,他们采用了压缩的pcf格式,而pcf.gz格式的字体,特别是在显示中文这样的大字符集时,系统渲染速度比较慢。把字体文件解压可以大大提高显示速度,方法为
|
||||
|
||||
cd /path/to/wqy/font/
|
||||
sudo gunzip wenquanyi*pcf.gz
|
||||
sudo rm fonts.dir fonts.scale fonts.cache*
|
||||
sudo mkfontdir .
|
||||
sudo cp fonts.dir fonts.scale
|
||||
sudo fc-cache -fv
|
||||
|
||||
我们正在与xfonts-wqy包的维护者联系,直接使用不压缩的字体格式。
|
||||
|
||||
===== 3.4. 我觉得某个汉字点阵比较难看,我应该如何反馈给开发者? =====
|
||||
作者:FangQ
|
||||
答:你可以把你认为难看的汉字输入在“文泉半两”需要优化的字体列表页面中的规定地方,这样开发者就可以有针对性的进行点阵的优化,使得用户可以尽快使用到优化后的点阵。
|
||||
|
||||
当然,对于一些书法基础比较好的朋友,你们可以直接帮助我们优化这些点阵,方法是首先安装我们提供的一个firefox搜索引擎,然后通过这个搜索连接直接定位汉字点阵,自行修改后保存即可。
|
||||
|
||||
===== 3.5. 为什么我在term中使用wqy点阵字体,英文很难看,没有办法对齐? =====
|
||||
作者:FangQ
|
||||
答:英文字体有两大类,一类叫等宽字体,所有字母数字宽度相同;一类叫非等宽字体,字母数字宽度不同(比如i和m两个字母)。__文泉驿点阵宋体中的英文是非等宽__的,而一般term中使用的英文字体要求是等宽的,这样就造成了显示上的问题。我们的建议是:在字体选择对话框中选择一个合适的等宽英文字体,如果系统上正确安装了wqy字体,那么term在显示中文时会自动使用wqy点阵字体来显示。
|
||||
|
||||
===== 3.6. 我安装了TTF版本的文泉驿点阵宋体,为何系统升级后字体就无法使用了? =====
|
||||
作者:FangQ
|
||||
答:TTF版本的文泉驿点阵宋体采用了一种比较特殊的TTF格式,即SFNT TTF 格式。这种字体中只有点阵部分,而没有矢量部分。幸运的是,FreeType2支持这种格式;不幸的是,很多字体设置的工具却不能正确识别这种字体中的信息,比如ttfmkdir和 fc-cache。我们在您下载的TTF安装包里面已经包含了手工编辑的字体设置文件,即 fonts.dir/fonts.scale/fonts.cache-1。您通过如前所述的方法设置好字体路径之后,如果你使用fc-cache -fv等命令(或者升级系统)之后,这些手工书写的文件将会被错误信息覆盖。您所需要作的是进入字体安装的目录,然后解压一个叫作font.config.tar.gz的文件,这样将会将恢复曾经备份过的字体信息。有时候您在解压之后,可能还需要touch *一下,并重新启动X窗口。
|
||||
|
||||
===== 3.7. 文泉驿字体是否支持繁体字? =====
|
||||
作者:FangQ
|
||||
答:支持,文泉驿点阵宋体覆盖了Unicode CJK Basic,其中包含了BIG5和GB12345编码中的所有繁体字。
|
||||
|
||||
===== 3.8. 文泉驿点阵宋体中是否使用了APL字体? =====
|
||||
作者:FangQ
|
||||
答:没有。APL与文泉驿点阵宋体的GPL授权是不兼容的,二者不能在一个字体中共同使用。我们的确使用了Firefly发布的firefly点阵字体1.3.0中的部分点阵,而这个字体是APL/GPL双重授权的。我们采用的是其中的GPL授权分支进行衍生的。
|
||||
|
||||
3.9. 如果我们不喜欢GPL授权,希望文泉驿字体重新授权为其他形式,比如APL或者OFL,请问应该怎么做?
|
||||
作者:FangQ
|
||||
答:对软件授权形式的更改需要获得全体版权人的同意。文泉驿点阵字体的版权人为文泉驿信任委员会和firefly共同拥有。对授权形式变更的建议请写信给 admin <at> wenq.org 或FangQ
|
||||
|
||||
===== 3.10. 文泉驿字体是否满足GB18030编码? =====
|
||||
作者:FangQ
|
||||
答:文泉驿字体与GB18030没有直接的关系.
|
||||
|
||||
如上所述, GB18030是一个编码的强制性国家标准. 这个标准规定了Unicode所收录的符号的一种与GBK/GB2312编码兼容的编码形式(也就是说某个unicode符号对应的编码值是多少.). __对GB18030的支持是通过一个unicode<->gb18030编码映射表实现的__. 也就是说, Linux之后中__只要locale信息中包含了这个映射表__, (可以用locale -a查看系统的locale表,可以用在编辑相关的配置文件后用locale-gen生成相关的locale)并且glibc中定义了相应的编码registry之后,gb18030标准的支持已经实现, 与系统上使用的字体没有关系 (微软Windows GB18030补丁中真正起作用的也只是一个编码转换表和转换函数, 以及GB18030的系统registry,与附带的字体没有直接关系).
|
||||
|
||||
文泉驿字体与其他大多数国际通用字体一样, __使用ISO10646编码(unicode)作为字体内部编码__, 字体内部编码与操作系统支持的语言编码没有直接的关系. 直接采用GB18030作为字体编码的通用字体也非常少见.
|
||||
|
||||
另外,GB18030对应的字符集是全部Unicode符号, 即包括CJK Basic, CJK扩展A区和B区的所有汉字以及非汉字符号. GB18030并没有对字体对该字符集覆盖的完备性上做任何规定. 事实上, 不可能也完全没有必要要求字体必须全部覆盖GB18030字符集. 据本人所知, 迄今还尚未有完全覆盖GB18030字符集的字体.
|
||||
|
||||
我们在一些文档中提到文泉驿字体将支持GB18030字符集的说法只是一种简化的说法, 并不准确. 这里的"GB18030字符集"只是CJK Basic+CJK ExtA的一个替换称呼, 与真正的GB18030字符集不同.
|
||||
|
||||
===== 3.11. 文泉驿字体是否能够在OpenOffice/Abiword/KOffice中使用? =====
|
||||
作者:FangQ
|
||||
答:文泉驿目前只发布了点阵字体,这种字为屏幕汉字显示进行了特别优化,但由于点阵字通常无法用于打印,OpenOffice等常用__排版软件一般要求使用矢量字体__,所以文泉驿的点阵字体暂时还无法用于排版软件当中。
|
||||
|
||||
我们建议用户安装__文鼎(包括unifonts,fireflysung)的矢量字体__来进行中文排版。文泉驿的新版本点阵包含了fontconfig配置允许点阵字与矢量汉字的共同显示。
|
||||
|
||||
文泉驿随后发布的矢量汉字字体将允许直接在Openoffice/Abiword/KOffice中使用。
|
||||
|
||||
====== 4. 文泉驿矢量中文字体常见问题 ======
|
||||
|
||||
===== 4.1. 文泉驿正黑体为什么不叫做ZhengHei而叫Zen Hei? =====
|
||||
作者:FangQ
|
||||
答:Zen Hei是正黑体的英文名称而并非拼音,就像"联想"的英文名称是lenovo,方正是founder一样。
|
||||
|
||||
===== 4.2. 如何获得文泉驿汉字笔画数据库?数据库以什么样的方式授权? =====
|
||||
作者:FangQ
|
||||
答:文泉驿志愿者开发的汉字笔画数据库目前仅用来制作文泉驿矢量汉字字体,以及本计划其他开源汉字相关的开发。我们不对外公开该数据库,也不授权/许可任何企业或个人以任何目的使用。该数据库的版权所有者为文泉驿信任委员会和FangQ。任何不包含在上述范围内的使用方式,必须获得版权人的书面许可,否则将视为侵权行为。
|
||||
|
||||
文泉驿参与者仍然对其个人独立完成并发送的汉字笔画数据拥有使用权。如果第三方需要使用少量汉字笔画数据,请查阅这些汉字对应的历史修订页面,并与所有作者联系,获得使用权。
|
||||
|
||||
需要强调的是,如果汉字笔画数据中使用了其他人完成的偏旁部件(%BBXCOMP或%COMP),则该发送作者将不再拥有独立的版权,这些数据的版权将归属文泉驿信任委员会所有。
|
||||
|
||||
5. 点阵中文制作常见问题
|
||||
|
||||
5.1. 在我的浏览器上不能编辑点阵,这是为什么?
|
||||
|
||||
5.2. 点阵预览不能自动更新怎么办?
|
||||
|
||||
5.3. 我想知道正在编辑的汉字的发音和意思应该怎么操作?
|
||||
|
||||
5.4. 如何升级和安装离线点阵制作工具?
|
||||
|
||||
5.5. 离线点阵工具在我的机器上无法启动,应该怎么办?
|
||||
|
||||
5.6. 离线点阵工具使用过程中异常退出,我应该怎么办?
|
||||
|
||||
5.7. 在线编辑时如何为自己设置一个用户名?
|
||||
|
||||
5.8. 如何给自己建立一个Wiki页面?
|
||||
|
||||
5.9. 如何查看一个点阵汉字的编辑历史?
|
||||
|
||||
5.10. 为何有的页面显示“本页只读”?
|
||||
|
||||
6. 矢量中文制作常见问题
|
||||
6.1. 能简单的说一下,怎么进行笔画分析吗?
|
||||
|
||||
6.2. 进行笔画分析有什么特别需要注意的吗?
|
||||
因为生成字体的时候需要笔画,和关键点的位置,所以首先是尽量保证笔画的正确性,然后就是关键点的位置要尽量接近给出的位置,
|
||||
|
||||
6.3. 笔画分析程序上方的“笔画数”与真实笔画不符合怎么办?
|
||||
|
||||
作者:FangQ
|
||||
答:这个笔画数中的数字是从Unicode学会网站上的unihan数据库中提取的。由于这个工作可能主要是台湾的学者参与并公布的,所以里面大多数汉字是以繁体字或者台湾书写习惯来进行统计的。
|
||||
|
||||
同时,另外一方面,我们现在能够找到的简体中文的开源资源非常非常有限,只有一个GB2312的48X48点阵字库(包含6763个汉字),而被unicode收录的汉字总数有7万多个。台湾拥有更多开源的资源(他们这方面工作做得比较早),其中CNS11643字库收录汉字5万多,我们为了尽可能地利用这些已有的资源,我采用了一个"quick and dirty"的办法,就是把简体中文的GB2312字库和CNS11643字库合并(这就是现在矢量笔画分析器显示的汉字图片,总数约5万多个),同时采用unihan中的笔画数目来进行校准(这些笔画对于很多简体中文字来说是错的)。
|
||||
|
||||
当您点击“发送”的时候,程序先检查当前汉字的图片是否是40X40,如果是则说明汉字来源为台湾的CNS11643字库,则检查笔画数是否与数据库中的吻合,不吻合不允许发送(数据库中的笔画数大多与这些繁体字是符合的);如果图片大小是48X48,说明是来自GB2312字库,这样程序会绕过笔画校验,直接发送(尽管上面显示的笔画数可能与真实制作的不同)。
|
||||
|
||||
对于简体中文,现在我还没有找到任何开放授权的笔画数数据库,所以这方面我们没有别的更好的选择,同时,这也说明了我们现在的工作的意义和重要性。
|
||||
|
||||
在笔画分析程序1.0正式版本中,对于笔画数目,我将添加几个新功能:
|
||||
|
||||
“笔画数”改名为“推荐笔画数”,然后点击出现一个说明
|
||||
用户可以对汉字添加注释,用户可以在其中说明汉字笔画数是否符合,对笔序的讨论、是否是台湾写法等等
|
||||
强制发送功能,如果您确信您录入的笔画是正确的,则按Ctrl+发送键,此时会取消笔画数校验。
|
||||
|
||||
。
|
||||
|
||||
7. 其它常见问题
|
||||
|
||||
7.1. 文泉驿的开源字体是不是没有版权?
|
||||
作者:FangQ
|
||||
答:错!文泉驿的开源字体是有版权的。“开源”是软件的授权方式,而并非版权形式。文泉驿的点阵字体版权所有者为房骞骞和文泉驿信任委员会。离线点阵和矢量开发软件的版权人为房骞骞。其实也正是因为文泉驿的软件(字体)有版权,版权人才可以对这些发布的软件定义使用授权方式(GPL)。
|
||||
|
||||
7.2. 如何正确使用文泉驿Wiki排版格式?
|
||||
答:参见WikiFormat
|
||||
7.3. 在什么情况下我可以在我修改的文泉驿字体中添加我的copyright声明?
|
||||
作者:FangQ
|
||||
答:文泉驿现在已经发布的字体都是遵循开源授权的字体。这些字体的授权允许用户修改并再发布。但并不是所有的修改都可以添加修改者版权声明,这取决于这种修改是否足够创新并产生新的版权(或者说这些修改能够对软件产生质量的飞跃)。
|
||||
|
||||
对软件的修改不构成新的版权的例子非常多,比如把两个GPL软件放在一起压缩成一个文件,或者把一个点阵字体中修改一个像素,然后重新发布等等。这些工作都是没有足够的创新性的工作,对软件没有造成质的飞跃,或者说是trivial的,所以这些修改后,修改者不应该把自己的copyright标识添加在软件中。
|
||||
|
||||
另外软件修改者的版权声明必须有年份才有效,一般格式为copyright (c) 200x,200x...。一个开源软件可能是不同的人在不同的时间积累完成的。软件的版权声明必须明确你对于哪些年份中修改的这个软件的版本具有版权,而并非一概将所有版权都收于自己名下。
|
||||
109
Zim/Linux/Archlinux/Font/网页常用字体.txt
Normal file
@@ -0,0 +1,109 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-09-24T11:36:57+08:00
|
||||
|
||||
====== 网页常用字体 ======
|
||||
Created Saturday 24 September 2011
|
||||
http://www.webjx.com/css/divcss-19285.html
|
||||
在Web编码中,CSS默认应用的Web字体是有限的,虽然在新版本的CSS3,我们可以通过新增的@font-face属性来引入特殊的浏览器加载字体,但多数情况下,考虑各个因素的影响我们还是在尽量充分利用这些默认调用的字体实现CSS的编写,这里整理了19个Web安全字体,让你无需任何顾虑的情况下畅快使用。
|
||||
|
||||
===== 1, Arial =====
|
||||
微软公司的网页核心字体之一,__最常用__的sans serif字体,当字号很小时不容易阅读。但是,大写的“I”和小写的“l”是无法区别的,你可以考虑用Tahoma字体来替代。(苹果系统没有这种字体,但有一种对应于Arial的字体叫Helvetica,它是MAC机上与Arial 字体最相似的WEB字体,是别一种非衬线字体.它是一种性能优良的打印字体,但在屏幕上表现不是很好,说道Helvetica字体,昨天发现了很多有意思的站点,主要是纪念Helvetica字体诞生50年而设的。)
|
||||
{{./arial.png}}
|
||||
|
||||
CSS写法:font-family: Arial, Helvetica, sans-serif;
|
||||
|
||||
===== 2, Arial Black =====
|
||||
{{./arial-balck.png}}
|
||||
|
||||
CSS写法:font-family: ‘Arial Black’, Gadget, sans-serif;
|
||||
|
||||
===== 3, Arial Narrow =====
|
||||
{{./arial-narrow.png}}
|
||||
|
||||
CSS写法:font-family: ‘Arial Narrow’, sans-serif;
|
||||
|
||||
===== 4, Verdana =====
|
||||
|
||||
微软公司的网页核心字体之一,微软公司专门为屏幕显示而开发的。应用广泛。易于阅读。是__显示器中最清晰__的字体,即使字号很小,也很容易阅读。半肥猫比较喜欢采用10PX的Verdana来做英文正文字体,也推荐大家使用,但字号最好介于10~14像素之间,超出这个范围就不好看了。
|
||||
{{./verdana.png}}
|
||||
CSS写法:font-family: Verdana, Geneva, sans-serif;
|
||||
|
||||
===== 5, Georgia =====
|
||||
微软公司的网页核心字体之一,可用性好。可读性比Times New Roman强。是网站设计中,__浏览效果最好的serif字体__,因为它是专为网上阅读设计的。)
|
||||
{{./georgia.png}}
|
||||
CSS写法:font-family: Georgia, serif;
|
||||
|
||||
===== 6, Times New Roman =====
|
||||
微软公司的网页核心字体之一,可能是最常用的**serif字体**,是网站浏览器__默认的字体__,12pt以上的字体容易阅读,但小字号的字体易读性差。(苹果系统没有这个字体,有一个对应于Times New Roman的字体叫Times)
|
||||
{{./times-new-roman.png}}
|
||||
CSS写法:font-family: 'Times New Roman', Times, serif;
|
||||
|
||||
===== 7, Trebuchet MS =====
|
||||
微软公司的网页核心字体之一,与Arial相似,半肥猫觉得:Trebuchet MS比Arial看起来优雅、古典一点。可以用来做标题,但小字号阅读起来会很困难(低于13PIX阅读起来就很累了,不太推荐用来做正文字体)。在苹果系统上也可以用Helvetica做替代。
|
||||
{{./trebuchet-ms.png}}
|
||||
CSS写法:font-family: 'Trebuchet MS', Helvetica, sans-serif;
|
||||
|
||||
===== 8 , Courier New =====
|
||||
微软公司的网页核心字体之一,__老式打印机字体__,有一种独特的机械工整感觉。呈现计算机编码时,还会用到这种字体。12 pt的Courier New字体曾是美国国务院的公文标准字体,但于2004年1月停用,改使用14 pt的Times New Roman,因为其具“现代性”和“易读性”。
|
||||
{{./courier-new.png}}
|
||||
CSS写法:font-family: 'Courier New', Courier, monospace;
|
||||
|
||||
===== 9, Impact =====
|
||||
微软公司的网页核心字体之一,Impact是1965年发表的一个**无衬线字体**,其特粗的笔画、紧缩的间距。半肥猫觉得:字体较为粗犷,适合使用在标题上,而不常用在内文。
|
||||
{{./impact.png}}
|
||||
CSS写法:font-family: Impact, Charcoal, sans-serif;
|
||||
|
||||
===== 10, Comic Sans MS =====
|
||||
微软公司的网页核心字体之一,手写体。这是一种争议很大的字体,讲实话,半肥猫也不喜欢这个字体,一点美感都没有,不过在一大堆规规矩矩的字体里面,有这么一个随意性比较的字体,可以变换一下口味,也算不错吧,建议不要用在正规的金融、政府、商业机构站点。
|
||||
{{./comic-sans-ms.png}}
|
||||
CSS写法:font-family: 'Comic Sans MS', cursive;
|
||||
|
||||
===== 11, Tahoma =====
|
||||
Tahoma是一个十分常见的**无衬线字体**,Tahoma和Verdana师出同为名设计师马修·卡特的作品,由微软在1999年推出,被采用为Windows 2000、Windows XP、Windows Server 2003等系统的**默认字型**。半肥猫觉得:它的字体结构和Verdana很相似,其字符间距较小,用来作为标题,效果好过Arial(Tahoma的大写I 和小写l比Arial容易识别),但如果作为正文,他的字号不能小于13PIX,否则很多笔画粘连到一起,不利于阅读。
|
||||
{{./tahoma.png}}
|
||||
CSS写法:font-family: Tahoma, Geneva, sans-serif;
|
||||
|
||||
===== 12, Courier =====
|
||||
Courier是一个**等宽字体的粗衬线字体**,主要是依据打字机所打印出来的字型来设计。原来Courier New的字体是IBM公司在1950年代设计给打印机使用的字体,后来这个字型成为整个__打字机制造业的标准__。Courier New是Courier的变体,比Courier更具机械味道。
|
||||
{{./courier-new.png}}
|
||||
CSS写法:font-family: Courier, monospace;
|
||||
|
||||
===== 13, Lucida Sans Unicode =====
|
||||
是一种OpenType型的无衬线字体 。1993年制作并随微软公司的Windows NT 3.1操作系统发布。有较大的x字高,具有很好的可读性,被广泛用于显示、出版等各种用途。它支持Unicode2.0版本的基本字符,包括拉丁字母,希腊字母,西里尔字母,希伯来字母,以及国际音标字符。该字体是首个 Unicode代码的字体, 该字体从Windows 98开始一直作为系统预装字体发行。后来发布的 Lucida Grande字体作为苹果公司Mac OS X系统的默认字体发布。
|
||||
|
||||
CSS写法:font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif;
|
||||
|
||||
===== 14, Lucida Console =====
|
||||
同Lucida Sans Unicode类似。
|
||||
{{./lucida-console.png}}
|
||||
CSS写法:font-family: 'Lucida Console', Monaco, monospace;
|
||||
|
||||
===== 15, Garamond =====
|
||||
Garamond(加拉蒙德)是一类**西文衬线字体**的总称,自16世纪40年代开始至今,有很多家公司和很多设计师参与到Garamond字体设计,如: Adobe Garamond, Monotype Garamond, Sioncini Garamond,和 Stempel Garamond等等。半肥猫觉得:字体给人端庄典雅,有些古典的感觉,在博物馆和历史性悠久的项目中使用,应该可以获得不错的效果。
|
||||
{{./garamond.png}}
|
||||
CSS写法:font-family: Garamond, serif;
|
||||
|
||||
===== 16 , MS Sans Serif =====
|
||||
微软系统自带字体。__屏幕显示的像素字体__。非衬线字体。
|
||||
{{./ms-sans-serif.png}}
|
||||
CSS写法:font-family: 'MS Sans Serif', Geneva, sans-serif;
|
||||
|
||||
===== 17 , MS Serif =====
|
||||
微软系统自带字体。屏幕显示的像素字体。衬线字体。
|
||||
CSS写法:font-family: 'MS Serif', 'New York', sans-serif;
|
||||
|
||||
===== 18, Palatino Linotype =====
|
||||
{{./palatino-linotype.png}}
|
||||
CSS写法:font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, serif;
|
||||
|
||||
===== 19, Symbol =====
|
||||
{{./symbol.png}}
|
||||
CSS写法:font-family: Symbol, sans-serif;
|
||||
|
||||
===== 20, Bookman Old Style =====
|
||||
{{./bookman-old-style.png}}
|
||||
|
||||
CSS写法:font-family: 'Bookman Old Style', serif;
|
||||
|
||||
本文参考了WEB安全字体,希望在Web编写过程中这些核心的Web字体能对你有用。
|
||||
BIN
Zim/Linux/Archlinux/Font/网页常用字体/arial-balck.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/arial-narrow.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/arial.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/bookman-old-style.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/comic-sans-ms.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/courier-new.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/garamond.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/georgia.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/impact.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/lucida-console.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/ms-sans-serif.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/palatino-linotype.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/symbol.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/tahoma.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/times-new-roman.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/trebuchet-ms.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Zim/Linux/Archlinux/Font/网页常用字体/verdana.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
370
Zim/Linux/Archlinux/LnF_Awards_2010.txt
Normal file
@@ -0,0 +1,370 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-03-28T21:02:32+08:00
|
||||
|
||||
====== LnF Awards 2010 ======
|
||||
Created Monday 28 March 2011
|
||||
https://bbs.archlinux.org/viewtopic.php?id=88515
|
||||
|
||||
Another year, another set of awards to give out... More likely than not, we will see many of the same candidates as last year, but given the recent trend in software development I'm expecting to see some new arrivals. I will be regularly updating this post with an overall count of the votes.
|
||||
|
||||
Diplay/Login Managers
|
||||
- [56] None/startx/xinitrc
|
||||
- [22] SLiM
|
||||
- [4] CDM
|
||||
- [1] XDM
|
||||
|
||||
Tiling Window Managers
|
||||
- [17] Awesome
|
||||
- [16] DWM
|
||||
- [14] XMonad
|
||||
- [6] PyTyle
|
||||
- [6] wmii
|
||||
- [4] Musca
|
||||
- [4] ratpoison
|
||||
- [3] Scrotwm
|
||||
- [2] i3
|
||||
- [1] Ion
|
||||
- [1] StumpWM
|
||||
- [1] subtle
|
||||
- [1] WMFS
|
||||
|
||||
Floating Window Managers
|
||||
- [42] Openbox
|
||||
- [10] Fluxbox
|
||||
- [4] Compiz
|
||||
- [3] PekWM
|
||||
- [1] evilwm
|
||||
- [1] JWM
|
||||
- [1] WindowMaker
|
||||
|
||||
Desktop Environments
|
||||
- [10] Xfce
|
||||
- [4] LXDE
|
||||
- [3] GNOME
|
||||
- [1] KDE
|
||||
- [1] KDEmod
|
||||
|
||||
Shells
|
||||
- [56] Bash
|
||||
- [30] ZSH
|
||||
- [1] fish
|
||||
- [1] ksh
|
||||
|
||||
Archive Managers
|
||||
- [34] tar
|
||||
- [10] Xarchiver
|
||||
- [7] bsdtar
|
||||
- [6] File Roller
|
||||
- [4] P7ZIP
|
||||
- [3] atool
|
||||
- [2] Squeeze
|
||||
- [1] coreutils
|
||||
- [1] FlyBack
|
||||
|
||||
CD Burners
|
||||
- [14] cdrkit
|
||||
- [8] K3b
|
||||
- [7] Xfburn
|
||||
- [6] BashBurn
|
||||
- [5] Brasero
|
||||
- [2] cdrtools
|
||||
- [1] DVD+RW-tools
|
||||
- [1] Graveman
|
||||
- [1] SoX
|
||||
|
||||
CD Rippers
|
||||
- [10] abcde
|
||||
- [6] dd
|
||||
- [4] Asunder
|
||||
- [4] CDParanoia
|
||||
- [4] rubyripper
|
||||
- [2] Sound Juicer
|
||||
- [1] LAME
|
||||
- [1] soundKonverter
|
||||
|
||||
Communications Apps
|
||||
- [2] Skype
|
||||
- [1] Linphone{,-cli}
|
||||
- [1] SipToSis
|
||||
|
||||
Email Clients
|
||||
- [19] Mutt
|
||||
- [13] Thunderbird
|
||||
- [10] Claws Mail
|
||||
- [3] Alpine
|
||||
- [3] Sup
|
||||
- [1] offlineimap
|
||||
|
||||
File Managers
|
||||
- [30] coreutils
|
||||
- [19] PCManFM
|
||||
- [18] Thunar
|
||||
- [12] vifm
|
||||
- [6] mc
|
||||
- [6] Ranger
|
||||
- [3] ROX-Filer
|
||||
- [3] XFE
|
||||
- [1] Dolphin
|
||||
- [1] emelFM2
|
||||
- [1] pyfmii
|
||||
- [1] Tux Commander
|
||||
- [1] Worker
|
||||
|
||||
Image Editors (Raster)
|
||||
- [28] GIMP
|
||||
- [8] ImageMagick
|
||||
- [4] mtPaint
|
||||
- [1] CinePaint
|
||||
- [1] Fotoxx
|
||||
- [1] KolourPaint
|
||||
- [1] PGF/TikZ
|
||||
|
||||
Image Editors (Vector)
|
||||
- [14] Inkscape
|
||||
|
||||
Image Viewers
|
||||
- [46] Feh
|
||||
- [20] Mirage
|
||||
- [11] GPicView
|
||||
- [6] GQview
|
||||
- [4] Gwenview
|
||||
- [3] Geeqie
|
||||
- [2] Comix
|
||||
- [2] GLiv
|
||||
- [2] XV
|
||||
- [1] cacaview
|
||||
- [1] Eye Of Gnome
|
||||
- [1] fbida
|
||||
- [1] fbv
|
||||
- [1] QIV
|
||||
- [1] Viewnior
|
||||
|
||||
Instant Messengers
|
||||
- [34] Pidgin
|
||||
- [17] BitlBee
|
||||
- [5] emesene
|
||||
- [4] CenterIM
|
||||
- [3] Finch
|
||||
- [3] MCabber
|
||||
- [1] aMSN
|
||||
- [1] Gajim
|
||||
- [1] Kopete
|
||||
- [1] Minbif
|
||||
- [1] Miranda
|
||||
- [1] Psi
|
||||
|
||||
IRC Clients
|
||||
- [36] Irssi
|
||||
- [13] WeeChat
|
||||
- [9] XChat
|
||||
- [2] Pidgin
|
||||
- [1] ChatZilla!
|
||||
- [1] Konversation
|
||||
|
||||
Music Players
|
||||
- [28] ncmpcpp
|
||||
- [15] mocp
|
||||
- [7] Sonata
|
||||
- [6] cmus
|
||||
- [5] mpc
|
||||
- [3] gmusicbrowser
|
||||
- [3] Goggles Music Manager
|
||||
- [2] Amarok
|
||||
- [2] Banshee
|
||||
- [1] Ario
|
||||
- [1] Audacious
|
||||
- [1] cPlay
|
||||
- [1] DeaDBeeF
|
||||
- [1] Decibel
|
||||
- [1] EMMS
|
||||
- [1] Exaile
|
||||
- [1] GMPC
|
||||
- [1] ncmpc
|
||||
- [1] Pianobar
|
||||
- [1] pyampc
|
||||
- [1] Quod Libet
|
||||
- [1] vitunes
|
||||
|
||||
Network Managers
|
||||
- [29] wicd{,-curses}
|
||||
- [19] netcfg
|
||||
- [10] {if,iw}config/dhcpcd
|
||||
- [3] NetworkManager
|
||||
- [1] ifplugd
|
||||
- [1] WvDial
|
||||
|
||||
Office Apps (Spreadsheet/Math):
|
||||
- [5] Gnumeric
|
||||
- [2] gnuplot
|
||||
- [2] Mathematica
|
||||
- [2] OpenOffice
|
||||
- [2] R
|
||||
- [1] ESS
|
||||
- [1] Qalculate!
|
||||
- [1] sc
|
||||
- [1] wxMaxima
|
||||
|
||||
Office Apps (Word Processing)
|
||||
- [26] OpenOffice
|
||||
- [11] AbiWord
|
||||
- [11] VIM-LaTeX
|
||||
- [3] AUCTeX
|
||||
- [4] Go-OO
|
||||
- [4] LyX
|
||||
- [3] LaTeX
|
||||
- [1] teTeX
|
||||
- [1] Texmaker
|
||||
- [1] xdvi
|
||||
|
||||
Office Apps (Other)
|
||||
- [4] Calcurse
|
||||
- [1] Remind
|
||||
- [1] Sane/XSane
|
||||
- [1] scrot
|
||||
|
||||
Package Managers
|
||||
- [38] pacman/makepkg
|
||||
- [19] yaourt
|
||||
- [6] Clyde
|
||||
- [6] packer
|
||||
- [2] aurget
|
||||
- [2] bauerbill
|
||||
- [2] powerpill
|
||||
- [1] Slurpy
|
||||
|
||||
PDF Readers
|
||||
- [26] Evince
|
||||
- [20] apvlv
|
||||
- [20] EPDFView
|
||||
- [10] Xpdf
|
||||
- [9] zathura
|
||||
- [3] Okular
|
||||
- [2] Acrobat Reader
|
||||
- [2] MuPDF
|
||||
|
||||
RSS Readers
|
||||
- [6] newsbeuter
|
||||
- [5] Liferea
|
||||
- [3] Snownews
|
||||
- [2] Akregator
|
||||
- [2] rsstail
|
||||
- [1] GNUS
|
||||
- [1] Sage
|
||||
- [1] voracious
|
||||
|
||||
Security/Backup Utilities
|
||||
- [10] slock
|
||||
- [2] alock
|
||||
- [1] GPass
|
||||
- [1] KeePassX
|
||||
- [1] rsync
|
||||
- [1] XScreenSaver
|
||||
|
||||
System Monitors
|
||||
- [49] {h,}top
|
||||
- [29] Conky{,-cli}
|
||||
- [3] ps
|
||||
- [3] statnot
|
||||
- [2] Iotop
|
||||
- [2] xfce4-taskmanager
|
||||
- [1] GKrellM
|
||||
- [1] Gnome System Monitor
|
||||
- [1] MultiTail
|
||||
- [1] LXTask
|
||||
|
||||
System Panels/Menus/Trays
|
||||
- [24] Tint2
|
||||
- [22] dmenu
|
||||
- [8] dzen
|
||||
- [4] fbpanel
|
||||
- [3] BMPanel
|
||||
- [3] Trayer
|
||||
- [3] xmobar
|
||||
- [2] gmrun
|
||||
- [2] NetWMPager
|
||||
- [2] Xfce4-Panel
|
||||
- [2] yaganesh
|
||||
- [1] Cairo-Dock
|
||||
- [1] LXPanel
|
||||
- [1] stalonetray
|
||||
|
||||
Terminal Emulators
|
||||
- [53] rxvt-unicode
|
||||
- [14] XTERM
|
||||
- [9] tmux
|
||||
- [7] Terminal
|
||||
- [5] Sakura
|
||||
- [4] LilyTerm
|
||||
- [4] ROXTerm
|
||||
- [4] Screen
|
||||
- [4] Terminator
|
||||
- [2] Gnome Terminal
|
||||
- [1] stjerm
|
||||
- [1] Tilda
|
||||
|
||||
Text Editors
|
||||
- [58] vim
|
||||
- [13] Geany
|
||||
- [13] nano
|
||||
- [6] Mousepad
|
||||
- [5] Emacs
|
||||
- [2] gedit
|
||||
- [2] Leafpad
|
||||
- [1] medit
|
||||
- [1] ne
|
||||
- [1] SciTE
|
||||
|
||||
Torrent Clients
|
||||
- [33] rTorrent
|
||||
- [15] Transmission{,-cli}
|
||||
- [14] Deluge
|
||||
- [1] btpd
|
||||
- [1] MLDonkey
|
||||
|
||||
Video Players
|
||||
- [62] MPlayer
|
||||
- [18] VLC
|
||||
- [11] SMPlayer
|
||||
- [2] xine
|
||||
- [1] Totem
|
||||
|
||||
Web Browsers
|
||||
- [35] Firefox
|
||||
- [25] Chromium
|
||||
- [21] uzbl
|
||||
- [5] Opera
|
||||
- [4] Midori
|
||||
- [4] vimprobable
|
||||
- [3] Conkeror
|
||||
- [3] ELinks
|
||||
- [2] Iron
|
||||
- [2] Links
|
||||
- [2] W3M
|
||||
- [1] Arora
|
||||
- [1] Epiphany
|
||||
- [1] Lynx
|
||||
|
||||
Web Utilities
|
||||
- [6] OpenSSH
|
||||
- [3] TTYtter
|
||||
- [1] Drivel
|
||||
- [1] gPodder
|
||||
- [1] prowl.pl
|
||||
|
||||
Other Apps
|
||||
- [4] Nitrogen
|
||||
- [4] skvm
|
||||
- [2] pmount
|
||||
- [1] gPhoto/gtkam
|
||||
- [1] LXAppearance
|
||||
- [1] Octave
|
||||
- [1] Wyrd
|
||||
- [1] Xephyr
|
||||
- [1] XBMC
|
||||
|
||||
Overall best application for 2010
|
||||
- MPlayer currently winning with 62 votes.
|
||||
|
||||
Last user voted
|
||||
- mythus
|
||||
104
Zim/Linux/Archlinux/LnF_Awards_2010/LnF_Awards_2011.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-04-02T22:06:06+08:00
|
||||
|
||||
====== LnF Awards 2011 ======
|
||||
Created Saturday 02 April 2011
|
||||
https://bbs.archlinux.org/viewtopic.php?id=111878
|
||||
noticeable winners(so far)
|
||||
|
||||
Display/Login Managers
|
||||
1. none/startx/xinit
|
||||
2. slim
|
||||
|
||||
Tiling Window Managers
|
||||
1. dwm
|
||||
2. awesome
|
||||
3. xmonad
|
||||
|
||||
Floating Window Managers
|
||||
1. openbox
|
||||
|
||||
Desktop Environments
|
||||
1. xfce4
|
||||
|
||||
Shells
|
||||
1. bash
|
||||
2. zsh
|
||||
|
||||
Archive Managers
|
||||
1. xarchiver
|
||||
2. tar
|
||||
|
||||
File Managers
|
||||
1. ranger
|
||||
2. thunar
|
||||
3. pcmanfm
|
||||
4. coreutils
|
||||
|
||||
Image Editors (Raster)
|
||||
1. gimp
|
||||
|
||||
Image Editors (Vector)
|
||||
1. inkscape
|
||||
|
||||
Image Viewers
|
||||
1. feh
|
||||
2. gpicview
|
||||
3. mirage
|
||||
*updated
|
||||
|
||||
Instant Messengers
|
||||
1.pidgin
|
||||
|
||||
IRC Clients
|
||||
1. irssi
|
||||
|
||||
Network Managers
|
||||
1. wicd
|
||||
2. netcfg
|
||||
|
||||
Office Apps (Spreadsheet/Math)
|
||||
1. libreoffice
|
||||
2. gnumeric
|
||||
|
||||
Office Apps (Word Processing)
|
||||
1. abiword
|
||||
2. libreoffice
|
||||
|
||||
Package Managers
|
||||
1. pacman
|
||||
2. yaourt
|
||||
|
||||
PDF Readers
|
||||
1. zathura
|
||||
2. evince
|
||||
3. epdfview
|
||||
|
||||
RSS Readers
|
||||
1. newsbeuter
|
||||
|
||||
System Panels/Menus/Trayer
|
||||
1. tint2
|
||||
2. dzen2
|
||||
|
||||
Terminal Emulators
|
||||
1. rxvt-unicode
|
||||
|
||||
Text Editors
|
||||
1. vim/vi
|
||||
2. geany
|
||||
3. emacs
|
||||
|
||||
Torrent Clients
|
||||
1. rtorrent
|
||||
2. transmission
|
||||
|
||||
Video Players
|
||||
1. mplayer
|
||||
2. vlc
|
||||
3. smplayer
|
||||
|
||||
Web Browsers
|
||||
1. firefox
|
||||
2. chromium
|
||||
22
Zim/Linux/Archlinux/Scim.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-03-27T19:05:39+08:00
|
||||
|
||||
====== Scim ======
|
||||
Created Sunday 27 March 2011
|
||||
|
||||
===== Install nessary pacakages =====
|
||||
**$ sudo apt-get install scim language-pack-ta language-pack-ta-base scim-tables-additional scim-modules-table**
|
||||
|
||||
===== then put some envs in your bash init file(.bashrc). =====
|
||||
export XMODIFIERS="@im=SCIM"
|
||||
export GTK_IM_MODULE=xim
|
||||
export QT_IM_MODULE=xim
|
||||
export XIM_PROGRAM="scim -d"
|
||||
|
||||
or
|
||||
export GTK_IM_MODULE=scim
|
||||
export QT_IM_MODULE=scim
|
||||
|
||||
===== Logout and in. =====
|
||||
Then an icon should appear in the panel, click on it and choose language .
|
||||
1110
Zim/Linux/Archlinux/awesome.txt
Normal file
36
Zim/Linux/Archlinux/awesome/awesome.sh.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-03-27T20:23:03+08:00
|
||||
|
||||
====== awesome.sh ======
|
||||
Created Sunday 27 March 2011
|
||||
|
||||
把下面的内容放到主目录的.awesome.sh 文件中
|
||||
然后在目录/usr/share/Xsession下建一个启动项,这样开机的gdm界面中接可以选择awesome的桌面环境
|
||||
|
||||
#! /bin/bash
|
||||
sleep 2
|
||||
xsetroot -solid black &
|
||||
#启动屏保程序
|
||||
gnome-screensaver &
|
||||
#启用gnome的主题,否则你的awesome下的gnome程序会非常难看
|
||||
gnome-settings-daemon &
|
||||
#电源管理程序
|
||||
gnome-power-manager &
|
||||
#网络管理程序
|
||||
nm-applet &
|
||||
#自动更新程序
|
||||
update-notifier &
|
||||
exec /usr/bin/awesome
|
||||
|
||||
建立gdm的启动项:
|
||||
/usr/share/xsessions/awesome.desktop
|
||||
内容如下:
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=awesome
|
||||
Comment=Leightweight tiling window manager
|
||||
Exec=/hoem/geekard/.awesome.sh
|
||||
Icon=awesome.png
|
||||
Type=XSession
|
||||
|
||||
782
Zim/Linux/Archlinux/awesome/rc-all.lua.txt
Normal file
@@ -0,0 +1,782 @@
|
||||
Content-Type: text/x-zim-wiki
|
||||
Wiki-Format: zim 0.4
|
||||
Creation-Date: 2011-05-30T21:00:55+08:00
|
||||
|
||||
====== rc-all.lua ======
|
||||
Created Monday 30 May 2011
|
||||
|
||||
-- the icons used by this configure file, they should be removed when you used this file,
|
||||
-- and please make sure folloing icons defined in your theme file.
|
||||
-- (eg.:/usr/share/awesome/theme/default)
|
||||
[[./deault|link to theme default]]
|
||||
theme.awesome_icon = "/usr/share/awesome/icons/qeye.png"
|
||||
-- icons for menu
|
||||
theme.menu_terminal = "/usr/share/awesome/themes/default/menu/terminal.png"
|
||||
theme.menu_firefox = "/usr/share/awesome/themes/default/menu/firefox.png"
|
||||
theme.menu_emacs = "/usr/share/awesome/themes/default/menu/emacs.png"
|
||||
theme.menu_nautilus = "/usr/share/awesome/themes/default/menu/nautilus.png"
|
||||
theme.menu_smplayer = "/usr/share/awesome/themes/default/menu/smplayer.png"
|
||||
theme.menu_zim = "/usr/share/awesome/themes/default/menu/zim.png"
|
||||
|
||||
--icons for widgets
|
||||
theme.widget_net_down = "/usr/share/awesome/themes/default/widgets/network/down.png"
|
||||
theme.widget_net_up = "/usr/share/awesome/themes/default/widgets/network/up.png"
|
||||
theme.widget_cpu = "/usr/share/awesome/themes/default/widgets/cpu.png"
|
||||
theme.widget_mem = "/usr/share/awesome/themes/default/widgets/mem.png"
|
||||
theme.widget_mail = "/usr/share/awesome/themes/default/widgets/mail.png"
|
||||
theme.widget_wifi = "/usr/share/awesome/themes/default/widgets/wifi.png"
|
||||
theme.widget_volume = "/usr/share/awesome/themes/default/widgets/volume.png"
|
||||
theme.widget_upgrade = "/usr/share/awesome/themes/default/widgets/upgrade.png"
|
||||
theme.widget_uptime = "/usr/share/awesome/themes/default/widgets/uptime.png"
|
||||
theme.widget_fs = "/usr/share/awesome/themes/default/widgets/fs.png"
|
||||
theme.widget_mpd = "/usr/share/awesome/themes/default/widgets/music.png"
|
||||
theme.widget_cal = "/usr/share/awesome/themes/default/widgets/cal.png"
|
||||
theme.widget_clock = "/usr/share/awesome/themes/default/widgets/clock.png"
|
||||
-- end icons (aboving lines should be moved to theme.lua file)
|
||||
|
||||
-- Standard awesome library
|
||||
require("awful")
|
||||
require("awful.autofocus")
|
||||
require("awful.rules")
|
||||
require("beautiful")
|
||||
require("naughty")
|
||||
require("vicious")
|
||||
|
||||
-- Variable definitions
|
||||
beautiful.init("/usr/share/awesome/themes/default/theme.lua")
|
||||
terminal = "xterm"
|
||||
editor = os.getenv("EDITOR") or "gvim"
|
||||
editor_cmd = terminal .. " -e " .. editor
|
||||
modkey = "Mod4"
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
layouts =
|
||||
{
|
||||
awful.layout.suit.floating,
|
||||
--awful.layout.suit.tile,
|
||||
awful.layout.suit.tile.left,
|
||||
--awful.layout.suit.tile.bottom,
|
||||
awful.layout.suit.tile.top,
|
||||
--awful.layout.suit.fair,
|
||||
awful.layout.suit.fair.horizontal,
|
||||
--awful.layout.suit.spiral,
|
||||
awful.layout.suit.spiral.dwindle,
|
||||
--awful.layout.suit.max,
|
||||
--awful.layout.suit.max.fullscreen,
|
||||
--awful.layout.suit.magnifier
|
||||
}
|
||||
|
||||
-- Tags
|
||||
-- Define a tag table which hold all screen tags.
|
||||
tags = {}
|
||||
for s = 1, screen.count() do
|
||||
-- Each screen has its own tag table.
|
||||
tags[s] = awful.tag({ '|1.Term', '|2.www', '|3.Dev', '|4.Edit', '|5.File', '|6.Fun',
|
||||
'|7.Misc', '|8.Tmp'}, s, layouts[1])
|
||||
end
|
||||
|
||||
-- Menu
|
||||
-- Create a laucher widget and a main menu
|
||||
myawesomemenu = {
|
||||
--{ "manual", terminal .. " -e man awesome" },
|
||||
--{ "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
|
||||
{ "restart", awesome.restart },
|
||||
{ "quit", awesome.quit }
|
||||
}
|
||||
|
||||
mymainmenu = awful.menu({ items = {-- fromat: { clientname, command, icon }
|
||||
{ "terminal", terminal, beautiful.menu_terminal},
|
||||
{ "firefox ", "firefox", beautiful.menu_firefox},
|
||||
{ "emacs", "emacs", beautiful.menu_emacs},
|
||||
{ "zim wiki", "zim", beautiful.menu_zim},
|
||||
{ "nautilus", "nautilus", beautiful.menu_nautilus},
|
||||
{ "smplayer", "smplayer", beautiful.menu_smplayer},
|
||||
{ "awesome", myawesomemenu, beautiful.awesome_icon }
|
||||
}
|
||||
})
|
||||
|
||||
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon), menu = mymainmenu })
|
||||
|
||||
-- Startup process
|
||||
awful.util.spawn(os.getenv("PATH"))
|
||||
--ATENTION!!! : .Xdefaults and .Xresources shouled be chosed one to exec.
|
||||
--awful.util.spawn_with_shell("xrdb ~/.Xdefaults")
|
||||
awful.util.spawn_with_shell("xrdb ~/.Xresources")
|
||||
awful.util.spawn_with_shell("ibus-daemon --xim")
|
||||
awful.util.spawn_with_shell("wicd-gtk")
|
||||
awful.util.spawn_with_shell("xmodmap ~/.xmodmap")
|
||||
--awful.util.spawn_with_shell("urxvtd -q -o -f")
|
||||
--awful.util.spawn_with_shell("mocp -S")
|
||||
--awful.util.spawn_with_shell("gnome-setting-deamon")
|
||||
--awful.util.spawn_with_shell("xbindkeys")
|
||||
--awful.util.spawn_with_shell("xcompmgr")
|
||||
--awful.util.spawn_with_shell("volwheel")
|
||||
--awful.util.spawn_with_shell("nm-applet")
|
||||
--awful.util.spawn_with_shell("feh —bg-scale /home/stesen/pic/dusk.png")
|
||||
--awful.util.spawn_with_shell("/home/stesen/.config/conky/start.sh")
|
||||
|
||||
-- {{{ Wibox
|
||||
|
||||
-- Separators
|
||||
spacer = widget({ type = "textbox"})
|
||||
separator = widget({ type = "textbox" })
|
||||
spacer.text = " "
|
||||
separator.text = "|"
|
||||
|
||||
-- Network usage widget
|
||||
-- Initialize widget
|
||||
netwidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(netwidget, vicious.widgets.net, '<span color="#CC9393">${eth0 down_kb}</span> <span color="#7F9F7F">${eth0 up_kb}</span>', 6)
|
||||
-- network array icon
|
||||
dnicon = widget({ type = "imagebox" })
|
||||
upicon = widget({ type = "imagebox" })
|
||||
dnicon.image = image(beautiful.widget_net_down)
|
||||
upicon.image = image(beautiful.widget_net_up)
|
||||
|
||||
-- Cpu usage ver1
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
-- Create cpuwidget
|
||||
cpuicon = widget({ type = "imagebox" })
|
||||
cpuicon.image = image(beautiful.widget_cpu)
|
||||
-- Initilize widget
|
||||
cpuwidget = widget({ type = "textbox" })
|
||||
vicious.cache(vicious.widgets.cpu)
|
||||
-- Register widget
|
||||
vicious.register(cpuwidget, vicious.widgets.cpu, "$1%", 6)
|
||||
|
||||
-- Cpu usage ver2
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
-- Initialize widget
|
||||
cpuwidget = awful.widget.graph()
|
||||
-- Graph properties
|
||||
cpuwidget:set_width(50)
|
||||
cpuwidget:set_background_color("#BBBBBB")
|
||||
cpuwidget:set_color("#FF5656")
|
||||
cpuwidget:set_gradient_colors({ "#FF5656", "#88A175", "#AECF96" })
|
||||
-- Register widget
|
||||
vicious.register(cpuwidget, vicious.widgets.cpu, "$1%", 2)
|
||||
--cpu icon
|
||||
cpuicon = widget({ type = "imagebox" })
|
||||
cpuicon.image = image(beautiful.widget_cpu)
|
||||
|
||||
|
||||
-- Memory usage ver1
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
-- Create memwidget
|
||||
memicon = widget({ type = "imagebox" })
|
||||
memicon.image = image(beautiful.widget_mem)
|
||||
-- Initilize widget
|
||||
memwidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(memwidget, vicious.widgets.mem, "$1% ($2MB)", 13)
|
||||
-- another format string is : "$1% ($2MB/$3MB)"
|
||||
|
||||
-- Memory usage ver2
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
-- Initialize widget
|
||||
memwidget = widget({type = "textbox"})
|
||||
memwidget = awful.widget.graph()
|
||||
-- Graph properties
|
||||
memwidget:set_width(50)
|
||||
memwidget:set_background_color("#CCCCCC")
|
||||
memwidget:set_color("#FF5656")
|
||||
memwidget:set_gradient_colors({ "#FF5656", "#88A175", "#AECF96" })
|
||||
-- Register widget
|
||||
vicious.register(memwidget, vicious.widgets.mem, "$1% ($2MB/$3MB)", 13)
|
||||
-- Icon widget
|
||||
memicon = widget({ type = "imagebox" })
|
||||
memicon.image = image(beautiful.widget_mem)
|
||||
|
||||
|
||||
-- Mail statious
|
||||
mailicon = widget({ type = "imagebox" })
|
||||
mailicon.image = image(beautiful.widget_mail)
|
||||
-- Initialize widget
|
||||
mailwidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(mailwidget, vicious.widgets.mboxc, "T:$1 N:$3", 1, {"/var/spool/mail/geekard"})
|
||||
-- Register buttons
|
||||
mailwidget:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.util.spawn("xterm mail") end)
|
||||
))
|
||||
|
||||
|
||||
-- Volume widget ver1 (I prefer not to use volvar, so if you agree with me ,please comment out the lines with 'volbar')
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
volicon = widget({ type = "imagebox" })
|
||||
volicon.image = image(beautiful.widget_volume)
|
||||
-- Initialize widgets
|
||||
volbar = awful.widget.progressbar()
|
||||
volwidget = widget({ type = "textbox" })
|
||||
-- Progressbar properties
|
||||
volbar:set_vertical(true):set_ticks(true)
|
||||
volbar:set_height(12):set_width(8):set_ticks_size(2)
|
||||
volbar:set_background_color(beautiful.fg_off_widget)
|
||||
volbar:set_gradient_colors({ beautiful.fg_widget,
|
||||
beautiful.fg_center_widget, beautiful.fg_end_widget
|
||||
}) -- Enable caching
|
||||
vicious.cache(vicious.widgets.volume)
|
||||
-- Register widgets
|
||||
vicious.register(volbar, vicious.widgets.volume, "<span color='#a2bbff'>$1</span>", 2, "PCM")
|
||||
vicious.register(volwidget, vicious.widgets.volume, " <span color='#a2bbff'>$1%</span>", 2, "PCM")
|
||||
-- Register buttons
|
||||
volbar.widget:buttons(awful.util.table.join(
|
||||
-- following line's format is wrong in awesome v > 3.
|
||||
--awful.button({ }, 1, function () exec("kmix") end),
|
||||
-- right formal is fllowing:
|
||||
awful.button({ }, 1, function () awful.util.spawn("amixer -q sset Master toggle") end),
|
||||
awful.button({ }, 4, function () awful.util.spawn("amixer -q set PCM 2dB+") end),
|
||||
awful.button({ }, 5, function () awful.util.spawn("amixer -q set PCM 2dB-") end)
|
||||
)) -- Register assigned buttons
|
||||
volwidget:buttons(volbar.widget:buttons())
|
||||
|
||||
|
||||
-- Volume widget ver2 (without volume controlling)
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
volicon = widget({ type ="imagebox" })
|
||||
volicon.image = image(beautiful.widget_volume)
|
||||
-- Initilize widget
|
||||
volwidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(volwidget, vicious.widgets.volume, " $1% ", 2, "Master")
|
||||
|
||||
|
||||
-- MPD widget ver1
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
mpdicon = widget({ type = "imagebox" })
|
||||
mpdicon.image = image(beautiful.widget_mpd)
|
||||
mpdwidget = widget({ type = "textbox" })
|
||||
vicious.register(mpdwidget, vicious.widgets.mpd,
|
||||
function (widget, args)
|
||||
if args[1] == 'Stopped' then
|
||||
mpdicon.visible = false
|
||||
return ""
|
||||
else
|
||||
mpdicon.visible = true
|
||||
return "<span color='#a2bbff'>" .. args["{Artist}"]..' - '.. args["{Title}"] .. "</span>"
|
||||
end
|
||||
end)
|
||||
mpdwidget:buttons( awful.util.table.join(
|
||||
awful.button({}, 1, function () awful.util.spawn("mpc toggle", false) end),
|
||||
awful.button({}, 4, function () awful.util.spawn("mpc prev", false) end),
|
||||
awful.button({}, 5, function () awful.util.spawn("mpc next", false) end))
|
||||
)
|
||||
mpdicon:buttons(mpdwidget:buttons())
|
||||
|
||||
|
||||
-- Mpd widget ver2 (without mpc controlling)
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
-- Initialize widget
|
||||
musicicon = widget({ type = "imagebox" })
|
||||
musicicon.image = image(beautiful.widget_music)
|
||||
mpdwidget = widget({ type = "textbox", align = "right" })
|
||||
-- Register widget
|
||||
vicious.register(mpdwidget, vicious.widgets.mpd,
|
||||
function (widget, args)
|
||||
if args["{state}"] == "Stop" then
|
||||
return " - "
|
||||
else
|
||||
return args["{Artist}"]..' - '.. args["{Title}"]
|
||||
end
|
||||
end, 10)
|
||||
|
||||
|
||||
|
||||
|
||||
-- File system usage widgets ver1
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
fsicon = widget({ type = "imagebox" })
|
||||
fsicon.image = image(beautiful.widget_fs)
|
||||
-- create 3 widgets to display 3 filesystem: '/', '/home', '/usr' information.
|
||||
-- the '/' filesystem
|
||||
fsrwidget = widget({ type = "textbox" })
|
||||
vicious.register(fsrwidget, vicious.widgets.fs,
|
||||
"<span color='#516083'>/</span> <span color='#a2bbff'>${/ used_p}% (${/ avail_gb}GB)</span>", 1200)
|
||||
|
||||
-- the '/home' filesystem
|
||||
fshwidget = widget({ type = "textbox" })
|
||||
vicious.register(fshwidget, vicious.widgets.fs,
|
||||
"<span color='#516083'> /home</span> <span color='#a2bbff'>${/home used_p}% (${/home avail_gb}GB)</span>", 1200)
|
||||
|
||||
-- the '/usr' filesystem
|
||||
fsuwidget = widget({ type = "textbox" })
|
||||
vicious.register(fsuwidget, vicious.widgets.fs,
|
||||
"<span color='#516083'> /usr</span> <span color='#a2bbff'>${/usr used_p}% (${/home avail_gb}GB)</span>", 1200)
|
||||
-- add buttons event. when click each widget, rox will be called .
|
||||
fsrwidget:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.util.spawn("rox /") end)
|
||||
))
|
||||
|
||||
fshwidget:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.util.spawn("rox /home") end)
|
||||
))
|
||||
|
||||
fsuwidget:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.util.spawn("rox /usr") end)
|
||||
))
|
||||
|
||||
|
||||
-- File system usage ver2
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
fsicon = widget({ type = "imagebox" })
|
||||
fsicon.image = image(beautiful.widget_fs)
|
||||
-- Initialize widgets
|
||||
fs = {
|
||||
root = awful.widget.progressbar(), usr = awful.widget.progressbar(),
|
||||
home = awful.widget.progressbar(), ntfs = awful.widget.progressbar()
|
||||
}
|
||||
|
||||
-- Progressbar properties
|
||||
for _, w in pairs(fs) do
|
||||
w:set_vertical(true):set_ticks(true)
|
||||
w:set_height(16):set_width(8):set_ticks_size(3)
|
||||
w:set_border_color(beautiful.border_widget)
|
||||
w:set_background_color(beautiful.fg_off_widget)
|
||||
w:set_gradient_colors({ beautiful.fg_widget,
|
||||
beautiful.fg_center_widget, beautiful.fg_end_widget})
|
||||
-- Register buttons
|
||||
w.widget:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.util.spawn("rox") end)))
|
||||
end
|
||||
-- Enable caching
|
||||
vicious.cache(vicious.widgets.fs)
|
||||
-- Register widgets
|
||||
vicious.register(fs.root, vicious.widgets.fs, "${/ used_p}", 599)
|
||||
vicious.register(fs.usr, vicious.widgets.fs, "${/use used_p}", 599)
|
||||
vicious.register(fs.home, vicious.widgets.fs, "${/home used_p}", 599)
|
||||
vicious.register(fs.ntfs, vicious.widgets.fs, "${/media/ntfs used_p}", 599)
|
||||
|
||||
|
||||
-- Uptime widget
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
uptimeicon = widget({ type= "imagebox" })
|
||||
uptimeicon.image = image(beautiful.widget_uptime)
|
||||
uptimewidget = widget({ type = "textbox" })
|
||||
vicious.register(uptimewidget, vicious.widgets.uptime,
|
||||
function (widget, args)
|
||||
return string.format("Run:%2dd %02d:%02d ", args[1], args[2], args[3])
|
||||
end, 61)
|
||||
|
||||
|
||||
-- Upgrade widget
|
||||
upgradeicon = widget({ type= "imagebox" })
|
||||
upgradeicon.image = image(beautiful.widget_upgrade)
|
||||
-- Initilize widget
|
||||
upgradewidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(upgradewidget, vicious.widgets.pkg, " News: $1 " , 500, "Arch")
|
||||
|
||||
|
||||
-- Wifiwidget ver1
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
wifiicon = widget({ type = "imagebox" })
|
||||
wifiicon.image = image(beautiful.widget_wifi)
|
||||
wifiwidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(wifiwidget, vicious.widgets.wifi,
|
||||
function (widget, args)
|
||||
if args["{link}"] == 0 then
|
||||
wifiicon.visible = false
|
||||
return ""
|
||||
else
|
||||
wifiicon.visible = true
|
||||
return "<span color='#a2bbff'>" .. string.format("%s [%i%%]",
|
||||
args["{ssid}"], args["{link}"]/70*100) .. "</span>"
|
||||
end
|
||||
end, refresh_delay, "wlan0")
|
||||
|
||||
-- Wifiwidget ver2
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
wifiicon = widget({ type = "imagebox" })
|
||||
wifiicon.image = image(beautiful.widget_wifi)
|
||||
wifiwidget = widget({ type = "textbox" })
|
||||
-- Register widget
|
||||
vicious.register(wifiwidget, vicious.widgets.wifi, "${ssid} ${link}% ${rate} Mb/s", 5, "wlan0")
|
||||
|
||||
-- Calendar widget(not operating correctlly)
|
||||
calwidget = awful.widget.textclock({ align = "right" }, "<span color='#a2bbff'>%a, %d %b </span>", 61)
|
||||
function cal_getc()
|
||||
-- Some errors in next line.so I do not enable this widget.
|
||||
local fp = io.popen("remind -c -m -w40,2,0 /dev/null")
|
||||
local reminders = fp:read("*a")
|
||||
fp:close()
|
||||
return "<span color='#a2bbff'>\n" .. reminders .. "</span>\n"
|
||||
end
|
||||
|
||||
function cal_remc()
|
||||
naughty.notify { text = cal_getc(), timeout = 10, hover_timeout = 1 }
|
||||
end
|
||||
calwidget:buttons(awful.util.table.join(awful.button({}, 1, cal_remc)))
|
||||
|
||||
calicon = widget({ type = "imagebox" })
|
||||
calicon.image = image(beautiful.widget_cal)
|
||||
calicon:buttons(calwidget:buttons())
|
||||
|
||||
|
||||
-- Clock widget ver1
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
-- when use calender, please use fellowing line other than the second line.
|
||||
--clockwidget = awful.widget.textclock({ align = "right" }, "<span color='#a2bbff'>%l:%M%P</span> ", 59)
|
||||
clockwidget = awful.widget.textclock({ align = "right" }, "<span color='#a2bbff'>%a %b %d, %H:%M</span> ", 59)
|
||||
function cal_gett()
|
||||
local fp = io.popen("remind /home/geekard/.reminders")
|
||||
local rem = fp:read("*a")
|
||||
fp:close()
|
||||
rem = string.gsub(rem, "\027%[0m", "</span>")
|
||||
rem = string.gsub(rem, "\027%[0;30m", "<span color='#000000'>")
|
||||
rem = string.gsub(rem, "\027%[0;31m", "<span color='#bf4646'>")
|
||||
rem = string.gsub(rem, "\027%[0;32m", "<span color='#67b25f'>")
|
||||
rem = string.gsub(rem, "\027%[0;33m", "<span color='#cfc44e'>")
|
||||
rem = string.gsub(rem, "\027%[0;34m", "<span color='#516083'>")
|
||||
rem = string.gsub(rem, "\027%[0;35m", "<span color='#ca6eff'>")
|
||||
rem = string.gsub(rem, "\027%[0;36m", "<span color='#92b2f8'>")
|
||||
rem = string.gsub(rem, "\027%[0;37m", "<span color='#d5d5d5'>")
|
||||
rem = string.gsub(rem, "\027%[1;30m", "<span color='#000000'>")
|
||||
rem = string.gsub(rem, "\027%[1;31m", "<span color='#f48a8a'>")
|
||||
rem = string.gsub(rem, "\027%[1;32m", "<span color='#a5d79f'>")
|
||||
rem = string.gsub(rem, "\027%[1;33m", "<span color='#e1da84'>")
|
||||
rem = string.gsub(rem, "\027%[1;34m", "<span color='#a2bbff'>")
|
||||
rem = string.gsub(rem, "\027%[1;35m", "<span color='#e2b0ff'>")
|
||||
rem = string.gsub(rem, "\027%[1;36m", "<span color='#bacdf8'>")
|
||||
rem = string.gsub(rem, "\027%[1;37m", "<span color='#d5d5d5'>")
|
||||
return rem
|
||||
end
|
||||
function cal_remt()
|
||||
naughty.notify { text = cal_gett(), timeout = 6, hover_timeout = 1 }
|
||||
end
|
||||
clockwidget:buttons(awful.util.table.join(awful.button({}, 1, cal_remt)))
|
||||
|
||||
clockicon = widget({ type = "imagebox" })
|
||||
clockicon.image = image(beautiful.widget_clock)
|
||||
clockicon:buttons(clockwidget:buttons())
|
||||
|
||||
|
||||
-- Textclock widget ver2
|
||||
-- ATTENTION: ver1 and ver2 can only be chosen one, or it will confilct !!!
|
||||
clockwidget = awful.widget.textclock({ align = "right" })
|
||||
|
||||
|
||||
-- Systray
|
||||
mysystray = widget({ type = "systray" })
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
mywiboxbtm = {}
|
||||
mywibox = {}
|
||||
mypromptbox = {}
|
||||
mylayoutbox = {}
|
||||
mytaglist = {}
|
||||
mytaglist.buttons = awful.util.table.join(
|
||||
awful.button({ }, 1, awful.tag.viewonly),
|
||||
awful.button({ modkey }, 1, awful.client.movetotag),
|
||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
||||
awful.button({ modkey }, 3, awful.client.toggletag),
|
||||
awful.button({ }, 4, awful.tag.viewnext),
|
||||
awful.button({ }, 5, awful.tag.viewprev)
|
||||
)
|
||||
mytasklist = {}
|
||||
mytasklist.buttons = awful.util.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
if not c:isvisible() then
|
||||
awful.tag.viewonly(c:tags()[1])
|
||||
end
|
||||
client.focus = c
|
||||
c:raise()
|
||||
end),
|
||||
awful.button({ }, 3, function ()
|
||||
if instance then
|
||||
instance:hide()
|
||||
instance = nil
|
||||
else
|
||||
instance = awful.menu.clients({ width=250 })
|
||||
end
|
||||
end),
|
||||
awful.button({ }, 4, function ()
|
||||
awful.client.focus.byidx(1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end),
|
||||
awful.button({ }, 5, function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end))
|
||||
|
||||
for s = 1, screen.count() do
|
||||
-- Create a promptbox for each screen
|
||||
mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright })
|
||||
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
|
||||
-- We need one layoutbox per screen.
|
||||
mylayoutbox[s] = awful.widget.layoutbox(s)
|
||||
mylayoutbox[s]:buttons(awful.util.table.join(
|
||||
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
|
||||
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
|
||||
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
|
||||
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
|
||||
-- Create a taglist widget
|
||||
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons)
|
||||
|
||||
-- Create a tasklist widget
|
||||
mytasklist[s] = awful.widget.tasklist(function(c)
|
||||
return awful.widget.tasklist.label.currenttags(c, s)
|
||||
end, mytasklist.buttons)
|
||||
|
||||
-- Create the top wibox
|
||||
mywibox[s] = awful.wibox({ position = "top", screen = s })
|
||||
-- Add widgets to the wibox - order matters
|
||||
mywibox[s].widgets = {
|
||||
{
|
||||
mylauncher,
|
||||
mytaglist[s],
|
||||
mypromptbox[s],
|
||||
layout = awful.widget.layout.horizontal.leftright
|
||||
},
|
||||
mylayoutbox[s],
|
||||
clockwidget,
|
||||
--clockicon,
|
||||
--calwidget,
|
||||
--calicon,
|
||||
--mytextclock,
|
||||
{
|
||||
separator, upicon, netwidget, dnicon, separator,
|
||||
memwidget,spacer, memicon, separator,
|
||||
cpuwidget,spacer, cpuicon, separator,
|
||||
layout = awful.widget.layout.horizontal.rightleft
|
||||
},
|
||||
s == 1 and mysystray or nil,
|
||||
mytasklist[s],
|
||||
layout = awful.widget.layout.horizontal.rightleft,
|
||||
|
||||
|
||||
}
|
||||
|
||||
--Create a buttom statusbar
|
||||
mywiboxbtm[s] = awful.wibox({ position = "bottom", screen = s })
|
||||
mywiboxbtm[s].widgets = {
|
||||
{
|
||||
--upicon, netwidget, dnicon, separator,
|
||||
wifiicon, spacer, wifiwidget, separator,
|
||||
--memicon, spacer, memwidget, separator,
|
||||
--cpuicon, spacer, cpuwidget, separator,
|
||||
uptimeicon,spacer,uptimewidget,separator,
|
||||
volicon, spacer,
|
||||
--volbar, spacer,
|
||||
volwidget, separator,
|
||||
upgradeicon, spacer, upgradewidget, separator,
|
||||
mailicon, spacer, mailwidget, separator,
|
||||
--fsicon,fs.root.widget,spacer, fs.home.widget,spacer, fs.usr, spacer,fs.ntfs,separator,
|
||||
fsicon, fsrwidget, spacer, fshwidget, spacer, fsuwidget,separator,
|
||||
layout = awful.widget.layout.horizontal.leftright
|
||||
},
|
||||
mpdwidget,mpdicon, spacer,
|
||||
layout = awful.widget.layout.horizontal.rightleft
|
||||
} -- end buttom statusbar}}}
|
||||
end -- end for loop
|
||||
|
||||
-- end Wibox }}}
|
||||
|
||||
|
||||
-- {{{ Mouse bindings
|
||||
root.buttons(awful.util.table.join(
|
||||
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
||||
awful.button({ }, 4, awful.tag.viewnext),
|
||||
awful.button({ }, 5, awful.tag.viewprev)
|
||||
))
|
||||
-- }}}
|
||||
|
||||
-- {{{ Key bindings
|
||||
globalkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "Left", awful.tag.viewprev ),
|
||||
awful.key({ modkey, }, "Right", awful.tag.viewnext ),
|
||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
|
||||
|
||||
awful.key({ modkey, }, "j",
|
||||
function ()
|
||||
awful.client.focus.byidx( 1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end),
|
||||
awful.key({ modkey, }, "k",
|
||||
function ()
|
||||
awful.client.focus.byidx(-1)
|
||||
if client.focus then client.focus:raise() end
|
||||
end),
|
||||
|
||||
-- define myown shortkey.
|
||||
-- I define some shortkeys here.
|
||||
awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end),
|
||||
awful.key({ modkey, }, "h", function () awful.util.spawn("rox /home") end),
|
||||
-- a very useful dynamic menu.
|
||||
awful.key({ modkey, }, "m", function () awful.util.spawn(
|
||||
"dmenu_run -b -fn 'terminus' -nb '#262524' -nf '#a4a4a4' -sb '#a4a4a4' -sf '#262524'") end),
|
||||
awful.key({ modkey, }, "e", function () awful.util.spawn("em") end),
|
||||
awful.key({ modkey, }, "f", function () awful.util.spawn("firefox") end),
|
||||
awful.key({ modkey, }, "p", function () awful.util.spawn("scrot -b") end),
|
||||
-- the following lines are function button on keyboard.
|
||||
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("mpc volume -4") end),
|
||||
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("mpc volume +4") end),
|
||||
awful.key({ }, "XF86AudioStop", function () awful.util.spawn("mpc stop") end),
|
||||
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("mpc toggle") end),
|
||||
awful.key({ }, "XF86AudioNext", function () awful.util.spawn("mpc next") end),
|
||||
awful.key({ }, "XF86AudioPrev", function () awful.util.spawn("mpc prev") end),
|
||||
awful.key({ }, "XF86AudioMute", function () awful.util.spawn("mpc volume 0") end),
|
||||
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
|
||||
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
|
||||
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
|
||||
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
|
||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
|
||||
awful.key({ modkey, }, "Tab",
|
||||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
end
|
||||
end),
|
||||
|
||||
-- Standard program
|
||||
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
|
||||
awful.key({ modkey, "Control" }, "r", awesome.restart),
|
||||
awful.key({ modkey, "Shift" }, "q", awesome.quit),
|
||||
|
||||
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
|
||||
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
|
||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
|
||||
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
|
||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
|
||||
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
|
||||
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
|
||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
|
||||
|
||||
-- Prompt
|
||||
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
|
||||
|
||||
awful.key({ modkey }, "x",
|
||||
function ()
|
||||
awful.prompt.run({ prompt = "Run Lua code: " },
|
||||
mypromptbox[mouse.screen].widget,
|
||||
awful.util.eval, nil,
|
||||
awful.util.getdir("cache") .. "/history_eval")
|
||||
end)
|
||||
)
|
||||
|
||||
clientkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
|
||||
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
|
||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
|
||||
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
|
||||
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
|
||||
awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end),
|
||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
|
||||
awful.key({ modkey, }, "n", function (c) c.minimized = not c.minimized end),
|
||||
awful.key({ modkey, }, "m",
|
||||
function (c)
|
||||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
end)
|
||||
)
|
||||
|
||||
-- Compute the maximum number of digit we need, limited to 9
|
||||
keynumber = 0
|
||||
for s = 1, screen.count() do
|
||||
keynumber = math.min(9, math.max(#tags[s], keynumber));
|
||||
end
|
||||
|
||||
-- Bind all key numbers to tags.
|
||||
-- Be careful: we use keycodes to make it works on any keyboard layout.
|
||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||
for i = 1, keynumber do
|
||||
globalkeys = awful.util.table.join(globalkeys,
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = mouse.screen
|
||||
if tags[screen][i] then
|
||||
awful.tag.viewonly(tags[screen][i])
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
||||
function ()
|
||||
local screen = mouse.screen
|
||||
if tags[screen][i] then
|
||||
awful.tag.viewtoggle(tags[screen][i])
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus and tags[client.focus.screen][i] then
|
||||
awful.client.movetotag(tags[client.focus.screen][i])
|
||||
end
|
||||
end),
|
||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
||||
function ()
|
||||
if client.focus and tags[client.focus.screen][i] then
|
||||
awful.client.toggletag(tags[client.focus.screen][i])
|
||||
end
|
||||
end))
|
||||
end
|
||||
|
||||
clientbuttons = awful.util.table.join(
|
||||
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
|
||||
awful.button({ modkey }, 1, awful.mouse.client.move),
|
||||
awful.button({ modkey }, 3, awful.mouse.client.resize))
|
||||
|
||||
-- Set keys
|
||||
root.keys(globalkeys)
|
||||
-- }}}
|
||||
|
||||
-- {{{ Rules
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = true,
|
||||
keys = clientkeys,
|
||||
buttons = clientbuttons } },
|
||||
-- I define many rules here.
|
||||
-- You can get the 'class' info of a client using command 'xprop' .
|
||||
{ rule = { class = "Firefox"}, properties = {tag = tags[1][2]}},
|
||||
{ rule = { class = "Chromium"}, properties = {tag = tags[1][2]}},
|
||||
{ rule = { class = "Smplayer" }, properties = {tag = tags[1][6]}},
|
||||
{ rule = { class = "Gedit" }, properties = {tag = tags[1][4]}},
|
||||
{ rule = { class = "Gimp" }, properties = {tag = tags[1][7]}, floating = true},
|
||||
{ rule = { class = "Gmpc" }, properties = {tag = tags[1][6]}},
|
||||
{ rule = { class = "VLc" }, properties = {tag = tags[1][6]}},
|
||||
{ rule = { class = "Emacs", instance = "emacs" }, properties = {tag = tags[1][3]}},
|
||||
{ rule = { class = "Nautilus", instance = "nautilus"}, properties={tag = tags[1][5]}},
|
||||
{ rule = { class = "Zim"}, properties={tag = tags[1][4]}},
|
||||
{ rule = { class = "XTerm" }, propertiex = {floating = true },callback = function(c)
|
||||
c:tags({tags[1][1], tags[1][8]}) end},
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.add_signal("manage", function (c, startup)
|
||||
-- Add a titlebar
|
||||
-- awful.titlebar.add(c, { modkey = modkey })
|
||||
|
||||
-- Enable sloppy focus
|
||||
c:add_signal("mouse::enter", function(c)
|
||||
if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
|
||||
and awful.client.focus.filter(c) then
|
||||
client.focus = c
|
||||
end
|
||||
end)
|
||||
|
||||
if not startup then
|
||||
-- Set the windows at the slave,
|
||||
-- i.e. put it at the end of others instead of setting it master.
|
||||
-- awful.client.setslave(c)
|
||||
|
||||
-- Put windows in a smart way, only if they does not set an initial position.
|
||||
if not c.size_hints.user_position and not c.size_hints.program_position then
|
||||
awful.placement.no_overlap(c)
|
||||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
-- }}}
|
||||
|
||||
|
||||
3
Zim/Linux/Archlinux/awesome/rc-all.lua/default/README
Normal file
@@ -0,0 +1,3 @@
|
||||
Background images:
|
||||
Mikael Eriksson <mikael_eriksson@miffe.org>
|
||||
Licensed under CC-BY-SA-3.0
|
||||
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/background.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
|
After Width: | Height: | Size: 265 KiB |
|
After Width: | Height: | Size: 967 B |
|
After Width: | Height: | Size: 997 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/layouts/fairh.png
Normal file
|
After Width: | Height: | Size: 194 B |
|
After Width: | Height: | Size: 194 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/layouts/fairv.png
Normal file
|
After Width: | Height: | Size: 201 B |
|
After Width: | Height: | Size: 201 B |
|
After Width: | Height: | Size: 395 B |
|
After Width: | Height: | Size: 388 B |
|
After Width: | Height: | Size: 202 B |
|
After Width: | Height: | Size: 202 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 209 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/layouts/max.png
Normal file
|
After Width: | Height: | Size: 321 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/layouts/maxw.png
Normal file
|
After Width: | Height: | Size: 321 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/layouts/tile.png
Normal file
|
After Width: | Height: | Size: 174 B |
|
After Width: | Height: | Size: 195 B |
|
After Width: | Height: | Size: 216 B |
|
After Width: | Height: | Size: 172 B |
|
After Width: | Height: | Size: 170 B |
|
After Width: | Height: | Size: 195 B |
|
After Width: | Height: | Size: 215 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/layouts/tilew.png
Normal file
|
After Width: | Height: | Size: 168 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/menu/emacs.png
Normal file
|
After Width: | Height: | Size: 1003 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/menu/firefox.png
Normal file
|
After Width: | Height: | Size: 972 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/menu/nautilus.png
Normal file
|
After Width: | Height: | Size: 874 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/menu/smplayer.png
Normal file
|
After Width: | Height: | Size: 974 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/menu/terminal.png
Normal file
|
After Width: | Height: | Size: 691 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/menu/zim.png
Normal file
|
After Width: | Height: | Size: 956 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/qeye.png
Normal file
|
After Width: | Height: | Size: 850 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/stallman.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/submenu.png
Normal file
|
After Width: | Height: | Size: 440 B |
|
After Width: | Height: | Size: 187 B |
|
After Width: | Height: | Size: 193 B |
|
After Width: | Height: | Size: 345 B |
|
After Width: | Height: | Size: 334 B |
127
Zim/Linux/Archlinux/awesome/rc-all.lua/default/theme.lua
Normal file
@@ -0,0 +1,127 @@
|
||||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
theme = {}
|
||||
|
||||
theme.font = "sans 8"
|
||||
|
||||
theme.bg_normal = "#222222"
|
||||
theme.bg_focus = "#535d6c"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#444444"
|
||||
|
||||
theme.fg_normal = "#aaaaaa"
|
||||
--theme.fg_normal = "#FF0000"
|
||||
theme.fg_focus = "#ffffff"
|
||||
theme.fg_urgent = "#ffffff"
|
||||
theme.fg_minimize = "#ffffff"
|
||||
|
||||
theme.border_width = "1"
|
||||
theme.border_normal = "#000000"
|
||||
theme.border_focus = "#535d6c"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
|
||||
-- titlebar_[bg|fg]_[normal|focus]
|
||||
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||
-- Example:
|
||||
--theme.taglist_bg_focus = "#ff0000"
|
||||
|
||||
-- Display the taglist squares
|
||||
theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png"
|
||||
theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
|
||||
|
||||
theme.tasklist_floating_icon = "/usr/share/awesome/themes/default/tasklist/floatingw.png"
|
||||
|
||||
-- Variables set for theming the menu:
|
||||
-- menu_[bg|fg]_[normal|focus]
|
||||
-- menu_[border_color|border_width]
|
||||
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
|
||||
theme.menu_height = "15"
|
||||
theme.menu_width = "100"
|
||||
|
||||
-- You can add as many variables as
|
||||
-- you wish and access them by using
|
||||
-- beautiful.variable in your rc.lua
|
||||
--theme.bg_widget = "#cc0000"
|
||||
|
||||
-- Define the image to load
|
||||
theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
|
||||
theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
|
||||
theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
|
||||
|
||||
theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
|
||||
theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
|
||||
theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
|
||||
theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
|
||||
theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
|
||||
theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
|
||||
theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
|
||||
theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
|
||||
|
||||
-- You can use your own command to set your wallpaper
|
||||
-- theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/background.png" }
|
||||
theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/stallman.png" }
|
||||
|
||||
-- You can use your own layout icons like this:
|
||||
theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
|
||||
theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
|
||||
theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
|
||||
theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
|
||||
theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
|
||||
theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
|
||||
theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
|
||||
theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
|
||||
theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
|
||||
theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
|
||||
theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
|
||||
theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
|
||||
|
||||
--theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
|
||||
|
||||
|
||||
-- icons for menu : modified by geekard
|
||||
theme.menu_terminal = "/usr/share/awesome/themes/default/menu/terminal.png"
|
||||
theme.menu_firefox = "/usr/share/awesome/themes/default/menu/firefox.png"
|
||||
theme.menu_emacs = "/usr/share/awesome/themes/default/menu/emacs.png"
|
||||
theme.menu_nautilus = "/usr/share/awesome/themes/default/menu/nautilus.png"
|
||||
theme.menu_smplayer = "/usr/share/awesome/themes/default/menu/smplayer.png"
|
||||
theme.menu_zim = "/usr/share/awesome/themes/default/menu/zim.png"
|
||||
|
||||
--icons for network widget
|
||||
theme.widget_net_down = "/usr/share/awesome/themes/default/widgets/network/down.png"
|
||||
theme.widget_net_up = "/usr/share/awesome/themes/default/widgets/network/up.png"
|
||||
--icon for cpu and mem widget
|
||||
theme.widget_cpu = "/usr/share/awesome/themes/default/widgets/cpu.png"
|
||||
theme.widget_mem = "/usr/share/awesome/themes/default/widgets/mem.png"
|
||||
theme.widget_mail = "/usr/share/awesome/themes/default/widgets/mail.png"
|
||||
theme.widget_wifi = "/usr/share/awesome/themes/default/widgets/wifi.png"
|
||||
theme.widget_volume = "/usr/share/awesome/themes/default/widgets/volume.png"
|
||||
theme.widget_upgrade = "/usr/share/awesome/themes/default/widgets/upgrade.png"
|
||||
theme.widget_uptime = "/usr/share/awesome/themes/default/widgets/uptime.png"
|
||||
theme.widget_fs = "/usr/share/awesome/themes/default/widgets/fs.png"
|
||||
theme.widget_mpd = "/usr/share/awesome/themes/default/widgets/music.png"
|
||||
theme.widget_cal = "/usr/share/awesome/themes/default/widgets/cal.png"
|
||||
theme.widget_clock = "/usr/share/awesome/themes/default/widgets/clock.png"
|
||||
|
||||
|
||||
|
||||
theme.awesome_icon = "/usr/share/awesome/themes/default/qeye.png"
|
||||
|
||||
return theme
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||
125
Zim/Linux/Archlinux/awesome/rc-all.lua/default/theme.lua~
Normal file
@@ -0,0 +1,125 @@
|
||||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
theme = {}
|
||||
|
||||
theme.font = "sans 8"
|
||||
|
||||
theme.bg_normal = "#222222"
|
||||
theme.bg_focus = "#535d6c"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#444444"
|
||||
|
||||
theme.fg_normal = "#aaaaaa"
|
||||
--theme.fg_normal = "#FF0000"
|
||||
theme.fg_focus = "#ffffff"
|
||||
theme.fg_urgent = "#ffffff"
|
||||
theme.fg_minimize = "#ffffff"
|
||||
|
||||
theme.border_width = "1"
|
||||
theme.border_normal = "#000000"
|
||||
theme.border_focus = "#535d6c"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
|
||||
-- titlebar_[bg|fg]_[normal|focus]
|
||||
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||
-- Example:
|
||||
--theme.taglist_bg_focus = "#ff0000"
|
||||
|
||||
-- Display the taglist squares
|
||||
theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png"
|
||||
theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
|
||||
|
||||
theme.tasklist_floating_icon = "/usr/share/awesome/themes/default/tasklist/floatingw.png"
|
||||
|
||||
-- Variables set for theming the menu:
|
||||
-- menu_[bg|fg]_[normal|focus]
|
||||
-- menu_[border_color|border_width]
|
||||
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
|
||||
theme.menu_height = "15"
|
||||
theme.menu_width = "100"
|
||||
|
||||
-- You can add as many variables as
|
||||
-- you wish and access them by using
|
||||
-- beautiful.variable in your rc.lua
|
||||
--theme.bg_widget = "#cc0000"
|
||||
|
||||
-- Define the image to load
|
||||
theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
|
||||
theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
|
||||
theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
|
||||
|
||||
theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
|
||||
theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
|
||||
theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
|
||||
theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
|
||||
theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
|
||||
theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
|
||||
theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
|
||||
theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
|
||||
|
||||
-- You can use your own command to set your wallpaper
|
||||
-- theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/background.png" }
|
||||
theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/stallman.png" }
|
||||
|
||||
-- You can use your own layout icons like this:
|
||||
theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
|
||||
theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
|
||||
theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
|
||||
theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
|
||||
theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
|
||||
theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
|
||||
theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
|
||||
theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
|
||||
theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
|
||||
theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
|
||||
theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
|
||||
theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
|
||||
|
||||
--theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
|
||||
|
||||
|
||||
-- icons for menu : modified by geekard
|
||||
theme.menu_terminal = "/usr/share/awesome/themes/default/menu/terminal.png"
|
||||
theme.menu_firefox = "/usr/share/awesome/themes/default/menu/firefox.png"
|
||||
theme.menu_emacs = "/usr/share/awesome/themes/default/menu/emacs.png"
|
||||
theme.menu_nautilus = "/usr/share/awesome/themes/default/menu/nautilus.png"
|
||||
theme.menu_smplayer = "/usr/share/awesome/themes/default/menu/smplayer.png"
|
||||
theme.menu_zim = "/usr/share/awesome/themes/default/menu/zim.png"
|
||||
|
||||
--icons for network widget
|
||||
theme.widget_net_down = "/usr/share/awesome/themes/default/widgets/network/down.png"
|
||||
theme.widget_net_up = "/usr/share/awesome/themes/default/widgets/network/up.png"
|
||||
--icon for cpu and mem widget
|
||||
theme.widget_cpu = "/usr/share/awesome/themes/default/widgets/cpu.png"
|
||||
theme.widget_mem = "/usr/share/awesome/themes/default/widgets/mem.png"
|
||||
theme.widget_mail = "/usr/share/awesome/themes/default/widgets/mail.png"
|
||||
theme.widget_wifi = "/usr/share/awesome/themes/default/widgets/wifi.png"
|
||||
theme.widget_volume = "/usr/share/awesome/themes/default/widgets/volume.png"
|
||||
theme.widget_upgrade = "/usr/share/awesome/themes/default/widgets/upgrade.png"
|
||||
theme.widget_uptime = "/usr/share/awesome/themes/default/widgets/uptime.png"
|
||||
theme.widget_fs = "/usr/share/awesome/themes/default/widgets/fs.png"
|
||||
theme.widget_mpd = "/usr/share/awesome/themes/default/widgets/music.png"
|
||||
|
||||
|
||||
|
||||
theme.awesome_icon = "/usr/share/awesome/icons/qeye.png"
|
||||
|
||||
return theme
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||
121
Zim/Linux/Archlinux/awesome/rc-all.lua/default/theme.lua~~
Normal file
@@ -0,0 +1,121 @@
|
||||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
theme = {}
|
||||
|
||||
theme.font = "sans 8"
|
||||
|
||||
theme.bg_normal = "#222222"
|
||||
theme.bg_focus = "#535d6c"
|
||||
theme.bg_urgent = "#ff0000"
|
||||
theme.bg_minimize = "#444444"
|
||||
|
||||
theme.fg_normal = "#aaaaaa"
|
||||
--theme.fg_normal = "#FF0000"
|
||||
theme.fg_focus = "#ffffff"
|
||||
theme.fg_urgent = "#ffffff"
|
||||
theme.fg_minimize = "#ffffff"
|
||||
|
||||
theme.border_width = "1"
|
||||
theme.border_normal = "#000000"
|
||||
theme.border_focus = "#535d6c"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
-- defined, the sets are:
|
||||
-- [taglist|tasklist]_[bg|fg]_[focus|urgent]
|
||||
-- titlebar_[bg|fg]_[normal|focus]
|
||||
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||
-- Example:
|
||||
--theme.taglist_bg_focus = "#ff0000"
|
||||
|
||||
-- Display the taglist squares
|
||||
theme.taglist_squares_sel = "/usr/share/awesome/themes/default/taglist/squarefw.png"
|
||||
theme.taglist_squares_unsel = "/usr/share/awesome/themes/default/taglist/squarew.png"
|
||||
|
||||
theme.tasklist_floating_icon = "/usr/share/awesome/themes/default/tasklist/floatingw.png"
|
||||
|
||||
-- Variables set for theming the menu:
|
||||
-- menu_[bg|fg]_[normal|focus]
|
||||
-- menu_[border_color|border_width]
|
||||
theme.menu_submenu_icon = "/usr/share/awesome/themes/default/submenu.png"
|
||||
theme.menu_height = "15"
|
||||
theme.menu_width = "100"
|
||||
|
||||
-- You can add as many variables as
|
||||
-- you wish and access them by using
|
||||
-- beautiful.variable in your rc.lua
|
||||
--theme.bg_widget = "#cc0000"
|
||||
|
||||
-- Define the image to load
|
||||
theme.titlebar_close_button_normal = "/usr/share/awesome/themes/default/titlebar/close_normal.png"
|
||||
theme.titlebar_close_button_focus = "/usr/share/awesome/themes/default/titlebar/close_focus.png"
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/ontop_focus_inactive.png"
|
||||
theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/default/titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/default/titlebar/ontop_focus_active.png"
|
||||
|
||||
theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_normal_inactive.png"
|
||||
theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/sticky_focus_inactive.png"
|
||||
theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/default/titlebar/sticky_normal_active.png"
|
||||
theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/default/titlebar/sticky_focus_active.png"
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/floating_focus_inactive.png"
|
||||
theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/default/titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/default/titlebar/floating_focus_active.png"
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_normal_inactive.png"
|
||||
theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/default/titlebar/maximized_focus_inactive.png"
|
||||
theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/default/titlebar/maximized_normal_active.png"
|
||||
theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/default/titlebar/maximized_focus_active.png"
|
||||
|
||||
-- You can use your own command to set your wallpaper
|
||||
-- theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/background.png" }
|
||||
theme.wallpaper_cmd = { "awsetbg /usr/share/awesome/themes/default/stallman.png" }
|
||||
|
||||
-- You can use your own layout icons like this:
|
||||
theme.layout_fairh = "/usr/share/awesome/themes/default/layouts/fairhw.png"
|
||||
theme.layout_fairv = "/usr/share/awesome/themes/default/layouts/fairvw.png"
|
||||
theme.layout_floating = "/usr/share/awesome/themes/default/layouts/floatingw.png"
|
||||
theme.layout_magnifier = "/usr/share/awesome/themes/default/layouts/magnifierw.png"
|
||||
theme.layout_max = "/usr/share/awesome/themes/default/layouts/maxw.png"
|
||||
theme.layout_fullscreen = "/usr/share/awesome/themes/default/layouts/fullscreenw.png"
|
||||
theme.layout_tilebottom = "/usr/share/awesome/themes/default/layouts/tilebottomw.png"
|
||||
theme.layout_tileleft = "/usr/share/awesome/themes/default/layouts/tileleftw.png"
|
||||
theme.layout_tile = "/usr/share/awesome/themes/default/layouts/tilew.png"
|
||||
theme.layout_tiletop = "/usr/share/awesome/themes/default/layouts/tiletopw.png"
|
||||
theme.layout_spiral = "/usr/share/awesome/themes/default/layouts/spiralw.png"
|
||||
theme.layout_dwindle = "/usr/share/awesome/themes/default/layouts/dwindlew.png"
|
||||
|
||||
--theme.awesome_icon = "/usr/share/awesome/icons/awesome16.png"
|
||||
|
||||
|
||||
-- icons for menu : modified by geekard
|
||||
theme.menu_terminal = "/usr/share/awesome/themes/default/menu/terminal.png"
|
||||
theme.menu_firefox = "/usr/share/awesome/themes/default/menu/firefox.png"
|
||||
theme.menu_emacs = "/usr/share/awesome/themes/default/menu/emacs.png"
|
||||
theme.menu_nautilus = "/usr/share/awesome/themes/default/menu/nautilus.png"
|
||||
theme.menu_smplayer = "/usr/share/awesome/themes/default/menu/smplayer.png"
|
||||
theme.menu_zim = "/usr/share/awesome/themes/default/menu/zim.png"
|
||||
|
||||
--icons for network widget
|
||||
theme.widget_net_down = "/usr/share/awesome/themes/default/widgets/network/down.png"
|
||||
theme.widget_net_up = "/usr/share/awesome/themes/default/widgets/network/up.png"
|
||||
--icon for cpu and mem widget
|
||||
theme.widget_cpu = "/usr/share/awesome/themes/default/widgets/cpu.png"
|
||||
theme.widget_mem = "/usr/share/awesome/themes/default/widgets/mem.png"
|
||||
theme.widget_mail = "/usr/share/awesome/themes/default/widgets/mail.png"
|
||||
theme.widget_wifi = "/usr/share/awesome/themes/default/widgets/wifi.png"
|
||||
theme.widget_volume = "/usr/share/awesome/themes/default/widgets/wifi.png"
|
||||
|
||||
|
||||
|
||||
theme.awesome_icon = "/usr/share/awesome/icons/qeye.png"
|
||||
|
||||
return theme
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|
||||
|
After Width: | Height: | Size: 666 B |
|
After Width: | Height: | Size: 848 B |
|
After Width: | Height: | Size: 598 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 803 B |
|
After Width: | Height: | Size: 541 B |
|
After Width: | Height: | Size: 1013 B |
|
After Width: | Height: | Size: 772 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 759 B |
|
After Width: | Height: | Size: 774 B |
|
After Width: | Height: | Size: 701 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 699 B |
|
After Width: | Height: | Size: 833 B |
|
After Width: | Height: | Size: 590 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 604 B |
BIN
Zim/Linux/Archlinux/awesome/rc-all.lua/default/widgets/cal.png
Normal file
|
After Width: | Height: | Size: 887 B |