Ubuntu 22.04 中最大化的窗口位于 Dock 下

Ubuntu 22.04 中最大化的窗口位于 Dock 下

从 Ubuntu 18.04 升级到 22.04 后,最大化窗口无法正确恢复 - 当 Ubuntu 从待机状态恢复时,它们会进入 Dock 下方(也许在锁定屏幕后也是如此?)。

在此处输入图片描述

如果我再次取消最大化并最大化窗口,它会正确地自动适应,并且 Dock 面板不会覆盖窗口。

如何解决?

答案1

我遇到了这个问题并且无意中修复了它:

  1. 我进入“设置/外观”并启用了“自动隐藏 Dock”切换,因为这个 Dock 问题让我太困扰了
  2. 然后我通过将窗口大小从大调整到小,然后再调整回最大来测试该功能的工作原理
  3. 我发现自动隐藏不适合我,所以我禁用了该功能,然后发现问题已解决。

答案2

实际上,自动隐藏停靠或切换面板模式,或另一个选项 - 将面板位置从左到右再向后更改,这些都是有效的,但不是永久的(至少在我的情况下)。

我找到了解决方案,即创建在启动时运行脚本的服务。此脚本用于监视屏幕锁定/解锁。当屏幕被锁定时,它会启用自动隐藏选项。当屏幕被解锁时,它会禁用自动隐藏,从而调整所有窗口的大小。为什么要自动隐藏 - 我发现它比上面提到的其他两个选项效果更好。

  1. 创建脚本文件:
# i.e ~/.local/script/screen_watcher.sh
#!/bin/bash

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
( while true
    do read X
    if echo $X | grep "boolean false" &> /dev/null; then
        sleep 0.5
        gsettings set org.gnome.shell.extensions.dash-to-dock dock-fixed 'true'
    elif echo $X | grep "boolean true" &> /dev/null; then
        gsettings set org.gnome.shell.extensions.dash-to-dock dock-fixed 'false'
    fi
    done )
  1. 允许执行
sudo chmod +x ~/.local/script/screen_watcher.sh
  1. 创建服务实体文件(我为用户创建)
/home/<user_name>/.config/systemd/user/screen_watcher.service
[Unit]
Description=Screen watcher script service
After=default.target
[Service]
Type=idle
ExecStart=/home/<user_name>/.local/script/screen_watcher.sh
[Install]
WantedBy=default.target
  1. 启用服务。(请注意,必须以用户身份而不是 root 身份执行此操作)
systemctl --user enable screen_watcher && systemctl --user start screen_watcher
  1. 检查服务是否已启动并正在运行
systemctl --user status screen_watcher.service

希望这能有所帮助,直到恼人的重叠行为得到解决。

相关内容