一、灵感的来源:
昨天看到博客上的一个留言,jasonzhao网友提到:
“taskswitchXP不是你想象的那么弱的。它可以快速定位到任何一个你想要的程序, 还有其它功能,比你匆匆一瞥 要牛鼻多了 (反而是它的预览我完全不用), 也比你这个文章里做的结果牛鼻。 而且还是opensource ,只是可惜作者2年不更新了。 但是其实代码稍微改改就非常强大。”
看到“taskswitchXP可以快速定位到任何一个你想要的程序”,我突然想到其实任务栏也可以隐藏起来不用,不是吗?直接用快捷键切换任务。我继续联想到刚刚给弟弟的电脑远程控制,他的电脑上似乎就没有任务栏。反正你关注的只是当前的任务。
为了让自己专心,我去掉了Google Desktop侧边栏,为了再专心点,我又去掉了任务栏左侧的快速启动栏,为了不被任务栏右侧的状态栏的消息打扰,我又用PS Tray Factory去掉了状态栏。为了不要掉“开始”按钮,我甚至用BBlean替换掉Explorer(当然还有Explorer太慢的原因)。现在电脑上只有一条任务栏在上面,右侧仅显示时间,桌面一直是全黑的与显示器边框一样(所以传出微软要黑屏的消息时我一点也不担心,黑吧黑吧,我本来就是黑的)。
人的大脑其实是单cpu单线程的,我一直都是个很容易开小差的人,所以很怕有什么东西打乱了我的思路,所以我觉得每个时候只要有一个窗口展现在我眼前就行了,不需要其他任务的状态(比如任务栏上的任务、Firefox的下载状态)。
所以我现在多了一个追求——去掉任务栏,用快捷键切换任务。
二、灵感产生的追溯(为何会产生这个灵感):
虽然这个灵感水平不怎么样,但灵感产生的前提是:你一直都在想一个问题,只是想不出来,于是先丢一边,后来又有人提起,才突然想起了这个问题更好的解决办法。能因jasonzhao网友的一句话而想到这个方式,必然也是有原因的,其他人看到这句话可不会有这么多的想法。
其实我以前也曾考虑过用strokeit+hoekey+PodXP实现鼠标手势和热键快速切换任务栏任务,或者用AutoHotkey+Hoekey+PodXP实现快捷键切换任务栏中的程序,但当时的立足点是“纯粹用鼠标”,或者“纯粹用键盘”,并不是立足于“迅速”,虽然最终也实现了想要的效果,但操作感觉并不怎么样(慢啊),所以就不再往那条路上摸索。再后来换成了BBlean shell,就基本放弃了热键切换任务或者手势切换任务的追求。而这次由网友的留言重新引发起探索的激情。
三、实现灵感的必要性:
现在的任务栏在上方,超出了我的视线之外(视线是平行于屏幕中间的),几乎不会吸引我的眼光,所以我倒不会因为任务栏分心。但从切换的速度上,效率可是非常低的。原因如下:
首先是Icons难认,鼠标老点错:
我是用任务栏上的icons识别程序的,可惜各个程序的Icons常常更换,不容易辨别。比如chrome的Icon是自己的那个三色图标
,chrome创建的Analytics图标是Analytics自己的Icon
,这两个不会弄错,而chrome创建的Gmail和Adsense的快捷方式的Icon却是一个蓝色的小g图标
,这个图标在黑色的背景下几乎看不到,害得我常常找不到Gmail任务何在,点几次才点到Gmail。另外windows live writer最近更新,又换了一个莫名其妙的
图标,也总是让我在任务栏里迷失方向。
怪不得win7的任务栏默认没有文字而只有大大的icons,原来就是强化icons的视觉感受。
其次是鼠标需要移动的范围太大:
BBlean也可以像win7那样只用Icons展现的方式展现任务,并且可调大小,可是我却很不习惯,虽然鼠标这样移动的范围就少了,但都挤在一个角落,另外一边的空间都浪费了。
有人可能会问,既然连任务栏都可以去掉,而且操作速度还可以加快,那么微软为何要有占用那么多的空间来放状态栏任务栏等等呢?
我觉得,直观,必然与速度相冲突,越直观易用,操作速度就越慢。微软创造出那些“状态栏、任务栏、快速启动栏、开始菜单”虽然直观了,但操作速度却变慢了。这些所谓的“栏”上的任务或程序,其实只需要一个标识就可以互相切换。这个标识可以是类似与TC中的文件夹首字母——即程序或任务首字母,也可以是自定义的数字。然后用Ctrl或Win+1、2、3、4来切换。
不过微软虽然不像我们这样重视操作的超便捷性,但他明白以后的电脑必然是速度快到分不清是刚启动还是切换到那个程序,所以windows7取消了快速启动栏——“启动”与“切换到”没有区别,可以看出微软在可弱化两者的概念区别。
总之,实现用快捷键切换任务,是有实际应用价值的,对我来说,很有必要。
四、实施第一步(快捷键切换任务):
本来我是想找“快捷键切换任务的软件”,但在Google和百度上搜索“快捷键切换任务”却是自己的文章——AutoHotkey+Hoekey+PodXP实现快捷键切换任务栏中的程序,看来并无多少这样的软件,于是想到干脆不用特别的软件,而用强大的hoekey一个个配置,让每个快捷键对应一个任务。
可是纵观键盘上的快捷键,很多都已经被占用,于是打算用ctrl+1、2、3这样的来切换,最终hoekey配置如下:
^1=Show|TTOTAL_CMD ;
^2=Show|XFrame_Wnd ;
^3=Show|Chrome_XPFrame ;
^4=Show|WindowsForms10.Window.8.app.0.33c0d9d ;
这样按住ctrl+1可以切换到tc,按住ctrl+2可以切换到tw,以此类推。为何选择ctrl而不是其他的键呢?因为我原本是想在打字时就可以不移动手掌切换任务,所以用ctrl键比较方便,但后来看到易名网友的另一个留言(看到后我才发觉原来我的博客上早就有人提出用这个方法切换任务了,只是我当时一根筋没注意到):
“我现在可以用StrokeIt来实现用鼠标轮切换程序,也可以用热键来切换程序,比如用WIN+1切换到第一个,WIN+2切换到第二个……如果用顺序选择的话,则不如用Win+TAB继续按TAB来选择。当然,如果切换到Ctrl+,或.来选择也可以。实现上述问题的办法,就是从HOTKEYP上着手的。”
留言中提到的是用win键而不是ctrl键,于是我也考虑了一下win键的可行性:其实并不需要把手指固定在asdf那些键上,实际上我在操作时也只是打字的时候固定在那里。更多的时候两手都有小动作,比如我在写这篇文章时基本上是每句完就按一下ctrl+s,即把手指都移开了。所以不需要用Ctrl这个键。于是我又加了一组hoekey配置:
~1=Show|TTOTAL_CMD ;
~2=Show|XFrame_Wnd ;
~3=Show|Chrome_XPFrame ;
~4=Show|WindowsForms10.Window.8.app.0.33c0d9d ;
不过这样子不能用win+小键盘上的数字来实现切换,不知为何。
后来又考虑到我从来不用快捷键打开菜单栏上的菜单,都是用鼠标直接点击,而Alt在windows系统中都是用来点击菜单栏上的菜单的,既然我不用,那么这个Alt就可以用来做切换任务的快捷键。我又加了一组hoekey设置:
@t=Show|TTOTAL_CMD ;
@x=Show|XFrame_Wnd ;
@c=Show|Chrome_XPFrame ;
@w=Show|WindowsForms10.Window.8.app.0.33c0d9d ;
@f=Show|MozillaUIWindowClass
@u=Show|Afx:00400000:8:00010011:00000000:00DA06C7
这样就可以实现用Alt+字母快速切换任务了。
但要注意,这样子只是激活任务,并没有让任务窗口最大化,所以如果任务被最小化的话,用hoekey切换时。虽然可以在hoekey里面再加一句让任务最大化,但我认为没有必要——实际上我的桌面是全黑的,完全不用到桌面,最小化就没有必要了。如果人要离开,可按下F10关闭桌面(这里用到了Nircmd软件),或者按下win+L锁定桌面。(不知道有没有软件能实现锁定桌面的同时关闭桌面?)
五、实施第二步(隐藏任务栏):
因为开头时jasonzhao网友提到的“taskswitchXP可以快速定位到任何一个你想要的程序”,我有点怀疑,于是发邮件询问,jasonzhao给出了一个设想:
“把所有的单个字母的按键快捷都去掉,改成,和TC一样的功能,按下字母(一个或者连续几个),跳到对应的以这个字母(一个或者连续几个)开头的task那儿。”
把TC的快捷切换文件夹的思想用到快捷切换任务的操作上,我之前都没有想到,不过想来应该很好用。比如用Alt+D,调出任务列表,然后点一个字母跳到这个字母开头的程序并激活,这样跟TC的文件夹跳转或磁盘跳转(我磁盘跳转用的也是Alt+D快捷键)就非常像了。但目前TaskSwitchXP还没有此功能,只能用数字键来快速跳转到所需要的程序,比如用ctrl+space调出任务列表,然后按8跳转到第八个程序,意义不大。
不过当配置TaskSwitchXP时,看到有个排除列表的功能,于是我又想到了一点——可以不用去管任务栏上任务的顺序(任务栏的顺序在用Alt+Tab切换时有用,但我已经证明Alt+Tab的方法可行性不高,并且任务很多的时候速度也不快),甚至可以把不需要的任务在任务栏那隐藏起来。或者,直接不用任务栏(任务栏上的任务似乎也没法隐藏),用一个新的东西代替,比如这里的Taskswichxp的任务列表。
用Taskswichxp替代任务栏(BBleanbar),并把常驻程序在Taskswichxp的任务列表中隐藏起来,这样切换时就只有几个程序,切换也就快一些。而切换tc、ff、tw、writer这种常用程序直接用第一步所设置的快捷键也非常快。
于是我把tc、ff、tw、writer、chrome排除在任务列表,然后隐藏起任务栏,即实现了刚开始的想法。现在还有一个问题,就是如果在Taskswichxp那排除了chrome.exe,则chrome创建的快捷方式比如Gmail、Adsense,也都被排除了,而用Alt+C想切换到chrome时却可能切换到Gmail或者Adsense上,暂时没有解决办法,只能不排除chrome,让chrome和chrome创建的快捷方式都在任务列表里显示。