![情况1](https://linux22.com/image/963049/%E6%83%85%E5%86%B51.png)
我正在尝试通过在文件夹中创建 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 应该是全屏的。
如果我使用自定义pyGTK
或gtkmm
应用程序,我应该如何解决这个问题。window.fullScreen()
应该占据整个屏幕区域。这必须通过编程或其他可扩展的方式完成。我必须在位于不同地理区域的大量机器上部署它。在每台机器上手动执行此操作是不可能的。
答案1
这是一个棘手的问题,我遇到过类似的问题,当尝试在时间跟踪器 PC 上仅使用基于 ncurses 的界面时,对我来说,问题是当没有窗口管理器时,正常的 X Window 应用程序会表现异常。这是我的建议:
- 安装 ratpoison 窗口管理器
安装 ratpoison
- 解除键盘绑定,显示菜单或允许您执行终端或命令,将其放入$HOME/.ratpoisonrc家庭是运行自助服务终端模式的用户
解除绑定 解除抄送绑定 解除惊呼 解除 C-exclam 绑定 解除绑定期
- 不要直接调用 google-chrome,而是放置一个像你提到的 instructables 链接这样的脚本
[桌面条目] 编码=UTF-8 名称 = Kiosk 模式 评论=Chromium Kiosk 模式 执行=/usr/share/xsessions/chromeKiosk.sh 类型=应用程序
- 在脚本中输入这个(记得让它可执行)
/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}