Code Monkey home page Code Monkey logo

Comments (9)

soapergem avatar soapergem commented on September 24, 2024

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.

johannesjo avatar johannesjo commented on September 24, 2024

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.

johannesjo avatar johannesjo commented on September 24, 2024

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.

soapergem avatar soapergem commented on September 24, 2024

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.

soapergem avatar soapergem commented on September 24, 2024

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.

johannesjo avatar johannesjo commented on September 24, 2024

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.

soapergem avatar soapergem commented on September 24, 2024

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.

johannesjo avatar johannesjo commented on September 24, 2024

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.

johannesjo avatar johannesjo commented on September 24, 2024

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:

  1. We still parse the information from the popup windows.
  2. 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.
  3. 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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.