Linux区


Linux高仿Windows 7界面“游戏”全攻略——通关后获得跟Windows 7高度相似的体验!

 

这些天博主我一直没更新博客,因为我一直在玩一个非常有趣的“游戏”——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。

切换窗口的3d展示效果:运行ccsm —> 点击左侧“窗口管理” —> 勾选并进入"Shift Switcher" —> 查看或修改Initiate Key,这个组合键就可以启动很炫的3d展示效果。

最后说一句,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界面的钥匙,甚至还能发布自己的发行版呢!

最后我也来做一次伸手党吧——如果你觉得这篇文章有意义,请考虑给博主小衲捐助,谢谢!

 

 

相关博文



以下是网友的33条评论,您赞同吗?

  1. 2023-12-31 21:42

    58.23.247.***某Linux用户觉得这篇文章很有帮助。

  2. Greem233
    2021-3-3 19:53

    此贴或将终结
    现在我的kde换了主题当美化,但是还是不稳定
    开源软件易用性还是有待提高,awn已经止步2017了

    • Greem
      2021-3-9 14:36

      kde 做不到这么多样式,但是已经很好看了,而且awn和compiz都来自aur,甚至有孤儿包

      • 小衲
        2021-3-9 14:39

        是的。去年Gnomenu的python包被系统自动清除了。弄了好久才恢复。目前用一天算一天。

        • Greem
          2021-3-9 14:43

          用一天算一天,那gnomenu有替代方案吗

          • 小衲
            2021-3-9 14:49

            github上面还有gnomenu包,拷贝之后可以用。

  3. 2020-4-1 23:52

    广东省广州市某Windows用户觉得这篇文章很有帮助。

  4. 2019-7-6 23:02

    内蒙古某Linux用户觉得这篇文章很有帮助。

  5. 2019-4-30 17:17

    广东省深圳市某Windows用户觉得这篇文章很有帮助。

  6. 2019-4-15 22:00

    江苏省无锡市某Linux用户觉得这篇文章很有帮助。

  7. 超梦
    2018-5-21 10:48

    有意思,我也在虚拟机弄一个玩玩。by the way, 刚看到标题,以为你把Windows上的游戏移植到Linux上了。

    • 小衲
      2018-5-21 10:50

      是的。Linux本身就是有点烧脑的单机游戏。

  8. 小太阳
    2017-6-24 0:05

    求助!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

    谢谢!

    • 小衲
      2017-6-24 5:35

      是的,python版的经典gnomenu年久失修了。我这里自从2015年就没有动过,系统一直滚动升级,一直可以使用。

      无法在模块路径中找到主题引擎:“ia_ora”, 像这种问题,找相关模块下载应该就可以。

  9. 125.46.250.*** [ 匿名 ]
    2015-4-25 8:56

    那个模仿windows 7桌面的zorin os发行版在distrowatch排名前10,说明了什么?说明很多linux用户都喜欢“易用和漂亮”的桌面的。

    无法定义你对“易用和漂亮”的定义,我的GNOME,kde ,xfce,openbox也都很漂亮

    • 小衲
      2015-4-25 17:04

      奇怪你的评论被自动当成了垃圾评论,差点被清空了!后来我发现你的ip定位在河南,莫非wordpress对河南人也有偏见?嘿嘿!你的gnome kde xfce桌面截图我想瞧瞧,给个链接吧!谢了!

      • wxp
        2015-5-2 22:41

        安装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!不然会导致窗口无标题栏!

        • 小衲
          2015-5-4 18:56

          好的,多谢指正,有空我再检查一下。

  10. maz_1
    2015-4-20 20:34

    需要高斯模糊特效可以考虑kwin。Kwin的特效算比较丰富的,有能力还可以自己写特效。kde在gui的华丽上做的确实不错。

    • 小衲
      2015-4-21 22:22

      呵呵。现在不玩这种游戏了。在gentoo系统里整一个openbox一直在用。对外观主题设置这些永远产生不了经济效益和生产力的“纯游戏”不感冒了!

  11. sam
    2015-3-26 13:02

    楼主做得很棒!!没想到字体效果可以做得这么棒,我之前是太随意了,能用就行,今天用了你打配置,感觉好很多

    • 小衲
      2015-3-26 22:05

      应该把功劳全都给infinality插件作者!

  12. 114.249.134.*** [ 匿名 ]
    2015-3-18 13:24

    你好,百度云盘里的字体渲染文件貌似损坏了,不能解压缩

    • 小衲
      2015-3-19 12:18

      好的,既然多人反映此问题,今天就解决它!实在抱歉了,同学们!

  13. malloc
    2015-2-25 20:17

    "配置compiz+emerald窗口管理器"
    请问为什么一个桌面中可以使用两种窗口管理器,还是我的理解有问题?

    • 小衲
      2015-2-26 13:05

      是的。compiz是更高级的窗口管理器吧,他可以把emerald包容进去,compiz能产生窗口3d特效。

  14. 106.39.255.*** [ 匿名 ]
    2015-2-15 0:34

    有时间我也来折腾折腾 ubuntu可以换吗

    • 小衲
      2015-2-15 5:31

      可能不行。因为awn不兼容。我在ubuntu里折腾过很久。

      • 203.100.95.*** [ 匿名 ]
        2015-2-17 15:00

        你这个linux是哪个版本、?》

        • 小衲
          2015-2-17 16:59

          archlinux,用的aur源,软件很丰富。

  15. 106.39.255.*** [ 匿名 ]
    2015-2-15 0:33

    碉堡了

  16. Intmain
    2015-1-25 9:22

    不错!支持博主

  17. 2015-1-1 10:22

    新年快乐 羊年平安 工作顺利 万事如意

发表评论

电子邮件地址不会被公开。