作者sppmg (sppmg)
看板Linux
标题[问题] 透明背景视窗(wxWidgets bug?)
时间Tue Apr 5 13:16:43 2022
Debian 11 (stable) 中,有些程式的视窗会撷取当前背景作为底图。
像是下面这两个(分别是 Kicad (6.0.4), Audacity)
Kicad (6.0.4)
https://imgur.com/wDKRjAA.jpg
Audacity (2.4.2)
https://imgur.com/jRFxLya.jpg
检视其相依性後发现都有 wxWidgets 相关套件。
请问有办法自己简单处理吗?(除了改写程式、重编译以外)
这问题存在很久了,不知道是 bug 还是只是配置上问题?
(应该不会这几个程式都没人用吧.....,有没有人知道相关消息?)
完(偏)美(执)的解决办法请见最後面。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.12.44.118 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1649135807.A.09F.html
1F:推 Bencrie: 刚刚装 Audacity 起来跑没问题 04/05 13:37
2F:→ Bencrie: 看起来比较像缺 library,gtk2-engine-pixbuf 之类的 04/05 13:39
这有装了
3F:推 Bencrie: 我是在 gnome-shell 下测的 04/05 13:46
我是 KDE + compiz,不过即使无 compiz 也是一样。
会不会是有些 gnome 程式库没被相依到?
※ 编辑: sppmg (101.12.44.118 台湾), 04/05/2022 14:49:46
4F:推 Bencrie: 会不会是 adwaita?gnome-themes-extra 04/05 14:52
原本没装,刚装了测试还是一样。需要重启吗?(要的话我晚点再试)
也把其他 apt-cache search libwxgtk 非 *-dev 的都装上了,没差。(胡乱测试...)
※ 编辑: sppmg (101.12.44.118 台湾), 04/05/2022 15:07:39
5F:推 Bencrie: 你开 terminal 跑看看有没有吐错误吧 04/05 15:14
kicad 没有,audacity 在出问题视窗显现时丢出
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug
我 google 了一下感觉不出什麽解法....
※ 编辑: sppmg (101.12.44.118 台湾), 04/05/2022 16:33:20
6F:推 Bencrie: 换一个布景主题 04/05 17:49
从原本 Breeze 换到 Air, Oxygen,结果一样 QQ 。
breeze 和 gtk 相关的都安装了,像是 breeze-gtk-theme 之类。
※ 编辑: sppmg (101.12.31.194 台湾), 04/05/2022 21:29:12
7F:推 willy69wu31: 也遇到一样问题+1 openSUSE系统 04/06 10:04
8F:推 paintlife08: 我的Audacity正常 Debian11 桌面用LXDE 04/06 10:59
9F:→ sppmg: 热心版友来信提示是 hime 问题,晚点我整理下贴上来。 04/06 19:33
10F:推 willy69wu31: 我是 gcin... 04/06 23:31
11F:→ EdwardGJLee: wxWidgets 和 gtk3 好像是八字不合。新版不知改了没 04/08 23:04
12F:推 holishing: 原来输入法会雷到GUI主题吗!? 04/09 01:16
13F:嘘 neiolin: 同样问题苦恼中 求解 04/09 14:50
14F:推 neiolin: 按错 推回来@@ 04/09 14:54
15F:→ HamalAri: xim 之於 ibus 就像 xorg 之於 wayland 一样, 新的比较 04/10 00:55
16F:→ HamalAri: 难用, 可是旧的迟早被放生 04/10 00:55
17F:→ HamalAri: linux desktop 真的是很混乱 04/10 00:55
18F:→ EdwardGJLee: Fedora 37 有打算正式全面启用 Wayland,这个可能就 04/10 08:19
19F:→ EdwardGJLee: 交由市场去决定了。我个人是觉得 W 的 protocal 还没 04/10 08:20
20F:→ EdwardGJLee: 准备好,有点跳跃,会把方向导向极端。 04/10 08:21
21F:推 Adama: Fedora不是早就将Wayland当作新安装的预设了吗? 04/10 11:50
22F:→ OrzOGC: 要退回windows用wsl了...QQ 04/10 11:51
23F:→ OrzOGC: 37要完全砍了xorg 04/10 11:52
24F:推 Adama: 其实也好啦 Fedora常冲第一有时也带来好结果 像systemd (?) 04/10 12:06
25F:→ Adama: 没有distro要冲wayland,我都不知道Anydesk何时才要支援 04/10 12:07
更新一下後续.....
(之前有段时间没电脑可用,後来就忘记这件事了,抱歉抱歉!)
有版友提示可能是 hime/gcin 的影响。
像是本版
#1Rprwg3e Re: [问题] Ubuntu有的程式点开启/另存会卡住
https://webptt.com/cn.aspx?n=bbs/Linux/M.1540316842.A.0E8.html
会出现 GLib-GObject-CRITICAL 相关错误讯息
hime 换 ibus 就好了。
下面这个连结则是 hime 导致 pycharm 无法显示
https://reurl.cc/WrLygy
同样是换输入法解决。 (hime 换 gcin)
至於我这次的问题,尝试以 im-config 改设定 fctix 再重登入就没问题了。
刚刚发现一件事:
Audacity 一开启程式的画面没有问题,直到须要输入文字(输入框)才出现问题。
也可以当作输入法框架出问题的一个特徵吧!(?)
-------------------------
刚刚想起来一件事.....
算是找到完(偏)美(执)的解决办法了吧?
我因为玩游戏时不小心按到 ctrl+space 就会触发中文输入,然後 fps 游戏就 gg.....
後来在连结设定变数把输入法关掉:
env XMODIFIERS="" tremfusion --quiet
同样的方式也可以应用在这里。
env GTK_IM_MODULE="" kicad
env GTK_IM_MODULE="" audacity
视窗正常显示,并且中文输入仍旧叫得出来(怪)。
看起来应该可以打进程式里,不过稍微测试好像操作会有点怪。
(我在 audacity 数值框输入中文,不确定准不准)
In pixman_region32_init_rect 讯息照样出现。
以上献给爱好 hime 的偏执狂 XD
(用很习惯了, fcitx 之前试一下好像有哪里不顺手,後来又装回 hime。
不过小抱怨一下,选字按钮以前有 1234/qwer 组合,现在的版本拿掉了。)
最後顺便问下,
env var="..." program
这里 env 是可以省略的吧? (更新, 建议加,见 lantw44 大解说)
(後来又想起来,好像是当初 .desktop 档不允许这样变数直接放前面,
所以用 env 去包装 ?!但现在测试又没问题....
我不确定 env 在这里的必要性 XD )
※ 编辑: sppmg (49.216.17.161 台湾), 04/23/2022 02:16:45
26F:推 lantw44: 有没有加 env 效果类似,但是意思不同。没加 env 是由 04/24 17:18
27F:→ lantw44: shell 直接设定环境变数;有加 env 则是执行 env,由 env 04/24 17:19
28F:→ lantw44: 设定环境变数再去执行 program。 04/24 17:19
29F:→ lantw44: 同时还要注意没加 env 的时候因为是使用 shell 内建的语 04/24 17:22
30F:→ lantw44: 法,所以不会经过 field splitting,但使用 env 则是执行 04/24 17:22
31F:→ lantw44: 普通指令,会经过 field splitting,若取用变数时忘了加 04/24 17:23
32F:→ lantw44: 上 " 可能会造成意外。 04/24 17:23
33F:→ lantw44: 至於 .desktop 档的 Exec,那个只是写法类似 shell,但实 04/24 17:24
34F:→ lantw44: 际执行并没有经过 shell,所以不能用 shell 语法。 04/24 17:24
了解!
但 .desktop 档部份,我觉得奇怪的是实际上是可以执行的???
档案内容如下:
----------------------------------
[Desktop Entry]
Comment[zh_TW]=
Comment=
Exec=GTK_IM_MODULE="" kicad
GenericName[zh_TW]=
GenericName=
Icon=system-run
MimeType=
Name[zh_TW]=连结到应用程式
Name=连结到应用程式
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
-----------------------------------
※ 编辑: sppmg (49.216.17.161 台湾), 04/24/2022 18:14:18
35F:推 lantw44: 有没有可能是特定实做提供的功能?我在 .desktop spec 里 04/24 19:33
36F:→ lantw44: 没看到用这种方式设定环境变数的说明。 04/24 19:34
我倒是没想到去读 spec XD
环境是 Debian 11, KDE 5.20.5
不过我一开始说的游戏连结也是这个系统的。所以表示之前 env 应该是必要过。
刚测试了一下发现是 Dolphin (KDE file manager)的功能。
没 env 的话改用 Thunar 就开不起来了。
感谢 lantw44 大的解说。
(我把上面的命令加 env了。)
※ 编辑: sppmg (49.216.17.161 台湾), 04/25/2022 00:23:19