On 2019-03-21 09:48:36 Dr. Nikolaus Klepp wrote:
Anno domini 2019 Wed, 20 Mar 23:46:39 -0500
J Leslie Turriff scripsit:
On 2019-03-15 02:52:33 Dr. Nikolaus Klepp wrote:
> Anno domini 2019 Thu, 14 Mar 22:40:38 -0500
>
> J Leslie Turriff scripsit:
> > On 2019-03-14 20:15:13 Michael wrote:
> > > On Thursday 14 March 2019 06:26:16 pm J Leslie Turriff wrote:
> > > > On 2019-03-11 04:12:29 Dr. Nikolaus Klepp wrote:
> > > > > Anno domini 2019 Sun, 10 Mar 11:16:03 -0500
> > >
> > > .> > J Leslie Turriff scripsit:
> > > > > > On 2019-03-10 10:35:32 BorgLabs - Kate Draven wrote:
> > > > > > > On Sunday 10 March 2019, J Leslie Turriff wrote:
> > > > > > > > Is there a way to make TDE aware of
running
> > > > > > > > non-Trinity applications so that they can be
> > > > > > > > resurrected after Logout/Login? I have at least
one
> > > > > > > > X11-based application (X2 - The Programmer's
Editor)
> > > > > > > > that I use extensively, and it would be nice if
it
> > > > > > > > could remember across Logout/Login events.
I'm
> > > > > > > > wondering if something like a DCOP wrapper might
do the
> > > > > > > > job?
> > > > > > >
> > > > > > > Load the application into your autostart dir.
> > > > > > > /home/foo/.trinity/autostart
> > > > > > > Also, check the program's setting to see if it has
an
> > > > > > > autostart feature.
> > > > > >
> > > > > > Yes, that would work if I wanted it to start at every
> > > > > > login, not just if it was running when I logged out...
> > > > >
> > > > > Once upon a time there was a little kingdom where all
> > > > > applications held the X11 standards high and the grand master
> > > > > of session management called
> > > >
> > > > So I guess you're saying that there's no way to get
TDE
> > > > to notice my X2, then.
> > >
> > > You can use the autostart dir [1], but you'll need to do the work
> > > yourself. You could add a wrapper to starting X2 and a script in
> > > the autostart dir. Or better would be a check script in the
> > > shutdown dir (if it exists) and a corresponding script in the
> > > autostart dir.
> > >
> > > Here's some out of context code from something else,
> > > hack-and-slash as needed.
> > >
> > > #!/bin/bash
> > > /path-to-X2/X2
> > > Pid=`pgrep -f /path-to-X2/X2`
> > > if [ "$Pid" != "" ] ; then
> > > # echo Already running...
> > > # ps "$Pid"
> > > touch /home/foo/.trinity/apps-to-restart/X2
> > > exit
> > > fi
> > >
> > > In any event, what you want can be done, it just might be
> > > painful.
> > >
> > > Best,
> > > Michael
> > >
> > > [1] Mine seems to be called: /home/michael/.trinity/Autostart
> >
> > You're apparently misunderstanding what I'm looking for. I
> > don't want this program to Always start when I login, only when it
> > was running at the time that I previously logged out. That's why I
> > wondered if some sort of DCOP wrapper might be appropriate.
> >
> > Leslie
>
> As your editor is not xsession-aware you have to wrap it some shell
> script, that just saves the state of x2 in the form of commandline
> invocation in a file when it's close due to TDE shutdown. So there is
> no invocation of X2 when no X2 was open when TDE closed the session.
> At TDE login you execute that file with invocations and be happy.
> Sure, you have to manage some stuff like which desktop to put it,
> window placement etc. but that's not that complicated.
>
> Nik
Yes, but what to put in that wrapper? That's what my original
question was.
Ah, ok. I do not know X2, is it this one?
http://www.tangbu.com/x2main.shtml If yes, then there is one notable
things about the application (but correct me if I'm wrong): The X11
application "xx" does not set the X11 window title to the filename of the
file that's edited - which makes it an extremly hostile application and
difficult to find the filename in a general solution. The terminal
application "x" does neither, but you can get the filename from the
current instance if you parse the escape-sequence (<ESC>[H, then some
chatter and there comes the filename).
Anyway, the geometry of each window and the desktop where it runs on can
be found like this:
for ID in $(xwininfo -all -root|awk '/"X2 Editor Version 2.08.1"/ {print
$1}'); do echo $(xprop -id $ID|awk '/_NET_WM_DESKTOP/{print $3}') \
$(xwininfo -id $ID|awk '/geometry/ {print $2}'| tr -c '[0-9]'
' ')
\ $(/do/some/black/magic/to/get/filename/from/X2)
done > /some/place/to/store
Example /some/place/to/store:
2 484 559 58 0 /tmp/a.txt
4 100 100 100 100 /tmp/b.txt
To restore each window you basicly do something like this - nota bene: if
x2 were a nice application, you would not have to do this trickery to get
it's window id:
cat /some/place/to/store | while read DESKTOP W H X Y FILE; do
A=$(xwininfo -all -root|awk '/X2 Editor Version 2.08.1/ {print $1}')
/path/to/xx $FILE &
sleep 1
B=$(xwininfo -all -root|awk '/X2 Editor Version 2.08.1/ {print $1}')
ID=$(echo $A $B|tr ' ' '\n'|sort|uniq -u)
xdotool set_desktop_for_window $ID $DESKTOP
xdotool windowsize $ID $W $H
xdotool windowmove $ID $X $Y
done
I hope that get's you started. As I do not know how you use X2 (xx or x
...), I cannot give you a hint how to obtain the filename of a window
instance.
Nik
> Leslie
Okay, I seem to have a working script (attached) that remembers the
X applications I'm concerned with (thank you, Nik); now, how do I tell
Trinity to execute it at shutdown time before it kills said applications?
Leslie
rememberXapps