Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wskorodecki-paypo opened this issue Apr 12, 2022 · 16 comments
Open

Comments

@wskorodecki-paypo
Copy link

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
@Davidy22
Copy link
Collaborator

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

@wskorodecki-paypo
Copy link
Author

@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?

@Davidy22
Copy link
Collaborator

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
Copy link
Collaborator

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.

@wskorodecki-paypo
Copy link
Author

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 ""

@Davidy22
Copy link
Collaborator

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?

@wskorodecki-paypo
Copy link
Author

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

@Davidy22
Copy link
Collaborator

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

@wskorodecki-paypo
Copy link
Author

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

@Davidy22
Copy link
Collaborator

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.

@mrpavlikov
Copy link

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.

@skjo0c
Copy link

skjo0c commented Jun 6, 2022

Having the same issue after updating to 22.04 ubuntu budgie

@Davidy22
Copy link
Collaborator

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

@carolpettirossi
Copy link

Having the same issue after updating to 22.04

@pongraczi
Copy link

Using Ubutntu PPA, version 3.9.0 seems working as expected.

@jkatnik
Copy link

jkatnik commented Sep 19, 2024

By default, Ubuntu 22.04 installs buggy Guake version (3.8)

oneliner fix:

sudo add-apt-repository ppa:linuxuprising/guake && sudo apt update && sudo apt install guake

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants