自定义会话:默认情况下,Window不会捕获全屏区域。12.04


11

我正在尝试通过在/usr/share/xesessions文件夹中创建custom.desktop文件来创建自定义会话。请记住,这不是一个gnome会话或其他会话。我已经为此会话创建了自己的应用程序,这很简单。

情况1

Chrome浏览器

custom.desktop文件的内容

[Desktop Entry]
Name=Internet Kiosk
Comment=This is an internet kiosk
Exec=google-chrome --kiosk
TryExec=
Icon=
Type=Application

问题

Chrome浏览器以信息亭模式启动,但无法捕获整个屏幕区域。屏幕的底部和右侧会保留一些区域。


情况二

自定义pyGTK应用程序(快速)

custom.desktop文件的内容

[Desktop Entry]
Name=Custom Kiosk
Comment=This is a custom kiosk
Exec=~/MyCustomPyGTKApp
TryExec=
Icon=
Type=Application

问题

我的自定义pyGTK应用程序已包含window.fullScreen()在代码中。这意味着它应该在没有窗口镶边的情况下全屏打开(并且在正常会话下也是如此)。但这也为它留下了很多空间。

需要帮忙

谁能告诉我这是怎么回事。我认为第8步中http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS中指出的边界问题

如果偶然,启用--kiosk开关后Google Chromium不会扩展到边缘,有一个简单的解决方法。要拉伸Chromium,只需以普通用户身份登录并编辑chromeKiosk.sh即可不使用--kiosk开关。然后以受限用户身份登录,单击扳手并选择选项。然后在“个人资料”选项卡上,选择“隐藏系统标题栏”并使用紧凑的边框。关闭选项屏幕并拉伸铬以适合显示器。然后返回选项窗口,并将其设置为“使用系统标题栏和边框”。完成此操作后,注销受限用户(可能需要重新启动)并登录到常规用户。重新编辑chromeKiosk.sh以再次包含--kiosk开关,下次您登录受限用户时,Chromium应该全屏显示。

如果要使用自定义pyGTKgtkmm应用程序,应该如何解决此问题。window.fullScreen()应该占据整个屏幕区域。这必须通过编程或其他可以扩展的方式来完成。我必须将其部署在位于不同地理区域的大量机器上。不可能在每台机器上手动进行操作。

Answers:


6

这是一个棘手的问题,当尝试在时间跟踪器pc上仅使用基于ncurses的接口时,我遇到了类似的问题,对我来说,问题是,当不存在任何窗口管理器时,普通的X Window应用程序的行为会很奇怪。这是我的建议:

  1. 安装杀毒窗口管理器
    须藤apt-get install ratpoison
    
  2. 取消绑定键盘的显示菜单或允许您执行终端或命令,将其放置在$ HOME / .ratpoisonrc中,主目录即为将要运行信息亭模式的用户
    解除绑定
    取消绑定抄送
    解开感叹号
    解开C-exclam
    解除期限
    
  3. 而不是直接调用google-chrome,而是放置一个您提到的指令(instructionables)之类的脚本
[桌面输入]
编码= UTF-8
名称=信息亭模式
Comment =铬亭模式
执行= / usr / share / xsessions / chromeKiosk.sh
类型=应用
  1. 在脚本上放这个(记住要使其可执行)
#!/ bin / bash
老鼠药 &
xscreensaver -nosplash和
虽然是真的 做铬浏览器--kiosk http://google.com; 睡5s;做完了

为我工作,使用Ubuntu 12.04和Chrome。


您也有一个很好的主意。+1
nanofarad 2012年

1

情况1

您需要通过重写铬的首选项文件(底部右侧的值)来告诉铬您的屏幕分辨率是什么。您发布的链接包括该部分。

#!/bin/bash

prefs=~/.config/chromium/Default/Preferences

cat $prefs |\
perl -pe "s/\"bottom.*/\"bottom\": $(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f2),/" \
> $prefs

cat $prefs |\
perl -pe "s/\"right.*/\"right\": $(xrandr | grep \* | cut -d' ' -f4 | cut -d'x' -f1),/" \
> $prefs

chromium-browser

(在Ubuntu 12.04中测试)

案例2

我要说的是,您必须以某种方式告诉您的pyGTK应用程序底部和右侧的值分别是什么,屏幕分辨率是什么。然后,全屏命令应使您的应用程序覆盖整个屏幕,即不留任何边界。

编辑:它看起来像window.fullscreen()方法通常应该使其真正全屏。因此,无需先定义分辨率。此处有更多信息,但我确定您已经知道这一点:http : //www.pygtk.org/docs/pygtk/class-gtkwindow.html#method-gtkwindow--fullscreen


0

在我的情况下,情况1帮助了我:

sudo nano sudo〜/ .config / chrium /默认/首选项

我根据屏幕分辨率更改了值

“ window_placement”:{“ bottom”:1024,“ left”:0,“ maximized”:true,“ right”:1280,“ top”:0,“ work_area_bottom”:1024,“ work_area_left”:0,“ work_area_right” :1280,“ work_area_top”:0}


我无法手动更改。
Juzer Ali 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.