炮文:为什么你不应该用独立的WM作为你的桌面

因为你享受不到Linux桌面带来的好处。

如果你不知道什么是freedesktop.org,我建议你先去补课。

别以为Linux的桌面是没有标准的。为了让程序们能够在不同的桌面下正常工作,真的是有一些人去制定一个标准,让程序们可以放心的处理跨桌面的行为。

即使你想用独立为WM,从而满足你那小小的需求,你也应该去用一个桌面,然后替换掉上面的组件。而不是写一些愚蠢的脚本将别的桌面的组建在你可怜的桌面上启动。

lxde,xfce都是不错的开始。尤其是xfce,当年我在上面各种替换组件的经历都十分愉快。

其次选择一个登录管理器(噢,你别把slim当成和startx有什么区别的东西),而不是startx。如果你想知道为什么的话,那就是一些必须的初始化。如果不想纠结于,dbus,polkit,networkmanager,为什么在你的桌面上不能正常工作的话。

事实上,没有几个人能够好好的初始化这些东西,与其花费精力去了解这些东西到底是什么,为什么不用一个bug free的session管理器呢?

有什么会Break?

文件关联,你总是需要一个文件管理器,xdg-open是桌面程序开发者的好帮手,帮你选择正确的程序打开文件,但你不要自作聪明去破坏开发者的好意。使用一个xdg兼容的文件管理器能省下你无数功夫。

dbus & consolekit

DBus的连接是一个抽象的地址,为了让一些程序能够通信,他们需要连接到这同一个地址上面。但是DBus找到这个地址的方式有两个,一个是通过session,一个是通过环境变量,如果你不懂怎么才能初始化consolekit和dbus,你最好省省去用一个session管理器。

这些还不够吗?

你要好好学习到你是一个非主流用户了,如果你连这点都认识不到,你不要指望桌面开发者能够照顾你什么,你和他们已经不是生活在一个时代的人了。

不要指望开发者会给你一个地方配置使用什么浏览器,不要指望开发者给你一个地方设置使用什么文件管理器,不要指望开发者给你一个地方去设置你愚蠢的文件关联命令。自从你自作聪明的使用你愚蠢的脚本启动桌面,你早就活在他的用户群之外了。

This entry was posted in Linux and tagged , . Bookmark the permalink.

33 Responses to 炮文:为什么你不应该用独立的WM作为你的桌面

  1. multiple1902 says:
    Firefox 6.0 GNU/Linux x64

    好文章呀!

  2. adam8157 says:
    IceWeasel 6.0 GNU/Linux x64

    awesome中枪.

  3. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @adam8157 这篇文章的含义不代表用awesome等窗口管理器有什么问题,而是表示你应该选择替换一个桌面的窗口管理器,而不是用startx。

  4. adam8157 says:
    IceWeasel 6.0 GNU/Linux x64

    @csslayer 哦, 确实装一个dm会省很多事儿…

  5. Iven says:
    Firefox 6.0 GNU/Linux x64

    貌似文章说的是 DM 的问题,跟 WM 没啥关系啊, startx 也能启动 DE ……
    而且 startx 也只需要 ck-launch-session dbus-launch 一下就没啥问题了吧……去 startx 的基本上都已经到了后果自负的境界了……

  6. vx13 says:
    Firefox 5.0 GNU/Linux x64

    被炮文轰到了啊。使用窗口管理器可以有一种优越感,虽然 linus 大神是支持桌面环境的。
    我喜欢 dwm 那种纯粹的感觉,连配置文件都没有,编译以后很自然地用起来,至于 startx ,觉得能用就可以了。

  7. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @Iven 你答对了,目前就需要这两句,可很少有教程提到啊。
    尤其是这两句应该覆盖你全程脚本,而不是仅仅是最后启动wm的地方。

    他们从来没搞清楚不知道这俩到底是干什么的,只知道”好像写上这两句就解决问题了”,例如

    #!/bin/sh
    # ~/.xinitrc
    nm-applet

    exec ck-launch-session dbus-launch openbox

    这是不行的。

    今天看了这样一篇,相当优雅的管理方式。如果用 ~/.xinitrc,就应该这么玩。
    https://wiki.archlinux.org/index.php/Xinitrc.d_Framework

  8. ghw says:
    Google Chrome 13.0.782.215 FreeBSD

    GNOME3用户表示无压力

  9. Iven says:
    Firefox 6.0 GNU/Linux x64

    @csslayer Arch Linux 的 Wiki 拯救世界…… Slim 页面上面看到的这两个命令及使用方法……

  10. T2 says:
    Internet Explorer 9.0 Windows 7 x64 Edition

    我自己平时上网,看动画,写程序。一个dwm,每天startx,consolekit没装,中文基本上只在浏览器里用云输入法,并没觉得有什么不适。用不到也不知道dbus是什么,文件关联问题也没碰到过。看了文章后有点想法,但是突然意识到if it ain’t broke, don’t fix it。什么系统托盘?什么消息总线?享受不到好处?别为我好,求求你了。

  11. yuihji says:
    Firefox 3.6.17 Gentoo x64

    这文章轰的范围好广,连 Openbox 都中枪。俺也“回击”一把。
    并不是每个人都喜欢所谓“Linux 桌面带来的好处”,有的时候这些“好处”想让人骂娘。为什么挂载一个 U 盘还要输入 root 密码?为什么有的时候“关机”的小图标莫名消失了?为什么昨天放这儿的东西没了?为什么遇到问题就要删除 ~/.gconf ,然后就莫名解决了?为什么……老实说,kde 和 gnome 是 bug free 吗?我怀疑啊。就连你不也吐槽过 gnome 3 么?在 gnome 3 上开发 fcitx 的感受你以前也说过。
    请不要把用 WM 描述成一件“非主流”的事儿。首先,Windows 用户会在你抱怨网银什么问题的时候用“非主流”噎住你的,Linux 桌面从市场占有率上大概不会是“主流”了。其次,这些“非主流”的选择确实适应了一部分人的需要,所谓存在即合理。你不屑一顾乃是个人的自由,却何必说得如此不堪?
    WM 就不遵守 Linux 的桌面标准吗?部分吧。但是也没有碍什么事。我在 Openbox 上用 fcitx 的时候(以前的事情了,大约用到了 fcitx 4.0),我也用的好好的,并没有劳驾开发者使用 Openbox 吧。而且诚如你所言,再添加组件么。文件管理器,面板,输入法,conky,…选择不少,不中就换。
    最后,那些标准就真的那么好吗?你觉得注册表一般的 gconf 真的很招人待见吗?

  12. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @yuihji 欢迎一起来喷gconf啊 XDDD
    人家是KDE党啊。你怎么嘲讽gnome我都不在乎的。

    再说我也不是说openbox就怎么样,你用openbox照样可以用lxde去。

    我可以明确告诉你,我是遇见一位用startx 的老兄用不了fcitx新的im module(因为初始化consolekit和dbus不正确),才写个玩意来告诫下那些用startx的家伙们,好好搞好你们startx脚本,桌面开发者没义务为你们去做任何蛋疼的walkaround。

    不认真看文的自己把自己扔到被炮对象里面可不要怪我。

  13. Justin Wong says:
    Firefox 6.0 GNU/Linux

    理解你的目的,不是在喷非主流。估计是有一些不会折腾还硬要用WM的小鸟惹着你了吧?
    不过 “不要指望开发者会给你一个地方配置使用什么浏览器,不要指望开发者给你一个地方设置使用什么文件管理器,不要指望开发者给你一个地方去设置你愚蠢的文件关联命令。自从你自作聪明的使用你愚蠢的脚本启动桌面,你早就活在他的用户群之外了。”
    这个我倒是有不同意见,大部分还是可配置的,还是文本的,但是各种文档中鲜有提到。对于楼上所说“注册表一般的 gconf ”深有同感,为什么不用文本文件?这一点是GNOME让我最不爽的地方。 对于KDE我不了解,无权发言。

  14. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @yuihji
    另外你列举了很多错误的概念,比如gconf不是标准。不好好做功课freedesktop包含什么标准就开炮。

    我测试fcitx的用过的wm说不定可比你多得多。
    另外 lxde + wm, xfce + wm 都不在我炮的范围内,我炮的是启动桌面的方式,而不是wm本身。

  15. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @Justin Wong
    KDE配置是ini风格的文本文件。
    至于文件关联不对,比如说chrome浏览器,就是不能指定用什么方式打开文件的,实现上就是call xdg-open。比如有个人做了个有需要打开链接功能的程序,使用xdg open也是最好的方式,因为这样就不用一个个尝试用户的浏览器,而且可以选择到用户默认正确的。

    我实在觉得用xfce然后再自己构造环境是wm党最好的选择。

  16. Iven says:
    Firefox 6.0 GNU/Linux x64

    @csslayer 所以才说你是标题党,人家 exec gnome-session 或者 exec startkde 、 exec startxfce4 ,不是照样会出问题……关独立 WM 什么事……

  17. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @Iven 你错了哦,gnome和xfce4是什么情况我不知道
    startkde里面可是有好好初始化的。
    大概gnome-session也是自己能搞定的。

  18. Iven says:
    Firefox 6.0 GNU/Linux x64

    @csslayer 哦,这样啊……我用 gnome、kde 的时候也是 ck-launch-session 的……倒是没试过不加……

  19. Justin Wong says:
    Firefox 6.0 GNU/Linux

    @csslayer 恩,用DM的话当然会省去很多麻烦;但是自己折腾出来一套倒是能学会不少东西呢。比如dbus,不去写个程序用它或者写个.xinitrc的话还真不知道它是干什么的。对于小鸟来说,多折腾折腾是好事。折腾累了… 就换个DE吧!

  20. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @Iven 不,那个我倒不是说ck-launch-session的事情,startkde会正确初始化dbus的。并且有xdg的autostart在,需要自动启动程序的话也不必写在 xinitrc

    gnome-session 竟然不是脚本…… = =b。那我懒得研究它干啥了。

  21. yuihji says:
    Firefox 3.6.17 Gentoo x64

    @csslayer
    非常好,至少我知道写作目的了,不过我还是建议写文章时顺带说一下背景。不过标题党(其实是全文跑题,够坑爹的)真是一竿子打翻一船人了。
    WM 既然不在本文炮轰之列,就不说了。
    我是受够了 gnome 的乱七八糟。所以我列举了我很久以前(比现在更无知)用 gnome 时遇到的问题。正因此,我认为,一个小白不会因为享受“Linux桌面带来的好处”就没问题了。kde 我几乎没有尝试,所以没有发言权。

    gconf 确实不是 gnome 的“标准”,我是说错了。当然我作为一个用户的无知不会有什么重大恶劣的影响,至多被见识多广的开发者取笑一番。退一步讲,用户真有必要知道一切吗?评论中也讨论了,按照文档写的一步一步走,没问题。
    所以我以为,与其指责用户自不量力,不如甩下一句 RTFM ,高兴了再给个链接。十分高兴的话写到文档里。

    ps 我不觉得先装 lxde 再一个个换是什么好主意,尤其是用包管理器的。一不小心就弄得乱七八糟。

  22. litkt says:
    IceWeasel 5.0 GNU/Linux

    跑不动“桌面”的i586个人工作站表示压力很大。

  23. ttk says:
    Google Chrome 13.0.782.215 GNU/Linux x64

    如果你把pre-requirement详细的写到文档里,没人会抱怨。
    如果你error handle做得够清晰,也没人会抱怨。

  24. ttk says:
    Google Chrome 13.0.782.215 GNU/Linux x64

    我还有一套workspace用xinit+fvwm,至今跑了4年了,老古董了,那种对窗口细粒度掌控是任何DE给不了的,没有替代品。虽然老旧,不过跑各种现代GUI程序也没什么问题。

  25. 依云 says:
    Firefox 6.0 GNU/Linux

    我还真不知道除了 slim 我还有什么好的选择?对于一个半 Gnome 用户,kdm 很明显不可能;gdm 丑陋+容易出问题最终导致其被 slim 替换。难道要我去尝试 xdm 或者别的什么我从未听说过的?

  26. librehat says:
    Opera 11.50 GNU/Linux x64

    同为KDE党,讨厌openbox之流的飘过~木有中枪。(话说这文的标题太大了,一枪死一片啊)

  27. csslayer says:
    Firefox 6.0 GNU/Linux x64

    @librehat 老实讲我蛮喜欢openbox的……调试fcitx的时候Xephyr里面跑个openbox很方便……

  28. Ansen says:
    Google Chrome 14.0.803.0 Windows 7 x64 Edition

    学习了,一直没搞懂什么是de什么是wm

  29. scriptkids says:
    Google Chrome 13.0.782.220 GNU/Linux

    菜鸟一个..
    目前用的openbox ..一直用的startx 加的有ck-launch-session dbus-launch 一直正常…看了此文后.用gdm登录..发现无论是openbox.gnome3还是kde都是dbus初始化失败(应该是,反正提示他了)..换用kdm倒是正常..

  30. transtone says:
    Firefox 9.0a1 GNU/Linux x64

    @csslayer
    正主儿(正儿八经的被攻击目标)前来报到。
    说真的,什么dm没一个好的。别说gdm/kdm要依赖一大堆东东了,slim动不动就给我卡死(100%CPU!),lxdm还不成器,lightdm也还没完善,不是不想用dm呀,是实在没有可以用的dm。
    别的不说,就一条,我习惯退出X然后用startx重新进来:slim只要退出一次就挂;lxdm居然退出和不退出一个样,tint2还给我启动俩;lightdm我就没使用成功过。别劝我装gdm/kdm,洁癖。

  31. 910JQK says:
    Firefox 37.0 GNU/Linux

    我只能說需求不同

  32. 自由建客 says:
    Firefox 24.0 GNU/Linux x64

    其实还是会话的问题。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.