我有 Ubuntu 服务器 16.04。安装了 gtk3 并可以通过以下命令手动执行我的程序:./img
当我进入它的目录时/home/m
。
但是当我尝试将此行添加到我的/etc/rc.local
文件中时:
/home/m/img &
它不起作用。这是我的rc.local
全部内容:
startx
/home/m/img &
exit 0
然后我尝试创建~/.xinitrc
包含以下内容的文件:
#!/usr/bin/env bash
/home/m/img &
exec openbox-session
然后通过以下命令使其可执行:
chmod +x ~/.xinitrc
但我什么也没得到(即使重启后没有显示我的 openbox),所以我也执行了这个命令:
ln -s ~/.xinitrc ~/.xsession
之后我的 openbox 回来了,但我的程序在启动后没有启动!或任何其他时间!
我的目标是这样的:当我打开主板时,启动后,它会运行基于 gtk 的程序并显示我的图像。它类似于 Kiosk,但 C++ 程序应该只显示图像!
我该怎么做呢?
编辑:我确实添加了这一行:
/home/m/img &
到我的/etc/xdg/openbox/autostart
文件中,它在登录后可以工作,但不显示我的图像,它仅在屏幕中心显示一个文件图标。但是当我转到这个地址/home/m/
并运行这个命令时./img
,它会全屏显示我的图像!
为什么会出现这种情况?
**我也喜欢隐藏我的鼠标指针和窗口边框,但不知道如何?
答案1
**我也喜欢隐藏我的鼠标指针和窗口边框,但不知道如何?
您可以附加-- -nocursor
到您的startx
隐藏鼠标指针:
exec startx -- -nocursor
有文件~/.config/openbox/rc.xml
供/etc/xdg/openbox/rc.xml
您编辑(参考:http://openbox.org/wiki/Help:配置) ,例如(该文件的底部):
...
</menu>
<applications>
<application class="*">
<decor>no</decor>
<position force="yes">
<x>50</x>
<y>50</y>
<monitor>1</monitor>
</position>
<size>
<width>300</width>
<height>300</height>
</size>
<focus>yes</focus>
<desktop>1</desktop>
<layer>normal</layer>
<iconic>no</iconic>
<skip_pager>no</skip_pager>
<skip_taskbar>no</skip_taskbar>
<fullscreen>no</fullscreen>
<maximized>false</maximized>
</application>
</applications>
</openbox_config>
其中<decor>no</decor>
上述将使图像应用程序变得无边框。调整<width>
,<height>
如果您发现图像未显示完整尺寸。您还可以调整应用程序的 , <x>
。<y>
还有更多,例如注释掉菜单标签(有多个<context
标签有此条<menu>
目):
<mousebind button="Right" action="Press">
<action name="ShowMenu">
<!-- menu>root-menu</menu -->
</action>
</mousebind>
它将禁用右键单击显示菜单(startx -- -nocursor
隐藏鼠标光标不会阻止您右键单击打开菜单)。
还有openbox/menu.xml
自定义右键菜单项,eg:
<item label="Run Image app">
<action name="Execute"><execute>/home/m/img</execute></action>
</item>
您可以选择右键菜单项Reconfigure
一次menu.xml
或rc.xml
编辑后生效。
我也发布了答案这里,解决非root自动启动问题。
答案2
使用 openbox(这是您根据其中一个日志使用的),为单个用户打开图形应用程序(登录后)的更好选择是使用~/.config/openbox/autostart
.
对于所有用户,请尝试/etc/xdg/openbox/autostart
.