衔接
由于修改论文,所以博客更新中断。现在继续更新,现在已经从树莓派迁移到正经的 x86 PC 上面了。也安装了 Fedora 38 Sway 的版本。
配制
基本配置采用了 Fedora 38 Sway 版本的配置,因为这个配置比我之前字迹配置的要好看一些。
Sway 配制
采用的 Sway 配置和相关使用的软件。然后另一件事情是将配置文件拆分成了多个文件。创建一个 config.d
文件夹,把官方的配置都放进去。
然后默认的 config 文件就变成了:
# include configs:
include "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf"
然后我把相关的配置分成了若干个部份,按照现在比较流行的序号-名称
的方式进行命名:
序号 | 名称 | 说明 |
---|---|---|
00 | 00-variables.conf |
用来配置变量的,比如 $mod 这个 logo key |
10 | 10-xwayland-conf |
配置 xwayland 的,当然这个里面目前就一个 xwayland enable |
20 | 20-output.conf |
配置显示器显示屏输出的,后面细说 |
20 | 21-background.conf |
配置桌面背景的 |
30 | 30-bindings*.conf |
默认的按键按照个人喜好修改了一下,然后按照个人喜好再拆分一下 |
50 | 50-statusbar.conf |
配置 sway status bar,须要安装 waybar |
50 | 50-swayidle.conf |
配置 锁屏页面 |
50 | 50-titlebar.conf |
窗口的 title bar,配置字体和 title bar 的行为 |
60 | 60-rules-*.conf |
官方自带的一些配置,就直接复制过来了 |
90 | 90-autostart.conf |
自动启动的相关内容,须要啥添加啥 |
99 | 99-others.conf |
其他的内容 |
这些配置,通过 manual page 就可以查到,
man 5 sway
。这里的 5 千万不能忘记,因为还存在一个man 1 sway
。
显示器/屏输出配置
官方由详细的说明,参考
man 5 sway-output
。
实际上可以不进行配置,但是吧,这个默认的配置,还是有问题,比如桌面的位置和大小和方相。
我这里用到了几个配置 (其中 {DIS}
是显示器的名子,下面解释如何查看):
命令 | 解释 |
---|---|
output {DIS} pos {x} {y} |
将显示器的位置(左上角的位置),设定道执行的坐标 {x} 和 {y} 这两个位置 |
output {DIS} transform {r} |
将显示器的屏幕进行旋转角度 {r} |
output {DIS} scale {s} |
将显示器进行缩放(类似 windows 的那个),比例是 {s} (这里不是百分比) |
output {DIS} resolution {w}x{h}@{f}Hz |
这个是指定屏幕分辨率与刷新率的,例如 1920x1080 |
workspace {NUM} output {DIS} |
将工作区绑定到指定的指定的显示器上 |
对于这个位置的设定,这个简单来说就是把所有的显示器平铺在一个位置上,然后进行相关的操作,而这个位置,就是当显示器的左上角,而右下脚则是,左上角架上显示器的宽高。
要获得屏幕相关的信息的话,就需要通过命令 swaymsg -t get_outputs
来获取相关信息,那个 Output DP-1
这种输出中, DP-1
就是那个 {DIS}
。
对于桌面背景的话,可以通过 output {DIS} bg /path/to/image fill
来设置一个估定的图片,这里面 {DIS}
可以是通配符 *
。
或者使用 SWWW 这样的软件配置“‘动态‘桌面壁纸”。
锁屏和自动黑屏
锁屏采用 swaylock 进行锁屏,但是希望锁屏之后,屏幕能够自动黑屏,就需要特定的操作。
首先通过按键绑定一个特定的按键作为锁屏的操作。
bindsym $mod+Shift+h exec ${HOME}/.config/sway/script.d/lockscreen
然后这个 lockscreen
脚本则是用来锁屏的,如下:
#!/bin/bash
swayidle -w \
timeout 10 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' &
swaylock -c 151525
kill %%
首先,swayidle
这个是用来等待的,在锁屏 10 秒之后,在执行 swaymsg "output * dpms off"
将显示器关闭,然后在鼠标有动作的时候,来执行 swaymsg "output * dpms on"
将显示器开启。(当然,如果输入错密码或者没有输入的话, 10 秒之后,还是会关闭屏幕。
然后 swaylock
来进行锁屏。
最后,如果将这个解锁的话,则将 swayidle
关闭,防止屏幕再次被关闭。
SWWW 配制
首先须要安装 SWWW 这个软件。然后要写一串代码(脚本):
首先需要把先前的 SWWW 的进程都杀掉,并把缓存给清理一下。
pkill -O 10 swww_init
rm -rf $HOME/.cache/swww/*
然后再初始化 swww
swww init
接着循环更新桌面背景,通过 swww query
。
首先是一个 while
的无限的循环,循环每次完成之后,再有一个 sleep
来作为延时。
然后通过 for
循环给每个屏幕设置对应的背景。
while true; do
for output in `swww query | awk -F: '{print $1}'`; do
IMG=$(shuf -n1 -e `cat $HOME/.config/backgrouds.list`)
echo Display $output "$IMG"
swww img -o $output "$IMG"
done
sleep $INTERVAL
done
$HOME/.config/backgrouds.list
这个是一个所包含的图片的列表,然后 shuf
则是用来随机挑选图片的。
Waybar 配制
Waybar 的配置涉及到两个地方。一个是 sway 本身,还有一个是 waybar。
首先须要配置 Sway :
bar {
position top
font JetBrainsMono Nerd Font 18, FontAwesome5Free, IonicIcons 14
swaybar_command waybar
colors {
statusline #ffffff
background #323232
inactive_workspace #32323200 #32323200 #5c5c5c
}
}
这里配置了 “bar”的位置、字体、使用 waybar 作为 sway bar 还有颜色。
然后就需要配置 waybar, 这里我采用的 fedora 默认的配置。效果还行。
WezTerm 配制
不建议使用,因为对于输入法的支持不好。当前无法使用输入法。(我现在一直用 konsole 进行替代,毕竟有 wayland 还有输入法)。
输入法配制 (Fcitx 5)
这个按照网上有一的一些教程安装就好了,把 fcitx 5 和相关框架的“插件”安装好,然后在配置 XX_IM_MODULE
啥的成为 fcitx 就行。
很多软件对于 wayland 下输入发的支持并不好,所以建议使用 xwayland 方式来运行,或者使用其他支持的较好的软件。
Wayland 带来的问题 与妥协
主要还是输入法,只能在 输入法+xwayland 或者没有输入法+wayland 二者中来选择。
剩下的就是各种各样的 bug 了,所以还是建议使用 fedora 这样相对激进一些的发行版,修 bug 会快一些(当然,制造 bug 也会更快)。