karabiner 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a6223024f8b78b87a4cbd11281079f7a5d6db04e
4
- data.tar.gz: ccf5792596a2e20b69251d8b63f53e305651b98a
3
+ metadata.gz: b8622ef8f018f0acdd26c162ea8215c2b54c7fb4
4
+ data.tar.gz: bf3b45645ec16cc19559d8315f8463c5387721ca
5
5
  SHA512:
6
- metadata.gz: 06936969d2a768b44d5e778b99ec1d06685aae82c56568e57a436cdc9578bf586e8c1d2e3c3662bbb7fe1d701c15fa60520c71bd9bfb01c681c6f07dacb4761f
7
- data.tar.gz: 659c1acc3a4cb3b4e7bb39e00ea7268952c4bc650132fcb0020ad51d3f5c7e38e74bcd36016ae73f05db0b3820fa8ad872509984a500e4e7ae7d8482de2e8b87
6
+ metadata.gz: 9f8f1ff12777f5b3b1ebb8745c99bf27c78622c151513c35d4ca988f588a971360b7bf6e37f506dcd12ac9a5c77d7322a7ef6244c9022fb57a3939c4057df9b3
7
+ data.tar.gz: 68c4176643b0912e7ed92921188a0efd907409b38c822d7a5b510ef56e4f5c5777fa0ae1e03bc666dc2f834b5735b6e8cf8d6def059b45f8d2b964362703de3e
data/README.md CHANGED
@@ -122,6 +122,10 @@ item "Application shortcuts" do
122
122
  remap "C-h", to: invoke("iTerm")
123
123
  end
124
124
 
125
+ item "Copy date" do
126
+ remap "Cmd-d", to: execute("date|pbcopy")
127
+ end
128
+
125
129
  item "Control+PNBF to Up/Down/Left/Right" do
126
130
  remap "C-p", to: "Up"
127
131
  remap "C-n", to: "Down"
data/lib/karabiner.rb CHANGED
@@ -10,7 +10,7 @@ class Karabiner
10
10
 
11
11
  def initialize(config_path)
12
12
  @config_path = config_path
13
- Karabiner::InvokeHistory.clear_histroy
13
+ Karabiner::History.clear_histroy
14
14
  end
15
15
  attr_reader :config_path
16
16
 
@@ -3,11 +3,11 @@ require "karabiner/xml_tree"
3
3
  class Karabiner::Appdef
4
4
  include Karabiner::XmlTree
5
5
 
6
- AVAILABLE_OPTIONS = %i(
6
+ AVAILABLE_OPTIONS = %i[
7
7
  equal
8
8
  prefix
9
9
  suffix
10
- ).freeze
10
+ ].freeze
11
11
 
12
12
  def initialize(appname, options)
13
13
  property = Karabiner::Property.new("appname", appname)
@@ -1,14 +1,15 @@
1
+ require "karabiner/history"
1
2
  require "karabiner/namespace"
2
3
  require "karabiner/property"
3
4
  require "karabiner/remap"
4
- require "karabiner/invoke_history"
5
+ require "karabiner/vkopenurldef"
5
6
 
6
7
  module Karabiner::DSL::Item
7
- AVAILABLE_PROPERTIES = %i(
8
+ AVAILABLE_PROPERTIES = %i[
8
9
  name
9
10
  identifier
10
11
  autogen
11
- ).freeze
12
+ ].freeze
12
13
 
13
14
  def remap(target, options = {})
14
15
  remap = Karabiner::Remap.new(target, options[:to])
@@ -21,8 +22,13 @@ module Karabiner::DSL::Item
21
22
  end
22
23
 
23
24
  def invoke(application)
24
- Karabiner::InvokeHistory.register(application)
25
- "VK_OPEN_URL_APP_#{application.gsub(/ /, '_')}"
25
+ Karabiner::History.register_application(application)
26
+ Karabiner::Vkopenurldef.application_keycode(application)
27
+ end
28
+
29
+ def execute(script)
30
+ Karabiner::History.register_script(script)
31
+ Karabiner::Vkopenurldef.script_keycode(script)
26
32
  end
27
33
 
28
34
  private
@@ -0,0 +1,24 @@
1
+ require "set"
2
+
3
+ module Karabiner::History
4
+ def self.clear_histroy
5
+ registered_applications.clear
6
+ registered_scripts.clear
7
+ end
8
+
9
+ def self.register_application(application)
10
+ registered_applications.add(application)
11
+ end
12
+
13
+ def self.register_script(script)
14
+ registered_scripts.add(script)
15
+ end
16
+
17
+ def self.registered_applications
18
+ @@registered_applications ||= Set.new
19
+ end
20
+
21
+ def self.registered_scripts
22
+ @@registered_scripts ||= Set.new
23
+ end
24
+ end
@@ -5,12 +5,12 @@ class Karabiner::Item
5
5
  include Karabiner::XmlTree
6
6
  include Karabiner::DSL::Item
7
7
 
8
- AVAILABLE_OPTIONS = %i(
8
+ AVAILABLE_OPTIONS = %i[
9
9
  not
10
10
  only
11
11
  config_not
12
12
  config_only
13
- ).freeze
13
+ ].freeze
14
14
 
15
15
  def initialize(name, options = {})
16
16
  @skip_identifier = options.delete(:skip_identifier)
@@ -1,6 +1,6 @@
1
- require "karabiner/invoke_history"
2
- require "karabiner/vkopenurldef"
3
1
  require "karabiner/dsl/root"
2
+ require "karabiner/history"
3
+ require "karabiner/vkopenurldef"
4
4
 
5
5
  class Karabiner::Root
6
6
  include Karabiner::XmlTree
@@ -11,10 +11,8 @@ class Karabiner::Root
11
11
  end
12
12
 
13
13
  def to_xml
14
- Karabiner::InvokeHistory.registered_applications.each do |application|
15
- vkopenurldef = Karabiner::Vkopenurldef.new(application)
16
- add_child(vkopenurldef)
17
- end
14
+ add_registered_applications
15
+ add_registered_scripts
18
16
 
19
17
  [
20
18
  "<?xml version=\"1.0\"?>",
@@ -24,6 +22,20 @@ class Karabiner::Root
24
22
 
25
23
  private
26
24
 
25
+ def add_registered_applications
26
+ Karabiner::History.registered_applications.each do |application|
27
+ vkopenurldef = Karabiner::Vkopenurldef.for_application(application)
28
+ add_child(vkopenurldef)
29
+ end
30
+ end
31
+
32
+ def add_registered_scripts
33
+ Karabiner::History.registered_scripts.each do |script|
34
+ vkopenurldef = Karabiner::Vkopenurldef.for_script(script)
35
+ add_child(vkopenurldef)
36
+ end
37
+ end
38
+
27
39
  def add_config(config)
28
40
  @configs << config
29
41
  end
@@ -1,3 +1,3 @@
1
1
  class Karabiner
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -3,9 +3,27 @@ require "karabiner/xml_tree"
3
3
  class Karabiner::Vkopenurldef
4
4
  include Karabiner::XmlTree
5
5
 
6
- def initialize(application)
7
- name = Karabiner::Property.new("name", "KeyCode::VK_OPEN_URL_APP_#{application.gsub(/ /, "_")}")
8
- url = Karabiner::Property.new("url", "/Applications/#{application}.app", type: "file")
9
- add_child(name, url)
6
+ def self.application_keycode(application)
7
+ "VK_OPEN_URL_APP_#{application.gsub(/ /, "_")}"
8
+ end
9
+
10
+ def self.script_keycode(script)
11
+ "VK_OPEN_URL_SHELL_#{script.gsub(/[^a-zA-Z]/, "_")}"
12
+ end
13
+
14
+ def self.for_application(application)
15
+ self.new.tap do |definition|
16
+ name = Karabiner::Property.new("name", "KeyCode::#{application_keycode(application)}")
17
+ url = Karabiner::Property.new("url", "/Applications/#{application}.app", type: "file")
18
+ definition.add_child(name, url)
19
+ end
20
+ end
21
+
22
+ def self.for_script(script)
23
+ self.new.tap do |definition|
24
+ name = Karabiner::Property.new("name", "KeyCode::#{script_keycode(script)}")
25
+ url = Karabiner::Property.new("url", "<![CDATA[ #{script} ]]>", type: "shell")
26
+ definition.add_child(name, url)
27
+ end
10
28
  end
11
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karabiner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-21 00:00:00.000000000 Z
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,7 +109,7 @@ files:
109
109
  - lib/karabiner/dsl/item.rb
110
110
  - lib/karabiner/dsl/root.rb
111
111
  - lib/karabiner/group.rb
112
- - lib/karabiner/invoke_history.rb
112
+ - lib/karabiner/history.rb
113
113
  - lib/karabiner/item.rb
114
114
  - lib/karabiner/key.rb
115
115
  - lib/karabiner/namespace.rb
@@ -1,16 +0,0 @@
1
- require "set"
2
- require "karabiner/vkopenurldef"
3
-
4
- module Karabiner::InvokeHistory
5
- def self.clear_histroy
6
- @@registered_applications = Set.new
7
- end
8
-
9
- def self.register(application)
10
- registered_applications.add(application)
11
- end
12
-
13
- def self.registered_applications
14
- @@registered_applications ||= Set.new
15
- end
16
- end