启动时执行单个程序,无菜单

启动时执行单个程序,无菜单

我正在尝试做类似信息亭的东西。

因此,我正在使用 Ubuntu-Builder 创建 Ubuntu Desktop 14.04 的自定义安装,我只是想让程序在启动时立即启动。我不希望显示顶部的全局菜单栏,也不希望显示带有应用程序快捷方式的侧边栏。我只想让程序以全屏方式执行,即使用户退出该程序也是如此。顺便说一下,该程序已经以全屏方式运行。

我尝试删除 Unity,但当我这样做时,Ubuntu 启动时提示无法登录 Ubuntu。有人有什么建议吗?

这是我尝试过的:

sudo apt-get autoremove --purge unity unity-common unity-services unity-lens-* unity-scope-*

我也遇到了程序在启动时启动的问题,因为我习惯将要执行的程序添加到用户 .profile 中。对此还有什么建议吗?

提前致谢。

答案1

在构建 Kiosk 时,我首先会列出预期的行为。从您的问题来看,Kiosk 的预期行为应该是:

  • 单个图形应用程序全屏运行
  • 该图形应用程序在服务器启动时自动启动
  • 如果用户能够停止应用程序(故意或出现错误后),则应重新启动该应用程序。

我认为你的做法是从一个完整的桌面开始,然后试图删除不必要的东西(比如 Unity),这不是正确的做法。根据我自己的经验,我会寻找实现上述目标所需的最小组件是什么。

对我来说,最小的组件是:

  • X 服务器,在系统启动时自动启动,无需用户登录(无需任何层,如孕期, ETC。
  • 一个 Windows 管理器(用于绘制和管理应用程序本身的窗口),可以删除标题栏的最小化、最大化、关闭等按钮。(如果您的应用程序默认已经全屏,则此组件是可选的。)
  • 一个脚本,用于检查应用程序是否仍在运行,若未运行则重新启动它。

因此,从 Ubuntu Server 安装开始,如果不安装任何图形组件,您至少必须安装韓國( sudo apt-get install xorg)。
从命令行,您始终可以使用 启动 X 服务器startx
要与 X 服务器一起启动图形应用程序,您必须创建一个.xsession文件,其目的是告诉 X 服务器在 X 服务器本身之后启动哪个应用程序。

答案2

我有涵盖了这一点在网站上和我的博客上都发过几次(来自Ubuntu 服务器(推荐)或来自Ubuntu 桌面)。

我不会费力地尝试选择性地从传统的 Ubuntu 桌面中解脱出来,只需加载 X 和应用程序即可。这听起来很棘手,但它相当基础,仅涉及几个任务:

  • 禁用 LightDM(如果已安装),这通常会启动我们的 X 会话(echo manual | sudo tee /etc/init/lightdm.override
  • 告诉 X 任何人都可以启动实例(sudo dpkg-reconfigure x11-common
  • 创建一个新的 Upstart 服务,启动 X 并直接运行脚本或应用程序。

新的 Upstart 脚本是整个项目中最重要的元素,但大致包括以下内容:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

console output
emits starting-x

respawn

exec sudo -u pranay startx /etc/X11/Xsession /path/to/application --

您可以将其保存为类似 的内容/etc/init/kiosk.conf

答案3

我真的不太明白你的问题,但从我得到的信息来看,你已经删除了 Unity 栏,对吗?如果是,那么这可能是问题所在,因为许多人报告说在删除 Unity 后出现了问题,但尚未找到解决方案,因此请尝试恢复到原始设置,至于全屏,F11 会让大多数应用程序全屏,Firefox、chromium、libreoffice 等。许多游戏应用程序已经全屏打开,所以你可以把任务设置为在打开这些应用程序时按 F11,而不是修改补丁。

暂时使应用程序全屏显示(一个会话)

- 更改屏幕分辨率,使其仅适合应用程序

-对于更永久的东西,你可以改变 xrandr(注:这是有风险的事情,要小心)

相关内容