这些天博主我一直没更新博客,因为我一直在玩一个非常有趣的“游戏”——Linux高仿Windows 7界面。现在基本上有完美的效果了。可以先看下我录制的视频(上传到优酷的视频可能不够清晰,您也可以直接下载原始ogv视频):
模仿windows7界面之前,先要对其进行解构:
可以看出,高仿windows7界面不是改一下桌面背景那么简单。为了完美高仿windows 7界面,需要改变以下内容:
- 背景壁纸
- 图标
- GTK界面控件风格
- 鼠标指针
- 窗口管理器
- dock“任务栏”
- “开始”菜单
- 窗口动画特效
- 字体
- 快捷键组合
如果你更疯狂的话,还可以改很多其他内容:比如声音主题、dm登陆界面、wine的界面、cmd的头两行、cmd的字体等等。
1,首先选择一个最适用桌面环境(DE)——LXDE
为了这个游戏更好的通关,必须选择一个高度可定制的DE。经过筛选,我最终选择了LXDE。
Linux下的session虽然众多,但能称得上为DE(桌面环境)的只有KDE、GNOME、MATE、Cinnamon、XFCE、LXDE有限的几种,其他全都是WM(窗口管理器)。DE跟WM不同的地方在于前者可以用compiz --replace或metacity --replace之类的命令更换很多WM,而后者已经限定了某种wm,比如E18里就只能用enlightenment窗口管理器,fvwm里只能用fvwm窗口管理器,一旦运行了compiz --replace或metacity --replace之类的命令就会提示错误或崩溃退出。
在以上几种DE里,只有LXDE最轻量(树霉派采用了lxde桌面不是没有理由的!)。KDE和GNOME都有太多的后台程序,很笨重,都应该排除。XFCE虽然也是一个不错的选择,但比LXDE仍略显笨重。
2,从gnome-look.org下载juandejesuss制作的Win2-7主题安装包(附百度云盘传送门)
因为这个主题安装包适应几年前的ubuntu系统,所以这个主题安装包只能作为素材用,很多地方都需要自己DIY。
原始安装包放在了www.mediafire.com,要翻TMD墙才能下载。考虑到不少人不会翻墙,我把它复制到百度云盘了,链接在此,下载好后解压到任意地方。
PS:感觉这个主题的作者真的很用心,安装脚本写的非常详尽到位。虽然我没有用上它的脚本,自己也动手修改了很多地方(比如compiz配置、dockbarx主题等),但我还是为这个主题捐赠了5美刀(截图)。
3,接下来,开始非常简单的工作
换壁纸:桌面右键菜单 ——>点击“桌面偏好设置”——>壁纸选择Win2-7主题安装包目录下的Files/backgrounds/Win2-7Pixmap.jpg
换图标:解压Win2-7主题安装包目录下的Files/icon-theme两个主题到~/.icons中,然后运行lxappearance命令,切换到“图标主题”选项卡,选择Win2-7 6.0图标主题。
换GTK控件风格:拷贝Win2-7主题安装包目录下的Files/gtk-theme目录下的所有gtk主题到~/.themes中,然后运行lxappearance命令,在“窗体”选项卡中选择Win2-7(Pixmap)主题。因为作者制作这个主题的时候Gnome3尚未兴起,相应的gtk3主题没有制作,所以可以考虑从gnome-look.org下载一个更好的仿win7主题,名叫WinTwin-LM17C_3.1_Slate,它的gtk2和gtk3主题都有。
换鼠标指针:拷贝Win2-7主题安装包目录下的Files/cursor/aero-drop目录到~/.icons中,然后运行lxappearance命令,在“鼠标光标”选项卡中aero-drop主题(如果使用marco窗口管理器,这个主题aero-drop就没法用,这是个奇妙的bug,为了这个bug我折腾了两天,最后改用compiz平安无事)。
4,安装、启用、配置compiz+emerald窗口管理器
先说说使用compiz窗口管理器的理由。在选用compiz窗口管理器之前,我用了openbox、xfwm4、metacity、marco,都不中意。openbox的窗口主题非常简陋;xfwm4主题动态效果差,有点呆板;metacity兼容性不好;marco没有相应的跟win7窗口主题类似的资源。而且这几个窗口管理器都不支持透明效果,不支持窗口关闭最小化按钮的闪烁特效,更没有窗口关闭或打开时的三维特效,最后选择了各方面都中意的compiz + emerald窗口管理器。
安装compiz+emerald:我用的是archlinux,用yaourt -S compiz ccsm emerald命令安装的。
启用compiz:运行lxsession-edit命令打开“桌面会话设置”,切换到“高级选项”选项卡,在窗口管理器里填写compiz
配置compiz:运行ccsm打开CompizConfig设置管理器,点击进入“窗口装饰”,在“命令”里填写emerald --replace
选择emerald主题:拷贝Win2-7主题安装包目录下的Files/emerald-decoration/themes中的所有目录到~/.emerald/themes中,然后运行emerald-theme-manager,选择Win2-7Original主题。
5,用avant-window-navigator + dockbarx模拟windows7的superbar任务栏
在此非常遗憾的告诉大家,除了archlinux的aur源以外——Archlinux的强大易用真的没话说!——我试过很多发行版,他们都是没有awn软件源的,连编译都不能顺利通过,包括大名鼎鼎的Ubuntu都难以通过编译方式成功安装awn。因为这个残酷的现实,一个基于Ubuntu的用上了awn面板的zorin os发行版竟然在distrowatch上排名前10位。其实zorin os真的没啥!小衲我在此写这个博客就详尽的破解了zorin os的所有机关。zorin os其实就是gnome classic桌面环境 + awn面板 + dockbarx面板插件 + gnomenu开始菜单 + metacity窗口管理器等界面元素的组合而已。Archlinux能够轻松移植ZorinOS桌面,让ZorinOS发行版变成Archlinux的一个小小的session。
安装awn和dbx:yaourt -S avant-window-navigator awn-extras-applets dockbarx,因为awn的很多applet需要python插件,所以打开一个applet失败之后,应该安装相应的python2-xxx插件。
启用awn面板:一个桌面只需一种面板,用awn面板就最好禁用lxpanel,所以要修改~/.config/lxsession/LXDE/autostart,删除或用#注释掉其中的@lxpanel --profile LXDE行,然后加入@avant-window-navigator行,最后注销lxde再进入lxde。
设置awn面板:运行awn-settings打开Awn设置。进行如下操作:
- 在“首选项”选项卡里设置Size of icons为32pixels,Orientation选择Bottom,Style选择Flat,Behaviour选择Panel mode,Icon effects选择聚光灯,勾选“扩展面板”;
- 在“Applets”选项卡里找到DockBarX小工具,拖放到“启用的小程序”框框中。在“DockBarX”的右侧再放上一个“扩展器”小工具,这样DockBarX就可以伸展到整个面板。在“扩展器”的右侧再放上通知栏“Notification Area”小工具,因为默认的“Notification Area”高度为100%像普通图标一样大不美观,所以要在awn面板(不是Awn设置对话框里)的“Notification Area”小工具上点击鼠标右键设置“Notification Area”的高度为75%。在“Notification Area”的右侧再放上“Digital Clock”小工具。在“Digital Clock”的右侧再放上“Show Desktop”小工具。这样一个类似windows 7任务栏的界面结构就基本搞定了!
- 在“Advanced”选项卡里,设置Offset为4。
- 在“Themes”选项卡里可以自定义主题的颜色,您可以自己探索。这里分享一个我ps过的panel-bottom背景。
设置dockbarx:一种名叫Shinybar的主题据说可以实现windows7的任务栏按钮背景效果,但是小衲我发现这个主题达不到高仿的要求,所以我花了1-2天时间精心制作了一个AbsoluteSeven主题,你可以下载它拷贝到~/.dockbarx/themes目录下(不用解压),然后运行dbx_preference打开DockBarX设置,切换到“外观”选项卡,选择AbsoluteSeven主题,最后点击其右侧的刷新按钮。
6,用GnoMenu模拟Windows 7的“开始菜单”
安装awn和awn-extras-applets之后,awn面板就有了不少菜单类的applets,如Awn Main Menu,Cairo Main Menu,MiMenu,Yet Another Menu Applet等,但这些菜单都很土,主题单一,达不到Windows 7菜单那样的效果,所以我们要用GnoMenu。
安装GnoMenu:终端运行yaourt -S gnomenu命令。
启用GnoMenu菜单:运行awn-settings打开Awn设置,切换到“Applets”选项卡,找到GnoMenu,将其拖放到“启用的小程序”的最左侧。
安装使用Win2-7主题:拷贝Win2-7主题安装包目录下的Files/gnomenu/Themes中的所有子目录到/usr/share/gnomenu/Themes/中,然后运行GnoMenu.py settings命令打开GnoMenu设置,选择Win2-7Blue主题。
修改GnoMenu orb按钮:将这个logo.png下载放到/usr/share/avant-window-navigator/applets/GnoMenu里,然后修改/usr/share/avant-window-navigator/applets/GnoMenu/GnoMenu.py,将else: self.applet_button = Globals.Applogo行注释掉,并在下面加上
else: self.applet_button = '/usr/share/avant-window-navigator/applets/GnoMenu/logo.png'
优化GnoMenu orb按钮大小:Windows 7 orb按钮的高度是撑满整个任务栏的,而GnoMenu会随着awn面板设置参数在上下留有4px的间隙,显然跟windows 7有明显的差别,咱们就修改一下它的高度。还是修改/usr/share/avant-window-navigator/applets/GnoMenu/GnoMenu.py,找到两处self.applet.icon.file(self.applet_button, size=awnlib.Icon.APPLET_SIZE),在前面加上#注释掉,然后在它们的下面加上这样1行:
self.applet.icon.file(self.applet_button, size=applet.get_size()+2)
更正GnoMenu位置不正确的bug:使用了compiz窗口特效管理器之后,gnomenu的位置会偏离任务栏30个像素,很不美观,我借鉴GnoMenu变种ZorinMenu的python文件,修改/usr/lib/gnomenu/Menu_Main.py,在self.window.set_title('GnoMenu')一行上面加入以下内容解决了这个问题:
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_POPUP_MENU)
7,配置compiz以实现类似windows 7的窗口特效
Windows 7的窗口特效包括很多内容,例如:
- 窗口四周的阴影(emerald窗口管理器可以实现);
- 窗口右上侧“最小化”“最大化”“关闭”3个按钮的闪烁特效(emerald窗口管理器可以实现);
- 窗口跳出来或关闭时的3d动态特效(compiz可以实现);
- 菜单显示时的渐隐渐现(compiz可以实现);
- 窗口最小化时的缩小特效(compiz可以实现);
- 切换窗口的3d展示效果(compiz可以实现);
- 任务栏按钮的背景随着鼠标指针的位置高亮移动(linux下暂时没有方法实现);
- 鼠标悬停在任务栏按钮上出现的缩略图及其动态特效(awn可以实现,但缩略图功能似乎有问题);
- 窗口的透明高斯模糊效果(compiz已经撤销了高斯模糊特效);
- 窗口的若隐若现的平铺背景(linux下暂时没有方法实现);
如上面有颜色的文字所注明,windows 7的诸多窗口特效有一些可以通过emerald或compiz实现,有的暂时找不到方法。现在就说说能通过compiz实现的类似windows7的窗口特效的方法。
窗口跳出来或关闭时的3d动态特效:运行ccsm —> 点击左侧“特效” —> 勾选并进入"Animations" —> 设置type=Normal | Dialog | ModalDialog | Unknown) & !(name=gnome-screensaver)类的窗口的OpenEffect和Close Effect均为Glide2。
菜单显示时的渐隐渐现:同上,设置(type=Menu | PopupMenu | DropdownMenu | Combo)类的窗口的OpenEffect和Close Effect均为Fade。
窗口最小化时的缩小特效:同上,设置(type=Normal | Dialog | ModalDialog | Unknown)类的窗口的Minimize Animation和Unminimize Animation均为Glide 2。
最后说一句,compiz开发团队不知道从什么时候不再维护高斯模糊的特效了,导致视觉效果有一点小小不如意,让人有点遗憾。
8,渲染高质量微软雅黑中文字体
字体的重要性不言而喻,linux下默认的糟糕字体使整个桌面变得奇丑无比(相对于非高分屏而言),所以我用linux桌面的第一件事情就是渲染类似windows下那种受到广大设计师及普通用户认可的字体效果。windows界面就是拽!在Windows XP时代我借用了Simsun,微软雅黑出来以后我只用微软雅黑。
在linux里做到跟windows 7/8那样的字体效果,请参考一条命令搞定RPM系发行版(Redhat/Fedora/openSUSE/Mageia/CentOS/Arch)的infinality字体美化渲染方案【原创推荐】或一条命令搞定Linux字体渲染——Ubuntu系发行版微软雅黑+宋体终极解决方案【原创推荐】。
英文部分我推荐Ubuntu Condensed。
9,模仿windows 7的一些组合键
组合键的设置本来是非常个性化的事情,有时候没有也无妨。但我感觉ctrl+alt+del注销,win+r打开运行对话框还十分常用的,没有这些快捷键彷佛缺了点什么。
ctrl+alt+del打开注销对话框:运行ccsm —> 点击左侧“常规” —> 在命令行1里填写lxde-logout —> 切换到“按键绑定”选项卡 —> 点击“运行命令1”的右侧“已禁用”按钮 —> 勾选“已启用” —> 点击“获取按键组合”按钮 —> 按下ctrl+alt+del三键后松开 —> 点击“确定”完成设置。
win+r打开运行命令对话框:同上,命令行2里填写grun或xfce4-appfinder -c或其他运行对话框命令,“运行命令2”的组合键设置为win+r。
您还可以设置“锁屏”“截屏”之类的快捷键,请参照以上方法自行探索。
10,高仿windows cmd窗口(喜欢恶搞装逼的不要错过!)
做完了以上工作以后,再做一个高仿windows cmd的窗口拿来恶搞装逼,逼格立马提升。步骤有三:
先修改~/.bashrc,加入以下内容:以后打开任何终端都会出现这三行了:
echo -e "AbsoluteSeven Theme [版本 6.9.9999] " echo -e "(C) 版权所有 2014 www.linux.zone" echo ""
再下载安装调用小衲精心制作的luCMD等宽字体:安装字体及终端调用字体的方法就不用我多讲了吧?在这里下载luCMD字体。
最后设定luCMD字体和宋体点阵字体捆绑:修改/etc/fonts/infinality/infinality.conf,添加以下内容。
<!-- 让luCMD字体跟宋体点阵字体捆绑 --> <alias binding="same"> <family>luCMD</family> <prefer> <family>luCMD</family> <family>SimSun</family> </prefer> </alias>
设定luCMD字体和宋体点阵字体捆绑前,必须按照上面第8步列出的博客链接里的字体渲染方法操作。
OK,与windows 7界面高度相似的LXDE桌面折腾出来了!用两张截图来秀秀成果。
小衲的话:
不知不觉已经写下了近8000字的教程。最后来说一些题外话。
对linux桌面无感的linuxer可能认为我这样折腾实在是闲得蛋疼。但正如标题所言,折腾Linux桌面对我来说就是一种游戏,这是我的爱好之一。而且,对美观的需求是人的正常本能,所以您不必在此说三道四。
那个模仿windows 7桌面的zorin os发行版在distrowatch排名前10,说明了什么?说明很多linux用户都喜欢易用和漂亮的桌面的。
不过,经过我的“深撸”之后,zorin os的所有机关暴露无余。如果您按照上面的步骤一步步通关,相信您也可以得到高仿zorin os、windows 8、windows xp、macos x界面的钥匙,甚至还能发布自己的发行版呢!
最后我也来做一次伸手党吧——如果你觉得这篇文章有意义,请考虑给博主小衲捐助,谢谢!
58.23.247.***某Linux用户觉得这篇文章很有帮助。
此贴或将终结
现在我的kde换了主题当美化,但是还是不稳定
开源软件易用性还是有待提高,awn已经止步2017了
kde 做不到这么多样式,但是已经很好看了,而且awn和compiz都来自aur,甚至有孤儿包
是的。去年Gnomenu的python包被系统自动清除了。弄了好久才恢复。目前用一天算一天。
用一天算一天,那gnomenu有替代方案吗
github上面还有gnomenu包,拷贝之后可以用。
广东省广州市某Windows用户觉得这篇文章很有帮助。
内蒙古某Linux用户觉得这篇文章很有帮助。
广东省深圳市某Windows用户觉得这篇文章很有帮助。
江苏省无锡市某Linux用户觉得这篇文章很有帮助。
有意思,我也在虚拟机弄一个玩玩。by the way, 刚看到标题,以为你把Windows上的游戏移植到Linux上了。
是的。Linux本身就是有点烧脑的单机游戏。
求助!GnoMenu在aur里找不到,其他地方找到的2.9无法正常使用。
~$ GnoMenu.py debug
(GnoMenu.py:6906): Gtk-WARNING **: 无法在模块路径中找到主题引擎:“ia_ora”,
Traceback (most recent call last):
File "/usr/lib/gnomenu/GnoMenu.py", line 26, in
from gi.repository import PanelApplet as gnomeapplet
File "/usr/lib/python2.7/site-packages/gi/__init__.py", line 39, in
raise ImportError(_static_binding_error)
ImportError: When using gi.repository you must not import static modules like "gobject". Please change all occurrences of "import gobject" to "from gi.repository import GObject". See: https://bugzilla.gnome.org/show_bug.cgi?id=709183
谢谢!
是的,python版的经典gnomenu年久失修了。我这里自从2015年就没有动过,系统一直滚动升级,一直可以使用。
无法在模块路径中找到主题引擎:“ia_ora”, 像这种问题,找相关模块下载应该就可以。
那个模仿windows 7桌面的zorin os发行版在distrowatch排名前10,说明了什么?说明很多linux用户都喜欢“易用和漂亮”的桌面的。
无法定义你对“易用和漂亮”的定义,我的GNOME,kde ,xfce,openbox也都很漂亮
奇怪你的评论被自动当成了垃圾评论,差点被清空了!后来我发现你的ip定位在河南,莫非wordpress对河南人也有偏见?嘿嘿!你的gnome kde xfce桌面截图我想瞧瞧,给个链接吧!谢了!
安装compiz时,直接yaourt -S compiz,不用再安装ccsm,因为在aur里面compiz有0.9和0.8两个包,安装ccsm会安装compiz-core,这样会和compiz冲突!另外emerald需要安装yaourt -S emerald0.9这个版本,配合compliz非常的棒,另外在窗口装饰那个命令上需要的是eme --replace,不是emerald -replace!不然会导致窗口无标题栏!
好的,多谢指正,有空我再检查一下。
需要高斯模糊特效可以考虑kwin。Kwin的特效算比较丰富的,有能力还可以自己写特效。kde在gui的华丽上做的确实不错。
呵呵。现在不玩这种游戏了。在gentoo系统里整一个openbox一直在用。对外观主题设置这些永远产生不了经济效益和生产力的“纯游戏”不感冒了!
楼主做得很棒!!没想到字体效果可以做得这么棒,我之前是太随意了,能用就行,今天用了你打配置,感觉好很多
应该把功劳全都给infinality插件作者!
你好,百度云盘里的字体渲染文件貌似损坏了,不能解压缩
好的,既然多人反映此问题,今天就解决它!实在抱歉了,同学们!
"配置compiz+emerald窗口管理器"
请问为什么一个桌面中可以使用两种窗口管理器,还是我的理解有问题?
是的。compiz是更高级的窗口管理器吧,他可以把emerald包容进去,compiz能产生窗口3d特效。
有时间我也来折腾折腾 ubuntu可以换吗
可能不行。因为awn不兼容。我在ubuntu里折腾过很久。
你这个linux是哪个版本、?》
archlinux,用的aur源,软件很丰富。
碉堡了
不错!支持博主
新年快乐 羊年平安 工作顺利 万事如意