Guake / guake

Drop-down terminal for GNOME
https://guake.github.io
GNU General Public License v2.0
4.45k stars 579 forks source link

Kubuntu 22.04 Guake not using full width #2117

Open JayC1337 opened 2 years ago

JayC1337 commented 2 years ago

Hello,

just did an upgrade from Kubuntu 21.04 to 22.04. Since that, Guake does not use full width. There are around 40% of space free on the right side of the display. This happens on all three displays. On Kubuntu 21.04 it worked fine. Did a fresh install of 22.04 for other reasons but the problem persists.

Screenshot: https://ibb.co/LnzBqnk

Support output:

jayc@jayc-pc:~/Downloads$ guake --support

$ guake --support Guake Version: 3.8.5 Vte Version: 0.68.0 Vte Runtime Version: 0.68.0 -------------------------------------------------- GTK+ Version: 3.24.33 GDK Backend:
cppcooper commented 2 years ago

I'm running archlinux/kde and have been seeing this problem for something over a year. I've worked around it by setting the width to almost the full slider but I've found that to be unacceptable as of a few moment ago because of something I'm doing.

I can get it to use the full width, if I maximize and unmaximize guake. If I hide guake and show guake it resets to using, like JayC has indicated, ~40% of the screen width.

$ guake --support Guake Version: 3.9.1.dev0 Vte Version: 0.68.0 Vte Runtime Version: 0.68.0 -------------------------------------------------- GTK+ Version: 3.24.34 GDK Backend:
$ neofetch OS: Arch Linux x86_64 Kernel: 5.19.5-arch1-1 Uptime: 3 hours, 50 mins Packages: 1917 (pacman), 2 (dpkg) Shell: bash 5.1.16 Resolution: 1080x2560, 3840x2160 DE: Plasma 5.25.4 WM: KWin Theme: [Plasma], Breeze [GTK2], Adwaita [GTK3] Icons: [Plasma], breeze-dark [GTK2], Adwaita [GTK3] Terminal: guake CPU: AMD Ryzen 5 3600 (12) @ 3.600GHz GPU: AMD ATI Radeon RX 470/480/570/570X/580/580X/590 GPU: NVIDIA GeForce RTX 3060 Memory: 17349MiB / 64216MiB
ashhar24 commented 2 years ago

+1 facing the same. What I do is open a new tab and it resizes correctly. Would be great if this gets fixed.

lake-effect commented 2 years ago

Resizing the height also causes the width to reset to the proper setting.

guake --support
<details><summary>$ guake --support</summary>

Guake Version:      3.8.5

Vte Version:        0.68.0

Vte Runtime Version:    0.68.0

--------------------------------------------------
GTK+ Version:       3.24.33

GDK Backend:        <GdkX11.X11Display

--------------------------------------------------
Desktop Session: plasma

--------------------------------------------------
Display: :0

RGBA visual: True

Composited: True

* Monitor: 0 - SPT DisplayPort-0
    * Geometry:     1920 x 1080 at 0, 0
    * Size:     597 x 336 mm²
    * Primary:      True
    * Refresh rate: 165.0 Hz
    * Subpixel layout:  unknown
* Monitor: 1 - ACR HDMI-A-1
    * Geometry:     1920 x 1080 at 1920, 0
    * Size:     521 x 293 mm²
    * Primary:      False
    * Refresh rate: 60.0 Hz
    * Subpixel layout:  unknown
cppcooper commented 2 years ago

I did a bit of digging, the property for the width appears to be this key: https://github.com/Guake/guake/blob/50c19446b5e6ffde10f0d4f849259d723054b9bd/guake/data/org.guake.gschema.xml#L170-L174

Which then seems to be tied to a callback here https://github.com/Guake/guake/blob/50c19446b5e6ffde10f0d4f849259d723054b9bd/guake/gsettings.py#L59-L61 the callback: https://github.com/Guake/guake/blob/50c19446b5e6ffde10f0d4f849259d723054b9bd/guake/gsettings.py#L152-L158

Since that all appears to work, it is getting overridden somewhere. For me I really only seem to recall ever seeing this behaviour when I toggle guake open.. Sooo that's presumably tied to this code

https://github.com/Guake/guake/blob/50c19446b5e6ffde10f0d4f849259d723054b9bd/guake/guake_app.py#L569-L600

So maybe a solution [hack] here is to call the resize at the end of the unhide?

edit: I don't do python, so I don't immediately know how to implement said hack.

cppcooper commented 2 years ago

This appears to be a duplicate of #565

MrHedmad commented 2 years ago

I'm also getting this exact problem on archlinux/kde (with the latest guake). The issue disappears if the window width is not exactly 100%.

ashhar24 commented 2 years ago

I'm also getting this exact problem on archlinux/kde (with the latest guake). The issue disappears if the window width is not exactly 100%.

Awesome. This is so helpful.

rmeissn commented 1 year ago

I'm running Fedora 37 and a weird window width behaviour started (for me) on the 26th of December. I've recorded a small video, showcasing the issue. I'm starting with a width of 100%, and I'm decreasing the width (via keyboard arrow) on each guake open by 1 key press. You can clearly see that guake 1) opened up like it should, but immediately changed its size to horizontally centred and cropped in the beginning, 2) opened up like it should, but immediately shifted to the left on the first width < 100%, 3) increases its width while moving the width slider further down and starts to 4) decrease the width on moving the width slide further down. The guake windows even seems to be influenced by other windows (not part of the video), as guake starts at a vertically different positions while other windows are in the background (guake slided a bit down). EDIT: changing the window alignment from left to centred won't change the behaviour at all, but aligns the window horizontally centred after the 3. width change.

Guake Issue.webm

My last update was on the 24th of December, and the only related things might be:

...
Upgrade  python-unversioned-command-3.11.1-1.fc37.noarch     @updates
Upgraded python-unversioned-command-3.11.0-1.fc37.noarch     @@System
Upgrade  python3-3.11.1-1.fc37.x86_64                        @updates
Upgraded python3-3.11.0-1.fc37.x86_64                        @@System
Upgrade  python3-libs-3.11.1-1.fc37.x86_64                   @updates
Upgraded python3-libs-3.11.0-1.fc37.x86_64                   @@System
Upgrade  python3-tkinter-3.11.1-1.fc37.x86_64                @updates
Upgraded python3-tkinter-3.11.0-1.fc37.x86_64                @@System
...
Upgrade  xorg-x11-drv-intel-2.99.917-54.20210115.fc37.x86_64 @updates
Upgraded xorg-x11-drv-intel-2.99.917-53.20200205.fc37.x86_64 @@System
...

EDIT: Downgrading python3 or xorg-x11-drv-intel won't help.

guake --support          
<details><summary>$ guake --support</summary>

Guake Version:      3.7.0

Vte Version:        0.70.2

Vte Runtime Version:    0.70.2

--------------------------------------------------
GTK+ Version:       3.24.35

GDK Backend:        GdkX11.X11Display

--------------------------------------------------
Desktop Session: gnome

--------------------------------------------------
Display: :0

RGBA visual: True

Composited: True

* Monitor: 0 -  XWAYLAND1
    * Geometry:     1920 x 1080 at 0, 0
    * Size:     510 x 290 mm²
    * Primary:      True
    * Refresh rate: 59.96 Hz
    * Subpixel layout:  unknown
* Monitor: 1 -  XWAYLAND0
    * Geometry:     1920 x 1080 at 1920, 0
    * Size:     510 x 290 mm²
    * Primary:      False
    * Refresh rate: 59.96 Hz
    * Subpixel layout:  unknown

I'm using Wayland, which worked perfectly fine with guake so far.

ChadBailey commented 1 year ago

+1, kubuntu 22.04 - happens on both machines I have running this setup. Also lots of people talking about it in other places online (I found them all before finding the github to report the bug)

chilenoneto commented 1 year ago

same issue here. and putting the height to 100% make guake use 100% of width.

Neofecth

christian@HP-Linux


OS: Kubuntu 22.10 x86_64 Host: HP EliteBook x360 1030 G2 Kernel: 5.19.0-38-generic Uptime: 34 mins Packages: 2138 (dpkg), 17 (flatpak), 9 (snap) Shell: bash 5.2.2 Resolution: 1920x1080 DE: Plasma 5.25.5 WM: KWin Theme: [Plasma], Breeze [GTK2/3] Icons: [Plasma], breeze [GTK2/3] Terminal: guake CPU: Intel i7-7600U (4) @ 3.900GHz GPU: Intel HD Graphics 620 Memory: 2383MiB / 7730MiB

Guake support

**`

$ guake --support

Guake Version: 3.9.0

Vte Version: 0.70.0

Vte Runtime Version: 0.70.0


GTK+ Version: 3.24.34

GDK Backend: <GdkX11.X11Display


Desktop Session: plasma


Display: :0

RGBA visual: True

Composited: True

  • Monitor: 0 - IVO eDP-1
    • Geometry: 1920 x 1080 at 0, 0
    • Size: 294 x 165 mm²
    • Primary: True
    • Refresh rate: 120.019 Hz
    • Subpixel layout: unknown**
pawlakm commented 1 year ago

Workaround: set horizontal alignment to left or right with a displacement of 1 px for width.

cppcooper commented 1 year ago

Perhaps one of you (@ChadBailey or @MrHedmad) could take a shot at a PR to fix this? I tracked down what seemed like all the relevant code https://github.com/Guake/guake/issues/2117#issuecomment-1254249817 but still unclear how to implement a fix with that information and I am still not planning to learn python anytime soon.

MrHedmad commented 1 year ago

Ok, so this is a bit weird. I've tried to setup my dev environment to try and fix/triage this, by doing:

# To remove the system install of guake
sudo pacman -R guake

# Clone the `main` branch of guake locally
git clone <my fork of guake>

cd ./guake
# Although I had all the dev requirements, I wanted to be sure
# I had everything, so I ran the suggested pacman commands in
./scripts/bootstrap-dev-arch.sh run make

# build the package from source
make
sudo make install

I then check that the issue was still there and... the issue was fixed (?). This is weird because I've touched absolutely nothing code-wise. This makes me think that it might not be guake-related at all:

  • The issue seems to be KDE specific;
  • Rebuilding from source removes the problem (surviving across reboots);
  • Running with guake -v shows that the calls to set_final_window_rect are being called properly;
  • Reinstalling the pacman package makes the issue return.

Finally, running the pacman-installed (bugged) guake shows this in the debug logs, as the final call to set_final_window_rect before the window is drawn:

set_final_window_rect
  height_percents = 50
  width_percents = 100 <<< This is correct (from the options file)
  halignment = 0
  valignment = 0
  hdisplacement = 0
  vdisplacement = 0
Current monitor geometry
  window_rect.x: 1920
  window_rect.y: 0
  window_rect.height: 1036
  window_rect.width: 1920 << This is the correct monitor width...
aligning to center!
RESIZING MAIN WINDOW TO THE FOLLOWING VALUES:
  window_rect.x: 1920
  window_rect.y: 0
  window_rect.height: 518
  window_rect.width: 1920 << ...and this is the correct final window width!
Updated window position: (root_x=0, root_y=0)

As you can see, guake is trying to resize the window at the correct size/position so at least we can rule out that set_final_window_rect is being called incorrectly.

This leads me to assume that the issue might be in KDE/GTK itself? Perhaps in one of the calls to GTK that guake does? But why does the issue disappear when installing from source? I used the same version on Python that my overall system uses (3.10.10).

Can anyone check that installing from the latest commit (172a9c014ba4c62df9a5528536bc5ebf6dacd705) fixes the issue for them too?

My neofetch for reference:

Neofetch info ``` hedmad@NucEvo ------------- OS: Arch Linux x86_64 Host: NUC11TNHi5 M11926-403 Kernel: 6.2.9-zen1-1-zen Uptime: 30 mins Packages: 1423 (pacman) Shell: zsh 5.9 Resolution: 1920x1080, 1920x1080 DE: Plasma 5.27.3 WM: KWin Theme: [Plasma], Breeze [GTK2/3] Icons: [Plasma], breeze-dark [GTK2/3] Terminal: guake CPU: 11th Gen Intel i5-1135G7 (8) @ 4.200GHz GPU: Intel TigerLake-LP GT2 [Iris Xe Graphics] Memory: 3217MiB / 15619MiB ```

I am a humble data scientist and know very little about GTK/Qt and GUI applications in general, so even though I code in Python I'm not sure how much I can contribute here.

I hope this will prove more informative than my last comment.

cppcooper commented 1 year ago
* The issue seems to be KDE specific;

This can be refuted as @rmeissn reported a DE of gnome. Though the end of their post was a bit ambiguous:

I'm using Wayland, which worked perfectly fine with guake so far.

Whether this means it worked great up til then, or they switched to it and the problem was resolved.

* Reinstalling the `pacman` package makes the issue return.

There have been new commits to the guake repo, though I concede none appear (on the message level) to be directed at changes like this.

Can anyone check that installing from the latest commit (172a9c0) fixes the issue for them too?

I can confirm this fixes the issue for me as well. I tried to go with the AUR package, but it was failing for me so I just cloned and installed that way.

Additionally, I rolled back to 238d33d5a2e222ac5cebf78f19a0758422289672 which matches with the date on the arch package db.. Installing from source still fixed the problem. I don't care enough to try and isolate the difference from this point though.. I'd presume the arch package is missing a file or something like that.. or perhaps was intended for a different version of GTK than what is installed???

MrHedmad commented 1 year ago

Thanks for confirming that the issue is resolved when compiling from source.

If we assume that the issue is due to packaging, isn't it a bit surprising that is broken both on Arch and on Debian (for those that have the issue on KUbuntu)?

Can someone with Debian-based builds install it from source and confirm it fixes the issue?

I can try to investigate what the PKGBUILD for the guake package on Arch is doing, but it's officially packaged, so I doubt there is an issue there (or if there is, I doubt it is the packager fault).

cppcooper commented 1 year ago

minor update

The behaviour can still be reproduced on my end, even with this fixed install.

To reproduce:

  1. unhide guake
  2. fullscreen guake (F11 for me)
  3. hide guake
  4. unhide guake
  5. un-fullscreen (again F11 for me)
  6. see guake take a portion of the screen's width

This only works on my right-side portrait monitor though. On my center 4k it still takes the full width.. but it experiences a wonky vertical offset.. not from the exact same steps but similar.. also different is that it persists until I switch monitors.

cppcooper commented 1 year ago

Additionally, this is an actual duplicate of #814 and #565 which I just found.

rmeissn commented 1 year ago

I'm using Wayland, which worked perfectly fine with guake so far.

Whether this means it worked great up til then, or they switched to it and the problem was resolved.

This means that I'm using Wayland (already for >2 years) and had no such problems until the date of my first post in this issue - so Guake on Wayland was working correctly before something happened. I was adding this, as the WM is important side information and many people (on other projects) seem to say ~"yeah, probably Wayland related", without looking into the issue itself. So, I wanted to explicitly point out that it was working correctly before on Wayland.

lake-effect commented 1 year ago

Wonder how that fits into the bug appearing on X11 also.

rmeissn commented 1 year ago

I'm currently on Fedora 38, which ships Guake 3.7.0, and got the problem described in this thread. I've now updated to 3.9.0 by using this copr repo, which resolved the issue for me. So, it seems to be an issue with at least v3.7.0.

Can you observe similar versions on Ubuntu based systems? Current Ubuntu 22.04 should ship Guake 3.8.5.

cppcooper commented 1 year ago

Dunno about on Ubuntu, but on arch here, and as far back as my first post I was on 3.9.1.dev0 it's all in the collapsed support information

Now [fixed~]:

Guake Terminal: 3.9.1.dev28
VTE: 0.72.0
VTE runtime: 0.72.0
Gtk: 3.24.36

Then [broken]:

Guake Version: 3.9.1.dev0
Vte Version: 0.68.0
Vte Runtime Version: 0.68.0
GTK+ Version: 3.24.34