给大家介绍点关于GNOME 3的修饰技巧。如题所述,本次给大家介绍如何修改GNOME 3 “活动”文字为你喜欢的图标。
我们以更换为Fedora图标为例介绍。当然,你可以换成其他的图标,只要你喜欢。
在没有修改GNOME 3默认桌面之前,左上角显示的是文字“活动”,也就是你目前打开的应用列表。如下图添加红色箭头的地方。
这篇文章的目的就是交给兔兔们如何在红色箭头所指地方更换成Fedora logo/或你喜欢的图标(如下图所示):
方法
打开文件/usr/share/gnome-shell/js/ui/panel.js ,编辑修改Java脚本里面的相关项:
/* Button on the left side of the panel. */
/* Translators: If there is no suitable word for “Activities” in your la
nguage, you can use the word for “Overview”. */
let label = new St.Label({ text: _(“Activities”) });
this.button = new St.Button({ name: ‘panelActivities’,
style_class: ‘panel-button’,
reactive: true,
can_focus: true });
this.button.set_child(label);
提示,该段代码在该文件的靠后部分
然而,我们修改源代码文件可以成功,但是,每次系统更新GNOME Shell后都会覆盖掉我们的修改。
下面是另一种方法:使用扩展替代“活动(Activities)”!
把下面的文件放在路径 ~/.local/share/gnome-shell/extensions/activities@example.com
$ cat activities.json
{
“shell-version”: [“3.0”],
“uuid”: “activities@example.com”,
“name”: “activities”,
“description”: “Replace Activities text string”
}
$ cat extension.js
const St = imports.gi.St;
const Main = imports.ui.main;
const Panel = imports.ui.panel;
const Gettext = imports.gettext.domain(‘gnome-shell’);
const _ = Gettext.gettext;
function main() {
hotSpotButton = Main.panel.button;
let logo = new St.Icon({ icon_type: St.IconType.FULLCOLOR,
icon_size: hotSpotButton.height, icon_name: ‘fedora-logo-icon’ });
let box = new St.BoxLayout();
box.add_actor(logo);
hotSpotButton.set_child(box);
}
然后,ALT+F2,输入 “r”(没有引号),重新加载GNOME Shell,你应该看到变化了。
该扩展在Fedora 15上完美运行,icon图标已经可以显示在系统界面了。
$ cd /usr/share/icons这也就是说,Fedora-logo-icon 图标文件已经存在。该扩展使用的使用的图标位于 /usr/share/icons/Adwaita 下,也就是使用的是现在你使用的GNOME Shell 主题下面的文件夹里面的图标文件!
$ ls
Adwaita default gnome HighContrast LowContrast
Bluecurve Fedora hicolor HighContrastInverse oxygen
$ find ./ -name “fedora-logo-icon.*”
./hicolor/32×32/apps/fedora-logo-icon.png
./hicolor/22×22/apps/fedora-logo-icon.png
./hicolor/256×256/apps/fedora-logo-icon.png
./hicolor/16×16/apps/fedora-logo-icon.png
./hicolor/24×24/apps/fedora-logo-icon.png
./hicolor/96×96/apps/fedora-logo-icon.png
./hicolor/36×36/apps/fedora-logo-icon.png
./hicolor/48×48/apps/fedora-logo-icon.png
./Adwaita/fedora-logo-icon.png
$
要是你使用系统非默认的其他logo 图标呢?接着上面的例子,我给大家讲讲。
首先,必须创建一个合适的icon图像(使用GIMP很容易创建)。记住,该icon文件的扩展名必须是png,xpm或svg才行。
创建icon文件之后,接下来的问题就是如何命名文件,再就是把它放在哪里。比如说,我制作了一个红色的Fedora图标。我给它起名为fedora-logo-icon-red.png 。一般来说,应用会到 $HOME/.icons 或者 $XDG_DATA_DIRS/icons 和 in /usr/share/pixmaps 里面寻找icon文件。
建议把该文件—fedora-logo-icon-red.png,放在 $HOME/.local/share/icons 下面。该文件名字是唯一的,不要与其它文件发生冲突!
我们就可以按照下面脚本示例来修改extension.js :
const St = imports.gi.St;
const Main = imports.ui.main;
const Panel = imports.ui.panel;
const Gettext = imports.gettext.domain(‘gnome-shell’);
const _ = Gettext.gettext;
function main() {
hotSpotButton = Main.panel.button;
let logo = new St.Icon({ icon_type: St.IconType.FULLCOLOR,
icon_size: hotSpotButton.height, icon_name: ‘fedora-logo-icon-red’ });
let box = new St.BoxLayout();
box.add_actor(logo);
hotSpotButton.set_child(box);
}
即可!!
效果如图
要是你不想在左上角热键处,使用文本或者图标来表示的话,别急,也有方法达到你这个邪恶而犀利的目的!
方法还是很多,比如,你使用压根就不存在的一个icon文件,不就行了吗?哈哈,虽然可以,可是这个不专业!
专业点儿的话,我们就是设置一个长度为0的字符串。我们还是修改文件 extension.js :
const St = imports.gi.St;
const Main = imports.ui.main;
const Panel = imports.ui.panel;
function main() {
hotSpotButton = Main.panel.button;
let label = new St.Label({ text: “” });
hotSpotButton.set_child(label);
}
恩,可以了吗 ?
我没有在Ubuntu上亲身测试,我想应该是可行的。大家可以慢慢试试!祝你好运!!