diff --git a/home/dot_hammerspoon/executable_git-sync.sh b/home/dot_hammerspoon/executable_git-sync.sh new file mode 100644 index 0000000..423bb22 --- /dev/null +++ b/home/dot_hammerspoon/executable_git-sync.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +REPO_PATH="$1" +REMOTE_NAME="$2" +COMMIT_MESSAGE_TEMPLATE="$3" + +cd "$REPO_PATH" || { + echo "Error: Cannot access repository at $REPO_PATH" + exit 1 +} + +if ! git rev-parse --git-dir > /dev/null 2>&1; then + echo "Error: Not a git repository" + exit 1 +fi + +sync_repo() { + echo "Starting git sync for $(pwd)" + + # Check if there are any changes to commit + if [[ -n $(git status --porcelain) ]]; then + echo "Changes detected, committing..." + COMMIT_MESSAGE=$(eval echo "\"$COMMIT_MESSAGE_TEMPLATE\"") + git add . + git commit -m "$COMMIT_MESSAGE" + if [[ $? -eq 0 ]]; then + echo "Changes committed successfully" + else + echo "Error committing changes" + return 1 + fi + else + echo "No changes to commit" + fi + + # Fetch and pull from remote + echo "Fetching from remote..." + git fetch "$REMOTE_NAME" + if [[ $? -eq 0 ]]; then + echo "Pulling changes..." + git pull "$REMOTE_NAME" $(git branch --show-current) --rebase + if [[ $? -eq 0 ]]; then + echo "Pull completed successfully" + else + echo "Error during pull" + return 1 + fi + else + echo "Error fetching from remote" + return 1 + fi + + # Push to remote + echo "Pushing to remote..." + git push "$REMOTE_NAME" $(git branch --show-current) + if [[ $? -eq 0 ]]; then + echo "Push completed successfully" + else + echo "Error during push" + return 1 + fi + + echo "Git sync completed successfully" +} + +sync_repo diff --git a/home/dot_hammerspoon/init.lua.tmpl b/home/dot_hammerspoon/init.lua.tmpl new file mode 100644 index 0000000..2b02dc6 --- /dev/null +++ b/home/dot_hammerspoon/init.lua.tmpl @@ -0,0 +1,156 @@ +local preloadView = hs.webview.new({x=0, y=0, w=10, h=10}):html("") +preloadView:hide() +hs.timer.doAfter(2, function() preloadView:delete() end) -- delete after 2 seconds + +local GitSync = {} + +GitSync.config = { + repoPath = "/Users/matthew.dillon/notebook", + remoteName = "pingo", + syncInterval = 60, + commitMessage = "Auto-sync: $(date +\"%Y-%m-%d %H:%M:%S\") from $(hostname)" +} + +GitSync.scriptPath = os.getenv("HOME") .. "/.hammerspoon/git-sync.sh" + +GitSync.timer = nil + +GitSync.caffeineWatcher = nil + +function GitSync.runSync(reason) + reason = reason or "periodic" + print("Git sync triggered: " .. reason) + + local task = hs.task.new(GitSync.scriptPath, function(exitCode, stdOut, stdErr) + if exitCode == 0 then + print("Git sync completed successfully (" .. reason .. ")") + if stdOut and stdOut ~= "" then + print("Output: " .. stdOut) + end + else + print("Git sync failed (" .. reason .. ") with exit code: " .. exitCode) + if stdErr and stdErr ~= "" then + print("Error: " .. stdErr) + end + end + end, { + GitSync.config.repoPath, + GitSync.config.remoteName, + GitSync.config.commitMessage + }) + + task:start() +end + +function GitSync.startPeriodicSync() + if GitSync.timer then + GitSync.timer:stop() + end + + GitSync.timer = hs.timer.doEvery(GitSync.config.syncInterval, function() + GitSync.runSync("periodic") + end) + + print("Git periodic sync started (interval: " .. GitSync.config.syncInterval .. " seconds)") +end + +function GitSync.stopPeriodicSync() + if GitSync.timer then + GitSync.timer:stop() + GitSync.timer = nil + print("Git periodic sync stopped") + end +end + +function GitSync.handlePowerEvent(eventType) + if eventType == hs.caffeinate.watcher.systemWillSleep then + print("System going to sleep, running git sync...") + GitSync.runSync("pre-sleep") + elseif eventType == hs.caffeinate.watcher.systemDidWake then + print("System woke up, running git sync...") + -- Add a small delay to ensure network is available + hs.timer.doAfter(5, function() + GitSync.runSync("post-wake") + end) + end +end + +function GitSync.startPowerEventMonitoring() + GitSync.caffeineWatcher = hs.caffeinate.watcher.new(GitSync.handlePowerEvent) + GitSync.caffeineWatcher:start() + print("Git power event monitoring started") +end + +function GitSync.stopPowerEventMonitoring() + if GitSync.caffeineWatcher then + GitSync.caffeineWatcher:stop() + GitSync.caffeineWatcher = nil + print("Git power event monitoring stopped") + end +end + +function GitSync.start() + GitSync.startPeriodicSync() + GitSync.startPowerEventMonitoring() + + GitSync.runSync("initial") + + print("Git auto-sync initialized") + print("Repository: " .. GitSync.config.repoPath) + print("Remote: " .. GitSync.config.remoteName) + print("Sync interval: " .. GitSync.config.syncInterval .. " seconds") +end + +function GitSync.stop() + GitSync.stopPeriodicSync() + GitSync.stopPowerEventMonitoring() + print("Git auto-sync stopped") +end + +GitSync.start() + +if hs.menubar then + GitSync.menubar = hs.menubar.new() + GitSync.menubar:setTitle("🦖") + GitSync.menubar:setTooltip("Git Auto-Sync") + GitSync.menubar:setMenu({ + { title = "Sync Now", fn = function() GitSync.runSync("manual") end }, + { title = "Start Auto-Sync", fn = GitSync.start }, + { title = "Stop Auto-Sync", fn = GitSync.stop }, + { title = "-" }, + { title = "Repository: " .. GitSync.config.repoPath, disabled = true } + }) +end + +-- Make GitSync available globally for console access +_G.GitSync = GitSync + +local filePath = "/Users/matthew.dillon/notebook/inbox.md" + +hs.hotkey.bind({"cmd", "shift"}, "J", function() + local button, text = hs.dialog.textPrompt( + "Add To-Do", + "Enter your tasks (one per line):", + "", + "OK", + "Cancel" + ) + if button == "OK" and text ~= "" then + -- Split input into lines + local lines = {} + for line in text:gmatch("[^\r\n]+") do + table.insert(lines, "- [ ] " .. line) + end + -- Concatenate lines with newlines + local formatted = table.concat(lines, "\n") .. "\n" + -- Append to file + local file = io.open(filePath, "a") + if file then + file:write(formatted) + file:close() + hs.alert.show("Tasks added!") + else + hs.alert.show("Failed to open file.") + end + end +end) diff --git a/home/encrypted_dot_zshklaviyo.age b/home/encrypted_dot_zshklaviyo.age index 0b1bd99..81d0e81 100644 --- a/home/encrypted_dot_zshklaviyo.age +++ b/home/encrypted_dot_zshklaviyo.age @@ -1,65 +1,65 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWTnpXNllPa2JmNGY5QXFL -K3hGd3NQTTJXQ2x1WFFwdjdwbDJES1IrRWlvCmVUNE9WWHNQbU9YdjhjT01aSUhL -eEVvNnRUM3UxYmo1bkVSZHN1YTAxUFUKLS0tIGpveWd0RkRyS2FSMW9rREFhRGx3 -VHAxcWJWYVF3Nlc1dUlRR3dHdjNXaWMKzj2pT5MhWvBwXplqgbJ2hcXhxNoKDRUa -jKlUepKkG6/V74cSaAOCez7hgKRhQlvGS/JLTY3kHgtcKYgHQZyBqRcjgw8CZdKI -bDOA0Zg4Uss/kFSPgAKkcHn+/1CqUXDO6dG+FfuE20N7ecB+//jmq6UUAFzpC+Kd -tcHl3MlmyZPtiBjoIvDd4N6DaNAVnRchEuHeUn2ekwZBNT+Oqm/zf9Ht44A7Nb/J -AJPq1TQvn1NlXQhZxPGdyOTMPH2YHHqOFrLsSuHlAs86gS85oXLILTb0cVFou4Vw -jcHTiV0dCxXTyPKLmXA9+pnoyzAx/wqoRK5/rsL8eIj9mz8GObHBWseh+kZKqvEI -Im0Jv2zDcrvu5MRRL9ybiE6LNhBLgOpC/5wk4l9oXNc2kM7QEyvLLcospmwmrwOd -OZJ0R43FixhaP/qSOyfTiqwV2bBA3RLqgm9PDTbrCSIUdR/wkfhI78PaH2O5eP+j -evunC4JLRivsmqbpVVtr/ph9BpzetXGl/7bPtz0ItwmYzykG3qOpCyWK2pYtsNY9 -e0jV6Zx/jYgI1vGqaxyltYBeV51NxUKuhZS6FvTdwCWpKJIoJeoOSsZHX0FEkvoi -JzDLHe6haQqsNyPQFUpuTWGWPUh4PMIYUo5gQ4Mu7qd5Z4qFnEpsYIM1k1BZNnKR -uYu4/72+/rkcFSv4P8nAWy5MiYILXcBybGcNyyotpctVoMFO7QDfGXFqUJv1UB8w -zYlwgUZh+DiamBoM06XzFcbUsA+/ayZesGK5XS3YiWgAKuoCnc8LbjUKmUIdROMy -8+z6Jlx/XPhvbbUtTeKdd2TE7uGgkU6tCBTkrZACvaiRBfIt7sMXD8XqNMVV1e5n -GPBEj4PJ6WueoTsZySOu/XvjMPPw7JR6zR7y83eFnaItfvMXob2SHGijcju2G+V+ -hsmW4oSykT7zSUKqDcuZhX3SZEmiGhcokvtzg6c6uhPvgjrfn+SXNlAoD16H520e -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 -fj/UumcU9WdVvESY5APmFBLOQdTSNQTCzExItXkweuovQ+aI75NHIaD1CsjQjb+5 -vPyZiXTLVqgWPAX3C9u5ptCGtS9io4/qSSv04FoP0OqlBHKOc2SuDpkr0gLHUuNU -ZrYzY/FDad7mgHykkOPDXJLXS0kZoeBdGNdI6K0nEXkfLS1tfvlDIPsfcgTyonS8 -O2gAiwOy/IIa0e7kegDj3g2HFTicpzVnerQMJgPd/nHjicnJx1dA01V6mfbzuZ9q -vfgXXqVs2pOlouYOxTFGVt//34goALoasfDRRP89czRs275Z7d7Y7D8fWlXPkTmC -P/RI10L9hvHKcyEuTCjn49aW9koDIoQPUQGF09btR1E1PYRo934O62G41lyQ +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzbFpuVTQxckd0NFRhVTU5 +NjA5NUJJQko0aFJUeDNvVm52SHR2U3FBVkQwClRYY2sxUzFPQm5MaUozM0IyeDds +TkRaN1VhQkUzaU1lSVljS3JNRDcvSnMKLS0tIENoQTM3VWpZVnNwZnZnLytEbURE +VVVqcURtSWdTMCtVSk5ET0tTeGVzZ1EKnyvWVnGxA8tCO/6bsC1ViKWft69Bym0+ +AelFEQuZHP379i2nzvv/gGcSXftajV94euTFEUds7bSUU/euPFc3MAClOb30rSP+ +NWACnZ37FdsQf6vunFlDko8dUeOSVMjUUxQ706b1EXHq4DtJzUsOcrvS1VHSemQq +FLBhW/fu2NRipJm5kdUpaUQHAODP7jeOjvxkbT0erHsdwWwEbqXNAMO32X546w0/ +UeRHZQ0UGderh6Kl9AnWj843laOxYQzSTCmvTKlL00Lp44sV9Mf9aRL908V66gy4 +KUGbxsOFw3BaRBHp9mXjPrYEUG8hHhtTjkxgFHHqfTmhD+jOoR80k7NFcmM9J0It +M0VxW3T7snAJNmrBzbRICP4gC+Ayiw8gtKcjVxhcLnkE5yKF/kX9A/CNPcIVeh6f +cCvhVpEHjLJDJ2Pii3TIN+pcwZ/ZXxkUL6Vq+QwKHqgU9bnA5Iwc90/YI1gXVaSI +ypCQbuz+XD5dxZgyjs5daoXE35BcFGawwChhLzac3fQI4aClVKLGI7yX03kuA0p+ +rlgfmtIsXrjGQD/sHpAoZ03T9NEr7B4qGCxqDclKZEi5DXxKrLyGHleA+y7IyqYX +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 -----END AGE ENCRYPTED FILE----- diff --git a/home/private_dot_config/jj/config.toml.tmpl b/home/private_dot_config/jj/config.toml.tmpl index f70bc32..737c147 100644 --- a/home/private_dot_config/jj/config.toml.tmpl +++ b/home/private_dot_config/jj/config.toml.tmpl @@ -3,9 +3,11 @@ name = {{ .name | quote }} email = {{ .email_personal | quote }} [git] -push-bookmark-prefix = "{{ .github_personal }}_jj_" private-commits = "description(glob:'private:*') | bookmarks('merge')" +[templates] +git_push_bookmark = '"{{ .github_personal }}_jj_" ++ change_id.short()' + [colors] "diff removed token" = { fg = "red", underline = false } "diff added token" = { fg = "green", underline = false } @@ -22,5 +24,5 @@ diff-formatter = ":git" --when.repositories = ["~/Klaviyo", "~/.klaviyocli"] [--scope.user] email = {{ .email_work | quote }} -[--scope.git] -push-bookmark-prefix = "2025_{{ .github_work }}_jj_" +[--scope.templates] +git_push_bookmark = '"2025_{{ .github_work }}_jj_" ++ change_id.short()' diff --git a/home/private_dot_config/task/taskrc.tmpl b/home/private_dot_config/task/taskrc.tmpl deleted file mode 100644 index aa598e3..0000000 --- a/home/private_dot_config/task/taskrc.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -data.location={{ .chezmoi.homeDir }}/.task -news.version=3.4.1 - -# must be specified bc taskrc not in default ~/.taskrc location -data.location=~/.local/share/task -hooks.location=~/.config/task/hooks - -include solarized-dark-256.theme - -report.list.columns=id,start.age,depends.indicator,priority,project,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count -report.list.labels=id,active,d,p,project,tags,r,sch,due,until,description - -report.next.columns=id,start.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description -report.next.labels=id,active,deps,p,project,tag,recur,s,due,until,description - -sync.server.url={{ .task_url }} -sync.server.client_id={{ .task_client_id }} -sync.encryption_secret={{ .task_encryption_secret }} diff --git a/home/run_once_01install-packages.sh.tmpl b/home/run_once_01install-packages.sh.tmpl index 110ae43..780e26f 100644 --- a/home/run_once_01install-packages.sh.tmpl +++ b/home/run_once_01install-packages.sh.tmpl @@ -18,6 +18,7 @@ brew install \ glow \ go \ golangci-lint \ + hammerspoon \ helix \ inlyne \ jj \ @@ -29,8 +30,6 @@ brew install \ presenterm \ ripgrep \ sqlite \ - task \ - taskwarrior-tui \ tree \ watch \ wget \