Linux 命令可以自动登录到特定的桌面环境会话类型吗

Linux 命令可以自动登录到特定的桌面环境会话类型吗

所以有一点背景,我将我的电脑设置为从 TTY 启动,然后当我想要进入桌面环境时,我会启动登录管理器。

# Upon install setting the TTY as default start state
sudo systemctl set-default multi-user.target
# to start desktop enviornment each startup has to enter
sudo systemctl start sddm

问题是每当我进入这些状态变化时,我都必须多次登录并多次更改设置。因此,当我启动我的电脑时,它会要求输入用户名和密码。然后我为上面的代码设置了一个别名,这要求确认 sudo 的密码,然后登录管理器启动,我必须选择登录用户以及会话(plasma(xorg)、plasma(wayland)、awesome、gnome),然后再次输入我的密码。总共,1 个别名命令,输入 3 个密码,切换 2 个 GUI 选项,全部只是为了进入桌面环境。似乎其中大部分都是不必要的。

我想做的是:不必登录 sddm,是否可以使用一个 bash 命令来启动登录管理器,选择一个会话并登录到已经登录到 TTY 的用户帐户。这样我就可以将其放入别名并输入它。(这意味着我需要为每种会话类型使用不同的别名,但这不是问题,实际上很理想。也意味着我需要登录 tty 才能更改用户,但这样也可以)

这会将工作流程更改为:startpc -> 登录 -> 桌面别名并完成

任何信息都将不胜感激。这不是 SDDM 的选项吗?我需要更改一些设置吗?目前我甚至找不到与此主题相关的任何内容。提前谢谢您!

答案1

您可以启用自动登录在 sddm 中,并禁用 sudo 密码。但这可能会导致安全问题,并且您将无法选择会话。

显示管理器不是实现此目的的最佳方法。从拱门维基

显示管理器或登录管理器通常是一种图形用户界面,它在启动过程结束时代替默认 shell 显示。

换句话说,sddm 旨在代替你的登录 shell。

一个更好的解决方案是使用,它可以完全实现您所描述的目的,只是无需通过 sddm xinit。使用 复制默认配置cp /etc/X11/xinit/xinitrc ~/.xinitrc,然后在文件末尾添加类似这样的内容:

# Here kde is kept as default
session=${1:-kde}

case $session in
    awesome           ) exec awesome;;
    kde               ) exec startplasma-x11;;
    # Add more session as desired

    # No known session, try to run it as command
    *                 ) exec $1;;
esac

然后运行startx kde或其他会话。

来源:https://wiki.archlinux.org/title/Xinit#Switching_between_desktop_environments/window_managers

或者,启用 sddm 以systemctl enable sddm在启动时启动 sddm。

相关内容