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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/388088.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows下nmap命令及Zenmap工具的使用方法

一、Nmap简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评…

【Bug收割机】已解决使用maven插件打包成功,在控制台使用mvn命令打包失败问题详解,亲测有效!

文章目录 前言问题分析报错原因解决方法私域 前言 在maven项目中,大家经常会使用maven插件来打包项目文件 但是有的人也习惯使用mvn命令在控制台直接进行打包,因为这样可以自定义组装一些命令,使用起来也更加灵活方便,比如mvn pa…

C++进阶-哈希扩展(位图和布隆过滤器)

1. 位图 1.1 位图概念 面试题 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在 这40亿个数中。【腾讯】 解题思路1:暴⼒遍历,时间复杂度O(N),太慢 解题思路2:排序⼆分查…

mybatis-plus中出现Field ‘id‘ doesn‘t have a default value问题解决方法

问题分析: 出现这个原因,主要是因为mybatis-plus自身查询的特性,因为查询都是它自己内部设定好的参数,一般为了简便,都会默认自己底层的数据库对应的主键id字段是自增的,也就是mybatis-plus认为不需要id,每…

重磅惊喜!OpenAI突然上线GPT-4o超长输出模型!「Her」高级语音模式已开放测试

在最近的大模型战争中,OpenAI似乎很难维持霸主地位。虽然没有具体的数据统计,但Claude3.5出现后,只是看网友们的评论,就能感觉到OpenAI订阅用户的流失: Claude3.5比GPT-4o好用,为什么我们不去订阅Claude呢&…

学习c语言第18天(字符串和内存函数)

1.函数介绍 1.1 strlen size_t(就是无符号整形) strlen(const char * str); 字符串已经\0作为结束标志,strlen函数返回的是在字符串中\0前面出现的字符个数(不包 含\0) 参数指向的字符串必须要以\0结束。 注意函数的返回值为size_t,…

文件系统 --- 文件结构体,文件fd以及文件描述符表

序言 在编程的世界里,文件操作是不可或缺的一部分。无论是数据的持久化存储、日志记录,还是简单的文本编辑,文件都扮演着至关重要的角色。然而,当我们通过编程语言如 C、Java 等轻松地进行文件读写时,背后隐藏的复杂机…

自动化运维工具之Ansible

一、Ansible Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机…

ADS环境下的ARM汇编程序设计实验报告

ADS环境下的ARM汇编程序 一、 实验目的 1.了解 ARM汇编语言的基本框架,学会使用ARM的汇编语言编程。 2.熟悉ADS1.2下进行汇编语言程序设计的基本流程; 3. 了解AXD中调试功能。 二、 实验环境 硬件:PC机 软件:ADS…

基于VScode和C++ 实现Protobuf数据格式的通信

目录 1. Protobuf 概述1.1 定义1.2Protobuf的优势 2. Protobuf 语法3、序列号和反序列化3.1 .pb.h 头文件3.2 序列化3.3 反序列化 4、测试用例 Protobuf详细讲解链接 1. Protobuf 概述 1.1 定义 protobuf也叫protocol buffer是google 的一种数据交换的格式,它独立…

熵权法确定权重

熵权法(Entropy Weight Method, EWM)是一种在综合考虑各因素提供信息量基础上计算综合指标的数学方法,属于客观综合定权法,在确定权重时更有说服力。该方法主要根据各指标传递给决策者的信息量大小来确定权重。在信息论中&#xf…

[RoarCTF 2019]Easy Calc1

打开题目 查看源码,看到 看到源代码有 calc.php,构造url打开 看到php审计代码, 由于页面中无法上传num,则输入 num,在num前加入一个空格可以让num变得可以上传,而且在进行代码解析时,php会把前…

库存超卖问题解决方式

文章目录 超卖问题解决方式什么是库存超卖问题?乐观锁和悲观锁的定义超卖问题解决方式一、悲观锁1.jvm单机锁2.通过使用mysql的行锁,使用一个sql解决并发访问问题3.使用mysql的悲观锁解决4. 使用redis分布式锁来解决 二、乐观锁解决1.版本号2. CAS法&…

数据结构第1天作业 7月31日

2.3按位置操作 1&#xff09;按照位置插入数据 void Insert_seqlist_single(Seqlist* sq,int arr_sub,int num){if(sq->posN ){ //判断顺序列表是否为满printf("error");return;}else if(arr_sub<0||arr_sub>sq->pos){printf("error…

React组件生命周期

一张图解释 React 类组件生命周期方法 React 类组件的生命周期可以分为三个主要阶段&#xff1a; 挂载&#xff08;Mounting&#xff09; 更新&#xff08;Updating&#xff09; 卸载&#xff08;Unmounting&#xff09; 挂载阶段 在组件实例被创建并插入到 DOM 中时调用…

SpringSecurity登录认证流程及源码分析

目录 一 作用 二 流程及源码分析 一 作用 spring security作为spring家族中的一员&#xff0c;它的主要作用有两个&#xff0c;分别是认证和授权。 我们以前在实现登录功能的时候&#xff0c;前端会传来用户名和密码&#xff0c;然后我们根据前端传来的数据从用户表中的数据进…

Java高级Day18-集合

62.集合 之前保存多个数据元素使用数组&#xff0c;但数组有以下缺点&#xff1a; 长度开始必须指定&#xff0c;指定后不可修改 保存的必须为同一类型的元素 使用数组进行增加/删除元素的代码比较麻烦 集合 可以动态的保存任意多个对象 提供了一系列方便操作对象的方法 …

河南萌新联赛2024第(三)场:河南大学

传送门&#xff1a;河南萌新联赛2024第&#xff08;三&#xff09;场&#xff1a;河南大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ B 正则表达式 思路&#xff1a;模拟 代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long lo…

vue3+fetch请求+接收到流式的markdown数据+一边gpt打字机式输出内容,一边解析markdown语法+highlight.js实现代码高亮

这个问题终于解决了&#xff01;好开心。 先看最终效果&#xff1a; video_20240724_141543_edit 项目背景&#xff1a;vue3 场景&#xff1a;像gpt一样可以对话&#xff0c;当用户发送问题之后&#xff0c;ai回复&#xff0c;ai是一部分一部分回复&#xff0c;像打印机式输出…