guake icon indicating copy to clipboard operation
guake copied to clipboard

Tab names lost after reboot or after launching file manager (Caja)

Open wskorodecki-paypo opened this issue 2 years ago • 16 comments

Describe the bug

Custom tab names are lost after rebooting the system or after launching Caja.

Expected behavior

Once a new custom name is set for a tab it should be remembered and used again after restarting Guake, OS or after launching file manager like Caja directly from Guake tab.

Actual behavior

Each tab name are being reset to the default (containing a path). Additionally - launching Caja directly from Guake tab leads to clear output in every tab.

To Reproduce

Run the following command directly from Guake tab:

caja

OS: Arch Linux Kernel: 5.17.1-arch1-1 MATE 1.26.0 Caja 1.26.0


$ guake --support (guake:41290): Gtk-WARNING **: 11:22:13.414: Theme parsing error: gtk-contained-dark.css:2871:228: Missing closing bracket for :not()

Guake Version: 3.8.6.dev0

Vte Version: 0.68.0

Vte Runtime Version: 0.68.0


GTK+ Version: 3.24.33

GDK Backend: <GdkX11.X11Display


Desktop Session: mate


Display: :0

RGBA visual: True

Composited: True

  • Monitor: 0 - AUO eDP-1
    • Geometry: 1920 x 1080 at 0, 1080
    • Size: 309 x 174 mm²
    • Primary: True
    • Refresh rate: 120.015 Hz
    • Subpixel layout: unknown
  • Monitor: 1 - BNQ HDMI-1
    • Geometry: 1920 x 1080 at 0, 0
    • Size: 531 x 299 mm²
    • Primary: False
    • Refresh rate: 60.0 Hz
    • Subpixel layout: unknown

wskorodecki-paypo avatar Apr 12 '22 10:04 wskorodecki-paypo

If you go to preferences and check the "Automatically save session when the tabs has been modified" box Guake should save tab names immediately

Davidy22 avatar Apr 12 '22 11:04 Davidy22

@Davidy22 I have this option enabled for a long time. It looks like there is some bug because running caja directly from Guake resets tab names. It is weird because sometimes when I launch Caja outside of Guake the problem occurs again.

From user perspective it looks like some problem with internal communication with system. Perhaps it is DBus related?

wskorodecki-paypo avatar Apr 13 '22 06:04 wskorodecki-paypo

Went and installed caja, ran caja in a renamed tab and did not encounter this. Do you maybe have any scripts set to run with a caja session?

Davidy22 avatar Apr 16 '22 04:04 Davidy22

Actually, if we suspect there's some rogue dbus signals being sent you could run dbus-monitor, invoke the bug and grab the output generated when you invoked the bug to see if any program sent a dbus signal it shouldn't have.

Davidy22 avatar Apr 20 '22 03:04 Davidy22

The following output has been generated after running dbus-monitor from QTerminal:

signal time=1650435818.263329 sender=org.freedesktop.DBus -> destination=:1.129 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.129"
signal time=1650435818.263402 sender=org.freedesktop.DBus -> destination=:1.129 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.129"

After launching caja from Guake:

method call time=1650435823.110932 sender=:1.130 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1650435823.110947 sender=org.freedesktop.DBus -> destination=:1.130 serial=1 reply_serial=1
   string ":1.130"
signal time=1650435823.110958 sender=org.freedesktop.DBus -> destination=(null destination) serial=173 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.130"
   string ""
   string ":1.130"
signal time=1650435823.110970 sender=org.freedesktop.DBus -> destination=:1.130 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.130"
method call time=1650435823.111162 sender=:1.130 -> destination=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.gtk.vfs.Daemon'"
method return time=1650435823.111174 sender=org.freedesktop.DBus -> destination=:1.130 serial=3 reply_serial=2
method call time=1650435823.111193 sender=:1.130 -> destination=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=StartServiceByName
   string "org.gtk.vfs.Daemon"
   uint32 0
method return time=1650435823.111218 sender=org.freedesktop.DBus -> destination=:1.130 serial=4 reply_serial=3
   uint32 2
method call time=1650435823.111308 sender=:1.130 -> destination=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.gtk.vfs.Daemon"
method return time=1650435823.111318 sender=org.freedesktop.DBus -> destination=:1.130 serial=5 reply_serial=4
   string ":1.3"
method call time=1650435823.111405 sender=:1.130 -> destination=:1.3 serial=5 path=/org/gtk/vfs/mounttracker; interface=org.gtk.vfs.MountTracker; member=ListMountableInfo
method return time=1650435823.111669 sender=:1.3 -> destination=:1.130 serial=78 reply_serial=5
   array [
      struct {
         string "davs+sd"
         string "davs+sd"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "dav+sd"
         string "dav+sd"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "google-drive"
         string "google-drive"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "ftp"
         string "ftp"
         array [
         ]
         int32 21
         boolean true
      }
      struct {
         string "afp-volume"
         string "afp"
         array [
         ]
         int32 548
         boolean true
      }
      struct {
         string "http"
         string "http"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "localtest"
         string "localtest"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "davs"
         string "davs"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "dav"
         string "dav"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "computer"
         string "computer"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "ftps"
         string "ftps"
         array [
         ]
         int32 21
         boolean true
      }
      struct {
         string "trash"
         string "trash"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "network"
         string "network"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "afp-server"
         string "afp"
         array [
         ]
         int32 548
         boolean true
      }
      struct {
         string "burn"
         string "burn"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "dns-sd"
         string "dns-sd"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "archive"
         string "archive"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "recent"
         string "recent"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "sftp"
         string "sftp"
         array [
            string "ssh"
         ]
         int32 22
         boolean true
      }
      struct {
         string "ftpis"
         string "ftpis"
         array [
         ]
         int32 990
         boolean true
      }
      struct {
         string "cdda"
         string "cdda"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "admin"
         string "admin"
         array [
         ]
         int32 0
         boolean false
      }
   ]
method call time=1650435823.112028 sender=:1.130 -> destination=org.freedesktop.DBus serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.gtk.vfs.Daemon'"
method return time=1650435823.112039 sender=org.freedesktop.DBus -> destination=:1.130 serial=6 reply_serial=6
signal time=1650435823.176270 sender=:1.5 -> destination=(null destination) serial=121 path=/org/gnome/SessionManager; interface=org.gnome.SessionManager; member=ClientAdded
   object path "/org/gnome/SessionManager/Client15"
method call time=1650435823.176561 sender=:1.130 -> destination=org.freedesktop.DBus serial=7 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RequestName
   string "org.mate.Caja"
   uint32 4
method return time=1650435823.176575 sender=org.freedesktop.DBus -> destination=:1.130 serial=7 reply_serial=7
   uint32 3
method call time=1650435823.176835 sender=:1.130 -> destination=org.freedesktop.DBus serial=8 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.mate.Caja',interface='org.gtk.Actions',member='Changed',path='/org/mate/Caja'"
method return time=1650435823.176848 sender=org.freedesktop.DBus -> destination=:1.130 serial=8 reply_serial=8
method call time=1650435823.176852 sender=:1.130 -> destination=org.mate.Caja serial=9 path=/org/mate/Caja; interface=org.gtk.Actions; member=DescribeAll
method return time=1650435823.177000 sender=:1.19 -> destination=:1.130 serial=104 reply_serial=9
   array [
      dict entry(
         string "quit"
         struct {
            boolean true
            signature ""
            array [
            ]
         }
      )
   ]
method call time=1650435823.177514 sender=:1.130 -> destination=org.freedesktop.DBus serial=10 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.mate.Caja',interface='org.gtk.Actions',member='Changed',path='/org/mate/Caja'"
method return time=1650435823.177526 sender=org.freedesktop.DBus -> destination=:1.130 serial=9 reply_serial=10
signal time=1650435823.178928 sender=org.freedesktop.DBus -> destination=:1.130 serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.130"
signal time=1650435823.178943 sender=org.freedesktop.DBus -> destination=(null destination) serial=174 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.130"
   string ":1.130"
   string ""
signal time=1650435823.181084 sender=:1.5 -> destination=(null destination) serial=122 path=/org/gnome/SessionManager; interface=org.gnome.SessionManager; member=ClientRemoved
   object path "/org/gnome/SessionManager/Client15"
signal time=1650435823.202409 sender=:1.20 -> destination=(null destination) serial=122 path=/org/mate/panel/applet/WindowListApplet/1; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.mate.panel.applet.Applet"
   array [
      dict entry(
         string "SizeHints"
         variant             array [
               int32 664
               int32 0
            ]
      )
   ]
   array [
   ]
signal time=1650435823.204615 sender=:1.20 -> destination=(null destination) serial=123 path=/org/mate/panel/applet/WindowListApplet/4; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.mate.panel.applet.Applet"
   array [
      dict entry(
         string "SizeHints"
         variant             array [
               int32 1826
               int32 0
            ]
      )
   ]
   array [
   ]
method call time=1650435823.301092 sender=:1.131 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1650435823.301107 sender=org.freedesktop.DBus -> destination=:1.131 serial=1 reply_serial=1
   string ":1.131"
signal time=1650435823.301117 sender=org.freedesktop.DBus -> destination=(null destination) serial=175 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.131"
   string ""
   string ":1.131"
signal time=1650435823.301126 sender=org.freedesktop.DBus -> destination=:1.131 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.131"
method call time=1650435823.301363 sender=:1.131 -> destination=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.gtk.vfs.Daemon'"
method return time=1650435823.301373 sender=org.freedesktop.DBus -> destination=:1.131 serial=3 reply_serial=2
method call time=1650435823.301385 sender=:1.131 -> destination=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=StartServiceByName
   string "org.gtk.vfs.Daemon"
   uint32 0
method return time=1650435823.301389 sender=org.freedesktop.DBus -> destination=:1.131 serial=4 reply_serial=3
   uint32 2
method call time=1650435823.301575 sender=:1.131 -> destination=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.gtk.vfs.Daemon"
method return time=1650435823.301584 sender=org.freedesktop.DBus -> destination=:1.131 serial=5 reply_serial=4
   string ":1.3"
method call time=1650435823.301741 sender=:1.131 -> destination=:1.3 serial=5 path=/org/gtk/vfs/mounttracker; interface=org.gtk.vfs.MountTracker; member=ListMountableInfo
method return time=1650435823.301961 sender=:1.3 -> destination=:1.131 serial=79 reply_serial=5
   array [
      struct {
         string "davs+sd"
         string "davs+sd"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "dav+sd"
         string "dav+sd"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "google-drive"
         string "google-drive"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "ftp"
         string "ftp"
         array [
         ]
         int32 21
         boolean true
      }
      struct {
         string "afp-volume"
         string "afp"
         array [
         ]
         int32 548
         boolean true
      }
      struct {
         string "http"
         string "http"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "localtest"
         string "localtest"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "davs"
         string "davs"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "dav"
         string "dav"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "computer"
         string "computer"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "ftps"
         string "ftps"
         array [
         ]
         int32 21
         boolean true
      }
      struct {
         string "trash"
         string "trash"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "network"
         string "network"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "afp-server"
         string "afp"
         array [
         ]
         int32 548
         boolean true
      }
      struct {
         string "burn"
         string "burn"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "dns-sd"
         string "dns-sd"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "archive"
         string "archive"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "recent"
         string "recent"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "sftp"
         string "sftp"
         array [
            string "ssh"
         ]
         int32 22
         boolean true
      }
      struct {
         string "ftpis"
         string "ftpis"
         array [
         ]
         int32 990
         boolean true
      }
      struct {
         string "cdda"
         string "cdda"
         array [
         ]
         int32 0
         boolean false
      }
      struct {
         string "admin"
         string "admin"
         array [
         ]
         int32 0
         boolean false
      }
   ]
method call time=1650435823.302284 sender=:1.131 -> destination=org.freedesktop.DBus serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.gtk.vfs.Daemon'"
method return time=1650435823.302295 sender=org.freedesktop.DBus -> destination=:1.131 serial=6 reply_serial=6
method call time=1650435823.378673 sender=:1.132 -> destination=org.freedesktop.DBus serial=1 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1650435823.378685 sender=org.freedesktop.DBus -> destination=:1.132 serial=1 reply_serial=1
   string ":1.132"
signal time=1650435823.378691 sender=org.freedesktop.DBus -> destination=(null destination) serial=176 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.132"
   string ""
   string ":1.132"
signal time=1650435823.378696 sender=org.freedesktop.DBus -> destination=:1.132 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.132"
method call time=1650435823.378802 sender=:1.132 -> destination=org.freedesktop.DBus serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.guake3.RemoteControl"
method return time=1650435823.378812 sender=org.freedesktop.DBus -> destination=:1.132 serial=3 reply_serial=2
   string ":1.126"
method call time=1650435823.378888 sender=:1.132 -> destination=:1.126 serial=3 path=/org/guake3/RemoteControl; interface=org.freedesktop.DBus.Introspectable; member=Introspect
method return time=1650435823.379197 sender=:1.126 -> destination=:1.132 serial=5 reply_serial=3
   string "<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/org/guake3/RemoteControl">
  <interface name="org.freedesktop.DBus.Introspectable">
    <method name="Introspect">
      <arg direction="out" type="s" />
    </method>
  </interface>
  <interface name="org.guake3.RemoteControl">
    <method name="show_hide">
    </method>
    <method name="show">
    </method>
    <method name="show_from_remote">
    </method>
    <method name="hide">
    </method>
    <method name="hide_from_remote">
    </method>
    <method name="get_visibility">
      <arg direction="out" type="i" />
    </method>
    <method name="fullscreen">
    </method>
    <method name="unfullscreen">
    </method>
    <method name="add_tab">
      <arg direction="in"  type="s" name="directory" />
    </method>
    <method name="close_tab">
    </method>
    <method name="select_tab">
      <arg direction="in"  type="i" name="tab_index" />
    </method>
    <method name="get_selected_tab">
      <arg direction="out" type="i" />
    </method>
    <method name="get_selected_tablabel">
      <arg direction="out" type="s" />
    </method>
    <method name="get_tab_count">
      <arg direction="out" type="i" />
    </method>
    <method name="select_terminal">
      <arg direction="in"  type="i" name="term_index" />
    </method>
    <method name="get_selected_terminal">
      <arg direction="out" type="i" />
    </method>
    <method name="get_term_count">
      <arg direction="out" type="i" />
    </method>
    <method name="set_bgcolor">
      <arg direction="in"  type="s" name="bgcolor" />
    </method>
    <method name="set_fgcolor">
      <arg direction="in"  type="s" name="fgcolor" />
    </method>
    <method name="set_bgcolor_current_terminal">
      <arg direction="in"  type="s" name="bgcolor" />
    </method>
    <method name="set_fgcolor_current_terminal">
      <arg direction="in"  type="s" name="fgcolor" />
    </method>
    <method name="change_palette_name">
      <arg direction="in"  type="s" name="palette_name" />
    </method>
    <method name="reset_colors">
    </method>
    <method name="reset_colors_current">
    </method>
    <method name="get_tab_name">
      <arg direction="in"  type="i" name="tab_index" />
      <arg direction="out" type="s" />
    </method>
    <method name="rename_tab_uuid">
      <arg direction="in"  type="s" name="tab_uuid" />
      <arg direction="in"  type="s" name="new_text" />
    </method>
    <method name="rename_tab">
      <arg direction="in"  type="i" name="tab_index" />
      <arg direction="in"  type="s" name="new_text" />
    </method>
    <method name="rename_current_tab">
      <arg direction="in"  type="s" name="new_text" />
    </method>
    <method name="show_about">
    </method>
    <method name="show_prefs">
    </method>
    <method name="quit">
    </method>
    <method name="get_gtktab_name">
      <arg direction="in"  type="i" name="tab_index" />
      <arg direction="out" type="s" />
    </method>
    <method name="get_selected_uuidtab">
      <arg direction="out" type="s" />
    </method>
    <method name="v_split_current_terminal">
    </method>
    <method name="h_split_current_terminal">
    </method>
  </interface>
</node>
"
method call time=1650435823.379409 sender=:1.132 -> destination=:1.126 serial=4 path=/org/guake3/RemoteControl; interface=(null); member=show_hide
method return time=1650435823.379904 sender=:1.126 -> destination=:1.132 serial=6 reply_serial=4
signal time=1650435823.392732 sender=org.freedesktop.DBus -> destination=:1.132 serial=6 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.132"
signal time=1650435823.392750 sender=org.freedesktop.DBus -> destination=(null destination) serial=177 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.132"
   string ":1.132"
   string ""
signal time=1650435823.404885 sender=org.freedesktop.DBus -> destination=:1.131 serial=7 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
   string ":1.131"
signal time=1650435823.404906 sender=org.freedesktop.DBus -> destination=(null destination) serial=178 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.131"
   string ":1.131"
   string ""

wskorodecki-paypo avatar Apr 20 '22 16:04 wskorodecki-paypo

That's not quite what I was expecting to see. Is Guake is restarting when you run caja? When you invoke the bug, do your Guake terminals clear and reset?

Davidy22 avatar Apr 20 '22 18:04 Davidy22

It doesn't look like full restart but yes - Guake's tabs are completely cleared & reset. Other terminals like QTerminal remains untouched.

wskorodecki-paypo avatar Apr 21 '22 06:04 wskorodecki-paypo

So, including the text entered into the tabs? Like what they'd look like after someone types a clear?

Davidy22 avatar Apr 21 '22 07:04 Davidy22

Worse - as if I closed the tab and created a new one.

wskorodecki-paypo avatar Apr 21 '22 08:04 wskorodecki-paypo

Alright yeah that's what it looks like from the dbus output. So, for whatever reason, running caja is fully closing and restarting Guake on your system, it's not just resetting tab names. I suspect there's some kind of script or action set up somewhere, because fully exiting and then starting up Guake again isn't a feature provided by Guake itself.

Davidy22 avatar Apr 21 '22 08:04 Davidy22

I have this bug in Ubuntu 22.04 after upgrading from 21.10. Every time I close and restart Guake or reboot system it resets all tabs names. It was fine on previous Ubuntu versions.

mrpavlikov avatar May 30 '22 08:05 mrpavlikov

Having the same issue after updating to 22.04 ubuntu budgie

skjo0c avatar Jun 06 '22 05:06 skjo0c

Tab names changing after closing and reopening guake is different from the original reporter's issue where they observe guake restarting when a seemingly unrelated program is launched

Davidy22 avatar Jun 14 '22 03:06 Davidy22

Having the same issue after updating to 22.04

carolpettirossi avatar Jan 11 '23 15:01 carolpettirossi

Using Ubutntu PPA, version 3.9.0 seems working as expected.

pongraczi avatar Jan 13 '23 17:01 pongraczi