Skip to content
 
 

Latest commit

 

History

96 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hammerspoon 配置

使用方法

  1. 安装 Hammerspoon
  2. git clone https://github.com/xbot/hammerspoon.git ~/.hammerspoon

功能

窗口管理

1/2 屏幕

  • + 将当前窗口移动到左半屏
  • + 将当前窗口移动到右半屏
  • + 将当前窗口移动到上半屏
  • + 将当前窗口移动到下半屏

1/4 屏幕

  • + 将当前窗口移动到左上 1/4 屏
  • + 将当前窗口移动到右下 1/4 屏
  • + 将当前窗口移动到右上 1/4 屏
  • + 将当前窗口移动到左下 1/4 屏

多个显示器

移动光标
  • + 把光标移动到下一个显示器
  • + 把光标移动到上一个显示器
移动窗口
  • + 将当前活动窗口移动到上一个显示器
  • + 将当前活动窗口移动到下一个显示器
  • + 1 将当前活动窗口移动到第一个显示器并窗口最大化
  • + 2 将当前活动窗口移动到第二个显示器并窗口最大化

其它

  • + F 全屏
  • + M 最大化窗口
  • + C 将窗口放到中间
  • + H 切换活动窗口
  • + / 显示窗口切换的快捷键

桌面布局

根据布局配置,在应用程序被激活时自动调整大小和重新定位。

如果您不需要desktop_layout模块,请将其注释掉。

系统工具

  • + L 锁屏

调试

此配置包含一个集中的日志系统,方便进行问题排查。

  • 日志级别控制: 通过 Hammerspoon 菜单栏图标 -> Debug Log Levels 子菜单,可以为每个模块动态切换日志级别(infodebug)。这有助于在需要时查看更详细的调试信息,而不会被不必要的信息淹没。

快速启动

通过 + 快捷键 的组合,可以快速启动或切换到指定的应用程序。这个功能的核心逻辑是,如果应用程序未运行或不在前台,则启动或将其置于前台;如果它已在最前台,则隐藏它。

所有的快捷键绑定都在 modules/launcher.lua 文件的 applist 变量中定义。您可以根据自己的需要轻松地添加、删除或修改这些快捷键。

例如,根据默认配置:

  • + A 启动/切换 Arc
  • + C 启动/切换 Visual Studio Code
  • + K 启动/切换 kitty

...等等。请直接修改配置文件以获得最适合您的工作流。

JSON格式化

自动格式化剪贴板中的 JSON 。通过托盘图标中的菜单项开关。

手动/自动收集网页到 OmniFocus

手动收集网页支持 Google Chrome / Arc Browser / Brave Browser / Vivaldi

+ O

自动收集网页支持任意浏览器,需将特定格式字符串复制到剪贴板。例如在 Surfingkeys 中添加如下配置:

mapkey('yO', 'Copy OmniFocus sensible info.', copyOmniFocusSensibleInfo);

function copyOmniFocusSensibleInfo() {
    var info_arr = [];
    
    info_arr.push("#omnifocus_sensible");
    info_arr.push(document.title);
    info_arr.push(window.location.href);
    
    Clipboard.write(info_arr.join("\n"));
}

屏幕取色功能

菜单栏点击屏幕取色。通过托盘图标中的菜单项开关。

咖啡因

控制是否允许系统自动休眠。通过托盘图标中的菜单项开关。

切换 Karabiner-Elements 配置方案

  • + K 手动切换配置方案
  • 根据 App 自动切换:
    karabinerProfileSwitcher.appProfiles = {
        ["game.exe"] = "PC Keyboard",
    }

统一外观管理器

本配置包含一个统一的外观管理器(modules/appearance_manager.lua),它会监听 macOS 的系统外观变化(深色/浅色模式),并自动为支持的应用切换主题。

目前已支持:

  • Hammerspoon Console:自动切换控制台的深色/浅色主题。
  • kitty 终端:自动切换 light.confdark.conf 主题。
  • Neovim:通过 nvr 命令远程控制 Neovim 切换主题。

Neovim 集成要求

为了让 Neovim 主题切换生效,您需要:

  1. 在您的 Neovim 配置文件(如 .vimrc)中添加主题切换的 Lua 函数。
  2. 安装 neovim-remote (nvr) 并设置别名。
  3. 如果 nvr 的可执行文件不在标准路径下,您可以在 modules/appearance_manager.lua 文件顶部的 nvr_executable_path 变量中指定其绝对路径。

此模块是可扩展的,未来可以方便地加入对其他应用(如 VS Code)的控制。

专注模式外观联动

modules/focus_mode.lua 会监听 macOS 专注模式的变化。当“夜间”模式开启时,它会将系统切换为深色外观并通过 nightlight 开启夜览;退出该模式时,则切换为浅色外观并关闭夜览。

该功能需要安装 nightlight,并为 Hammerspoon 授予“完全磁盘访问权限”,以读取当前专注模式。目标专注模式名称和 nightlight 路径可以在模块顶部修改。

Noizio 自动控制器

此模块会监控音频设备的变化,实现对 Noizio 应用的自动管理。

  • 功能:当所有预设的耳机(如 AirPods)断开连接时,脚本会自动关闭 Noizio 应用。这可以避免在没有使用耳机时,环境音通过电脑扬声器播放出来。
  • 配置:需要自动关闭 Noizio 的耳机设备名称列表,可以在 modules/noizio.lua 文件的 earphones 变量中进行修改。

致谢

本配置的初始版本参考了以下项目:

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages