将自定义键盘布局设置为系统默认设置,即使是登录屏幕也是如此


37

我是否可以将自定义键盘布局(默认情况下不包含在OS X中)设置为系统默认设置(即使是登录屏幕也是如此)?


(同时,您可能无法接受答案,可能会使读者感到困惑)
— o0'。

1
@Lohoris:完成!
— Mathias Bynens

请更新问题b删除更新说明,最佳答案现在也适用于最新的osx版本
— Bert Goethals 2014年

Answers:


13

这在OSX 10.9 Mavericks上有效,并且使用我用Ukulele创建的键盘布局。假设您已经在系统中安装了布局,请登录到您的帐户并激活您的自定义键盘布局。

打开一个终端并运行以下命令:

cp /Library/Preferences/com.apple.HIToolbox.plist /tmp/

如果您打算使用文本编辑器(例如TextWrangler)代替XCode(具有专门的图形化plist编辑器)进行此更改,请运行:

plutil -convert xml1 /tmp/com.apple.HIToolbox.plist

现在,/tmp/com.apple.HIToolbox.plist在文本编辑器或XCode中打开。

在整个文件中,您会发现多次提到一个KeyboardLayout ID键,后跟一个整数,KeyboardLayout Name然后是一个字符串。将这些字符串更改为自定义键盘布局的名称,并将id整数更改为布局的ID(查找正确值的最简单方法是与文件中的用户设置进行比较~/Library/Preferences/com.apple.HIToolbox.plist。

此外,还AppleCurrentKeyboardLayoutInputSourceID必须相应地更改键的值(可能更改为org.unknown.keylayout.NameOfYourLayout)。同样,您可以在本地首选项文件中找到该值。

完成这些更改后,保存文件并返回到终端。为了安全起见,您可以创建原始com.apple.HIToolbox.plist文件的副本,以防万一您出错并需要回滚。例如,要将副本保存在“ 文档”文件夹中:

sudo cp /Library/Preferences/com.apple.HIToolbox.plist ~/Documents

然后使用以下安装您的更改:

sudo sh -c 'cat /tmp/com.apple.HIToolbox.plist > /Library/Preferences/com.apple.HIToolbox.plist'

(plutil如果您早先这样做,则无需将文件转换为文本格式。)

退出终端,然后重新启动计算机(注销还不够:不会重新读取该文件)。重新启动后,您应该在登录屏幕中拥有键盘布局。

注:这是可能的,它本来是足以将文件复制com.apple.HIToolbox.plist从~/Library/Preferences/到/Library/Preferences/,但在我的情况下,它有更多的项目,所以我决定发挥它的安全,只是修改现有的文件。


立即尝试此操作,因为其他答案不起作用。FWIW,这是com.apple.HIToolbox.plist更改后我的文件的样子:gist.github.com/anonymous/d18bae208b5cf12e48be
— Mathias Bynens

完美地工作,谢谢!很抱歉,我不能再给您赏金,所以我将设置一个新的赏金以奖励您这个答案。
— Mathias Bynens

很高兴它有所帮助。感谢您的额外奖励!:-)
— Eric J. Francois

像魅力一样工作。大提示!
— ƘɌỈSƬƠƑ

这是太棒了。我的比利时键盘默认值太长了,真让我感到困惑!我希望我能给你多张票!
— Bert Goethals 2014年

12

我发现了这个古老的MacWorld技巧,它建议再次运行设置助手:

sudo /System/Library/CoreServices/Setup Assistant.app\
/Contents/MacOS/Setup Assistant

刚开始,我认为Lion不支持此功能,因为运行此命令似乎没有任何效果。仅在发布此问题后,我才注意到命令中有错别字。需要正确地转义空格字符,或者需要引用二进制文件的位置。因此,我链接的提示不起作用。

这是正确的命令:

sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

另外,这也可以工作:

sudo /System/Library/CoreServices/Setup\ Assistant.app/Contents/MacOS/Setup\ Assistant

我链接到的页面上没有提到的另一个陷阱:自定义键盘布局需要安装在/Library/Keyboard Layouts/(即cd /Library/Keyboard\ Layouts)中,而不是要安装~/Library/Keyboard Layouts在“安装助手”的键盘布局选择屏幕中。


更新: 从OS X 10.8开始,您需要运行一个额外的命令(即,首先删除文件):

sudo rm /var/db/.AppleSetupDone; sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

另外,您必须创建一个新的用户帐户才能完成设置助手-但请放心,您可以在以后删除该新帐户。

在最新的OS X 10.8版本中,此技巧不再起作用。


更新: 这是我了解的有关OS X上自定义键盘布局的所有信息。


我遵循了Mountain Lion 10.8的步骤,并运行了设置助手增益,将我的默认键盘布局设置为Dvorak,并尝试登录,但没有成功。在重新启动时,它仍使用qwerty作为登录屏幕。
— AMS

是的,自OS X 10.8起,它似乎不再起作用。:(
— Mathias Bynens

3

我正在使用在OS X 10.8.5中由Ukelele 创建的自定义键盘布局。我通过以下步骤更改了登录屏幕的键盘布局:

  1. 开放Users & Groups的System Preferences
  2. Login Options从左侧面板的底部选择
  3. 校验 Show Input menu in login window
  4. 转到登录屏幕
  5. Other input sources从右上方的输入菜单中选择首选布局
  6. 返回并取消选中,Show Input menu in login window以防止进一步更改登录布局

我发现此方法比编辑一些随机.plist文件并在终端上运行命令要容易得多。

此方法可能需要管理访问权限,因为您可能需要通过单击底部的锁定图标来解锁上述步骤3中的右窗格。

更新:可悲的是,这似乎在OS X 10.9上不起作用。


我已授予您赏金,因为这似乎是最好的答案,但实际上似乎并不起作用-它总是回到默认的美国键盘布局。为了测试这一点,我使用了一种键盘布局,该布局允许我通过一次击键输入三个符号,因此我可以看到在密码输入框中出现了多少个被屏蔽的字符。应用了您提到的步骤之后,我一次只能输入一个符号(根据美国键盘)。
— Mathias Bynens

您能否描述OS X 10.9无法使用的功能?使用Workman布局(可在此处找到:workman.deekayen.net)时,我能够成功地遵循这些步骤(我没有执行步骤6 )。但是我的问题是,如果选择了该布局并锁定了计算机,则输入菜单将不会显示在登录屏幕上,但是如果我具有Dvorak或OS X本身支持的其他功能,那就很好了(即,我看到了菜单)并且可以根据需要切换回美国)
— Timothée鲍彻

@TimothéeBoucher我之前的评论描述了哪里出了问题以及如何测试。
— Mathias Bynens 2013年

2

安装macOS Sierra之后,每次登录我的帐户后,我的自定义布局都会重新初始化为默认设置。

苹果添加了新的键盘,并且ID与我使用的键盘冲突。

要验证是否有此问题运行:

sudo touch /库/键盘\布局/

输出:

Keyboard Layouts: duplicate keyboard layout identifier 5000.
Keyboard Layouts: keyboard layout identifier 5000 has been replaced with 16383.

输出声称它已修复某些问题,但实际上并未执行任何操作。我仍然必须自己编辑布局,并且它像以前一样开始工作。


也改变了我的习惯。可悲的是,修复.plist文件中的ID对我没有帮助。
— 帕维尔·古尔科夫

@PavelGurkov之后是否在文件夹上运行了sudo touch命令?操作系统需要考虑它。
— jrobichaud 2016年

是的,做到了,根本没有任何输出。尽我所能检查了一切,但仍然...在El Capitan上完美工作,在Sierra上没有运气。
— Pavel Gurkov '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.