Website Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • August 30, 2015, 01:03:02 PM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: PutAside: declutter and cycle through windows  (Read 26917 times)

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
PutAside: declutter and cycle through windows
« on: May 21, 2007, 06:49:56 PM »
Make sure you update to the latest version of DcUpdater if you have it installed. It includes fixes nessecary for PutAside to update.

Sometimes you'll want to put aside what you are working on to complete an important task. But the taskbar is such a mess!

So I created PutAside. Run the program and press Shift-ScrollLock and all open windows are hidden, you can then work on your tempory task. Cycle through the hidden windows with ScrollLock. Press Shift-ScrollLock again and all hidden windows are restored. You can exclude windows.

PutAside is a combination between alt-tab, Show Desktop, a boss-key, and virtual desktops. I've always found virtual desktops to be too complex: I can never remember what is on the other desktops. I never used bosskeys, and with show desktop/alt-tab the taskbar is so cluttered. PutAside is then a middle way to temporarily hide windows without making them inaccessible.

putaside.png

Feedback welcome!

Code: [Select]
CHANGELOG:
v1.12
        * Updated DcUpdater and compiled PutAside without executable compression. (no more false positives)

v1.11
* Fixed updater

v1.10
* Added readme
* Added DcUpdater code - check for and install updates using
this terrific tool (http://www.donationcoder.com/Software/Mouser/Updater/index.html)

v1.01
* Fixed preferences dialogue crash as reported by cemole and proposed fix by lanux128

Download Page
« Last Edit: May 18, 2012, 06:46:26 AM by justice »

AndyM

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 616
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #1 on: May 21, 2007, 07:11:58 PM »
I'm assuming your .rar file includes a tiny .ahk file and a larger .exe file, as this is often the case when people post their utilities here.

All I care about is the 1-2k .ahk file, so if it was available separately, I'd download it without a second thought.  With a slow dial-up (some of us are still stuck in the 20th century), I think twice about a 200k file.


lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,216
    • View Profile
    • Coding Snacks by Lanux128
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #2 on: May 21, 2007, 09:50:12 PM »
nice work.. it can also double up as a boss key app.. :)

Grorgy

  • Supporting Member
  • Joined in 2007
  • **
  • gravatar avatar
  • Posts: 821
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #3 on: May 21, 2007, 09:55:06 PM »
 :o ohh me oh my, it hid everything, even my cursor lol had to restart oh well

lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,216
    • View Profile
    • Coding Snacks by Lanux128
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #4 on: May 21, 2007, 10:01:18 PM »
it works fine but these two things could be added.. :)

• an exception list so that it doesn't hide programs like LaunchBar Commander.
• an enable/disable option to suspend hiding of windows until by demand.

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #5 on: May 22, 2007, 01:23:51 AM »
Thanks for the feedback!
AnyM,sorry I've sent you the source in a PM, you can also view it below.
Grorgy,thanks for that. it definately shouldn't hide the cursor  :o I guess you are not using windows XP like me? Could you tell me your configuration and if you have any mouse utilities running?
Lanux128, I was thinking the app should really start without doing anything, with a key toggle and menu option one could enable/disable it. I'll get this done today. The exception list is a great idea and will definately get in too.

Grorgy

  • Supporting Member
  • Joined in 2007
  • **
  • gravatar avatar
  • Posts: 821
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #6 on: May 22, 2007, 05:34:50 AM »
hi Justice,
Ahhaaa, I usually have cursorxp running, (a cursor enhancement program if you dont know it). It works perfectly as soon as i disable it.  :), So thats good to know, i'll just make sure i disable it b4 running your handy little app when i need it , (I do run XP with SP2 and all the patches microsoft have sent out) 

Cheers
George

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #7 on: May 22, 2007, 06:18:10 AM »
Thanks that explains it. I am working on excluding applications for the next version straight from the tray menu.

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #8 on: May 22, 2007, 09:28:00 AM »
I don't want to release another half tested release, but additional testing would be welcome. Things like incompatible applications, missing windows in cycles etc. I am using PutAside all day now and if all is well I will release a compiled version at the end of the week:

AutoHotkey Code
; PutAside03 by justice

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
#SingleInstance,Force
SetWinDelay,0
Dir = %A_AppData%\PutAside
IniFile = settings.ini
FileCreateDir, %Dir%
SetWorkingDir, %Dir%
version = Beta02

ExclusionList =
Processes =
IDs =
Titles =
maxItems =
PutAsideEnabled =
this_windowcycle =
Gosub,READINI
Gosub,IndexWindows
OnExit, QUIT
GoSub, Standby

; End of initialisation
IndexWindows:
   Traytip,PutAside, Shift-ScrollLock`t Put aside / restore windows.`nScrollLock`t Cycle through hidden windows.
   WinGet, id, list,,, Program Manager ; get list of all foreground ids
   Loop, %id%
   {
     this_id := id%A_Index%
      WinGet, this_process, ProcessName, ahk_id %this_id%
      if NOT this_process ;exclude emptiness
         continue
      WinGetTitle, this_title, ahk_id %this_id%
      if NOT this_title ;exclude start menu and empty processes
            continue
      StringGetPos, pos, ExclusionList, %this_process%
      i +=1
      Processes%i% := this_process
      Titles%i% := this_title
      IDs%i% := this_id
   }
   id =
   maxItems := i
   GoSub, TRAYMENU
return

READINI:
IfNotExist, %IniFile%
   GoSub, WRITEINI
IniRead, ExclusionList, %IniFile%,ExclusionList, list
return

WRITEINI:
   IniWrite, %ExclusionList%, %IniFile%, ExclusionList, list
return


TRAYMENU:
   Menu,Tray,NoStandard
   Menu,Tray,DeleteAll
   If maxItems ; if windows have been indexed
   {
      Loop, %maxItems% ; add checkboxes for every window
      {
         this_process := Processes%A_Index%
         Menu, ToggleStatus, add, %this_process%,ToggleStatus
         StringGetPos, pos, ExclusionList, %this_process%
         if NOT ErrorLevel
            Menu, ToggleStatus, Uncheck, %this_process%
         else
            Menu, ToggleStatus, Check, %this_process%

         
      }
      Menu, tray, add, E&nabled for.., :ToggleStatus
   }
   Menu,Tray,Add,
   If PutAsideEnabled
      Menu,Tray,Add,Restore windows,PutAside
   Else
      Menu,Tray,Add,Hide windows,PutAside
   Menu,Tray,Add,
   Menu,Tray,Add,&About,ABOUT
   Menu,Tray,Add,&Bugs and Feedback...,ONLINE
   Menu,Tray,Add,&Online Help,ONLINE
   Menu,Tray,Add,
   Menu,Tray,Add,&Exit,QUIT
Return

ABOUT:
Msgbox, PutAside %version% by justice`n`n`tPress SHIFT-SCROLLLOCK to hide and unhide all applications.`n`tPress SCROLLLOCK to cycle through hidden windows.`n`tExclude processes using the tray menu.
return

ONLINE:
Run,http://www.donationcoder.com/forum/index.php?topic=8626
return

QUIT:
   GoSub, ShowWindows ; before exiting restore original situation
ExitApp

ToggleStatus:
   Menu,ToggleStatus,ToggleCheck,%A_ThisMenuItem%
   StringGetPos, pos, ExclusionList, %A_ThisMenuItem%
   if NOT ErrorLevel ; found
         StringReplace, ExclusionList, ExclusionList, %A_ThisMenuItem%`,,,
   else
         ExclusionList = %ExclusionList%%A_ThisMenuItem%`,
   
   Gosub, WRITEINI
   ;Msgbox, %ExclusionList%
Return

ScrollLock::
   If NOT PutAsideEnabled ;don't do anything
      return
   
   GoSub, CycleWindows
   return

CycleWindows:
   ;hide last shown enabled window IF ENABLED
   current_id := IDs%this_windowcycle%
   StringGetPos, pos, ExclusionList, %this_process%
   If ErrorLevel ; not found in exclusion list
   {
      WinHide, ahk_id %current_id% ;hide previously opened window
   }
   If this_windowcycle = %maxItems%
         this_windowcycle = 0 ;cycle through windows from beginning
   this_windowcycle++



   ;show next window
   Loop, %maxItems%
   {
      this_id := IDs%this_windowcycle%
      this_process := Processes%this_windowcycle%
      StringGetPos, pos, ExclusionList, %this_process%
      Traytip, PutAside, %this_windowcycle% - Restoring %this_process%
      WinShow, ahk_id %this_id%
      WinActivate, ahk_id %this_id%
      If ErrorLevel ; not found in exclusion list
      {
         break
      }
   }
return

+ScrollLock::
   GoSub, PutAside
return

PutAside:
   If PutAsideEnabled
   {
      PutAsideEnabled =
      GoSub, ShowWindows
   }
   Else
   {
      PutAsideEnabled = true
      GoSub, HideWindows
   }
return

ShowWindows:
   Loop, %maxItems% ;show all hidden windows
   {
      next_id := IDs%A_Index%
      WinShow, ahk_id %next_id%
   }
return

HideWindows:
   Traytip,PutAside, Putting aside windows..`nUse ScrollLock to cycle through them.
   WinGet, id, list,,, Program Manager ; get list of all foreground ps
   i= 0
   Loop, %id%
   {
     this_id := id%A_Index%
      WinGet, this_process, ProcessName, ahk_id %this_id%
      if NOT this_process ;exclude emptiness
         continue
      WinGetTitle, this_title, ahk_id %this_id%
      if NOT this_title ;exclude start menu and empty processes
            continue
      StringGetPos, pos, ExclusionList, %this_process%
      If ErrorLevel ; not found in exclusion list
         WinHide, ahk_id %this_id%
         
      i +=1
      Processes%i% := this_process
      IDs%i% := this_id
      
   }
   id =
   maxItems := i
   GoSub, TRAYMENU
return

Standby:

New in BETA02:
* Shift-scrolllock to hide / restore window (or via tray menu)
* Tray menu!!
* Exclude processes via system tray  :Thmbsup:
* Save these settings permanently in Application Data
* Fixed several counting and implementation bugs in hiding, cycling and showing windows

Todo:
* Customizable hotkeys
« Last Edit: July 23, 2007, 12:44:56 PM by justice »

cthorpe

  • Discount Coordinator
  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 723
  • c++thorpe
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #9 on: May 22, 2007, 09:57:46 AM »
Love it!

I think it will be very useful for me as a teacher.  I have a LCD projector connected to my computer, and I am often showing demonstrations, multimedia, etc.  Sometimes the students get distracted by trying to guess what the programs in my taskbar do.  This will let me hide whatever else I am working on, and just show them a clean desktop like they see on their screens.

Beta 2 - So far no problems.

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #10 on: May 22, 2007, 10:01:30 AM »
Yes I guess it's a combination between alt-tab, Show Desktop, a boss-key, and virtual desktops :)

I've always found virtual desktops to be too complex: I can never remember what is on the other desktops. I never used bosskeys, and with show desktop/alt-tab the taskbar is so cluttered.

PutAside is then a middle way to temporarily hide windows without making them inaccessible.

alexk7110

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 8
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #11 on: May 22, 2007, 02:16:11 PM »
At work I am currently using SweptAway ( found at lifehacker http://lifehacker.co...y-windows-255055.php ), a program that automatically minimizes all windows that are not used for a specific time eg. 5mins.
I find your app quite interesting in that it uses the system tray and it's on demand. I will be using it at home since my distractions are far less and since it uses a unique shortcut ( I use a flood of shortcuts and this one is definitely not taken..). Good job on a great idea and a solid build ( no obvious hick ups, works as advertised).

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #12 on: May 22, 2007, 07:08:04 PM »
Right I am confident that it is ready for a big version!

NEW in PutAside May 2007:
* Squashed a few remaining bugs in the cycling routine
* Fixed the situation where the last restored window in some cases was not activated (not topmost)
* Customizable Hotkeys via a nice preferences window

Possibly in a future release:
* Some kind of autoupdate mechanism.. Possibly via Software Update
* Nice trayicon
* bugreports via program

Download the newest version at the top of this page.
« Last Edit: May 22, 2007, 07:39:47 PM by justice »

lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,216
    • View Profile
    • Coding Snacks by Lanux128
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #13 on: May 22, 2007, 08:36:13 PM »
thanks justice for making the changes.. :up: i don't mind PutAside hiding windows on start but only later that a toggle will be useful, saves me from closing and opening the program.. :) btw, where is the v1.0 download link?

ws-putaside-1.png

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #14 on: May 23, 2007, 02:40:49 AM »
I know I am not very consistant with naming scheme lol
0705 stands foor 2007 month 05 which is may 2007 which is 1.0

I'm not really keen about version numbers but I guess I've not found the ideal alternative.
I'll rename the zip to putaside-1.0.zip

Grorgy

  • Supporting Member
  • Joined in 2007
  • **
  • gravatar avatar
  • Posts: 821
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #15 on: May 23, 2007, 03:00:25 AM »
 :Thmbsup: works a treat for me now  :) ty

cemole

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 49
  • Where do all the birds fly?
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #16 on: August 15, 2007, 05:36:20 PM »
I get the following error message when I select the "Preferences" for the second time.

PutAsidePrefError.jpg

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #17 on: August 16, 2007, 03:40:06 AM »
Thanks for that cemole, sorry to hear about it. I'll investigate.

lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,216
    • View Profile
    • Coding Snacks by Lanux128
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #18 on: August 16, 2007, 07:36:29 AM »
I get the following error message when I select the "Preferences" for the second time.
looks like a problem with the GUI being invoked without the destroy command.. this command: Gui, Destoy will be able to solve the problem.. :)

cemole

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 49
  • Where do all the birds fly?
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #19 on: August 16, 2007, 12:22:17 PM »
looks like a problem with the GUI being invoked without the destroy command.. this command: Gui, Destoy will be able to solve the problem.. :)

Exactly, I added Gui, Destroy to line 236 and the error is gone. Thank you lanux128.
Here is that section of the code:

Quote
SETTINGS:
   Hotkey,%PutAsideHK%,Off
   Hotkey,%CycleHK%,Off
   Gui, Add, Text, x12 y12 w100 h23 , PutAside hotkey:
   Gui, Destroy
   Gui, Add, Hotkey, x132 y12 w170 h23 vPutAsideHK , %PutAsideHK% 
   Gui, Add, Button, x202 y87 w100 h23 GSETTINGSOK Default,&OK
   Gui, Add, Button, x92 y87 w100 h23 GSETTINGSCANCEL,&Cancel
   Gui, Add, Hotkey, x132 y45 w170 h23 vCycleHK , %CycleHK%   
   Gui, Add, Text, x12 y45 w100 h30 , Cycle hotkey:
   Gui, Show, x127 y87 h120 w320, PutAside Preferences
Return

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #20 on: August 17, 2007, 03:28:24 AM »
Thanks all, I've now updated the release at the top. :) (and added your names to the about section).
I actually stopped using the program on vista, but now back on XP am running it again.
Hopefully I'll have some time soon to spend a few more hours on this program.
So if any of you are still using it and have suggestions then feel free :)
« Last Edit: August 17, 2007, 04:25:12 AM by justice »

lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,216
    • View Profile
    • Coding Snacks by Lanux128
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #21 on: August 17, 2007, 04:14:19 AM »
glad to be of help, cemole and thanks for the gesture justice.. 8)

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,896
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #22 on: August 20, 2007, 04:31:11 AM »
release v1.11 - AUG 20 2007
Updated PutAside to add support for mouser's DcUpdater tool. DcUpdater is a program for Microsoft Windows (95% of the code is cross platform and may be ported to linux/mac), that can check for and install updates for software.

PutAside now asks DcUpdater on every start to check for new versions. I might change how often and add options to disable checking if desired.

From the DcUpdater help file:
Quote
Nothing happens behind your back, and you can see exactly what files are being retrieved from where, including access to a complete activity log.

· Full control over checking and installing - you can do all installation manually if you prefer, or let the program do it.

· One program to check for updates for lots of software.

· Easily visit program websites, and get more information about each program.


« Last Edit: August 20, 2007, 06:27:45 AM by justice »

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 34,926
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #23 on: August 20, 2007, 04:34:05 AM »
Quote
Updated PutAside to add support for mouser's DcUpdater tool.

coooooool   :-* :-* :-* :-* :-*

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,708
    • View Profile
    • Donate to Member
Re: PutAside: declutter and cycle through windows
« Reply #24 on: August 20, 2007, 03:11:20 PM »
I'm a bit late here but... I really like it Justice.  :up: Great Idea, and a much much better implementation than the other "minimizing to the taskbar" (or event to the tray) solutions. I like the fact that I can use alt tab to cycle through a few important windows, and still EASILY access the others use Shift+Scroll Lk to access the other secondary ones. Cool!  8)

PS. I'm wondering if transforming it into a full fledged alt tab (errr...it would be a "shift+Scroll"!) would make it even more usefull : one would be able see all the  icons/titles of the hidden windows at once, and cycling through them would be easier, maybe? instead of directly cycling through the opened windows one after the other....??? Dunno...