Yesterday,
keyboardfreak made a comment which got me thinking.
He said that most of us use only a limited set of applications in our computing experience, and that most task switchers are overhead. You only need a complicated switcher if you use 10-20 apps and need to filter the list by keystrokes, etc.
keyboardfreak's solution was to dedicate his numpad to switching and launching common applications.
Personally, I need my numpad, and it's also a bit far away for me. So I came up with a somewhat different idea:
Each of the "buttons" in the image above corresponds to a single key on the keyboard. The top four buttons are asdf, and the bottom four are zxcv. Each button is linked with a specific application (Firefox, Word, etc). If this app is running, the button switches to it. If it is not running, the button runs it.
I activate the script using two quick taps of the shift key (I use
CtrlMorse for this -- the two taps actually send ctrl+shift+f2, which activates this script).
So - to run MS Word, it's shift-shift-z. And for Firefox, it's shift-shift-d. And the keys never change, so with time they can be memorized and you don't need to look for the button in the image.
It's a fast, easy way to switch between your common apps. Thanks to keyboardfreak for the inspiration.
The icons used are
Carbon Gloss by ~skm-industries.
Code:
; (c) ezuk 2008
App1Name = Help & Manual
App1Icon = carbon_dw.png
App1Path = c:\Program Files\HelpandManual4\HelpMan.exe
App2Name = Google Chrome
App2Icon = carbon_cm.png
App2Path = C:\Users\ezuk\AppData\Local\Google\Chrome\Application\chrome.exe
App3Name = Mozilla Firefox
App3Icon = carbon_ff.png
App3Path = c:\Program Files\Mozilla Firefox\firefox.exe
App4Name = Total Commander
App4Icon = carbon_fl.png
App4Path = c:\Program Files\totalcmd\TOTALCMD.EXE
App5Name = Microsoft Word
App5Icon = carbon_doc.png
App5Path = c:\Program Files\Microsoft Office\Office12\WINWORD.EXE
App6Name = Email
App6Icon = carbon_eml.png
App6Path = C:\Users\ezuk\AppData\Local\Google\Chrome\Application\chrome.exe http://www.gmail.com
App7Name = PSPad
App7Icon = carbon_txt.png
App7Path = c:\Program Files\pspad\PSPad.exe
App8Name = Help
App8Icon = carbon_dl.png
App8Path =
SetTitleMatchMode,2
If (App1Name <>"") {
Gui, Add, Picture,x0 gLaunchOrSwitch1, icons\%App1Icon%
} Else{
Gui, Add, Picture,x0, icons\blank.png
}
If (App2Name <>"") {
Gui, Add, Picture,ys, icons\%App2Icon%
} Else{
Gui, Add, Picture,ys, icons\blank.png
}
If (App3Name <>"") {
Gui, Add, Picture,ys, icons\%App3Icon%
} Else{
Gui, Add, Picture,ys, icons\blank.png
}
If (App4Name <>"") {
Gui, Add, Picture,ys, icons\%App4Icon%
} Else{
Gui, Add, Picture,ys, icons\blank.png
}
If (App5Name <>"") {
Gui, Add, Picture,x0 section, icons\%App5Icon%
} Else{
Gui, Add, Picture,x0 section, icons\blank.png
}
If (App6Name <>"") {
Gui, Add, Picture,ys, icons\%App6Icon%
} Else{
Gui, Add, Picture,ys, icons\blank.png
}
If (App7Name <>"") {
Gui, Add, Picture,ys, icons\%App7Icon%
} Else{
Gui, Add, Picture,ys, icons\blank.png
}
If (App8Name <>"") {
Gui, Add, Picture,ys, icons\%App8Icon%
} Else{
Gui, Add, Picture,ys, icons\blank.png
}
;CustomColor = FF00FF
Gui +LastFound +AlwaysOnTop -Caption +ToolWindow
Gui, Color, 000000
;WinSet, TransColor, %CustomColor%
Gui,show,center
WinGet, fasteight, PID, A
GroupAdd,FastEight, ahk_pid %fasteight%
^+F2::Gui,show
#IfWinActive, ahk_group FastEight
a::LaunchOrSwitch(1)
s::LaunchOrSwitch(2)
d::LaunchOrSwitch(3)
f::LaunchOrSwitch(4)
z::LaunchOrSwitch(5)
x::LaunchOrSwitch(6)
c::LaunchOrSwitch(7)
v::LaunchOrSwitch(8)
esc::Gui,hide
#IfWinActive
return
LaunchOrSwitch(AppNumber)
{
AppName := App%AppNumber%Name
AppPath := App%AppNumber%Path
IfWinExist,%AppName%
{
WinActivate
} Else {
Run,%AppPath%
}
Gui,hide
return
}
; These labels are only needed so that a user could click the icon to run a program.
LaunchOrSwitch1:
LaunchOrSwitch(1)
return
LaunchOrSwitch2:
LaunchOrSwitch(2)
return
LaunchOrSwitch3:
LaunchOrSwitch(4)
return
LaunchOrSwitch5:
LaunchOrSwitch(5)
return
LaunchOrSwitch6:
LaunchOrSwitch(6)
return
LaunchOrSwitch7:
LaunchOrSwitch(7)
return
LaunchOrSwitch8:
LaunchOrSwitch(8)
return
GuiClose:
ExitApp