Hi List, I'm interested in urxvt being X-Session--Management-Protocol aware.
I started porting session support from mrxvt but its not working yet. I would, however, like to discuss the idea a bit here, in order not to waste too much time by running into the wrong direction. My understanding is, that once a connection to a session manager is established, the manager will invoke a specific callback (save_yourself) to initiate storing of state. For a first implementation, I consider the following state as relevant (maybe skip the tabbing stuff first): * Position and size of window, * Number of tabs, and * CWD of child (shell) inside each tab. I plan to store this state in the form of a restart command within the session manager. Alternatively, one could have urxvt-private state files where this information is stored and indexed with a key, which would be stored with the session manager. Restarting urxvt with a certain window size and position should be possible using the "geometry" command-line switch. Using the "cd" command-line switch, the initial path for a single shell can be preset. The tabbed extension would probably have to be extended to grab some command line switches here. Is there are defined way for a perl extension to get command line parameters? Furthermore, some properties (e.g., WM_CLIENT_LEADER) seem to be required for session management to work (currently, urxvt is currently completely ignored by session managers, xsm, ksmserver, and also smproxy). I hooked rxvt_session_init() into rxvt_term::create_windows(), closely after the creation of the top XWindow. Is this a good place? I don't know yet, where to hook rxvt_session_exit into. Any suggestions? I'd appreciate suggestions for the plan and especially feedback regarding X-protocol specifics. Cheers, Martin _______________________________________________ rxvt-unicode mailing list [email protected] http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode
