Man Pages Displaying Text Incorrectly

Hello everyone. I'm in a pretty fresh install, but kept my home partition, and my man pages are hard to read because of improper text rendering, I think. I have tried in both konsole and terminator, and in both bash and fish, and it's all the same. I will show a sample after my inxi. I love man pages and sure hope someone can shed some light on this issue. Thank you.

╭─user@garuda in ~ took 17m29s
╰─λ garuda-inxi
Kernel: 6.4.3-zen1-2-zen arch: x86_64 bits: 64 compiler: gcc v: 13.1.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=268171f9-835a-47b2-97ff-47f4b7367ebe rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3
Desktop: KDE Plasma v: 5.27.6 tk: Qt v: 5.15.10 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Type: Laptop System: LENOVO product: 2344BZU v: ThinkPad T430
serial: <superuser required> Chassis: type: 10 serial: <superuser required>
Mobo: LENOVO model: 2344BZU v: Win8 Pro DPK TPG
serial: <superuser required> UEFI: LENOVO v: G1ETC1WW (2.81 )
date: 06/18/2019
ID-1: BAT0 charge: 47.3 Wh (71.2%) condition: 66.4/93.6 Wh (71.0%)
power: 17.4 W volts: 11.9 min: 11.1 model: LGC 42T4912 type: Li-ion
serial: <filter> status: discharging
Info: model: Intel Core i5-3320M bits: 64 arch: Ivy Bridge gen: core 3
level: v2 built: 2012-15 process: Intel 22nm family: 6 model-id: 0x3A (58)
stepping: 9 microcode: 0x21
Topology: cpus: 1x cores: 1 smt: disabled cache: L1: 64 KiB
desc: d-1x32 KiB; i-1x32 KiB L2: 256 KiB desc: 1x256 KiB L3: 3 MiB
desc: 1x3 MiB
Speed (MHz): 1255 min/max: 1200/3300 scaling: driver: intel_cpufreq
governor: schedutil core: 1: 1255 bogomips: 5187
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Device-1: Intel 3rd Gen Core processor Graphics vendor: Lenovo driver: i915
v: kernel arch: Gen-7 process: Intel 22nm built: 2012-13 ports:
active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3,
VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0166 class-ID: 0300
Device-2: Bison Integrated Camera driver: uvcvideo type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-1.6:5 chip-ID: 5986:02d5
class-ID: 0e02
Display: x11 server: X.Org v: 21.1.8 with: Xwayland v: 23.1.2
compositor: kwin_x11 driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: crocus gpu: i915 display-ID: :0
screens: 1
Screen-1: 0 s-res: 1600x900 s-dpi: 96 s-size: 423x238mm (16.65x9.37")
s-diag: 485mm (19.11")
Monitor-1: LVDS-1 model: LG Display 0x0362 built: 2011 res: 1600x900
hz: 60 dpi: 132 gamma: 1.2 size: 309x174mm (12.17x6.85") diag: 355mm (14")
ratio: 16:9 modes: 1600x900
API: OpenGL v: 4.2 Mesa 23.1.3 renderer: Mesa Intel HD Graphics 4000 (IVB
GT2) direct-render: Yes
Device-1: Intel 7 Series/C216 Family High Definition Audio vendor: Lenovo 7
driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1e20
class-ID: 0403
API: ALSA v: k6.4.3-zen1-2-zen status: kernel-api tools: N/A
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 0.3.74 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Device-1: Intel 82579LM Gigabit Network vendor: Lenovo driver: e1000e
v: kernel port: 6080 bus-ID: 00:19.0 chip-ID: 8086:1502 class-ID: 0200
IF: enp0s25 state: down mac: <filter>
Device-2: Intel Centrino Advanced-N 6205 [Taylor Peak] driver: iwlwifi
v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0
chip-ID: 8086:0085 class-ID: 0280
IF: wlp3s0 state: up mac: <filter>
Device-1: Broadcom BCM20702 Bluetooth 4.0 [ThinkPad] driver: btusb v: 0.8
type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-1.4:4
chip-ID: 0a5c:21e6 class-ID: fe01 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 2 state: up address: <filter>
Local Storage: total: 704.24 GiB used: 130.33 GiB (18.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Western Digital
model: WD5000LPCX-75VHAT1 size: 465.76 GiB block-size: physical: 4096 B
logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400 serial: <filter>
fw-rev: 1A05 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: SK Hynix model: SC210 mSATA 256GB
size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
tech: SSD serial: <filter> fw-rev: 1L00 scheme: GPT
ID-1: / raw-size: 24 GiB size: 24 GiB (100.00%) used: 10.23 GiB (42.6%)
fs: btrfs dev: /dev/sdb2 maj-min: 8:18
ID-2: /boot/efi raw-size: 255 MiB size: 251 MiB (98.45%)
used: 29.3 MiB (11.7%) fs: vfat dev: /dev/sdb1 maj-min: 8:17
ID-3: /home raw-size: 214.22 GiB size: 214.22 GiB (100.00%)
used: 120.07 GiB (56.0%) fs: btrfs dev: /dev/sdb3 maj-min: 8:19
ID-4: /var/log raw-size: 24 GiB size: 24 GiB (100.00%)
used: 10.23 GiB (42.6%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
ID-5: /var/tmp raw-size: 24 GiB size: 24 GiB (100.00%)
used: 10.23 GiB (42.6%) fs: btrfs dev: /dev/sdb2 maj-min: 8:18
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 7.58 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
System Temperatures: cpu: 54.0 C mobo: N/A
Fan Speeds (RPM): fan-1: 3618
Processes: 193 Uptime: 38m wakeups: 1 Memory: total: 8 GiB
available: 7.58 GiB used: 3.11 GiB (41.0%) Init: systemd v: 253
default: graphical tool: systemctl Compilers: gcc: 13.1.1 Packages:
pm: pacman pkgs: 1329 libs: 356 tools: octopi,pamac,paru Shell: fish
v: 3.6.1 running-in: konsole inxi: 3.3.28
Garuda (2.6.16-1):
System install date:     2023-07-14
Last full system update: 2023-07-16
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       No/Undetected
Failed units:

And here is a sample of the affected text.

locate - find files by name

1mlocate 22m[4mOPTION24m]... 4mPATTERN24m...

1mlocate  22mreads  one or more databases prepared by 1mupdatedb22m(8) and writes fil
e names
matching at least one of the 4mPATTERN24ms to standard output, one per line.

If 1m--regex 22mis not specified, 4mPATTERN24ms can contain  globbing  characters.
If  any
4mPATTERN24m  contains  no  globbing  characters, 1mlocate 22mbehaves as if the patte
rn were

By default, 1mlocate 22mdoes not check whether files found in database still exist (b
it does require all parent directories to exist if the  database  was  built  with
1m--require-visibility  no22m).   1mlocate  22mcan never report files created after t
he most
recent update of the relevant database.

1mlocate 22mexits with status 0 if any match was found or if 1mlocate  22mwas  invoke
d  with
one  of the 1m--limit 022m, 1m--help22m, 1m--statistics 22mor 1m--version 22moptions.
If no match was
found or a fatal error was encountered, 1mlocate 22mexits with status 1.

Errors encountered while reading a database are not  fatal,  search  continues  in
other specified databases, if any.
1 Like

This looks quite out of place :eyes:

If I had to guess, I'd remove this one from ~/.config/fish/ to see whether its caused by bat being the manpager. I guess you could also try using man directly from sh, as that has no aliases in place.


LOL. I don’t know Why that didn’t cross my mind. Probably because I’ve never used sh before. BRB.

EDIT: It’s the same in sh.

I’m currently reading TBG’s article on searching for solutions the right way. My searches on this aren’t returning any relevant hits.


Thanks @filo .
fixed with the "hack." I'm still using bat.

1 Like

That's a great article, @SGS . That guy sure can write!!


Yes he can! When I joined the forums nearly 3 years ago, Garuda’s posture was to be instructive–to help users to help themselves–rather than blindly giving out just the solutions. Not so much hand-holding. Garuda’s staff is small and everyone’s got day jobs who is not an oldy moldy. :wink:

When @tbg (The Big Guy) wrote that, it was sorely needed. It still is.

I don’t see @tbg in the forms so much recently. I hope he’s OK.



That's a kind of solution, but it's a hack around. Not a fix for the bug itself.

I’m just fine, I’ve just been so busy over the last year I haven’t been hanging out on the forums much these days. Retirement has kept me the busiest I’ve ever been. I’ve taken over the families 100+ year old house and farmstead that was really rundown after being mostly vacant and uncared for over the last 35 years.

I’ve been busy dropping, cutting, burning, and chipping all the growth that overun the farm in the last 40 years of dereliction. Between landscaping by hand with a shovel and wheelbarow and tearing down dilapidated old outbuildings I’ve had my hands way more than full of late.

I’ve also grafted and planted over 60 fruit trees in the last year and a half (and growing & planting more every day). Along with a small garden to grow my own vegatables I’m trying to secure my food security with a few farm animals like chickens. I may add some sheep in the future, but no cattle like when I was a kid. That’s just way too much work at my age.

You having lived in Alaska @bro for so long know all about the “can do” Alaskan work ethic. Some of us Canadians still haven’t lost that mentality and I enjoy all the hard physical work. I look at it all as far better time spent than time in the gym. My back is in better shape than when I was a young buck from chopping wood and digging ditches the old fashioned way, (even if it damn near kills me). I chopped 2+ tons of firewood last year, and that type work never ends on a farm. As you well know, in the Pacific rain forest, trees grow like weeds here. Never a day off when rehabilitating a derelict farm, but it sure beats the hell out of the city life.

Even if you could afford to have the work done by someone else there’s not a lot of the new generation keen on hard work these days. I’m back to shoveling a hillside of sand and wheelbarowing it down to level out the swampy lower lower section below. I’m going back to that now that the heat is starting to die down tonight. You be well my friend @bro and enjoy the nice summer weather we’ve been having in the PNW.


I’d offer to join you in exchange for airfare, but all I’d be able to do nowadays is gripe at you from the sidelines.

But I sure envy you. Digging in the dirt restores the soul, I’m convinced. The hardest thing for me getting out of the city is getting used to the pace that living in the country brings. It takes about 3 days to adapt. But spending weeks at a time alone, working in the bush for the Department of Transportation, on assignment on Prince of Wales Island up near you was what I loved more than anything I’ve ever done. Somehow it reminded me of Jimmy Buffet music.

Don’t labor too hard. Ain’t none of us chickens getting any younger. And–since I hate the phrase–remember to keep yer stick on the ice. :wink:

my best regards to you and your chickens


You should be able to substitute a more readable font. :slight_smile:

I have no idea what you're talking about. A OS shouldn't just mess up the fonts and some update should fix it. When my manpages show "22m"'s and "1m"'s without me doing anything, then this is a bug.

Perhaps, it may be a bug. I have done a little research and have determined this messy man page output corresponds with the package Groff upgrading from 1.22.4 to 1.23.0. If you want a nice easy fix, just roll back the version.

sudo downgrade groff

Pick 1.22.4 and add the package to IgnorePkg in /etc/pacman.conf.

But is it a bug? I’m not sure anymore; take a look at this article:

After reading that, I almost think the “buggy” output we are seeing now is sort of how it is supposed to look if you are not using the MANROFFOPT "-c" environment variable.

As for this comment:

I think calling it a “hack” is underselling it. Actually, if you want colored output for your manpages this is the documented solution. Take a look for yourself: Color output in console - ArchWiki

For Fish you could accomplish this with:

set -xU MANPAGER 'less -R --use-color -Dd+r -Du+b' set -xU MANROFFOPT '-P -c'

Also, since we are using Bat as our pager, the Bat documentation mentions this as well (GitHub - sharkdp/bat: A cat(1) clone with wings.):


bat can be used as a colorizing pager for man, by setting the MANPAGER environment variable:

export MANPAGER="sh -c 'col -bx | bat -l man -p'" man 2 select

(replace bat with batcat if you are on Debian or Ubuntu)

It might also be necessary to set MANROFFOPT="-c" if you experience formatting problems.

All that to say: you can roll back to groff 1.22.4 if you want to and that will bring you back to the old behavior where the formatting will be preserved without the MANROFFOPT="-c" variable, but I’m not sure this is a “bug” that is going to get “fixed”. Rather, this might be the way it is supposed to be, and the suggested solution is actually the correct, documented way to use this tool.


This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.