You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Arch Linux(X11环境)下自动启动多SDDM会话(KDE Plasma与Kodi分用户分TTY)

如何在Arch Linux(X11环境)下自动启动多SDDM会话(KDE Plasma与Kodi分用户分TTY)

我明白你要的是什么——手动通过「切换用户」能实现的效果,要改成开机自动跑:两个SDDM会话,一个KDE Plasma在TTY1,一个Kodi在TTY2,最好还能自动登录,不想折腾手动startx那套。其实这个需求完全可以通过SDDM多实例配置+systemd服务来实现,我给你一步步拆解:

步骤1:配置KDE用户的TTY1自动登录

首先让你的KDE用户在默认TTY1自动登录,创建SDDM的自动登录配置文件:

sudo mkdir -p /etc/sddm.conf.d
sudo nano /etc/sddm.conf.d/autologin-plasma.conf

填入以下内容(替换plasma_user为你的KDE用户名):

[Autologin]
User=plasma_user
Session=plasma.desktop
Relogin=false

Relogin=false是为了避免会话意外重启时的冲突,保证只启动一次。

步骤2:为Kodi用户创建独立的SDDM配置

接下来给Kodi用户做专属的SDDM配置,确保它在TTY2启动并自动登录:

sudo nano /etc/sddm.conf.d/kodi.conf

填入以下内容(替换kodi_user为你的Kodi专用用户名):

[General]
DisplayServer=x11
Greeter=/usr/lib/sddm/sddm-greeter

[Autologin]
User=kodi_user
Session=kodi.desktop
Relogin=false

[X11]
ServerPath=/usr/bin/X
ServerArgs=-nolisten tcp

这里明确指定用X11(符合你的需求),并且配置了X服务器的路径和参数,避免和主会话的X服务冲突。

步骤3:创建systemd服务启动第二个SDDM实例(TTY2)

我们需要一个systemd服务来在主SDDM启动后,在TTY2启动专属的Kodi SDDM实例:

sudo nano /etc/systemd/system/sddm-kodi.service

填入以下内容:

[Unit]
Description=SDDM Kodi Session on TTY2
After=systemd-user-sessions.service sddm.service

[Service]
Type=simple
ExecStart=/usr/bin/sddm --socket /run/sddm-kodi.socket --tty 2 --config /etc/sddm.conf.d/kodi.conf
User=root
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • After参数确保这个服务在主SDDM和用户会话服务启动后再运行,避免时序问题
  • --socket指定独立的socket文件,防止和主SDDM实例的socket冲突
  • --tty 2明确指定在TTY2启动这个实例
  • Restart=on-failure保证如果启动失败会自动重试

步骤4:启用并测试服务

先重载systemd配置,然后启用服务并测试:

sudo systemctl daemon-reload
sudo systemctl enable sddm-kodi.service
# 先手动启动测试,没问题再重启
sudo systemctl start sddm-kodi.service

现在按Ctrl+Alt+F2切换到TTY2,应该能看到Kodi自动登录完成的界面;切回Ctrl+Alt+F1就是你的KDE桌面,完美实现手动切换的自动版。

可能遇到的坑&排查技巧

  • Kodi会话文件缺失:如果提示找不到kodi.desktop,检查/usr/share/xsessions/目录,没有的话安装kodi-x11包(Arch官方仓库里有)
  • TTY冲突:确保TTY2没有被其他服务占用,默认SDDM用TTY1,TTY2是空闲的,一般不会有问题
  • 日志排查:如果启动失败,查看主SDDM日志/var/log/sddm.log,也可以在kodi.conf里加一行LogFile=/var/log/sddm-kodi.log来单独记录Kodi实例的日志,方便定位问题
  • 权限问题:如果Kodi无法访问硬件(比如视频、音频),确保kodi_user加入了对应的用户组(比如videoaudioinput),手动登录正常的话一般不需要额外调整

备注:内容来源于stack exchange,提问作者j0hny

火山引擎 最新活动