一 : Daniel Fore专访:Linux发行版elementary OS正在阔步前进
Freya中的多任务处理
我是忠实的OpenSUSE用户,没有半点的虚情假意。我很喜欢它,现在我还是openSUSE委员会的成员。
(www.61k.com)但是,这并不意味着我无法欣赏其他真正出色的Linux发行版。我绝对青睐的发行版之一就是elementary OS。这一批人在过去几年取得的成就完全称得上现象级。
于是,我联系上了elementary的掌舵人Daniel Fore,聊一聊这个项目。话题涉及elementary OS的发展方向,如何取得今天这样的成绩,是什么原因激励着这位项目创始人。结果证明,这是一次相当发人深省的聊天。以下是谈话内容,没有经过任何编辑。
Elementary OS 美到你不能呼吸
elementary OS 0.3.2 发布下载,基于Ubuntu14.04
Elementary OS 0.3 Freya 新功能选项-用户可自定义键盘快捷键
Bryan:你会如何解释elementary OS项目及你在该项目中的角色?麻烦简单说一下。
Daniel:elementary OS是一种面向消费者、基于Linux的开源操作系统,它非常注重用户体验方面的设计。我是elementary(elementary OS背后的公司)的创始人。我把大量时间花在了团队的组织管理上,这个团队主要由自愿者组成,不过我也花时间为Web和桌面端编写代码、归类错误报告、提供可视化设计和用户体验设计,当然还与我们的用户进行互动。
你说,elementary“主要由自愿者组成”,那么多少从事elementary开发的人可以归入为“非自愿者”?
Daniel:眼下,我们只有两名全职员工和一员兼职员工。我们还通过Bountysource提供软件错误报告奖赏。在资金宽裕的前提下,我在尽量壮大这支队伍。我希望能够雇佣更多的人员来开发开源软件。
这确实让人意外。我想许多开源项目希望能够雇人来做专职工作。你们elementary是如何做到这一点的?
Daniel:很慢!我们花了整整六年时间来启动。我们发布头两个操作系统版本时是一家完全靠自愿者的公司。推出第三个版本(代号为Freya)时,我们决定采用一种类似Humble Indie Bundle独立游戏包的用户自愿、酌情付费模式,将我们的盈利策略与下载直接挂钩。我们探究了其他种类的盈利手段,比如销售CD和周边商品,但是直到我们采用用户自愿、酌情付费模式后,才有经济实力开始雇人。
什么驱使你不断开发elementary?毕竟多年的辛苦工作,却分文未得。大多数人会放弃,将注意力转到在那些早些年带来收入的工作。是什么让你坚持搞这个项目?
Daniel:对我来说,金钱不是最大的动机。金钱常常让我无法做我想要做的事情。开发elementary OS是我的爱好;在我看来,追寻爱好的自由比获得丰厚回报重要多了。实际上,当初我多次拒绝了该工作,因为那样会限制我开发elementary OS。这听起来也许有点疯狂,不过我认为这带来了回报,因为现在我可以靠做喜欢做的事来谋生。我不想靠开发并不真正喜欢的项目谋生。
具体来说,elementary OS的哪个方面让你满怀热情,使得这个项目对你来说重要到你愿意放弃那些丰厚回报的地步?
Daniel:Elementary OS一开始只是为了满足个人需求。我花了大量的时间在电脑上,我希望操作系统更快速、更聪明、更易于使用、更安全、更漂亮。我认为操作系统还没有做到更好,于是只要有办法我们能做得更好,我就认为我不会失去兴趣。对用户来说,我想要确保人们可以使用世界一流的操作系统,又没必要支付高昂的许可费、购买昂贵的硬件,或者是沦为广告的对象。
不久前,我将elementary比作救生筏:我想把人们拉出从事不喜欢的工作这个陷阱――他们的才华没有充分发挥出来,让他们有机会效力于这样一家公司:其文化崇尚个人自由,做真正有意义的事情。所以,我个人对elementary(无论公司还是操作系统)抱有的愿景是,尽我们所能,让这个世界对尽可能多的人来说变得更好一点。
这真是大大的愿景。在实现这些目标时,你认为谁是elementary的最大竞争对手?谁(任何项目或公司等)是elementary的拦路虎?
Daniel:在消费者看来,改用elementary OS意味着丢弃Windows或OS X。我可以说过去唯一阻碍采用的就是微软安全启动(Secureboot)功能。它让人们在安装时很困惑,尤其是他们在网上查到关于应不应该禁用该功能、这有多安全的冲突信息时。最近,我们在支持更多不同类型的(U)EFI配置方面取得了很大进展。通常来说,我们觉得自己在应对竞争对手方面做得相当好,因为眼下,下载elementary OS的人当中70%以上是从Windows或OS X转投而来的。
70%以上的elementary OS下载用户是来自Windows/Mac?这确实惊人。这是如何做到的?你是否一直在向非Linux用户积极宣传?
Daniel:我认为这与我们介绍自己的方式有很大的关系。我们在官方网站上开始使用这句口号:“一种替代Windows和OS X的快速、开放的操作系统”。我们列出了介绍我们应用程序的图片,展示了这款操作系统的功能特性。我们的所有文案都完全面向消费者。我们花了很大的力气让我们的社交媒体帐户很活跃、反应很迅速,并直接与用户互动。我认为,这让我们的品牌极讨人喜欢,并且消除了计算机用户新手有时觉得Linux会带来的一些“吓人”的地方。我们并不做各种广告,所以我们依赖于给用户和科技记者留下好的印象。
这种方法似乎挺奏效!是否可以举例表明眼下elementary OS有多少活跃用户吗?
Daniel:我们没有任何种类的用户跟踪机制,所以我们目前无法衡量活跃用户的数量。
好吧!跟踪用户数量对许多Linux发行版来说异常困难。换个话题,咱们不妨说说未来。你认为elementary(无论公司还是操作系统)在今后几年会往哪个方向发展?
Daniel:在近期,我们会把大量的精力投入到开发人员这一块。广大开发人员对于专门针对elementary OS开发应用程序抱有浓厚兴趣,但是他们对如何分发那些应用程序还不是完全清楚。眼下,我们依赖Ubuntu的上游软件库,这意味着用户想及时获得最新版本的应用程序有点困难。所以这对两边来说都是个问题。
我们还将把自愿、酌情付费这种模式扩展到应用程序,为我们的开发社区提供一种为开发筹集资金的简易方法。我认为,专注于提供出色的开发体验,并帮助开发人员获利,这不仅会将elementary OS推到下一个阶段,还会提供另一种稳定的收入来源,那样我们就可以用来发展公司。这是一大步,因为它让我们成为这样一家公司:不仅提供完成的产品,还可以提供服务:由于我们期望在云领域展开竞争,这是一种重要的经验。
用户越来越期望应用程序可以充分利用互联网,不仅仅用于像Dropbox那样同步文件夹中的数据,还可以用于透明地备份数据和设置、流式传输内容,以及与其他用户进行互动。所以,完善OS这个平台以及发展公司成为提供商方面还有许多工作要做。
你对“应用程序商店”感兴趣吗?
Daniel:你可能听说了。我们开发elementary OS版本时一直在测试客户端,虽然服务器端还没有完全准备好用于生产环境,但是我们在这方面同样取得了很大的进展。
不错。你在发布elementary OS的下一个版本方面有没有一份时间表?还是说,你会采取“准备好了我们就发布”这种做法?
Daniel:哈哈,始终是“准备好了发布”,不过今年肯定会发布。
好的,最后你还有什么想要补充的内容吗?
Daniel:与往常一样,一切都是开源,如果人们想要参与开发elementary OS,我们当然会很欢迎。想获得更多的全面信息,可以访问https://elementary.io/get-involved。就算你不知道如何编写代码,我们也总是可以派人翻译、编写说明文档、报告他们发现的任何问题,当然我们也很欢迎资金方面的任何帮助。
原文标题:Elementary boss watches the Linux distro make great strides,作者:Bryan Lunduke
本文永久更新链接地址:
二 : Yellowstone—Yosemite风格Elementary OS主题
苹果最新的OS X Yosemite自发布以来就深受大家喜欢,也是争相模仿的对象,无论是Windows系统还是Linux系统通过主题都可以将其打造成OS X Yosemite风格。
(www.61k.com)elementary OS拥有着极好的设计,也有众多的用户。虽然很多人认为elementary OS模仿Mac OS X,但实际上两者并没有多少相似之处,除了共有的底部dock。
今天我们向大家介绍Yellowstone这款适用于elementary OS的Yosemite风格主题,让你的elementary OS变为苹果范儿。
要想安装Yellowstone主题,你需要elementary tweaks的帮助,可以通过PPA安装:
sudo apt-add-repository ppa:versable/elementary-update
sudo apt-get update
sudo apt-get install elementary-tweaks
muzi 网站上网友 Campanula 亲测后留言说tweaks的那个源不适用于0.3,新的源:
sudo add-apt-repository ppa:mpstark/elementary-tweaks-daily
sudo apt-get update
sudo apt-get install elementary-tweaks
并且这个主题也不完全适用于0.3,有很大的瑕疵,基本无法使用。
下载Yellowstone主题
------------------------------------------分割线------------------------------------------
免费下载地址在http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在/2015年资料/1月/5日/Yellowstone—Yosemite风格Elementary OS主题/
下载方法见
------------------------------------------分割线------------------------------------------
该主题托管地址:
三 : 安装Elementary OS Freya 要做的一些设置
买沙发的时候首要考虑的是尺寸(能放下不、能躺的直不),其次才是质量、牌子、观感……,功能是首要的,扩展功能也是必须的,我就会把各种大小、厚薄、的靠枕、抱枕在沙发上堆成一个窝然后躺在里面看书。因为常躺于是自己做(自己选材,自己剪裁,自己制作)了两套沙发套,便于换洗。现今电脑可能是仅次于手机的高频使用的信息媒介(对于我来说书比手机频率高)了,怎么用,用的爽不爽只有自己知道,习惯、品味……等各种因素掺杂其间。裸机装完操作系统,多少会做些设置——安装喜欢的软件、加快捷方式、设壁纸、设屏保……。
(www.61k.com)用Elementary OS freya半年了,各种日常遇到的问题解决后,发现做个简单的总结很有必要(有些解决方法快忘了)。
在Elementary O(犇嫑)S 0.3下用WPS
1、关闭lightdm的访客会话
方法不止一个,我个人倾向于这个方案显得更干净,从askUbuntu上看到的。
sudo sh -c 'printf "[SeatDefaults]nallow-guest=falsen" >/usr/share/lightdm/lightdm.conf.d/50-no-guest.conf'
2、plank设置
就是那个docker了,宽屏显示器下应该有不少人会把启动器放在边上,我就放在左边(不管Linux还是Windows,不管Unity还是Plank)我也看到过有人用MAC也把dock放左边。如果不喜欢缺省的GTK主题可以考虑缺省安装的三个主题,我喜欢透明的(尽管缺省的那个主题功能性更好),如果爱折腾还有第三方的主题可用。
主题就放在/usr/share/plank/theme下,目录名就是主题名。主题设置以前是可以在系统设置中设置的,后面升级后设置界面没了。可以手工修改配置文件。
#The position for the dock on the monitor. If 0, left. If 1, right. If 2, top. If 3, bottom.
Position=0
#The name of the dock’s theme to use.
Theme=Transparent
3、热区设置
这是我觉得gnome应该有的功能(KDE里好像也有),我通常会设定两个下角热区。
4、完成完整语言包的安装
安装时在启动菜单出来前选择中文,安装过程中会显示下载语言包,但结果还是不完整。在系统设置中”区域和语言“部分可以根据提示完成语言支持的安装。但有时翻译还是不够完整,我的方法是卸载language-pack-gnome-zh-hans再安装。
sudo apt-get remove language-pack-gnome-zh-hans
sudo apt-get install language-pack-gnome-zh-hans
顺便提一下:
如果从beta2镜像安装,托盘上有可能看不到输入法指示器,也呼不出输入法。运行ibus-setup设置一下就可以输入了,指示器不一定会出来。
”区域和语言“中那个“应用于登陆窗口、访客账户及新用户”不要点,如果不慎点了,恢复/etc/default下的keyboard和locale即可。
5、安装惯用软件——浏览器、编辑器等
我是重度浏览器用户所以不用系统的缺省浏览器,用firefox还是chromium看个人喜好和需求,我依赖ff的一些插件且有打开60个以上标签页的习惯,所以使用firefox并将”启动Firefox时(S)“设置成”显示上次打开的窗口和标签页“
sudo apt-get install firefox firefox-locale-zh-hans
sudo apt-get install chromium-browser chromium-browser-l10n
最近系统升级后firefox地址栏中输入中文会有奇怪的现象(比如用鼠标选择地址栏中内容时成了删除这些内容)甚至导致firefox僵死,解决办法是在地址栏输入时切换到非拼音(pinyin)输入法比如sunpinyin或英文。后来决定反正要用sublime text所以安装搜狗拼音。安装方法可参考:
系统没带office软件,如果有需要安装wps也不错。安装方法可参考:在elementary OS 0.3下用WPS
缺省编辑器scratch支持utf8中文,但输入不了中文,没细研究反正要写些代码就安装了sublime text 3
sublime text 中文输入参考了官方论坛的方法
/*
sublime-imfix.c
Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.
By Cjacker Huang
By whitequark@whitequark.org
How to compile:
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config –libs –cflags gtk+-2.0` -fPIC
How to use:
LD_PRELOAD=./libsublime-imfix.so sublime_text
Changes:
2014 06-09
1, Fix cursor position update for sublime text 3.
2, Combine the codes from whitequark(fix for xim immodule) and add cursor update support for XIM immodule.
*/
/*for RTLD_NEXT*/
#define _GNU_SOURCE
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef VERBOSE
#define DEBUG(fmt, …) do {
FILE* err = fopen(“/tmp/libsublime-immethod-fix.log”, “a”);
if (err) {
fprintf(err, fmt, __VA_ARGS__);
fclose(err);
}
} while(0)
#else
#define DEBUG(fmt, …)
#endif
typedef GdkSegment GdkRegionBox;
struct _GdkRegion
{
long size;
long numRects;
GdkRegionBox *rects;
GdkRegionBox extents;
};
GtkIMContext *local_context;
//this func is interposed to support cursor position update.
void
gdk_region_get_clipbox (const GdkRegion *region,
GdkRectangle *rectangle)
{
g_return_if_fail (region != NULL);
g_return_if_fail (rectangle != NULL);
rectangle->x = region->extents.x1;
rectangle->y = region->extents.y1;
rectangle->width = region->extents.x2 – region->extents.x1;
rectangle->height = region->extents.y2 – region->extents.y1;
GdkRectangle rect;
rect.x = rectangle->x;
rect.y = rectangle->y;
rect.width = 0;
rect.height = rectangle->height;
//The caret width is 2 in sublime text 2
//And is 1 in sublime text 3.
//Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.
if((rectangle->width == 2 || rectangle->width == 1) && GTK_IS_IM_CONTEXT(local_context)) {
gtk_im_context_set_cursor_location(local_context, rectangle);
}
}
//this is needed, for example, if you input something in file dialog and return back the edit area
//context will lost, so here we set it again.
static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context)
{
XEvent *xev = (XEvent *)xevent;
if(xev->type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {
GdkWindow * win = g_object_get_data(G_OBJECT(im_context),”window”);
if(GDK_IS_WINDOW(win))
gtk_im_context_set_client_window(im_context, win);
}
return GDK_FILTER_CONTINUE;
}
void gtk_im_context_set_client_window (GtkIMContext *context,
GdkWindow *window)
{
GtkIMContextClass *klass;
g_return_if_fail (GTK_IS_IM_CONTEXT (context));
klass = GTK_IM_CONTEXT_GET_CLASS (context);
if (klass->set_client_window)
klass->set_client_window (context, window);
//below is our interposed codes to save the context to local_context.
if(!GDK_IS_WINDOW (window))
return;
g_object_set_data(G_OBJECT(context),”window”,window);
int width = gdk_window_get_width(window);
int height = gdk_window_get_height(window);
if(width != 0 && height !=0) {
gtk_im_context_focus_in(context);
local_context = context;
}
//only add this event_filter when using ‘fcitx’ immodule.
//for xim immodule, this function is as same as original from gtk2.
const gchar * immodule = g_getenv(“GTK_IM_MODULE”);
if(immodule && !strcmp(immodule, “fcitx”)) {
gdk_window_add_filter (window, event_filter, context);
}
}
/*below codes is from whitequark, fix for xim immodule*/
/* See gtkimcontextxim.c */
GType gtk_type_im_context_xim = 0;
#define GTK_TYPE_IM_CONTEXT_XIM (gtk_type_im_context_xim)
#define GTK_IM_CONTEXT_XIM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IM_CONTEXT_XIM, GtkIMContextXIM))
#define GTK_IM_CONTEXT_XIM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_IM_CONTEXT_XIM, GtkIMContextXIMClass))
#define GTK_IS_IM_CONTEXT_XIM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_IM_CONTEXT_XIM))
#define GTK_IS_IM_CONTEXT_XIM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IM_CONTEXT_XIM))
#define GTK_IM_CONTEXT_XIM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IM_CONTEXT_XIM, GtkIMContextXIMClass))
typedef struct _GtkIMContextXIM GtkIMContextXIM;
typedef struct _GtkIMContextXIMClass GtkIMContextXIMClass;
struct _GtkIMContextXIMClass
{
GtkIMContextClass parent_class;
};
typedef struct _StatusWindow StatusWindow;
typedef struct _GtkXIMInfo GtkXIMInfo;
struct _GtkIMContextXIM
{
GtkIMContext object;
GtkXIMInfo *im_info;
gchar *locale;
gchar *mb_charset;
GdkWindow *client_window;
GtkWidget *client_widget;
/* The status window for this input context; we claim the
* * status window when we are focused and have created an XIC
* */
StatusWindow *status_window;
gint preedit_size;
gint preedit_length;
gunichar *preedit_chars;
XIMFeedback *feedbacks;
gint preedit_cursor;
XIMCallback preedit_start_callback;
XIMCallback preedit_done_callback;
XIMCallback preedit_draw_callback;
XIMCallback preedit_caret_callback;
XIMCallback status_start_callback;
XIMCallback status_done_callback;
XIMCallback status_draw_callback;
XIMCallback string_conversion_callback;
XIC ic;
guint filter_key_release : 1;
guint use_preedit : 1;
guint finalizing : 1;
guint in_toplevel : 1;
guint has_focus : 1;
};
static GClassInitFunc orig_gtk_im_context_xim_class_init;
static GType (*orig_g_type_module_register_type)(GTypeModule *,
GType, const gchar *,
const GTypeInfo *, GTypeFlags);
static gboolean (*orig_gtk_im_context_xim_filter_keypress)(GtkIMContext *context,
GdkEventKey *event);
static gboolean
hook_gtk_im_context_xim_filter_keypress(GtkIMContext *context, GdkEventKey *event) {
GtkIMContextXIM *im_context_xim = GTK_IM_CONTEXT_XIM(context);
if (!im_context_xim->client_window) {
DEBUG(“im_context_xim == %pn”, im_context_xim);
DEBUG(“event->window == %pn”, event->window);
gtk_im_context_set_client_window(context, event->window);
}
return orig_gtk_im_context_xim_filter_keypress(context, event);
}
static void
hook_gtk_im_context_xim_class_init (GtkIMContextXIMClass *class) {
orig_gtk_im_context_xim_class_init(class, NULL); /* wat? */
GtkIMContextClass *im_context_class = GTK_IM_CONTEXT_CLASS (class);
assert(!orig_gtk_im_context_xim_filter_keypress);
orig_gtk_im_context_xim_filter_keypress = im_context_class->filter_keypress;
im_context_class->filter_keypress = hook_gtk_im_context_xim_filter_keypress;
DEBUG(“orig_gtk_im_context_xim_filter_keypress: %pn”,
orig_gtk_im_context_xim_filter_keypress);
}
GType
g_type_module_register_type (GTypeModule *module,
GType parent_type,
const gchar *type_name,
const GTypeInfo *type_info,
GTypeFlags flags) {
if (!orig_g_type_module_register_type) {
orig_g_type_module_register_type = dlsym(RTLD_NEXT, “g_type_module_register_type”);
assert(orig_g_type_module_register_type);
}
if (type_name && !strcmp(type_name, “GtkIMContextXIM”)) {
assert(!orig_gtk_im_context_xim_class_init);
orig_gtk_im_context_xim_class_init = type_info->class_init;
assert(sizeof(GtkIMContextXIM) == type_info->instance_size);
const GTypeInfo hook_im_context_xim_info =
{
type_info->class_size,
type_info->base_init,
type_info->base_finalize,
(GClassInitFunc) hook_gtk_im_context_xim_class_init,
type_info->class_finalize,
type_info->class_data,
type_info->instance_size,
type_info->n_preallocs,
type_info->instance_init,
};
DEBUG(“orig_gtk_im_context_xim_class_init: %pn”, orig_gtk_im_context_xim_class_init);
gtk_type_im_context_xim =
orig_g_type_module_register_type(module, parent_type, type_name,
&hook_im_context_xim_info, flags);
return gtk_type_im_context_xim;
}
return orig_g_type_module_register_type(module, parent_type, type_name, type_info, flags);
}
编译
gcc -shared -o libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags gtk+
-2.0` -fPIC
kai@EOSFreya:~$ cat /usr/share/applications/sublime-text.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/usr/bin/subl %F
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;Utility;
StartupNotify=true
Actions=Window;Document;
X-Desktop-File-Install-Version=0.22
[Desktop Action Window]
Name=New Window
Exec=/usr/bin/subl -n
OnlyShowIn=Unity;
[Desktop Action Document]
Name=New File
Exec=/usr/bin/subl --command new_file
OnlyShowIn=Unity;
kai@EOSFreya:~$ cat /usr/bin/subl
#!/bin/sh
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"
kai@EOSFreya:~$
6、系统设置中键盘设置crash的问题
其实挺简单,在”区域和语言“中设置勾选”键盘设置“ ”汉语“即可。如果你喜欢键控或查看有哪些快捷键可用的话。
6、系统设置中键盘设置crash的问题
其实挺简单,在”区域和语言“中设置勾选”键盘设置“ ”汉语“即可。如果你喜欢键控或查看有哪些快捷键可用的话。
本文永久更新链接地址:
四 : Elementary OS 美到你不能呼吸
Elementary OS是一款基于Ubuntu精心打磨美化的桌面 Linux 发行版,号称 “最美的 Linux”。 Elementary 最早是 Ubuntu 的一个美化主题项目,现在成了独立的发行版。
(www.61k.com)Elementary OS 0.3.2 发布,这是一个小版本,主要修复 UEFI & SecureBoot 的一些问题,同时也有一些国际化更新和新的特性。详情请看:
本文永久更新链接地址:
五 : 安装 Elementary OS Freya 后做 20 件事,打造优雅桌面
你是否喜欢华丽的桌面?喜欢将自己的 Linux 变得更加易用,更加完美?那么是否尝试过 Elementary OS Freya 呢?如果安装了 Elementary OS Freya 以后呢?那么今天我带来了一份关于安装 Elementary OS Freya 后,打造优雅,完美桌面的指南。是不是等不及了?
安装系统更新
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist upgrade
◾安装额外的驱动
在软件与更新中直接选择安装额外驱动即可。
(www.61k.com。◾安装媒体解码器并且启用 DVD 回放
a) 安装多媒体框架
sudo apt-add-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get installUbuntu-restricted-extras ffmpeg gstreamer0.10-plugins-ugly libavcodec-extra-54 libvdpau-va-gl1 libmad0 mpg321 gstreamer1.0-libav
b) 启用 DVD 回放
sudo /usr/share/doc/libdvdread4/install-css.sh
◾安装 VLC 媒体播放器
sudo apt-get install vlc
◾安装Flash Player 和 Pepper Flash 插件
sudo apt-get install flashplugin-installer pepperflashplugin-nonfree
◾安装 JAVA
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get installOracle-java9-installer
◾安装各种归档文件,压缩文件格式支持
sudo apt-get unace rar unrar p7zip-rar p7zip sharutils uudeview mpack arj cabextract lzip lunzip
◾安装 LibreOffice 办公软件
sudo apt-get install libreoffice libreoffice-gtk libreoffice-style-sifr
◾安装其他的网页浏览器
sudo apt-get install chromium-browser firefox
◾安装种子下载器
sudo apt-get install transmission
◾安装下载管理器
wgethttp://xdman.sourceforge.net/xdman_mint_ubuntu.deb
sudo dpkg -i xdman_mint_ubuntu.deb
◾安装图像处理软件
sudo apt-get install gimp inkscape
◾安装搜索指示器
sudo apt-add-repository ppa:elementary-os/unstable-upstream
sudo apt-get install indicator-synapse
◾安装系统调整工具
sudo apt-add-repository ppa:mpstark/elementary-tweaks-daily
sudo apt-get install elementary-tweak
◾安装 Birdie Twitter 客户端
sudo add-apt-repository ppa:birdie-team/stable
sudo apt-get update
sudo apt-get install birdie
◾安装即时通讯软件 Pidgin 和 Skype
sudo apt-get install skype pidgin
◾安装 Steam 游戏客户端
sudo apt-get install steam
◾安装 Bleachbit 系统记录清理工具
sudo apt-get install bleachbit
◾安装在线云存储客户端
下载 DropBox : https://www.dropbox.com/install?os=lnx
安装 Google Drive
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse
◾针对笔记本,安装 TLP 以延长电池寿命,减少发热
sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp tlp-rdw
sudo tlp start
Elementary OS 0.3 Freya 新功能选项-用户可自定义键盘快捷键
试用 Elementary OS 0.3 Freya Beta 1
Elementary OS 0.3 Freya 截图赏析
Elementary OS 0.3 Freya 发布
Elementary OS,致亲爱的Linux用户
在Elementary OS 0.3下用WPS
本文永久更新链接地址:
本文标题:elementary os-Daniel Fore专访:Linux发行版elementary OS正在阔步前进61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1