dde-dock 显卡切换插件 v1.8 —— 瞎改和重构
Tofloor
poster avatar
忘记、过去
deepin
2020-07-19 12: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
5 / 5
To page
avatar
colorpure
deepin
2020-10-30 22:25
#81

其实,我到现在还没搞懂PRIME怎么安装~~~ 我怎么折腾都没有出现prime方案切换,论坛里那个prime的方案,我依旧实验失败~~~ 你要愿意也可以指导我继续折腾,哈哈哈~~

Reply View the author
avatar
bxkdhao
deepin
2021-01-25 22:22
#82

感谢大佬,已在星火商店安装。

Reply View the author
avatar
bxkdhao
deepin
2021-01-25 22:35
#83
colorpure

其实,我到现在还没搞懂PRIME怎么安装~~~ 我怎么折腾都没有出现prime方案切换,论坛里那个prime的方案,我依旧实验失败~~~ 你要愿意也可以指导我继续折腾,哈哈哈~~

https://bbs.chinauos.com/zh/post/5525

Reply View the author
avatar
天天,天天开心
deepin
2025-04-24 00:12
#84

DdeDockInterface_dde-dock_INCLUDEDIR:INTERNAL=
DdeDockInterface_dde-dock_LIBDIR:INTERNAL=
DdeDockInterface_dde-dock_PREFIX:INTERNAL=
DdeDockInterface_dde-dock_VERSION:INTERNAL=
//Details about finding PkgConfig
FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v1.8.1()]
//ADVANCED property for variable: PKG_CONFIG_ARGN
PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1
//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
QGSettings_CFLAGS:INTERNAL=
QGSettings_CFLAGS_I:INTERNAL=
QGSettings_CFLAGS_OTHER:INTERNAL=
QGSettings_FOUND:INTERNAL=
QGSettings_INCLUDEDIR:INTERNAL=
QGSettings_LIBDIR:INTERNAL=
QGSettings_LIBS:INTERNAL=
QGSettings_LIBS_L:INTERNAL=
QGSettings_LIBS_OTHER:INTERNAL=
QGSettings_LIBS_PATHS:INTERNAL=
QGSettings_MODULE_NAME:INTERNAL=
QGSettings_PREFIX:INTERNAL=
QGSettings_STATIC_CFLAGS:INTERNAL=
QGSettings_STATIC_CFLAGS_I:INTERNAL=
QGSettings_STATIC_CFLAGS_OTHER:INTERNAL=
QGSettings_STATIC_LIBDIR:INTERNAL=
QGSettings_STATIC_LIBS:INTERNAL=
QGSettings_STATIC_LIBS_L:INTERNAL=
QGSettings_STATIC_LIBS_OTHER:INTERNAL=
QGSettings_STATIC_LIBS_PATHS:INTERNAL=
QGSettings_VERSION:INTERNAL=
QGSettings_gsettings-qt_INCLUDEDIR:INTERNAL=
QGSettings_gsettings-qt_LIBDIR:INTERNAL=
QGSettings_gsettings-qt_PREFIX:INTERNAL=
QGSettings_gsettings-qt_VERSION:INTERNAL=
//linker supports push/pop state
_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
//linker supports push/pop state
_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
//linker supports push/pop state
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
__pkg_config_arguments_DdeDockInterface:INTERNAL=REQUIRED;dde-dock
__pkg_config_checked_DdeDockInterface:INTERNAL=1
prefix_result:INTERNAL=/usr/lib/x86_64-linux-gnu

dh_auto_configure: error: cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_BUILD_TYPE=Release -DAPP_VERSION=1.8.4 -DVERSION=1.8.4 LIB_INSTALL_DIR=/usr/lib/x86_64-linux-gnu .. returned exit code 1
make[1]: *** [debian/rules:16:override_dh_auto_configure] 错误 2
make[1]: 离开目录“/home/Mzz/dde-dock-graphics-plugin-master”
make: *** [debian/rules:13:binary] 错误 2
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2

佬,我是天选5pro (13980hx+4060) 请教我这个应该怎么解决呢?

Reply View the author
avatar
忘记、过去
deepin
2025-04-24 09:24
#85
天天,天天开心

DdeDockInterface_dde-dock_INCLUDEDIR:INTERNAL=
DdeDockInterface_dde-dock_LIBDIR:INTERNAL=
DdeDockInterface_dde-dock_PREFIX:INTERNAL=
DdeDockInterface_dde-dock_VERSION:INTERNAL=
//Details about finding PkgConfig
FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v1.8.1()]
//ADVANCED property for variable: PKG_CONFIG_ARGN
PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1
//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
QGSettings_CFLAGS:INTERNAL=
QGSettings_CFLAGS_I:INTERNAL=
QGSettings_CFLAGS_OTHER:INTERNAL=
QGSettings_FOUND:INTERNAL=
QGSettings_INCLUDEDIR:INTERNAL=
QGSettings_LIBDIR:INTERNAL=
QGSettings_LIBS:INTERNAL=
QGSettings_LIBS_L:INTERNAL=
QGSettings_LIBS_OTHER:INTERNAL=
QGSettings_LIBS_PATHS:INTERNAL=
QGSettings_MODULE_NAME:INTERNAL=
QGSettings_PREFIX:INTERNAL=
QGSettings_STATIC_CFLAGS:INTERNAL=
QGSettings_STATIC_CFLAGS_I:INTERNAL=
QGSettings_STATIC_CFLAGS_OTHER:INTERNAL=
QGSettings_STATIC_LIBDIR:INTERNAL=
QGSettings_STATIC_LIBS:INTERNAL=
QGSettings_STATIC_LIBS_L:INTERNAL=
QGSettings_STATIC_LIBS_OTHER:INTERNAL=
QGSettings_STATIC_LIBS_PATHS:INTERNAL=
QGSettings_VERSION:INTERNAL=
QGSettings_gsettings-qt_INCLUDEDIR:INTERNAL=
QGSettings_gsettings-qt_LIBDIR:INTERNAL=
QGSettings_gsettings-qt_PREFIX:INTERNAL=
QGSettings_gsettings-qt_VERSION:INTERNAL=
//linker supports push/pop state
_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
//linker supports push/pop state
_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
//linker supports push/pop state
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
__pkg_config_arguments_DdeDockInterface:INTERNAL=REQUIRED;dde-dock
__pkg_config_checked_DdeDockInterface:INTERNAL=1
prefix_result:INTERNAL=/usr/lib/x86_64-linux-gnu

dh_auto_configure: error: cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_BUILD_TYPE=Release -DAPP_VERSION=1.8.4 -DVERSION=1.8.4 LIB_INSTALL_DIR=/usr/lib/x86_64-linux-gnu .. returned exit code 1
make[1]: *** [debian/rules:16:override_dh_auto_configure] 错误 2
make[1]: 离开目录“/home/Mzz/dde-dock-graphics-plugin-master”
make: *** [debian/rules:13:binary] 错误 2
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2

佬,我是天选5pro (13980hx+4060) 请教我这个应该怎么解决呢?

你的笔记本应该用不到这个插件了,新的 N 卡笔记本应该都支持 DDG 显卡切换,直接在 BIOS 里面调整就好吧?


看不出来具体错误,但你应该不是在 deepin V20 上编译的吧?23 上请用 develop/beige 分支;25 暂不支持

Reply View the author
avatar
天天,天天开心
deepin
2025-04-24 13:40
#86
忘记、过去

你的笔记本应该用不到这个插件了,新的 N 卡笔记本应该都支持 DDG 显卡切换,直接在 BIOS 里面调整就好吧?


看不出来具体错误,但你应该不是在 deepin V20 上编译的吧?23 上请用 develop/beige 分支;25 暂不支持

23.1 的最新版本

Reply View the author
5 / 5
To page