5

I'd like to resize a window inside an application but the edge I need to grab is hidden by overlay scrollbars. I don't want to completely disable overlay scrollbars, that's been asked and answered.

Here is a visual example illustrating the problem. The edge with the tiny markings indicating it can be grabbed and resized are hidden by the overlay scrollbars each time I move the mouse to it:

overlay-scrollbar-preventing-window-resize

3 Answers 3

3

Instead of moving with mouse cursor from left to right,come with mouse from the right side.

1
  • Interesting, this isn't in the documentation but seems to work better. Now I'll have to see if I remember... Mar 15, 2015 at 12:18
2

It works for me to position the mouse pointer just a little outside the border of the window (above the scrollbar), then move it a little up or down (in a straight line, until it is outside the scrollbar), then the resize icon appears.

Alternatively, you can wait a few seconds while keeping the mouse above the overlay scrollbar, the overlay scrollbar will disappear (fade away), the resize icon will appear.


Edit

Toggling between scroll modes with a shortcut key combination

Since you mentioned in a comment that toggling between scroll modes would be helpful, you can simply toggle the scrollbar mode to "normal" and back to "overlay" by putting the script below under a convenient key combination. It recognizes the current scrollbar mode, and switches between "normal" and "overlay-auto".

How to use

  1. Copy the script below into an empty file, save it as toggle_scrollbar.py

  2. Test the script by running it from a terminal window with the command:

     python3 /path/to/toggle_scrollbar.py
    
  3. If all works fine, make it available under a shortcut key combination: System Settings > "Keyboard" > "Shortcuts" > "Custom Shortcuts". Click the "+" and add the command.

The script:

#!/usr/bin/env python3
import subprocess

get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8").strip()
def set_value(cmd):
    subprocess.Popen(["/bin/bash", "-c", cmd])

if get("gsettings get com.canonical.desktop.interface scrollbar-mode") != "'normal'":
    cmd = "gsettings set com.canonical.desktop.interface scrollbar-mode 'normal'"
else:
    cmd = "gsettings set com.canonical.desktop.interface scrollbar-mode 'overlay-auto'"

set_value(cmd)
3
  • It is this slow, fiddly behavior that I'm trying to avoid. It does work eventually but my workflow grinds to a halt every time I want to do this as I wait several seconds and make several attempts before I can grab the edge. A keyboard shortcut to temporarily disable the overlay would be great. Thanks for the reply & glad I'm not the only one having trouble with it. Mar 15, 2015 at 12:22
  • Sure, I think we are basically talking about the same thing. I would toggle off, resize, then toggle back on each time. Mar 15, 2015 at 12:28
  • @TomBrossman wait a second, will post an addition... Mar 15, 2015 at 12:28
0

There is an elegant solution to your problem. It can save your time and make even more actions easier. The resize function can be done even from the middle of the window.

Application is called EasyStroke. All you need to do is configure your command:

type: Button

details: AltButton 2.

If you don't like using this application in CompizConfig Settings Manager/ Resize window you can adjust key/mouse combination. The default is: Alt+button2(middle mouse button) or Alt+F8.

Enjoy!

Not the answer you're looking for? Browse other questions tagged or ask your own question.