GUI 哲学

前些日子,看了 Tinyfool 老师的一篇文章《开发人员为何应该使用 Mac OS X 兼 OS X 小史》,才恍然 Mac 系统可不仅仅是 UI 上与 Windows 大相径庭,而是自底而上的区别。这种区别渗透到了整个系统框架的设计理念中。

简单概括下我的认识:相比 Windows 和 Linux 两大阵营,Mac OS X 除了『品味』上的优势之外,最重要的两点是:1.对 GUI 应用程序脚本化的有力支持;2.能实现 GUI 程序之间快捷的进程间通信。

GUI 程序之间的进程间通信

IPC 对于多用户分时系统的重要性不言而喻。其中从用户视角来看,如何让多个程序之间能更友好的交互是非常重要的。C++语言虽然面向对象,但在底层来看,其实依旧是冷冰冰的汇编代码,没有更整体的对象环境支撑,而以此构建的 Linux 也无法对进程间通信形成强力的支持。相比之下,乔布斯的团队借助于 SmallTalk 的消息传递机制创造了 Objective-C,并搭建了自己的运行时和类库框架 Cocoa,让系统无论从自身的迭代开发还是应用开发,得到了很大提升。值得一提的是,Objc 虽然最近才由于 iOS、Mac 平台的开发的火热进入热门编程语言的行列,其实它比 Java 还早十年出生。像最近由于 Rails 框架而火爆起来的 Ruby 和持续坚挺的 Java,都从 SamllTalk 中吸收了很多设计理念,就别提 C#了。

GUI 应用程序的脚本化

图形的交互方式确实人性化,但应用程序脚本化控制的方式在一些特定的场景里也可以大大提高生产效率。比如微软 Office 的 VBScript。即使是一般用户,不愿意自己写脚本,脚本化的方式也能让开发人员更方便快捷的开发出新颖的功能和产品。

让应用全部统一开放脚本很难,特别是从市场的层面而言,如果没有一直贯彻这一战略,造成平台很多应用不支持这一功能,则很难推广。苹果九十年代已经开始积累这方面的基础,有先见之明。

GUI 工具

下面是我接触过的一些 Mac 下的 GUI 工具。它们大都散发着对开发者的自由开放的态度:)

Quicksilver

『为了不把 Mac 当 Windows 用』,可以从 Quicksilver 入手。它能将双手从触摸板中解脱出来,或许这是很多开发者的梦想吧;)。只需用热键激活输入框,输入简单的匹配字符串,就可召唤出某个应用,或者执行某些搜索、查找任务,快哉!

简单说说配置和使用方式:

  • 1.安装好后,在 preference -> command 中可以设置 HotKey(唤醒的虚拟按键),我的习惯设置是control+enter。preference -> application 可以设置是否需要在 dock 中显示,以及登入时自动启动。
  • 2.基本功能:快捷打开应用。按下 Quicksliver 的 HotKey(我的是control+enter),在弹出的输入框中输入所需应用的头几个字母或者缩写,Quicksliver 会自动匹配最可能的应用,并显示出来,如果不是自己想要的,可以移动「上下光标」打开下拉菜单选择。选中后回车即可,如图。

  • 3.还有很多其他的细节功能,通过 Quicksliver 的插件实现,可以根据自己的需求来定制。

Shortcat

shortcat 是 Mac 下的快捷操作利器。相比 Quicksilver,Shortcat 有不同的定位:通过键盘定位到屏幕上某窗体内的某个位置。其官网的示例就是如何通过 Shortcat 使用键盘更改 DNS 设置,注意,是完全不用鼠标噢。有人可能会想那为什么卜直接使用 cmd 呢?我想答案是 Shortcat 就是基于 GUI 的解决方案,是 GUI 和键盘快捷键的完美组合,与 cmd 并不冲突。

下面简单的交代下 Shortcat 的使用方式:

  • 1.快捷键Cmd+Shift+Space用来激活输入框。使用关键字的定位方式类似于 Quicksilver。比如:如果目的是『Language & Text』,那么输入『lt』、『lang』;『sa』代表 show all,显示所能用于文字定位的区域。『.』能展示出所有可控制区域,包括没有文字定位的区域。
  • 2.输入了关键字后,界面中被匹配到的模块会被套上不同颜色的方框。接下来,可以使用control+key重定位到对应位置,其中 key 为对应的匹配上的模块的字符标识。

  • 3.定位到合适的位置后,按下enter,可执行单击动作;对应的,双击enter为鼠标双击动作;如果需要配合其他按键的点击,比如command+click,执行command+enter即可;鼠标悬浮为control;双击control可实现聚焦。

GeekTool

GeekTool 类似于 Windows 下的 widget,可以个性化的定制自己的桌面,添加插件,将 CPU、HDD 信息直接展示在桌面上,正如其名,Geek 而又文艺!如下效果图:

详细配置可参考这篇文章《教你装小清新—— Geektool && Rainmeter 桌面皮肤推荐》

Nocturne

Nocturne 这是桌面颜色控制的工具,与 Quicksilver 同为 blacktree 公司的产品。

使用方式:下载 Nocturne2.0.0,解压后拖入应用程序文件夹,打开。在 preference 中可很直观的配置各项属性。其中,switch to night 功能可以将 Mac 界面切换到黑夜模式,很好玩;)。

参考:

 原文地址:http://biaobiaoqi.github.com/blog/2013/06/09/something-about-mac-gui/
 版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0

Mac的GUI哲学的更多相关文章

  1. 实现Mac主机上的Docker容器中的图形界面显示(运行GUI应用)

    我有一个需求: 一方面,我需要在 Docker 容器环境下运行应用(因为有些环境在 Mac 下很难安装配置,并且希望环境干净隔离). 另一方面,容器中的应用又需要进行图形界面的显示. 由于 Docke ...

  2. 使用Git、Git GUI和TortoiseGit

    1. 关于命令行 我一直建议在命令行中使用Git或者SVN.因为这样可能更加了解他们的工作方式,也不容易遗漏重要的问题和提醒. 在Windows习惯的驱使下,大多数人是不会看弹出的对话框中有什么信息的 ...

  3. mac android studio 出现 Error: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

      Error: SDK location not found. Define location with sdk.dir in the local.properties file or with a ...

  4. ansys 14.0

    张建伟等.2012.12 人民邮电 一天一本书,这种感觉 真是爽啊. 但我觉得什么也没学到. 话说回来,此authors 确实书写得比较一般,实例不如百度文档上的WORD实例,理论不如我看的那本CFD ...

  5. jProfiler远程连接Linux监控jvm、tomcat运行状态

    第一步.下载软件 官网地址:https://www.ej-technologies.com/download/jprofiler/files , Mac客户端 GUI界面 Linux服务端 第二步.安 ...

  6. 推荐一款万能抓包神器:Fiddler Everywhere

    搞IT技术的同行,相信没有几个人是不会抓包这项技能的(如果很不幸你中枪了,那希望这篇文章给你一些动力),市面上的抓包工具也有很多,常用的有:Charles.Fiddler.Burpsuite.Wire ...

  7. Mac下好用的编辑器VIM GUI版本 VimR 推荐

    vim号称是编辑器之神,轮其功能和扩展性的确少有编辑器能比,但是大多数编辑器都有的文件浏览功能它确没有,虽然有些插件可以实现,但用起来都不是很方便,偶然发现了一个GUI版本的VIM,与普通的GUI版本 ...

  8. Mac OS X 中使用SAP GUI的方法

    下载sap gui for mac 730 解压后 安装之前需要去oracle 官网下载jdk 6 然后运行 安装完成后配置登陆端 新建连接时,只需要配置Advanced 页签:勾选Expert Mo ...

  9. SourceTree - 好用的 Git / Mercurial GUI 管理工具 for Mac OS X

    Git 是免費.開放源碼的分散式版本控制系統,從小專案到非常大的專案,都可以很快速.有效地管理. 對程式設計師來說,一定要熟記 git 指令的用法,在終端機下操作 git 是必備的基本技能.(其他的 ...

随机推荐

  1. BigBoss按键映射

    // BigBoss: SBSettings Toggle Spec 按键映射 http://thebigboss.org/guides-iphone-ipod-ipad/sbsettings-tog ...

  2. 2019年Angular7——安装搭建路由

    Angular 中文官方:https://www.angular.cn/ 为什么要看Angular?我也不知道,因为公司有个Angular的项目要维护.听说Angular的版本已经到7了.以前没怎么玩 ...

  3. WCF REST 基础教程

    概述 Representational State Transfer(REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格. 因此REST是设计风格而不是标准,R ...

  4. 学习jquery.pagewalkthroung.js插件记录点

    1.53行:options = $.extend(true, {}, $.fn.pagewalkthrough.defaults, options); $.extend的作用是把第二个对象合并到第一个 ...

  5. openCV 和GDI画线效率对比

    一. 由于项目需要,原来用GDI做的画线的功能,新的项目中考虑到垮平台的问题,打算用openCV来实现,故此做个效率对比. 二. 2点做一条线,来测试效率. 用了同样的画板大小---256*256的大 ...

  6. python中有关字符串的处理

    原文 Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字 ...

  7. UVALive - 4960 Sensor network(生成树+LCA)

    题目大意:给出N个点.M条边.问这N个点形成的生成树的最大权值边-最小权值边的最小值 解题思路:先排序,然后按生成树的kruscal算法进行加边,再维护一个最小权值边 加边的时候要考虑一下加下去的边是 ...

  8. Android学习笔记(20):时钟(AnalogClock和TextClock)和计时器(Chronometer)

    时钟文本TextClock继承自TextView.是用于显示当前时间的文本框. TextClock支持的XML属性和相关方法 XML属性 相关方法 说明 android:format12Hour se ...

  9. 搭建hbase-0.94.26集群环境 分类: B7_HBASE 2015-01-24 17:14 861人阅读 评论(0) 收藏

    先安装hadoop1.2.1,见http://blog.csdn.net/jediael_lu/article/details/38926477 1.配置hbase-site.xml <prop ...

  10. win32中SetCapture 和 ReleaseCapture的使用(查一下在VCL中的使用)

    最近在用win32写<visual C++经典游戏程序设计>中的扫雷游戏,在写到鼠标点击雷区的时候用到了SetCapture,和ReleaseCapture这对系统函数. 那么为什么需要用 ...