You are not logged in.

#1 2025-07-13 18:29:20

tekstryder
Member
Registered: 2013-02-14
Posts: 370

[SOLVED] LibreOffice on Hyprland - Blurry Rendering

Figured I'd check here as there's a bazillion "blurry LO" threads on da interwebz, but not so much when it comes to native Wayland.

• hyprland is build without Xwayland
• LibreOffice is using default GTK3
• LibreOffice UI elements are rendered correctly and are NOT affected
• rendering of document text and font picker options are blurry

Notes:

1) Tested each (and combos of) built-in app options for antialiasing, hardware acceleration, etc to no avail
2) Occurs regardless of display scaling (tested 1.00 and 1.25)
3) Does NOT occur on Sway with native Wayland (wlroots 0.19 (Vulkan Backend) (*-Dxwayland=disabled))
4) Does NOT occur on Mutter with native Wayland (-Dxwayland=false -Dx11=false)
5) When entering text into a cell in Calc, the text is not affected until it is "committed" by Enter.

- hyprland (*-DNO_XWAYLAND:STRING=true*)
- nvidia-dkms 575.64.03
- libreoffice-fresh

Any hyprland+nVidia users have proper LO rendering... or this issue?

Last edited by tekstryder (Yesterday 11:23:16)

Offline

#2 2025-07-13 18:40:16

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Can you link a screenshot so we can gauge the blur? (Ideally w/ a clean example on the same system, but X11 or xwayland or if it doesn't do that on gnome?)
Next to aliasing, hinting might be an issue.
Then scaling (do you? Fractionally?)
And ultimately nvidia GL shenanigans like FXAA, but I'm not even sure whether and how to enforce (or disable) that on wayland.

tested each (and combos of) built-in app options for antialiasing, hardware acceleration, etc to no avail

Toggling LO hw acceleration has no impact on the situation whatsoever?

Offline

#3 2025-07-13 19:01:05

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

seth wrote:

Can you link a screenshot so we can gauge the blur?

https://imgur.com/a/XF7JTEd

Clean is sway. Blurry is hyprland.

seth wrote:

Next to aliasing, hinting might be an issue.

Maybe. Didn't mess with that in either hyprland or sway yet. Good call.

seth wrote:

Then scaling (do you? Fractionally?)

See OP...#2

seth wrote:

Toggling LO hw acceleration has no impact on the situation whatsoever?

None, but the anti-aliasing setting's effect is very-slightly noticeable.

Offline

#4 2025-07-13 19:18:06

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

That's an upscale (~300%) - not hinting or antialiasing (the "clean" one is antialiased already)
Leaving explicit scaling aside: HiDPI output? Is https://wiki.archlinux.org/title/HiDPI#GDK_3_(GTK_3) set in either environment?

Though I even suspect that the GTK environment only controls the GUI elements but not the contents.
Does exporting SAL_FORCEDPI impact the situation in any way?

Offline

#5 2025-07-13 19:50:26

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Not sure what you mean by 300% vs hinting.

Both screenshots were taken at same 1.25 scaling factor. My fontconfig is vanilla untouched defaults.

No env vars set for GTK3

I had messed with SAL_FORCEDPI. It does make everything larger/smaller, but does not impact the issue.

Offline

#6 2025-07-13 20:11:09

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Wah, that's actually the local firefox…

Looking at the png in gimp: this /is/ hinting - probably full vs none or slight.
Might have to do w/ the portal implementation or whatever reading this out of different sources.
Do you run the same xdg-desktop-portal implementation under hyprland and sway?
Also

gsettings get org.gnome.settings-daemon.plugins.xsettings hinting

and historically  ~/.config/gtk-3.0/settings.ini and there gtk-xft-hintstyle might be relevant
Also

grep hintstyle /etc/fonts/conf.d/*

the default is likely hintslight and you might want to change that to hintfull?

Offline

#7 2025-07-13 21:59:18

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

seth wrote:

Also

gsettings get org.gnome.settings-daemon.plugins.xsettings hinting

and historically  ~/.config/gtk-3.0/settings.ini and there gtk-xft-hintstyle might be relevant

Neither of these exist.

I do not modify GTK and Gnome has been purged from the system...as in fully (dconf,  ~/.config, ~/.local) so I could geek out on other things for a while.

seth wrote:

the default is likely hintslight and you might want to change that to hintfull?

Hintfull seems the default:

$ fc-match --verbose | grep hints
	hintstyle: 3(i)(w)

Good idea to try, though rather odd that just one app on just one compositor would have a font issue.

Hence I'm curious if any Hyprland+nVidia LibreOffice users have nice sharp fonts and if I've a configuration issue to address.

Offline

#8 2025-07-13 22:23:04

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Missed a question.

seth wrote:

Do you run the same xdg-desktop-portal implementation under hyprland and sway?

Yup. May eventually need the hyprland portal for screencasting if I get that far.

~/.config/xdg-desktop-portal/portals.conf:

[preferred]
default=wlr;gtk

Last edited by tekstryder (2025-07-13 23:34:00)

Offline

#9 2025-07-14 00:44:47

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Ah, it was a combination of both portals AND scaling.

I managed to first get it fixed at scaling 1.00 by unfucking my portals.conf... then revised further to be simply what's in #8 (edited).

The simplified portals.conf alone makes me happy in and of itself.

EDIT: Not solved, so the below is questionable

This also resolved the only other minor issue I had noted so far with hyprland, but that's not relevant here.

Currently issue-free on my setup... so it's a minimalist, un-riced hyprland for me for the foreseeable future.

Last edited by tekstryder (2025-07-14 10:41:15)

Offline

#10 2025-07-14 10:54:55

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Unsolved still. Bummer.

After bouncing to sway and back, this issue is back.

Portals seem happy:

$ systemctl --user status xdg-desktop-portal xdg-desktop-portal-gtk.service xdg-desktop-portal-wlr.service
● xdg-desktop-portal.service - Portal service
     Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal.service; static)
     Active: active (running) since Mon 2025-07-14 06:37:53 EDT; 23s ago
 Invocation: f97b467af1c24260ac0f283d825c43c7
   Main PID: 58912 (xdg-desktop-por)
      Tasks: 7 (limit: 154173)
     Memory: 3.6M (peak: 4.2M)
        CPU: 24ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/xdg-desktop-portal.service
             └─58912 /usr/lib/xdg-desktop-portal

Jul 14 06:37:52 archnemisis systemd[48595]: Starting Portal service...
Jul 14 06:37:53 archnemisis systemd[48595]: Started Portal service.

● xdg-desktop-portal-gtk.service - Portal service (GTK/GNOME implementation)
     Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal-gtk.service; static)
     Active: active (running) since Mon 2025-07-14 06:37:53 EDT; 23s ago
 Invocation: febe910271794ff6b1fdfe27ae09c40a
   Main PID: 58913 (xdg-desktop-por)
      Tasks: 5 (limit: 154173)
     Memory: 5.8M (peak: 6.7M)
        CPU: 35ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/xdg-desktop-portal-gtk.service
             └─58913 /usr/lib/xdg-desktop-portal-gtk

Jul 14 06:37:52 archnemisis systemd[48595]: Starting Portal service (GTK/GNOME implementation)...
Jul 14 06:37:53 archnemisis systemd[48595]: Started Portal service (GTK/GNOME implementation).

● xdg-desktop-portal-wlr.service - Portal service (wlroots implementation)
     Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal-wlr.service; static)
     Active: active (running) since Mon 2025-07-14 06:37:52 EDT; 23s ago
 Invocation: e1a1a95f513a4fc5b9b6f55cedbc791d
   Main PID: 58914 (xdg-desktop-por)
      Tasks: 2 (limit: 154173)
     Memory: 1M (peak: 1.9M)
        CPU: 6ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/xdg-desktop-portal-wlr.service
             └─58914 /usr/lib/xdg-desktop-portal-wlr

Jul 14 06:37:52 archnemisis systemd[48595]: Starting Portal service (wlroots implementation)...
Jul 14 06:37:52 archnemisis systemd[48595]: Started Portal service (wlroots implementation).

The other issue (perhaps now relevant/helpful in diagnoses) which looks portal-related is:

• When Evolution mail client is running Brave browser sometimes freezes.
• Killing Evolution unfreezes Brave
• Sometime in this state Brave crashes. A full year of Brave on Gnome and zero freeze/crash ever, so a very new issue.
• Similar to the LO blur, none of this occurs under Sway. Seems Sway's handling portals more elegantly.

Next thing I'll try is to be hyprland-specific and replace portal-wlr with portal-hyprland.

EDIT:

Replacing portal-wlr with portal-hyprland resulted in no change in behaviors.

I'm unable to replicate the functional state achieved last night with the same settings that were present then.

EDIT2:

Removed xdg-desktop-portal-wlr from the picture and further simplified portals.conf

[preferred]
default=gtk

No change.

EDIT3:

• Removed portals.conf.
• Removed wlr and hyprland portals packages
• Switched LO to QT5 for now as neither that, nor QT6, exhibit the blurriness issue.

Last edited by tekstryder (2025-07-14 13:33:16)

Offline

#11 2025-07-14 14:38:33

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

https://github.com/flatpak/flatpak/issu … 2429322148

The future of the linux desktop… since this isn't actually flatschpak - what if you remove *all* or the portal mess?

Offline

#12 2025-07-14 16:53:20

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

You made me uninstall nautilus tongue

1) This makes no diff with the LO GTK blurriness.
2) I immediately ran into the Brave freeze first launch. Exiting Evolution unfreezes Brave.
    May or may not be portal-related, but bizarre behavior. It's not reproducible, and logs no errors.
3) That was definitely worth trying. Dunnoh the last time I didn't have libportal installed.

EDIT:

4) Without the QT portals LO is rendered insanely tiny (UI elements AND document). Same for QT5 or QT6.

Last edited by tekstryder (2025-07-14 17:29:20)

Offline

#13 2025-07-14 21:12:05

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Ok, but maybe w/o portal queries in the way we might see where LO is getting (or trying to) this from in the strace - which is gonna be rather long…

Offline

#14 2025-07-14 23:08:55

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Strace doesn't say much that I can see.

Here's opening a file with the blur (1.25 scale, libportal & gang removed):

execve("/usr/bin/libreoffice", ["libreoffice", "--writer", "testfile-gtk3-blur.odt"], 0x7ffd440ac1b0 /* 34 vars */) = 0
brk(NULL)                               = 0x560de0b96000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=138075, ...}) = 0
mmap(NULL, 138075, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f377edaf000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreadline.so.8", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=367640, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f377edad000
mmap(NULL, 371816, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f377ed52000
mmap(0x7f377ed68000, 204800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x16000) = 0x7f377ed68000
mmap(0x7f377ed9a000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x48000) = 0x7f377ed9a000
mmap(0x7f377eda3000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x51000) = 0x7f377eda3000
mmap(0x7f377edac000, 3176, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f377edac000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0px\2\0\0\0\0\0"..., 832) = 832
pread64(4, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
fstat(4, {st_mode=S_IFREG|0755, st_size=2006328, ...}) = 0
pread64(4, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
mmap(NULL, 2030680, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f377eb62000
mmap(0x7f377eb86000, 1507328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x24000) = 0x7f377eb86000
mmap(0x7f377ecf6000, 319488, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x194000) = 0x7f377ecf6000
mmap(0x7f377ed44000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1e1000) = 0x7f377ed44000
mmap(0x7f377ed4a000, 31832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f377ed4a000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libncursesw.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=453896, ...}) = 0
mmap(NULL, 453856, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f377eaf3000
mmap(0x7f377eb00000, 290816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xd000) = 0x7f377eb00000
mmap(0x7f377eb47000, 90112, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x54000) = 0x7f377eb47000
mmap(0x7f377eb5d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x6a000) = 0x7f377eb5d000
close(4)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f377eaf1000
arch_prctl(ARCH_SET_FS, 0x7f377eaf1b80) = 0
set_tid_address(0x7f377eaf1e50)         = 112969
set_robust_list(0x7f377eaf1e60, 24)     = 0
rseq(0x7f377eaf1ac0, 0x20, 0, 0x53053053) = 0
mprotect(0x7f377ed44000, 16384, PROT_READ) = 0
mprotect(0x7f377eb5d000, 16384, PROT_READ) = 0
mprotect(0x7f377eda3000, 12288, PROT_READ) = 0
mprotect(0x560dd5367000, 12288, PROT_READ) = 0
mprotect(0x7f377ee0e000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f377edaf000, 138075)          = 0
openat(AT_FDCWD, "/dev/tty", O_RDWR|O_NONBLOCK) = 4
close(4)                                = 0
getrandom("\x71\x09\x30\xe5\x80\x64\x57\x48", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x560de0b96000
brk(0x560de0bb7000)                     = 0x560de0bb7000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=3063024, ...}) = 0
mmap(NULL, 3063024, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f377e800000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=27010, ...}) = 0
mmap(NULL, 27010, PROT_READ, MAP_SHARED, 4, 0) = 0x7f377edca000
close(4)                                = 0
futex(0x7f377ed4972c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getresuid([1000], [1000], [1000])       = 0
getresgid([1000], [1000], [1000])       = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
uname({sysname="Linux", nodename="boomshanka", ...}) = 0
newfstatat(AT_FDCWD, "/home/tekstryder", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/tekstryder", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
getpid()                                = 112969
getppid()                               = 112967
getpid()                                = 112969
getppid()                               = 112967
getpid()                                = 112969
getppid()                               = 112967
getpgrp()                               = 112967
ioctl(2, TIOCGPGRP, [112967])           = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
prlimit64(0, RLIMIT_NPROC, NULL, {rlim_cur=513911, rlim_max=513911}) = 0
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2998, ...}) = 0
read(4, "# Locale name alias data base.\n#"..., 4096) = 2998
read(4, "", 4096)                       = 0
close(4)                                = 0
openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
openat(AT_FDCWD, "/usr/bin/libreoffice", O_RDONLY) = 4
newfstatat(AT_FDCWD, "/usr/bin/libreoffice", {st_mode=S_IFREG|0755, st_size=6652, ...}, 0) = 0
ioctl(4, TCGETS, 0x7ffeec1fcae0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(4, 0, SEEK_CUR)                   = 0
read(4, "#!/bin/sh\n#\n# This file is part "..., 80) = 80
lseek(4, 0, SEEK_SET)                   = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0
fcntl(255, F_GETFD)                     = -1 EBADF (Bad file descriptor)
dup2(4, 255)                            = 255
close(4)                                = 0
fcntl(255, F_SETFD, FD_CLOEXEC)         = 0
fcntl(255, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat(255, {st_mode=S_IFREG|0755, st_size=6652, ...}) = 0
lseek(255, 0, SEEK_CUR)                 = 0
read(255, "#!/bin/sh\n#\n# This file is part "..., 6652) = 6652
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -5239, SEEK_CUR)             = 1413
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112970
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "/home/tekstryder\n", 4096)           = 11
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112970, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112970
wait4(-1, 0x7ffeec1fa554, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 11
read(4, "", 4096)                       = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "sd_res=\"$0\"\nwhile [ -h \"$sd_res\""..., 6652) = 5239
newfstatat(AT_FDCWD, "/usr/bin/libreoffice", {st_mode=S_IFLNK|0777, st_size=36, ...}, AT_SYMLINK_NOFOLLOW) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -5021, SEEK_CUR)             = 1631
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112971
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "/usr/bin\n", 4096)             = 9
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112971, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112971
wait4(-1, 0x7ffeec1fa114, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 9
read(4, "", 4096)                       = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
newfstatat(AT_FDCWD, "/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/usr/bin", {st_mode=S_IFDIR|0755, st_size=110592, ...}, 0) = 0
chdir("/usr/bin")                       = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112972
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "libreoffice\n", 4096)          = 12
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112972, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112972
wait4(-1, 0x7ffeec1fa254, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 12
read(4, "", 4096)                       = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112973
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "/usr/lib/libreoffice/program/sof"..., 4096) = 37
read(4, "", 4096)                       = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112973, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112973
wait4(-1, 0x7ffeec1fa354, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/soffice", {st_mode=S_IFREG|0755, st_size=6652, ...}, AT_SYMLINK_NOFOLLOW) = 0
read(255, "sd_dirname=$(dirname \"$sd_res\")\n"..., 6652) = 5021
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -4989, SEEK_CUR)             = 1663
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112976
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "/usr/lib/libreoffice/program\n", 4096) = 29
read(4, "", 4096)                       = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112976, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112976
wait4(-1, 0x7ffeec1fa554, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "cd \"$sd_dirname\" || exit $?\nsd_p"..., 6652) = 4989
newfstatat(AT_FDCWD, "/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/usr/lib", {st_mode=S_IFDIR|0755, st_size=245760, ...}, 0) = 0
newfstatat(AT_FDCWD, "/usr/lib/libreoffice", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program", {st_mode=S_IFDIR|0755, st_size=12288, ...}, 0) = 0
chdir("/usr/lib/libreoffice/program")   = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -4946, SEEK_CUR)             = 1706
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112977
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "/usr/lib/libreoffice/program\n", 4096) = 29
read(4, "", 4096)                       = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112977, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112977
wait4(-1, 0x7ffeec1fa554, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "cd \"$sd_cwd\" || exit $?\n\n# linke"..., 6652) = 4946
newfstatat(AT_FDCWD, "/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/tekstryder", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
chdir("/home/tekstryder")                     = 0
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/ooenv", 0x7ffeec1fc670, 0) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
fcntl(0, F_GETFD)                       = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [CHLD], 8) = 0
lseek(255, -1226, SEEK_CUR)             = 5426
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112978
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
close(5)                                = 0
close(5)                                = -1 EBADF (Bad file descriptor)
rt_sigprocmask(SIG_BLOCK, NULL, [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112979
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
close(4)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 112978
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 112979
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
ioctl(2, TIOCGWINSZ, {ws_row=89, ws_col=348, ws_xpixel=3828, ws_ypixel=2136}) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
close(4)                                = -1 EBADF (Bad file descriptor)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112978, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, 0x7ffeec1fb994, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[]})                 = 0
read(255, "\ncase \"$(uname -s)\" in\nOpenBSD)\n"..., 6652) = 1226
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
pipe2([4, 5], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -685, SEEK_CUR)              = 5967
rt_sigprocmask(SIG_BLOCK, ~[], [INT TERM CHLD], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f377eaf1e50) = 112980
rt_sigprocmask(SIG_SETMASK, [INT TERM CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
close(5)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(4, "Linux\n", 4096)                = 6
read(4, "", 4096)                       = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=112980, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 112980
wait4(-1, 0x7ffeec1fa714, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 0
close(4)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52abf80, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "\n# restore locale setting, avoid"..., 6652) = 685
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f377eb9fef0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, {sa_handler=0x560dd52b09f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f377eb9fef0}, 8) = 0
execve("/usr/lib/libreoffice/program/oosplash", ["/usr/lib/libreoffice/program/oos"..., "--writer", "testfile-gtk3-blur.odt"], 0x560de0bb1600 /* 35 vars */) = 0
brk(NULL)                               = 0x55848c7a6000
readlinkat(AT_FDCWD, "/proc/self/exe", "/usr/lib/libreoffice/program/oos"..., 4096) = 37
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f72aefe5000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libreoffice/program/glibc-hwcaps/x86-64-v3/libXinerama.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/glibc-hwcaps/x86-64-v3/", 0x7fff5dfcaa00, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libreoffice/program/glibc-hwcaps/x86-64-v2/libXinerama.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/glibc-hwcaps/x86-64-v2/", 0x7fff5dfcaa00, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libXinerama.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/", {st_mode=S_IFDIR|0755, st_size=12288, ...}, 0) = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=138075, ...}) = 0
mmap(NULL, 138075, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f72aefc3000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libXinerama.so.1", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=14328, ...}) = 0
mmap(NULL, 16552, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aefbe000
mmap(0x7f72aefbf000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x7f72aefbf000
mmap(0x7f72aefc0000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f72aefc0000
mmap(0x7f72aefc1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f72aefc1000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libX11.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libX11.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=1309088, ...}) = 0
mmap(NULL, 1313000, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aee7d000
mmap(0x7f72aee94000, 606208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x17000) = 0x7f72aee94000
mmap(0x7f72aef28000, 585728, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xab000) = 0x7f72aef28000
mmap(0x7f72aefb7000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x139000) = 0x7f72aefb7000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libpng16.so.16", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libpng16.so.16", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=231448, ...}) = 0
mmap(NULL, 233488, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aee43000
mmap(0x7f72aee49000, 167936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x6000) = 0x7f72aee49000
mmap(0x7f72aee72000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2f000) = 0x7f72aee72000
mmap(0x7f72aee7b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x37000) = 0x7f72aee7b000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libuno_sal.so.3", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=412600, ...}) = 0
mmap(NULL, 426448, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aedda000
mmap(0x7f72aede9000, 241664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xf000) = 0x7f72aede9000
mmap(0x7f72aee24000, 90112, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x4a000) = 0x7f72aee24000
mmap(0x7f72aee3a000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x60000) = 0x7f72aee3a000
mmap(0x7f72aee3e000, 16848, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f72aee3e000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0px\2\0\0\0\0\0"..., 832) = 832
pread64(4, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
fstat(4, {st_mode=S_IFREG|0755, st_size=2006328, ...}) = 0
pread64(4, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 840, 64) = 840
mmap(NULL, 2030680, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aebea000
mmap(0x7f72aec0e000, 1507328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x24000) = 0x7f72aec0e000
mmap(0x7f72aed7e000, 319488, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x194000) = 0x7f72aed7e000
mmap(0x7f72aedcc000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1e1000) = 0x7f72aedcc000
mmap(0x7f72aedd2000, 31832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f72aedd2000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libXext.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=80952, ...}) = 0
mmap(NULL, 83776, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aebd5000
mmap(0x7f72aebd9000, 45056, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x4000) = 0x7f72aebd9000
mmap(0x7f72aebe4000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xf000) = 0x7f72aebe4000
mmap(0x7f72aebe8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x12000) = 0x7f72aebe8000
close(4)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f72aebd3000
openat(AT_FDCWD, "/usr/lib/libxcb.so.1", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=169984, ...}) = 0
mmap(NULL, 172264, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aeba8000
mmap(0x7f72aebb4000, 81920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xc000) = 0x7f72aebb4000
mmap(0x7f72aebc8000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x20000) = 0x7f72aebc8000
mmap(0x7f72aebd1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x28000) = 0x7f72aebd1000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=100368, ...}) = 0
mmap(NULL, 98320, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aeb8f000
mmap(0x7f72aeb92000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x3000) = 0x7f72aeb92000
mmap(0x7f72aeba0000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x11000) = 0x7f72aeba0000
mmap(0x7f72aeba6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x17000) = 0x7f72aeba6000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=1014104, ...}) = 0
mmap(NULL, 1012040, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72aea97000
mmap(0x7f72aeaa6000, 548864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xf000) = 0x7f72aeaa6000
mmap(0x7f72aeb2c000, 397312, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x95000) = 0x7f72aeb2c000
mmap(0x7f72aeb8d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xf6000) = 0x7f72aeb8d000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=22478592, ...}) = 0
mmap(NULL, 2699336, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72ae800000
mmap(0x7f72ae897000, 1396736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x97000) = 0x7f72ae897000
mmap(0x7f72ae9ec000, 598016, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1ec000) = 0x7f72ae9ec000
mmap(0x7f72aea7e000, 73728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x27e000) = 0x7f72aea7e000
mmap(0x7f72aea90000, 12360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f72aea90000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0644, st_size=906008, ...}) = 0
mmap(NULL, 180712, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72ae7d3000
mmap(0x7f72ae7d7000, 143360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x4000) = 0x7f72ae7d7000
mmap(0x7f72ae7fa000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x27000) = 0x7f72ae7fa000
mmap(0x7f72ae7fe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2a000) = 0x7f72ae7fe000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libXau.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=14232, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f72aea95000
mmap(NULL, 16424, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72ae7ce000
mmap(0x7f72ae7cf000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x7f72ae7cf000
mmap(0x7f72ae7d0000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f72ae7d0000
mmap(0x7f72ae7d1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f72ae7d1000
close(4)                                = 0
openat(AT_FDCWD, "/usr/lib/libXdmcp.so.6", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=26488, ...}) = 0
mmap(NULL, 28688, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f72ae7c6000
mmap(0x7f72ae7c8000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x7f72ae7c8000
mmap(0x7f72ae7ca000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x4000) = 0x7f72ae7ca000
mmap(0x7f72ae7cc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x5000) = 0x7f72ae7cc000
close(4)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f72ae7c4000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f72ae7c1000
arch_prctl(ARCH_SET_FS, 0x7f72ae7c20c0) = 0
set_tid_address(0x7f72ae7c2390)         = 112969
set_robust_list(0x7f72ae7c23a0, 24)     = 0
rseq(0x7f72ae7c1680, 0x20, 0, 0x53053053) = 0
mprotect(0x7f72aedcc000, 16384, PROT_READ) = 0
mprotect(0x7f72ae7cc000, 4096, PROT_READ) = 0
mprotect(0x7f72ae7d1000, 4096, PROT_READ) = 0
mprotect(0x7f72ae7fe000, 4096, PROT_READ) = 0
mprotect(0x7f72aeb8d000, 4096, PROT_READ) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f72ae7bf000
mprotect(0x7f72aea7e000, 69632, PROT_READ) = 0
mprotect(0x7f72aeba6000, 4096, PROT_READ) = 0
mprotect(0x7f72aebd1000, 4096, PROT_READ) = 0
mprotect(0x7f72aefb7000, 12288, PROT_READ) = 0
mprotect(0x7f72aebe8000, 4096, PROT_READ) = 0
mprotect(0x7f72aee3a000, 12288, PROT_READ) = 0
mprotect(0x7f72aee7b000, 4096, PROT_READ) = 0
mprotect(0x7f72aefc1000, 4096, PROT_READ) = 0
mprotect(0x55848810a000, 4096, PROT_READ) = 0
mprotect(0x7f72af024000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f72aefc3000, 138075)          = 0
futex(0x7f72aea906bc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getrandom("\xba\x2c\xcc\xea\x16\x87\x8c\x74", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55848c7a6000
brk(0x55848c7c7000)                     = 0x55848c7c7000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=3063024, ...}) = 0
mmap(NULL, 3063024, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f72ae400000
close(4)                                = 0
readlink("/usr", 0x7fff5dfca2f0, 1023)  = -1 EINVAL (Invalid argument)
readlink("/usr/lib", 0x7fff5dfca2f0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/libreoffice", 0x7fff5dfca2f0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/libreoffice/program", 0x7fff5dfca2f0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/libreoffice/program/oosplash", 0x7fff5dfca2f0, 1023) = -1 EINVAL (Invalid argument)
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f72aec27ef0}, NULL, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=0x558488106090, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7f72aec27ef0}, NULL, 8) = 0
readlink("/usr", 0x7fff5dfc9ee0, 1023)  = -1 EINVAL (Invalid argument)
readlink("/usr/lib", 0x7fff5dfc9ee0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/libreoffice", 0x7fff5dfc9ee0, 1023) = -1 EINVAL (Invalid argument)
readlink("/usr/lib/libreoffice/program", 0x7fff5dfc9ee0, 1023) = -1 EINVAL (Invalid argument)
access("/usr/lib/libreoffice/program/bootstraprc", F_OK) = 0
access("/usr/lib/libreoffice/program/fundamental.override.ini", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/libreoffice/program/oosplashrc", F_OK) = -1 ENOENT (No such file or directory)
statfs("/usr/lib/libreoffice/program/bootstraprc", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=23949597, f_bfree=10657461, f_bavail=9432669, f_files=6111232, f_ffree=5795137, f_fsid={val=[0x23fa5648, 0x8c99a2be]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_RELATIME}) = 0
openat(AT_FDCWD, "/usr/lib/libreoffice/program/bootstraprc", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=112, ...}) = 0
pread64(4, "[Bootstrap]\nInstallMode=<install"..., 4096, 0) = 112
close(4)                                = 0
getuid()                                = 1000
newfstatat(AT_FDCWD, "/etc/nsswitch.conf", {st_mode=S_IFREG|0644, st_size=359, ...}, 0) = 0
newfstatat(AT_FDCWD, "/", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=359, ...}) = 0
read(4, "# Name Service Switch configurat"..., 4096) = 359
read(4, "", 4096)                       = 0
fstat(4, {st_mode=S_IFREG|0644, st_size=359, ...}) = 0
close(4)                                = 0
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=1868, ...}) = 0
lseek(4, 0, SEEK_SET)                   = 0
read(4, "root:x:0:0::/root:/usr/bin/bash\n"..., 4096) = 1868
close(4)                                = 0
getuid()                                = 1000
access("/home/tekstryder", F_OK)              = 0
mkdir("/home/tekstryder/.config", 0700)       = -1 EEXIST (File exists)
newfstatat(AT_FDCWD, "/home/tekstryder/.config", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
getcwd("/home/tekstryder", 4096)              = 11
readlink("/home", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
faccessat2(AT_FDCWD, "/home/", F_OK, AT_EACCESS) = 0
readlink("/home", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
faccessat2(AT_FDCWD, "/home/tekstryder/", F_OK, AT_EACCESS) = 0
readlink("/home", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder/.config", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
faccessat2(AT_FDCWD, "/home/tekstryder/.config/", F_OK, AT_EACCESS) = 0
readlink("/home", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder/.config", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder/.config/libreoffice", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
faccessat2(AT_FDCWD, "/home/tekstryder/.config/libreoffice/", F_OK, AT_EACCESS) = 0
readlink("/home", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder/.config", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder/.config/libreoffice", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
readlink("/home/tekstryder/.config/libreoffice/4", 0x7fff5dfc6df0, 1023) = -1 EINVAL (Invalid argument)
access("/tmp", W_OK)                    = 0
getuid()                                = 1000
socket(AF_UNIX, SOCK_STREAM, 0)         = 4
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
connect(4, {sa_family=AF_UNIX, sun_path="/tmp/OSL_PIPE_1000_SingleOfficeIPC_795936f7971b6bd8c379133a8bd94e1b"}, 110) = -1 ENOENT (No such file or directory)
close(4)                                = 0
newfstatat(AT_FDCWD, "/proc/version", {st_mode=S_IFREG|0444, st_size=0, ...}, 0) = 0
write(2, "Failed to open display\n", 23) = 23
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/", {st_mode=S_IFDIR|0755, st_size=12288, ...}, 0) = 0
openat(AT_FDCWD, "/sys/dev/block/259:0/queue/rotational", O_RDONLY) = 4
close(4)                                = 0
newfstatat(AT_FDCWD, "/usr/lib/libreoffice/program/", {st_mode=S_IFDIR|0755, st_size=12288, ...}, 0) = 0
openat(AT_FDCWD, "/sys/dev/block/259:0/queue/rotational", O_RDONLY) = 4
close(4)                                = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f72aec7cef0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f72aec27ef0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f72adbff000
mprotect(0x7f72adc00000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f72ae3ff990, parent_tid=0x7f72ae3ff990, exit_signal=0, stack=0x7f72adbff000, stack_size=0x7ff600, tls=0x7f72ae3ff6c0} => {parent_tid=[112981]}, 88) = 112981
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x55848c7b9c70, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x55848c7b9cb8, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x55848c7b9c70, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x55848c7bbd70, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x55848c7bbd80, FUTEX_WAKE_PRIVATE, 1) = 0
read(6, "\n", 4096)                     = 1
close(6)                                = 0
pipe2([4, 5], 0)                        = 0
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f72ad3fe000
mprotect(0x7f72ad3ff000, 8388608, PROT_READ|PROT_WRITE) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8)   = 0
clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7f72adbfe990, parent_tid=0x7f72adbfe990, exit_signal=0, stack=0x7f72ad3fe000, stack_size=0x7ff600, tls=0x7f72adbfe6c0} => {parent_tid=[112983]}, 88) = 112983
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7f72a8000bb0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f72a8000bb0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x55848c7bbf70, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x55848c7bbf80, FUTEX_WAKE_PRIVATE, 1) = 0
close(5)                                = 0
futex(0x55848c7bbc90, FUTEX_WAIT_BITSET_PRIVATE, 0, {tv_sec=140383, tv_nsec=764259475}, FUTEX_BITSET_MATCH_ANY) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
restart_syscall(<... resuming interrupted futex ...>) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGWINCH {si_signo=SIGWINCH, si_code=SI_KERNEL} ---
restart_syscall(<... resuming interrupted futex ...>) = 0
futex(0x55848c7bbca0, FUTEX_WAKE_PRIVATE, 1) = 0
close(4)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

I suspect Hyprland scaling of LO. It's the only app affected, and only with GTK, and only on Hyprland. Whether it's the app's or compositor's fault dunno.

• Does not occur on Sway with same config
• Never was an issue with mutter and same display config
• No longer reproducible at 1.00 scale after I un-broke my portals.conf last night.
• Oh, and I just now set both monitors to 1.25 scale and the issue disappears... big derp on not trying that... like first.

I _did_ reproduce after unplugging the other display previously, just never thought to set it to a matching scaling factor.

Offline

#15 2025-07-15 00:00:09

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Got this pretty much worked around.

I just can't have my desired 1.25 : 1.00 aspects.

But close!

------
 good
------
1.10 : 1.00
1.20 : 1.066667
1.25 : 1.066667
1.333333 : 1.066667

------
 bad
------
1.20 : 0.90
1.20 : 1.00
1.25 : 1.00
1.25 : 0.90
1.25 : 0.95
1.333333 : 1.00

Of these the only viable for my eyes are:

1.25 : 1.066667
1.333333 : 1.066667

The latter, being a better ppi match of the two display resolutions. Time to do the math for the layout!

Not solved but two workarounds:

1) Use QT5 or QT6 renderer for LibreOffice at desired scaling factors
2) Use default GTK3 renderer for LibreOffice at similar scaling factors

Last edited by tekstryder (2025-07-15 01:03:53)

Offline

#16 2025-07-15 07:21:55

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Fwwi, the strace lacks an "-f" (and will presumingly get MUCH longer for it)

1.333333/1.066667 is 1.25, though…
https://wiki.archlinux.org/title/HiDPI#GDK_3_(GTK_3)

export GDK_DPI_SCALE=0.8 # 1/1.25

?

Offline

#17 2025-07-15 10:25:18

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

GDK_DPI_SCALE makes the entire application scale smaller

...along with the blurry document text at the original 1.25 / 1 scale settings.

Offline

#18 2025-07-15 14:07:24

seth
Member
Registered: 2012-09-03
Posts: 66,156

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

https://github.com/hyprwm/Hyprland/issues/5652

I suppose it's what you'lll get for fractional scaling, but sure, wayland's gonna fix that and the hybrid DPI problem and everything. Later.
What I'd attempt as general solution might be to apply the GDK_DPI_SCALE=1.25 or GDK_SCALE=2 and then DOWNscale the regular-dpi output (instead of upscaling the hi-dpi one)

Offline

#19 2025-07-15 19:16:48

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

The slight upward tweak of a little more scaling on both displays was immediately appealing to my eyballs and eyestrain.

I "need" glasses, but don't get them. Still plenty of pixels.

$ hyprctl monitors
Monitor DVI-D-1 (ID 0):
	2560x1440@59.95100 at 2880x-425
	description: Dell Inc. DELL U2711 D971T0A118JL
	make: Dell Inc.
	model: DELL U2711
	scale: 1.07
	transform: 3
Monitor DP-1 (ID 1):
	3840x2160@59.99700 at 0x0
	description: Philips Consumer Electronics Company PHL 328E1 AU02041009401
	make: Philips Consumer Electronics Company
	model: PHL 328E1
	scale: 1.33
	transform: 0

I am now issue-free on Hyprland.

Thanks for all the suggestions!

Last edited by tekstryder (2025-07-17 11:25:33)

Offline

#20 2025-07-17 11:37:45

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

On Sway it's opposite world. I applied the 1.333 : 1.067 and chromium is blurry.

1.250 : 1.000 works across the board on sway
1.333 : 1.067 works across the board on hyprland

seth wrote:

What I'd attempt as general solution...

I don't grok your general solution suggestion, as I've more than one app installed, and this issue only affects one out of many GTK apps.

And I require upscaling on the 4K display. And I need the 2560x1440 to be at least 1.00.

Now it's merely a curiosity as I've found functional, acceptable, scale factors for each environment.

But I'm really diggin' the 1.333 : 1.067 and wanted it to work also on Sway.

EDIT:

Answer is obviously, "Stop being a cheapo bastard Tekstryder, and just buy a 2nd 4K display."

Last edited by tekstryder (2025-07-17 12:17:28)

Offline

#21 2025-07-17 15:27:59

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

tekstryder wrote:

But I'm really diggin' the 1.333 : 1.067 and wanted it to work also on Sway.

All good on Sway now with 1.333 : 1.067 scaling.

• chromium: using --gtk-version=4 flag scales perfectly at various scaling factors
• brave: setting "Use system title bar and borders" scales correctly

Offline

#22 2025-07-22 12:28:07

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Back on topic...

For whatever it's worth I filed an issue downstream:

https://github.com/hyprwm/Hyprland/discussions/11099

Given the esoteric nature of the problem and numerous workarounds I doubt it will get any attention.

Only LibreOffice + only GTK3 backend + only with disparate fractional scaling factors + only at some of those scaling factors.

Offline

#23 Yesterday 11:22:13

tekstryder
Member
Registered: 2013-02-14
Posts: 370

Re: [SOLVED] LibreOffice on Hyprland - Blurry Rendering

Ugh... it was the borders (default in Hyprland).

border_size = 0 and the issue is gone.

How I'd not tried that yet is beyond me. D'oh!

Marking thread as [SOLVED], but I'll leave the upstream bug report open as this should definitely not happen.

Offline

Board footer

Powered by FluxBB