我尝试使用 xinit 在没有窗口管理器的情况下启动全屏应用程序,它可以工作,但应用程序不是从屏幕左上角启动,而是从屏幕中间的某个地方启动。
我尝试使用 /usr/share/xsessions 中的自定义条目进行相同的操作,并从 lightdm 而不是默认的 ubuntu 窗口管理器启动它,但结果相同。
然后我将我的应用程序添加到 ubuntu 窗口管理器的启动应用程序中,并且运行正常...但我不想启动整个桌面
因此我在想,也许一个简单的窗口管理器将允许我定义我的应用程序应在加载后立即启动,因此它将全屏显示并从屏幕的左上角开始。
因此,基本上,窗口管理器将允许我禁用除我的应用程序之外的所有内容。(并且背景默认应为完全黑色,以便屏幕在我的应用程序加载完成之前保持黑色
答案1
这Ratpoison 窗口管理器就是你想要的。
安装 ratpoison
sudo apt-get install ratpoison
创建一个用户并让该用户自动登录。
在 /usr/share/xsessions/kiosk.desktop 中创建桌面文件
[Desktop Entry] Encoding=UTF-8 Name=Browser Mode Comment=Kiosk desk Session Exec=/usr/share/xsessions/run_kiosk.sh Type=Application`
创建 /usr/share/xsessions/run_kiosk.sh。修改以下内容即可开始使用
#!/bin/bash /usr/bin/ratpoison & TERMINAL=`who | awk '{print $2}'` if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval 'dbus-launch --sh-syntax --exit-with-session' fi rm -Rf ~/.config/google-chrome dbus-launch /usr/bin/google-chrome --no-default-browser-check rm -Rf ~/.config/google-chrome kill `ps | grep dbus-launch | grep -v grep | awk '{print $1}'`
每次启动时都会重置 Chrome。使用默认偏好设置来
/opt/google/chrome/master_preferences
按您的需要设置 Chrome。将默认桌面设置为 kiosk:
sudo /usr/lib/lightdm/lightdm-set-defaults -s kiosk
答案2
看一下超棒的窗口管理器;它是一个平铺窗口管理器。它非常轻量。
您可以将其配置为默认全屏布局,黑色背景 - 请查看 wiki 来了解配置系统,您情况下的最小配置可能包含以下内容:
需要依赖项:
require("awful")
require("awful.layout")
require("awful.util")
require("awful.tag")
require("screen")
require("freedesktop.utils")
require("freedesktop.desktop")
使用以下方法将布局限制为全屏:
layouts =
{
awful.layout.suit.max.fullscreen
}
现在为您的应用程序定义一个标签:
-- {{{ Tags
-- Define a tag table which will hold all screen tags.
tags = {
names = {"your_app" },
layout = {layouts[1]}
}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag(tags.names, s, tags.layout)
end
-- }}}
要启动您的应用程序,请将以下内容添加到配置的末尾:
awful.util.spawn("/usr/bin/your_app --with --options")
答案3
我没有亲身体验过,但搜索“linux kiosk”会得到很多结果,其中最上面的是http://www.techrepublic.com/blog/doityourself-it-guy/diy-tiny-core-linux-a-great-kiosk-and-emergency-platform/1565