HHKB (happy hacking keyboard) 是世界顶级键盘品牌,自 1996 年推出以来畅销至今。与其他键盘不同,HHKB 机身小巧,省略了 F1 - F12 功能键、光标键和 Page Up / Page Down 等功能键,使其整体得以集成在仅仅 60 个按键上。麻雀虽小,五脏俱全,通过调整开关配置键盘布局,我们能使用不同键位组合复现 101 全尺寸键盘的所有功能。

本文提及的键盘配置方案,适用于包括 HHKB Pro 2 在内的大部分现役产品。对 HHKB 机身后方的六个开关,我推荐使用如下的配置:

  • Windows: 开启 1 3 4 号开关
  • MacOS: 开启 2 3 4 号开关

后文将详述采用此配置的理由。

让我们先来看一下 HHKB Pro 2 的默认布局。

与传统键盘相比,可以看到下面几个显著的差别。

  1. CAPS LOCK 键被取消,Control 键被放置在原 CAPS LOCK 的位置。这对于使用 emacs 等重度依赖 Control 键的用户无疑是利好消息。
  2. F1 - F12,以及 HOME,END 和 INS 等功能键被取消,6 排按键被压缩至 5 排。这样的设计,使用户无需离开基准键位(F 和 J)即可触及各类功能键。
  3. 原先处于 1 左侧的波浪键被移动至最右侧。这是为了对应数字和 F1 - F12 而做出的修改。
  4. 移除了退格键 Backspace,用 Delete 代替。
  5. 移除了光标键。
  6. 上述被移除的按键,均可以通过使用右下角的 Fn 加上某个按键的方式恢复出来。由 Fn 激活的功能镌刻在按键侧面,如上图所示。

你可能已经发现了,很多基础操作都严重依赖于 Fn 键,但 Fn 偏居一隅,必须使用右手小指触发。这样会带来两个问题。首先,这意味着右手会脱离基准键位 J,显著影响击键效率。其次,Fn 使用最频繁的功能是光标键,但是由右手同时按下光标键和 Fn 并不协调。如果能把光标键定位至 WSAD,由左手操作,则要好得多。解决这些问题的办法,就是把 Fn 放置到一个便于使用的地方。


其实HHKB的键位很神奇,刚开始的时候的确很不适应,比如说:经常按错Delete键,缺乏方向键,Fn键位置不同(小键盘中Fn是常用键位)等等。

关于Fn 的位置似乎可以调至左Alt的边上,即下图

但在macOS 用户 Command Left 使用频率还是高于 Fn,所以不建议去修改左侧键位。

但经常一段时间的使用,HHKB已经是我最爱用的键盘了!(当然这篇文章也是用 HHKB 写的)

附几张键盘使用照 ↓

HHKB 键盘布局记录以及一些闲言碎语的更多相关文章

  1. 树莓派(raspberry pi)学习4: 更改键盘布局(转)

    树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题,折腾我半天.还是把心得分享一下吧 上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国 ...

  2. vim常用命令 vim键盘布局

    vim键盘布局,vim快捷键 vim常用命令:

  3. gnome设置dvorak键盘布局

    若桌面环境为gnome,设置Dvorak键盘程序员布局很简单.系统设置 -> 键盘 -> 布局设置 -> 点击"+" ->选择"英语(适合程序员的 ...

  4. EditText 默认不获取焦点,弹出软键盘布局变形解决方案

    关于弹出软键盘布局变形解决方案: 在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan&qu ...

  5. Vim键盘布局

     Vim键盘布局 用Linux的朋友一定会使用到Vim这个文本编辑器,它是由Vi发展而来的编辑器,其具有代码补齐.编译.错误跳转等丰富的功能,非常适合编程.对于修改Linux配置文件它更是你不二的选择 ...

  6. CentOS 5.x 键盘布局改为日语

    CentOS 5.x 直接在系统设置界面修改键盘布局,可能不起作用,需要按如下步骤修改配置文件. 1. /etc/sysconfig/keyboard KEYTABLE="jp106&quo ...

  7. 树莓派 Learning 002 装机后的必要操作 --- 00 修改键盘布局

    树莓派 装机后的必要操作 - 修改键盘布局 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 上网查,发现树莓派的键盘布局不对,树莓派(ras ...

  8. 树莓派(raspberry pi)更改键盘布局

    http://blog.csdn.net/c80486/article/details/8460271 树莓派(raspberry pi)用了几次后,发现键盘老是按错,一些字符打不出来或打错 这个问题 ...

  9. 说说qwerty、dvorak、colemak三种键盘布局

    [qwerty布局] qwerty布局大家应该都很熟悉了,全世界最普及的键盘布局. 截止到去年接触并使用dvorak布局之前,我使用了十几年qwerty布局,在http://speedtest.10f ...

  10. (Linux基础学习)第六章:查询与修改系统的本地化(locale)与键盘布局的设置(locelectl)

    第1节:可查询与修改系统的本地化(locale)与键盘布局的设置[root@centos7 ~]# localectl System Locale: LANG=en_US.UTF-8 VC Keyma ...

随机推荐

  1. mysql 安装避坑指南 ,mysql 安装后不能启动, mysql 指定版本安装,mysql 5.7.39版本安装,mysql 5.7.36版本安装

    mysql 安装后不能启动,报错如下:请参照本说明第7条的办法解决.mysqld.service: Control process exited, code=exited status=1Please ...

  2. Excel表格数据可视化的六大常见方式,看看你都会吗?

    当涉及到Excel表格数据的可视化,有许多不同的方式可以展示和呈现数据.以下是六种常见的Excel表格数据可视化方式的详细介绍. 1. 条形图(Bar Chart) 条形图是一种常见的数据可视化图表类 ...

  3. [ABC268G] Random Student ID

    Problem Statement Takahashi Elementary School has $N$ new students. For $i = 1, 2, \ldots, N$, the n ...

  4. SSM整合 tomcat报错: <严重 [RMI TCP Connection(22)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到>

    前提:学了一个暑假 从Javaweb -> mybits ->spring -> spring-mvc 打算跟着网上ssm整合项目做一个项目 在完成最后一步spring对spring ...

  5. ElasticSearch之查看集群的参数

    参考Cluster get settings API. 命令样例,不指定参数,如下: curl -X GET "https://localhost:9200/_cluster/setting ...

  6. 首次引入大模型!Bert-vits2-Extra中文特化版40秒素材复刻巫师3叶奈法

    Bert-vits2项目又更新了,更新了一个新的分支:中文特化,所谓中文特化,即针对中文音色的特殊优化版本,纯中文底模效果百尺竿头更进一步,同时首次引入了大模型,使用国产IDEA-CCNL/Erlan ...

  7. 使用Java 17中的record替代Lombok的部分功能

    在DD长期更新的Java新特性专栏中,已经介绍过Java 16中开始支持的新特性:record的使用. 之前只是做了介绍,但没有结合之前的编码习惯或规范来聊聊未来的应用变化.最近正好因为互相revie ...

  8. 文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题

    四.一次聚会需要邀请多少人,才能让其中 3 人的生日很可能相同? 文心一言: 为了解决这个问题,我们需要先计算出所有可能的生日组合数,然后计算出其中生日相同的组合数. 已知需要邀请的人数为:23人 根 ...

  9. 文心一言 VS chatgpt (17)-- 算法导论4.1 3~4题

    三.在你的计算机上实现最大子数组问题的暴力算法和递归算法.请指出多大的问题规模n0是性能交叉点一一从此之后递归算法将击败暴力算法?然后,修改递归算法的基本情况一一当问题规模小于 n0 时采用暴力算法. ...

  10. spring-mvc 系列:拦截器和异常处理器(HandlerInterceptor、HandlerExceptionResolver)

    目录 一.拦截器的配置 二.拦截器的三个抽象方法 三.多个拦截器的执行顺序 四.基于配置的异常处理器 五.基于注解的异常处理器 一.拦截器的配置 SpringMVC中的拦截器用于拦截控制器方法的执行 ...