diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/2A5C0A87-204E-49EA-94A7-8E62BB4EFD8A.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/2A5C0A87-204E-49EA-94A7-8E62BB4EFD8A.png
new file mode 100644
index 0000000..3c02bab
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/2A5C0A87-204E-49EA-94A7-8E62BB4EFD8A.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/CHANGELOG.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/CHANGELOG.md
new file mode 100644
index 0000000..a74c4fb
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/CHANGELOG.md
@@ -0,0 +1,28 @@
+## 0.0.5 - 2014.11.22
+### Changed
+- Use `forecast-config` for managing API keys.
+- Fixed bug when precipitation intensity/probability was all 0's.
+
+## 0.0.4 - 2014.11.21
+### Added
+- Sparklines for precipitation intensity and probability for the next hour
+ (where applicable) and day.
+
+### Changed
+- Bugfix for when `DEFAULT_LAT_LONG` is set and `DEFAULT_LOCATION` is not.
+
+## 0.0.3 - 2014.11.19
+### Added
+- Forecast now uses units appropriate to the location.
+
+### Changed
+- Fix `DEFAULT_LAT_LONG`.
+
+## 0.0.2 - 2014.11.19
+### Changed
+- Remove minutely result for non-US locations since Forecast doesn't have this
+ data.
+
+## 0.0.1 - 2014.11.18
+### Added
+- Initial release
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/README.md b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/README.md
new file mode 100644
index 0000000..0fef7b1
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/README.md
@@ -0,0 +1,42 @@
+# Forecast Workflow for Alfred
+
+![screenshot][screenshot]
+
+[screenshot]: http://i.imgur.com/mxGnovo.png
+
+# Requirements
+
+- [Alfred](http://www.alfredapp.com/)
+- [Alfred Powerpack](http://www.alfredapp.com/powerpack/)
+- OS X Mavericks
+
+# Installation
+
+Download and install the [workflow][download].
+
+[download]: https://github.com/kejadlen/forecast.alfredworkflow/releases/download/0.0.5/Forecast.alfredworkflow
+
+Run `forecast-config VALUE` to set API keys and the default location:
+
+- `FORECAST_API_KEY`: Get an API key [here][forecast-api-key].
+- `GOOGLE_API_KEY`: Get an API key [here][google-api-key]. (Used for geocoding.
+ If you never need to search for a location, this can be omitted by using
+ `DEFAULT_LAT_LONG`.)
+- `DEFAULT_LOCATION`: Ex. "Seattle, WA".
+- `DEFAULT_LAT_LONG`: Only required if `GOOGLE_API_KEY` is unavailable, since
+ `DEFAULT_LOCATION` can't be geocoded. Format: `lat,long`.
+
+[forecast-api-key]: https://developer.forecast.io/register
+[google-api-key]: https://developers.google.com/maps/documentation/geocoding/#api_key
+
+# TODO
+
+- Handle errors gracefully
+- Caching? (Probably unnecessary...)
+- Use `Accept-Encoding: gzip` for Forecast calls
+
+# Attributions
+
+- [Climacons](http://adamwhitcroft.com/climacons/)
+- [Forecast API](https://developer.forecast.io/docs/v2)
+- [Google Geocoding API](https://developers.google.com/maps/documentation/geocoding/)
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/alfred.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/alfred.rb
new file mode 100644
index 0000000..67085f3
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/alfred.rb
@@ -0,0 +1,89 @@
+require 'delegate'
+require 'erb'
+require 'yaml'
+
+class Items < DelegateClass(Array)
+ attr_reader :items
+
+ def initialize
+ @items = []
+ super(@items)
+ end
+
+ def to_s
+ ERB.new(<<-XML).result(binding)
+
+
+ <%= items.map {|item| item.to_s.split("\n").map {|line| ' ' << line }}.join("\n").strip %>
+
+ XML
+ end
+end
+
+class Item
+ attr_reader *%i[ uid arg valid
+ title subtitle icon ]
+ def initialize(**kwargs)
+ @uid = kwargs.fetch(:uid).to_s.encode(xml: :attr)
+ @arg = kwargs[:arg].to_s.encode(xml: :attr)
+ @valid = kwargs.fetch(:valid, false) ? 'yes' : 'no'
+ @title = kwargs.fetch(:title).encode(xml: :text)
+ @subtitle = kwargs[:subtitle] && kwargs[:subtitle].encode(xml: :text)
+ @icon = kwargs[:icon] && kwargs[:icon].encode(xml: :text)
+ end
+
+ def to_s
+ ERB.new(<<-XML, nil, '%>').result(binding)
+- uid=<%= uid %> valid="<%= valid %>">
+ <%= title %>
+% if subtitle
+ <%= subtitle %>
+% end
+% if icon
+ <%= icon %>
+% end
+
+ XML
+ end
+end
+
+module Alfred
+ class Config
+ def self.[](key)
+ config[key]
+ end
+
+ def self.[]=(key, value)
+ config[key] = value
+ end
+
+ def self.config
+ return @config if defined?(@config)
+
+ bundle_id = `/usr/libexec/PlistBuddy info.plist -c 'print :bundleid'`.strip
+ @config = self.new(bundle_id)
+ end
+
+ WORKFLOW_DATA = '~/Library/Application Support/Alfred 2/Workflow Data/'
+
+ attr_reader :path
+ attr_accessor :config
+
+ def initialize(bundle_id)
+ dir = File.expand_path(File.join(WORKFLOW_DATA, bundle_id))
+ Dir.mkdir(dir) unless Dir.exist?(dir)
+
+ @path = File.join(dir, 'config.yml')
+ @config = File.exist?(@path) ? YAML.load_file(@path) : {}
+ end
+
+ def [](key)
+ config.fetch(key) { '' }
+ end
+
+ def []=(key, value)
+ config[key] = value
+ File.write(path, YAML.dump(config))
+ end
+ end
+end
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecast-config.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecast-config.rb
new file mode 100644
index 0000000..df61417
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecast-config.rb
@@ -0,0 +1,26 @@
+require_relative 'alfred'
+
+OPTIONS = %w[ FORECAST_API_KEY
+ GOOGLE_API_KEY
+ DEFAULT_LOCATION
+ DEFAULT_LAT_LONG ]
+
+input = ARGV.shift || ''
+
+items = Items.new
+OPTIONS.each do |option|
+ title = if input.empty?
+ "Unset #{option}"
+ else
+ "Set #{option} to #{input}"
+ end
+ items << Item.new(
+ uid: option,
+ arg: "Alfred::Config['#{option}'] = '#{input}'",
+ valid: true,
+ title: title,
+ subtitle: Alfred::Config[option],
+ )
+end
+
+puts items.to_s
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecast.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecast.rb
new file mode 100644
index 0000000..dd24d3e
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecast.rb
@@ -0,0 +1,138 @@
+require 'delegate'
+require 'erb'
+require 'yaml'
+
+require_relative 'alfred'
+require_relative 'forecaster'
+require_relative 'location'
+require_relative 'spark'
+
+ICONS = {
+ 'clear-day' => 'Sun',
+ 'clear-night' => 'Moon',
+ 'rain' => 'Cloud-Rain',
+ 'snow' => 'Cloud-Snow',
+ 'sleet' => 'Cloud-Snow-Alt',
+ 'wind' => 'Wind',
+ 'fog' => 'Cloud-Fog',
+ 'cloudy' => 'Cloud',
+ 'partly-cloudy-day' => 'Cloud-Sun',
+ 'partly-cloudy-night' => 'Cloud-Moon',
+}
+
+Precipitation = Struct.new(:intensity, :probability) do
+ def self.from_forecast(forecast)
+ self.new(*forecast.values_at('precipIntensity', 'precipProbability'))
+ end
+
+ def human_intensity
+ case intensity
+ when 0...0.002
+ 'no'
+ when 0.002...0.017
+ 'very light'
+ when 0.017...0.1
+ 'light'
+ when 0.1...0.4
+ 'moderate'
+ else
+ 'heavy'
+ end
+ end
+
+ def to_s
+ "#{(probability*100).to_i}% chance of #{human_intensity} rain."
+ end
+end
+
+query = ARGV.shift || ''
+location = if query.empty?
+ lat, long = Alfred::Config['DEFAULT_LAT_LONG'].split(?,).map(&:to_f)
+ Location.new(Alfred::Config['DEFAULT_LOCATION'], lat, long)
+ else
+ Location.new(query)
+ end
+forecast = Forecaster.forecast(location)
+
+items = Items.new
+
+items << Item.new(
+ uid: :location,
+ arg: "#{location.lat.round(4)},#{location.long.round(4)}",
+ valid: true,
+ title: location.name,
+ icon: 'icons/forecast.ico',
+)
+
+currently = forecast['currently']
+precip = Precipitation.from_forecast(currently)
+subtitle = [ "#{currently['temperature'].round}°" ]
+subtitle << "Feels like #{currently['apparentTemperature'].round}°"
+subtitle << precip.to_s if precip.probability > 0
+items << Item.new(
+ uid: :currently,
+ title: currently['summary'],
+ subtitle: subtitle.join(' · '),
+ icon: "icons/#{ICONS[currently['icon']]}.png",
+)
+
+minutely = forecast['minutely']
+if minutely
+ intensity = minutely['data'].map {|m| 1000 * m['precipIntensity'] }
+ intensity = intensity.select.with_index {|_,i| i % 5 == 0 }
+ min, max = intensity.minmax
+
+ subtitle = ["#{min.round}\" #{Spark.new(intensity)} #{max.round}\""]
+
+ probability = minutely['data'].map {|m| (100 * m['precipProbability']).round }
+ probability = probability.select.with_index {|_,i| i % 5 == 0 }
+ min, max = probability.minmax
+
+ subtitle << "#{min}% #{Spark.new(probability, max: 100)} #{max}%"
+
+ items << Item.new(
+ uid: :minutely,
+ title: minutely['summary'],
+ subtitle: subtitle.join(' · '),
+ icon: "icons/#{ICONS[minutely['icon']]}.png",
+ )
+end
+
+hourly = forecast['hourly']
+
+intensity = hourly['data'].map {|m| 1000 * m['precipIntensity'] }
+intensity = intensity.select.with_index {|_,i| i % 4 == 0 }
+min, max = intensity.minmax
+
+subtitle = ["#{min.round}\" #{Spark.new(intensity)} #{max.round}\""]
+
+probability = hourly['data'].map {|m| (100 * m['precipProbability']).round }
+probability = probability.select.with_index {|_,i| i % 4 == 0 }
+min, max = probability.minmax
+
+subtitle << "#{min}% #{Spark.new(probability, max: 100)} #{max}%"
+
+items << Item.new(
+ uid: :hourly,
+ title: hourly['summary'],
+ subtitle: subtitle.join(' · '),
+ icon: "icons/#{ICONS[hourly['icon']]}.png",
+)
+
+forecast['daily']['data'][1..6].each do |data|
+ wday = Time.at(data['time']).strftime('%A')
+ precip = Precipitation.from_forecast(data)
+
+ subtitle = [ "Low: #{data['apparentTemperatureMin'].round}°",
+ "High: #{data['apparentTemperatureMax'].round}°" ]
+ subtitle << precip.to_s if precip.probability > 0
+
+ items << Item.new(
+ uid: wday,
+ title: "#{wday} - #{data['summary']}",
+ subtitle: subtitle.join(' · '),
+ icon: "icons/#{ICONS[data['icon']]}.png",
+ )
+end
+
+puts items.to_s
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecaster.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecaster.rb
new file mode 100644
index 0000000..7379bd3
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/forecaster.rb
@@ -0,0 +1,23 @@
+require 'json'
+require 'open-uri'
+
+require_relative 'alfred'
+
+Forecaster = Struct.new(:api_key) do
+ def self.forecast(location)
+ forecaster.forecast(location)
+ end
+
+ def self.forecaster
+ return @forecaster if defined?(@forecaster)
+
+ @forecaster = self.new(Alfred::Config['FORECAST_API_KEY'])
+ end
+
+ def forecast(location)
+ lat, long = location.lat, location.long
+ url = "https://api.forecast.io/forecast/#{api_key}/#{lat},#{long}?units=auto"
+ response = JSON.load(open(url))
+ end
+end
+
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/geocoder.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/geocoder.rb
new file mode 100644
index 0000000..e397a8e
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/geocoder.rb
@@ -0,0 +1,30 @@
+require 'json'
+require 'open-uri'
+require 'uri'
+
+require_relative 'alfred'
+
+Geocoder = Struct.new(:api_key) do
+ def self.geocode(location)
+ geocoder.geocode(location)
+ end
+
+ def self.geocoder
+ return @geocoder if defined?(@geocoder)
+
+ @geocoder = self.new(Alfred::Config['GOOGLE_API_KEY'])
+ end
+
+ def geocode(location)
+ url = 'https://maps.googleapis.com/maps/api/geocode/json'
+ query = URI.encode_www_form(address: location, api_key: api_key)
+ response = JSON.load(open("#{url}?#{query}"))
+ result = response['results'][0]
+
+ name = result['formatted_address']
+ location = result['geometry']['location']
+ lat, long = location.values_at('lat', 'lng')
+
+ [name, lat, long]
+ end
+end
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icon.png
new file mode 100644
index 0000000..1d96821
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Download.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Download.png
new file mode 100644
index 0000000..4187ce2
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Download.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Alt.png
new file mode 100644
index 0000000..31f4e8d
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Moon-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Moon-Alt.png
new file mode 100644
index 0000000..d51e635
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Moon-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Moon.png
new file mode 100644
index 0000000..079ae74
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Sun-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Sun-Alt.png
new file mode 100644
index 0000000..f40345e
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Sun-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Sun.png
new file mode 100644
index 0000000..bc475f4
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle.png
new file mode 100644
index 0000000..eadc3e3
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Drizzle.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Alt.png
new file mode 100644
index 0000000..24e2d6f
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Moon-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Moon-Alt.png
new file mode 100644
index 0000000..1359eee
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Moon-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Moon.png
new file mode 100644
index 0000000..bf148f9
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Sun-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Sun-Alt.png
new file mode 100644
index 0000000..5179981
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Sun-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Sun.png
new file mode 100644
index 0000000..cbc7e7f
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog.png
new file mode 100644
index 0000000..b02b45e
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Fog.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Alt.png
new file mode 100644
index 0000000..76cd34e
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Moon-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Moon-Alt.png
new file mode 100644
index 0000000..5671d7c
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Moon-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Moon.png
new file mode 100644
index 0000000..23b98d1
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Sun-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Sun-Alt.png
new file mode 100644
index 0000000..4704ebd
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Sun-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Sun.png
new file mode 100644
index 0000000..66d052b
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail.png
new file mode 100644
index 0000000..9d03310
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Hail.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning-Moon.png
new file mode 100644
index 0000000..f02c182
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning-Sun.png
new file mode 100644
index 0000000..9768843
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning.png
new file mode 100644
index 0000000..01a3725
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Lightning.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Moon.png
new file mode 100644
index 0000000..78fd657
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Alt.png
new file mode 100644
index 0000000..e0ae91e
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Moon-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Moon-Alt.png
new file mode 100644
index 0000000..3dee696
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Moon-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Moon.png
new file mode 100644
index 0000000..752b309
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Sun-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Sun-Alt.png
new file mode 100644
index 0000000..3d394c6
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Sun-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Sun.png
new file mode 100644
index 0000000..874b6f2
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain.png
new file mode 100644
index 0000000..ac81b60
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Rain.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Refresh.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Refresh.png
new file mode 100644
index 0000000..8131b78
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Refresh.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Alt.png
new file mode 100644
index 0000000..397934c
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Moon-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Moon-Alt.png
new file mode 100644
index 0000000..0c98467
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Moon-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Moon.png
new file mode 100644
index 0000000..0627039
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Sun-Alt.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Sun-Alt.png
new file mode 100644
index 0000000..11468ea
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Sun-Alt.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Sun.png
new file mode 100644
index 0000000..1aad15d
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow.png
new file mode 100644
index 0000000..dfc8731
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Snow.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Sun.png
new file mode 100644
index 0000000..09e754c
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Upload.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Upload.png
new file mode 100644
index 0000000..8f88ab3
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Upload.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind-Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind-Moon.png
new file mode 100644
index 0000000..b837e38
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind-Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind-Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind-Sun.png
new file mode 100644
index 0000000..cc0b3e6
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind-Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind.png
new file mode 100644
index 0000000..929b81a
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud-Wind.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud.png
new file mode 100644
index 0000000..9419d36
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Cloud.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-East.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-East.png
new file mode 100644
index 0000000..6468a60
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-East.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-North.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-North.png
new file mode 100644
index 0000000..417066e
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-North.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-South.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-South.png
new file mode 100644
index 0000000..f5a7484
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-South.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-West.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-West.png
new file mode 100644
index 0000000..22d9eac
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass-West.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass.png
new file mode 100644
index 0000000..12ffc33
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Compass.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Degrees-Celcius.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Degrees-Celcius.png
new file mode 100644
index 0000000..7e8e593
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Degrees-Celcius.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Degrees-Fahrenheit.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Degrees-Fahrenheit.png
new file mode 100644
index 0000000..cfba4a5
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Degrees-Fahrenheit.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-First-Quarter.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-First-Quarter.png
new file mode 100644
index 0000000..eb5db64
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-First-Quarter.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Full.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Full.png
new file mode 100644
index 0000000..d59ab86
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Full.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Last-Quarter.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Last-Quarter.png
new file mode 100644
index 0000000..04823cc
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Last-Quarter.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-New.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-New.png
new file mode 100644
index 0000000..1ac14eb
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-New.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waning-Crescent.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waning-Crescent.png
new file mode 100644
index 0000000..46b4b4b
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waning-Crescent.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waning-Gibbous.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waning-Gibbous.png
new file mode 100644
index 0000000..5916506
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waning-Gibbous.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waxing-Crescent.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waxing-Crescent.png
new file mode 100644
index 0000000..8f02971
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waxing-Crescent.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waxing-Gibbous.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waxing-Gibbous.png
new file mode 100644
index 0000000..67daddb
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon-Waxing-Gibbous.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon.png
new file mode 100644
index 0000000..8f55b3f
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Moon.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Shades.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Shades.png
new file mode 100644
index 0000000..bf979e5
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Shades.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Snowflake.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Snowflake.png
new file mode 100644
index 0000000..380f49d
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Snowflake.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun-Low.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun-Low.png
new file mode 100644
index 0000000..2b3cd27
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun-Low.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun-Lower.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun-Lower.png
new file mode 100644
index 0000000..4696a7b
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun-Lower.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun.png
new file mode 100644
index 0000000..b7fbb7d
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sun.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sunrise.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sunrise.png
new file mode 100644
index 0000000..bbb7e27
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sunrise.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sunset.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sunset.png
new file mode 100644
index 0000000..4919d59
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Sunset.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-100.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-100.png
new file mode 100644
index 0000000..4ae9592
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-100.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-25.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-25.png
new file mode 100644
index 0000000..43f1655
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-25.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-50.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-50.png
new file mode 100644
index 0000000..0ab9fad
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-50.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-75.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-75.png
new file mode 100644
index 0000000..3d81d8a
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-75.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-Zero.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-Zero.png
new file mode 100644
index 0000000..a0d446b
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer-Zero.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer.png
new file mode 100644
index 0000000..580a9f3
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Thermometer.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Tornado.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Tornado.png
new file mode 100644
index 0000000..b0d9a6a
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Tornado.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Umbrella.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Umbrella.png
new file mode 100644
index 0000000..73d8666
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Umbrella.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Wind.png b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Wind.png
new file mode 100644
index 0000000..e7bef73
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/Wind.png differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/forecast.ico b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/forecast.ico
new file mode 100644
index 0000000..69040d4
Binary files /dev/null and b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/icons/forecast.ico differ
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/info.plist b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/info.plist
new file mode 100644
index 0000000..0813733
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/info.plist
@@ -0,0 +1,159 @@
+
+
+
+
+ bundleid
+ com.kejadlen.forecast
+ category
+ Internet
+ connections
+
+ 2A5C0A87-204E-49EA-94A7-8E62BB4EFD8A
+
+
+ destinationuid
+ 5E2D96BA-31B2-4800-9A2B-B999285680A0
+ modifiers
+ 0
+ modifiersubtext
+
+
+
+ 450E8285-E286-4D33-AADF-1ACF99F41031
+
+
+ destinationuid
+ 373F7A50-59E2-4225-B665-E63FBBBAF7E5
+ modifiers
+ 0
+ modifiersubtext
+
+
+
+
+ createdby
+ Alpha Chen
+ description
+
+ disabled
+
+ name
+ Forecast
+ objects
+
+
+ config
+
+ plusspaces
+
+ url
+ http://forecast.io/#/f/{query}
+ utf8
+
+
+ type
+ alfred.workflow.action.openurl
+ uid
+ 5E2D96BA-31B2-4800-9A2B-B999285680A0
+ version
+ 0
+
+
+ config
+
+ argumenttype
+ 1
+ escaping
+ 127
+ keyword
+ forecast
+ runningsubtext
+ Retriving location/weather...
+ script
+ ruby forecast.rb {query}
+ title
+ Forecast
+ type
+ 0
+ withspace
+
+
+ type
+ alfred.workflow.input.scriptfilter
+ uid
+ 2A5C0A87-204E-49EA-94A7-8E62BB4EFD8A
+ version
+ 0
+
+
+ config
+
+ escaping
+ 0
+ script
+ ruby -r./alfred -e "{query}"
+ type
+ 0
+
+ type
+ alfred.workflow.action.script
+ uid
+ 373F7A50-59E2-4225-B665-E63FBBBAF7E5
+ version
+ 0
+
+
+ config
+
+ argumenttype
+ 1
+ escaping
+ 127
+ keyword
+ forecast-config
+ script
+ ruby forecast-config.rb {query}
+ title
+ Configure the Forecast workflow
+ type
+ 0
+ withspace
+
+
+ type
+ alfred.workflow.input.scriptfilter
+ uid
+ 450E8285-E286-4D33-AADF-1ACF99F41031
+ version
+ 0
+
+
+ readme
+
+ uidata
+
+ 2A5C0A87-204E-49EA-94A7-8E62BB4EFD8A
+
+ ypos
+ 10
+
+ 373F7A50-59E2-4225-B665-E63FBBBAF7E5
+
+ ypos
+ 130
+
+ 450E8285-E286-4D33-AADF-1ACF99F41031
+
+ ypos
+ 130
+
+ 5E2D96BA-31B2-4800-9A2B-B999285680A0
+
+ ypos
+ 10
+
+
+ webaddress
+ http://github.com/kejadlen/forecast.alfredworkflow
+
+
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/location.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/location.rb
new file mode 100644
index 0000000..bbe7b2b
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/location.rb
@@ -0,0 +1,16 @@
+require_relative 'geocoder'
+
+class Location
+ attr_accessor :name, :lat, :long, :geocoder
+
+ def initialize(name, lat=nil, long=nil, geocoder=Geocoder)
+ @name, @lat, @long, @geocoder = name, lat, long, geocoder
+
+ geocode! unless lat && long
+ end
+
+ def geocode!
+ self.name, self.lat, self.long = geocoder.geocode(name)
+ end
+end
+
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/spark.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/spark.rb
new file mode 100644
index 0000000..b6bed93
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/spark.rb
@@ -0,0 +1,17 @@
+class Spark
+ # TICKS = %w[▁ ▂ ▃ ▄ ▅ ▆ ▇ █] # Alfred doesn't render the last bar correctly
+ # for some reason...
+ TICKS = %w[▁ ▂ ▃ ▄ ▅ ▆ ▇]
+
+ attr_reader :data, :min, :max
+
+ def initialize(data, **kwargs)
+ @data = data.map(&:round)
+ @min = kwargs.fetch(:min) { 0 }
+ @max = [(kwargs.fetch(:max) { data.max }).to_f, 1.0].max
+ end
+
+ def to_s
+ data.map {|i| TICKS[(TICKS.size - 1) * (i - min) / max] }.join
+ end
+end
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/test_alfred.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/test_alfred.rb
new file mode 100644
index 0000000..ca519b0
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/test_alfred.rb
@@ -0,0 +1,22 @@
+require 'minitest/autorun'
+
+require_relative 'alfred'
+
+class TestConfig < Minitest::Test
+ def setup
+ @config = Alfred::Config.new('com.kejadlen.test')
+ end
+
+ def teardown
+ File.delete(@config.path) if File.exist?(@config.path)
+ end
+
+ def test_config
+ assert_nil @config[:foo]
+
+ @config[:foo] = 123
+ assert_equal 123, @config[:foo]
+ assert File.exist?(@config.path)
+ assert_equal '{:foo=>123}', File.read(@config.path)
+ end
+end
diff --git a/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/test_spark.rb b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/test_spark.rb
new file mode 100644
index 0000000..9f99290
--- /dev/null
+++ b/Alfred 2/Alfred.alfredpreferences/workflows/user.workflow.8694C3FC-8218-4B98-BB1F-F1CEC686477C/test_spark.rb
@@ -0,0 +1,10 @@
+require 'minitest/autorun'
+
+require_relative 'spark'
+
+class TestSpark < Minitest::Test
+ def test_div_by_zero
+ spark = Spark.new([0, 0, 0])
+ assert_equal '▁▁▁', spark.to_s
+ end
+end