Linux 启动自己的 GUI 应用,不进桌面

210 天前
 noisywolf

不想要装那一大堆桌面,有没有办法开机直接全屏进应用?

3051 次点击
所在节点    程序员
16 条回复
libook
210 天前
装窗口管理器,不装桌面,然后用命令行或在启动脚本里启动应用程序
noisywolf
210 天前
@libook 有介绍的文章推荐吗?
1rv013c6aiWPGt24
210 天前
@noisywolf 看看 i3 和 dwm
vvhy
210 天前
用 xorg 的话在.xinitrc 最后启动一个 terminal ,不启动桌面,参考 archwiki
kuanat
210 天前
取决于用途和场景,大致有几个思路,你可以按照关键词去搜对应的做法。

如果以安装的包来划分,整个显示框架大概有:Framebuffer 层( DRM/KMS ),Display Server 层( X.org/Wayland ),窗口管理器,桌面附加组件四层。FB 层肯定都有也不需要关心,Display Server 层必须要有一个,根据你的应用来选。按照你的描述,桌面( KDE/Gnome )这些都可以不要,窗口管理器可以有也可以没有。

这里以 X11 作为显示后端为例:

在某个 tty 启动 X session 。用到的命令就是 `startx`,后面可以直接跟你的 x11 应用,也可以跟 `xterm` 之类的 vte 终端,之后可以在终端里面按需启动 x11 应用。

这里对于 tty 的分配,以及对应到显示器需要你手动配置。如果你是 ssh 连接到远程服务器,需要 ssh x11 tunneling 。

如果需要窗口管理器,可以 `startx` 先启动窗口管理器,然后再启动对应的应用。
libook
210 天前
archwiki 上看看 xorg 词条
Tink
210 天前
.xinitrc
qaq44566
210 天前
wayland 的话用这个 https://github.com/cage-kiosk/cage
kkocdko
210 天前
我的建议是装 sway (
Iamsonny
210 天前
startx 原生 X11~最基本要求。
yolee599
210 天前
大多数嵌入式就是这样的啊,不用窗口管理器,x 也不用安装,直接写 framebuffer 或者 drm
GeekGao
210 天前
1. 假设在基于 Debian 的系统上,可以使用以下命令安装:

sudo apt-get update
sudo apt-get install xorg xorg-twm

2. 创建并编辑.twmrc 配置文件(.twmrc 文件允许你配置各种设置,比如字体、颜色、边框宽度、标题栏按钮等)

3. chmod +x ~/.xinitrc
编辑.xinitrc 文件。在这个文件中,你可以指定 TWM 作为窗口管理器,并在其后面列出你想要启动的应用程序:

#!/bin/sh
exec twm :1 -geometry 1024x768 -root :0.0
# 在这里添加你的自定义应用程序
# 例如,如果你的应用程序名为 myapp ,你可以这样做:
# exec myapp
L4Linux
210 天前
#5 说的 X11 的场景,Wayland 推荐用 cage 。
debuggerx
209 天前
如果是类似工控机点餐机那种,只需要开机打开一个图形应用然后点点点,那就直接 xinitrc 指定程序就行,参考:
https://wiki.archlinuxcn.org/wiki/Xinit#%E5%9C%A8%E6%B2%A1%E6%9C%89%E7%AA%97%E5%8F%A3%E7%AE%A1%E7%90%86%E5%99%A8%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F

但是这种方式不适合自用,比如输入法就不好搞,建议还是起一个最简单的窗管,除了上面别人提到了的 i3wm 这种平铺式,还可以考虑 openbox 这种配置简单的堆叠式窗管
wildlife
209 天前
以 Debian Server 开机启动 Chromium 为例:

使用 Xorg

```bash
sudo apt install -y xorg chromium fonts-noto*
sudo dpkg-reconfigure locales
sudo dpkg-reconfigure tzdata
nano ~/.xinitrc

#!/bin/bash
# xrandr >/tmp/x.log
sx=1920
sy=1080
# 禁用 DPMS
xset -dpms
# 禁用屏幕保护程序
xset s off
# 禁止屏幕空白
xset s noblank
xrandr --output HDMI-1 --mode ${sx}x${sy} --pos 0x0
xsetroot -solid red && sleep 1
xsetroot -solid green && sleep 1
xsetroot -solid blue && sleep 1
xsetroot -solid black
# xsetroot -bitmap /boot/backgroud.xbm && sleep 1
# feh --bg-scale /home/pi/133.jpg && sleep 2
chromium-browser --kiosk --incognito \
--window-size=${sx},${sy} --window-position=0,0 \
--app=https://www.baidu.com

nano ~/.bashrc
if [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx
fi

# 然后 systemd 设置一个用户自动登录 shell
```

使用 Wayland

```bash
sudo apt install -y weston chromium fonts-noto* wayland-utils
# man 5 weston.ini
nano ~/.config/weston.ini

[core]
#shell=kiosk-shell.so
idle-time=0
#xwayland=true

[shell]
background-image=/home/orangepi/background.jpg
background-type=scale-crop
clock-format=seconds-24h
#panel-position=none
locking=false

[output]
name=HDMI-A-1
mode=1024x600
#transform=rotate-90
#scale=2

#[xwayland]
#path=/usr/bin/Xwayland

[autolaunch]
path=/home/orangepi/launch.sh
watch=true

nano ~/launch.sh

#!/bin/bash
# weston-info >/tmp/w.log
wayland-info >/tmp/w.log
chromium --enable-features=UseOzonePlatform \
--ozone-platform=wayland \
--kiosk --incognito \
--window-size=1024,600 \
--window-position=0,0 \
--app=https://www.baidu.com

# 开机自启动 https://wayland.pages.freedesktop.org/weston/toc/running-weston.html#running-weston-from-a-systemd-service
```
AoEiuV020JP
209 天前
我有试过 vnc 不启动桌面直接启动 chrome ,
真的不好用,得小心翼翼的,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1044027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX