Gnome44解决HideTopBar失效问题

2023年05月08日星期一晴北京市北京师范大学

在升级archlinux后发现我的插件gnome-shell-extension-hidetopbar-git不能正常工作了,提示版本与当前gnome版本不匹配。在插件安装网页找到解决方法,记录如下:

  1. 切换到目录

    1
    /usr/share/gnome-shell/extensions/hidetopbar@mathieu.bidon.ca

  2. 修改metadata.json文件,追加上"44"

    metadata.json
    1
    "shell-version": ["3.38","40","41","42","43","44"],

  3. 注释掉检测程序片段

    intellihide.js
    1
    2
    3
    4
    5
    6
    7
    go to line 116 and comment this:
    //, [
    //// update wne monitor changes, for instance in multimonitor when monitor are attached
    //Meta.MonitorManager.get(),
    //'monitors-changed',
    //this._checkOverlap.bind(this)
    ]

  4. 注销并重新登录系统,问题解决。

不知道为什么这么重要的受欢迎的软件每次在gnome版本大升级后它都会出现问题,之前一直等待修复,但是可能这才是一个及时的应对策略。附上原插件地址:https://extensions.gnome.org/extension/545/hide-top-bar/

2023年05月11日星期四多云北京市北京师范大学, 再次到原插件地址查看问题解决情况。这里有两条新增信息,记录如下:

  1. In the new gnome44 was made some changes so need to change

    .local/share/gnome-shell/extensions/hidetopbar@mathieu.bidon.ca/intellihide.js
    1
    Meta.MonitorManager.get -> Utils.getMonitorManager()

  2. Create new file .local/share/gnome-shell/extensions/hidetopbar@mathieu.bidon.ca/utils.js , with the next content

    utils.js
    1
    2
    3
    4
    5
    6
    function getMonitorManager() {
    if (global.backend.get_monitor_manager !== undefined)
    return global.backend.get_monitor_manager();
    else
    return Meta.MonitorManager.get();
    }