Discussion:
Attach client to several workspaces
Oskar Nordquist
2009-04-06 20:57:47 UTC
Permalink
Hi,

I'm wondering how hard it would be to implement support for having clients
visible in more than one workspace, e.g it could work like the tagging feature
for moving windows, only clients could be attached to several frames and/or
workspaces.

If anyone know of a script with similar features, please let me know.

Regards,

Oskar N
Tuomo Valkonen
2009-04-07 10:14:02 UTC
Permalink
Post by Oskar Nordquist
I'm wondering how hard it would be to implement support for having clients
visible in more than one workspace, e.g it could work like the tagging feature
for moving windows, only clients could be attached to several frames and/or
workspaces.
A basic version shouldn't be too difficult. Just a script that attaches
to one of the hooks that signal workspace change, and then moves the
window around.

What's more work is remembering where exactly the window was on each
workspace... for that, there's the placeholder mechanism, but it
isn't exported to the Lua side ATM.
--
"[Fashion] is usually a form of ugliness so intolerable that we have
to alter it every six months." -- Oscar Wilde
"The computer industry is the only industry that is more fashion-driven
than women's fashion." -- RMS
Oskar Nordquist
2009-04-07 11:40:51 UTC
Permalink
Post by Tuomo Valkonen
Post by Oskar Nordquist
I'm wondering how hard it would be to implement support for having clients
visible in more than one workspace, e.g it could work like the tagging feature
for moving windows, only clients could be attached to several frames and/or
workspaces.
A basic version shouldn't be too difficult. Just a script that attaches
to one of the hooks that signal workspace change, and then moves the
window around.
Would it not be easier to just duplicate the client to refer to the same X
window? I don't even know if that is possible, but if it is, that's how I'd
prefer to do it.
Tuomo Valkonen
2009-04-07 13:50:13 UTC
Permalink
Post by Oskar Nordquist
Would it not be easier to just duplicate the client to refer to the same X
window? I don't even know if that is possible, but if it is, that's how I'd
prefer to do it.
Ummm... I don't know what you really mean. The client always refers to
the same window it initially created. You can move it around in Ion's
window management hierarchy (cf. Mod1+A, Mod1+T & Mod1+K A, tab drag),
also to follow you around. Obviously you can automate this by attaching
a script to suitable hooks.

The difficult part is that it would always appear at the same index in
a frame etc.; this demands exporting the placeholders to Lua side.
--
"[Fashion] is usually a form of ugliness so intolerable that we have
to alter it every six months." -- Oscar Wilde
"The computer industry is the only industry that is more fashion-driven
than women's fashion." -- RMS
Oskar Nordquist
2009-04-07 16:22:05 UTC
Permalink
Post by Tuomo Valkonen
Post by Oskar Nordquist
Would it not be easier to just duplicate the client to refer to the same X
window? I don't even know if that is possible, but if it is, that's how I'd
prefer to do it.
Ummm... I don't know what you really mean. The client always refers to
the same window it initially created. You can move it around in Ion's
window management hierarchy (cf. Mod1+A, Mod1+T & Mod1+K A, tab drag),
also to follow you around. Obviously you can automate this by attaching
a script to suitable hooks.
I'm not sure how X works, but I'm guessing there is some kind of handle that
an Ion client refers to to draw the window. Would it not be possible to
use this same handle in a new Ion client, which would essentially render the
same window?

Excuse my ignorance.
Matthieu Moy
2009-04-07 17:03:51 UTC
Permalink
Post by Oskar Nordquist
Post by Tuomo Valkonen
Post by Oskar Nordquist
Would it not be easier to just duplicate the client to refer to the same X
window? I don't even know if that is possible, but if it is, that's how I'd
prefer to do it.
Ummm... I don't know what you really mean. The client always refers to
the same window it initially created. You can move it around in Ion's
window management hierarchy (cf. Mod1+A, Mod1+T & Mod1+K A, tab drag),
also to follow you around. Obviously you can automate this by attaching
a script to suitable hooks.
I'm not sure how X works, but I'm guessing there is some kind of handle that
an Ion client refers to to draw the window. Would it not be possible to
use this same handle in a new Ion client, which would essentially render the
same window?
You cannot have the same application actually running in different
frames without application support. At least one problem is that
different frames can have different sizes, and the application will
draw its content based on the size.

With application support, you can do such kind of things (like Emacs
"make new frame" for example), but they will still be two distinct
frames.

What you can do (and what wmii, awesome and other do) is that the
resize the window on-the-fly when the workspace changes. Then the
application redraws the frame at the new place, with its new size.
--
Matthieu
Tuomo Valkonen
2009-04-10 11:29:08 UTC
Permalink
Post by Matthieu Moy
What you can do (and what wmii, awesome and other do) is that the
resize the window on-the-fly when the workspace changes. Then the
application redraws the frame at the new place, with its new size.
You can manually emulate this by tagging a window with Mod1+T,
switchking workspace, and attaching the window in a frame on the
chosen workspace with Mod1+K A.

It's not difficult to write a basic script to automate this.
I can't find one in the repository, but I'd expect someone
to already have done this...
--
"[Fashion] is usually a form of ugliness so intolerable that we have
to alter it every six months." -- Oscar Wilde
"The computer industry is the only industry that is more fashion-driven
than women's fashion." -- RMS
Aron Griffis
2009-04-07 14:47:05 UTC
Permalink
Oskar Nordquist wrote: [Mon Apr 06 2009, 04:57:47PM EDT]
Post by Oskar Nordquist
I'm wondering how hard it would be to implement support for
having clients visible in more than one workspace, e.g it could
work like the tagging feature for moving windows, only clients
could be attached to several frames and/or workspaces.
This would be really nice to have in ion3. Something I miss from
sawfish.

Aron
Loading...