使用Karabiner为Mac内置键盘、HHKB进行映射

1 引言

自从使用了Mac后,经过一系列折腾:

  • 买了个HHKB Pro 2 TypeS,感觉手感确实不错,比内置键盘好多了,就是稍微有些硬。
  • 编辑软件从Vim转为了Emacs
  • 使用iTerm2作为常用Terminal
  • 一些常用软件等等

现在使用Mac办公已经毫无压力。

但是,内置键盘的键位和HHKB不同,Mac系统快捷键、Emacs快捷键、iTerm2快捷键都不太一样,每次切换时可能使用几套键盘快捷键,非常不方便,影响心情和效率,所以有必要进行键盘映射和统一。

经过查找、实验,发现Karabiner非常好的实现了上述功能,键盘操作行云流水般。再让我使用缺省的键盘设置,都非常不习惯了。

下面我先把Mac内置键盘和HHKB的映射方法方法简要说明下。
我的配置是:

  • 把Mac内置键盘改成HHKB键位
  • 把HHKB的删除键改成内置键盘的位置(因为删除键刚好无名指一伸就按到了)
  • 两个键盘都增加‘–>Control,以便和左Control对称,左右开弓

2 什么是Karabiner和配置方法的基本说明

Karabinar是一款键盘映射工具,for mac,开源,原名称为KeyRemap4MacBook。
https://github.com/tekezo/Karabiner/
https://pqrs.org/osx/karabiner/document.html

设置主要通过“preference”进行。
可以创建不同的profile,比如:可以为两块键盘设置不同的profile。每个profile可以单独进行设置。

Karabinar为我们提供了很多预设选项,可以直接在“change key”中勾选;如果不够用,可以通过“Misc & Uninstall”中的“Custom Setting”对private.xml进行编辑。编辑后,需要在“Change Key”中“Reload XML”刷新选择项。

3 内置键盘设置

使用”default”设置。主要是设置CapsLock键为Control键:

禁用系统的CapsLock键
系统偏好设置–>键盘–>修饰键,设置CapsLock为无操作
通过Seil设置CapsLock为F19
下载安装Seil,选择Change the caps lock key为80(F19)
设置F19为Escape和Control
Custom shortcuts->F19 to Escape and Control。这样点击此键,就是ESC,组合其他键就是Control

4 HHKB设置

新增“HHKB” profile,主要是设置\键为Delete:

  • 勾选“Change Backslash(\) key -> Backslash(\) to Delete”。
  • 在“Change Delete Key”中,勾选“Delete to Backslash(\)”和“Shift+Delete to Pipe(|)”

5 通用设置

两个键盘都增加‘–>Control,以便和左Control能够对称:
修改private.xml,增加如下配置:

<item>
<name>Quote to Quote</name>
<appendix>(+ When you type Quote + key, send Control_L + key)</appendix>
<identifier>remap.quote2quote_controll</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::QUOTE, KeyCode::CONTROL_L, KeyCode::QUOTE</autogen>
</item>

在default和hhkb两个profile,都勾选。

6 待完善内容

两个profile现在需要手工切换,有些麻烦,如果能够在插入hhkb后,自动进行切换就好了。

Author: galaxy

Created: 2015-04-24 Fri 22:46

Emacs 24.4.1 (Org mode 8.2.10)

Validate

使用Karabiner为Mac内置键盘、HHKB进行映射的更多相关文章

  1. 一个禁用mac内置键盘的方法

    一个禁用mac内置键盘的方法 强大的 karabiner, 非常好用. 可以直接在有外接键盘连接的情况下, 禁用掉内置键盘 另外一个方法是启用mac的 鼠标键, 感觉用处不是很大, 修饰健并没有被禁用 ...

  2. SpringBoot 常用配置 静态资源访问配置/内置tomcat虚拟文件映射路径

    Springboot 再模板引擎中引入Js等文件,出现服务器拒绝访问的错误,需要配置过滤器 静态资源访问配置 @Configuration @EnableWebMvc public class Sta ...

  3. mac 内置PHP配置多站点

    1.修改/private/etc/hosts 文件,建议用编辑器打开 最后一行加入你的网站名称(自定义),参考如下: 127.0.0.1 www.MyObj.com   2.修改/private/et ...

  4. mac内置的FTP工具

    在 Mac OS X 系统下,有不少优秀的 FTP 工具,如 Cyberduck.Transmit,但是你是否知道除了这些第三方应用,系统已经为你准备好了一个内置的 FTP 工具?/ M: e0 J% ...

  5. 【Head First Servlets and JSP】笔记16:JSP隐式对象(内置对象)的映射关系

    接笔记15. 1.不管是JSP中的<%%>还是<%\=%>最终都将处于servlet的方法体中,那么有没有一种元素可以声明成类的成员呢? ——答案是有,而且非常非常简单,这个元 ...

  6. CSIC_716_20191115【内置函数、递归、模块、软件开发规范】

    内置函数 map map映射:语法结构(函数对象,可迭代对象) 依次从可迭代对象中取值,然后给函数做运算,再依次返回运算的结果. ss = map(lambda x: x + x, [1, 2, 3] ...

  7. 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)

    最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...

  8. java:javaScript(定义方式,循环语句,函数与参数,事件机制,控制台记录,event事件获取键盘ascii,confirm和prompt,事件和内置对象,获取input,点击更换背景色)

    1. 定义JS的两种方式: <!DOCTYPE> <html> <head> <meta charset="UTF-8"></ ...

  9. 微信内置浏览器的 User Agent的判断

    如何判断微信内置浏览器,首先需要获取微信内置浏览器的User Agent,经过在 iPhone 上微信的浏览器的检测,它的 User Agent 是: Mozilla/5.0 (iPhone; CPU ...

随机推荐

  1. cocos2dx 获取精灵的高亮效果

    转自:http://blog.csdn.net/tyxkzzf/article/details/38703883 CCSprite* getHighlightSprite(CCSprite* norm ...

  2. SQL Replication

    http://www.cnblogs.com/CareySon/archive/2012/06/20/IntroductToSQLServerReplicationPart1.html http:// ...

  3. Repeater 和 GridView 中数据格式化

    GridView中显示两位小数: <asp:BoundField DataField="investmoney" DataFormatString="{0:f2}& ...

  4. NGUI panel 之下widget最大depth是1000,超过1000时OnClick会出问题!

    经过我的测试发现ngui widget的depth是有限制的!原本以为只要不同panel间的depth设置好了后无论widget depth如何设置都没问题,直到我们项目中出现奇怪的点击问题后才发现这 ...

  5. eclipse&nbsp;maven&nbsp;plugin&amp;n…

    eclipse maven plugin 插件 安装 和 配置 Posted on 2012-07-13 12:40 fancydeepin 阅读(9850) 评论(7)  编辑  收藏 所属分类:  ...

  6. Al-Qaeda&nbsp;affiliate&nbsp;in&amp;…

    By Greg Miller, Updated: Friday, February 1, 4:13 AM New intelligence on al-Qaeda's affiliate in Nor ...

  7. QTreeWidget笔记

    1.QTreeWidget继承自QTreeView. 2.头文件:QTreeWidget 3.简单使用: #include "mainwindow.h" #include < ...

  8. 星级评分--封装成jquery插件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 天梯赛L3-001. 凑零钱(01背包记录物品)

    L3-001. 凑零钱 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现 ...

  10. 聊聊心跳机制及netty心跳实现

    我们在使用netty的时候会使用一个参数,ChannelOption.SO_KEEPALIVE为true, 设置好了之后再Linux系统才会对keepalive生效,但是linux里边需要配置几个参数 ...