archlinux Sway图形桌面¶
我在 移动云架构 采用的 Asahi Linux 底层是arch linux,为了能够轻量级运行,采用 wayland显示服务器协议 核心的 sway - i3兼容Wayland compositor 图形桌面。
安装¶
建议同时安装:
pacman -S sway swaylock swayidle swaybg
安装 dmenu (本来想安装 wofi 但是发现依赖安装太多软件了):
pacman -S dmenu
(由于alacritty不能很好支持中文输入,所以放弃):strike:安装alacritty作为终端 (参考 FreeBSD Sway桌面 ):
pacman -S alacritty
安装foot(默认sway轻量级终端):
pacman -S foot
启动¶
Sway启动前需要访问硬件设备,例如键盘,鼠标和图形卡,这个硬件信息搜集称为一个 seat
(类似 FreeBSD Sway桌面),所以需要安装:
pacman -S seatd
如果系统同时安装了 polkit
,那么 Sway 可以自动访问seat。另一种方式是,如果没有安装 polkit
,则将自己加入 seat
用户组,然后激活和启动 seatd.service
(我采用这种方法):
systemctl enable seatd.service
systemctl start seatd.service
启动:
sway
配置¶
将sway系统配置复制过来修改:
cp /etc/sway/config ~/.config/sway/config
修改menu配置:
#set $term alacritty set $term foot set $menu dmenu_path | dmenu | xargs swaymsg exec --
还是没有解决dmenu唤起问题
(放弃)安装chrome和 VS Code
chrome很难支持中文输入,仅安装作为备用
vscode使用electron框架,实际上对中文输入支持也很差: 我决定回归到 Vim 进行开发
输入设备¶
支持配置touchpad: ~/.config/sway/config
:
input type:touchpad {
dwt enabled
tap enabled
natural_scroll enabled
middle_emulation enabled
}
备注
dwt
表示disable touchpad while typing
,这个功能非常有用,激活以后可以避免在sway中输入时候出现聚焦点漂移的问题。不过,我实践下来发现还是需要微调,对于Macbook Pro的touchpad过于灵敏DWT 可能对外接touchpad无效 DWT not working on Sway with Apple BT Trackpad + wireless keyboard
我参考 Disable Touchpad while typing not working 增加一个选项:
pointer_accel 0.6 # set mouse sensitivity (between -1 and 1)
如果要彻底关闭touchpad,参考 sway: Disabling Touchpad #1277
高分辨率屏幕¶
对于高分辨率屏幕(HiDPI),可以在 ~/.config/sway/config
中添加:
output <name> scale <factor>
这里 <name>
可以根据 swaymsg -t get_outputs
中输出显示设备名获得,而这里的 <factor>
通常可以设置为 2
。
注意,如果 factor
设置为非整数倍,则字体显示会有锯齿非常难看。
可以安装图形程序 wdisplays
( Arch Linux AUR 安装 )或者终端程序 wlr-randr
( Arch Linux AUR 安装 )来修改分辨率,旋转和排列显示器。
wdispalys
可以不用重新加载sway配置即时生效,但是和上文配置sway的 output <name> scale <factor>
类似,如果配置方法比率不是2或整数,则字体非常难看。
但是,放大比率2我感觉又有点过大了,所以我感觉还是采用调整终端字体以及配置浏览器的页面放大到 150% 较为合适。
锁屏¶
锁屏使用 swaylock
,并且可以参考 Script output over a random image in swaylock 切换锁屏图片 (尚未实践)
swaylock
结合 swaylock-effects
可以输出一些信息,如时间:
swaylock --clock --indicator --screenshots --effect-scale 0.4 --effect-vignette 0.2:0.5 --effect-blur 4x2 --datestr "%a %e.%m.%Y" --timestr "%k:%M"