如何配置slstatus使其在dwm中适配屏幕显示
slstatus状态栏内容溢出屏幕解决步骤
- 确认配置修改后重新编译
slstatus和dwm都是编译时加载配置,改完config.h直接重启程序不会生效。
进入slstatus源码目录执行以下命令重新编译安装:
注意:make clean make sudo make install pkill slstatus slstatus &MAXLEN单位是字节,Nerd Font图标、中文字符单字符占3-4字节,1080p分辨率下设为256~512即可,不要设得太小。 - 排查dwm侧配置与补丁bug
如果你给dwm打过状态栏相关补丁(systray托盘、status2d、barpadding间距补丁),很容易出现宽度计算错误:- 打开dwm源码下的
config.h,把statuspadding、barpadding的左右边距调小,日常用设为{6, 6}就足够,过大会挤占状态文本的显示空间 - 用了systray补丁的话,把
systrayspacing设为1~2,不要留过大的托盘间距;如果不需要托盘可以直接注释掉systray相关配置重新编译dwm - 改完dwm配置后同样要重新编译安装,用默认快捷键
Mod+Ctrl+Q重启dwm加载新配置
- 打开dwm源码下的
- 修复VMware下的分辨率识别问题
Alpine默认不带VMware虚拟显卡驱动,Xorg经常会识别错实际屏幕宽度,导致dwm算错状态栏总长度:- 安装虚拟显卡驱动与工具:
sudo apk add open-vm-tools xf86-video-vmware sudo rc-update add open-vm-tools boot- 重启虚拟机后执行
xrandr,确认当前输出分辨率为1920x1080,若识别错误手动执行xrandr --output <对应显示设备名> --mode 1920x1080设置 - 检查dwm配置里的Xft DPI值,1080p下设为96即可,DPI过高会让字体渲染宽度超出预期,挤占显示空间
- 快速验证方法
临时精简slstatus的显示模块,比如把过长的日期格式、带长后缀的监控项先删掉,确认短内容能正常显示不溢出后,再逐个加回需要的模块,定位是不是单个模块输出内容过长导致的问题。

内容的提问来源于stack exchange,提问作者Sode
相关产品推荐
相关产品推荐

