页次: 1
最近接触了bspwm,觉得它配xterm挺好看的,就想把它做成开机自启动。
我的想法是在.zshrc里加一句 startx
然后在.xinitrc里加bspwm和xterm&.
结果是启动X后会显示 Only console user are allow to run the X server...
我知道是因为xterm启动时又会加载一次.zshrc,导致出错。
我想问一下,要达到我的目的,应该怎么做呢?感觉自己的思路不太对:)
离线
你需要 lightdm 啦……
离线
把startx写在.zprofile或者.zlogin而不是.zshrc里大概可以?
注意终端和tmux都得用non-login shell
最近编辑记录 quinoa2a (2019-04-15 03:45:24)
离线
你们不要再想奇怪的办法了。用个登录管理器啊。不想用的话也可以写 systemd user service 啊。
离线
谢谢楼上两位。
用lightdm是不是有点大材小用啦?
写user service会不会开机直接进入到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)了.
离线
Type=forking ? 好久没用 startx 了不太记得了。
另外 WantedBy=default.target。
离线
只由login shell执行的脚本当然应该放到profile里而不是rc里了。。。
另外zsh也提供了判断当前shell是不是login shell的办法。
p.s.
@依云 dm这种东西明明就是很多余嘛:-)
最近编辑记录 yw662 (2019-05-04 06:02:54)
ecmascript是世界上最好的语言
离线
用startx做用户shell行不?这样就没zsh什么事了,到xterm启动的时候再说。
而且即使按楼主的,最多xterm里的shell启动失败,关桌面什么事?
楼主也没说那个错误是哪里显示的。
. xinitrc的写法也不对,应该是xterm&; exec bspwm;
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
为什么我觉得xinitrc里面应该只有exec bspwm,而xterm应该在bspwm的配置文件里才对
ecmascript是世界上最好的语言
离线
为什么我觉得xinitrc里面应该只有exec bspwm,而xterm应该在bspwm的配置文件里才对
是好的呀。桌面上的自启动全给桌面自己搞,好的呀。其实要不是它叫什么bspwm我都不知道他是个窗口管理器唷。
以及讲道理,至今为止我都觉得Xorg啦,WM啦,pulseudio啦之类的东西放user service怪怪的,那个玩意不就是用来运行service吗?所有用户交互的功能都不应该是service不是吗?
然后pulseaudio确实总是一个user service,如果用了DM,Xorg也运行在DM service里,我也不是很懂session切换的时候音乐是怎么停掉的,画面是怎么更新的,为啥两个session不会抢同一个seat
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
所有用户交互的功能都不应该是service不是吗?
nginx? sshd?
离线
nginx? sshd?
这俩哪里跟用户交互啦?Getty或者Display Manager才是真的需要用户交互的service,不得不做成service的进程,因为负责本地用户登录认证。
sshd远程登录根本不需要本地IO设备啊
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
依云 说:nginx? sshd?
这俩哪里跟用户交互啦?Getty或者Display Manager才是真的需要用户交互的service,不得不做成service的进程,因为负责本地用户登录认证。
sshd远程登录根本不需要本地IO设备啊
用户拿浏览器访问 nginx 啊,用户拿 ssh 客户端连上 sshd 还不停地跟它说话啊。网络 I/O 不是 I/O 啊。
离线
页次: 1