使用Karabiner为Mac内置键盘、HHKB进行映射
使用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后,自动进行切换就好了。
使用Karabiner为Mac内置键盘、HHKB进行映射的更多相关文章
- 一个禁用mac内置键盘的方法
一个禁用mac内置键盘的方法 强大的 karabiner, 非常好用. 可以直接在有外接键盘连接的情况下, 禁用掉内置键盘 另外一个方法是启用mac的 鼠标键, 感觉用处不是很大, 修饰健并没有被禁用 ...
- SpringBoot 常用配置 静态资源访问配置/内置tomcat虚拟文件映射路径
Springboot 再模板引擎中引入Js等文件,出现服务器拒绝访问的错误,需要配置过滤器 静态资源访问配置 @Configuration @EnableWebMvc public class Sta ...
- mac 内置PHP配置多站点
1.修改/private/etc/hosts 文件,建议用编辑器打开 最后一行加入你的网站名称(自定义),参考如下: 127.0.0.1 www.MyObj.com 2.修改/private/et ...
- mac内置的FTP工具
在 Mac OS X 系统下,有不少优秀的 FTP 工具,如 Cyberduck.Transmit,但是你是否知道除了这些第三方应用,系统已经为你准备好了一个内置的 FTP 工具?/ M: e0 J% ...
- 【Head First Servlets and JSP】笔记16:JSP隐式对象(内置对象)的映射关系
接笔记15. 1.不管是JSP中的<%%>还是<%\=%>最终都将处于servlet的方法体中,那么有没有一种元素可以声明成类的成员呢? ——答案是有,而且非常非常简单,这个元 ...
- CSIC_716_20191115【内置函数、递归、模块、软件开发规范】
内置函数 map map映射:语法结构(函数对象,可迭代对象) 依次从可迭代对象中取值,然后给函数做运算,再依次返回运算的结果. ss = map(lambda x: x + x, [1, 2, 3] ...
- 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)
最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...
- java:javaScript(定义方式,循环语句,函数与参数,事件机制,控制台记录,event事件获取键盘ascii,confirm和prompt,事件和内置对象,获取input,点击更换背景色)
1. 定义JS的两种方式: <!DOCTYPE> <html> <head> <meta charset="UTF-8"></ ...
- 微信内置浏览器的 User Agent的判断
如何判断微信内置浏览器,首先需要获取微信内置浏览器的User Agent,经过在 iPhone 上微信的浏览器的检测,它的 User Agent 是: Mozilla/5.0 (iPhone; CPU ...
随机推荐
- javascript私有属性失效及解决方案
1.js创建私有属性的方法 在 javascript 中所有对象的成员是公有的 构造函数也是如此: function Gadget ( ) { this.name = ' jack '; this.p ...
- C# Andriod AES 加密算法
android端: package com.kingmed.http; import java.io.UnsupportedEncodingException; import javax.crypto ...
- C++读取XML,tinyXml的使用
前言: 最近在开发的过程中,有个需求是对xml进行格式转化,从一种格式转化到另外一种格式.因此,就需要读取xml进行处理.原本打算写成工具在linux下运行,不过后来考虑到和系统结合,最后也就使用了前 ...
- Beetl使用注意事项
1.如果表达式跟定界符或者占位符有冲突,可以在用 “\” 符号 @for(user in users){ email is ${user.name}\@163.com @} ${[1,2,3]} // ...
- Centos7.1下Docker的安装-yum方法
在CentOS7上安装1. 查看系统版本: $ cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 2. 安装docker $ y ...
- Javascript实现打开或退出浏览器全屏
废话不多说,直接上代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www. ...
- 3dmax导出缩放
参考 http://blog.dou.li/unity3d-import-3dmax-model-scale.html http://blog.csdn.net/pdw_jsp/article/det ...
- 3DMAX 多维材质及对应的UVW展开,UVW贴图
多维材质说明 多维材质就是一个模型多个材质,(混合材质是多个材质混一起,跟这个貌似没关,比如地表草地,泥土等的混合操作) 作用: 比如一个模型就是需要两种材质,刀的金属刀身,木质刀柄,墙的一面是木板, ...
- 洛谷P3293 [SCOI2016]美味(主席树)
传送门 据说这题做法叫做可持久化trie树?(然而我并不会) 首先考虑一下贪心,从高位到低位枚举,如果能选1肯定比选0优 假设已经处理到了$b$的第$i$位,为1(为0的话同理就不说了) 那么只有当$ ...
- Spring Boot Dubbo 构建分布式服务
概述: 节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数 ...