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很难支持中文输入,仅安装作为备用

vscode使用electron框架,实际上对中文输入支持也很差: 我决定回归到 Vim 进行开发

输入设备

支持配置touchpad: ~/.config/sway/config :

sway配置touchpad
input type:touchpad {
    dwt enabled
    tap enabled
    natural_scroll enabled
    middle_emulation enabled
}

备注

高分辨率屏幕

对于高分辨率屏幕(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"

参考