Topic
dde-dock 显卡切换插件 v1.8 —— 瞎改和重构
Tofloor
poster avatar
忘记、过去
deepin
2020-07-18 20:05
Author
本帖最后由 zty199 于 2020-10-26 02:55 编辑

【10.26】版本更新:1.7.1 -> 1.8
修复之前版本中,切换显卡调用外部脚本时进程阻塞导致 dde-dock 无响应的问题。


虽然之前说不知道还能更新啥了......但是 1003 更新后又逼死强迫症患者,插件被设置了宽度限制,只有日期插件被豁免了 XD (详见大佬 q77190858 的帖子)
大佬的插件要显示的内容多,只能通过改插件识别名称来伪装自己是日期插件,从而不被遮挡。但是呢,我这个又不是啥复杂的玩意儿,就显示一个图标而已,改名称感觉怪怪的。
于是又折腾了一下午,尝试着想让图标跟随高度或者宽度缩放来着,结果一次都没成功......浪费了几个小时之后决定放弃......

转念一想,既然图标太大会被遮住,那就干脆缩小到不会被遮挡就行了呗~于是,就照搬了其他几个系统插件的绘制模式,给缩小的图标套了一个框,算是统一了一下风格吧......只不过 20x20 的图标确实有点小,效果一般。先凑活着看看吧,外观也不是啥重点......



dde-dock-graphics-plugin_1.8.tar.gz

* P.S > 后面主要是想有没有办法能在 CMake 项目里使用 QtLinguistTools 来翻译文本适配语言环境,今天尝试了许久又失败了......notify-send 也还是用外部指令直接执行的,想导入 libnotify-dev 库用代码实现系统通知也失败了......不知道啥时候才能把外部脚本全部抛弃哦......CMakeList.txt 是真的搞不懂......



*如果切换失败导致无法进入图形界面,可以 ctrl + alt + F2 进入 tty2,输入用户名密码登录后执行 /opt/apps/dde-dock-graphics-plugin/files/bin/Rescue.sh 清空配置文件。



原贴地址:https://bbs.deepin.org/post/197280
大佬的仓库地址:https://github.com/mywhat/DDESwitchCard
(去围观大佬啊,点个赞评个分啥的,再 Star 一下~)


对我这种小白来说,论坛大佬 chanforever 写的显卡切换插件是真的牛逼,总比我只会直接用脚本切换显卡方便不少。以前都是把脚本路径放在 .zshrc 里面用 function 调用的,还是不太方便。有了插件就好多了,有点显卡控制面板的感觉了~(虽然现在还是得自己先把显卡驱动装好才行......)

根据大佬的源码,经过了一番研究和改动,去掉了一些不合理的文件放置位置,增加了一个初始化脚本和自动检测配置文件是否存在的功能,打了一个 deb 包放上来给各位勇士试试。(大佬原来的文件摆放位置导致没有办法打包,因为 postinst 脚本执行时是 root 权限,没找到合适的办法放在用户主目录......只能挪走了。)
P.S.请先确保自己正确安装了 N卡闭源驱动 再尝试这个deb包!还有 nvidia-smi 也需要自己安装,毕竟官网的 .run 文件安装和官方源的 nvidia-driver 还是有区别的......

被我叉走的仓库在GitHub上:https://github.com/zty199/dde-dock-switch_graphics_card
                                   码云:https://gitee.com/deepin-opensource/switch-graphics-card






Reply Favorite View the author
All Replies
lenke
deepin
2020-07-20 10:25
#21
https://bbs.deepin.org/post/197367
大佬有空能再测试一下1.1+2版本吗,我这里检测显卡和切换已经没有问题了。目前检测的方式是检测nvidia-sm ...

你的xorg版本是多少
系统自带的1.20.4,还是升级过的
Reply View the author
lenke
deepin
2020-07-20 10:29
#22
我运行CheckConf.sh脚本还是不能正确识别显卡信息
然后我改了这个脚本,让他强行认出nvidia显卡
再进行intel显卡切换,输入完密码后没反应,然后我手动注销一下,发现依旧是nvidia,切换失败!
Reply View the author
忘记、过去
deepin
2020-07-20 11:07
#23
本帖最后由 zty199 于 2020-7-20 19:08 编辑
https://bbs.deepin.org/post/197367
我运行CheckConf.sh脚本还是不能正确识别显卡信息
然后我改了这个脚本,让他强行认出nvidia显卡
再进行inte ...

额,你检查一下 ~/.config/dde-dock-switch_graphics_card/graphics.conf,这个文件是不是权限错了,之前的1.0好像写入的时候不小心加了 sudo ......如果没有写入权限就有这个问题......你把 graphics.conf 删掉重新运行一下CheckConf.sh试试。
Reply View the author
小小怪下士
deepin
2020-07-22 08:04
#24
最新版的切换不了,而且docker糊成一坨了,没法用,又换回1.0了
Reply View the author
忘记、过去
deepin
2020-07-22 10:27
#25
https://bbs.deepin.org/post/197367
最新版的切换不了,而且docker糊成一坨了,没法用,又换回1.0了

有截图吗......糊成一坨应该是加载插件的占位问题吧,托盘区图标随便刷新一下就行。

1.0的文件权限有问题,导致后面的新版本都不能用。需要手动删除 ~/.config/dde-dock-switch_graphics_card/graphics.conf 才行。不介意的话可以试试,或者就 1.0版凑活着用吧......
Reply View the author
小小怪下士
deepin
2020-07-22 14:32
#26
https://bbs.deepin.org/post/197367
有截图吗......糊成一坨应该是加载插件的占位问题吧,托盘区图标随便刷新一下就行。

1.0的文件权限有问 ...

开始我都切不了,我就又切换回1.0了,我再去试一试
Reply View the author
小小怪下士
deepin
2020-07-22 14:51
#27
不太行,切换之后还是intel
Reply View the author
lenke
deepin
2020-07-22 15:13
#28
可能是方向性错误
nvidia-smi,在我的电脑上是不现实进程的,无论你是否使用独显

所以拿kwin或者xorg作为判断依据,根本是不起作用的
Reply View the author
忘记、过去
deepin
2020-07-22 16:20
#29
本帖最后由 zty199 于 2020-7-23 00:22 编辑
https://bbs.deepin.org/post/197367
可能是方向性错误
nvidia-smi,在我的电脑上是不现实进程的,无论你是否使用独显

这就很奇怪了......1.0也是这样判断的啊......而且判断的还是xorg,因为这个在nvdia-prime里面还会显示,所以我才改成kwin的......
还有一个问题就是......gt620是笔记本吗?还是台式机?台式机的话好像没有用的吧,应该取决于显示器接在哪个显卡上......
Reply View the author
zhlk1001
deepin
2020-07-22 17:10
#30
zty199 发表于 2020-7-23 00:20
这就很奇怪了......1.0也是这样判断的啊......而且判断的还是xorg,因为这个在nvdia-prime里面还会显示, ...

笔记本 hd4000+gt640m,配置有点旧
是不是可以参考这个信息
glxinfo  |  grep "OpenGL renderer"
作为判断依据
Reply View the author
zhlk1001
deepin
2020-07-22 17:17
#31
其实1.0的信息判断也不准,他只是记住了你最后一次的操作,给人一种错觉感。
Reply View the author
海天鹰
deepin
2020-07-23 01:17
#32
6B6B6B
Reply View the author
raoqingshu
deepin
2020-07-23 02:48
#33
手贱,切换了一下,现在系统进不去了,求解。
Reply View the author
忘记、过去
deepin
2020-07-23 03:25
#34
https://bbs.deepin.org/post/197367
手贱,切换了一下,现在系统进不去了,求解。

你应该是切换到NVIDIA显卡出的问题吧,有安装闭源驱动吗?

没有的话,按 ctrl+alt+f2 切换到 tty2,使用用户名和密码登录,执行 sudo rm /etc/X11/xorg.conf,再执行 sudo reboot 重启试试。
Reply View the author
忘记、过去
deepin
2020-07-23 03:35
#35
https://bbs.deepin.org/post/197367
笔记本 hd4000+gt640m,配置有点旧
是不是可以参考这个信息
glxinfo  |  grep "OpenGL renderer"

没有用......我用官网的.run文件装的驱动就没有这个,只有nvidia-smi......我这里笔记本 hd630+gtx1050用kwin_x11判断倒是没问题。楼上说用不用独显都不显示任何进程我是从来没见过......

不是很清楚其他笔记本的情况,尤其是老的笔记本。6代开始的新的笔记本,一般都是支持的,少数一些只有独显的也用不上切换......
Reply View the author
zhlk1001
deepin
2020-07-23 04:56
#36
zty199 发表于 2020-7-23 11:35
没有用......我用官网的.run文件装的驱动就没有这个,只有nvidia-smi......我这里笔记本 hd630+gtx1050用 ...

你需要安装 mesa-utils 依赖,才可以使用glxinfo 工具,和驱动无关。
另外,lenke也是我的号,用乱了。
Reply View the author
lenke
deepin
2020-07-23 05:00
#37
  1. lenke@lenke-PC:~/Desktop$ glxinfo  |  grep "OpenGL renderer"
  2. OpenGL renderer string: SVGA3D; build: RELEASE;  LLVM;
  3. lenke@lenke-PC:~/Desktop$ glxinfo  |  grep "OpenGL"
  4. OpenGL vendor string: VMware, Inc.
  5. OpenGL renderer string: SVGA3D; build: RELEASE;  LLVM;
  6. OpenGL version string: 2.1 Mesa 19.2.6
  7. OpenGL shading language version string: 1.20
  8. OpenGL extensions:
  9. OpenGL ES profile version string: OpenGL ES 2.0 Mesa 19.2.6
  10. OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
  11. OpenGL ES profile extensions:
  12. lenke@lenke-PC:~/Desktop$
Copy the Code


这是我虚拟机的信息 ,可做参考
Reply View the author
lenke
deepin
2020-07-23 05:07
#38
再给你三张图参考
使用集显,使用独显和glxinfo的信息


Reply View the author
lenke
deepin
2020-07-23 05:14
#39
使用什么字符段你自己选
glxinfo  |  grep "OpenGL"
glxinfo  |  grep "OpenGL renderer"
glxinfo  |  grep "OpenGL vendor"



Reply View the author
风吹过的绿洲
deepin
2020-07-23 06:04
#40
习惯把任务栏拉到最小,这时候图标显示不全

Reply View the author

2 / 5
To page
Use Markdown Editor
Loading