情况1

情况1

我正在尝试通过在文件夹中创建 custom.desktop 文件来创建自定义会话/usr/share/xesessions。请记住,这不是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 浏览器以信息亭模式启动,但无法捕获完整的屏幕区域。屏幕底部和右侧留下了一些区域。


案例 2

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

custom.desktop 文件的内容

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

问题

我的自定义 pyGTK 应用程序已包含window.fullScreen()在代码中。这意味着它应该以全屏方式打开,没有窗口镶边(在正常会话下确实如此)。但这也会在它周围留下大量空间。

需要帮忙

有人能告诉我这是怎么回事吗?我认为这是边界问题,正如http://www.instructables.com/id/Setting-Up-Ubuntu-as-a-Kiosk-Web-Appliance/?ALLSTEPS在步骤 8

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

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

答案1

这是一个棘手的问题,我遇到过类似的问题,当尝试在时间跟踪器 PC 上仅使用基于 ncurses 的界面时,对我来说,问题是当没有窗口管理器时,正常的 X Window 应用程序会表现异常。这是我的建议:

  1. 安装 ratpoison 窗口管理器
    安装 ratpoison
    
  2. 解除键盘绑定,显示菜单或允许您执行终端或命令,将其放入$HOME/.ratpoisonrc家庭是运行自助服务终端模式的用户
    解除绑定
    解除抄送绑定
    解除惊呼
    解除 C-exclam 绑定
    解除绑定期
    
  3. 不要直接调用 google-chrome,而是放置一个像你提到的 instructables 链接这样的脚本
[桌面条目]
编码=UTF-8
名称 = Kiosk 模式
评论=Chromium Kiosk 模式
执行=/usr/share/xsessions/chromeKiosk.sh
类型=应用程序
  1. 在脚本中输入这个(记得让它可执行)
/bin/bash #!/bin/bash
老鼠药 &
xscreensaver -nosplash &
当 true 时;执行 chromium-browser --kiosk http://google.com;睡眠 5 秒;完成

对我有用,使用 Ubuntu 12.04 和 chromium。

答案2

情况1

您需要通过重写 Chromium 的首选项文件来告诉 Chromium 您的屏幕分辨率是多少(底部正确的值)。您发布的链接包含该部分。

#!/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

答案3

案例 1 就我而言,这对我有帮助:

sudo nano sudo ~/.config/chrium/Default/Preferences

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

“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}

相关内容