Actually, auto-hide the dock or toggling panel mode, or another option - change panel position from left to right and back, these are all work, but not permanently (at least in my case).
I found solution for me in creating the service which runs the script on startup. This script is watching for screen lock/unlock. When the screen is being locked, it enables the auto-hide option. When the screen is being unlocked, it disables the auto-hide, thus resizing all of the windows. Why auto-hide - I discovered it works better than other two mentioned above options.
- Create script file:
mkdir ~/.local/script/ -p
nano ~/.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 )
- Allow execution
chmod +x ~/.local/script/screen_watcher.sh
- Create service entity file (I did it for user)
mkdir -p ~/.config/systemd/user/
nano ~/.config/systemd/user/screen_watcher.service
[Unit]
Description=Screen watcher script service
After=default.target
[Service]
Type=idle
ExecStart=%h/.local/script/screen_watcher.sh
[Install]
WantedBy=default.target
- Enable the service. (Note it must be done from user, not root)
systemctl --user enable screen_watcher && systemctl --user start screen_watcher
- Check if the service is up and running
systemctl --user status screen_watcher.service
Hope this helps till annoying overlapping behaviour is fixed.