Jump to Navigation

kde4 类Mac全局菜单方案列表

* bespin + xbar方式

* plasma-globalmenu-mod
http://kde-apps.org/content/show.php/?content=129006

* http://qt.gitorious.org/~agateau/qt/agateau-qt

第一种比较成熟,使用了一段时间,它还有功能是kde程序外观功能,要比默认的kde cleanlook好看些。

第二种准备测试

突然想起来一问题,kde桌面的oxgen网络在系统设置项中怎么找不到了??奇怪

2010-12-30 我的全局菜单方案新进展
还是使用bespin中的xbar,外加kde-misc/smooth-tasks(取代了daisy,这个放在plasma作为plasma mod时有问题),
安装gnome-extra/gnome-globalmenu-0.7.10,让gtk程序也能在kde桌面显示全局菜单,需要一个环境变量export GTK_MODULES=globalmenu-plugin , 需要写在.kde4/env/myenv.sh和.bashrc两个地方,这样从控制台启动的gtk程序和使用kde启动器启动的gtk程序都能用到全局菜单。

给bespin打了个小补丁,加长xbar菜单的默认长度,

cat /usr/local/portage/layman/kde/x11-themes/bespin/files/

  1. xbar_init_size_bigger.patch
  2. Index: XBar/xbar.cpp
  3. ===================================================================
  4. --- XBar/xbar.cpp (revision 1315)
  5. +++ XBar/xbar.cpp (working copy)
  6. @@ -639,7 +639,7 @@
  7. else
  8. {
  9. QAction *action = new QAction(myMainMenu);
  10. - action->setText("Customizable menu, see <a href="http://CloudCity.SF.net/xbar.html"">http://CloudCity.SF.net/xbar.html"</a>);
  11. + action->setText("-----------------(Customizable menu, see <a href="http://CloudCity.SF.net/xbar.html">http://CloudCity.SF.net/xbar.html</a>)-----------------")
  12. ;
  13. action->setData("<a href="http://CloudCity.SF.net/xbar.html"">http://CloudCity.SF.net/xbar.html"</a>);
  14. connect ( action, SIGNAL(triggered()), SLOT(runFromAction()) );
  15. myMainMenu->addAction(action);

当然还有一些问题,如xbar菜单长度不能自适应,对短菜单,会留有空白空间,对长菜单,可能与smooth-tasks区域重叠。

看能不能再改改bespin让它能自适应不同长度的菜单。

另一个问题有些gtk程序问题比较多,pidgin不但全局菜单上显示菜单,自已的窗口上还显示一个菜单。

像libreoffice根本就不理全局菜单。

一种基本能让xbar菜单长度自动适应长度的补丁,但只对菜单长度在900以内的管用,如果太长,仍旧会出问题,另外,xbar的长度会不断变长,现在还没有变短的机制,否则会让任务栏变动频繁,消耗比较多的CPU来重绘任务样部分。

  1. Index: XBar/xbar.cpp
  2. ===================================================================
  3. --- XBar/xbar.cpp (revision 1315)
  4. +++ XBar/xbar.cpp (working copy)
  5. @@ -640,6 +640,7 @@
  6. {
  7. QAction *action = new QAction(myMainMenu);
  8. action->setText("Customizable menu, see <a href="http://CloudCity.SF.net/xbar.html"">http://CloudCity.SF.net/xbar.html"</a>);
  9. + action->setText("-----------------(Customizable menu, see <a href="http://CloudCity.SF.net/xbar.html">http://CloudCity.SF.net/xbar.html</a>)-----------------");
  10. action->setData("<a href="http://CloudCity.SF.net/xbar.html"">http://CloudCity.SF.net/xbar.html"</a>);
  11. connect ( action, SIGNAL(triggered()), SLOT(runFromAction()) );
  12. myMainMenu->addAction(action);
  13. @@ -711,6 +712,15 @@
  14. int dy = (contentsRect().height() - item->rect().height())/2;
  15. item->setPos(contentsRect().x(), contentsRect().y()+dy);
  16. item->show();
  17. +
  18. + QSizeF csize = item->sizeHint(Qt::PreferredSize, QSizeF());
  19. + if (csize.width() < 500) {
  20. +
  21. + } else if (csize.width() > 900) {
  22. +
  23. + } else {
  24. + this->updateConstraints(Plasma::SizeConstraint);
  25. + }
  26. }
  27.  
  28. void

图1,


图2,


图3,


Taxonomy upgrade extras:

添加新评论

Plain text

  • 不允许HTML标记。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.


Main menu 2

Blog | by Dr. Radut