我的“设置-显示”是空白
Tofloor
poster avatar
x869zhang
deepin
2013-03-29 10:44
Author
我的“设置-显示”是空白。是我丢失了什么组件吗?
深度截图20130329024843.png
Reply Favorite View the author
All Replies
2 / 2
To page
Skycat
deepin
2013-04-02 07:55
#21
好的,明天我用VGA连接多显看看

现在fix的是造成display模块空白的BUG

将VGA端的显示器设置成primary后,注销、重登录的过程中拔出VGA端了吗?

test源update后还是存在问题:
1、更新后托盘区只剩下输入法了;
2、多屏设置重启后会还原,再设置久不会成功,见图,显示和文件配置不一致;
3、话说我这里没有看见主屏或者复制屏幕的设置。。。orz,只能使用一个屏幕。。。
Reply View the author
zhaixiang
deepin
2013-04-02 17:44
#22
深度截图20130402092942.png

当输出端,比如VGA连接上显示器时,触发咯deepin-settings-daemon(简称dsd)的xrandr插件的GnomeRRScreen的changed事件,让GSettings更新输出端数组output-names,然后让前端deepin-system-settings(简称dss,同事们喜欢叫他“屌丝丝”)的display模块监听output-names的changed事件,重绘前端界面(显示多显示器设置等)。

我现在VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV710 [Mobility Radeon HD 4500/5100 Series]和PHLIPS的显示器做“复制模式”的测试;由于笔记本和VGA外接显示器的分辨率不同,那么dsd需要找出相同大小的分辨率m_get_same_mode(GnomeRRMode **primary, GnomeRRMode **other, char *same),比如现在相同的分辨率是1024x768。

由于前端dss的display要读取monitors.xml来显示primary和others,所以我做了强行删除&新建monitors.xml
  1. sprintf(backup_filename, "%s/.config/monitors.xml", pw->pw_dir);            
  2. if (access(backup_filename, 0) == 0)                                       
  3.     remove(backup_filename);                                                
  4.                                                                                 
  5. gnome_rr_config_save(config, NULL);
Copy the Code

这个处理方法可能会造成重启dsd后,monitors.xml丢失配置的BUG,我现在FIXing  :mrgreen:
Reply View the author
zhaixiang
deepin
2013-04-02 17:56
#23
IMAG0389.jpg

复制模式,重启dsd,或注销&重登录,木有问题,测试用例1通过

接下来测试扩展、只在1、2上显示
Reply View the author
zhaixiang
deepin
2013-04-02 18:22
#24
系统托盘(deepin-system-tray)兄正在努力FIX托盘!单实例的BUG
Reply View the author
zhaixiang
deepin
2013-04-02 18:33
#25
深度截图20130402100745.png
扩展测试通过

深度截图20130402100841.png
只在1上显示测试通过,重启dsd、注销&重登录木有问题

只在2上显示有问题,重启dsd、注销&重启登录后,多显示器设置木有咯。。。主要是木有触发changed事件,我来FIXing之
Reply View the author
zhaixiang
deepin
2013-04-02 19:32
#26
bingo FIX咯

在monitors.xml更新之前,m_set_multi_monitors(screen, settings); 这样即便monitors.xml信息不正确,也可以达到这样的目的——重启dsd、注销&重登录都会让GSettings中的设置信息起作用。

为什么使用GSettings,不是已经有monitors.xml吗?
确实C/C++可以使用libxml2解析、编辑XML,但是对于其他前端如果可以通过简单的g_settings_get/set,然后dsd就给予响应支持;

monitors.xml可以为dss的display前端提供outputs列表,实际上的设置信息保存在GSettings里咯
Reply View the author
zhaixiang
deepin
2013-04-02 21:20
#27
深度截图20130402132431.png

GSettings中添加的键值
Reply View the author
mysunnysky
deepin
2013-04-03 08:35
#28
看到提交bug,deepin团队马上work起来感觉很是欣慰啊。
Reply View the author
fredy4212
deepin
2013-04-04 00:34
#29
看到提交bug,deepin团队马上work起来感觉很是欣慰啊。
很好的團隊呢! :
Reply View the author
mysunnysky
deepin
2013-04-13 08:46
#30
Reply View the author
zhaixiang
deepin
2013-04-13 23:53
#31
daemon进程没有起来
Reply View the author
liujames3
deepin
2013-04-18 06:33
#32
哦,这是我滴bug,deepin-settings-daemon虽然木有更新monitors.xml中关于VGA-0的primary信息,但是我应该判断一下滴,我自己提一个bug先 http://www.linuxdeepin.com/mantis/view.php?id=1380

非常感谢联合debug
看看我的是怎么回事:(输入你说的命令后,弹出的显示设置为空白,但直接在桌面点设置,则是显示我的显示器,不过说是16“的,实际上,我的显示器是HKC 775F应该是17”吧)以下是我的信息:
liujames3@liujames3-host:~/桌面$ sudo deepin-system-settings display
[sudo] password for liujames3:
com.deepin.system_settings (reply): ()
Traceback (most recent call last):
  File "/usr/share/deepin-system-settings/modules/display/src/main.py", line 34, in
    display_view = DisplayView()
  File "/usr/share/deepin-system-settings/modules/display/src/display_view.py", line 208, in __init__
    self.display_manager = DisplayManager()
  File "/usr/share/deepin-system-settings/modules/display/src/display_manager.py", line 64, in __init__
    self.init_xml()
  File "/usr/share/deepin-system-settings/modules/display/src/display_manager.py", line 153, in init_xml
    self.__primary_output_name = self.__output_info_by_xml[0][0]
IndexError: list index out of range
Traceback (most recent call last):
  File "/usr/share/deepin-system-settings/modules/display/src/main.py", line 34, in
    display_view = DisplayView()
  File "/usr/share/deepin-system-settings/modules/display/src/display_view.py", line 208, in __init__
    self.display_manager = DisplayManager()
  File "/usr/share/deepin-system-settings/modules/display/src/display_manager.py", line 64, in __init__
    self.init_xml()
  File "/usr/share/deepin-system-settings/modules/display/src/display_manager.py", line 153, in init_xml
    self.__primary_output_name = self.__output_info_by_xml[0][0]
IndexError: list index out of range
liujames3@liujames3-host:~/桌面$ cat ~/.config/monitors.xml

  
      no
      
      
      
          HKC
          0x0307
          0x00000001
          1024
          768
          85
          0
          0
          normal
          no
          no
          yes
      
      
      
      
      
  

liujames3@liujames3-host:~/桌面$ $ lspci -k | grep VGA -A 3
$:未找到命令
liujames3@liujames3-host:~/桌面$ lspci -k | grep VGA -A 3
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)
        Kernel driver in use: nvidia
        Kernel modules: nvidia_current_updates, nouveau, nvidiafb
01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
liujames3@liujames3-host:~/桌面$
Reply View the author
zhaixiang
deepin
2013-04-18 19:41
#33
你贴一下xrandr --verbose看看output信息,N卡和A卡的童鞋表示同情O(∩_∩)O哈哈哈~我现在是I卡咯
Reply View the author
a287740928
deepin
2013-04-18 20:13
#34
intel的卡最省事了,还好是双显卡
Reply View the author
2 / 2
To page