...

overflowy

24

Karma

2025-11-04

Created

Recent Activity

  • Commented: "Hammerspoon"

    I use this to remap app keys:

        local appHotkeys = {}
    
        local function remapAppHotkey(appName, fromMods, fromKey, toMods, toKey, delay)
            if not appHotkeys[appName] then
                appHotkeys[appName] = {}
            end
            local hotkey = hs.hotkey.new(fromMods, fromKey, function()
                hs.eventtap.keyStroke(toMods, toKey, delay or 0)
            end)
            table.insert(appHotkeys[appName], hotkey)
        end
        
        local appWatcher = hs.application.watcher.new(function(appName, eventType)
            local hotkeys = appHotkeys[appName]
            if not hotkeys then return end
            for _, hotkey in ipairs(hotkeys) do
                if eventType == hs.application.watcher.activated then
                    hotkey:enable()
                elseif eventType == hs.application.watcher.deactivated then
                    hotkey:disable()
                end
            end
        end)
        
        appWatcher:start()
    
        -- Remap app hotkeys
        remapAppHotkey("Finder", { "cmd" }, "q", { "cmd" }, "w", 0.5)
        ... etc ...

  • > terminal UI written in Go

    > Linux only

    Any particular reason for that? Are you using specific Linux APIs?

    Just to clarify, this looks like a super helpful utility, something that I would personally use. The issue is that I noticed the installation instructions include a link to a prebuilt binary hosted on your website. Without providing access to the source code, you're asking users to trust executing an unknown binary on their system.

  • You should post a screenshot in the README to give people an idea of what the terminal looks like.

  • A few days ago I built https://github.com/overflowy/parallel-rsync to scratch my own itch: I realized I could just launch multiple rsync instances in parallel to speed things up.

HackerNews