Comments (9)
Similarly, it will crash on lwsm restore
if I have that Hangouts window open. (I saved a profile with it closed first.)
from linux-window-session-manager.
Thank you very much for reporting. Good catch! It's probably not possible to launch the window from lwsm, but it should at least ignore it.
from linux-window-session-manager.
Could you maybe do me a favor? If you open up the console and type xprop
and then click on the extension window, what's the console output?
from linux-window-session-manager.
I'm not too familiar with the xprop
utility having never used it before. When I run it from my terminal it just hangs - until I Ctrl - C out of it.
from linux-window-session-manager.
Oh! I just noticed you said "and then click"... I had no idea a terminal utility could capture mouse click events like that. Here's the output:
_NET_WM_STATE(ATOM) =
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 0
_GTK_EDGE_CONSTRAINTS(CARDINAL) = 170
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 30, 0
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
_NET_WM_USER_TIME(CARDINAL) = 686745
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 960, 57
program specified minimum size: 1 by 1
WM_NAME(UTF8_STRING) = "Google Hangouts - [email protected]"
_NET_WM_NAME(UTF8_STRING) = "Google Hangouts - [email protected]"
XdndAware(ATOM) = BITMAP
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x1, 0x0, 0x0
_NET_WM_ICON(CARDINAL) = Icon (16 x 16):
░░▒▒░░
░▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒
░▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒░ ░░ ░▒▒░
▒▒▒░ ░░ ░▒▒▒
▒▒▒░ ░░ ░▒▒▒
░▒▒▒▒ ░▒▒ ░▒▒░
░▒▒▒▒░▒▒▒░▒▒▒░
▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒░
░░▒▒▒░
▒▒░
░
Icon (16 x 16):
░░▒▒░░
░▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒
░▒▒▒▒▒▒▒▒▒▒▒▒░
░▒▒░ ░░ ░▒▒░
▒▒▒░ ░░ ░▒▒▒
▒▒▒░ ░░ ░▒▒▒
░▒▒▒▒ ░▒▒ ░▒▒░
░▒▒▒▒░▒▒▒░▒▒▒░
▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒░
░▒▒▒▒▒▒▒░
░░▒▒▒░
▒▒░
░
_NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 44040251, 44040252
WM_WINDOW_ROLE(STRING) = "pop-up"
WM_CLASS(STRING) = "crx_nckgahadagoaajjgafhacjanaoiihapd", "Google-chrome"
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_PID(CARDINAL) = 2454
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "gmyers-librem-15"
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, _NET_WM_PING, _NET_WM_SYNC_REQUEST
from linux-window-session-manager.
Thank you very much! What you can do for now is to add the app the exclusion list in your config file to WM_CLASS_EXCLUSIONS: [..., 'crx_nckgahadagoaajjgafhacjanaoiihapd.Google-chrome']
from linux-window-session-manager.
Perfect, now at least it's not crashing. It appears as if it ignores the window when I save; it closes the Hangouts window when I restore. Do you think with any future release, it would be possible to try and better support extension windows like this? Either don't close the window on restore and just leave it be, or better yet - try and resize it (when necessary) if present?
from linux-window-session-manager.
It's really difficult to find a generic solution here and easy to mess things up. Every application with different windows has different methods and perquisites to open them. Let's say I implement some special handling for different chrome windows, but this might conflict with chrome already handling that itself, opening excess windows or the wrong ones.
If your extension would be a PWA instead, this should work.
Don't know... I'll experiment with it a little.
from linux-window-session-manager.
I worked a little bit on the problem. For now I am excluding pop up windows completely. But if you're interested in helping me, I see another option:
- We still parse the information from the popup windows.
- Lwsm doesn't try to open an application, because most likely these windows will be opened up by their parent application in a specific manner.
- But if the window is there, lwsm will restore it to it's saved position.
If 2 doesn't work for your case, if the popup won't open up on chrome startup you might also adding a custom mapping of a specific command to the apps wmClassName (`crx_nckgahadagoaajjgafhacjanaoiihapd.Google-chrome'). In this case we would have to remove the pop-up exclusion mechanism I added.
Would you like to give it a shot? :) The code is a little bit messy to be honest, so it might not be that much fun to work with it, but I happily help you with any question, you might have.
from linux-window-session-manager.
Related Issues (20)
- Crash on steam deck
- GTK-3 (in xfce4) need to have there X and Y coordinates adjusted for restoring.
- LWSM stuck at 'Waiting for all applications to start...' HOT 1
- Saving session is not working on Ubuntu 20.04 HOT 1
- Multiple instances of the same application restored incorrectly HOT 4
- Restore fails for Gnome/Ubuntu HOT 4
- All windows restored to same GNOME workspace HOT 7
- Coping with multiple Firefox profiles HOT 5
- Error when saving/restoring edge app shortcuts HOT 2
- Not a single app got restored to its originall position HOT 7
- Not working for evince HOT 7
- Cannot save session HOT 10
- Pass parameters to application HOT 1
- Bug in restoring session with --closeAllOpenWindows from Terminal HOT 2
- Auto shutdown/startup script HOT 2
- do not overwrite config.json while restoring if json syntax error HOT 1
- To Save Application Behavior HOT 1
- Add to AUR HOT 3
- [feature request] Add option to freeze settings for an application
- UnhandledPromiseRejectionWarning: Error: Command failed: cat /proc/undefined/cmdline HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linux-window-session-manager.