{"id":13394515,"url":"https://github.com/scottcs/dot_hammerspoon","last_synced_at":"2025-03-13T20:31:36.255Z","repository":{"id":142025744,"uuid":"61920959","full_name":"scottcs/dot_hammerspoon","owner":"scottcs","description":"My Hammerspoon config","archived":false,"fork":false,"pushed_at":"2019-11-12T16:59:39.000Z","size":4387,"stargazers_count":79,"open_issues_count":0,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-31T17:22:30.964Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scottcs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-06-25T01:17:44.000Z","updated_at":"2024-06-20T22:51:12.000Z","dependencies_parsed_at":"2024-01-14T03:50:54.845Z","dependency_job_id":"e06355e3-fcd9-4c7e-a35a-129159dbea16","html_url":"https://github.com/scottcs/dot_hammerspoon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottcs%2Fdot_hammerspoon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottcs%2Fdot_hammerspoon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottcs%2Fdot_hammerspoon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottcs%2Fdot_hammerspoon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scottcs","download_url":"https://codeload.github.com/scottcs/dot_hammerspoon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243478145,"owners_count":20297200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T17:01:22.268Z","updated_at":"2025-03-13T20:31:34.366Z","avatar_url":"https://github.com/scottcs.png","language":"Lua","funding_links":[],"categories":["Thanks to","Lua"],"sub_categories":["Screenshots"],"readme":"\n# My [Hammerspoon](http://www.hammerspoon.org) configuration\n\n[`init.lua`](.hammerspoon/init.lua) loads and configures each module. [`bindings.lua`](.hammerspoon/bindings.lua) defines all of the keybindings. There are a number of utility functions defined in [`utils/`](.hammerspoon/utils), and all of the modules live in [`modules/`](.hammerspoon/modules).\n\nSee the [example_config.lua](.hammerspoon/example_config.lua) for configuration options for each module.\n\n## Modules\n\n### [appwindows](.hammerspoon/modules/appwindows.lua)\n\nMap application events to actions to be taken automatically, such as putting an app in fullscreen mode as soon as it's launched.\n\n### [battery](.hammerspoon/modules/battery.lua)\n\nBattery status notifications.\n\n### [browser](.hammerspoon/modules/browser.lua)\n\nSend URL clicks to the most recently focused browser. (Will attempt to set Hammerspoon as the default URL handler when started, if it's not already.)\n\n### [caffeine](.hammerspoon/modules/caffeine.lua)\n\nReplacement for Caffeine, Amphetamine, etc. Menubar icon to toggle whether the mac can go to sleep when idle.\n\n### [cheatsheet](.hammerspoon/modules/cheatsheet.lua)\n\nInspired by Stefan Fürst's CheatSheet app, but taken in a different direction. Rather than showing an overlay of the focused app's keyboard shortcuts, this module renders a custom markdown file in a WebView overlay, based on the focused app (or even window title, tmux pane, or shell command). Additionally, you can bind a key to a chooser toggle function that makes it easy to open and edit any of the possible markdown files for the current window.\n\nNote: The webview overlay is split into 2 columns, and the markdown file will fill both columns as it grows in length (left first, then right).\n\nSee [`cheatsheets/`](cheatsheets) for examples.\n\nRequires [pandoc](http://pandoc.org/) but would be pretty easy to modify to work with a different markdown-to-html converter, like discount.\n\n### [hazel](.hammerspoon/modules/hazel.lua)\n\nFilesystem watcher module, which is probably useless to anyone but me. I replaced my old Hazel rules with this module (and no longer use Hazel). You'd probably want to modify it heavily if you use it at all.\n\n### [notational](.hammerspoon/modules/notational.lua)\n\nInspired by Notational Velocity. Bring up a chooser via keybinding that lists markdown files in a directory and allows for quick searching of filename and file contents, then edit the file that's selected. If the file doesn't exist, create a new one and edit that instead. Great for quickly writing notes or finding old notes. Can be bound to multiple keys for different directories. (For example, I have one for general notes, and one for \"Today I Learned\" notes that are more specific to computing.)\n\n### [scratchpad](.hammerspoon/modules/scratchpad.lua)\n\nScratchpad for jotting down random notes or reminders. I use this for short-lived notes throughout the day. I usually don't have more than 5-10 lines in it at a time. A keybinding brings up a chooser where you can enter a single line, which is appended to the scratchpad file. The contents of the file can be seen by clicking the menubar icon. Clicking on a line in the menu will copy the line to the clipboard. Ctrl-clicking on a line in the menubar will remove it from the file.\n\n### [songs](.hammerspoon/modules/songs.lua)\n\nControls for playback of songs in Spotify and iTunes. Also provides bindings for rating songs via [`track`](bin/track), a script that keeps song information in a sqlite database.\n\n### [timer](.hammerspoon/modules/timer.lua)\n\nProvides timers on demand. A keybinding brings up a chooser that lets you type a time (in minutes) and/or a short message. When the time's up, a notification with sound will pop up, and display the message.\n\nParsing the chooser string is very simple: if the first word is a number, the timer will be set for that many minutes. The rest of the string (if anything) is used as a subtitle for the notification. (Default time is 5 minutes.)\n\nFor example:\n\n* `Eggs are done` - 5 minute timer, notifies \"Eggs are done\"\n* `20 Wake up!` - 20 minute timer, notifies \"Wake up!\"\n* `12` - 12 minute timer, notifies generic Timer Expired message.\n\nWhen a timer is active, it'll show up in the menubar. Click a timer to reset it (start countdown again), ctrl-click a timer to delete it.\n\n### [weather](.hammerspoon/modules/weather.lua)\n\nMenubar icon with current temp and weather. Click to show details. Uses [forecast.io](http://forecast.io) for data (which requires a (free) API key to use). Temperatures turn yellow to red as they get hotter (can be configured in the `config.lua` file). Weather alerts will appear at the top if they exist.\n\nThis module also requires that Hammerspoon be given Location Services access in System Settings.\n\n### [wifi](.hammerspoon/modules/wifi.lua)\n\nNotify when wifi network changes.\n\n### [worktime](.hammerspoon/modules/worktime.lua)\n\nCombination of Awareness and Pomodoro timers (mutually exclusive modes). Awareness will chime after 30 minutes of constant activity, and each 30 minutes thereafter with an additional chime. Pomodoro emulates a pomodoro timer, with a 25 minute work phase and 5 minute rest phase. Switch between the two modes by Ctrl-clicking the menubar icon. Clicking the icon pauses/starts the timers. Shift-clicking resets.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottcs%2Fdot_hammerspoon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottcs%2Fdot_hammerspoon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottcs%2Fdot_hammerspoon/lists"}