felixfung/skippy-xd

Does not handle display rotation

Closed this issue · 13 comments

I have skippy-xd running in a daemon mode and it works brilliantly.

The only problem I have is that I can rotate my screen into portrait and skippy-xd does not change with it. Instead skippy keeps the screen size from when it was first launched. So the screen will be landscape and skippy will be portrait (or vica versa).

I can rotate the display with a keyboard shortcut or a touchpad gesture so its possible to rotate while skippy-xd is active. But it doesn't change window size whether the window is visible or not when rotation occurs.

I imagine the same problem would occur if the screen resolution changed, even if its not rotating.

I did a quick test and Skippy knows to update when the screen rotates with xrandr, with one or two screens.

Do you mean rotation while the skippy is already activated? Perhaps for tablet use?

Hmm, possibly I have an older version and this is solved now. I will download the latest source, build from that and let you know what happens.

I tried the latest code from this version but it completely messes up my display. I've had to revert to the dreamcat version.

Can you please post your set up and config file, and how your display is messed up?

This is from the dreamcat version

image

I was going to take a screengrab with the latest from this repo but its not working today. It reports -

init_xexts(): Xinerama extension: yes
config_load(): config file found. using "/home/self/.config/skippy-xd/skippy-xd.rc"
wm_check(): Your WM looks EWMH compliant.
corrupted size vs. prev_size
Aborted (core dumped)

skippy-xd.rc

[general]
exposeLayout=xd
distance = 60
useNetWMFullscreen = true
ignoreSkipTaskbar = false
updateFreq = 20.0
animationDuration = 250
lazyTrans = true
pipePath = /tmp/skippy-xd-fifo
movePointerOnStart = false
movePointerOnSelect = false
movePointerOnRaise = false
switchDesktopOnActivate = false
useNameWindowPixmap = false
forceNameWindowPixmap = false
includeFrame = true
allowUpscale = false
showAllDesktops = false
showUnmapped = true
preferredIconSize = 48
clientDisplayModes = thumbnail icon filled none
iconFillSpec = orig mid mid #00FFFF
fillSpec = orig mid mid #FFFFFF
background = orig mid mid #00000000

[xinerama]
showAll = true

[normal]
tint = black
tintOpacity = 0
opacity = 200

[highlight]
tint = #2eb398
tintOpacity = 32
opacity = 255

[tooltip]
show = true
followsMouse = false
offsetX = 256
offsetY = 20
align = mid
border = black
background = #2eb398
opacity = 128
text = #ffffff
textShadow = none
font = noto-sans-11:weight=regular

[bindings]
miwMouse1 = focus
miwMouse2 = close-ewmh
miwMouse3 = iconify
keysExitCancelOnRelease = Super_L
keysExitSelectOnRelease = Super_R Alt_L Alt_R ISO_Level3_Shift

image

Figure it out. This is with the latest code from this repo.

The error that was showing up (corrupted size vs. prev_size) happens when I have chromium running with a WebGL context. The figure with their arm out in the first image is WebGL.

It works when I close the browser but I get this strange blocky background. It looks almost like uninitialised video memory. If I launch the browser again, the bug returns.

The blurring effect comes from compton and its clearly not working in the newer image.

I should also mention I checked and if I have chromium running without WebGL active, skippy does not crash.

The config file has been overhauled:

https://github.com/felixfung/skippy-xd/blob/master/skippy-xd.sample.rc

I'm guessing the chromium issue is related to #51? Can you please try turning off these tooltip configs:

showDesktop = true
showMonitor = true

The background config has been updated as well. And I think when you update it it would work as before.

Hi @orangebowlerhat would you have any updates?

Hi @orangebowlerhat I am back from time off. If you can update on this issue so I can fix it, would be much appreciated. Thanks!

Hey @felixfung

Sorry for taking so long about this. I will test it in a couple of hours and report back. I guess I was trying to avoid the case where I download, build, rewrite the config file and then find it doesn't work and have to restore everything.

Yes I understand the inconvenience of the refactoring of the config file. With the number of config options that has been added, modified or removed over time, I felt it was the right thing to do.

Any bug reports, particularly high impact ones like segfault, would be highly appreciated, for the purpose of improving this app.

@orangebowlerhat I'm going to close the bug for now. Please feel free to reopen and update. Thanks!