0.3: Desktop Cover Plugin changes screen on dual screen setup

Bug #376848 reported by Minimec
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Low
Johannes Sasongko

Bug Description

ubuntu: 9.04
exaile: 2.99+
desktop-cover-plugin 1.0

The Desktop Cover plugin puts itself on the active screen of a dual
screen setup, when loading a new cover during song change.

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

Continuing the discussion in bug 157429, what's the best way to handle multiple screens, in your opinion? I can think of several options:

1. Follow mouse (currently, as you described).
2. Follow active window.
3. Follow Exaile's main window.
4. Show in all screens.
5. Let user choose a screen.

We have #1 just because of how the plugin is programmed; I don't think anyone likes it that way. #2 and #3 are probably not that useful.

I'm guessing #4 and/or #5 make more sense. #4 looks like it requires creating multiple windows, so it's more complicated, but still doable.

By the way, could you show me the output of the attached program, so I know how to handle multiple monitors correctly? GDK has this distinction between a "screen" and a "monitor", and honestly I don't know what they represent.

Changed in exaile:
assignee: nobody → Johannes Sasongko (sjohannes)
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Minimec (minimec) wrote : Re: [Bug 376848] Re: 0.3: Desktop Cover Plugin changes screen on dual screen setup

Hi Johannes

I am thinking about your questions. I will have my 'profound
reflections' for next weekend. ;)

Cheers Martin

2009/5/16 Johannes Sasongko <email address hidden>:
> Continuing the discussion in bug 157429, what's the best way to handle
> multiple screens, in your opinion? I can think of several options:
>
> 1. Follow mouse (currently, as you described).
> 2. Follow active window.
> 3. Follow Exaile's main window.
> 4. Show in all screens.
> 5. Let user choose a screen.
>
> We have #1 just because of how the plugin is programmed; I don't think
> anyone likes it that way. #2 and #3 are probably not that useful.
>
> I'm guessing #4 and/or #5 make more sense. #4 looks like it requires
> creating multiple windows, so it's more complicated, but still doable.
>
> By the way, could you show me the output of the attached program, so I
> know how to handle multiple monitors correctly? GDK has this distinction
> between a "screen" and a "monitor", and honestly I don't know what they
> represent.
>
> ** Changed in: exaile
>   Importance: Undecided => Low
>
> ** Changed in: exaile
>       Status: New => Confirmed
>
> ** Changed in: exaile
>     Assignee: (unassigned) => Johannes Sasongko (sjohannes)
>
> ** Attachment added: "display.py"
>   http://launchpadlibrarian.net/26799349/display.py
>
> --
> 0.3: Desktop Cover Plugin changes screen on dual screen setup
> https://bugs.launchpad.net/bugs/376848
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

Never mind, I have some results from Aren:

Display 0: :0.0 (default)
  Screen 0: :0.0: 3120x1050 (default)
    Monitor 0: 1680x1050+0+0
    Monitor 1: 1440x900+1680+0

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

(BTW, I meant never mind about the script, not about the questions :-P . Sorry, had the page open for a few days and forget to reload.)

For my own note: In a standard multiple-monitor setup, there is one
screen spanning multiple monitors. Not sure how this plays with
geometries/gravities, since I don't think there's a way to send a
window to a specific *monitor*. Probably the most reliable way is to
move the window manually and do away with the whole geometry/gravity
thing.

Revision history for this message
Minimec (minimec) wrote :

Dear Johannes

Exuse my late answer.

Reading your recent posts I have to say that we both have the same approach.

First I want to say, that a Dual-Screen user doesn't need information
twice. Any 'clone'-behaviour or else is definitly not needed in your
desktop-cover-plugin.

On the other hand I would make use of the default window positioning
behaviour of exaile. Exaile is one of these programs that saves its
current position, when it is closed. It will reopen exactly at the
same place. Isn't that what we want with the desktop-cover-plugin?

I would do a plugin properties dialog wich gives the user the
possibility to change size of the plugin image.
Then there should be a preview button wich pops up a test image with
'ALT-LEFTMOUSEBUTTON' or so written on it.
The user could then drag the window to the position he wants.
There would be a 'save' button in the properties dialog too. Clicking
on it would save the given window position.
The user could then maybe have the option to fix the window all the
time at given position.
Otherways, he could always drag the window with Alt+Mouse. A dual
screen user could just drag the image on the other screen, if he
wanted.

The only thing that you would have to do, is to implement the
'save-current-position- feature in your plugin.

Wouldn't that be a nice 'gnome'-way to solve our little problem?

Greets

Martin

2009/5/22 Johannes Sasongko <email address hidden>:
> (BTW, I meant never mind about the script, not about the questions :-P .
> Sorry, had the page open for a few days and forget to reload.)
>
> For my own note: In a standard multiple-monitor setup, there is one
> screen spanning multiple monitors. Not sure how this plays with
> geometries/gravities, since I don't think there's a way to send a
> window to a specific *monitor*. Probably the most reliable way is to
> move the window manually and do away with the whole geometry/gravity
> thing.
>
> --
> 0.3: Desktop Cover Plugin changes screen on dual screen setup
> https://bugs.launchpad.net/bugs/376848
> You received this bug notification because you are a direct subscriber
> of the bug.
>

Revision history for this message
Simon (simschi) wrote :

Hey Martin,
the Idea is not bad and I can exactly follow your thoughts. But the problem in my case would be, that my screen-size changes from time to time as I use a laptop and connect the second screen only at home/office.
When we place the desktop cover the way you described it will mean, that it has to be placed outside the screen when I am on travel and my screen-size is low (laptop-display only).

what I am thinking of is, that the user should have a option to choose the gravity-corner:
Option 1: Top-Left-Corner
Option 2: Top-Right-Corner
Option 3: Bottom-Left-Corner
Option 4: Bottom-Right-Corner
Option 5: Screen-Center

So lets say I select Bottom-Right-Corner and move my desktop-cover to a certain position somewhere on my second display (the right one). The next day I have only one display, so my screen is smaller and the actual desktop-cover position is calculated as "X-Resolution" - "Distance_from_right" (same for Y) and will appear on the left (now only) display.

I hope I explained it clear enough ;-)

Simon

Revision history for this message
Simon (simschi) wrote :

And if it is possible I would be very happy to have the possibility to show the cover BEHIND the desktop-icons. I am always confused of where my files are... :-O

Revision history for this message
Simon (simschi) wrote :

Ah, forgot the output:
>Display 0: :0.0 (default)
> Screen 0: :0.0: 1680x1850 (default)
> Monitor 0: 1680x1050+0+0
> Monitor 1: 1280x800+0+1050

And I made a sketch of the two cases of my explanation above.

Revision history for this message
reacocard (reacocard) wrote :

> And if it is possible I would be very happy to have the possibility
> to show the cover BEHIND the desktop-icons. I am always
> confused of where my files are... :-O

That isnt currently possible, since most programs which draw the desktop icons also draw your wallpaper, leaving no way to insert another image between the two.

Revision history for this message
Minimec (minimec) wrote :

Hi Simon

In your case we would need a 'start with given position'-option, so
that the plugin always starts at the position you chose on your
primary screen when you start exaile. You could then drag it with
Alt+Mouse to the other screen, when you add the second screen to your
laptop.

That would give us two options in the preference menu. 'fix window at
given position' and ' start plugin at given position', when exaile is
startet the first time.

The background option is no problem with enlightenment e17, as you can
set the window options and let the window remember them. For metacity
I don't know...

Greets

Martin

Revision history for this message
Minimec (minimec) wrote :

> That isnt currently possible, since most programs which draw the desktop
> icons also draw your wallpaper, leaving no way to insert another image
> between the two.
>

Your are right. It's not possible with e17 either. You can set it in
the background, but not between icons and wallpaper...

Revision history for this message
Minimec (minimec) wrote :

Hi Simon

> In your case we would need a 'start with given position'-option, so
> that the plugin always starts at the position you chose on your
> primary screen when you start exaile. You could then drag it with
> Alt+Mouse to the other screen, when you add the second screen to your
> laptop.

Thinking about my own words, I guess that the 'start with given
position'-option could also be some kind of fallback behaviour, if the
window position is out of range of the desktop.

Cheers

Martin

Revision history for this message
Simon (simschi) wrote :

Ok, but a fallback sounds like that it will stay on that position until I move it back to the second monitor. What I am thinking about is, that it is always 20px from the right edge, no matter if the display-width is 1024 or 6000px.

greetings

Revision history for this message
Minimec (minimec) wrote :

I think we have the solution!

Following my thoughts we would have two positions, the plugin would
always remeber. We would have the 'current' position, and the
'fallback' position.

Imagine that as far as you don't use Alt+Mouse, the plugin would
always remember the 'current' position on you second large screen.
When the second screen is not available it would use the 'fallback'
position as the 'current' position is out of range. When the second
screen gets present again, the plugin would jump back to 'current'
position.

greets

Revision history for this message
Simon (simschi) wrote :

great! if someone can program this it will be the best solution!

thanks!

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

Thanks, Martin and Simön. I've added a preferences pane for the plugin, so now you can test the positioning with multiple monitors. Please tell me what you think about it--it should behave the way Simön described.

> Then there should be a preview button wich pops up a test image with 'ALT-LEFTMOUSEBUTTON' or so written on it. The user could then drag the window to the position he wants.

I'm considering this, though I think the multi-monitor support can be made to work without it.

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

When testing, please note that the cover window will only update its position/size on track change. This is because of a limitation in Exaile 0.3, which I'll ask about to the other developers.

Revision history for this message
Minimec (minimec) wrote :

Hi Johannes

I downloaded "exaile_0.3.0_20090527.tar.gz 27-May-2009 18:00 1.4M"
from the weekly directory of exaile.org. In the plugins menu it sais
"The selected plugin doesn't have any configuration options".

Where can I find the new version of the plugin?

Greets Martin

Revision history for this message
Simon (simschi) wrote :

Same problem here. Plugin-Version 1.0.0 and it forgets it's old position after restart of exaile and appears still on active screen in the center.

And I have a second Bug but do not know where I have to report it (or don't I as it is not a release??)
When I exit exaile while playing a track and restart it, it always hangs with a empty window, the splash-screen stays visible and this is the text in the console:
INFO : Loading settings
INFO : Loading Exaile 0.2.99.2+...
INFO : Loading plugins...
INFO : Loading collection...
INFO : Loading devices...
INFO : Loading interface...
INFO : Playing file:///home/simon/Musik/3%20Doors%20Down/Away%20From%20the%20Sun/3%20Doors%20Down%20-%20Away%20From%20the%20Sun%20-%2001%20-%20When%20I%27m%20Gone.mp3

greets, simon

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

It's only in the bzr repository for now.

Revision history for this message
Simon (simschi) wrote :

Ok, I downloaded the latest sources from launchpad (2009-05-28 08:46:54) and I have to say: great job! Much better than before and I like it that the exaile-preferences and the plugin-preferences are in one dialog now! I'm really looking forward for the next release!

The two-monitor behavior works great for me (after I remembered your hint: "will only update its position/size on track change" ;-) ) but I have one little suggestion: The fallback-position should also use the "x offset" and "y offset" settings. In my case the window is relocated to the left without any space to the monitor border.
I guess that is because I have a blind spot on my screen where no monitor is set. its the bottom right corner and my "Anchor" was »Bottom right« for the plug-in.

>Display 0: :0.0 (default)
> Screen 0: :0.0: 1680x1850 (default)
> Monitor 0: 1680x1050+0+0
> Monitor 1: 1280x800+0+1050

greets, Simon

Revision history for this message
Simon (simschi) wrote :

Ah, forgot the screen-shot...

Revision history for this message
Minimec (minimec) wrote :

I can confirm, that the plugin works now including resizing- and
positioning- option.

My settings:

/.config/exaile/settings.ini

<snip>

[plugindesktopcover]
y = F: 25.0
x = F: 1150.0
anchor = I: 2
size = F: 100.0

<snip>

I would have loved that 'save current position' thing, but the
proposed solution is ok for me.

The plugin also integrates nice with enlightenment e17 (see screenshot).

Thanks Johannes for your work.

Greets
Martin

Revision history for this message
Johannes Sasongko (sjohannes) wrote :

Thanks for the tests :-D . Glad that it works.

> but I have one little suggestion: The fallback-position should also use the "x offset" and "y offset" settings. In my case the window is relocated to the left without any space to the monitor border. I guess that is because I have a blind spot on my screen where no monitor is set.

Yes, that's correct. The plugin tries to position the cover window outside visible area, and your window manager automatically moves it inside the nearest monitor. Unfortunately, at the moment I'm not sure how to fix that behaviour technically. Feel free to file another bug report if you feel strongly about this, but I can't promise anything. Perhaps an interesting workaround is to move your 2nd monitor view-area to the right (if that's possible).

--
Johannes

Changed in exaile:
milestone: none → 0.3.0
status: Confirmed → Fix Committed
reacocard (reacocard)
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.