• 7
  • Dec

GNOME Do是每一个GNU/Linux(特别是喜欢键盘操作的)用户都应该去尝试一下的软件,具体啥原因,因为——此乃神器!看:Gnome Do,不必知道它在哪,请说出你要什么

最近用GNOME Do碰到一点点不足,于是打算hack它一下。如此优秀的自由软件,不hack有点可惜,虽然我对C#一窍不通,不过这又何防?

---

GNOME Do的一点不足是,如果我用它来启动应用程序,那么用相当多的软件不能启动。Why?

因为GNOME Do默认是根据语言环境来载入应用程序的描述字符串,也就是说,Gedit:文本编辑器,我必须输入“文本编辑器”才能启动Gedit,这明显不行,因为GNOME Do只接收英文输入。而Mozilla Firefox,因为不是“Mozilla 火狐”,所以我可以通过输入“Fire”即启动它,所以非常快捷。

如何让GNOME Do默认以英文的Locale来索引应用程序的描述呢?这样Gedit就会变成“Text Editor”,我只要输入“Text”基本上就可以启动它了。

这个有很多路子可以实现,我可以使用单独的LANG=en_US.UTF-8环境变量来启动GNOME Do,也可以让整个系统默认就是en_US.UTF-8,但是我不喜欢这样做,一是不够直接,二是不想让所有启动的应用程序也变成英文的。所以还是Hack一下它吧!

读了一个GNOME Do的源代码,很快找到了切入点。在“Do.Addins/src/Do.Universe/ApplicationItem.cs”中,有个对DesktopItem的处理方式:

public ApplicationItem (string desktopFile) 
{ 
        item = DesktopItem.NewFromFile (desktopFile, 
                        DesktopItemLoadFlags.OnlyIfExists);

        if (null == item)
                throw new Exception (desktopFile + " not found.");

        name = item.GetLocalestring ("Name");
        description = item.GetLocalestring ("Comment");
        icon = item.GetString ("Icon");
}

改那个name就可以了,默认是GetLocalestring,我不需要根据Locale来取得,直接GetString即可。

改完后,重新打包,然后交给Gentoo Emerge。终于达到我要的效果了:

“英文的标题+中文的描述”才是最完美的,哈哈!

Tags: hack, GNOME Do.

» You can leave a comment.

1 Pingbacks

15 Comments

  1. 我的gnome do没法写中文阿~
    是就不可以还是因为我用ibus的缘故?

  2. 没用过呢,看起来是个可以提高工作效率的东西~

  3. volans

    我也有一个比较山寨的类似软件,分享一下,见笑了:
    http://code.google.com/p/plaunch/wiki/Quickstart

  4. volans

    我也有一个比较山寨的类似软件,分享一下,我基本上是离不开它。
    见笑了:
    http://code.google.com/p/plaunch/wiki/Quickstart

    • @volans, 兄台的软件很好啊,不能说山寨。而是完全全新的一个应用软件,我在TOY上看到过,还在Windows下用过呢。

      • volans

        @TualatriX, 抬爱抬爱……
        目前有一个比较烦的问题没有解决,困扰……看看你有没有主意。

        应该是和桌面配置环境或者管理策略相关,plaunch的表现不太相同。在有的人的平台上,快捷键第一呼出主窗口,窗口处于最上层,并且title bar是高亮的,可以直接输入。但第二次以后每次呼出Title bar就不再高亮了,没办法直接输入。在windows下完全没问题,但linux下就表现各异,有的可以,有的不可以。也没找到哪里可以更改这个配置。在pygtk上报了个bug,得到开发者的回复,他确定不是bug,是窗口管理的策略问题……

        • @volans,

          至于这个问题,我想问题可能跟开发者说的一样,是窗口管理的策略问题。
          不过,也不是没有解决方法。

          不知道你用过GNOME Do没?它也是每次呼出,然后100%置顶和接收聚焦的。我觉得你可以去参考一下GNOME Do的做法。

          但愿对你有用!希望工作越做越棒!昨天我还看到,有人在GNOME Do那里建议能“自定义命令”,这不是学Palunch的吗?哈哈!

  5. 帅~
    即使Gnome-Do已经承诺将支持SCIM多语言输入我还是喜欢输入英文。

  6. 这个东西的确是个神器..

Leave a Comment