Add New Notes

This commit is contained in:
geekard
2012-08-08 14:26:04 +08:00
commit 5ef7c20052
2374 changed files with 276187 additions and 0 deletions

View 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

View 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>

View 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. 我照着这些方法设却不能动。一切都太麻烦了!
要让一切合自己的意要付出一定的代价。或许你可以找到一个会设的人,请他吃一顿饭或什么的,然后找他来帮你照你的意思设。

View 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}}
宋体代码显示样子,单独看估计也看不出什么效果
我对编程字体的要求比较高:字体大小要适中、字体必须是等宽能轻松的分辨0O间距适中才方便识别的条件下尽可能的显示更多的代码行数下面就是我的个人比较推荐的等宽编程字体
首先出场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/

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 KiB

View 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 UnicodeLucida GrandeSans 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版才被修正。
汉字“一”在左右两端没有预留足够空间,使用时很难与破折号区别开来。如“一一说明”。
直排时,部分文字会与下一个字重叠。

View 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这个字体最好的使用范例了。

View 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
开放源代码与自由软件通常是同时提及的。开放源代码是一种与传统上不提供源代码的商业软件开发不同但平行的商业软件开发模式。开放源代码的严格定义可以在OSIOpen 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, GBKGB13000, GB18030, Unicode和UTF-8 =====
作者FangQ
这些都是__对字符集的编码(encoding)__。其中常见对汉语字符集的编码包括GB2312-1980, GBKGB13000, 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
PlanetMathhttp://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...。一个开源软件可能是不同的人在不同的时间积累完成的。软件的版权声明必须明确你对于哪些年份中修改的这个软件的版本具有版权,而并非一概将所有版权都收于自己名下。

View 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很相似其字符间距较小用来作为标题效果好过ArialTahoma的大写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字体能对你有用。

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View 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

View 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

View 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 .

File diff suppressed because it is too large Load Diff

View 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

View 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)
-- }}}

View File

@@ -0,0 +1,3 @@
Background images:
Mikael Eriksson <mikael_eriksson@miffe.org>
Licensed under CC-BY-SA-3.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

View 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

View 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

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 759 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

Some files were not shown because too many files have changed in this diff Show More