用Karabiner来解决Mac上部分软件小键盘不能用的问题

Mac上的大部分软件对外置USB键盘支持都是不错的,但是也有一些软件比较偷懒,比如我最近碰到的一个软件就是根本不支持小键盘输入数字,而用大键盘上的数字键倒是没有问题,实在是奇葩。

奇葩归奇葩,问题终究还是要解决的。稍微研究了一下这个问题,发现可以用Karabiner这个软件来对键盘进行映射。对于我的需求,就是把小键盘上的数字键映射成大键盘上的数字键。实现起来不怎么难,先上我修改的private.xml文件内容吧:

<?xml version="1.0"?>
<root>
  <item>
    <name>Change KeyPad 0 to Num 0</name>
    <identifier>private.change_keypad0_to_num0</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_0, KeyCode::KEY_0</autogen>
  </item>
    <item>
    <name>Change KeyPad 1 to Num 1</name>
    <identifier>private.change_keypad1_to_num1</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_1, KeyCode::KEY_1</autogen>
  </item>
    <item>
    <name>Change KeyPad 2 to Num 2</name>
    <identifier>private.change_keypad2_to_num2</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_2, KeyCode::KEY_2</autogen>
  </item>
    <item>
    <name>Change KeyPad 3 to Num 3</name>
    <identifier>private.change_keypad3_to_num3</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_3, KeyCode::KEY_3</autogen>
  </item>
    <item>
    <name>Change KeyPad 4 to Num 4</name>
    <identifier>private.change_keypad4_to_num4</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_4, KeyCode::KEY_4</autogen>
  </item>
    <item>
    <name>Change KeyPad 5 to Num 5</name>
    <identifier>private.change_keypad5_to_num5</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_5, KeyCode::KEY_5</autogen>
  </item>
    <item>
    <name>Change KeyPad 6 to Num 6</name>
    <identifier>private.change_keypad6_to_num6</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_6, KeyCode::KEY_6</autogen>
  </item>
    <item>
    <name>Change KeyPad 7 to Num 7</name>
    <identifier>private.change_keypad7_to_num7</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_7, KeyCode::KEY_7</autogen>
  </item>
    <item>
    <name>Change KeyPad 8 to Num 8</name>
    <identifier>private.change_keypad8_to_num8</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_8, KeyCode::KEY_8</autogen>
  </item>
    <item>
    <name>Change KeyPad 9 to Num 9</name>
    <identifier>private.change_keypad9_to_num9</identifier>
    <autogen>__KeyToKey__ KeyCode::KEYPAD_9, KeyCode::KEY_9</autogen>
  </item>
    <item>
    <name>Change KeyPad Enter to Return</name>
    <identifier>private.change_keypadEnter_to_return</identifier>
    <autogen>__KeyToKey__ KeyCode::ENTER, KeyCode::RETURN</autogen>
  </item>
</root>

修改xml文件参考了以下两个网页:

How to add your own settings: https://pqrs.org/osx/karabiner/document.html.en#privatexml
private.xml参考手册: https://pqrs.org/osx/karabiner/xml.html.en

我是怎么找各个键的键值的?

这可以通过Karabiner菜单上的"Launch EventViewer"工具来解决,在这个工具里,你每按一个键都会显示键值的。

Karabiner是日本人开发的开源软件,还是蛮强大的,本身就自带了许多映射功能。如果你需要的话,可以对键盘上的任意一个键进行映射。

软件主页:https://pqrs.org/osx/karabiner/index.html.en

Github主页:https://github.com/tekezo/Karabiner

时间: 2024-08-13 22:50:02

用Karabiner来解决Mac上部分软件小键盘不能用的问题的相关文章

清理Mac上的软件容易吗?

通常我们将Mac上的软件清楚一般是打开“Finder”,然后点击左侧的“应用程序”,把相应的软件直接拖到“废纸篓中”,这就算卸载了.但是这样真的清理干净了吗? 大多数人都认为Mac的系统功能强大,自我清理功能好,无需使用专门的工具来清理,其实如果我们一直这样认为那就大错特错了,无论是Windows还是Mac系统其实都需要我们的清理,CleanMyMac3清理工具就可以安全彻底清理Mac上的软件,并且你无需担心它本身的存在,它还同时存在一个“自杀”功能,让你无后顾之忧.除了软件清理,对系统清理的功

解决mac上Android开发时出现的ADB server didn&#39;t ACK

mac 上adb连接不到android手机可以参考:这里 xxxdeMacPro:~ xxx$ adb start-server * daemon not running. starting it now on port 5037 * ADB server didn't ACK * failed to start daemon * 出现上面的情况,其中一种情况是其它软件占用了端口,可以 直接干掉占用端口的进程,怎么查看 google 一下方法,挺多的 还有一种就是坑了,我也找了好久,真是个大坑

怎么卸载mac上的软件

虽然mac为我们带来更加简单的软件安装和卸载方式,但是对于有强迫症的人来说,简单的移动到废纸篓并不能完全卸载mac上的软件?那么该怎么卸载mac上的软件才能保证将该软件从mac完全卸载了呢? 下面小编就和大家讲解三种方法,优劣各半,只凭自己选择. 一.使用cleanmymac来卸载 leanmymac是一款专业的mac清理软件,它不仅可以清理mac垃圾,还附带了其它很多的实用功能,卸载软件就是其中之一,也是非常受网友欢迎的一项功能. 优势 操作简单快速,只要两步就可以快速卸载,并不需要特别的技术

Mac上的软件清理卸载工具

Mac上的软件清理卸载工具 Elimisoft App Uninstaller for Mac是一款Mac上的软件清理卸载工具,这款软件可以帮助大家快速卸载掉那些没用的垃圾软件,为大家快速的腾出储存空间.这款软件清理时不会残留其它的垃圾文件.因为该软件能够完全删除那些软件的剩余文件.这款软件还可以轻松删除各种扫描恶意应用程序,病毒,从而提高您的Mac运行速度. 与其他卸载应用程序不同,Elimisoft App Uninstaller是一种帮助您扫描Mac上所有应用程序和病毒的好方法.您可以选择

解决Mac上PyDev无法导入某些模块的问题

前一阵一直在恶补数学知识,昨天突然打开Mac上的Pydev发现有些模块不能正确引入,很奇怪的现象=.= 后来查知自己在pip的时候不小心下了个python2.7.10并把opencv依赖到这个版本的python上了!而本机自带的python2.7.6是通过pip默认安装模块的那个版本. 2.7.6里可以引入scipy.matplotlib但是不能用cv2,而2.7.10里只能引入neurolab.cv2. pydev里不知怎么搞的可以引入除了scipy.neurolab和matplotlib的其

解决Mac上打开txt文件乱码问题

出处:https://www.jianshu.com/p/f55ddf1e9839 经常会在Mac上打开一个txt文件,发现里面的中文都是乱码,问题是在Windows和手机上看都完全是正常的,这就十分闹心了.网上千奇百怪的解决方案大多不能用,试错后发现一个解决方案.需要用到命令行工具iconv,语法是这样的: iconv -f encoding -t encoding sourcefile > destinationfile 比如一个典型的例子(也是大多数情况): iconv -f GB1803

解决Mac os 安装软件一直卡在 Updating Homebrew

Mac os 安装软件时卡在 Updating Homebrew 的解决办法 方法一:禁用安装软件时更新homebrew vim ~/.bash_profile # 增加如下一行 export HOMEBREW_NO_AUTO_UPDATE=true 方法二:更换 homebrew 源 cd "$(brew --repo)" git remote set-url origin https://mirrors.ustc.edu.cn/brew.git #替换掉 homebrew-core

解决Mac上svn无法上传.a文件

“.a”(静态库)文件无法上传(svn工具:Versions) 网上查询了一下,说是Xcode自带的svn和Versions以及一些其它工具都不能上传".a"文件. 解决办法如下: 1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车:2.之后再输入如下命令:svn add libGoogleAnalytics.a,回车:3.之后会出现:A  (bin)  libGoogleAnalytics.a 

解决Mac上Android开发时adb连接不到手机问题

今天在Mac OS上进行Android开发的时候,打开eclipse连接不到手机MX4问题 1. 插入手机打开 Terminal,输入 system_profiler  SPUSBDataType 2. 在显示结果中找  Vendor ID: USB 3.0 Hi-Speed Bus: Host Controller Location: Built-in USB Host Controller Driver: AppleUSBXHCI PCI Device ID: 0x9c31 PCI Revi