【踩坑】Win11 WSL2 中 meld 无法正常使用问题修复
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 无法正常使用问题修复相关推荐
- 撸啊撸,再次撸HashMap源码,踩坑源码中构造方法!!!每次都有收获
前言 点赞在看,养成习惯. 点赞收藏,人生辉煌. 点击关注[微信搜索公众号:编程背锅侠],第一时间获得最新文章. HashMap系列文章 第一篇 HashMap源码中的成员变量你还不懂? 来来来!!! ...
- 踩坑记--hexo中加入音乐
我一直都想要做一个人博客.不久前,朋友推荐我来玩玩hexo,之后我就开始了自己的踩坑之旅--其实我用github+hexo搭建个人网站的时候挺顺利的,重在我修改next主题的默认样式以及加入小功能的时 ...
- vue-photo-preview踩坑,el-table中一张错误图片导致全部图片无法放大,并且与懒加载v-lazy不兼容
需求:el-table中展示的图片,可以点击放大,并且使用懒加载(偶尔会有404的图片路径) 坑一: 一张404图片会导致全部图片无法放大,用@error解决 坑二: 但是马上发现如果用了vue-la ...
- WeChat小程序授权机制踩坑请求头中设置cookie保持session
思路 存储token在redis中,但是现在没有redis,使用session进行存储 ,key为token value为用户信息 session机制使用的文件缓存 token机制使用的redis ...
- 踩坑系列]URLEncode 中对 空格的编码有 “+”和“%20”两种
URL中的空格有时候被编码成%20,有时候被编码成加号+,曾经迷糊过一段时间,后来查了下资料才搞明白. 一个URL的基本组成部分包括协议(scheme),域名,端口号,路径和查询字符串(路径参数和锚点 ...
- 分布式深度学习最佳入门(踩坑)指南
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Lyon@知乎(已授权) 来源丨https://zhuanla ...
- Spark踩坑记——数据库(Hbase+Mysql)转
转自:http://www.cnblogs.com/xlturing/p/spark.html 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库 ...
- tinymce富文本框踩坑
tinymce富文本框踩坑 1.页面中需要多个富文本框时,每个富文本框的id必须做唯一标识,否则无法编辑 2.在tinymce富文本框需要做判断来显示时,谨慎使用v-if和v-show v-if会使富 ...
- OC 血压计 蓝牙BLE4.0 链接踩坑开发
# 前言 公司项目要连接第三方公司的血压计,由于从来没有做过和蓝牙有关的项目,好奇的心驱使下下也想顺便了解一下这方面的知识,于是主动向领导请求开发这个功能,经过4天的折腾,终于弄好了,(为什么要4天呢 ...
最新文章
- C++ Primer 5th笔记(chap 16 模板和泛型编程)转发参数包
- JAVA读取文件操作时路径的斜杠问题
- 一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
- C/C++学习之路: 继承
- Java对象到对象映射器
- latex 多行公式_Markdown中输入多行并列的公式
- IE的hasLayout
- 时槽越大越好吗_买桃子是“越大越好”吗?老果农:教你一招,保准桃子又甜又好吃...
- System.getProperty
- java服务器访问html_浏览器输入服务器端口号来访问html网页
- java 跨平台的等宽字体_值得推荐的优秀编程字体/代码等宽字体收集(转)
- 软件观念革命:交互设计精髓_专业科班答案:一个标准的交互设计流程是怎样的?...
- 匿名访问ftp服务器
- HEVC之CU、PU、TU分析
- sklearn 使用make_blobs生成聚类样本数据
- STM32互补PWM输出使能控制
- 3分钟弄明白顶级域名二级域名子域名父域名的区别
- 数据脱敏的场景与价值【总结】
- android8.0索尼z5,Z5 惨遭抛弃?索尼公布 Android 8.0 升级机型
- 赛门铁克24亿美元收购lifelock继续业务转型
热门文章
- gif录制软件:ScreenToGif
- ESP8266 Blinker 小爱同学 本地控制 手机配网 四路开关 物联网 arduino编程详细注释
- 常用的手机宽度 前端切图用 常用的手机尺寸
- 手机android app 无线控制led灯开关
- 【商业数据分析】—— 用户价值RFM模型详解(小仙女搬运工)
- 状态机(FSM)的分类描述
- python编程大数据_学习Python编程挨着大数据什么事
- 【论文 CCF C】Multi-DQN: An ensemble of Deep Q-learning agents for stock market forecasting
- [闻缺陷则喜]编码与实现方式
- Unity 水体浮力的实现