无忧启动论坛

标题: Burg 主题探讨!抛砖。。。。。 [打印本页]

作者: hotdll    时间: 2012-4-16 21:56
标题: Burg 主题探讨!抛砖。。。。。
白忙活了。。。。

发现BEAN写的有中文版的:

https://help.ubuntu.com/community/Burg/zh_CN


英文版地址:
https://help.ubuntu.com/community/Burg#Timeout






















原文地址:https://help.ubuntu.com/community/Burg原文档应该是bean写的英文文档,反正我看着挺累的。等我慢慢翻译领悟吧。


Burg

简介
BURG是 Brand-new Universal loadeR from GRUB 的简称,是在GRUB的基础上增加了诸如新的对象格式以及可配置的菜单系统等功能而来。下面将介绍BURG的命令格式。

通过二进制包来安装

对于Ubuntu 10.04 以及 10.10 的用户,需要添加下面的PPA:?

对于Ubuntu 11.04 的用户,需要添加下面的PPA:?

然后使用下面的命令来下载并安装Burg的引导器、主题以及模拟器。

在安装过程中,安装程序会询问你是否改写MBR为新的引导器,如果你跳过了该步骤,也可以稍后使用下面的命令自行更新hd0的MBR。

通过源码来安装

为了编译burg,你需要在操作系统上安装如下软件:

Debian/Ubuntu

使用如下命令来进行安装:

OSX

你需要安装Xcode。我已经在10.4 Tiger上使用Xcode 2.5,在10.5 Leopard上使用Xcode 3.0,以及在10.6 Snow Leopard上Xcode 3.2成功的编译了burg。

最新版的BURG依赖于gettext,但系统并没有预安装,因此你需要从macport安装一个。同时你也需要安装autoconf和automake,因为在Xcode中它们无法准确找到gettext的宏。??

对于10.4 Tiger而言,bison已经太旧了,需要从macport安装。

Macport使用 /opt/local 前缀,因此在配置时你需要使用如下参数。

Windows

你需要安装mingw32或者cygwin。注意由于ruby没有包括在mingw32里,因此你需要单独安装它。

获取源码

你需要用bazaar从launchpad上下载源码,导入并初始化:

然后你需要用下面的命令来从工作目录得到最新版源码:

得到源码后,你应该运行 autogen.sh 命令来进行编译:

生成并安装(PC平台)

使用下面的命令来编译burg(假定你现在在工作目录下):

在这个例子中,我使用 bin_pc 子目录来保存编译后的适用于pc平台的文件,这样可以避免工作目录下文件太多导致的种种问题,你可以根据平台的不同建立多个子目录。

在执行 make install 命令时,prefix 参数用来指定一个目标前缀。我的建议是不要使用默认的位置,否则可能会覆盖grub2的包。

注意:新版的BURG需要使用 gettext,而grub-mkconfig将会在bin目录下寻找gettext.sh文件,因此你需要做一个符号链接(即快捷方式)

同样的,如果使用上面的 prefix 参数,那配置文件将使用 ${HOME}/burg_pc/etc/default/burg。

上面步骤都完成后,burg就已经安装到了${HOME}/burg_pc,你需要再将其安装到MBR,使得BURG成为引导器。

警告:下面的步骤仅适用于Linux系统,不要在OSX或者Windows系统下尝试。

生成并安装(efi)

操作和在pc平台上的操作很相似,仅需要更改 --with-platform 参数。还有,如果你打算在32-bit平台上编译64-bit文件,需要添加 --target 参数,反之亦然。

你需要使用 burg-mkimage 命令来生成一个 EFI 镜像,例如:

将 grub64.efi 复制到 rEFIt 可以识别的地方,同时还需要在grub64.efi所在目录下新建一个名为burg.cfg的配置文件,内容如下:

新的菜单系统

用法

为了启用新的菜单系统,你可以从下面的地址下载这些主题

http://groups.google.com/group/burg-devel

目前有三款主题可供下载:

theme_default.tar.gz 默认主题,包含minimum、proto、ubuntu以及winter主题。

theme_sora.tar.gz 由Evan Gillies制作的Sora主题,包含sora、sora/clean以及sora/extended主题。

theme_chiva.tar.gz 由Ubuntu中文论坛的snolice制作,包含chiva主题。

使用下面的命令将其释放到burg目录下:

然后需要编辑burg的配置文件。如果你使用的是Ubuntu的PPA包的话,配置文件将是/etc/default/burg。通过GRUB_THEM指定想要的主题,通过GRUB_GFXMODE指定屏幕分辨率,如:

最后你需要用下面的命令来建立 burg.cfg 文件(Ubuntu下可以使用update-burg命令,作用相同)

如果你打算稍后再改变主题,你需要重新执行 update-burg 命令来更新burg.cfg文件。

EFI模式下的burg.cfg文件需要手动建立,如果打算启用主题,仅仅需要在 burg.cfg 文件的底部增加下面的几行命令:

主题文件定义了以下一些热键:

e - edit the current command
e - 编辑当前命令
t - edit the current title
t - 编辑当前标题
c - open a terminal window
c - 打开一个终端窗口
2 - open two terminal window
2 - 打开两个终端窗口
F5 - mapped to ctrl-x, used to finish edit and save the result
F5 - 被映射到ctrl-x,用于编辑完成后保存结果
F6 - move to next anchor, normally have the same function as TAB, but it is useful in cases where TAB is used for other function (such as term),
F6 - 移动至下一个锚点,和 TAB 键作用基本相同,但在 TAB 键已被用作其他用途(比如term)时很有用。??
F8 - toggle between text and graphic mode
F8 - 在文件模式和图形模式之间进行切换
F9 - shutdown
F9 - 关机
F10 - reboot
F10 - 重新启动
ESC - return from popup window
ESC - 从弹出窗口返回

下面的章节将详细描述主题文件的具体格式。



◆基本结构



主题文件的格式相当简单,{ }是用于启动子节点,与用于设置属性,一个简单的例子:
  1. screen {
  2.   panel {
  3.     extend = 1
  4.     valign = center
  5.     halign = center

  6.     panel {
  7.       class = frame
  8.       id = __menu__
  9.     }
  10.   }
  11.   
  12.   panel {
  13.     id = __timeout__
  14.     attach_bottom = 1
  15.     width = 60%
  16.     halign = center
  17.     height = 1
  18.     progressbar {
  19.      width = 100%
  20.      height = 100%
  21.      color = "red:brown"
  22.     }
  23.   }
  24. }

  25. mapkey {
  26.   f5 = ctrl-x
  27. }
复制代码
一个主题文件中最顶端的元素定义主题的各个部分,每个部分都有特殊的功能,例如sereen节点定义屏幕布局,而mapkey节点定义键映射。
有两个命令读取主题文件:load_config and merge_config。例如:
  1. load_config ${prefix}/themes/conf.d/10_hotkey
  2. load_config ${prefix}/themes/${theme_name}/theme ${prefix}/themes/custom/theme_${theme_name}
复制代码
load_config和merge_config之间的差异在于如果读取前主题部分已经存在,load_config是取代之前的部分,而merge_config则是合并现有部分。

◆数据描述:

主题文件影响文本和图形两种模式,所以可以有多个组件公用一个属性。

Size
表示大小的属性有如下表示方法:
  1. 10
复制代码
在文本和图形模式下,字体大小是由系统默认字体计算得到的,需要变量gfxfont指定。要注意的是以像素为单位来说,width=1和height=1是不等的。
  1. 10%
复制代码
在文本和图形模式下,大小为父窗口的10%,
  1. 10/1
复制代码
图形模式下10个像素,文本模式下1个像素。任何组件都可以用百分比概念,如:
  1. 10%/20%
复制代码
图形模式下父窗口的10%大小,文本模式下父窗口的20%大小。

Color
  1. red
复制代码
在文本和图形模式下显示red(红)。

支持的颜色单词如下:

        文本模式下,black(黑), blue(蓝), green(绿), cyan(青), red(红), magenta(洋红), brown(棕), light-gray(浅灰),作为前景或背景颜色。

而dark-gray(暗灰), light-blue(淡蓝), light-green(浅绿), light-cyan(浅青), light-red(亮红), light-magenta(亮洋), yellow(黄), white(白) 只能用于前景色。
  1. red/blue
复制代码
在文本和图形模式下,前景色是red(红),背景色是blue(蓝)。
  1. #808080/red/blue
复制代码
在图形模式下前景色为#808080,在文本模式下前景色为red(红),背景色为blue(蓝)

当组件包含可被选中的命令时你可能需要使用两种颜色来区别部件是否被选中,可以通过添加":"来表示选中部件颜色。
  1. cyan/blue:light-gray/blue
复制代码
未被选中时,前景色是cyan(青),背景色是blue(蓝)。当部件被选中的时候,前景色是light-gray(浅灰),背景色是blue(蓝)。

译者注:
        1、#808080 为16进制数字表示的#RRGGBB色彩,您可以使用拾色器获得想要颜色的16进制值。
        2、只有图形模式下才能使用#RRGGBB的颜色,因为文本模式不支持vbe。
        3、图形模式下背景色会被背景图片覆盖。
        4、使用":"表示双色的时候一个典型的例子就是 被选中的菜单颜色需要双色。

Image
  1. ,,blue,#0
复制代码
在文本和图形模式下,画一个蓝色的矩形框。
  1. ,,blue,c
复制代码
在文本和图形模式下,画一个蓝色的矩形框,并用字符c填充。
  1. ,,blue,#0x250F
复制代码
在文本和图形模式下,画一个蓝色的矩形框,并用Unicode字符0x250F填充。
  1. /splash.png,,blue,#0
复制代码
在图形模式下绘制/splash.png图像,在文本模式下绘制一个蓝色的矩形框。你可以指定字符填充它。
  1. /splash.png,,blue
复制代码
在图形模式下绘制/splash.png图像,不支持文本模式。
  1. /splash.png
复制代码
同上,不同的是,使用默认的缩放方法和背景颜色。
  1. none,,blue,#0
复制代码
在文本模式下绘制蓝色矩形框,不支持图形模式。

在上面的示例中,第二个参数都是空的,它指定图像的缩放方法,你可以使用下列值之一:

        scaling(default)--留空时默认该值,缩放图像的高和宽以适应部件。
        center--在部件中心绘制图像。
        tiling--重复图像填补部件的空白区域。
        minfit--按比例缩放图像,确保图像完全显示,但它可以留空顶部或底部,左边或者右边。
        maxfit--按比列缩放图像,确保图像四周不留空白,但它可以截取图像顶部或底部,左边或右边。
        
center和minfit两种缩放方法绘制图像,会留下空白区域,该区域使用第三个参数的颜色作为背景色。

同Color元素一样,你可以使用两种图像标识部件是否被选中,也是使用":"分开:
  1. ,,cyan/blue,#0x250F:,,light-gray/bule,#0x2554
复制代码
下文接楼下:

[ 本帖最后由 hotdll 于 2012-4-24 15:18 编辑 ]
作者: hotdll    时间: 2012-4-16 21:58
占楼编辑。。。。。。
作者: hotdll    时间: 2012-4-16 21:58
占楼编辑。。。。。。
作者: hotdll    时间: 2012-4-16 21:59
占楼编辑。。。。。。
作者: Plantsoot    时间: 2012-4-16 22:28
可以把3370也拉过来,他研究过一段时间burg主题。
作者: 幸运的草    时间: 2012-4-17 08:19
那么这个文件是做什么的?
10_hotkey
外部命令?
作者: 幸运的草    时间: 2012-4-17 08:21
楼主翻译的相当不错。赞一个
作者: 讯极天度    时间: 2012-4-17 08:45
呵呵 支持楼主一下!辛苦楼主了,不知道今后这个玩意会不会取代现在的呢
作者: dfswb    时间: 2012-4-17 13:27
饭大的,一定支持。。。。。。。
作者: 幸运的草    时间: 2012-4-18 09:09
标题: 回复 #8 讯极天度 的帖子
取不取代实不必要关心,多一条选择而已。世界是多元的。因此实不必在某一棵树上吊死!
哪一种方式,都有其优点,也有其不足,对于个人来说,选择一种或两种适合的无异是最好的选择。
FBINST本身就支持两种模式,且能相互转换。只不过多了一个引导文件及一套菜单而已。

[ 本帖最后由 幸运的草 于 2012-4-18 09:12 编辑 ]
作者: kkcing    时间: 2013-7-16 23:59
可惜,没有继续写下去啊




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3