目录

差生文具多

简介

个人平时收藏的一些Mac平台开源免费工具,基本都支持homebrew安装。

搜索引擎


软件

包管理

终端

Font字体

  • font-fira-code-nerd-font
  • font-source-code-pro

nvim

快速启动

效率

  • openclip

  • PopClip

  • SwiftBar

  • xbar

  • DevToys

  • OnlySwitch

  • NotchDrop

  • Hammerspoon

    -------------- 输入法控制 -----------------
    
    local function Chinese()
        -- 搜狗输入法
        hs.keycodes.currentSourceID("com.sogou.inputmethod.sogou.pinyin")
        -- 简体拼音
        --hs.keycodes.currentSourceID("com.apple.inputmethod.SCIM.ITABC")
    end
    
    local function English()
        -- ABC
        hs.keycodes.currentSourceID("com.apple.keylayout.ABC")
    end
    
    -- app to expected ime config
    -- app和对应的输入法
    local app2Ime = {
        { '/Applications/System Preferences.app', 'English' },
        { '/System/Library/CoreServices/Finder.app', 'Chinese' },
        { '/Applications/iTerm.app', 'Chinese' },
        { '/Applications/Visual Studio Code.app', 'Chinese' },
        { '/Applications/Xcode.app', 'Chinese' },
        { '/Applications/Microsoft Edge.app', 'Chinese' },
        { '/Applications/Kim.app', 'Chinese' },
        { '/Applications/WeChat.app', 'Chinese' },
        { '/Applications/QQ.app', 'Chinese' },
        { '/Applications/MarkText.app', 'Chinese' },
        { '/Applications/Bob.app', 'Chinese' },
        { '/Applications/NeteaseMusic.app', 'Chinese' },
    }
    
    function updateFocusAppInputMethod()
        local ime = 'Chinese'
        local focusAppPath = hs.window.frontmostWindow():application():path()
        for index, app in pairs(app2Ime) do
            local appPath = app[1]
            local expectedIme = app[2]
    
            if focusAppPath == appPath then
                ime = expectedIme
                break
            end
        end
    
        if ime == 'English' then
            English()
        else
            Chinese()
        end
    end
    
    -- helper hotkey to figure out the app path and name of current focused window
    -- 当选中某窗口按下ctrl+command+.时会显示应用的路径等信息
    hs.hotkey.bind({ 'ctrl', 'cmd' }, ".", function()
        hs.alert.show("App path:        "
            .. hs.window.focusedWindow():application():path()
            .. "\n"
            .. "App name:      "
            .. hs.window.focusedWindow():application():name()
            .. "\n"
            .. "IM source id:  "
            .. hs.keycodes.currentSourceID())
    end)
    
    -- Handle cursor focus and application's screen manage.
    -- 窗口激活时自动切换输入法
    function applicationWatcher(appName, eventType, appObject)
        if (eventType == hs.application.watcher.activated or eventType == hs.application.watcher.launched) then
            updateFocusAppInputMethod()
        end
    end
    
    appWatcher = hs.application.watcher.new(applicationWatcher)
    appWatcher:start()

输入法

系统优化

系统监控

下载

Office

流程图

Markdown

阅读

PDF浏览器

  • Skim
  • Edge
  • Firefox
  • Chrome

播放器

收费的可以试试Movist Pro、Infuse Pro

截图

窗口管理

邮件

文件压缩

屏幕保护

防火墙

翻译

剪切板

文件搜索

QR

日历

置顶

  • Topit - 保持某APP置顶

TouchBar

Quick Look

邮件

键盘

屏幕录制

  • QuickRecorder
  • himi-recorder - 一款具有隐身能力的 macOS 录屏工具 —— 绕过系统录屏检测机制,让被录制的应用无法感知正在被录屏。常驻菜单栏,框选任意区域,录制为 MP4。
  • LICEcap
  • Kap
  • GIFCapture

直播

视频编辑

格式转码

NTFS

Hosts

RSS

文件传输

U盘系统制作

数据恢复

VPN/代理

Telegram

Windows 激活

图片浏览器

视频会议


开发

版本管理

Python

WebEnv/Node

Ruby

Java

Flutter

Swift

换源

Javascript Engine

打包

  • pex - Python .pex

调试

CI

CD

Mach-O

逆向

比较有名的可能是IDA和Hopper Disassembler

Hex

网络

Image图片

音视频解码

屏幕捕捉

命令行

快捷打开终端

开启: 设置 -> 通用 -> 登录项与扩展 -> 扩展 -> 文件提供程序

设备管理

图片压缩

检测无用资源和代码

无用资源

无用代码

推送

Git

文件diff

数据库

WWDC

Docker

分辨率调整

Web 打包成 MacAPP

API

网络

爬虫

Log日志

用户行为分析

电子书

Xcode Plugin

Xcode 版本管理

Xcode 缓存清理

IDE

设计软件

VSCode 插件

  • Shades of Purple - 主题
  • Dracula - 主题
  • Catppuccin - 主题
  • HardHacker Theme - 主题
  • Cline (prev. Claude Dev) - AI
  • Kilo Code AI Agent (Roo/Cline fork) - AI
  • Code Runner
  • CodeLLDB
  • clangd
  • Error Lens
  • GitLess
  • Git Blame
  • Git Graph
  • Path Intellisense
  • Thunder Client
  • CodeSnap
  • Comment Tranlate
  • Markdown Editor
  • Image Preview
  • Paste JSON as Code
  • Project Manager
  • Bookmarks
  • Todo Tree
  • shellman
  • Hex Editor
  • Doxygen Documentation Generator
  • Better Comments
  • Dependi
  • whatchanged
  • Swift
    1. 如果没有代码联想,可能是因为sourcekit-lsp与本机Swift不在同一目录下。在/usr/local/bin下建立一个sourcekit-lsp的软链接可以解决:ls -s $(xcrun --find sourcekit-lsp) /usr/local/bin/sourcekit-lsp。
    2. 如果断点调试无法显示变量,检查下是否安装了llvm,如果是那可能默认用的是llvm的lldb。把CodeLLDB的lldb指定为Xcode的lldb,或者在.zshrc中用Xcode版本覆盖llvm版本: export PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
  • vs-idea-gittool - git

Windows VC 环境


常见问题

  • VSCode 函数参数没有代码提示

    关闭阻止选项

    /images/treasure/snippets_prevent_suggestions.png
    snippets_prevent_suggestions

  • 找回IDEA的copy reference

    /images/treasure/idea_copy_reference_lose.png
    lose copy reference

  • 旧版Xcode调试新iOS系统

    执行如下命令:

    defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled

    如果想恢复,请执行如下命令:

    defaults delete com.apple.dt.Xcode DVTEnableCoreDevice

软件站

参考