脚本整理融合

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

相对于苹果键盘, 罗技键盘Fn键摁下, 缺没往PC里 发送code. 这样hammerspoon不能绑定Fn+其他键 到一些自定义功能

功能列表

切换应用

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

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

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

hammerspoon/app_file.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, 窗口就往上走, 恩 是走到上面去 !
  2. 按下 control + F12 进入 操作窗口模式. 比如要把窗口 左半屏, 摁下 control + , 然后 h.
    • 半屏操作 edsf 上下左右半屏
    • 斜半屏SF</kdb> 左40%, 右60%
    • 田角屏 wrxv 上左/上右/下左/下右
    • 居中/全屏 spaceg/enter
    • 左右显示器
    • 下个显示器 n
    • esc 退出窗口操作模式

Window Layout Mode Keybindings (1) Window Layout Mode Keybindings (2)

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

SD模式

原脚本库的功能

同时按住 s and d 就进入了SD模式, 就进入了键盘的另一种使用模式.

  • h / j / k / l 分别对应 ///
  • a for option (AKA alt)
  • f for command
  • space for shift
  • a + j / k for page down / page up
  • i / o 前后标签
  • u / p 起终标签 (在大多数应用中)
  • a + h / l 前后 词 (in most apps)

(S)uper (D)uper Mode Keybindings

📣 Shout-out to Karabiner’s Simultaneous vi Mode for providing the inspiration for (S)uper (D)uper Mode. ⌨:neckbeard:✨

依赖环境

安装使用

  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