Menu

New VWPreview module

2010-06-09
2013-05-21
<< < 1 2 3 > >> (Page 2 of 3)
  • Steven Phillips

    Steven Phillips - 2010-06-15

    I have just pushed up v1.1 of VWPreview, in this version I have added to options, see below (text taken from README.TXT file).

    andygrus - can you try the new Full screen update option and let me know what you think? Thanks.

    Steve

    * Added Full Screen 'Update desktop  previews'  option - this option should be
      used with care as it must  continually  cycle  through  all  desktops so the
      computer  will be  constantly  working;  the  screen  will also  flash as it
      updates the preview image for a desktop. Other side effects include changing
      desktop even when Escape is pressed  because this simply  closes the preview
      window and therefore will leave you on a random desktop. If the update speed
      is not right for you then edit the  "fulUdtim#  1000" line in  vwpreview.cfg
      file located in the VirtuaWin Config directory (VirtuaWin -> Setup -> Expert
      -> Explore Config), 1000 = 1sec, save changes then Reload modules (VirtuaWin
      -> Setup ->  Modules  ->  Reload);  if you make  this  number  too small the
      desktop  previews  will be wrong  (missing  windows  or  windows  from other
      desktops  etc),  making  this  number  large  will  reduce  the load on your
      computer.
     
    * Added  Window  'Close  after  desktop  change', if disabled  VWPreivew  will
      automatically  update  the  preview  (update  rate can be changed by editing
      "winUdtim# 1000" line - see option above). This make VWPreview act more like
      a very basic desktop pager.

     
  • andygr

    andygr - 2010-06-15

    Thank you very much for doing this. It works great. Is it possible to change the update interval down to say 10 seconds? I´d tried it  also on my slow laptop and there the flicker is noticeable. I think 10 seconds is a good compromise. Again thanks for doing this. For me it´s works better than having 4 or more physical displays (you don´t need to move you head just to see it all). Nice plug.

     
  • andygr

    andygr - 2010-06-15

    oops. Sorry I did not read the remaining of your last post. I´ve changed fulUdtime to 10000 and it works like a charm. Just what I was looking for. Thank you for considering this.
    Now I need to figure out how to implement this as a my screen saver. That would be IT!

     
  • Steven Phillips

    Steven Phillips - 2010-06-16

    You can use the following AutoHotkey script to open the full screen preview (function bound to WIN+N); any program that can send messages to a window can open the preview using this method. So now all you need is a program that can detect or replace the screen saver and fire off a message to VWPreview instead - AutoHotkey may well be able to do this, I've not checked.

    --- vwpreview.ahk -------
    DetectHiddenWindows, On

    #N::
    IfWinExist, VWPreview
        PostMessage,1071,2021,0,,
    Else
        MsgBox Failed to find VWPreview window


     
  • andygr

    andygr - 2010-06-16

    Thanks again for the hint. I will check AutoHotkey out.
    I currently do have fulUdtim set to 10 sec to avoid flicker. As for now it works perfect. Do you think it would be possible (further release eventually) to get the all desktops updated before entering the preview? As it stands now it always shows old information until all desktops are updated. In my case 4 desktops * 10 seconds each = 40 seconds until the last desktop is updated?

     
  • andygr

    andygr - 2010-06-17

    Say you have 4 desktops (4 wide by 1 deep). You are currently on desktop 1. Now enter VWPreview. Desktop 1 is real time - 2, 3, 4 not yet. Wait 10 sec (fulUdtime is 10000) and the first update is desktop 1. Instead I recommend that the first updated desktop is the one you leave for VWPreview plus 1. In this case desktop 2 should be the first updated desktop in the round robin. This because desktop 1 is already up to date (10 sec old) but the other desktops are much older. What do you think?

     
  • Steven Phillips

    Steven Phillips - 2010-09-12

    andygrus - VW can't pre update the previews as it requires windows to draw all the windows on each desktop and this process will take time and having a 6+ second pause before VWPreview displays would be unusable.

    However, for v1.4, just released, I have changed the update controls, splitting it into 2 stages. The first stage simply controls the refresh of all the previews, I have fixed the process so the first desktop preview to be updated is the next desktop, not the current and introduced a new 'fulUdTm1#' config for controlling the speed of this process - around 2sec should be okay so all for of your previews would be updated in 6 seconds.

    I have renamed the existing fulUdTim# to fulUdTm2# which is then used to control the continued update of the previews, this continuous updating can now be disabled via a setting in the config dialog.

    I also found that if you aren't using themes the previews get garbled because windows takes longer to redraw the windows during the update process. To solve this I have introduced a new fulUdPas# setting to pause the update process - setting this to 1000 (1sec) works for me.

    See the README for more information.

     
  • andygr

    andygr - 2010-09-13

    Great improvement. Thank you very much. I´ve set fulUdTm2 to 0. The first preview is now realtime. There is not much screen flickering at all. Very nice. Any chance to have an additional option for fulUdTm1 to update all desktops at once? Maybe in v1.5?

     
  • Steven Phillips

    Steven Phillips - 2010-09-13

    andygrus - I don't think this works as you think it does and setting fulUdTm2 to 0 will simply break the continuous update.

    Given you have 4 desktops and the current desktop is 1:
    fulUdTm1 - Controls the speed of the first 3 updates, first for desktop 2, then 3 then 4 so all have been updated in (fulUdTm1 * 3)ms. If I set this to less than 1000 it does work, it may appear to (screen flickers) but its output is wrong. To test simply change your current windows theme or background image, now you have desktops 2, 3, & 4 completely visibly wrong, now open VWPreview - does it update them correctly in the set time? If I set to 1000 all are updated in 3sec, if set to 100 the update fails and now I have to wait for the following, much slower fulUdTm2 updates.

    fulUdTm2 - Controls the speed of all following updates, only used if the new 'Continuously update previews' is enabled. This should be the slower time, e.g. 10000 for a 10sec update time, again setting this to 0 will break the feature.

     
  • andygr

    andygr - 2010-09-13

    Stupid me. I mixed up Tm2 with Tm1 in my previous post. Sorry. I played with Tm1 all the time. But you are right again. Going below 600 does not update the desktops correctly anymore. For me 600 is still a good thing. Better than before anyway.

     
  • robro

    robro - 2011-01-04

    This is the single most useful module for VirtuaWin. Thank you bjasspa for taking the time to write it.

    There are two features missing, that would make it really shine: smooth transitions ( DirectX was mentioned already ) and window management, e.g. dragging windows from desk to desk while in preview mode.

    I grabbed a copy of the code from CVS and managed to add two more transitions, 'slide in' and 'center zoom'. The center zoom is painfully slow but would certainly look nice for the initial preview animating in. The slide-in is nice and subtle and provides visual feedback where the new desk comes from. Haven't managed to animate the old desk though, so we can have a neat scroll transition.

    The catch: I'm a flash developer/designer by trade and don't know much about C. The syntax and methods aren't much of a problem though. What would really help is heavily commented code. Where are the previews generated? What does vwpEffectRectNS really do, how does it differ from vwpEffectRectN? Where does the transition actually take place? I guess I know what ii, jj, xx and yy do… but then it's more guessing than knowing ;)

    I know this is a lot to ask, but is there any chance to get that code commented if-block by if-block?

    Thanks in advance!

     
  • szekelya

    szekelya - 2011-01-06

    @rolfbrocke: could you please share your version with slide-in? I'm very much interested in a compiz sliding-wall-like version. (Rotating cube would be an overkill, but a sliding wall is soo great.)
    thx!

     
  • robro

    robro - 2011-01-06

    Sure, I've added it as a patch.
    Details
    Download

     
  • szekelya

    szekelya - 2011-01-07

    @rolfbrocke: this rocks and I already love it.

    Two observations though:
    -The slide animation could work in a way that the workspace sliding in could push the actual workspace to slide out, so it won't slide above it but the whole "wide wall of workspaces" would slide together.
    -The active window of a given workspace appears on top of the screen during the sliding animation instead of sliding together with the rest of the workspace.

    Any chance that you can take a look at those without sounding demanding? :)

     
  • robro

    robro - 2011-01-07

    I guess sliding the whole "wall" is what I meant by a "scrolling" transition four posts above. If so, we're actually going for the same thing ;) However, as of now those transitions are rendered solely by the CPU which results in choppy animations and high CPU load. I'm currently getting my feet wet with DirectX to solve that, but that may take a while.

    I've noticed the overlaying window occasionally. Actually bjasspa might have more of a clue of what's going on there. And while it's annoying I don't think I'll look further into it before getting hardware acceleration done.

    Cheerio!

     
  • szekelya

    szekelya - 2011-01-07

    That makes pretty much sense. As I experienced many error messages during workspace switches, I rolled back to my good ole' 4.1 for the time being, which I've been using until yesterday. I'm monitoring this topic, please drop a line here if you managed to break thru.:)

    Good luck and thanks for the good work.

     
  • Steven Phillips

    Steven Phillips - 2011-01-07

    szekelya - what error messages are you referring to? I'm not aware of any regressions in the latest version so would be very interested in knowing what they are and whether they are from Virtuawin or VWPreview.

    rolfbrocke - Glad to work together on creating a better VWPreview, particularly a DirectX version as the performance of the current version precludes any nice smooth effects and impacts on the desktop change time a bit more than I'd like. Would be happy to document specific things, but tend to avoid adding 'unnecessary' comments myself - not my style, prefer reading the code as its always up-to-date.

    With a direct X implementation would we need 2 versions - one with direct X and one without? Our do we assume that all users of VWPreview will have DirectX? Or do we leave VWPreview as it is and branch out a new VWDXPreview?

    BTW VWPreview does not generate the base desktop images, it uses the Module VW_DESKIMAGE message to tell VirtuaWin to generate them - only VirtuaWin knows when its about to change desktops and there could be many modules that require the use of the images so its much better to get VirtuaWin to generate a single set for all modules to use.

     
  • szekelya

    szekelya - 2011-01-08

    bjasspa: can't reproduce it right now. When I wrote my comment my laptop was docked, connected to an external monitor. Now after a reboot I'm at home, and there are no error messages whatsoever. If I come across the, I'll let you know immediately.

    Some more vwpreview ideas:
    -During workspace transition a VWPREVIEW taskbutton appears on my taskbar which is unnecessary.
    -If scrolling would work, I'd be happy to see the pager  (called "Desktop Select (Window)" in the module config) at the middle of the screen during the transition. Is that possible?

    -Regardless the transition, the Desktop Select window should not have a titlebar and close button.
    -Also when selecting a workspace or desktop from the Desktop Select, at least it should be configurable if transition should happen or in this case the desktop should show immediately.

    I'm back to 4.3 and vwpreview. :)

     
  • robro

    robro - 2011-01-08

    On DirectX : I've settled for DX9 for the moment. It's 8 years old and as such should be fairly well distributed among XP machines. I don't know yet if DX9 poses some limitations that prevent use in a manner similar to Vista's + 7's Flip3D, but I guess we'll find out. That being said, I'd say go all the way for hardware acceleration. While I do indeed see a chance to improve the current software-only rendering performance, I'm not sure doubling the work is worth it, given the fact that integrated/embedded graphics are widely deployed these days.

    On forking: I've copied the code into a different project while getting up to speed with DirectX or C/C++ coding in general. But I don't think there's need for two different versions, so merging the projects might come up in the future. A far, distant future ;)

     
  • Steven Phillips

    Steven Phillips - 2011-02-20

    rolfbrocke,

    I have managed to merge in your patch and created v1.5 - thank you for your submission. I have also added a few comments to the code next to the effect variables to try and explain their use. I also found a subtle bug in the slide on effect which made changing from an early desktop (e.g. desktop 1 or 2) to a late one (e.g. the last desktop) appear to have a delay and then go quickly. This was caused by variables xx or yy being greater than 1 so the effect moves the desktop twice as far as it should so I recommend you look at my fixed version.

    I have also added an 'Effect duration' setting in the Setup dialog - I for one cannot cope with a duration of 800ms, too long, 250ms is as long as I can handle before getting too impatient, but I appreciate that others are more patient so I've made this a setting.

    With the poor performance of the non-accelerated graphics version it is pointless setting vwpEFFECT_STEP to less than 20 as it probably can manage that frame rate - suggest you enable the debug logging to see the timings for yourself.

    With regard to an accelerated version I suggest we branch, VWPreview has probably served its purpose and trying to keep a single program able to do both is probably is probably a waste of effect (unless you know it is straight forward).

    Sorry it took a while to merge,

    Steve

     
  • robro

    robro - 2011-02-21

    Hi Steve,

    good to see things over at VWPreview are still moving.

    Thank you for your insight on the inner workings. As you might already have noticed, that patch was rather hacked together ;)
    I started messing around with DirectX and it sure looks promising, but that's on hold for now as I'm busy with some paid work.

    I hope I find some time soon to come back and give that thing a little more love.

    Cheers!
    Rolf

     
  • Steven Phillips

    Steven Phillips - 2011-03-23

    I have just release v1.6 of the VWPreview module which has a fix to the slide on transitional effect.

    If full size images aren't used the effect did not work going left or up due to negative numbers - fixed.

     
  • Jason Jarosz

    Jason Jarosz - 2011-06-03

    Two configurable features that I'd really love to see:
    1. The ability to middle-click on the VirtuaWin SysTray applet icon to display Desktop Preview or Desktop Select (seems natural, as it would replace the default action of switching between desktops)
    2. Something to denote which desktop each screen preview belongs to
    Ideas:
    a. VirtuaWin desktop number & name displayed in a title bar over top each desktop preview image (easy)
    b. VirtuaWin desktop number & name overlaid with semi-transparent "glass" on the desktop preview image (tougher)

     
  • Jason Jarosz

    Jason Jarosz - 2011-06-03

    Awesome job, btw-this is now my standard pager!

     
  • nathan

    nathan - 2011-09-25

    im curious if you could implement the ability to invoke vwpreview on windows  idle time or if this  functionality can be achieved through task scheduler somehow….keep up the great work!

     
<< < 1 2 3 > >> (Page 2 of 3)

Log in to post a comment.