您尚未登录。

#1 2019-04-14 17:24:56

tan9p
会员
注册时间: 2015-07-07
帖子: 43

如何登录后自动启动bspwm?

最近接触了bspwm,觉得它配xterm挺好看的,就想把它做成开机自启动。
我的想法是在.zshrc里加一句 startx
然后在.xinitrc里加bspwm和xterm&.

结果是启动X后会显示 Only console user are allow to run the X server...
我知道是因为xterm启动时又会加载一次.zshrc,导致出错。

我想问一下,要达到我的目的,应该怎么做呢?感觉自己的思路不太对:)

离线

#2 2019-04-14 17:37:18

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 5,126
个人网站

Re: 如何登录后自动启动bspwm?

你需要 lightdm 啦……

离线

#3 2019-04-15 03:43:24

quinoa2a
懒惰是第二生产力,而第一则是deadline
注册时间: 2019-02-02
帖子: 12
个人网站

Re: 如何登录后自动启动bspwm?

把startx写在.zprofile或者.zlogin而不是.zshrc里大概可以?
注意终端和tmux都得用non-login shell

最近编辑记录 quinoa2a (2019-04-15 03:45:24)

离线

#4 2019-04-15 12:18:25

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 5,126
个人网站

Re: 如何登录后自动启动bspwm?

你们不要再想奇怪的办法了。用个登录管理器啊。不想用的话也可以写 systemd user service 啊。

离线

#5 2019-04-15 20:15:37

tan9p
会员
注册时间: 2015-07-07
帖子: 43

Re: 如何登录后自动启动bspwm?

谢谢楼上两位。
用lightdm是不是有点大材小用啦?
写user service会不会开机直接进入到bspwm,从而没法登陆呀?

离线

#6 2019-04-17 12:36:33

tan9p
会员
注册时间: 2015-07-07
帖子: 43

Re: 如何登录后自动启动bspwm?

依云 说:

你们不要再想奇怪的办法了。用个登录管理器啊。不想用的话也可以写 systemd user service 啊。

依云大侠,我加user service,但是没法用,您能帮忙看下问题出在哪吗?。

在/etc/systemd/user/下增加startx.service文件,内容如下
[Unit]
[Service]
ExecStart=/usr/bin/startx
[Install]
WantedBy=multi-user.target
然后 systemctl --user enable startx
重启,发现登录后无法进入X界面.
systemctl --user status startx
显示其已经deactive(dead)了.

离线

#7 2019-04-17 12:58:26

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 5,126
个人网站

Re: 如何登录后自动启动bspwm?

Type=forking ? 好久没用 startx 了不太记得了。
另外 WantedBy=default.target。

离线

#8 2019-05-04 05:58:44

yw662
大会员
注册时间: 2018-10-10
帖子: 154

Re: 如何登录后自动启动bspwm?

只由login shell执行的脚本当然应该放到profile里而不是rc里了。。。

另外zsh也提供了判断当前shell是不是login shell的办法。

p.s.
@依云 dm这种东西明明就是很多余嘛:-)

最近编辑记录 yw662 (2019-05-04 06:02:54)


ecmascript是世界上最好的语言

离线

#9 2019-05-04 11:11:23

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 699

Re: 如何登录后自动启动bspwm?

用startx做用户shell行不?这样就没zsh什么事了,到xterm启动的时候再说。
而且即使按楼主的,最多xterm里的shell启动失败,关桌面什么事?
楼主也没说那个错误是哪里显示的。
. xinitrc的写法也不对,应该是xterm&; exec bspwm;

离线

#10 2019-05-04 11:37:51

yw662
大会员
注册时间: 2018-10-10
帖子: 154

Re: 如何登录后自动启动bspwm?

为什么我觉得xinitrc里面应该只有exec bspwm,而xterm应该在bspwm的配置文件里才对


ecmascript是世界上最好的语言

离线

#11 2019-05-04 20:11:44

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 699

Re: 如何登录后自动启动bspwm?

yw662 说:

为什么我觉得xinitrc里面应该只有exec bspwm,而xterm应该在bspwm的配置文件里才对

是好的呀。桌面上的自启动全给桌面自己搞,好的呀。其实要不是它叫什么bspwm我都不知道他是个窗口管理器唷。

以及讲道理,至今为止我都觉得Xorg啦,WM啦,pulseudio啦之类的东西放user service怪怪的,那个玩意不就是用来运行service吗?所有用户交互的功能都不应该是service不是吗?

然后pulseaudio确实总是一个user service,如果用了DM,Xorg也运行在DM service里,我也不是很懂session切换的时候音乐是怎么停掉的,画面是怎么更新的,为啥两个session不会抢同一个seat

离线

#12 2019-05-04 21:20:01

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 5,126
个人网站

Re: 如何登录后自动启动bspwm?

xtricman 说:

所有用户交互的功能都不应该是service不是吗?

nginx? sshd?

离线

#13 2019-05-04 23:05:41

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 699

Re: 如何登录后自动启动bspwm?

依云 说:

nginx? sshd?

这俩哪里跟用户交互啦?Getty或者Display Manager才是真的需要用户交互的service,不得不做成service的进程,因为负责本地用户登录认证。

sshd远程登录根本不需要本地IO设备啊

离线

#14 2019-05-05 00:14:20

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 5,126
个人网站

Re: 如何登录后自动启动bspwm?

xtricman 说:
依云 说:

nginx? sshd?

这俩哪里跟用户交互啦?Getty或者Display Manager才是真的需要用户交互的service,不得不做成service的进程,因为负责本地用户登录认证。

sshd远程登录根本不需要本地IO设备啊

用户拿浏览器访问 nginx 啊,用户拿 ssh 客户端连上 sshd 还不停地跟它说话啊。网络 I/O 不是 I/O 啊。

离线

页脚