解决idea不能使用Gnome全局菜单插件Fildem的BUG

前言

在开始之前,我必须先发发牢骚,这真是个神奇的bug,fildem在其他软件下都很好用,唯独idea家族软件(比如clion,intellij)下就有这个bug,用着也是比较难受,刚开始我是配合idea下的一个插件Main Menu toggler 打开原始顶部菜单来使用的,但是这就出现了双层菜单(话说上面的不能用就别显示啊,这样看着更加难受😭)

d86484ffec0994b4211ad701f12f7217/20230321170646.png

(双层菜单)

702eb9ddd899a9324a8d6ff03d427475/20230321170710.png

双层菜单用着实在不爽,于是我搜了一圈解决方案,都不太好用(只能自己研究解决方案了)

解决过程

代码

Github - Fildem fork了一份代码,作者已经在上一个release版本后提交了很多代码,我有点小激动,这个bug是不是已经被修复了呢?我赶紧把源代码的版本安装上试了试,结果很失望,bug依然存在,而且更失望的是,源代码使用treelib库存放菜单元素,导致基于gtk的软件没有全局菜单了(由于重复键值的存在),本来是正常使用的。我把代码回退到作者添加treelib库之前

1
git reset --hard 853a367cdc0337b2ddcc5d5a39028b64079571e6 

就正常了,然后解决idea的问题,修改一下代码解决issues#108 Crash after click on PHPStorm navbar , idea系列都会有这个问题

1
2
3
4
5
6
7
8
9
# fildem/handlers/global_menu.py
def set_menu(self, menus):
self.destroy_menus()
if len(menus) == 0:
return
++ if len(menus[0].path) == 0:
++ return
current_prefix = menus[0].path[0]
current_menu = []

加上上面的补丁后,我运行了一下fildem源代码程序,然后打开clion,等待加载完成后菜单居然正常了,我一阵狂喜,这个曾让我头大的问题居然就这么解决了?我把原先的fildem卸载然后安装我修改后的,然后重启电脑,再打开clion,发现全局菜单又失灵了。我真的纳闷了,明明之前运行没问题呀,我又打开源代码再次运行了一边,打开clion,菜单又好了!

最终解决方案

我反复折腾了好几遍,结果都和上面一样,最终我发现只要同时运行两个fildem进程(他们是可以共存的),idea系软件的全局菜单就可以正常工作(要按照上面的修改代码),是不是很奇怪!我暂时也不能深入研究原因,反正能用就行😂

GitHub

可以直接clone我修改好的GitHub - Fildem安装

1
2
3
4
5
6
7
# 卸载原有版本
sudo pip uninstall fildem
# 进入clone后的代码根目录,安装我修改的版本
sudo python3 setup.py install --optimize=1
# 复制一个fildem开机自启动项目,开机启动两个fildem进程
cp ~/.config/autostart/fildem.desktop ~/.config/autostart/fildem2.desktop

参考教程

https://www.linuxuprising.com/2021/02/how-to-install-fildem-global-menu-and.html#

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2025 lorzzn
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信