Xfce Wiki

Sub domains
 

提示与技巧

此页面包含了 Xfce 桌面环境的多种技巧。

自定义面板时钟插件字体

你可以用Pango 标记来自定义面板时钟插件的字体。切换到到自定义格式(只在数字式布局时能用)并在格式字符串中使用标记标签。

例如:

  • <span font_desc="URW Gothic L Book 18">%R</span>
  • <span font_desc="bold 12">%R</span>

性能提示

让我们面对它吧:使用 Xfce 的原因之一是性能。它更轻量,​在几乎所所件硬件平台比 Gnome 反应更灵敏,尤其是在较少的内存和处理器能力的机器上。

字体

字体对 GUI 性能有极大影响。全部打开字体平滑,微调和渲染,你会注意菜单对话框出现时有明显的延迟。当你把这些全部关闭,出现要快(实际上是敏捷)很多

关掉这这些微调/抗锯齿唯一的问题就是,字体会显示得很丑。在 LCD 的笔记本电脑上,我建议使用 “Kochi Gothic” 字体的9号或者更大号。“Helvetica” 9号或者 “Luxi Sans” 也看起来很清晰。“Verdana” 9号以上,及只打开抗锯齿(不打开微调,亚像素渲染) 看起来非常光滑,只是可能看起了有点粗。也欢迎推荐其他字体。

我在 CRT 显示器上使用 Fixed 字体(12号+),感觉效果很好。很容易看清不用开抗锯齿。看起为不错并且跑得快。

背景颜色

我经常使用 vncserver 远程连接,我总是感觉很慢,反应迟钝,特别是关闭程序窗口的时候。比如,关闭 Firefox 的时候,需要30到60 秒钟才能完成,在这期间,系统完全没有反应。 我修改了我的背景为纯白色,现在的所有程序(包括 Firefox )1到2秒内就可以关闭了。

右击桌面,选择”设置“,然后”桌面设置“。请确保”显示图像“是未选中的。并设置”颜色风格“为”纯色”,然后设置第一个颜色为白色(#FFFFFF)。

另外一个选择,对一些软件可能有用,那就是查看你用来远程连接的程序的设置选项,如果有”去掉墙纸“或者”不显示墙纸“的选项,那就打开这个选项。我用的是 TightVNCviewer,它没有”去掉墙纸“的选项,所以修改背景颜色是我的唯一的解决办法。

如何使用 GNOME 菜单

如果你想使用 GNOME 的新菜单, 比如用快速启动的喜欢的应用之类的话,你可以使用的 xfapplet 面板插件 添加 GNOME 主菜单小程序。这个菜单您可以用你的包管理系统安装,查找 gnome-main-menuXfce的截图视频

在您的面板上添加一个新 xfapplet 项,并打开其属性对话框添加GNOME 菜单的小程序。

如果你不喜欢GNOME主菜单,可以试一下Ubuntu系统面板,在几种发行上找得到。

另见:如何自定义 Xfce 4.5 +菜单

gtkrc 文件

  • 这里有一个 gtkrc 文件格式的教程。
  • 你不能定义 Thunar 图标/列表视图模式下的自定义背景,这是因为 GTK+ 本身的缺陷。
  • 你可以像这样定义自定义的面板背景:
# ~/.gtkrc-2.0
style "panel-background" {
  bg_pixmap[NORMAL]        = "foo.bar"
  bg_pixmap[PRELIGHT]      = "foo.bar"
  bg_pixmap[ACTIVE]        = "foo.bar"
  bg_pixmap[SELECTED]      = "foo.bar"
  bg_pixmap[INSENSITIVE]   = "foo.bar"
}
style "panel-color" {
  fg[NORMAL]               = "#222222"
  fg[ACTIVE]               = "#111111"
  bg[NORMAL]               = "#edeff2"
  bg[PRELIGHT]             = "#3d6eab"
  bg[ACTIVE]               = "#3d6eab"
}
widget_class "*Panel*" style "panel-background"
widget "*PanelWidget*" style "panel-color"
widget "*PanelApplet*" style "panel-color"
widget "*Panel*" style "panel-color"
widget_class "*Panel*" style "panel-color"
class "*Panel*" style "panel-color"
class "*Tray*" style "panel-color"
class "*tray*" style "panel-color"

如何删除和添加系统菜单中应用程序

添加应用程序

你必须为你想要添加的应用程序创建一个 .desktop 文件(通常创建在下列位置中, /usr/share/applications 对整个系统有效, ~/.local/share/applications 对你自己有效)。

在下面的例子中,我们在 “多媒体” 菜单中创建了一个名为 “foo” 的子菜单:

[Desktop Entry]
Encoding=UTF-8
Name=foo
GenericName=bar
Comment=Senseless program ever
Exec=foobar
Icon=/usr/share/pixmaps/foobar.xpm
Terminal=false
Type=Application
Categories=Multimedia;

你可以在 这里阅读更多的关于 .desktop 文件的内容。

libexo 提供了好几个实用工具,其中有一个可以以图形方式处理 desktop 文件: exo-desktop-item-edit。 你可以用它创建一个新的 .desktop 文件,用命令 exo-desktop-item-edit --create-new ;-)

删除应用程序

你有两种方法:

  • 第一种,并且也是更简单的一种就是直接删除 /usr/share/applications/ 文件夹中的.desktop 文件,但这样你们丢失 mime 数据(文件关联)。
  • 第二种,添加这一行到 .desktop 文件中:
NoDisplay=true

怎样自定义 Xfce 启动

像大多数 UNIX 终端会话一样,Xfce 在启动时会执行用户自定义的启动文件。你可以通过修改这个初始化文件来执行你自己的脚本,给 GUI 发送界面环境变量等。

请像这样编辑 xinitrc 文件,添加你自己的启动代码:

  • 复制 /etc/xdg/xfce4/xinitrc 到 ~/.config/xfce4/
  • 添加你自己的代码到这个文件。例如,你可以启动 rxvt-unicode 服务器:
    • source $HOME/.bashrc
    • # start rxvt-unicode server
    • urxvtd -q -o -f

你可以从这了解更多关于 xinitrc 的内容 很多不同的网站

Starting with showing the Root Window

  1. xfdesktop –quit
  2. save your session

使用桌面空白边

用“设置管理器”(设置管理器 > 工作区和空白边 > 空白边)设置桌面空白边。

桌面空白边用来限制最大化的窗口的大小。这有助于避免鼠标移动到屏幕边上时意外地切换工作区。

如果你只有一个 Xfce 面板,空白边也有很有用: 空白边区域留出一个清晰的空白,用于调出“应用程序”菜单或者“工作区”菜单。默认的,在桌面(空白边)上右击显示 Xfce 菜单,中键(或者左键+右键)点击显示工作区菜单。

空白边的大小以像素为单位,所以在比较新近的显示器上,以分辨率1680 x 1050为例, ‘10’ 会留出大约 1/8 英寸(0.3175厘米)的空白。注意,已经打开的窗口在最小化再还原后才会生效。另外还要注意,这只应用于最大化的窗口 —— 你可以手工地改变窗口的大小到屏幕边缘。

处理 ACPI 电源按钮事件,显示 Xfce 注销选项

如果你想在你按下电源按钮时显示注销菜单,并且你的机器支持 ACPI,那就按下面的步骤做吧:

解决方案 1

  • /etc/acpi/events/powerbtn
# /etc/acpi/events/powerbtn
# 当用户按下电源按钮时这文件会被调用并且调用
# /etc/acpi/powerbtn.sh 作进一步处理。
 
# 你也可以用 %e 这个占位符来把整个内核事件消息传给你指定的程序。
 
# 我们需要对 "button power.*" 和 "button/power.*" 都作出反应,
# 因为内核做了改动。
 
event=button[ /]power
action=/usr/local/sbin/xfce4-shutdown-as-user.sh
  • /usr/local/sbin/xfce4-shutdown-as-user.sh
#!/bin/sh 
# xfce4-shutdown-as-user.sh
#
# 检查当前有多少用户登录了 X。如果只有一个用户登录,
# 就执行脚本设置环境来调用 xfce4-session-logout。
 
LOGGED_IN_USER=`ls -trl /tmp/.ICE-unix/ | tail -n -1 | cut -d' ' -f3`
NUM_X_USERS=`echo $LOGGED_IN_USER | wc -l`
 
if [ $NUM_X_USERS -eq 1 ]; then
    sudo -H -u $LOGGED_IN_USER /usr/local/sbin/xfce4-user-session-shutdown.sh
fi
  • /usr/local/sbin/xfce4-user-session-shutdown.sh
#!/bin/sh
# xfce4-user-session-shutdown.sh
#
# 设置环境变量,使 DISPLAY 和 SESSION_MANAGER 为有效的,
# 并且可以执行 xfce4-session-logout 
 
HOST=`hostname`
SESSION_ID=`ls -t /tmp/.ICE-unix/ | head -n1`
# 注意,发行版们的 SESSION_MANAGER 变量使用不同的语法(这时用的是 Debian 格式)
# 如果这个不能用,请试着修改为类似于 
# SESSION_MANAGER="local/$HOST:@/tmp/.ICE-unix/$SESSION_ID" 这样的。
# 通过在 X 会话中查看 SESSION_MANAGER 的值,你总可以找到你的发行版的正确的格式
 
DISPLAY=:0 SESSION_MANAGER="local/$HOST:/tmp/.ICE-unix/$SESSION_ID" /usr/bin/xfce4-session-logout
 
  • 让这些脚本可执行 :
chmod +x /usr/local/sbin/xfce4-user-session-shutdown.sh /usr/local/sbin/xfce4-shutdown-as-user.sh

解决方案 2

  • 打开“设置管理器”(或者用命令:xfce4-settings-manager)
  • 打开“电源管理器”
  • 一般设置:设置按下电源按钮时询问
  • 关闭“电源管理器”
  • 如果您安装有 ACPI 脚本,从 /​etc/​acpi/​events/​ 停用或更新电源按钮脚本, 修改 action 字段的值为 /bin/true:
event=button/power.*
#action=/usr/lib/acpid/power_button
action=/bin/true

使用助记符创建 Thunar 自定义动作

当你创建一个 自定义动作 时,你可以设置一个字母前面带 “_”(下划线)的名字,这个字母作为助记符。当你在 Thunar 中点击右键时你可以按这个字母来访问你的自定义动作。

通过 xfrun4 打开用户手册页

使用 '#' 作为在 xfrun4 中打开一个用户手册页的快捷方式。例如,#man

使用 xfrun4/应用程序查找器 做数学运算

  • 能干嘛: 在xfrun4/应用程序查找器 中,输入简单的数学运算式子,比如 5+5 或 (5+5)/3 或 .5*10, 运算结果将显示在桌面通知中.
  • 需要有此命令: notify-send
  • 在您的家目录,保存此脚本为 bcme.sh :
#!/bin/sh

precision=2        # number of digit for floating value
notify_time=20000  # number of milisecond the notification show

res=`echo "scale=$precision;$@" | bc`  
notify-send -t $notify_time "$res" "=$@"
  • 在应用程序查找器添加自定义动作 :
    • 类型 : 正则表达式
    • 类型 : ^([0-9]|\(|\.).*
    • 命令 : /bin/sh ~/bcme.sh \0
    • (勾选) 在命令历史中保存匹配的

Xfconf

Toggle panel autohide

Short Bash script to toggle the autohide property of a panel, so you can bind for example a keyboard shortcut to quickly show and hide a panel.

#!/bin/sh
 
test -z "$1" && echo missing panel id  && exit 1
test ! -z "`echo $1 | sed s/[0-9]*//g`" && echo bad panel id  && exit 1
 
CHANNEL=xfce4-panel
PANELID=$1
PROP=/panels/panel-$PANELID/autohide
 
if `xfconf-query -c $CHANNEL -p $PROP >/dev/null 2>&1`; then
    xfconf-query -c $CHANNEL -T -p $PROP
else
    xfconf-query -c $CHANNEL -n -p $PROP -t bool -s false
fi