System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于X11的linux程序指定显示器显示方法及装置制造方法及图纸_技高网

一种基于X11的linux程序指定显示器显示方法及装置制造方法及图纸

技术编号:40974489 阅读:4 留言:0更新日期:2024-04-18 21:23
本发明专利技术提出一种基于X11的linux程序指定显示器显示方法及装置,建立一个配置文件,在配置文件中配置指定程序需要显示的指定显示器;开启X11,修改窗口管理器,使窗口管理器在linux程序启动建立X Client时读取所述配置文件,判断X Client是否为指定程序,以及判断指定显示器是否已接入;并控制是否将所述X Client显示到所述指定显示器上;修改窗口管理器的显示器变动监听函数,使所述显示器变动监听函数在显示器变动时控制当前的X Client在所述显示器的显示及隐藏。本发明专利技术使linux程序显示到指定的显示器屏幕上,显示器没有接入或开启、中途接入或拔出都不影响本身与其他显示器显示的内容。

【技术实现步骤摘要】

本专利技术属于信息,特别是涉及到一种基于x11的linux程序指定显示器显示方法及装置。


技术介绍

1、嵌入式linux使用场景中存在需要使用到多个显示器,且不同显示器对应不同的使用者的场景,每个显示器上需要分别显示不同的软件程序且不能互相影响。在默认设置下,linux系统接入多个显示器,程序启动会显示在主屏上,拔出显示器时,该显示器上显示的内容会移动到剩下的显示器上,这样的情况不满足上述使用场景。

2、现在将程序显示到指定的显示器主要存在两种方式:

3、1、在系统启动时,就启动程序然后拖动到对应的屏幕:该种方法只适用于程序和显示器使用过程中不会变动的情况,如果后续再启动新的程序或者程序需要重新启动、显示器需要关闭拔出再接入开启时,则还是会对使用者产生影响。

4、2、程序本身编写相应逻辑功能,监听显示器事件让自己显示或则隐藏:该方法实现工作量大,需要适配所有需要使用的程序,如果要使用第三方程序等无法定制的程序时,则无法满足需求。


技术实现思路

1、本专利技术提出一种基于x11的linux程序指定显示器显示方法及装置,让linux程序在窗口管理器的管理下,显示到指定的屏幕上,就算指定的显示器没有接入或开启、中途接入或拔出显示器都不影响本身与其他显示器显示的内容。

2、为达到上述目的,本专利技术的技术方案是这样实现的:

3、一种基于x11的linux程序指定显示器显示方法,包括:

4、s1、建立一个配置文件,在配置文件中配置指定程序需要显示的指定显示器;

5、s2、开启x11,修改窗口管理器,使窗口管理器在linux程序启动建立x client时读取所述配置文件,判断当前创建的x client是否为指定程序,以及判断对应的指定显示器是否已接入;并控制是否将所述x client显示到所述指定显示器上;所述x11是指linux 的x window system,是图形化窗口管理系统;

6、s3、修改窗口管理器的显示器变动监听函数,使所述显示器变动监听函数在显示器变动时控制当前的x client在所述显示器的显示及隐藏。

7、进一步的,步骤s2中所述修改窗口管理器包括:

8、修改窗口管理器的workspace::init()函数,加入读取配置文件的操作,将配置文件中的指定程序和指定显示器的数据赋值到名为customclient列表中;

9、在workspace::createclient()函数中添加逻辑,遍历customclient列表,用xclient的name属性去进行比对来判断当前创建的x client是否为配置文件中的指定程序,再通过screen::getscreenbyname()函数,根据所述指定程序对应的指定显示器名称来判断该显示器是否已接入;

10、调用workspace::sendclienttoscreen()函数将指定程序的x client移动到对应的指定显示器上,再调用x client对象的类函数map()与unmap()来控制所述x client是否显示到所述指定显示器。

11、更进一步的,步骤s3中修改显示器变动监听函数包括:

12、修改workspace::desktopresized()函数,在该函数中遍历customclient列表,并通过screen::getscreenbyname()函数判断其中的各指定显示器是否发生变动,根据指定显示器的变动调用对应x client对象的类函数map()与unmap()来控制对应x client显示到显示器上或者从显示器掩藏。

13、本专利技术另一方面还提出了一种基于x11的linux程序指定显示器显示装置,包括:

14、配置文件模块:建立一个配置文件,在配置文件中配置指定程序需要显示的指定显示器;

15、窗口管理器修改模块:开启x11,修改窗口管理器,使窗口管理器在linux程序启动建立x client时读取所述配置文件,判断当前创建的x client是否为指定程序,以及判断对应的指定显示器是否已接入;并控制是否将所述x client显示到所述指定显示器上;

16、监听函数修改模块:修改窗口管理器的显示器变动监听函数,使所述显示器变动监听函数在显示器变动时控制当前的x client在所述显示器的显示及隐藏。

17、进一步的,窗口管理器修改模块包括:

18、配置文件读取单元:修改窗口管理器的workspace::init()函数,加入读取配置文件的操作,将配置文件中的指定程序和指定显示器的数据赋值到名为customclient列表中;

19、遍历单元:在workspace::createclient()函数中添加逻辑,遍历customclient列表,用x client的name属性去进行比对来判断当前创建的x client是否为配置文件中的指定程序,再通过screen::getscreenbyname()函数,根据所述指定程序对应的指定显示器名称来判断该显示器是否已接入;

20、显示控制单元:调用workspace::sendclienttoscreen()函数将指定程序的xclient移动到对应的指定显示器上,再调用x client对象的类函数map()与unmap()来控制所述x client是否显示到所述指定显示器。

21、更进一步的,监听函数修改模块包括:

22、变动判断单元:修改workspace::desktopresized()函数,在该函数中遍历customclient列表,并通过screen::getscreenbyname()函数判断其中的各指定显示器是否发生变动;

23、控制单元:根据指定显示器的变动调用对应x client对象的类函数map()与unmap()来控制对应x client显示到显示器上或者从显示器掩藏。

24、本专利技术还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的基于x11的linux程序指定显示器显示方法。

25、与现有技术相比,本专利技术具有如下的有益效果:

26、本专利技术基于x11,通过修改窗口管理器对指定x client的map和unmap的控制与xclient的移动控制来实现程序只显示到指定的显示器上,在多显示器的使用场景下可以避免显示内容相互影响。

本文档来自技高网...

【技术保护点】

1.一种基于X11的linux程序指定显示器显示方法,其特征在于,包括:

2.根据权利要求1所述的基于X11的linux程序指定显示器显示方法,其特征在于,步骤S2中所述修改窗口管理器包括:

3.根据权利要求2所述的基于X11的linux程序指定显示器显示方法,其特征在于,步骤S3中修改显示器变动监听函数包括:

4.一种基于X11的linux程序指定显示器显示装置,其特征在于,包括:

5.根据权利要求4所述的基于X11的linux程序指定显示器显示装置,其特征在于,窗口管理器修改模块包括:

6.根据权利要求5所述的基于X11的linux程序指定显示器显示装置,其特征在于,监听函数修改模块包括:

7.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序用于执行如权利要求1-3任一项的基于X11的linux程序指定显示器显示方法。

【技术特征摘要】

1.一种基于x11的linux程序指定显示器显示方法,其特征在于,包括:

2.根据权利要求1所述的基于x11的linux程序指定显示器显示方法,其特征在于,步骤s2中所述修改窗口管理器包括:

3.根据权利要求2所述的基于x11的linux程序指定显示器显示方法,其特征在于,步骤s3中修改显示器变动监听函数包括:

4.一种基于x11的linux程序指定显示器显示装置,其特征在于,包...

【专利技术属性】
技术研发人员:李元文吴春光郭皓黄顺玉林博
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1