You are not logged in.

#1 2019-10-20 16:07:07

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Exclude Mounts from Gtk3 bookmarks?

This has been a minor irritation with applications like Gimp for a while; wherebye, the open/save file menus are overly populated with system mounts: eg File sytem root, efi, shm, tmp... etc. However, having finaly ditched Thunar in favour of Midnight Commander things have come to a head.

Badly affected Gtk apps with double entries:

  • Firefox

  • Libre Office

  • Transmission-gtk

  • Geany

  • Gimp

Unsurprisingly, Qt5 based apps like Vlc and Xpdf are unaffected.


Some basic info:

  • My current desktop is Wayland/Gnome, (though this is about to change.)

  • After ditching Thunar, Gvfs became an orphan package. Since my medium term goal is to ditch udisks2, I have un-installed Gvfs

  • To add/remove user bookmarks for Gui applications, I edit ${HOME}/.config/gtk-3.0/bookmarks. Unfortunately, AFAIK, there is no way of using this file to exclude locations or mounts.

I am aware of x-gvfs-show and x-gvfs-hide, but, bearing in mind I would like to completely ditch udisks2, re-installing Gvfs would be a retrograde step.

Additionally, I have been looking, (without success,) in places /etc/gtk-3.0/ and /etc/xdg/ for config files I could overide.

Does anybody have any ideas on how to clean up the file menus without being stuck with udisks2?

Irvine

Edited title to better reflect problem

Last edited by IrvineHimself (2019-10-21 10:34:38)


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

#2 2019-10-20 21:24:28

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Re: Exclude Mounts from Gtk3 bookmarks?

Okay, I have been looking further into this to see if I could identify where/how the Gtk apps find the mounts, and I think it is something to do with gio. For example:

=$ gio mount --list
Volume(0): Filesystem root
  Type: GUnixVolume
  Mount(0): Filesystem root -> file:///
    Type: GUnixMount
Volume(1): efi
  Type: GUnixVolume
  Mount(0): efi -> file:///boot/efi
    Type: GUnixMount
Volume(2): shm
  Type: GUnixVolume
  Mount(0): shm -> file:///dev/shm
    Type: GUnixMount
Volume(3): home
  Type: GUnixVolume
  Mount(0): home -> file:///home
    Type: GUnixMount
Volume(4): tmp
  Type: GUnixVolume
  Mount(0): tmp -> file:///tmp
    Type: GUnixMount
Mount(4): Docs -> file:///home/stupidme/Docs
  Type: GUnixMount
=$ 

Exactly matches the offending list of mounts displayed by applications which use Gtk  bookmarks. I am not sure how this will help stop the behaviour, but at least it's something(?)

As an experiment, I tried a temporary Firejail profile for Geany which explicitly blacklisted /usr/bin/gio. However, since these applications probably link directly to the glib2 source library, I wasn't really surprised when this didn't work.

Irvine

Edit
Similarly, using Firejail to temporarily blacklist /usr/lib/gio had no effect.

Last edited by IrvineHimself (2019-10-20 21:31:29)


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

#3 2019-10-21 10:26:21

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Re: Exclude Mounts from Gtk3 bookmarks?

Trying to gather more info, I checked the Wiki article for Udisks, and found the section: Hide selected partitions

Creating /etc/udev/rules.d/10-local.rules, covering the main partitions on /dev/sdaX, /dev/sdb1 and /dev/sdc1

SUBSYSTEM=="block", ENV{ID_FS_UUID}=="241C-8FD0", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="71c2e04e-d3df-4200-bec6-a92874b4969b", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="313a1552-6dc7-40f3-9030-2515e8550210", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="a7504518-f701-4e03-9bd9-882df25caae1", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="237fb92e-50eb-4553-9451-ab337f5db561", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="016ca4f3-d75b-4220-8f93-d4452fe23c5a", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="63e41868-a6b6-473c-9090-ee2124703df0", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="5b93be13-f5a9-467b-bc47-5c56062c5516", ENV{UDISKS_IGNORE}="1"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="43f36fca-232f-4dec-816c-ca9db3f85666", ENV{UDISKS_IGNORE}="1"

Even after re-booting, this had no effect.

To check this rule, I found the ${DEVPATH} with

=$ udevadm info --name /dev/sdb1 --query all
P: /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1
N: sdb1
L: 0
S: disk/by-label/Docs
S: disk/by-path/pci-0000:00:14.0-usb-0:3.3:1.0-scsi-0:0:0:0-part1
S: disk/by-id/usb-Seagate_Expansion_Desk_NA8FDA1K-0:0-part1
S: disk/by-uuid/5b93be13-f5a9-467b-bc47-5c56062c5516
S: disk/by-partlabel/Docs
S: disk/by-partuuid/2a80d417-7fb7-4775-a9d2-77517cc642b7
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1
E: DEVNAME=/dev/sdb1
E: DEVTYPE=partition
E: PARTN=1
E: PARTNAME=Docs
E: MAJOR=8
E: MINOR=17
E: SUBSYSTEM=block
E: USEC_INITIALIZED=8840533
E: ID_VENDOR=Seagate
E: ID_VENDOR_ENC=Seagate\x20
E: ID_VENDOR_ID=0bc2
E: ID_MODEL=Expansion_Desk
E: ID_MODEL_ENC=Expansion\x20Desk\x20\x20
E: ID_MODEL_ID=3322
E: ID_REVISION=9401
E: ID_SERIAL=Seagate_Expansion_Desk_NA8FDA1K-0:0
E: ID_SERIAL_SHORT=NA8FDA1K
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_BUS=usb
E: ID_USB_INTERFACES=:080650:080662:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=uas
E: ID_PATH=pci-0000:00:14.0-usb-0:3.3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_3_1_0-scsi-0_0_0_0
E: ID_PART_TABLE_UUID=e0fdcf0f-ebe0-4998-8cee-a87bb520e80e
E: ID_PART_TABLE_TYPE=gpt
E: ID_FS_LABEL=Docs
E: ID_FS_LABEL_ENC=Docs
E: ID_FS_UUID=5b93be13-f5a9-467b-bc47-5c56062c5516
E: ID_FS_UUID_ENC=5b93be13-f5a9-467b-bc47-5c56062c5516
E: ID_FS_VERSION=1.0
E: ID_FS_TYPE=ext4
E: ID_FS_USAGE=filesystem
E: ID_PART_ENTRY_SCHEME=gpt
E: ID_PART_ENTRY_NAME=Docs
E: ID_PART_ENTRY_UUID=2a80d417-7fb7-4775-a9d2-77517cc642b7
E: ID_PART_ENTRY_TYPE=0fc63daf-8483-4772-8e79-3d69d8477de4
E: ID_PART_ENTRY_NUMBER=1
E: ID_PART_ENTRY_OFFSET=2048
E: ID_PART_ENTRY_SIZE=5860530176
E: ID_PART_ENTRY_DISK=8:16
E: DEVLINKS=/dev/disk/by-label/Docs /dev/disk/by-path/pci-0000:00:14.0-usb-0:3.3:1.0-scsi-0:0:0:0-part1 /dev/disk/by-id/usb-Seagate_Expansion_Desk_NA8FDA1K-0:0-part1 /dev/disk/by-uuid/5b93be13-f5a9-467b-bc47-5c56062c5516 /dev/disk/by-partlabel/Docs /dev/disk/by-partuuid/2a80d417-7fb7-4775-a9d2-77517cc642b7
E: TAGS=:systemd:

I then tested it with:

udevadm test /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

Load module index
Parsed configuration file /usr/lib/systemd/network/99-default.link
Created link configuration context.
Reading rules file: /usr/lib/udev/rules.d/01-md-raid-creating.rules
Reading rules file: /usr/lib/udev/rules.d/10-dm.rules
Reading rules file: /etc/udev/rules.d/10-local.rules
Reading rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules
/usr/lib/udev/rules.d/11-dm-lvm.rules:40 Invalid value for OPTIONS key, ignoring: 'event_timeout=180'
/usr/lib/udev/rules.d/11-dm-lvm.rules:40 The line takes no effect, ignoring.
Reading rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
Reading rules file: /usr/lib/udev/rules.d/39-usbmuxd.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-input-id.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-rfkill.rules
Reading rules file: /usr/lib/udev/rules.d/60-sensor.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /usr/lib/udev/rules.d/61-gnome-settings-daemon-rfkill.rules
Reading rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs-dm.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules
Reading rules file: /usr/lib/udev/rules.d/65-libwacom.rules
Reading rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
Reading rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules
Reading rules file: /usr/lib/udev/rules.d/69-md-clustered-confirm-device.rules
Reading rules file: /usr/lib/udev/rules.d/70-infrared.rules
Reading rules file: /usr/lib/udev/rules.d/70-joystick.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/80-udisks2.rules
Reading rules file: /usr/lib/udev/rules.d/84-nm-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Reading rules file: /usr/lib/udev/rules.d/90-bolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Reading rules file: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Reading rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules
Reading rules file: /usr/lib/udev/rules.d/90-vconsole.rules
Reading rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-csr.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-hidpp.rules
Reading rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
Reading rules file: /usr/lib/udev/rules.d/96-e2scrub.rules
Reading rules file: /usr/lib/udev/rules.d/99-fuse.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
Invalid inotify descriptor.
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1
DEVNAME=/dev/sdb1
DEVTYPE=partition
PARTN=1
PARTNAME=Docs
MAJOR=8
MINOR=17
ACTION=add
SUBSYSTEM=block
ID_VENDOR=Seagate
ID_VENDOR_ENC=Seagate\x20
ID_VENDOR_ID=0bc2
ID_MODEL=Expansion_Desk
ID_MODEL_ENC=Expansion\x20Desk\x20\x20
ID_MODEL_ID=3322
ID_REVISION=9401
ID_SERIAL=Seagate_Expansion_Desk_NA8FDA1K-0:0
ID_SERIAL_SHORT=NA8FDA1K
ID_TYPE=disk
ID_INSTANCE=0:0
ID_BUS=usb
ID_USB_INTERFACES=:080650:080662:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=uas
ID_PATH=pci-0000:00:14.0-usb-0:3.3:1.0-scsi-0:0:0:0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_3_1_0-scsi-0_0_0_0
ID_PART_TABLE_UUID=e0fdcf0f-ebe0-4998-8cee-a87bb520e80e
ID_PART_TABLE_TYPE=gpt
DEVLINKS=/dev/disk/by-path/pci-0000:00:14.0-usb-0:3.3:1.0-scsi-0:0:0:0-part1 /dev/disk/by-id/usb-Seagate_Expansion_Desk_NA8FDA1K-0:0-part1
.ID_FS_TYPE_NEW=
ID_FS_TYPE=
TAGS=:systemd:
USEC_INITIALIZED=8840533
Unload module index
Unloaded link configuration context.

So, as you can see, the rule is being read and no problems are being reported. But, unfortunately, it does not affect which mounts are displayed in Gtk bookmarks

Irvine


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

#4 2019-10-24 13:54:49

glitsj16
Member
Registered: 2015-04-26
Posts: 126

Re: Exclude Mounts from Gtk3 bookmarks?

Hi, when I saw your thread I remembered trying to fight this overly populated menu item issue years ago too. The only way I was able to keep things under my control was to change file permissions on ~/.config/gtk-3.0/bookmarks to read-only. Additionally I set the [immutable bit](https://wiki.archlinux.org/index.php/Fi … attributes) on it as well, which is file-system dependant but works fine on ext4. Alternatively, If you want to try the firejail experiment again, you might get better results by using its '--read-only' flag on ${HOME}/.config/gtk-3.0/bookmarks (untested).

Offline

#5 2019-10-24 13:59:17

glitsj16
Member
Registered: 2015-04-26
Posts: 126

Re: Exclude Mounts from Gtk3 bookmarks?

Follow-up: I forgot the disclaimer... When you decide to make the bookmarks file read-only, it implies breaking auto-adding any new or changed mounts you might want to keep. Temporarily reverting to read-write permissions, editing the file and re-doing the read-only dance shouldn't be too much hassle once you have a stable set of bookmarks in there. Hope this helps to get want you want.

Offline

#6 2019-10-24 15:41:31

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Re: Exclude Mounts from Gtk3 bookmarks?

Thanks for the interest, unfortunately setting either, (or both,) the --read-only flag and/or the immutable bit on ${HOME}/.config/gtk-3.0/bookmarks failed to solve the problem.

Like I say, it's not a problem on Qt5 apps, (nor on Midnight Commander, which uses it's own bookmarks file,) but with Gtk apps like Geany and Gimp, it can be mildly irritating. This is especially true since: I prefer the versatility of sudo mount/umount over udisksctl mount/unmount, and am using fstab to mount world writable locations with the noexec, nosuid and nodev flags set.

Thanks again for your interest,
Irvine

Edited to explain sources of extra mounts

Last edited by IrvineHimself (2019-10-24 15:49:44)


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

#7 2019-10-24 16:02:10

glitsj16
Member
Registered: 2015-04-26
Posts: 126

Re: Exclude Mounts from Gtk3 bookmarks?

Too bad it didn't work, I can definately understand the irritation it causes with GTK applications. Did you edit and remove items you don't want to see in ${HOME}/.config/gtk-3.0/bookmarks BEFORE setting read-only perms/immutable bit on it? I forgot to mention (the obvious) that you would need to do that for the unwanted bookmarks to stay hidden.

Offline

#8 2019-10-24 17:21:10

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Re: Exclude Mounts from Gtk3 bookmarks?

glitsj16 wrote:

.... Did you edit and remove items you don't want to see in ${HOME}/.config/gtk-3.0/bookmarks BEFORE setting read-only perms/immutable bit on it? ....

That's the problem! The unwanted items are being added by a merge of the Gtk bookmarks file and <something else>....  (cf the merge of of the user gnome-application.menu with /etc/xdg/menus/gnome-applications.menu)

The <something else> is probably derived from Gio, but I am not certain. If I knew what it was, I might be able to figure out a tweak,  but....

Irvine


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

#9 2019-10-24 18:12:45

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,406

Re: Exclude Mounts from Gtk3 bookmarks?

run a bookmark reading application through an strace and grep for bookmark or so, maybe you catch a file.

Offline

#10 2019-10-24 18:32:52

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Re: Exclude Mounts from Gtk3 bookmarks?

Thanks, that is a really good idea.

I have things to do this evening, but I will do it tomorrow and inform the forum of the results.

Irvine


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

#11 2019-10-25 11:46:07

IrvineHimself
Member
From: Scotland
Registered: 2016-08-21
Posts: 275

Re: Exclude Mounts from Gtk3 bookmarks?

Okay I have actually spent quite a few hours combining Strace/Geany and various search terms, but I am not really finding anything useful. There was a moment extreme excitement when I found /usr/share/doc/geany-plugins/geanynumberedbookmarks, but, unfortunately, it refers to line numbers and code folding rather than Gtk bookmarks.

The strace output file is massive. In one test I ran, it was over 90Mb. As a result, ix.io seems to reject it, or at least it doesn't return a link.

As a rough guide for anyone interested: After launching Geany with strace  -o ${HOME}/Desktop/GeanyStrace /usr/bin/geany, opening a few files and generally accessing the Gtk bookmarks:

=$ cat GeanyStrace | grep "bookmark"
openat(AT_FDCWD, "/home/stupidme/.config/gtk-3.0/bookmarks", O_RDONLY) = 17
openat(AT_FDCWD, "/home/stupidme/.config/gtk-3.0/bookmarks", O_RDONLY) = 18
openat(AT_FDCWD, "/home/stupidme/.config/gtk-3.0/bookmarks", O_RDONLY) = 17
openat(AT_FDCWD, "/home/stupidme/.config/gtk-3.0/bookmarks", O_RDONLY) = 18
=$ 

To examine the above in context: Using nano, (the files is way too big for Geany,) I exported a few hundred lines around the first occurence, which is at line #102 in the following code block.

recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0004\0\0\0005\0\0\0\0\0\10\0", iov_len=924}, {iov_base="", iov_len=3172}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 20
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 491) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\2\0\24\0\0345$\0'O\0\0\tZ\0\0\v\0\0\0\5\0\10\0007\0\0\0"..., iov_len=904}, {iov_base="", iov_len=3192}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 52
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 500) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\2\0\24\0,5$\0'P\0\0\t\\\0\0\v\0\0\0\5\0\10\0", iov_len=852}, {iov_base="", iov_len=3244}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 28
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 10) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 500) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\2\0\24\00045$\0'P\0\0\t]\0\0\v\0\0\0\5\0\10\0", iov_len=824}, {iov_base="", iov_len=3272}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 28
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 500) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\2\0\24\0\2245$\0'P\0\0\352]\0\0\v\0\0\0\5\0\10\0", iov_len=796}, {iov_base="", iov_len=3300}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 28
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 500) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\2\0\24\0\2445$\0\321P\0\0\352]\0\0\v\0\0\0\5\0\10\0", iov_len=768}, {iov_base="", iov_len=3328}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 28
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}], 4, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 500) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\3\0\30\0f\4\0\0\0047$\0\20\1\0\0\1\0\0\0\v\0\0\0\5\0\10\0", iov_len=740}, {iov_base="", iov_len=3356}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 32
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}, {fd=11, events=POLLIN}, {fd=13, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}], 5, 11564) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\v\0\0\0\3\0\30\0g\4\0\0|7$\0\20\1\0\0\0\0\0\0\v\0\0\0\5\0\10\0", iov_len=708}, {iov_base="", iov_len=3388}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 32
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
munmap(0x6966a35ca000, 845840)          = 0
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="2\0\0\0\0\0\10\0001\0\0\0\0\0\10\0-\0\0\0\0\0\10\0005\0\0\0\0\0\10\0"..., iov_len=140}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 140
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0\0\0\2\0\20\0h\4\0\0-\0\0\0\34\0\0\0\4\0\34\0i\4\0\0\0\0\0\0"..., iov_len=676}, {iov_base="", iov_len=3420}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 180
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0xef997d78000)                      = 0xef997d78000
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mkdir("/home/stupidme/.local/share", 0755) = -1 EEXIST (File exists)
stat("/home/stupidme/.local/share", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
statfs("/home/stupidme", {f_type=EXT2_SUPER_MAGIC, f_bsize=4096, f_blocks=12639391, f_bfree=10004753, f_bavail=9345297, f_files=3276800, f_ffree=3230228, f_fsid={val=[1194330785, 3812790917]}, f_namelen=255, f_frsize=4096, f_flags=ST_VALID|ST_NOSUID|ST_NODEV|ST_NOEXEC|ST_NOATIME}) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
inotify_init1(IN_CLOEXEC)               = 15
fcntl(15, F_GETFL)                      = 0 (flags O_RDONLY)
fcntl(15, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0xef9963e3f10, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
inotify_add_watch(15, "/home/stupidme/.local/share", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = 1
openat(AT_FDCWD, "/home/stupidme/.local/share/recently-used.xbel", O_RDONLY) = 16
fstat(16, {st_mode=S_IFREG|0600, st_size=19926, ...}) = 0
read(16, "<?xml version=\"1.0\" encoding=\"UT"..., 19926) = 19926
close(16)                               = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0xef9963e3f10, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5e09188, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5e09198, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
getuid()                                = 1000
stat("/etc/fstab", {st_mode=S_IFREG|0644, st_size=1556, ...}) = 0
openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 17
fstat(17, {st_mode=S_IFREG|0644, st_size=1556, ...}) = 0
read(17, "# Static information about the f"..., 4096) = 1556
read(17, "", 4096)                      = 0
close(17)                               = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 17
fstat(17, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(17, "24 29 0:5 / /proc rw,nosuid,node"..., 1024) = 1024
lstat("/proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
lstat("/proc/self", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0
readlink("/proc/self", "2948", 4095)    = 4
lstat("/proc/2948", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
lstat("/proc/2948/mountinfo", {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(17, "relatime shared:11 - cgroup cgro"..., 1024) = 1024
read(17, "nodev,noexec,relatime shared:22 "..., 1024) = 1024
read(17, "c,relatime shared:65 - tmpfs tmp"..., 1024) = 518
read(17, "", 1024)                      = 0
close(17)                               = 0
getuid()                                = 1000
stat("/run", {st_mode=S_IFDIR|0755, st_size=580, ...}) = 0
stat("/run/mount/utab", 0x7d6cc5f6d8a0) = -1 ENOENT (No such file or directory)
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/home/stupidme/.config/gtk-3.0/bookmarks", O_RDONLY) = 17
fstat(17, {st_mode=S_IFREG|0644, st_size=556, ...}) = 0
brk(0xef997d9a000)                      = 0xef997d9a000
read(17, "file:///home/stupidme/.local/sha"..., 8192) = 556
read(17, "", 8192)                      = 0
close(17)                               = 0
inotify_add_watch(15, "/home/stupidme/.config/gtk-3.0", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = 3
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xef9963d6dd0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963d6dc0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x6966a2e98000
mprotect(0x6966a2e99000, 8388608, PROT_READ|PROT_WRITE) = 0
clone(child_stack=0x6966a3697d70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[2956], tls=0x6966a3698700, child_tidptr=0x6966a36989d0) = 2956
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef997d4f508, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5c5a9e0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5c5a0f0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5bf6b30, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5c5a0f0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/home/stupidme/.config/user-dirs.dirs", O_RDONLY) = -1 ENOENT (No such file or directory)
brk(0xef997dbc000)                      = 0xef997dbc000
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef997d7dad8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef997d7dc58, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x696690006378, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5c5a0f0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5bf66d0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5c5a9e0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xef9963ea5f0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0xef9963ea5f0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5c5a0f0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x6966b5c5a9e0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6966b5c5a9e0, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df4a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963df490, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0xef9963cc880, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0xef9963cc880, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x6966b5bf6a28, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/usr/share/icons/Adwaita/16x16/places/user-home-symbolic.symbolic.png", O_RDONLY) = 18
fstat(18, {st_mode=S_IFREG|0644, st_size=266, ...}) = 0
read(18, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0\20\0\0\0\20\10\6\0\0\0\37\363\377"..., 65536) = 266
read(18, "", 65536)                     = 0
close(18)                               = 0
openat(AT_FDCWD, "/usr/share/icons/Adwaita/16x16/places/user-trash-symbolic.symbolic.png", O_RDONLY) = 18
fstat(18, {st_mode=S_IFREG|0644, st_size=164, ...}) = 0
read(18, "\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0\20\0\0\0\20\10\6\0\0\0\37\363\377"..., 65536) = 164
read(18, "", 65536)                     = 0
close(18)                               = 0
openat(AT_FDCWD, "/usr/share/icons/Adwaita/16x16/devices/drive-harddisk-symbolic.symbolic.png", O_RDONLY) = 18
fstat(18, {st_mode=S_IFREG|0644, st_size=264, ...}) = 0

Almost immediately after reading the Gtk bookmarks there is: read(17, "file:///home/stupidme/.local/sha"..., 8192) = 556. The file is truncated, but I am fairly sure it is ${HOME}/.local/share/recently-used.xbel

The only other thing I can see of interest is that it is reading mountinfo from various locations in /proc, which doesn't really help a lot.

Irvine

Last edited by IrvineHimself (2019-10-25 11:51:44)


Et voilà, elle arrive. La pièce, le sous, peut-être qu'il arrive avec vous!

Offline

Board footer

Powered by FluxBB