脚本整理融合

感谢 jasonrudolph 分享出来的hammperspoon脚本. 代码在github上 mac的应用窗口和应用切换功能太弱. 在win下 win+数. 切换任务栏上的窗口 ! win+方向键调整当前窗口 !

功能列表

切换应用

Fn/Alt + 数字/符号/大小写字母 切换应用

在 hammerspoon/app_launch_key.lua 文件中, 这两个配置表, 是 键<–>应用 关联表

摁住opt, 敲下2后, 就是idea, 在敲下2, 如果idea的窗口有多个, 就切换idea的窗口, 这个功能需要HyperSwitch配合, 设置alt+`是应用窗口切换

hammerspoon/app_name.lua 应用的 名字 和 文件名切换

local fn_app_key = {
    a = "Sublime Text",
    b = "Typora",
    B = "GitBook Editor",
    v = "钉钉",
    q = "QQ",
    g = "Postman",
    ['1'] = "Be Focused",
    ['2'] = "Reminders",
    ['3'] = "日历",
    ['4'] = "Hammerspoon",
    ['`'] = "屏幕共享",
    ['t'] = "Sequel Pro"
}

local alt_app_key = {
    ['1'] = 'iTerm',
    ['!'] = "Terminal",
    ['2'] = 'IntelliJ IDEA',
    ['@'] = "Atom",
    ['3'] = 'Safari',
    ['#'] = 'Google Chrome',
    ['4'] = 'PyCharm',
    ['5'] = 'DataGrip',

    f = 'Notes',
    e = 'Finder',
    E = 'Microsoft Excel',
    v = '微信',

    [';'] = 'Photos',
    ['\''] = 'MPlayerX',
    [','] = '系统偏好设置'
}

窗口调整

  1. Fn + sdfe 灵活调整窗口 类似 win + 方向键
    • sdfe 就当方向键, 摁e, 窗口就往上走, 恩 是走到上面去 !

karabiner配置

针对不同的键盘设备可有不同的配置.

  • caps_lock -> left_control
  • left_control -> 删除 / Fn
  1. 按住space, 进入spacebar模式, 该模式下的 键位映射有
  • esdf ->方向键
  • wrxv -> home, end, pageup, pagedown
  • \`, 1-9,0,-,=-> ESC, F1 ~ F12
  • b -> 空格, z -> ESC
  1. 快键 就是单独短时按下
  • left_cmd -> 方向键下
  • left_opt -> 方向键上
  • left_ctrl -> enter
  • 双shift -> caps_lock

一些APP下的功能

  1. 我用台式机工作, 笔记本开会, 两台机器之间有时候远程桌面操作, 微信/钉钉 在笔记本上常开. 在台式机上摁下 Fn/opt + v的时候, 是打开 远程窗口(台式机) 上的 微信/钉钉

  2. 在Finder, Reminder, 备忘录中 cmd + 1 是toggle边栏.
  3. 在终端 alt + h/l 前/后删词, iterm2

依赖环境

安装使用

  1. 下载代码

    git clone https://github.com/jasonrudolph/keyboard.git ~/.keyboard
    
    cd ~/.keyboard
    
    script/setup
    
  2. 如果有自己hammerspoon脚本 或 karabiner.json, 自己做好整合哈. 使用后果自负.

  3. Enable accessibility to allow Hammerspoon to do its thing [screenshot]

  4. 这个脚本有点bug, 能撑一个小时, 失灵了就 Fn/opt + shift + r, 重载一下 ^^.

开发

  1. lua项目入口脚本 init.lua 导入相应的功能模块
  2. Fn + 4 可打开 hammerspoon 的 console, 可以查看日志, 输入语句

TODO

  • Add #13 to features:
    • Hold option for push-to-talk/push-to-mute
    • Double-tap option to mute/unmute microphone