本文不是教程,而是对笔者主观认为实用的一些命令行参数的归纳,因而并不具备系统性。

我想,如果你真的希望了解这些的话,man或ArchWiki之中至少有一个可以帮助你进阶。

先决条件

1
2
3
4
## 环境
## 上位机通过SSH连到下位机,下位机登录X会话的用户与SSH相同
## X是屏幕编号
export DISPLAY=:X

利用这个也可以实现X11-forwarding

xset显示器节能相关参数

1
2
3
4
5
## 使用xset dpms设置显示器进入待机、挂起、关闭的参数,单位是秒,设为0则代表禁用
## standby_time: 待机超时时间
## suspend_time: 挂起超时时间
## off_time: 关闭超时时间
xset dpms [standby_time] [suspend_time] [off_time]

相应地,如果要完全禁用息屏,就这样:

1
2
3
## The 's' option lets you set the screen saver parameters.
xset s off
xset dpms 0 0 0

使用xset开关显示器

1
2
3
4
5
## 开
xset dpms force on

## 关
xset dpms force off

使用xrandr控制显示器亮度

1
2
3
## display: 显示器名
## brightness: 亮度,正常取0-1及其之间的浮点数
xrandr --output [display] --brightness [brightness]

TTY下的自动登录

前提:systemctl set-default multi-user.target使机器启动后进入命令行

1
2
## 启动getty服务
sudo systemctl enable getty@ttyS0.service

修改/etc/systemd/system/getty.target.wants/getty@ttyS0.service

1
2
3
4
5
## ……
[Service]
## ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
## 把[user]改为自动启动的用户名
ExecStart=-/sbin/agetty --autologin [user] --noclear %I $TERM

chvt切换虚拟终端

1
2
3
## N表示虚拟终端编号,0-7
## 需要root权限
chvt N

奇技淫巧·后台运行Display Manager

前提:systemctl set-default multi-user.target使机器启动后进入命令行

在tty启动lightDM服务并切换到tty7的一瞬间,切回tty1。

rundm.sh

1
2
#!/bin/bash
./chvt1.sh & systemctl start lightdm

chvt1.sh

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

count=0
declare -i count

while [ $count -lt 2048 ];
do
chvt 1
sleep 0.2
done

.xinitrc

在没有显示管理器(Display Manager)的情况下,通过startx可以从虚拟控制台进入图形界面,而X client需要运行会话的脚本.xinitrc

X Client会优先执行~/.xinitrc,如果不存在则执行/etc/X11/xinit/xinitrc。在以上二者都不存在的情况下,X Client会执行XTerm

比如,如果lightDM的默认会话是KDE Plasma,但我希望tty1执行startx后进入OpenBox,那么——

~/.xinitrc

#!/bin/bash
exec openbox

待续