如何在 OS X 中制作自定义键盘布局?

mik*_*1aj 86 keyboard-layout macos

我最近搬到了 OS X,我发现系统“俄语拼音”布局不令人满意(这不是我习惯的那种)。如何创建自定义布局?

我读过Ukelele,但我创建并复制到的布局Library/Keyboard Layouts没有显示在键盘首选项中。

我正在使用 OS X 10.9 Mavericks。我在互联网上搜索了解决方案,但大多数已经过时了。

Lri*_*Lri 85

  1. 打开 Ukelele 并选择“文件”>“从当前输入源新建”。在 Ukelele 的新版本中,它还会自动为键盘布局分配一个新 ID。
  2. 编辑键盘布局。
  3. 将键盘布局保存到桌面等临时位置。(直接保存到/Library/Keyboard Layouts/静默失败。)您可以使用两种格式中的任何一种。按住键时显示的 iOS 样式弹出框仅适用于捆绑格式。不过,单个 XML 文件(默认)格式更简单。使用 XML 时,请确保使用.keylayout扩展名保存文件。
  4. 将键盘布局移至/Library/Keyboard Layouts/. ~/Library/Keyboard Layouts/无法在密码对话框或登录窗口中选择键盘布局。
  5. 重新启动计算机。注销并重新登录是不够的。
  6. 从系统偏好设置启用新的键盘布局。

要将更改应用于键盘布局,请运行sudo touch /Library/Keyboard\ Layouts/并重新启动。

有关更多信息,请参阅https://web.archive.org/web/20151030180252/http://osxnotes.net/keylayout-files-and-ukelele.html


更新(2015 年 10 月):有一个新版本的 Ukelele (3.0.0),其中包括从应用程序内安装布局的选项。我仍然需要转到系统首选项来激活它,但根本不需要通过命令行。


Cam*_*mer 14

创建键盘布局文件

我也使用Ukelele来生成键盘布局。然后,您可以导出.bundle.keylayout文件并将其复制到/Library/Keyboard Layouts.

sudo cp KeyboardLayout.keylayout /Library/Keyboard\ Layouts/
Run Code Online (Sandbox Code Playgroud)

如果您想将键盘图标捆绑在一个文件中,Ukelele 提供了一个导出到捆绑选项。因此,在这种情况下,请.bundle改为复制文件。或者,您可以将图标分开并将它们以相同的名称复制到同一文件夹中。

sudo cp KeyboardLayout.icns /Library/Keyboard\ Layouts/
Run Code Online (Sandbox Code Playgroud)

重新启动后,您可以在 System Preferences->Keyboard->Input Sources 菜单中添加输入源。如果您在 Ukelele 的键盘上附加了一种语言,则可能在其他或该语言下可用。

输入源菜单

如何创建 .icns 文件

mkdir layout.iconset
Run Code Online (Sandbox Code Playgroud)

然后将以下 PNG 添加到文件夹中:

# All sizes necessary
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
Run Code Online (Sandbox Code Playgroud)

您不需要所有这些,但这是官方列表。有些在像素数上是多余的,但表示密度。

iconutil --convert icns --output layout.icns layout.iconset/
Run Code Online (Sandbox Code Playgroud)

GitHub 上的示例项目

我在 GitHub 上的乌克兰-俄罗斯项目是一个演示,目前正在小牛队 10.9.5 上工作。

  • +1 表示乌克兰-俄罗斯项目链接。现在分享给一些小伙伴。谢啦! (2认同)

Sen*_*ful 9

Ukelele可能对你有用,只是被警告它似乎是在软件级别(而不是硬件级别)重新绑定键,所以你可能会开始遇到一些问题,比如某些应用程序无法识别修饰符或特殊键重新绑定,无法在密码对话框等中使用它。

如果您正在寻找更强大的解决方案,请查看Karabiner