Linux命令行 复制模式/扩展模式 调用系统功能切换

问题背景

公司软件需要从window 适配国产操作系统,目前使用wine方案。在我们软件有个切换屏幕模式的功能,需要支持用户在我们软件内,切换复制模式/扩展模式。

在linux 下 uos/deepin 等系统。如果要从复制模式设置为扩展模式使用命令行时,需要指定屏幕在系统中设置的左右位置。才能从复制模式切换为扩展模式。

解决方案

使用dbus-send命令行进行复制/扩展模式切换。不需要指定左右屏幕。完全使用系统【显示设置】的功能。如下图:

在这里插入图片描述

切换屏幕模式命令行

dbus-send --print-reply --dest=com.deepin.daemon.Display /com/deepin/daemon/Display com.deepin.daemon.Display.SwitchMode byte:模式值 string:'屏幕名称'

示例1:仅在HDMI-A-0屏幕显示

dbus-send --print-reply --dest=com.deepin.daemon.Display /com/deepin/daemon/Display com.deepin.daemon.Display.SwitchMode byte:3 string:‘HDMI-A-0’

示例2:切换复制模式

dbus-send --print-reply --dest=com.deepin.daemon.Display /com/deepin/daemon/Display com.deepin.daemon.Display.SwitchMode byte:1 string:‘’

示例3:切换扩展模式

dbus-send --print-reply --dest=com.deepin.daemon.Display /com/deepin/daemon/Display com.deepin.daemon.Display.SwitchMode byte:2 string:‘’

参数说明

参数1:切换模式

byte: 1(复制模式)2(扩展模式)3:(指定屏幕显示)

参数2:屏幕名称

string: 在byte类型为3时,会使用此值。

注意:参数1(byte)设置为:1,2时不会使用到屏幕名称

调整屏幕亮度

dbus-send --print-reply --dest=com.deepin.daemon.Display /com/deepin/daemon/Display com.deepin.daemon.Display.SetBrightness string:'屏幕名称' double:亮度值

示例:把eDP屏幕亮度设置为80%

dbus-send --print-reply --dest=com.deepin.daemon.Display /com/deepin/daemon/Display com.deepin.daemon.Display.SetBrightness string:‘eDP’ double:0.8

隐藏任务栏

dbus-send --print-reply --type=method_call --dest=com.deepin.dde.daemon.Dock /com/deepin/dde/daemon/Dock org.freedesktop.DBus.Properties.Set string:'com.deepin.dde.daemon.Dock' string:'HideMode' variant:int32:1

显示任务栏

dbus-send --print-reply --type=method_call --dest=com.deepin.dde.daemon.Dock /com/deepin/dde/daemon/Dock org.freedesktop.DBus.Properties.Set string:'com.deepin.dde.daemon.Dock' string:'HideMode' variant:int32:0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值