Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.

KDE环境完全无法使用wine-tim #12

Closed
BeiyanYunyi opened this issue Jul 30, 2018 · 29 comments
Closed

KDE环境完全无法使用wine-tim #12

BeiyanYunyi opened this issue Jul 30, 2018 · 29 comments

Comments

@BeiyanYunyi
Copy link

与lulinux上面的描述一致。
目前已测试桌面环境(均为manjaro、gdm):
GNOME√
MATE√
XFCE√
LXDE√
i3(dmenu无法找到)
KDE×

@lulinux
Copy link
Collaborator

lulinux commented Jul 30, 2018

是的。KDE的问题。

@jamy3531
Copy link

我的Linux Mint 18.2 KDE也用不了,之前我也提过issue#8,不知道你的是不是这个问题

@Peytonlan
Copy link

X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x0
Serial number of failed request: 10
Current serial number in output stream: 10

这个问题其实和 KDE 无关, 应该是 deepin 在打包 deepin-wine 的过程中有意或者无意加入了 GNOME 依赖

执行 /usr/lib/gnome-settings-daemon/gsd-xsettings & 即可
如果 GNOME 的版本较低(比如Debian 9), 没有单独的 gsd-xsettings 可执行文件, 则执行 gnome-settings-daemon &

测试环境:
Openbox@Xspice@15.8@Deepin@LXD@Snappy@9@Debian@LXD@Snappy@28@Fedora
KDE@Xspice@15.8@Deepin@LXD@Snappy@9@Debian@LXD@Snappy@28@Fedora

deepin-wine 谁维护的最好? 当然是 deepin
所以把 deepin 丢到LXD里运行就好, 移植 deepin 的包到其它发行版累, 而且需要持续和 deepin 保持更新, 也累...

@Peytonlan
Copy link

QQ开启视频的方法

测试环境:
Openbox@Xspice@18.04@Ubuntu@LXD@Snappy@28@Fedora@LXD@Snappy@28@Fedora

从 deepin 源取 deepin-desktop-schemas 包安装
从 deepin 源取 startdde 包, 取出其中的 startdde 可执行文件即可, ldd startdde 查找缺失运行库, 补齐依赖运行库
其它文件安装参照通用方法

export DESKTOP_SESSION=deepin
/usr/local/bin/startdde &
sleep 3
/opt/deepinwine/apps/Deepin-TIM/run.sh

执行了 startdde, 就不必执行 gsd-xsettings, 不会再报 BadWindow 错误

还是直接把 deepin 丢到 LXD 里要省事些

@wszqkzqk
Copy link
Owner

wszqkzqk commented Feb 2, 2019

已适配KDE neon
快更新吧

@wszqkzqk wszqkzqk closed this as completed Feb 4, 2019
@xuthus5
Copy link

xuthus5 commented Feb 14, 2019

X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x0
Serial number of failed request: 10
Current serial number in output stream: 10

这个问题其实和 KDE 无关, 应该是 deepin 在打包 deepin-wine 的过程中有意或者无意加入了 GNOME 依赖

执行 /usr/lib/gnome-settings-daemon/gsd-xsettings & 即可
如果 GNOME 的版本较低(比如Debian 9), 没有单独的 gsd-xsettings 可执行文件, 则执行 gnome-settings-daemon &

测试环境:
Openbox@Xspice@15.8@Deepin@LXD@Snappy@9@Debian@LXD@Snappy@28@Fedora
KDE@Xspice@15.8@Deepin@LXD@Snappy@9@Debian@LXD@Snappy@28@Fedora

deepin-wine 谁维护的最好? 当然是 deepin
所以把 deepin 丢到LXD里运行就好, 移植 deepin 的包到其它发行版累, 而且需要持续和 deepin 保持更新, 也累...

我的环境是Fedora-KDE-29,我并没有找到/usr/lib/gnome-settings-daemon/gsd-xsettings 以及gnome-settings-daemon,请问你是怎么操作的

@wszqkzqk
Copy link
Owner

X请求失败的错误:BadWindow(窗口参数无效)
失败请求的主要操作码:20(X_GetProperty)
失败请求中的资源ID:0x0
失败请求的
序列号:10输出流中的当前序列号:10
这个问题其实和KDE无关,应该是deepin在打包deepin-wine的过程中有意或者无意加入了GNOME依赖
执行/ usr / lib / gnome-settings-daemon / gsd-xsettings&即可
如果GNOME的版本较低(比如Debian 9),没有单独的gsd-xsettings可执行文件,则执行gnome-settings-daemon&
测试环境:
Openbox @ Xspice @ 15.8 @ Deepin @ LXD @ Snappy @ 9 @ Debian @ LXD @ Snappy @ 28 @ Fedora
KDE @ Xspice @ 15.8 @ Deepin @ LXD @ Snappy @ 9 @ Debian @ LXD @ Snappy @ 28 @ Fedora
deepin-wine谁维护的最好?当然是deepin
所以把deepin丢到LXD里运行就好,移植deepin的包到其他发行版累,而且需要持续和deepin保持更新,也累...

我的环境是Fedora-KDE-29,我并没有找到/ usr / lib / gnome-settings-daemon / gsd-xsettings以及gnome-settings-daemon,请问你是怎么操作的

需要另行安装软件

@Peytonlan
Copy link

@xuthus5

查找 gnome-settings-daemon 软件包
dnf search gnome-settings-daemon
依据 gsd-xsettings 文件查软件包
dnf provides */gsd-xsettings

但是你似乎没明白 KDE@Xspice@15.8@Deepin@LXD@Snappy@9@Debian@LXD@Snappy@28@Fedora 的意思
28@Fedora: 主机系统 Fedora 28
Snappy@28@Fedora: Fedora 28 上安装了 snapd
LXD@Snappy: 通过 snapd 安装了 LXD
9@Debian@LXD: 使用 LXD 运行 Debian 9
15.8@Deepin@LXD: 使用 LXD 运行 Deepin 15.8
Xspice@15.8@Deepin: Xspice 运行于 Deepin 15.8
KDE@Xspice: KDE 运行于 Xspice
我只不过以这种方式描述了当时的测试环境, 实际使用环境并不需要这么复杂

所以 deepin-wine 并不是直接运行在 Fedora 28 上, 而是 Deepin 15.8
/usr/lib/gnome-settings-daemon/gsd-xsettings 是 gnome-settings-daemon 的 gsd-xsettings 在 Deepin 15.8 上的位置

实际使用时, 可通过 LXD 的 GPU passthru 方式, 让运行于 Deepin 上的 deepin-wine 相关应用直接显示在 Fedora 的任意桌面上

@OvenTX
Copy link

OvenTX commented Feb 28, 2019

直接装个gnome桌面也行

@zhanghanduo
Copy link

啊 我在用i3,无法打开wechat Error of failed request: BadWindow (invalid Window parameter) ,难道一定要打开xfce-panel或者gnome吗?哭

@OvenTX
Copy link

OvenTX commented May 3, 2019 via email

@colmk
Copy link

colmk commented May 6, 2019

我的用的是manjaro+KDE,官方库里边放着 gnome-settings-daemon-3.0,gsd-xsettings的路径跟上边的不一样,是/usr/llib/gsd-xsettings。
启动后可以正常启动wine-tim

@Peytonlan
Copy link

@zhanghanduo
别太伤心...
gnome-settings-daemon 是很基础的软件包, 对其它软件包的依赖很少, 单独安装就好, 不会连带上整个 GNOME 环境
gsd-xsettings 运行时, 系统消耗也很低, 基本可以忽略

@Azureki
Copy link

Azureki commented May 10, 2019

请问各位,开了gsd-xsettings其他软件的分辨率都变了(经czyczk的提醒,我发现我也是字体dpi被改了),并且关闭gsd-xsettings之后也没有恢复,如何解决?

@czyczk
Copy link

czyczk commented May 11, 2019

请问各位,开了gsd-xsettings,其他软件的分辨率都变了,并且关闭gsd-xsettings之后也没有恢复,如何解决?

我也是,图形的缩放没受影响,光标大小和文字 DPI 受影响,此外 GTK 部分的主题也被改了。
我安装了 dconf-editor,修改 org/gnome/desktop/interface 下的 text-scaling-factor 解决了文字 DPI 的问题;光标大小还没能找到 resolution dependent 的解决方案,同问。
主题的话在 KDE 设置中的 Application Style -> GNOME/GTK Application Style 下重新设置成 Breath/Breeze 就好,这个没什么后遗症。

@imlk0
Copy link

imlk0 commented May 11, 2019

我的用的是manjaro+KDE,官方库里边放着 gnome-settings-daemon-3.0,gsd-xsettings的路径跟上边的不一样,是/usr/llib/gsd-xsettings。
启动后可以正常启动wine-tim

输入中文的问题解决 ?
已解决,是误删了某些包的语言包文件导致,pacman -Qq全部重装后解决

@Peytonlan
Copy link

@Azureki @czyczk
按照 #90 (comment) 操作, 能否解决你们的问题
如不行, 麻烦描述下详细的系统环境和操作步骤

@imlk0
Copy link

imlk0 commented May 30, 2019

QQ开启视频的方法

测试环境:
Openbox@Xspice@18.04@Ubuntu@LXD@Snappy@28@Fedora@LXD@Snappy@28@Fedora

从 deepin 源取 deepin-desktop-schemas 包安装
从 deepin 源取 startdde 包, 取出其中的 startdde 可执行文件即可, ldd startdde 查找缺失运行库, 补齐依赖运行库
其它文件安装参照通用方法

export DESKTOP_SESSION=deepin
/usr/local/bin/startdde &
sleep 3
/opt/deepinwine/apps/Deepin-TIM/run.sh

执行了 startdde, 就不必执行 gsd-xsettings, 不会再报 BadWindow 错误

还是直接把 deepin 丢到 LXD 里要省事些

你好请问怎么把deepin扔到lxd里面运行呢?没有找到deepin的lxd镜像,谢谢啦

@Peytonlan
Copy link

@KB5201314
用 LXD 随意安装个 Linux 发行版, 比如 Alpine Linux, 删除掉新建容器的 rootfs
使用 QEMU 安装 Deepin 虚拟机, 再用 qemu-nbd 挂载 Deepin 映像文件, 拷贝 Deepin 的 rootfs 到新的容器
启动新的容器, 卸载所有和 Flatpak 相关的软件包 (Deepin 下的 Flatpak, 运行于 LXD 时, 会导致系统无法更新)

@imlk0
Copy link

imlk0 commented May 31, 2019

随便装个发行版拷过去太秀了👍谢谢我一会就试试,一开始卡在做image那里了

@Blackcorns
Copy link

请问各位,开了gsd-xsettings,其他软件的分辨率都变了,并且关闭gsd-xsettings之后也没有恢复,如何解决?

我也是,图形的缩放没受影响,光标大小和文字 DPI 受影响,此外 GTK 部分的主题也被改了。
我安装了 dconf-editor,修改 org/gnome/desktop/interface 下的 text-scaling-factor 解决了文字 DPI 的问题;光标大小还没能找到 resolution dependent 的解决方案,同问。
主题的话在 KDE 设置中的 Application Style -> GNOME/GTK Application Style 下重新设置成 Breath/Breeze 就好,这个没什么后遗症。

好像这么干只有Gnome程序恢复了dpi,Kde程序并没有

@imlk0
Copy link

imlk0 commented Jun 2, 2019

@Blackcorns 我现在dpi一度陷入混乱,kde缩放和字体dpi都配了,勉强能用

@imlk0
Copy link

imlk0 commented Jun 2, 2019

@KB5201314
用 LXD 随意安装个 Linux 发行版, 比如 Alpine Linux, 删除掉新建容器的 rootfs
使用 QEMU 安装 Deepin 虚拟机, 再用 qemu-nbd 挂载 Deepin 映像文件, 拷贝 Deepin 的 rootfs 到新的容器
启动新的容器, 卸载所有和 Flatpak 相关的软件包 (Deepin 下的 Flatpak, 运行于 LXD 时, 会导致系统无法更新)

对了你是处理gui的呢?我找到这篇文章
https://blog.simos.info/how-to-easily-run-graphics-accelerated-gui-apps-in-lxd-containers-on-your-ubuntu-desktop/
看起来要装cloud-init,现在卡在cloud-init配置这了

@imlk0
Copy link

imlk0 commented Jun 3, 2019

@KB5201314
用 LXD 随意安装个 Linux 发行版, 比如 Alpine Linux, 删除掉新建容器的 rootfs
使用 QEMU 安装 Deepin 虚拟机, 再用 qemu-nbd 挂载 Deepin 映像文件, 拷贝 Deepin 的 rootfs 到新的容器
启动新的容器, 卸载所有和 Flatpak 相关的软件包 (Deepin 下的 Flatpak, 运行于 LXD 时, 会导致系统无法更新)

感谢你的帮助,我现在在lxd中运行了qq,用ssh做的gui forward,现在容器里QQcpu占用比较大(这正常吗?),输入法好像GG了,不过视频没有gg

@imlk0
Copy link

imlk0 commented Jun 4, 2019

@KB5201314
用 LXD 随意安装个 Linux 发行版, 比如 Alpine Linux, 删除掉新建容器的 rootfs
使用 QEMU 安装 Deepin 虚拟机, 再用 qemu-nbd 挂载 Deepin 映像文件, 拷贝 Deepin 的 rootfs 到新的容器
启动新的容器, 卸载所有和 Flatpak 相关的软件包 (Deepin 下的 Flatpak, 运行于 LXD 时, 会导致系统无法更新)

还是有一点怪异,不知道是不是因为我的是笔记本内置摄像头,能找到这个设备但是预览画面没有
图片,其次容器里运行cheese同样也找不到设备,但是运行qv4l2或webcam都可以拿到视频数据,看了一下QQ相关进程的map_files里面没有和v4l2相关的内容,请问你遇到这样的问题了吗?

@Peytonlan
Copy link

@Blackcorns @KB5201314
关于 dpi 的相关问题, 按照 #90 (comment) 操作
如果不行, 我需要你们更详细的表述, 不然没法判断

@Peytonlan
Copy link

@KB5201314
LXD 的 GPU passthrough 不需要 cloud-init

参考

raw.idmap: both 2000 1000
devices:
  X0:
    path: /mnt/X11-unix
    source: /tmp/.X11-unix
    type: disk
  Xauthority:
    path: /home/container_user/.Xauthority
    source: /home/host_user/.Xauthority
    type: disk
  gpu:
    type: gpu
  video0:
    path: /dev/video0
    source: /dev/video4
    type: disk

如果是非特权容器, 需要添加 idmap, 比如:
raw.idmap: both 2000 1000
2000 为 host 上的用户 id, 1000 为 container 内的用户 id. 当然, 实际的 id 值请根据自己的系统作调整
如果是特权容器, 不需要添加 idmap, 但是 host 和 container 的用户 id 要保持一致

如果容器内的 /tmp 未使用 tmpfs, X0 的 path 为 path: /tmp/.X11-unix
如果容器内的 /tmp 使用了 tmpfs, X0 的 path 为 path: /mnt/X11-unix, systemd 添加 /etc/systemd/system/tmp-.X11-unix.service

[Unit]
Description=Move /mnt/X11-unix to /tmp/.X11-unix
After=tmp.mount

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/mount -M /mnt/X11-unix /tmp/.X11-unix

[Install]
WantedBy=local-fs.target

容器内的声音可用 host 的 PulseAudio 共享

请先解决以上问题, 如果再出问题再反馈

@imlk0
Copy link

imlk0 commented Jun 5, 2019

@KB5201314
LXD 的 GPU passthrough 不需要 cloud-init

参考

raw.idmap: both 2000 1000
devices:
  X0:
    path: /mnt/X11-unix
    source: /tmp/.X11-unix
    type: disk
  Xauthority:
    path: /home/container_user/.Xauthority
    source: /home/host_user/.Xauthority
    type: disk
  gpu:
    type: gpu
  video0:
    path: /dev/video0
    source: /dev/video4
    type: disk

如果是非特权容器, 需要添加 idmap, 比如:
raw.idmap: both 2000 1000
2000 为 host 上的用户 id, 1000 为 container 内的用户 id. 当然, 实际的 id 值请根据自己的系统作调整
如果是特权容器, 不需要添加 idmap, 但是 host 和 container 的用户 id 要保持一致

如果容器内的 /tmp 未使用 tmpfs, X0 的 path 为 path: /tmp/.X11-unix
如果容器内的 /tmp 使用了 tmpfs, X0 的 path 为 path: /mnt/X11-unix, systemd 添加 /etc/systemd/system/tmp-.X11-unix.service

[Unit]
Description=Move /mnt/X11-unix to /tmp/.X11-unix
After=tmp.mount

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/mount -M /mnt/X11-unix /tmp/.X11-unix

[Install]
WantedBy=local-fs.target

容器内的声音可用 host 的 PulseAudio 共享

请先解决以上问题, 如果再出问题再反馈

谢谢你的回复。
非常感谢你的帮助,我原先尝试用ssh进行X11的Forward,但是性能影响很大(全屏运行程序的时候明显看到刷屏),后来换成共享unix socket (/tmp/.X11-unix)性能改善了很多。
声音的话,原先也是通过网桥转发到主机PulseAudio,后来直接用了类似前面图像的方式,也共享unix socket。
😃非常感谢,我原先没有理解cloud-init的用途,之后花了时间去看了看,发现它只是用来管理一堆容器的一种方法,只是其中的配置脚本里面有些配置有用。
现在的话,我能够在容器正常播放图像和声音,录音也没有问题了,但是视频还是有点问题,我参考了webcam setup arch wiki,测试过驱动是uvcvideo,绝大多数的视频软件,包括qv4l、webcam、xawtv、都能正常开启摄像头,唯独cheese打开什么都没有,QQ能够检测到摄像头名称(上一个回复的图里面有)但是打不开。v4l和v4l2驱动都装了(不知道为什么deepin源里面的包都很老而且依赖冲突一堆一堆的来)。然后按照arch wiki里面的Cheese那一段,用LD_PRELOAD的方法加载v4l2convert.so也没有什么效果,同样的操作对QQ也尝试过了。
我现在已经基本上准备放弃了,现在至少别人打电话过来不会崩掉了还不看不到😂。
运行startdde的话好像会改变主机的一些设置,所以没有在容器里面运行startdde,可能是因为我配置的是特权容器的原因吧。

@ASC8384
Copy link

ASC8384 commented May 2, 2020

ubuntu 20.04 版本位置在/usr/libexec/gsd-xsettings,启动qq后可以直接关闭

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests