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. 怎样判断一个P2P平台是否靠谱?

    判断一个网站,是否靠谱,是有规律可循的,P2P平台算是个新兴的电商类网站.   网上欺诈类的网站,不限于P2P,实在是太多了,真的有必要总结下最关键的几个靠谱指标.   最关键的2个   1.创始人和 ...

  2. Eclipse中开发环境也想把Tomcat 的默认BIO模式改为NIO模式

    1.1 问题 有时候,开发环境我们也想把Tomcat 的默认BIO模式改为NIO模式,该如何改呢? 1.2 方案 通过eclipse里面的server.xml进行修改. 1.3 步骤 首先我们来一起看 ...

  3. linux下设置密码复杂度限制,怎么设置?

    在linux,设置密码复杂度的方法有几个1. 一个是在/etc/login.defs文件,里面几个选项PASS_MAX_DAYS 90 #密码最长过期天数PASS_MIN_DAYS 80 #密码最小过 ...

  4. 【POJ 1226】Substrings

    [链接]h在这里写链接 [题意] 给你n个字符串. 让你找一个字符串s. 设s'为这个字符串的逆序. 要求s或者s'在每个字符串里都能够找得到. 并且要求s的长度最长. 求出这个最长的串的长度. [题 ...

  5. Mybatis全面详解——上(学习总结)

    原文地址:https://blog.csdn.net/ITITII/article/details/79969447 一.什么是Mybatis 这里借用官网的一句话介绍什么是mybatis:MyBat ...

  6. WIFI 状态栏显示的wifi信号强度与wifisetting列表不一致

    [DESCRIPTION] 状态栏显示的wifi信号强度与wifisetting列表不一致(不同步) [ANALYSIS] 1.apk都是接收RSSI_CHANGED intent,并调用WifiMa ...

  7. ListView.setSelection(position)不起作用

    选择同事列表页面,在Adapter里设置复选框背景时调用了notifyDataSetChanged(),阻碍了UI线程,因此在设置ListView.setSelection(position)时不起作 ...

  8. CSS Reset的相关概念及实例

    原文 简书原文:https://www.jianshu.com/p/fdb79010895c 大纲 1.什么是css reset? 2.CSS reset的实例 1.什么是css reset? 个人理 ...

  9. FZU 1650 1752 a^b mod c

    http://acm.fzu.edu.cn/problem.php?pid=1752 http://acm.fzu.edu.cn/problem.php?pid=1650 给跪了. 我的快速幂会越界. ...

  10. [Python学习] 简单爬取CSDN下载资源信息

    这是一篇Python爬取CSDN下载资源信息的样例,主要是通过urllib2获取CSDN某个人全部资源的资源URL.资源名称.下载次数.分数等信息.写这篇文章的原因是我想获取自己的资源全部的评论信息. ...