Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/scottcs/dot_hammerspoon
My Hammerspoon config
https://github.com/scottcs/dot_hammerspoon
Last synced: about 2 months ago
JSON representation
My Hammerspoon config
- Host: GitHub
- URL: https://github.com/scottcs/dot_hammerspoon
- Owner: scottcs
- License: mit
- Created: 2016-06-25T01:17:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-11-12T16:59:39.000Z (about 5 years ago)
- Last Synced: 2024-07-31T17:22:30.964Z (5 months ago)
- Language: Lua
- Size: 4.18 MB
- Stars: 79
- Watchers: 5
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred-test - scottcs/dot_hammerspoon - My Hammerspoon config (Lua)
README
# My [Hammerspoon](http://www.hammerspoon.org) configuration
[`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).
See the [example_config.lua](.hammerspoon/example_config.lua) for configuration options for each module.
## Modules
### [appwindows](.hammerspoon/modules/appwindows.lua)
Map application events to actions to be taken automatically, such as putting an app in fullscreen mode as soon as it's launched.
### [battery](.hammerspoon/modules/battery.lua)
Battery status notifications.
### [browser](.hammerspoon/modules/browser.lua)
Send 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.)
### [caffeine](.hammerspoon/modules/caffeine.lua)
Replacement for Caffeine, Amphetamine, etc. Menubar icon to toggle whether the mac can go to sleep when idle.
### [cheatsheet](.hammerspoon/modules/cheatsheet.lua)
Inspired 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.
Note: 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).
See [`cheatsheets/`](cheatsheets) for examples.
Requires [pandoc](http://pandoc.org/) but would be pretty easy to modify to work with a different markdown-to-html converter, like discount.
### [hazel](.hammerspoon/modules/hazel.lua)
Filesystem 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.
### [notational](.hammerspoon/modules/notational.lua)
Inspired 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.)
### [scratchpad](.hammerspoon/modules/scratchpad.lua)
Scratchpad 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.
### [songs](.hammerspoon/modules/songs.lua)
Controls 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.
### [timer](.hammerspoon/modules/timer.lua)
Provides 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.
Parsing 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.)
For example:
* `Eggs are done` - 5 minute timer, notifies "Eggs are done"
* `20 Wake up!` - 20 minute timer, notifies "Wake up!"
* `12` - 12 minute timer, notifies generic Timer Expired message.When 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.
### [weather](.hammerspoon/modules/weather.lua)
Menubar 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.
This module also requires that Hammerspoon be given Location Services access in System Settings.
### [wifi](.hammerspoon/modules/wifi.lua)
Notify when wifi network changes.
### [worktime](.hammerspoon/modules/worktime.lua)
Combination 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.