我个人的窗口管理

讨论下我对窗口管理的看法。

首先吐嘈:为什么全局菜单不是个好设计?

考虑一下窗口化和最大化两种情况,窗口化的话,菜单会在距离窗口有一定距离的地方,无论是在鼠标移动,或者是视觉上都带来了一定的距离。

最大化的话,本来菜单就在和全局菜单差不多的地方了,还需要全局菜单吗?

有很多其他的Choice,例如最近KWin开发者提到的,窗口边框和菜单合并(不是直接放在边框上,是弄个像Firefox一样的button)。比如plasma-netbook的最大化隐藏窗口边框。一个设计会带来另一个设计,比如说oxygen的drag anywhere(窗口可以用任意空白位置拖拽),因为plasma-netbook最大化无边框,有了这个功能移动起来也会好得多。比如gnome3的drag anywhere(说起来我看了那么多gnome3评测为什么没有人提这个改进?),因为没有了最大化最小化按钮,为了使得拖拽并tiling更加方便,才更加需要这样的功能。

空间利用的极致应该算是tiling wm了,但是学习曲线比较陡峭,我一直也没习惯。我觉得最大化无边框是个不错的想法,但需要注意几件事。如何恢复窗口化?如何移动?如何一步到位?unity和plasma-netbook采用的方法是窗口控制和面板合体。但也有微妙的区别。由于unity的面板是常驻的,为了剩下那个菜单的空间,也采用了全局菜单。plasma-netbook的面板是自动隐藏的,所以用不上全局菜单。

自动隐藏带来其他问题,是否会触发的太容易?是否会影响窗口中其他功能?无论触发距离的长短,顶部永远是最容易触发的,因为菜单,工具栏等等功能都在窗口上方,让鼠标在距离窗口上方做一个急刹车是完全不现实的行为,所以很容易出现挡住的情况。plasma-netbook的窗口切换可以采用右上角触发,使得恢复窗口的需求最小化(你说关闭也在面板上?都关闭了这窗口就不用管了)。

我个人经过几翻尝试,目前使用的是这样的,窗口边框正常,全面板自动隐藏,顶部有一个窄面板,高度和窗口边框高度相近,因此不会挡住窗口内功能,位置也在不会挡住窗口控制的按钮,内容是快速启动图标。下方一个非全场面板,放时间,系统托盘。下方的面板几乎不会误触发,因为很少会有鼠标在屏幕下方的情况。三个常用的窗口控制的按钮都在左上,(类似mac),顺序是,最小化,最大化,关闭,理由是最左上的位置的按钮在窗口最大化的时候会和右上角的窗口边缘冲突,因此放了对最大化窗口来说最不常用的最小化,右上为了功能放了一个保持最上的控制按钮。这样基本保证核心的鼠标功能是在屏幕左上这样的范围,减少鼠标移动。

其实还可以改进的是,最大化无边框,窗口控制功能所在面板偏左很窄一条,以减少触发冲突。不过由于KDE的最大化无边框在记忆窗口形状上有bug(https://bugs.kde.org/show_bug.cgi?id=269059),因此没有采用。

This entry was posted in Linux. Bookmark the permalink.

19 Responses to 我个人的窗口管理

  1. 右京样一 says:
    Google Chrome 10.0.648.204 Windows 7

    关于全局菜单……其实还有一点,就是全局菜单时刻存在,还会占用空间……

  2. moonjourney says:
    Sogou Explorer Windows 7

    只有文字描述,脑补起来也很苍白
    我是反对全局菜单,Unity 是个非常糟糕的设计

  3. csslayer says:
    Firefox 4.0 GNU/Linux x64

    @moonjourney
    现在的:http://picplz.com/user/csslayer/pic/rzdv2/
    之前的:http://picplz.com/user/csslayer/pic/rcb60/

  4. 沈觅仁 says:
    Opera 11.01 GNU/Linux

    密密麻麻的文字,看得可真是累啊。

    我对全局菜单什么的倒不是很看重,因为平时我也是把dolphin/konsole/gwenview的菜单隐藏起来的,所以如果说放到面板上【太遥远】什么的,对我来说也可以接受的。
    可是我唯一要求的就是,必须有个地方能够看到当前的时间!!看不到时间多没有安全感啊。。。所以我辛苦地手动修改配置让plasma-netbook的面板不再自动隐藏了。。。

    另外,谁知道怎么把面板调整到在下方显示,麻烦告诉我吧。。。

  5. zach says:
    Google Chrome 10.0.648.205 GNU/Linux

    Openbox+Pytyle, 最大化神马的全键盘控制。

  6. 心之所在 says:
    Google Chrome 10.0.648.204 GNU/Linux x64

    全局菜单该死,ribbon万岁

  7. csslayer says:
    Firefox 4.0 GNU/Linux x64

    @沈觅仁 = =b? 面板不默认就在下面咩……
    开面板设置,按住屏幕边缘然后拖……

  8. 沈觅仁 says:
    Opera 11.01 GNU/Linux

    @csslayer 嗯,经过我敏锐观察,发现面板添加部件时还是会弹出位置调节的按钮的。只不过被挡住了。果断alt+f3置顶,然后面板的位置就可以调节了啊。。。

    用几天感受一下面板放在下面的效果。。。

  9. liangsuilong says:
    Google Chrome 12.0.733.0 GNU/Linux x64

    @心之所在

    我是极其讨厌滥用 Ribbon UI 的,要是连个 File Manager 和 Calculator 也用 Ribbon 那太折腾了..

  10. Aenon says:
    Google Chrome 11.0.696.57 GNU/Linux

    用着gnome globalmenu 在。感觉很好。

  11. yetone says:
    Firefox 2012 Arch Linux x64

    @csslayer 为什么你的输入法托盘图标可以如此漂亮。。。

  12. csslayer says:
    Firefox 10.0.1 GNU/Linux x64

    @yetone 因为fcitx默认的托盘图标就是为KDE设计的。

  13. yetone says:
    Firefox 2012 Arch Linux x64

    @csslayer
    其实我的下一个问题就是为什么我的KDE桌面环境下的fcitx托盘图标这么丑。。。

  14. csslayer says:
    Firefox 12.0a2 Windows 7

    @yetone 你不截图我怎么知道,另外dark用的是另外个图标……你可以把default / classic 的图标复制给dark (不用覆盖系统文件,复制到 ~/.config/fcitx/skin/dark 就可以

  15. yetone says:
    Firefox 2012 Arch Linux x64

    @csslayer
    谢谢你的回答,看来就是Dark皮肤的问题了。最近因为这个问题我用上了kimtoy,但是kimtoy的托盘图标失真严重,好象是图标被放大了,显示不全,只显示左上角四分之一,有严重的马赛克,请教一下这个问题,谢谢

  16. csslayer says:
    Firefox 12.0a2 Windows 7

    @yetone kimtoy又不是我写的,问我没用

  17. nihui says:
    Firefox 9.0.1 GNU/Linux

    @yetone 系统图标主题改了么,kimtoy 的托盘图标用的是 draw-freehand 你看看 /usr/share/icons/oxygen/22×22/actions/draw-freehand.png 是不是正常的

  18. yetone says:
    Firefox 2012 Arch Linux x64

    @nihui 谢谢你的解答,可能是我表述有问题,我指的不是这个托盘图标,而是有全角,虚拟键盘,sunpinyin,联想词组等等的那个悬浮的托盘

  19. nihui says:
    Firefox 9.0.1 GNU/Linux

    @yetone
    https://bugs.kde.org/enter_bug.cgi?product=kimtoy
    注明 linux 发行版
    qt 版本 kde 版本
    kimtoy 版本
    fcitx/ibus/scim输入法版本
    皮肤主题类型和名称
    还有重要的截图~

    欢迎用中文写bug,^_^

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.