Xfce Forum

Sub domains
 

You are not logged in.

#1 2019-09-07 10:15:50

bernd_b
Member
Registered: 2019-08-25
Posts: 7

First appearance of application menu takes about ten seconds

After starting a new session after booting the pc, the appearance of the menu entries takes up to ten seconds after I click on the applications menu button for the for the first time.

After that, with every further click on the applications menu button the menu appears without any delay.

I used this

xfce4-panel -q
strace xfce4-panel 2>&1 | tee ~/xfce4-panel.log

to track the event, maybe someone can confirm that this is a normal behaviour or see something suspicious?

The xfce4-panel.log file can be found here.

Offline

#2 2019-09-07 12:04:07

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 5,830

Re: First appearance of application menu takes about ten seconds

On first start, the applications menu will read, process and cache all menu entries. If you have an older computer or alot of menu entries, it may take some time. I'm not sure of your computer's capacity but you sure do have a lot of stuff installed (Xfce, kde, a ton of Windows apps through wine).

Can you try creating a second test account on your computer, logging in there to see if the same issue exists? (this will help to see if it is the wine programs that are causing the delay).

Also, can you try running xfce4-panel in debug mode and posting back the output:

xfce4-panel -q && PANEL_DEBUG=1 xfce4-panel

Offline

#3 2019-09-07 12:22:55

bernd_b
Member
Registered: 2019-08-25
Posts: 7

Re: First appearance of application menu takes about ten seconds

Oh, I see, there are a lot of lines with:

home/bernd_b/.local/share/applications/wine

which reflect for how many years this system is running. Some weeks ago, I had this wine in my menu already under suspicion and I think I remember having me deleted it with menulibre, actually there is no menu entry "wine" with tons of programs any more in my applications menu. As you pointed out, they seem to be still being parsed.

So is it save to clean up the given directory manually and try a fresh start?

Offline

#4 2019-09-07 12:35:06

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 5,830

Re: First appearance of application menu takes about ten seconds

bernd_b wrote:

So is it save to clean up the given directory manually and try a fresh start?

As a test first, create a second user account and log in there (it won't have all of these extra entries). This will help you to determine where the issue resides.

Offline

#5 2019-09-07 14:22:03

bernd_b
Member
Registered: 2019-08-25
Posts: 7

Re: First appearance of application menu takes about ten seconds

Did several reboots:
Time for the menu entries toappear after boot for the first time:

main user (me):10 seconds
testuser:            5 seconds

Offline

#6 2019-09-07 15:33:52

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 5,830

Re: First appearance of application menu takes about ten seconds

5 seconds is still a long time.

Which distro and which version of Xfce are you running?
Which display manager are you using?

Also, on first boot, don't click the applications menu, but rather open a terminal window and run the following:

xfce4-panel -q && PANEL_DEBUG=1 xfce4-panel

...then click on the applications menu. Post back the output.

Offline

#7 2019-09-07 18:47:24

bernd_b
Member
Registered: 2019-08-25
Posts: 7

Re: First appearance of application menu takes about ten seconds

I use xfce4 4.14 on archlinux.

The display manager is sddm.

[bernd_b@amd64-archlinux ~]$ xfce4-panel -q && PANEL_DEBUG=1 xfce4-panel
xfce4-panel -q && PANEL_DEBUG=1 xfce4-panel
xfce4-panel(main): version 4.14.0 on gtk+ 3.24.10 (3.24.10), glib 2.60.7 (2.60.6)
xfce4-panel(module-factory): reading /usr/share/xfce4/panel/plugins
xfce4-panel(module-factory): reading /usr/share/xfce4/panel-plugins
xfce4-panel(application): found window manager after 1 tries
xfce4-panel(base-window): 0x55d2fb2c2c80: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(base-window): 0x55d2fb2c2c80: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(base-window): 0x55d2fb3103f0: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(module): new item (type=object-type, name=applicationsmenu, id=1)
xfce4-panel(module): new item (type=object-type, name=tasklist, id=3)
xfce4-panel(module): new item (type=object-type, name=separator, id=15)
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/11
xfce4-panel(module): new item (type=external-wrapper, name=xfce4-sensors-plugin, id=11)
xfce4-panel(external): xfce4-sensors-plugin-11: child spawned; pid=2052, argc=8
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/6
xfce4-panel(module): new item (type=external-wrapper, name=systray, id=6)
xfce4-panel(external): systray-6: child spawned; pid=2053, argc=8
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/4
xfce4-panel(module): new item (type=external-wrapper, name=cpufreq, id=4)
xfce4-panel(external): cpufreq-4: child spawned; pid=2054, argc=8
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/7
xfce4-panel(module): new item (type=external-wrapper, name=cpugraph, id=7)
xfce4-panel(external): cpugraph-7: child spawned; pid=2055, argc=8
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/8
xfce4-panel(module): new item (type=external-wrapper, name=systemload, id=8)
xfce4-panel(external): systemload-8: child spawned; pid=2056, argc=8
xfce4-panel(module): new item (type=object-type, name=clock, id=5)
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/2
xfce4-panel(module): new item (type=external-wrapper, name=xkb, id=2)
xfce4-panel(external): xkb-2: child spawned; pid=2057, argc=8
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/13
xfce4-panel(module): new item (type=external-wrapper, name=notification-plugin, id=13)
xfce4-panel(external): notification-plugin-13: child spawned; pid=2058, argc=8
xfce4-panel(base-window): 0x55d2fb3a4ee0: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(base-window): 0x55d2fb3a4ee0: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(base-window): 0x55d2fb3109f0: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(display-layout): 0x55d2fb3a4ee0: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb3a4ee0: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=1336,17
xfce4-panel(positioning): 0x55d2fb3a4ee0: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(base-window): 0x55d2fb398a80: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(base-window): 0x55d2fb398a80: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(base-window): 0x55d2fb310cf0: rgba visual=0x55d2fb07a4a0, compositing=false
xfce4-panel(display-layout): 0x55d2fb398a80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb398a80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=1428,15
xfce4-panel(positioning): 0x55d2fb398a80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/9
xfce4-panel(module): new item (type=external-wrapper, name=windowck-plugin, id=9)
xfce4-panel(external): windowck-plugin-9: child spawned; pid=2071, argc=8
xfce4-panel(external): register dbus path /org/xfce/Panel/Wrapper/10
xfce4-panel(module): new item (type=external-wrapper, name=wckbuttons, id=10)
xfce4-panel(external): wckbuttons-10: child spawned; pid=2074, argc=8
xfce4-panel(external): xfce4-sensors-plugin-11: child is embedded; 6 properties in queue
xfce4-panel(external): systray-6: child is embedded; 6 properties in queue
xfce4-panel(external): windowck-plugin-9: child is embedded; 6 properties in queue
xfce4-panel(systray): registered manager on screen 0
xfce4-panel(external): wckbuttons-10: child is embedded; 6 properties in queue
xfce4-panel(external): cpufreq-4: child is embedded; 6 properties in queue
xfce4-panel(external): notification-plugin-13: child is embedded; 6 properties in queue
xfce4-panel(external): cpugraph-7: child is embedded; 6 properties in queue
xfce4-panel(external): xkb-2: child is embedded; 6 properties in queue
xfce4-panel(external): systemload-8: child is embedded; 6 properties in queue

(wrapper-2.0:2058): GLib-GIO-CRITICAL **: 20:39:29.988: g_file_new_for_path: assertion 'path != NULL' failed

(wrapper-2.0:2058): GLib-GIO-CRITICAL **: 20:39:29.988: g_file_monitor_file: assertion 'G_IS_FILE (file)' failed

(wrapper-2.0:2058): GLib-GObject-WARNING **: 20:39:29.988: invalid (NULL) pointer instance

(wrapper-2.0:2058): GLib-GObject-CRITICAL **: 20:39:29.988: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(wrapper-2.0:2058): Gtk-WARNING **: 20:39:29.988: Attempting to add a widget with type GtkToggleButton to a container of type XfcePanelPlugin, but the widget is already inside a container of type XfcePanelPlugin, please remove the widget from its existing container first.

(wrapper-2.0:2053): Gtk-WARNING **: 20:39:29.993: gtk_widget_size_allocate(): attempt to allocate widget with width -1 and height 58

(wrapper-2.0:2053): Gtk-WARNING **: 20:39:29.993: Negative content width -1 (allocation 1, extents 1x1) while allocating gadget (node border, owner GtkFrame)

(wrapper-2.0:2054): Gtk-WARNING **: 20:39:30.042: Negative content width -1 (allocation 1, extents 1x1) while allocating gadget (node button, owner GtkToggleButton)

(wrapper-2.0:2054): Gtk-WARNING **: 20:39:30.042: gtk_widget_size_allocate(): attempt to allocate widget with width -2 and height 56

(wrapper-2.0:2055): Gtk-WARNING **: 20:39:30.043: gtk_widget_size_allocate(): attempt to allocate widget with width -3 and height 56

(wrapper-2.0:2058): Gtk-WARNING **: 20:39:30.055: Negative content width -3 (allocation 1, extents 2x2) while allocating gadget (node button, owner GtkToggleButton)

(wrapper-2.0:2056): Gtk-WARNING **: 20:39:30.055: gtk_widget_size_allocate(): attempt to allocate widget with width -3 and height 26

(wrapper-2.0:2057): Gtk-WARNING **: 20:39:30.085: Negative content width -1 (allocation 1, extents 1x1) while allocating gadget (node button, owner GtkButton)
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-about-Message: 20:40:17.517: No vendor information found in "/usr/share/xfce4/vendorinfo".
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb398a80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb398a80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=1428,15
xfce4-panel(positioning): 0x55d2fb398a80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb3a4ee0: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb3a4ee0: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=1336,17
xfce4-panel(positioning): 0x55d2fb3a4ee0: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb398a80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb398a80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=1428,15
xfce4-panel(positioning): 0x55d2fb398a80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb398a80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb398a80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=1428,15
xfce4-panel(positioning): 0x55d2fb398a80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050
xfce4-panel(display-layout): 0x55d2fb2c2c80: display=:0.0{comp=true}, screen-0[0x55d2fb05e020]=[1680,1050] (DVI-D-0=[0,0;1680,1050])
xfce4-panel(positioning): 0x55d2fb2c2c80: screen=0x55d2fb05e020, monitors=1, output-name=(null), span-monitors=false, base=840,1019
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050c
xfce4-panel(positioning): 0x55d2fb2c2c80: working-area: screen=0x55d2fb05e020, x=0, y=0, w=1680, h=1050

Offline

#8 2019-09-07 19:04:22

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 5,830

Re: First appearance of application menu takes about ten seconds

Nothing there. Lets see if its an issue from the number of menu entries. If you have a ~/.config/menus/xfce-applications.menu file, back it up:

cp ~/.config/menus/xfce-applications.menu ~/.config/menus/xfce-applications.menu.BAK

...and create a new ~/.config/menus/xfce-applications.menu file with the following basic content:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
  "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">

<Menu>
    <Name>Xfce</Name>

    <DefaultAppDirs/>
    <DefaultDirectoryDirs/>
    <DefaultMergeDirs/>

    <Include>
        <Category>X-Xfce-Toplevel</Category>
    </Include>

    <Layout>
        <Filename>exo-terminal-emulator.desktop</Filename>
        <Filename>exo-file-manager.desktop</Filename>
        <Filename>exo-mail-reader.desktop</Filename>
        <Filename>exo-web-browser.desktop</Filename>
        <Separator/>
        <Filename>xfce4-about.desktop</Filename>
        <Filename>xfce4-session-logout.desktop</Filename>
    </Layout>

</Menu>

See if that results in a menu that pops up quicker.

Note: to return to your previous menu, just restore  ~/.config/menus/xfce-applications.menu.BAK.

Edit: there is an existing bug report about this issue.

Last edited by ToZ (2019-09-07 19:05:39)

Offline

#9 2019-09-08 06:59:51

bernd_b
Member
Registered: 2019-08-25
Posts: 7

Re: First appearance of application menu takes about ten seconds

With this modification, the menu appears at once. But it consists of only the four entries plus the "About Xfce" and "Log Out" - I guess exactly what it described in the given file.

Offline

#10 2019-09-08 09:50:38

ToZ
Moderator
From: Canada
Registered: 2011-06-02
Posts: 5,830

Re: First appearance of application menu takes about ten seconds

Then its taking that long because it's processing your many menu entries. What is your computer like (make/model/cpu/memory)? Is it an older/slower computer?

Offline

#11 2019-09-08 10:10:18

bernd_b
Member
Registered: 2019-08-25
Posts: 7

Re: First appearance of application menu takes about ten seconds

I don't think so, I've updated some month ago to an AMD Ryzen 5 2400G and insane 16 GB RAM.
The bottleneck could be the old fashioned SATA 2GB Hard Disk which I kept.

Maybe it's time to do further cleanup, I run this installation for many years now. But the old wine entries already saved me 5 from 10 seconds, that's a good start.

Offline

Board footer

Powered by FluxBB