Labwc 便捷配置
最近使用 labwc 工作,逐步发现一些小问题,这里记录下,方便后来人。
目前中国大陆使用的微信、钉钉、腾讯会议等都是无法在纯粹的 wayland 下工作的,包括 chrome 在纯 wayland 下,Fcitx5 的候选框会跑偏,所以编译 labwc 的时候一定要开启 xwayland 支持。
下面针对一些常见问题给出个人解决方案:
1. 任务栏
taskbar 放在什么位置?双屏的话,在哪个屏幕显示?显示图标还是名称,以及点击后执行什么动作?
-
放在什么位置
1"modules-center": [ 2 "wlr/taskbar" 3 //"river/tags" 4],
wlr/taskbar
放到 "modules-center" 中,就是放到状态栏中间 -
单屏还是双屏输出
1// swaymsg -t get_outputs (sway) 2// wlr-randr (others) 3"output": "eDP-1",
output 的值可 sway 可从
swaymsg -t get_outputs
获得,其它的安装 wlr-randr 后运行wlr-randr
命令后获得,多个逗号分隔(typeof: string|array),星号所有,默认就是所有。我选择输出到副屏,主屏一般不放状态栏,只显示核心窗口,副屏放到一遍,需要看 taskbar 等辅助信息的时候,眼睛斜瞄一眼即可。
-
taskbar 配置
1"wlr/taskbar": { 2 "all-outputs": true, 3 "format": "{icon}", 4 "on-click": "minimize-raise", 5},
all-outputs
表示所有显示器窗口的软件都收集展示,不然只显示本显示器的窗口,多少有点不方便,看喜好设置。format
{icon}就是显示软件图标,也可设置为显示软件名等,可以查看对应文档设置。on-click
minimize-raise 点一下展示,再点一下缩回去。
完整配置文件(https://github.com/kmephistoh/dotfiles/tree/main/.config/waybar/config):
1{
2 "layer": "top",
3 "position": "bottom",
4 // swaymsg -t get_outputs (sway)
5 // wlr-randr (others)
6 "output": "eDP-1",
7 "modules-left": [
8 //"wlr/taskbar",
9 "custom/launcher",
10 "cpu",
11 "memory",
12 "custom/media",
13 "tray"
14 ],
15 "modules-center": [
16 "wlr/taskbar"
17 //"river/tags"
18 ],
19 "modules-right": [
20 "custom/updates",
21 "custom/wallpaper",
22 "backlight",
23 "pulseaudio",
24 "clock",
25 "battery",
26 "custom/power"
27 ],
28 "pulseaudio": {
29 "tooltip": false,
30 "scroll-step": 5,
31 "format": "{icon} {volume}%",
32 "format-muted": "{icon} {volume}%",
33 "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
34 "format-icons": {
35 "default": ["", "", ""]
36 }
37 },
38 "river/tags": {
39 "num-tags": 6
40 },
41 "network": {
42 "tooltip": false,
43 "format-wifi": " {essid}",
44 "format-ethernet": ""
45 },
46 "backlight": {
47 "tooltip": false,
48 "format": " {}%",
49 "interval": 1,
50 "on-scroll-up": "light -A 5",
51 "on-scroll-down": "light -U 5"
52 },
53 "battery": {
54 "states": {
55 "good": 95,
56 "warning": 30,
57 "critical": 20
58 },
59 "format": "{icon} {capacity}%",
60 "format-charging": " {capacity}%",
61 "format-plugged": " {capacity}%",
62 "format-alt": "{time} {icon}",
63 "format-icons": ["", "", "", "", ""]
64 },
65 "tray": {
66 "icon-size": 18,
67 "spacing": 10
68 },
69 "clock": {
70 "format": "{: %H:%M %d/%m/%Y}"
71 },
72 "cpu": {
73 "interval": 15,
74 "format": " {}%",
75 "max-length": 10
76 },
77 "memory": {
78 "interval": 30,
79 "format": " {}%",
80 "max-length": 10
81 },
82 "custom/media": {
83 "interval": 30,
84 "format": "{icon} {}",
85 "return-type": "json",
86 "max-length": 60,
87 "format-icons": {
88 "spotify": " ",
89 "default": " "
90 },
91 "escape": true,
92 "exec": "$HOME/.config/system_scripts/mediaplayer.py 2> /dev/null",
93 "on-click": "playerctl play-pause"
94 },
95 "custom/launcher": {
96 "format": " ",
97 "on-click": "wofi -show drun",
98 "on-click-right": "killall wofi"
99 },
100 "custom/power": {
101 "format": " ",
102 "on-click": "bash ~/.config/rofi/leave/leave.sh"
103 },
104 "custom/updates": {
105 "format": "{} Update(s)",
106 "exec": "checkupdates | wc -l",
107 "exec-if": "[[ $(checkupdates | wc -l) != 0 ]]",
108 "interval": 15,
109 "on-click": "alacritty -e paru -Syu && notify-send 'The system has been updated' "
110 },
111 "custom/wallpaper": {
112 "format": " ",
113 "on-click": "bash ~/.config/system_scripts/pkill_bc"
114 },
115 "wlr/taskbar": {
116 "all-outputs": true,
117 "format": "{icon}",
118 "on-click": "minimize-raise"
119 }
120}
2. 截屏
flameshot 在 labwc 下截屏有点问题,画选范围的时候反应异常延迟,不过从状态栏点击启动的时候没有问题,很诡异,状态不稳定,必须找个替换组合。
1 <keybind key="F9">
2 <action>
3 <name>Execute</name>
4 <command>sh -c 'grim -g "`slurp`" - | swappy -f -'</command>
5 </action>
6 </keybind>
推荐组合为 grim + slurp + swappy
,安装好后按照上述配置快捷键,按 F9 即可选择范围截屏。请注意上面 action 的写法,直接 <action name="Execute" command='grim -g "$(slurp)" - | wl-copy' />
是无法工作的,我帮读者踩过坑了。缘由参考官方tips 部分。
grim 截屏,slurp 选择范围,swappy 事后编辑。
注意,swappy 编辑文字的时候,逻辑是先选择范围,再打字,最后 Enter 确认,且无法输入中文(摊手表情!),也没有 flameshot 的步骤指示功能。所以我两个截屏软件都保留,看情况选择。
3. 工作空间设置
很久以前我用过一个发行版,它的终端的软件是可以按 F12 呼出和隐藏的,非常贴心,因为终端在 Linux 环境下是超高频软件,用的时候随时按 F12 呼出,此功能很多桌面环境不是那么容易设置。大部分的逻辑是快捷键直接启动多个实例了,这明显不符合使用需求,大部分人只需要开启一个终端,然后多 tab 切换即可。
在 labwc 下,我通过 workspace 切换的的功能勉强实现类似功能:
- 先添加 workspace
1 <desktops>
2 <!--
3 popupTime defaults to 1000 so could be left out.
4 Set to 0 to completely disable the workspace OSD.
5 -->
6 <popupTime>1000</popupTime>
7 <names>
8 <name>work</name>
9 </names>
10 <names>
11 <name>term</name>
12 </names>
13 </desktops>
我这里只设置了 2 个工作空间,一个 work,日常工作环境;一个 term,单独的只有终端的环境。接下来的设置快捷键,在两者间灵活切换。
- 设置快捷键
1 <keybind key="W-1">
2 <action name="GoToDesktop" to="term" wrap="yes" />
3 </keybind>
4 <keybind key="C-W-1">
5 <action name="SendToDesktop" to="term" follow="yes" wrap="yes" />
6 </keybind>
7 <keybind key="W-2">
8 <action name="GoToDesktop" to="work" wrap="yes" />
9 </keybind>
10 <keybind key="C-W-2">
11 <action name="SendToDesktop" to="work" follow="yes" wrap="yes" />
12 </keybind>
上述配置解释:win+1
切换到 term,win+2
切换到 work;ctl+win+1
把当前活动窗口放置到 term,ctl+win+2
把当前活动窗口放置到 work,这样即可实现类似老板键切换的功能,读者可以自行决定设置多少个 workspace,绑定好自己喜欢的快捷键,用起来很方便的。
所谓老板键,就是摸鱼时,一键切换到老板喜欢的工作界面,我想你应该懂的!毕竟大陆生活苦,菩萨也要体谅下。
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。