Win11 中已经默认使用 wslg 来显示 WSL2 中的 GUI,不再需要额外开启 Xserver,这个确实是很方便实用的功能,但目前(2021.12)似乎还不是特别完美。我在体验的过程中就遇到了一个比较蛋疼的问题:meld 比较文件时出现异常。

meld 是一个开源的用于比较文件/文件夹的工具,类似 Beyond Compare。它可以设置为 git merge.tool,从而用于解决 git 合并时的冲突。之前 Win10+WSL2+Xserver 环境中用 meld 一直都没遇到任何问题,但在 Win11 中却会报一堆错:

Traceback (most recent call last):File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 34, in do_realizeself._handle1.realize(self)File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 270, in realizeattr.cursor = Gdk.Cursor.new_for_display(widget.get_display(),
TypeError: constructor returned NULL
Traceback (most recent call last):File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 46, in do_mapself._handle1.set_visible(True)File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 288, in set_visibleself._window.show()
AttributeError: 'NoneType' object has no attribute 'show'
Traceback (most recent call last):File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 201, in do_size_allocateself._handle1.set_visible(mapped and wlink1 > 0)File "/usr/lib/python3/dist-packages/meld/diffgrid.py", line 288, in set_visibleself._window.show()
AttributeError: 'NoneType' object has no attribute 'show'
...

这个问题我目前还没有在网上找到相关的解决方法,看起来是 GTK 的问题,最接近的一个帖子是:TypeError constructor returned NULL in wayland session。正巧 wslg 使用的也是 wayland,抱着试一试的心态,我打开 /usr/lib/python3/dist-packages/meld/diffgrid.py,将其中第 270 行改成:

#attr.cursor = Gdk.Cursor.new_for_display(widget.get_display(),
#                                         Gdk.CursorType.
#                                         SB_H_DOUBLE_ARROW)
attr.cursor = Gdk.Cursor.new_from_name(widget.get_display(), "col-resize")

再次测试,一切正常~~

【踩坑】Win11 WSL2 中 meld 无法正常使用问题修复相关推荐

  1. 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获

    前言 点赞在看,养成习惯. 点赞收藏,人生辉煌. 点击关注[微信搜索公众号:编程背锅侠],第一时间获得最新文章. HashMap系列文章 第一篇 HashMap源码中的成员变量你还不懂? 来来来!!! ...

  2. 踩坑记--hexo中加入音乐

    我一直都想要做一个人博客.不久前,朋友推荐我来玩玩hexo,之后我就开始了自己的踩坑之旅--其实我用github+hexo搭建个人网站的时候挺顺利的,重在我修改next主题的默认样式以及加入小功能的时 ...

  3. vue-photo-preview踩坑,el-table中一张错误图片导致全部图片无法放大,并且与懒加载v-lazy不兼容

    需求:el-table中展示的图片,可以点击放大,并且使用懒加载(偶尔会有404的图片路径) 坑一: 一张404图片会导致全部图片无法放大,用@error解决 坑二: 但是马上发现如果用了vue-la ...

  4. WeChat小程序授权机制踩坑请求头中设置cookie保持session

    思路 存储token在redis中,但是现在没有redis,使用session进行存储 ,key为token   value为用户信息 session机制使用的文件缓存 token机制使用的redis ...

  5. 踩坑系列]URLEncode 中对 空格的编码有 “+”和“%20”两种

    URL中的空格有时候被编码成%20,有时候被编码成加号+,曾经迷糊过一段时间,后来查了下资料才搞明白. 一个URL的基本组成部分包括协议(scheme),域名,端口号,路径和查询字符串(路径参数和锚点 ...

  6. 分布式深度学习最佳入门(踩坑)指南

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Lyon@知乎(已授权) 来源丨https://zhuanla ...

  7. Spark踩坑记——数据库(Hbase+Mysql)转

    转自:http://www.cnblogs.com/xlturing/p/spark.html 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库 ...

  8. tinymce富文本框踩坑

    tinymce富文本框踩坑 1.页面中需要多个富文本框时,每个富文本框的id必须做唯一标识,否则无法编辑 2.在tinymce富文本框需要做判断来显示时,谨慎使用v-if和v-show v-if会使富 ...

  9. OC 血压计 蓝牙BLE4.0 链接踩坑开发

    # 前言 公司项目要连接第三方公司的血压计,由于从来没有做过和蓝牙有关的项目,好奇的心驱使下下也想顺便了解一下这方面的知识,于是主动向领导请求开发这个功能,经过4天的折腾,终于弄好了,(为什么要4天呢 ...

最新文章

  1. C++ Primer 5th笔记(chap 16 模板和泛型编程)转发参数包
  2. JAVA读取文件操作时路径的斜杠问题
  3. 一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
  4. C/C++学习之路: 继承
  5. Java对象到对象映射器
  6. latex 多行公式_Markdown中输入多行并列的公式
  7. IE的hasLayout
  8. 时槽越大越好吗_买桃子是“越大越好”吗?老果农:教你一招,保准桃子又甜又好吃...
  9. System.getProperty
  10. java服务器访问html_浏览器输入服务器端口号来访问html网页
  11. java 跨平台的等宽字体_值得推荐的优秀编程字体/代码等宽字体收集(转)
  12. 软件观念革命:交互设计精髓_专业科班答案:一个标准的交互设计流程是怎样的?...
  13. 匿名访问ftp服务器
  14. HEVC之CU、PU、TU分析
  15. sklearn 使用make_blobs生成聚类样本数据
  16. STM32互补PWM输出使能控制
  17. 3分钟弄明白顶级域名二级域名子域名父域名的区别
  18. 数据脱敏的场景与价值【总结】
  19. android8.0索尼z5,Z5 惨遭抛弃?索尼公布 Android 8.0 升级机型
  20. 赛门铁克24亿美元收购lifelock继续业务转型

热门文章

  1. gif录制软件:ScreenToGif
  2. ESP8266 Blinker 小爱同学 本地控制 手机配网 四路开关 物联网 arduino编程详细注释
  3. 常用的手机宽度 前端切图用 常用的手机尺寸
  4. 手机android app 无线控制led灯开关
  5. 【商业数据分析】—— 用户价值RFM模型详解(小仙女搬运工)
  6. 状态机(FSM)的分类描述
  7. python编程大数据_学习Python编程挨着大数据什么事
  8. 【论文 CCF C】Multi-DQN: An ensemble of Deep Q-learning agents for stock market forecasting
  9. [闻缺陷则喜]编码与实现方式
  10. Unity 水体浮力的实现