我已经全新安装了 Ubuntu 14.04 LTS 桌面,现在想要将其转换为带有全屏网络浏览器的信息亭。
这之前是在 10.04 中完成的并且运行良好,但由于硬件变化(图形),我们被迫使用版本 14.04。
我在 中创建了 kiosk.desktop/usr/share/xsessions
和一个名为的 shell 脚本kiosk.sh
,用于启动r-kiosk
已安装的 Firefox。该 shell 脚本是可执行的。名为“kiosk”的用户设置为自动登录(在 中/etc/lightdm/lightdm.conf
)。
但现在我陷入了困境。我希望kiosk.sh
在信息亭用户会话启动时运行。
在以前的版本中,这可以在 GUI 工具“登录屏幕设置”或在中完成/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
。
我已经改为了50-ubuntu.conf
,"user-session=kiosk"
但是无法启动。找不到“登录屏幕设置”工具。它在 14.04 中被其他实用程序取代了吗?
kiosk.sh.desktop
放置一个~/kiosk/.config/autostart works
,但在 Firefox 以全屏模式启动之前会显示 gnome-desktop,从而使用户可以与桌面进行交互。
用户自动登录后,以全屏方式启动 Firefox 的正确/最佳方法是什么?
谢谢
托马斯
答案1
我个人会避开所有这些lightdm
事情Xsession
,只需启动我自己的 X 实例,然后启动 Firefox。听起来很可怕,但真的 使用一些 Upstart 脚本即可
start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
console output
emits starting-x
respawn
exec sudo -u thomas startx /etc/X11/Xsession /path/to/kiosk.sh --
显然,将用户名更改为您想要以何种用户身份运行此程序,但基本就是这样。将其另存为/etc/init/x.conf
,然后您就可以sudo start x
离开了(它将在启动时加载)。如果 Firefox 崩溃,它将使用新实例重新加载 X。
如果你已经安装了完整的 Ubuntu,你可能必须先禁用 LightDM:
sudo stop lightdm
echo manual | sudo tee /etc/init/lightdm.override
您的 Firefox 配置文件完全由您决定。您甚至可能希望编写一些配置文件恢复脚本,这样如果有人破坏了您的配置文件,您只需重新启动服务,x
它就会再次使用干净的副本。只是一个想法。
我后来写了一篇博客文章使用 14.04 和 Chrome 从头创建 Kiosk。
对于您的无线配置问题,我建议尽量避免让普通用户接触。您可以相当简单地使用 TTY 建立连接:
sudo nmcli dev wifi con <SSID> password <password>
这应该会将连接添加到系统并连接(将来会自动连接),但我还没有测试过。它甚至可能不需要,sudo
但这一切都取决于您的主用户拥有哪些权限。
与在后台加载其他内容相比,这里唯一的好处是,某些路人不可能访问图形网络设置对话框。它确实需要操作员能够遵循说明。
如果他们不能解决这个问题,你可以相当轻松修改您的kiosk.sh
以查找现有连接并询问一些zenity
输入到上一个nmcli
命令中的问题:
if [[ $(nmcli con | wc -l) == 1 ]]; then
SSID=$(zenity ...)
PASS=$(zenity ...)
nmcli dev wifi con $SSID password $PASS
fi
这只是一个粗略的想法。你需要努力实现它。也许有更好的独立图形网络管理器配置应用程序。