From 24c8389d522dd7f399d9d3bc1205a051b55c340c Mon Sep 17 00:00:00 2001 From: Tony Miller Date: Mon, 15 Dec 2025 18:19:00 +1000 Subject: [PATCH] Back to VSCode --- .hammerspoon/init.lua | 35 ++++++++++++++++++++++++++++++++++- .local/bin/agcmd | 19 ++++++++++++------- .local/bin/code | 2 +- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/.hammerspoon/init.lua b/.hammerspoon/init.lua index 1f1f92f..a12cbfb 100644 --- a/.hammerspoon/init.lua +++ b/.hammerspoon/init.lua @@ -13,7 +13,7 @@ local DEFAULTS = { local APPS = { browser = {{"Safari"}}, - editors = {DEFAULTS["EDITOR"], {"Nova"}, {"Xcode"}, {"Code", "VSCodium"}, {"IntelliJ IDEA"}}, + editors = {DEFAULTS["EDITOR"], {"Nova"}, {"Xcode"}, {"Code", "Visual Studio Code"}, {"IntelliJ IDEA"}}, chats = {{"Microsoft Teams"}, {"Telegram"}}, messengers = {{"Messages"}, {"Signal"}}, music = {DEFAULTS["MUSIC"], {"Music"}}, @@ -322,6 +322,39 @@ hs.hotkey.bind({"cmd"}, "\\", function() app_toggle(APPS["terminal"]) end) +-- Claude Windows {{{3 +hs.hotkey.bind({"cmd", "alt", "ctrl"}, "B", (function() + local lastClaudeWindow = nil + + return function() + local term = hs.application.get("Terminal") + if not term then return end + + local claudeWindows = {} + for _, win in ipairs(term:allWindows()) do + local title = win:title() or "" + if string.find(title, "Claude") then + table.insert(claudeWindows, win) + end + end + + if #claudeWindows == 0 then return end + + local nextIndex = 1 + if lastClaudeWindow then + for i, win in ipairs(claudeWindows) do + if win:id() == lastClaudeWindow:id() then + nextIndex = (i % #claudeWindows) + 1 + break + end + end + end + + lastClaudeWindow = claudeWindows[nextIndex] + lastClaudeWindow:focus() + end +end)()) + -- Video Calls {{{3 hs.hotkey.bind({"cmd", "alt"}, "Z", function() app_toggle(APPS["videocalls"]) diff --git a/.local/bin/agcmd b/.local/bin/agcmd index 342d9c4..15e4fd0 100755 --- a/.local/bin/agcmd +++ b/.local/bin/agcmd @@ -1,9 +1,14 @@ -#!/usr/bin/env sh +#!/usr/bin/env swift -if [ "$(pwd)" = "${HOME}" ]; then - git ls-files - #ag -U --hidden --ignore ~/src -g "" $@ -else - ag -g "" $@ -fi +import Foundation +let current = URL(fileURLWithPath: FileManager.default.currentDirectoryPath) +let home = FileManager.default.homeDirectoryForCurrentUser + +let args = Array(CommandLine.arguments.dropFirst()).joined(separator: " ") + +if current == home { + print("git ls-files") +} else { + print("ag -g \"\" \(args)") +} \ No newline at end of file diff --git a/.local/bin/code b/.local/bin/code index dae9437..f730c44 100755 --- a/.local/bin/code +++ b/.local/bin/code @@ -3,5 +3,5 @@ if [ "$(uname)" = "Linux" ]; then /usr/local/bin/code $@ else - open -a "VSCodium" $@ + open -a "Visual Studio Code" $@ fi