Arch界面显示配置以及Firefox调整

界面显示是个很麻烦的事情,想要完全整好很麻烦很麻烦。
这里只能算的上基础设置,不求华丽,只求顺眼。

1.分辨率

编辑/boot/grub/menu.lst文件,参考里面的注释,选择一个合适的分辨率参数
如果没有正好的,那就得在启动grub的时候查看grub帮助。
举例来说,我的1920x1080的分辨率,参数是0x34d
于是就有了

# (0) Arch Linux
title  Arch Linux
root   (hd0,7)
kernel /boot/vmlinuz-linux root=/dev/sda8 ro vga=0x34d
initrd /boot/initramfs-linux.img

(grub启动项的调整是很早之前的事了,似乎我忘了点什么,想起来再补全。
好像是generate过什么东西,记不得了……vga=XXX肯定没错,操作细节忘了。)

2.驱动

这个该死的问题米有通用解,详细请自行资讯搜索引擎
Nvidia GT540M驱动对应

$ sudo pacman -S nvidia nvidia-utils lib32-nvidia-utils
$ sudo reboot #等待重启完毕
$ sudo nvidia-xconfig

$ sudo <editor> /etc/X11/xorg.conf.d/20-nvidia.conf

#写入这样一段
Section         "Device"
Identifier      "Device 0"
Driver          "nvidia"
BusID           "PCI:1:0:0"
VendorName      "NVIDIA Corporation"
EndSection

3.一些LXDE相关界面调整软件

$ sudo pacman -S tangerine-icon-theme #图标
$ sudo pacman -S openbox-themes #外观
$ sudo pacman -S gtk-engines #主题引擎

然后可以在“首选项->自定义外观和体验”里面选一个合适的外观主题,我选了clearlooks
实质配置文件位置:~/.config/lxsession/LXDE/desktop.conf

“首选项->openbox configure manager”里面选一个合适的窗口主题,我选择weightless-industry
实质配置文件位置:~/.config/openbox/lxde-rc.xml
注意快捷键定义也在这里,不要因并行操作导致文件保存冲突

壁纸可以在“右键->桌面偏好设置”里面调,实际上壁纸是由pcmanFM指定
实质配置文件位置:~/.config/pcmanfm/LXDE/pcmanfm.conf
如果你使用独立壁纸程序比如feh,那么feh的壁纸会被pcmanFM的壁纸覆盖。
推荐一个不错的壁纸站,http://wallbase.cc/start/
顺便我当前的壁纸是这张:

wallpaper-1675371

任务栏透明化,右键->面板设置->Appearance->Solid color (with opacity)
默认黑色即可,透明度不要设太高,因为没有Aero的情况下,
当你全屏操作某些应用比如Firefox的时候下面几乎直接是墙纸会显得突兀

为了确保每次你的修改都是生效的,请保证此文件
~/.config/lxsession/LXDE/autostart前三行如此

@xscreensaver -no-splash
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE

4.DPI

dpi标准值查询:http://pxcalc.com/
dpi实际值查询:xdpyinfo | grep resolution
dpi实际值修改:nvidia显卡只要在Section “device”里面加两个Option就行了

Option "UseEdidDpi" "False"
Option  "DPI" "96 x 96"

linux默认的dpi计算是标准的,按照你显示器的尺寸与分辨率计算出来的,具体可以对比标准值与实际值。
windows默认的DPI是96,对于现在的笔记本高分屏来说,96这个值有些偏小,默认linux配置时,你会觉得字体偏大。
或许96是更符合长久使用windows人的习惯的,所以我改成96,这样修改后,Firefox菜单的违和感就小了很多,不过具体还是下文介绍。

下面是我的20-nividia.conf文件,为什么有个ServerFlags我忘了……囧

Section "Device"
    Identifier  "Device0"
    Driver      "nvidia"
    BusID       "PCI:1:0:0"
    VendorName  "NVIDIA Corporation"
    Option "UseEdidDpi" "False"
    Option  "DPI" "96 x 96"
EndSection

Section "ServerFlags"
    Option "AllowEmptyInput" "False"
EndSection

5.窗口阴影与透明

$ sudo pacman -S xcompmgr #窗口阴影
$ sudo pacman -S transset-df #窗口透明

把下句写在.xinitrc文件的exec之前

$ xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &

尽管很多地方可以写这句命令,不过经过我的测试——
.profile文件arch+lxde是不认得。
lxsession的autostart会卡一片白卡很久。
openbox的autostart无法正常使用。

编辑~/.config/openbox/lxde-rc.xml文件

<context name="Titlebar">
……
      <mousebind button="Up" action="Click">
    <action name="Execute">
    <command>transset-df -p -x 1.0 --inc 0.1</command>
    </action>
      </mousebind>
      <mousebind button="Down" action="Click">
        <action name="Execute">
    <command>transset-df -p -m 0.1 --dec 0.1</command>
    </action>
      </mousebind>
……
</context>

注意不要键位冲突,必要时覆盖或自行调整,如此这般就可以用鼠标滚轮操纵窗口透明度了。

6.Firefox

FF3的时候,Mozilla官方就给Windows、linux、Mac分别设计了不同的主题,Win下那个叫Strata,Linux这个叫Tango。
大概是系统界面本身就不很华丽的关系,Tango界面的FF我感觉比较难看,而且我比较习惯Strata那种RSS图标。
换了一个主题:Firefox 3 Aero theme for Firefox 4+,这个界面很类似Win7下的Strata,但是它没有Aero
如果你习惯了XP,可以考虑Strata XP on Linux 6.0,这个界面很类似XP下的Strata,当然更没有Aero。

还有一个问题可能大多数人不会遇到,但是如果是像我一样喜欢在书签栏读RSS新闻的人,这个配置一定要有。
在~/.mozilla/firefox/<随机配置名>/chrome/userChrome.css

.bookmark-item {
 max-width:800px !important; /* 最大寬度 */
}

最后是页面字体过小的问题,我这边google的搜索页那字体小得没法看……
治标方法:页面放大操作ctrl+”+”,缩小是ctrl+”-“,原始大小是ctrl+”0”
半治本方法:编辑->首选项->内容->字体&颜色->高级->最小字体大小
如果正文字体比这个小,FF就会整体放大页面,只不过是手动放大变成了自动放大。
我选12,感觉实际效果还可以。

7.任务栏菜单项编辑

LXDE的任务栏看上去是分成很多个类别,实际上都在同一个文件夹下,就是
/usr/share/applications/
这个文件夹下有很多.desktop文件,就是所谓的快捷方式,全是文本文件写成的,可以用编辑器打开。
可以加一行NoDisplay=true来屏蔽某一个.desktop文件,比如那个莫名奇妙的avahi某某。
明明是系统框架,非得在菜单上占用个应用位,很让人不爽,于是我屏蔽了以下四个文件:

avahi-discover.desktop
bssh.desktop
bvnc.desktop
qv4l2.desktop

然后又添加了一个我强行安装的游戏应用,英雄无敌3。文件heroes3.desktop,如下

[Desktop Entry]
Encoding=UTF-8
Name=Heroes of Might and Magic III
Name[zh_CN]=英雄无敌 III
Comment=Famous turn based strategy game that needs no introduction.
Comment[zh_CN]=经典回合制策略游戏大作
Exec=heroes3
Icon=/usr/local/games/Heroes3/icon.xpm
Terminal=false
Type=Application
Categories=Game;
StartupNotify=true

有一个比较简便的方法是使用lxmed,它提供了一个简易的GUI来达到上述修改目的。

$ sudo pacman -S lxmed #菜单编辑器

8.任务栏面板编辑

任务栏本身的编辑相对比较容易,因为右键里直接就有一个“面板设置”的选项

右击面板->面板设置->pannel applets。

这里面可以改很多东西,但是最好还是了解一下实际配置文件的位置,以免误操作不知道怎么救回。
~/.config/lxpanel/LXDE/panels/panel
这个文件如果出问题,可以参考/usr/share/lxpanel/profile/LXDE/panels/panel

9.任务栏菜单分类编辑

看清楚这里改的是分类,就是菜单上那些“图像”、“影音”、“编程”之类的”文件夹”。

/usr/share/desktop-directories
这里是各种分类节点存放的地方,有一堆.directory文件,每个.directory文件里通常都有一些不同语言下的翻译。
/etc/xdg/menus/lxde-applications.menu
这里是根,指定使用哪些分类,也就是用xml语言包含了哪些.directory文件。

这些配置的位置找得我差点儿哭出来,因为一开始怎么也弄不清是什么样的菜单结构,
一直以为在lxpanel里……TAT
搞清楚结构就可以添加自定义分类了,我想加一个TextEditor;

创建一个.directory文件,以下为参考

[Desktop Entry]
Name=Editors
Name[zh_CN]=编辑器
Name[zh_TW]=編輯器
Type=Directory
Icon=package_editors

扔到/usr/share/desktop-directories/custom-utility-texteditor.directory
修改/etc/xdg/menus/lxde-applications.menu,加入一段TextEditor

<!-- TextEditor -->
<Menu>
    <Name>Editors</Name>
    <Directory>custom-utility-texteditor.directory</Directory>
    <Include>
        <And>
            <Category>TextEditor</Category>
        </And>
    </Include>
</Menu> <!-- End TextEditor -->

再在其它项里把TextEditor屏蔽。

<!-- Accessories submenu -->
<Menu>
    <Name>Accessories</Name>
    <Directory>lxde-utility.directory</Directory>
    <Include>
        <And>
            <Category>Utility</Category>
            <Not><Category>Accessibility</Category></Not>
            <Not><Category>System</Category></Not>
            <Not><Category>TextEditor</Category></Not>
        </And>
    </Include>
</Menu> <!-- End Accessories -->

10.文件关联
.local/share/applications/defaults.list
.local/share/applications/mimeapps.list