目录

差生文具多

简介

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

搜索引擎


软件

包管理

  • HomebrewMac端的包管理工具,PC端的有ScoopChocolateWinget
  • UniGetUI : PC包管理GUI

终端

nvim

效率

  • PopClip

  • Alfred

  • Hammerspoon

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    
    -------------- 输入法控制 -----------------
    
    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()
    
  • SwiftBar

  • xbar

  • DevToys

  • OnlySwitch

  • NotchDrop

输入法切换

系统优化

系统监控

下载

Office

流程图

Markdown

阅读

PDF浏览器

  • Skim
  • Edge
  • Firefox
  • Chrome

播放器

收费的可以试试Movist ProInfuse Pro

截图

窗口管理

文件压缩

屏幕保护

防火墙

翻译

剪切板

QR

日历

TouchBar

Quick Look

邮件

键盘

屏幕录制

直播

视频编辑

格式转码

NTFS

Hosts

RSS

文件传输

U盘系统制作

数据恢复

VPN/代理

图片浏览器


开发

版本管理

Python

WebEnv/Node

Ruby

Java

Flutter

Swift

换源

调试

CI

Mach-O

逆向

比较有名的可能是IDAHopper Disassembler

Hex

命令行

快捷打开终端

图片压缩

检测无用资源和代码

无用资源

无用代码

推送

Git

开源的还有XitGitUp,收费的有TowerSublime MergeGitKraken

  • dura - 防止代码丢失

文件diff

数据库

WWDC

Docker

分辨率调整

Web 打包成 MacAPP

网络

爬虫

Xcode Plugin

Xcode 版本管理

Xcode 缓存清理

VSCode 插件

  • Shades of Purple - 主题
  • Dracula - 主题
  • Code Runner
  • CodeLLDB
  • clangd
  • Error Lens
  • GitLess
  • Git Blame
  • GitLens
  • 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
  • whatchanged
  • Swift
    1. 如果没有代码联想,可能是因为sourcekit-lsp与本机Swift不在同一目录下。在/usr/local/bin下建立一个sourcekit-lsp的软链接可以解决:ls -s $(xcrun --find sourcekit-lsp) /usr/local/bin/sourcekit-lsp
    2. 如果断点调试无法显示变量,检查下是否安装了llvm,如果是那可能默认用的是llvmlldb。把CodeLLDBlldb指定为Xcodelldb,或者在.zshrc中用Xcode版本覆盖llvm版本: export PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"

Windows VC 环境

Windows 激活


常见问题

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

    关闭阻止选项

    /images/treasure/snippets_prevent_suggestions.png
    snippets_prevent_suggestions

  • 找回IDEAcopy reference

    /images/treasure/idea_copy_reference_lose.png
    lose copy reference

  • 旧版Xcode调试新iOS系统

    执行如下命令:

    1
    
    defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled
    

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

    1
    
    defaults delete com.apple.dt.Xcode DVTEnableCoreDevice
    

软件站

参考