Skip to content

安装配置平铺式窗口管理器Mangowc

对平铺式窗口管理器我一直跃跃欲试,但是没有很合适的切入点,不想完全从零 配起。但是mangowc吸引了我的注意,简洁,容易配置,开盒版本就挺好看了。 最难的是,中文支持顺滑,全局跑一个fcitx5,在所有应用里都可以输入中文, 包括终端。让我认真从kde plasma6切换到mangowc的契机是,在plasma6下我把 brave的中文输入滚挂了,当时网上找不到解决方案(后续某次更新后自动解决 了)。

mangowc的缺点:文档非常少,有问题一搜,出来的结果都是讲水果的。只能往 上游找攻略,搜dwl, wayland相关的解决方案。

安装参考官网,我用了最新的git版本:

yay -S mangowc-git

配置文件可参考作者本人的git repo。开盒即用,调一下快 捷键和waybar的内容。

硬件

键盘绑定

  • SUPER+r,重新加载mangowc的配置文件,修改完后保存,刷新,无需登出。

键盘绑定的语法是,

bind=<modifyer key>,<regular key>,<arg1>,<arg2>

其中modifyer key如果没有,要写none,不能空着。如果不知道某键位叫啥,用 wev来找。终端跑wev,按键就会显示名字。

多媒体控制

默认配置下我的播放控制按键不能正确响应,所以先打开wev,把几个按键名字 找出来,绑定播放控制。

wev给我的输出长这样:

    sym: XF86AudioLowerVolume (269025041), utf8: ''
[14:     wl_keyboard] key: serial: 13150; time: 5262817; key: 123; state: 1 (pressed)
    sym: XF86AudioRaiseVolume (269025043), utf8: ''
[14:     wl_keyboard] key: serial: 13151; time: 5262897; key: 123; state: 0 (released)
    sym: XF86AudioRaiseVolume (269025043), utf8: ''

sym后面是按键的名字。控制音量用wpctl,控制播放用playerctl

bind=none,XF86AudioLowerVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
bind=none,XF86AudioRaiseVolume,spawn,wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+
bind=none,XF86AudioNext,spawn,playerctl next
bind=none,XF86AudioPrevious,spawn,playerctl previous
bind=none,XF86AudioStop,spawn,playerctl stop
bind=none,XF86AudioPlay,spawn,playerctl play

屏幕亮度

(旧方案)

安装swayosd,在自启动程序里加上swayosd-server >/dev/null 2>&1 &

bind=none,XF86KbdBrightnessUp,spawn,swayosd-client --brightness +2
bind=none,XF86KbdBrightnessDown,spawn,swayosd-client --brightness -2

(新方案)

安装brightnessctl

# screen
bind=none,XF86KbdBrightnessUp,spawn,brightnessctl s 5+
bind=none,XF86KbdBrightnessDown,spawn,brightnessctl s 5-

鼠标,触摸板

调成自然滚动模式,并把加速度拉满

trackpad_natural_scrolling=1
accel_speed=1

外接显示器

接上外界显示器,直接是镜像,需要手动开关一次才能独立使用。于是搞了两个 快捷键干这个蛋疼的事。

bind=alt+shift,m,spawn,wlr-randr --output DP-2 --on
bind=alt+shift,n,spawn,wlr-randr --output DP-2 --off

显示器名字用wlr-randr来找

电源管理

关上笔记本电脑盖子,我这的默认模式是登出,需要修改 /etc/systemd/logind.conf并重启。以下两行取消注释。

HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend

应用

rofi

透明背景实现,修改图标主题,修改默认终端:

window {
    transparency: "real";
    background-color: rgba(36,39,58,0.9);
    icon-theme: "candy-icons";
    terminal: "kitty";
    ...
 }

图标只认~/.local/share/icons,不认/usr/share/icons

桌面壁纸

(旧方案)

参考这篇实现动态桌面,自启动里加上一条:

swaybg -i ~/.config/wallpaper/wall.jpg >/dev/null 2>&1 &

(新方案)

wpaperd。在autostart.sh里加上wpaperd -d。设置文件在 ~/.config/wpaperd/config.toml,我设置5分钟一变,从某文件夹随机选取一 张图。

[default]
duration = "5m"
mode = "center"
sorting = "random"

[any]
path = "<your path to wallpaper>"

状态栏

我的配置参考在这。其中比较烧脑的是找正确的温度监测。需要跑

cat /sys/class/hwmon/hwmon*/name

来找哪个包含coretemp,再把对应的路径设置到temperature模块里。

cava的样式注意字体一定要等宽,否则会反复横跳。

中文输入

按正常配置fcitx5就行了。

应用窗口管理

mangowc支持各种排列,我用的比较多的是

  • super+n:切换各种模式
  • alt+方向键:切换窗口
  • super+方向:切换桌面(就是tag)
  • ctlr+super+方向:当前窗口移到别的桌面去
  • shift+super+方向:移动窗口的相对位置,但是保持同一种模式。
  • ctrl+alt+方向:改变窗口大小

autostart

在.config/mango/autostart.sh

未解决问题

这些问题在KDE下没有出现

  • 手写板无法识别,wacom, huion都不行