美文网首页
使用Karabiner改键让AffinityPhoto和Phot

使用Karabiner改键让AffinityPhoto和Phot

作者: 超级大柱子 | 来源:发表于2016-02-02 23:18 被阅读708次

此文作废,最新版的Affinity已经自带了改建功能,不需要使用外部工具配合了


0.软件介绍

a.Karabiner

  • Mac改键软件,类似Windows的Autohotkey,免费软件
  • 根据官网的资料,修改XML可以作为改键的设定
  • 软件官网: https://pqrs.org/osx/karabiner/
  • 同类的竞品有KeyboardMaestro(收费软件),主要是用户界面操作.
  • Karabiner的优势有:可以判断是否在输入状态;可以识别左右Cmd等控制键.

b.AffinityPhoto

  • 绘图软件,类似Photoshop.
  • 软件官网: https://affinity.serif.com/en-gb/
  • 优点1.是它充分利用了Mac上的GPU加速(用的OpenGL)
  • 优点2.矢量绘图,它是最棒的.
  • 优点3.它可以用许多Photoshop的资源:笔刷,插件
  • 缺点1.许多细节功能不如Photoshop丰富
  • 缺点2.软件的自定义未完善,很多使用习惯和PS有出入,老设计师上手会烦躁.
  • 缺点3.只有Mac平台
  • AffinityPhoto是Photoshop的竞品,AffinityDesign是AI的竞品,不要混淆了.

不管如何,纵观Gimp,Krita,Sai,AI,Sketch都不如它.
如果你厌倦了Photoshop,不喜欢Adobe系列的庞大,它是不二选择.


1.Karabiner设定

a.找到private.xml
/Users/用户名/Library/Application Support/Karabiner/private.xml

b.在private.xml中添加代码:

<appdef>
    <appname>Affinity</appname>
    <equal>com.seriflabs.affinityphoto</equal>
</appdef>

<item>
    <name>Affinity</name>
    <identifier>private.Affinity_Cmd_L</identifier>
    <only>Affinity</only>
    <uielementrole_not>AXTextField, AXTextArea</uielementrole_not>

<!-- 普通-->
<autogen>__KeyToKey__
    KeyCode::Z,ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::Z,
</autogen>
<autogen>__KeyToKey__
    KeyCode::Y, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::U,
</autogen>
<autogen>__KeyToKey__
    KeyCode::V, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::V,
</autogen>
<autogen>__KeyToKey__
    KeyCode::G, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::G,
</autogen>
<autogen>__KeyToKey__
    KeyCode::E, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::E,
</autogen>
<autogen>__KeyToKey__
    KeyCode::B, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::B,
</autogen>
<autogen>__KeyToKey__
    KeyCode::C, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::P,
</autogen>
<autogen>__KeyToKey__
    KeyCode::P, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::C,
</autogen>
<autogen>__KeyToKey__
    KeyCode::R, ModifierFlag::NONE,
    KeyCode::O,
    KeyCode::L,
</autogen>

<!-- 组合-->
<autogen>__KeyToKey__
    KeyCode::D, ModifierFlag::NONE,
    KeyCode::BRACKET_LEFT,
</autogen>
<autogen>__KeyToKey__
    KeyCode::F, ModifierFlag::NONE,
    KeyCode::BRACKET_RIGHT,
</autogen>
<autogen>__KeyToKey__
    KeyCode::N, ModifierFlag::NONE,
    KeyCode::N, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L,
</autogen>
<autogen>__KeyToKey__
    KeyCode::J, ModifierFlag::NONE,
    KeyCode::J, ModifierFlag::COMMAND_L,
</autogen>
<autogen>__KeyToKey__
    KeyCode::A, ModifierFlag::NONE,
    KeyCode::D, ModifierFlag::COMMAND_L,
</autogen>

</item>

c.代码解释:
c1.添加一个改建区块

<item>
    <name>Affinity</name>   //区块名
    <identifier>private.Affinity_Cmd_L</identifier> //区块唯一识别码
    <only>Affinity</only>       //只在Affinity中有效
    //添加区块的其他代码
</item>

c2.如果当前激活控件是OSX的AXTextField,AXTextArea时,不进行改键,用于区别输入状态
<uielementrole_not>AXTextField, AXTextArea</uielementrole_not>
c3.如果单独按了Z键,则会安一下O,再按一下Z键;为了防止Z键和其他键位相互切换;具体为什么要这么做,如果看官用一段时间AffinityPhoto就知道了.
<autogen>KeyToKey
KeyCode::Z,ModifierFlag::NONE,
KeyCode::O,
KeyCode::Z,
</autogen>

理解了上面的代码,整个代码就都是通用的.不再一一描述.
使用以上的代码之后,AffinityPhoto就可以随意的修改成自己想要的键位和格式了.
所有使用Cocoa框架的软件都可以使用以上的方法自己定义热键.

至此,AffinityPhoto的操作方式就和Photoshop一样了.

相关文章

网友评论

      本文标题:使用Karabiner改键让AffinityPhoto和Phot

      本文链接:https://www.haomeiwen.com/subject/ykqekttx.html